marko 5.16.1 → 5.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. package/dist/runtime/RenderResult.js +7 -11
  2. package/dist/runtime/RenderResult.js.map +1 -1
  3. package/dist/runtime/components/Component.js +2 -2
  4. package/dist/runtime/components/Component.js.map +1 -1
  5. package/dist/runtime/components/ComponentsContext.js +2 -2
  6. package/dist/runtime/components/ComponentsContext.js.map +1 -1
  7. package/dist/runtime/components/event-delegation.js +6 -6
  8. package/dist/runtime/components/event-delegation.js.map +1 -1
  9. package/dist/runtime/components/init-components/index-browser.js +22 -24
  10. package/dist/runtime/components/init-components/index-browser.js.map +1 -1
  11. package/dist/runtime/components/registry/index-browser.js +2 -2
  12. package/dist/runtime/components/registry/index-browser.js.map +1 -1
  13. package/dist/runtime/components/util/index-browser.js +4 -3
  14. package/dist/runtime/components/util/index-browser.js.map +1 -1
  15. package/dist/runtime/html/AsyncStream.js +8 -10
  16. package/dist/runtime/html/AsyncStream.js.map +1 -1
  17. package/dist/runtime/vdom/AsyncVDOMBuilder.js +65 -70
  18. package/dist/runtime/vdom/AsyncVDOMBuilder.js.map +1 -1
  19. package/dist/runtime/vdom/VComponent.js +3 -3
  20. package/dist/runtime/vdom/VDocumentFragment.js +7 -7
  21. package/dist/runtime/vdom/VDocumentFragment.js.map +1 -1
  22. package/dist/runtime/vdom/VElement.js +42 -39
  23. package/dist/runtime/vdom/VElement.js.map +1 -1
  24. package/dist/runtime/vdom/VFragment.js +5 -5
  25. package/dist/runtime/vdom/VNode.js +31 -31
  26. package/dist/runtime/vdom/VText.js +8 -8
  27. package/dist/runtime/vdom/VText.js.map +1 -1
  28. package/dist/runtime/vdom/hot-reload.js +5 -5
  29. package/dist/runtime/vdom/hot-reload.js.map +1 -1
  30. package/dist/runtime/vdom/morphdom/fragment.js +3 -3
  31. package/dist/runtime/vdom/morphdom/helpers.js +1 -1
  32. package/dist/runtime/vdom/morphdom/index.js +30 -30
  33. package/dist/runtime/vdom/morphdom/index.js.map +1 -1
  34. package/dist/runtime/vdom/morphdom/specialElHandlers.js +6 -6
  35. package/dist/runtime/vdom/preserve-attrs.js +1 -1
  36. package/dist/runtime/vdom/vdom.js +10 -12
  37. package/dist/runtime/vdom/vdom.js.map +1 -1
  38. package/package.json +3 -3
  39. package/src/runtime/RenderResult.js +7 -11
  40. package/src/runtime/components/Component.js +5 -5
  41. package/src/runtime/components/ComponentsContext.js +2 -2
  42. package/src/runtime/components/event-delegation.js +6 -6
  43. package/src/runtime/components/init-components/index-browser.js +23 -25
  44. package/src/runtime/components/registry/index-browser.js +3 -3
  45. package/src/runtime/components/util/index-browser.js +8 -7
  46. package/src/runtime/html/AsyncStream.js +8 -10
  47. package/src/runtime/vdom/AsyncVDOMBuilder.js +9 -14
  48. package/src/runtime/vdom/VDocumentFragment.js +2 -2
  49. package/src/runtime/vdom/VElement.js +5 -2
  50. package/src/runtime/vdom/VText.js +2 -2
  51. package/src/runtime/vdom/hot-reload.js +1 -1
  52. package/src/runtime/vdom/morphdom/index.js +4 -4
  53. package/src/runtime/vdom/vdom.js +2 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtime/components/init-components/index-browser.js"],"names":["warp10Finalize","require","eventDelegation","win","window","defaultDocument","document","createFragmentNode","componentsUtil","componentLookup","addComponentRootToKeyedElements","ComponentDef","registry","domData","keyedElementsByComponentId","componentsByDOMNode","serverComponentRootNodes","serverRenderedMeta","DEFAULT_RUNTIME_ID","FLAG_WILL_RERENDER_IN_BROWSER","deferredDefs","indexServerComponentBoundaries","node","runtimeId","stack","componentId","ownerId","ownerComponent","keyedElements","nextSibling","runtimeLength","length","firstChild","nodeType","commentValue","nodeValue","slice","firstChar","push","endNode","startNode","pop","rootNode","parentNode","substring","parts","split","key","removeChild","markoKey","getAttribute","markoProps","separatorIndex","indexOf","Object","keys","forEach","invokeComponentEventHandler","component","targetMethodName","args","method","Error","apply","addEventListenerHelper","el","eventType","isOnce","listener","eventListener","event","removeEventListener","addEventListener","remove","addDOMEventListeners","extraArgs","handles","removeListener","concat","initComponent","componentDef","doc","isExisting","domEvents","eventListenerHandles","domEventArgs","eventEl","initClientRendered","componentDefs","len","i","trackComponent","initServerRendered","renderedComponents","type","globalKey","fakeArray","r","renderedComponent","isFromSerializedGlobals","prefix","p","meta","isLast","l","g","t","w","map","typeName","tryHydrateComponent","reverse","tryInvoke","rawDef","mount","hydrateComponentAndGetMount","undefined","id","renderResult","set","afterInsert","fn","exports"],"mappings":"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","sourcesContent":["\"use strict\";\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar warp10Finalize = require(\"warp10/finalize\");\nvar eventDelegation = require(\"../event-delegation\");\nvar win = window;\nvar defaultDocument = document;\nvar createFragmentNode =\n require(\"../../vdom/morphdom/fragment\").___createFragmentNode;\nvar componentsUtil = require(\"../util\");\nvar componentLookup = componentsUtil.___componentLookup;\nvar addComponentRootToKeyedElements =\n componentsUtil.___addComponentRootToKeyedElements;\nvar ComponentDef = require(\"../ComponentDef\");\nvar registry = require(\"../registry\");\nvar domData = require(\"../dom-data\");\nvar keyedElementsByComponentId = domData.___ssrKeyedElementsByComponentId;\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar serverComponentRootNodes = {};\nvar serverRenderedMeta = {};\n\nvar DEFAULT_RUNTIME_ID = \"M\";\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\n// var FLAG_HAS_RENDER_BODY = 2;\n\nvar deferredDefs;\n\nfunction indexServerComponentBoundaries(node, runtimeId, stack) {\n var componentId;\n var ownerId;\n var ownerComponent;\n var keyedElements;\n var nextSibling;\n var runtimeLength = runtimeId.length;\n stack = stack || [];\n\n node = node.firstChild;\n while (node) {\n nextSibling = node.nextSibling;\n if (node.nodeType === 8) {\n // Comment node\n var commentValue = node.nodeValue;\n if (commentValue.slice(0, runtimeLength) === runtimeId) {\n var firstChar = commentValue[runtimeLength];\n\n if (firstChar === \"^\" || firstChar === \"#\") {\n stack.push(node);\n } else if (firstChar === \"/\") {\n var endNode = node;\n var startNode = stack.pop();\n var rootNode;\n\n if (startNode.parentNode === endNode.parentNode) {\n rootNode = createFragmentNode(startNode.nextSibling, endNode);\n } else {\n rootNode = createFragmentNode(\n endNode.parentNode.firstChild,\n endNode\n );\n }\n\n componentId = startNode.nodeValue.substring(runtimeLength + 1);\n firstChar = startNode.nodeValue[runtimeLength];\n\n if (firstChar === \"^\") {\n var parts = componentId.split(/ /g);\n var key = parts[2];\n ownerId = parts[1];\n componentId = parts[0];\n if ((ownerComponent = componentLookup[ownerId])) {\n keyedElements = ownerComponent.___keyedElements;\n } else {\n keyedElements =\n keyedElementsByComponentId[ownerId] ||\n (keyedElementsByComponentId[ownerId] = {});\n }\n addComponentRootToKeyedElements(\n keyedElements,\n key,\n rootNode,\n componentId\n );\n }\n\n serverComponentRootNodes[componentId] = rootNode;\n\n startNode.parentNode.removeChild(startNode);\n endNode.parentNode.removeChild(endNode);\n }\n }\n } else if (node.nodeType === 1) {\n // HTML element node\n var markoKey = node.getAttribute(\"data-marko-key\");\n var markoProps = componentsUtil.___getMarkoPropsFromEl(node);\n if (markoKey) {\n var separatorIndex = markoKey.indexOf(\" \");\n ownerId = markoKey.substring(separatorIndex + 1);\n markoKey = markoKey.substring(0, separatorIndex);\n if ((ownerComponent = componentLookup[ownerId])) {\n keyedElements = ownerComponent.___keyedElements;\n } else {\n keyedElements =\n keyedElementsByComponentId[ownerId] ||\n (keyedElementsByComponentId[ownerId] = {});\n }\n keyedElements[markoKey] = node;\n }\n if (markoProps) {\n Object.keys(markoProps).forEach(function (key) {\n if (key.slice(0, 2) === \"on\") {\n eventDelegation.___addDelegatedEventHandler(key.slice(2));\n }\n });\n }\n indexServerComponentBoundaries(node, runtimeId, stack);\n }\n\n node = nextSibling;\n }\n}\n\nfunction invokeComponentEventHandler(component, targetMethodName, args) {\n var method = component[targetMethodName];\n if (!method) {\n throw Error(\"Method not found: \" + targetMethodName);\n }\n\n method.apply(component, args);\n}\n\nfunction addEventListenerHelper(el, eventType, isOnce, listener) {\n var eventListener = listener;\n if (isOnce) {\n eventListener = function (event) {\n listener(event);\n el.removeEventListener(eventType, eventListener);\n };\n }\n\n el.addEventListener(eventType, eventListener, false);\n\n return function remove() {\n el.removeEventListener(eventType, eventListener);\n };\n}\n\nfunction addDOMEventListeners(\n component,\n el,\n eventType,\n targetMethodName,\n isOnce,\n extraArgs,\n handles\n) {\n var removeListener = addEventListenerHelper(\n el,\n eventType,\n isOnce,\n function (event) {\n var args = [event, el];\n if (extraArgs) {\n args = extraArgs.concat(args);\n }\n\n invokeComponentEventHandler(component, targetMethodName, args);\n }\n );\n handles.push(removeListener);\n}\n\nfunction initComponent(componentDef, doc) {\n var component = componentDef.___component;\n\n component.___reset();\n component.___document = doc;\n\n var isExisting = componentDef.___isExisting;\n\n if (isExisting) {\n component.___removeDOMEventListeners();\n }\n\n var domEvents = componentDef.___domEvents;\n if (domEvents) {\n var eventListenerHandles = [];\n\n domEvents.forEach(function (domEventArgs) {\n // The event mapping is for a direct DOM event (not a custom event and not for bubblign dom events)\n\n var eventType = domEventArgs[0];\n var targetMethodName = domEventArgs[1];\n var eventEl = component.___keyedElements[domEventArgs[2]];\n var isOnce = domEventArgs[3];\n var extraArgs = domEventArgs[4];\n\n addDOMEventListeners(\n component,\n eventEl,\n eventType,\n targetMethodName,\n isOnce,\n extraArgs,\n eventListenerHandles\n );\n });\n\n if (eventListenerHandles.length) {\n component.___domEventListenerHandles = eventListenerHandles;\n }\n }\n\n if (component.___mounted) {\n component.___emitUpdate();\n } else {\n component.___mounted = true;\n component.___emitMount();\n }\n}\n\n/**\n * This method is used to initialized components associated with UI components\n * rendered in the browser. While rendering UI components a \"components context\"\n * is added to the rendering context to keep up with which components are rendered.\n * When ready, the components can then be initialized by walking the component tree\n * in the components context (nested components are initialized before ancestor components).\n * @param {Array<marko-components/lib/ComponentDef>} componentDefs An array of ComponentDef instances\n */\nfunction initClientRendered(componentDefs, doc) {\n // Ensure that event handlers to handle delegating events are\n // always attached before initializing any components\n eventDelegation.___init(doc);\n\n doc = doc || defaultDocument;\n var len = componentDefs.length;\n var componentDef;\n var i;\n\n for (i = len; i--; ) {\n componentDef = componentDefs[i];\n trackComponent(componentDef);\n }\n\n for (i = len; i--; ) {\n componentDef = componentDefs[i];\n initComponent(componentDef, doc);\n }\n}\n\n/**\n * This method initializes all components that were rendered on the server by iterating over all\n * of the component IDs.\n */\nfunction initServerRendered(renderedComponents, doc) {\n var type = typeof renderedComponents;\n var globalKey = \"$\";\n var runtimeId;\n\n if (type !== \"object\") {\n if (type === \"string\") {\n runtimeId = renderedComponents;\n globalKey += runtimeId + \"_C\";\n } else {\n globalKey += (runtimeId = DEFAULT_RUNTIME_ID) + \"C\";\n }\n\n renderedComponents = win[globalKey];\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (\n renderedComponents &&\n renderedComponents.i !== undefined &&\n renderedComponents.i !== componentsUtil.___runtimeId\n ) {\n console.warn(\n \"Multiple instances of Marko have attached to the same runtime id. This could mean that more than one copy of Marko is loaded on the page, or that the script containing Marko has executed more than once.\"\n );\n }\n }\n\n var fakeArray = (win[globalKey] = {\n r: runtimeId,\n concat: initServerRendered\n });\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n fakeArray.i = componentsUtil.___runtimeId;\n }\n\n if (renderedComponents && renderedComponents.forEach) {\n renderedComponents.forEach(function (renderedComponent) {\n fakeArray.concat(renderedComponent);\n });\n }\n\n return fakeArray;\n }\n\n var isFromSerializedGlobals = this.concat === initServerRendered;\n renderedComponents = warp10Finalize(renderedComponents);\n\n if (isFromSerializedGlobals) {\n runtimeId = this.r;\n doc = defaultDocument;\n } else {\n runtimeId = renderedComponents.r || DEFAULT_RUNTIME_ID;\n doc = doc || defaultDocument;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n \"Passing serialized data to `require('marko/components).init` is deprecated. Instead set '$global.runtimeId' and provide the 'runtimeId' option to your Marko bundler plugin.\"\n );\n }\n }\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (doc !== defaultDocument) {\n complain(\n \"Passing a document other than the current document to `require('marko/components).init` is deprecated.\"\n );\n }\n }\n\n var prefix = renderedComponents.p || \"\";\n var meta = serverRenderedMeta[prefix];\n var isLast = renderedComponents.l;\n\n if (meta) {\n if (isLast) {\n delete serverRenderedMeta[prefix];\n }\n } else {\n meta = {};\n\n if (!isLast) {\n serverRenderedMeta[prefix] = meta;\n }\n }\n\n // Ensure that event handlers to handle delegating events are\n // always attached before initializing any components\n indexServerComponentBoundaries(doc, runtimeId);\n eventDelegation.___init(doc);\n\n if (renderedComponents.g) {\n meta.___globals = renderedComponents.g;\n }\n\n if (renderedComponents.t) {\n meta.___types = meta.___types\n ? meta.___types.concat(renderedComponents.t)\n : renderedComponents.t;\n }\n\n // hydrate components top down (leaf nodes last)\n // and return an array of functions to mount these components\n (renderedComponents.w || [])\n .map(function (componentDef) {\n var typeName = meta.___types[componentDef[1]];\n\n return registry.___isRegistered(typeName)\n ? tryHydrateComponent(componentDef, meta, doc, runtimeId)\n : registry.___addPendingDef(\n componentDef,\n typeName,\n meta,\n doc,\n runtimeId\n );\n })\n .reverse()\n .forEach(tryInvoke);\n\n return this;\n}\n\nfunction tryHydrateComponent(rawDef, meta, doc, runtimeId) {\n var componentDef = ComponentDef.___deserialize(\n rawDef,\n meta.___types,\n meta.___globals,\n registry\n );\n var mount = hydrateComponentAndGetMount(componentDef, doc);\n\n if (!mount) {\n // hydrateComponentAndGetMount will return false if there is not rootNode\n // for the component. If this is the case, we'll wait until the\n // DOM has fully loaded to attempt to init the component again.\n if (deferredDefs) {\n deferredDefs.push(componentDef);\n } else {\n deferredDefs = [componentDef];\n doc.addEventListener(\"DOMContentLoaded\", function () {\n indexServerComponentBoundaries(doc, runtimeId);\n deferredDefs\n .map(function (componentDef) {\n return hydrateComponentAndGetMount(componentDef, doc);\n })\n .reverse()\n .forEach(tryInvoke);\n deferredDefs = undefined;\n });\n }\n }\n\n return mount;\n}\n\nfunction hydrateComponentAndGetMount(componentDef, doc) {\n var componentId = componentDef.id;\n var component = componentDef.___component;\n var rootNode = serverComponentRootNodes[componentId];\n var renderResult;\n\n if (rootNode) {\n delete serverComponentRootNodes[componentId];\n\n component.___rootNode = rootNode;\n componentsByDOMNode.set(rootNode, component);\n\n if (componentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER) {\n component.___document = doc;\n renderResult = component.___rerender(component.___input, true);\n trackComponent(componentDef);\n return function mount() {\n renderResult.afterInsert(doc);\n };\n } else {\n trackComponent(componentDef);\n }\n\n return function mount() {\n initComponent(componentDef, doc);\n };\n }\n}\n\nfunction trackComponent(componentDef) {\n var component = componentDef.___component;\n if (component) {\n componentLookup[component.id] = component;\n }\n}\n\nfunction tryInvoke(fn) {\n if (fn) fn();\n}\n\nexports.___initClientRendered = initClientRendered;\nexports.___initServerRendered = initServerRendered;\nexports.___tryHydrateComponent = tryHydrateComponent;\n"],"file":"index-browser.js"}
1
+ {"version":3,"sources":["../../../../src/runtime/components/init-components/index-browser.js"],"names":["warp10Finalize","require","eventDelegation","win","window","createFragmentNode","componentsUtil","componentLookup","addComponentRootToKeyedElements","ComponentDef","registry","domData","keyedElementsByComponentId","componentsByDOMNode","serverComponentRootNodes","serverRenderedMeta","DEFAULT_RUNTIME_ID","FLAG_WILL_RERENDER_IN_BROWSER","deferredDefs","indexServerComponentBoundaries","node","runtimeId","stack","componentId","ownerId","ownerComponent","keyedElements","nextSibling","runtimeLength","length","firstChild","nodeType","commentValue","nodeValue","slice","firstChar","push","endNode","startNode","pop","rootNode","parentNode","substring","parts","split","key","removeChild","markoKey","getAttribute","markoProps","separatorIndex","indexOf","Object","keys","forEach","invokeComponentEventHandler","component","targetMethodName","args","method","Error","apply","addEventListenerHelper","el","eventType","isOnce","listener","eventListener","event","removeEventListener","addEventListener","remove","addDOMEventListeners","extraArgs","handles","removeListener","concat","initComponent","componentDef","host","isExisting","domEvents","eventListenerHandles","domEventArgs","eventEl","initClientRendered","componentDefs","document","len","i","trackComponent","initServerRendered","renderedComponents","type","globalKey","fakeArray","r","renderedComponent","isFromSerializedGlobals","prefix","p","meta","isLast","l","g","t","w","map","typeName","tryHydrateComponent","reverse","tryInvoke","rawDef","mount","hydrateComponentAndGetMount","undefined","id","renderResult","set","afterInsert","fn","exports"],"mappings":"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","sourcesContent":["\"use strict\";\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar warp10Finalize = require(\"warp10/finalize\");\nvar eventDelegation = require(\"../event-delegation\");\nvar win = window;\nvar createFragmentNode =\n require(\"../../vdom/morphdom/fragment\").___createFragmentNode;\nvar componentsUtil = require(\"../util\");\nvar componentLookup = componentsUtil.___componentLookup;\nvar addComponentRootToKeyedElements =\n componentsUtil.___addComponentRootToKeyedElements;\nvar ComponentDef = require(\"../ComponentDef\");\nvar registry = require(\"../registry\");\nvar domData = require(\"../dom-data\");\nvar keyedElementsByComponentId = domData.___ssrKeyedElementsByComponentId;\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar serverComponentRootNodes = {};\nvar serverRenderedMeta = {};\n\nvar DEFAULT_RUNTIME_ID = \"M\";\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\n// var FLAG_HAS_RENDER_BODY = 2;\n\nvar deferredDefs;\n\nfunction indexServerComponentBoundaries(node, runtimeId, stack) {\n var componentId;\n var ownerId;\n var ownerComponent;\n var keyedElements;\n var nextSibling;\n var runtimeLength = runtimeId.length;\n stack = stack || [];\n\n node = node.firstChild;\n while (node) {\n nextSibling = node.nextSibling;\n if (node.nodeType === 8) {\n // Comment node\n var commentValue = node.nodeValue;\n if (commentValue.slice(0, runtimeLength) === runtimeId) {\n var firstChar = commentValue[runtimeLength];\n\n if (firstChar === \"^\" || firstChar === \"#\") {\n stack.push(node);\n } else if (firstChar === \"/\") {\n var endNode = node;\n var startNode = stack.pop();\n var rootNode;\n\n if (startNode.parentNode === endNode.parentNode) {\n rootNode = createFragmentNode(startNode.nextSibling, endNode);\n } else {\n rootNode = createFragmentNode(\n endNode.parentNode.firstChild,\n endNode\n );\n }\n\n componentId = startNode.nodeValue.substring(runtimeLength + 1);\n firstChar = startNode.nodeValue[runtimeLength];\n\n if (firstChar === \"^\") {\n var parts = componentId.split(/ /g);\n var key = parts[2];\n ownerId = parts[1];\n componentId = parts[0];\n if ((ownerComponent = componentLookup[ownerId])) {\n keyedElements = ownerComponent.___keyedElements;\n } else {\n keyedElements =\n keyedElementsByComponentId[ownerId] ||\n (keyedElementsByComponentId[ownerId] = {});\n }\n addComponentRootToKeyedElements(\n keyedElements,\n key,\n rootNode,\n componentId\n );\n }\n\n serverComponentRootNodes[componentId] = rootNode;\n\n startNode.parentNode.removeChild(startNode);\n endNode.parentNode.removeChild(endNode);\n }\n }\n } else if (node.nodeType === 1) {\n // HTML element node\n var markoKey = node.getAttribute(\"data-marko-key\");\n var markoProps = componentsUtil.___getMarkoPropsFromEl(node);\n if (markoKey) {\n var separatorIndex = markoKey.indexOf(\" \");\n ownerId = markoKey.substring(separatorIndex + 1);\n markoKey = markoKey.substring(0, separatorIndex);\n if ((ownerComponent = componentLookup[ownerId])) {\n keyedElements = ownerComponent.___keyedElements;\n } else {\n keyedElements =\n keyedElementsByComponentId[ownerId] ||\n (keyedElementsByComponentId[ownerId] = {});\n }\n keyedElements[markoKey] = node;\n }\n if (markoProps) {\n Object.keys(markoProps).forEach(function (key) {\n if (key.slice(0, 2) === \"on\") {\n eventDelegation.___addDelegatedEventHandler(key.slice(2));\n }\n });\n }\n indexServerComponentBoundaries(node, runtimeId, stack);\n }\n\n node = nextSibling;\n }\n}\n\nfunction invokeComponentEventHandler(component, targetMethodName, args) {\n var method = component[targetMethodName];\n if (!method) {\n throw Error(\"Method not found: \" + targetMethodName);\n }\n\n method.apply(component, args);\n}\n\nfunction addEventListenerHelper(el, eventType, isOnce, listener) {\n var eventListener = listener;\n if (isOnce) {\n eventListener = function (event) {\n listener(event);\n el.removeEventListener(eventType, eventListener);\n };\n }\n\n el.addEventListener(eventType, eventListener, false);\n\n return function remove() {\n el.removeEventListener(eventType, eventListener);\n };\n}\n\nfunction addDOMEventListeners(\n component,\n el,\n eventType,\n targetMethodName,\n isOnce,\n extraArgs,\n handles\n) {\n var removeListener = addEventListenerHelper(\n el,\n eventType,\n isOnce,\n function (event) {\n var args = [event, el];\n if (extraArgs) {\n args = extraArgs.concat(args);\n }\n\n invokeComponentEventHandler(component, targetMethodName, args);\n }\n );\n handles.push(removeListener);\n}\n\nfunction initComponent(componentDef, host) {\n var component = componentDef.___component;\n\n component.___reset();\n component.___host = host;\n\n var isExisting = componentDef.___isExisting;\n\n if (isExisting) {\n component.___removeDOMEventListeners();\n }\n\n var domEvents = componentDef.___domEvents;\n if (domEvents) {\n var eventListenerHandles = [];\n\n domEvents.forEach(function (domEventArgs) {\n // The event mapping is for a direct DOM event (not a custom event and not for bubblign dom events)\n\n var eventType = domEventArgs[0];\n var targetMethodName = domEventArgs[1];\n var eventEl = component.___keyedElements[domEventArgs[2]];\n var isOnce = domEventArgs[3];\n var extraArgs = domEventArgs[4];\n\n addDOMEventListeners(\n component,\n eventEl,\n eventType,\n targetMethodName,\n isOnce,\n extraArgs,\n eventListenerHandles\n );\n });\n\n if (eventListenerHandles.length) {\n component.___domEventListenerHandles = eventListenerHandles;\n }\n }\n\n if (component.___mounted) {\n component.___emitUpdate();\n } else {\n component.___mounted = true;\n component.___emitMount();\n }\n}\n\n/**\n * This method is used to initialized components associated with UI components\n * rendered in the browser. While rendering UI components a \"components context\"\n * is added to the rendering context to keep up with which components are rendered.\n * When ready, the components can then be initialized by walking the component tree\n * in the components context (nested components are initialized before ancestor components).\n * @param {Array<marko-components/lib/ComponentDef>} componentDefs An array of ComponentDef instances\n */\nfunction initClientRendered(componentDefs, host) {\n if (!host) host = document;\n // Ensure that event handlers to handle delegating events are\n // always attached before initializing any components\n eventDelegation.___init(host);\n var len = componentDefs.length;\n var componentDef;\n var i;\n\n for (i = len; i--; ) {\n componentDef = componentDefs[i];\n trackComponent(componentDef);\n }\n\n for (i = len; i--; ) {\n componentDef = componentDefs[i];\n initComponent(componentDef, host);\n }\n}\n\n/**\n * This method initializes all components that were rendered on the server by iterating over all\n * of the component IDs.\n */\nfunction initServerRendered(renderedComponents, host) {\n var type = typeof renderedComponents;\n var globalKey = \"$\";\n var runtimeId;\n\n if (type !== \"object\") {\n if (type === \"string\") {\n runtimeId = renderedComponents;\n globalKey += runtimeId + \"_C\";\n } else {\n globalKey += (runtimeId = DEFAULT_RUNTIME_ID) + \"C\";\n }\n\n renderedComponents = win[globalKey];\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (\n renderedComponents &&\n renderedComponents.i !== undefined &&\n renderedComponents.i !== componentsUtil.___runtimeId\n ) {\n console.warn(\n \"Multiple instances of Marko have attached to the same runtime id. This could mean that more than one copy of Marko is loaded on the page, or that the script containing Marko has executed more than once.\"\n );\n }\n }\n\n var fakeArray = (win[globalKey] = {\n r: runtimeId,\n concat: initServerRendered\n });\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n fakeArray.i = componentsUtil.___runtimeId;\n }\n\n if (renderedComponents && renderedComponents.forEach) {\n renderedComponents.forEach(function (renderedComponent) {\n fakeArray.concat(renderedComponent);\n });\n }\n\n return fakeArray;\n }\n\n var isFromSerializedGlobals = this.concat === initServerRendered;\n renderedComponents = warp10Finalize(renderedComponents);\n\n if (isFromSerializedGlobals) {\n runtimeId = this.r;\n host = document;\n } else {\n runtimeId = renderedComponents.r || DEFAULT_RUNTIME_ID;\n if (!host) host = document;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n \"Passing serialized data to `require('marko/components).init` is deprecated. Instead set '$global.runtimeId' and provide the 'runtimeId' option to your Marko bundler plugin.\"\n );\n }\n }\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (host !== document) {\n complain(\n \"Passing a document other than the current document to `require('marko/components).init` is deprecated.\"\n );\n }\n }\n\n var prefix = renderedComponents.p || \"\";\n var meta = serverRenderedMeta[prefix];\n var isLast = renderedComponents.l;\n\n if (meta) {\n if (isLast) {\n delete serverRenderedMeta[prefix];\n }\n } else {\n meta = {};\n\n if (!isLast) {\n serverRenderedMeta[prefix] = meta;\n }\n }\n\n // Ensure that event handlers to handle delegating events are\n // always attached before initializing any components\n indexServerComponentBoundaries(host, runtimeId);\n eventDelegation.___init(host);\n\n if (renderedComponents.g) {\n meta.___globals = renderedComponents.g;\n }\n\n if (renderedComponents.t) {\n meta.___types = meta.___types\n ? meta.___types.concat(renderedComponents.t)\n : renderedComponents.t;\n }\n\n // hydrate components top down (leaf nodes last)\n // and return an array of functions to mount these components\n (renderedComponents.w || [])\n .map(function (componentDef) {\n var typeName = meta.___types[componentDef[1]];\n\n return registry.___isRegistered(typeName)\n ? tryHydrateComponent(componentDef, meta, host, runtimeId)\n : registry.___addPendingDef(\n componentDef,\n typeName,\n meta,\n host,\n runtimeId\n );\n })\n .reverse()\n .forEach(tryInvoke);\n\n return this;\n}\n\nfunction tryHydrateComponent(rawDef, meta, host, runtimeId) {\n var componentDef = ComponentDef.___deserialize(\n rawDef,\n meta.___types,\n meta.___globals,\n registry\n );\n var mount = hydrateComponentAndGetMount(componentDef, host);\n\n if (!mount) {\n // hydrateComponentAndGetMount will return false if there is not rootNode\n // for the component. If this is the case, we'll wait until the\n // DOM has fully loaded to attempt to init the component again.\n if (deferredDefs) {\n deferredDefs.push(componentDef);\n } else {\n deferredDefs = [componentDef];\n document.addEventListener(\"DOMContentLoaded\", function () {\n indexServerComponentBoundaries(host, runtimeId);\n deferredDefs\n .map(function (componentDef) {\n return hydrateComponentAndGetMount(componentDef, host);\n })\n .reverse()\n .forEach(tryInvoke);\n deferredDefs = undefined;\n });\n }\n }\n\n return mount;\n}\n\nfunction hydrateComponentAndGetMount(componentDef, host) {\n var componentId = componentDef.id;\n var component = componentDef.___component;\n var rootNode = serverComponentRootNodes[componentId];\n var renderResult;\n\n if (rootNode) {\n delete serverComponentRootNodes[componentId];\n\n component.___rootNode = rootNode;\n componentsByDOMNode.set(rootNode, component);\n\n if (componentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER) {\n component.___host = host;\n renderResult = component.___rerender(component.___input, true);\n trackComponent(componentDef);\n return function mount() {\n renderResult.afterInsert(host);\n };\n } else {\n trackComponent(componentDef);\n }\n\n return function mount() {\n initComponent(componentDef, host);\n };\n }\n}\n\nfunction trackComponent(componentDef) {\n var component = componentDef.___component;\n if (component) {\n componentLookup[component.id] = component;\n }\n}\n\nfunction tryInvoke(fn) {\n if (fn) fn();\n}\n\nexports.___initClientRendered = initClientRendered;\nexports.___initServerRendered = initServerRendered;\nexports.___tryHydrateComponent = tryHydrateComponent;\n"],"file":"index-browser.js"}
@@ -35,7 +35,7 @@ function register(type, def) {
35
35
  return type;
36
36
  }
37
37
 
38
- function addPendingDef(def, type, meta, doc, runtimeId) {
38
+ function addPendingDef(def, type, meta, host, runtimeId) {
39
39
  if (!pendingDefs) {
40
40
  pendingDefs = {};
41
41
 
@@ -54,7 +54,7 @@ function addPendingDef(def, type, meta, doc, runtimeId) {
54
54
  (pendingDefs[type] = pendingDefs[type] || []).push([
55
55
  def,
56
56
  meta,
57
- doc,
57
+ host,
58
58
  runtimeId]);
59
59
 
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtime/components/registry/index-browser.js"],"names":["queueMicrotask","require","defineComponent","initComponents","registered","loaded","componentTypes","pendingDefs","register","type","def","pendingForType","forEach","args","addPendingDef","meta","doc","runtimeId","push","isRegistered","Boolean","load","typeName","target","Error","getComponentClass","ComponentClass","Component","renderer","prototype","createComponent","id","exports","r"],"mappings":"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","sourcesContent":["var complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar queueMicrotask = require(\"../../queueMicrotask\");\nvar defineComponent = require(\"../defineComponent\");\nvar initComponents = require(\"../init-components\");\nrequire(\"../entry\");\n\nvar registered = {};\nvar loaded = {};\nvar componentTypes = {};\nvar pendingDefs;\n\nfunction register(type, def) {\n var pendingForType;\n if (pendingDefs) {\n pendingForType = pendingDefs[type];\n }\n registered[type] = def;\n delete loaded[type];\n delete componentTypes[type];\n\n if (pendingForType) {\n delete pendingDefs[type];\n queueMicrotask(function () {\n pendingForType.forEach(function (args) {\n initComponents.___tryHydrateComponent(\n args[0],\n args[1],\n args[2],\n args[3]\n )();\n });\n });\n }\n\n return type;\n}\n\nfunction addPendingDef(def, type, meta, doc, runtimeId) {\n if (!pendingDefs) {\n pendingDefs = {};\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n doc.addEventListener(\"load\", function () {\n var pendingComponentIds = Object.keys(pendingDefs);\n if (pendingComponentIds.length) {\n complain(\n \"Marko templates were never loaded for: \" + pendingComponentIds\n );\n }\n });\n }\n }\n (pendingDefs[type] = pendingDefs[type] || []).push([\n def,\n meta,\n doc,\n runtimeId\n ]);\n}\n\nfunction isRegistered(type) {\n return Boolean(registered[type]);\n}\n\nfunction load(typeName) {\n var target = loaded[typeName];\n if (!target) {\n target = registered[typeName];\n\n if (target) {\n target = target();\n }\n\n if (!target) {\n throw Error(\"Component not found: \" + typeName);\n }\n\n loaded[typeName] = target;\n }\n\n return target;\n}\n\nfunction getComponentClass(typeName) {\n var ComponentClass = componentTypes[typeName];\n\n if (ComponentClass) {\n return ComponentClass;\n }\n\n ComponentClass = load(typeName);\n\n ComponentClass = ComponentClass.Component || ComponentClass;\n\n if (!ComponentClass.___isComponent) {\n ComponentClass = defineComponent(ComponentClass, ComponentClass.renderer);\n }\n\n // Make the component \"type\" accessible on each component instance\n ComponentClass.prototype.___type = typeName;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n var classNameMatch =\n /\\/([^/]+?)(?:\\/index|\\/template|)(?:\\.marko|\\.component(?:-browser)?|)$/.exec(\n typeName\n );\n var className = classNameMatch ? classNameMatch[1] : \"AnonymousComponent\";\n className = className.replace(/-(.)/g, function (g) {\n return g[1].toUpperCase();\n });\n className = className\n .replace(/\\$\\d+\\.\\d+\\.\\d+$/, \"\")\n .replace(/^[^a-z$_]/i, \"_$&\")\n .replace(/[^0-9a-z$_]+/gi, \"_\");\n className = className[0].toUpperCase() + className.slice(1);\n // eslint-disable-next-line no-unused-vars\n try {\n var OldComponentClass = ComponentClass;\n eval(\n \"ComponentClass = function \" +\n className +\n \"(id, doc) { OldComponentClass.call(this, id, doc); }\"\n );\n ComponentClass.prototype = OldComponentClass.prototype;\n } catch (e) {\n /** ignore error */\n }\n }\n\n componentTypes[typeName] = ComponentClass;\n\n return ComponentClass;\n}\n\nfunction createComponent(typeName, id) {\n var ComponentClass = getComponentClass(typeName);\n return new ComponentClass(id);\n}\n\nexports.r = register;\nexports.___getComponentClass = getComponentClass;\nexports.___createComponent = createComponent;\nexports.___isRegistered = isRegistered;\nexports.___addPendingDef = addPendingDef;\n"],"file":"index-browser.js"}
1
+ {"version":3,"sources":["../../../../src/runtime/components/registry/index-browser.js"],"names":["queueMicrotask","require","defineComponent","initComponents","registered","loaded","componentTypes","pendingDefs","register","type","def","pendingForType","forEach","args","addPendingDef","meta","host","runtimeId","push","isRegistered","Boolean","load","typeName","target","Error","getComponentClass","ComponentClass","Component","renderer","prototype","createComponent","id","exports","r"],"mappings":"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","sourcesContent":["var complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar queueMicrotask = require(\"../../queueMicrotask\");\nvar defineComponent = require(\"../defineComponent\");\nvar initComponents = require(\"../init-components\");\nrequire(\"../entry\");\n\nvar registered = {};\nvar loaded = {};\nvar componentTypes = {};\nvar pendingDefs;\n\nfunction register(type, def) {\n var pendingForType;\n if (pendingDefs) {\n pendingForType = pendingDefs[type];\n }\n registered[type] = def;\n delete loaded[type];\n delete componentTypes[type];\n\n if (pendingForType) {\n delete pendingDefs[type];\n queueMicrotask(function () {\n pendingForType.forEach(function (args) {\n initComponents.___tryHydrateComponent(\n args[0],\n args[1],\n args[2],\n args[3]\n )();\n });\n });\n }\n\n return type;\n}\n\nfunction addPendingDef(def, type, meta, host, runtimeId) {\n if (!pendingDefs) {\n pendingDefs = {};\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n document.addEventListener(\"load\", function () {\n var pendingComponentIds = Object.keys(pendingDefs);\n if (pendingComponentIds.length) {\n complain(\n \"Marko templates were never loaded for: \" + pendingComponentIds\n );\n }\n });\n }\n }\n (pendingDefs[type] = pendingDefs[type] || []).push([\n def,\n meta,\n host,\n runtimeId\n ]);\n}\n\nfunction isRegistered(type) {\n return Boolean(registered[type]);\n}\n\nfunction load(typeName) {\n var target = loaded[typeName];\n if (!target) {\n target = registered[typeName];\n\n if (target) {\n target = target();\n }\n\n if (!target) {\n throw Error(\"Component not found: \" + typeName);\n }\n\n loaded[typeName] = target;\n }\n\n return target;\n}\n\nfunction getComponentClass(typeName) {\n var ComponentClass = componentTypes[typeName];\n\n if (ComponentClass) {\n return ComponentClass;\n }\n\n ComponentClass = load(typeName);\n\n ComponentClass = ComponentClass.Component || ComponentClass;\n\n if (!ComponentClass.___isComponent) {\n ComponentClass = defineComponent(ComponentClass, ComponentClass.renderer);\n }\n\n // Make the component \"type\" accessible on each component instance\n ComponentClass.prototype.___type = typeName;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n var classNameMatch =\n /\\/([^/]+?)(?:\\/index|\\/template|)(?:\\.marko|\\.component(?:-browser)?|)$/.exec(\n typeName\n );\n var className = classNameMatch ? classNameMatch[1] : \"AnonymousComponent\";\n className = className.replace(/-(.)/g, function (g) {\n return g[1].toUpperCase();\n });\n className = className\n .replace(/\\$\\d+\\.\\d+\\.\\d+$/, \"\")\n .replace(/^[^a-z$_]/i, \"_$&\")\n .replace(/[^0-9a-z$_]+/gi, \"_\");\n className = className[0].toUpperCase() + className.slice(1);\n // eslint-disable-next-line no-unused-vars\n try {\n var OldComponentClass = ComponentClass;\n eval(\n \"ComponentClass = function \" +\n className +\n \"(id, doc) { OldComponentClass.call(this, id, doc); }\"\n );\n ComponentClass.prototype = OldComponentClass.prototype;\n } catch (e) {\n /** ignore error */\n }\n }\n\n componentTypes[typeName] = ComponentClass;\n\n return ComponentClass;\n}\n\nfunction createComponent(typeName, id) {\n var ComponentClass = getComponentClass(typeName);\n return new ComponentClass(id);\n}\n\nexports.r = register;\nexports.___getComponentClass = getComponentClass;\nexports.___createComponent = createComponent;\nexports.___isRegistered = isRegistered;\nexports.___addPendingDef = addPendingDef;\n"],"file":"index-browser.js"}
@@ -8,12 +8,13 @@ var runtimeId = markoUID.i++;
8
8
 
9
9
  var componentLookup = {};
10
10
 
11
- var defaultDocument = document;
12
11
  var EMPTY_OBJECT = {};
13
12
 
14
- function getComponentForEl(el, doc) {
13
+ function getComponentForEl(el, host) {
15
14
  var node =
16
- typeof el == "string" ? (doc || defaultDocument).getElementById(el) : el;
15
+ typeof el == "string" ?
16
+ ((host ? host.ownerDocument : host) || document).getElementById(el) :
17
+ el;
17
18
  var component;
18
19
  var vElement;
19
20
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtime/components/util/index-browser.js"],"names":["domData","require","componentsByDOMNode","keysByDOMNode","vElementsByDOMNode","vPropsByDOMNode","markoUID","window","$MUID","i","runtimeId","componentLookup","defaultDocument","document","EMPTY_OBJECT","getComponentForEl","el","doc","node","getElementById","component","vElement","fragment","endNode","startNode","get","previousSibling","parentNode","destroyComponentForNode","componentToDestroy","id","destroyNodeRecursive","nodeType","key","test","curChild","firstChild","nextSibling","nextComponentId","nextComponentIdProvider","attachBubblingEvent","componentDef","handlerMethodName","isOnce","extraArgs","componentId","getMarkoPropsFromEl","virtualProps","getAttribute","set","JSON","parse","normalizeComponentKey","parentId","replace","addComponentRootToKeyedElements","keyedElements","rootNode","repeatedElementsForKey","exports"],"mappings":"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","sourcesContent":["var domData = require(\"../dom-data\");\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar keysByDOMNode = domData.___keyByDOMNode;\nvar vElementsByDOMNode = domData.___vElementByDOMNode;\nvar vPropsByDOMNode = domData.___vPropsByDOMNode;\nvar markoUID = window.$MUID || (window.$MUID = { i: 0 });\nvar runtimeId = markoUID.i++;\n\nvar componentLookup = {};\n\nvar defaultDocument = document;\nvar EMPTY_OBJECT = {};\n\nfunction getComponentForEl(el, doc) {\n var node =\n typeof el == \"string\" ? (doc || defaultDocument).getElementById(el) : el;\n var component;\n var vElement;\n\n while (node) {\n if (node.fragment) {\n if (node.fragment.endNode === node) {\n node = node.fragment.startNode;\n } else {\n node = node.fragment;\n component = componentsByDOMNode.get(node);\n }\n } else if ((vElement = vElementsByDOMNode.get(node))) {\n component = vElement.___ownerComponent;\n }\n\n if (component) {\n return component;\n }\n\n node = node.previousSibling || node.parentNode;\n }\n}\n\nfunction destroyComponentForNode(node) {\n var componentToDestroy = componentsByDOMNode.get(node.fragment || node);\n if (componentToDestroy) {\n componentToDestroy.___destroyShallow();\n delete componentLookup[componentToDestroy.id];\n }\n}\nfunction destroyNodeRecursive(node, component) {\n destroyComponentForNode(node);\n if (node.nodeType === 1 || node.nodeType === 12) {\n var key;\n\n if (component && (key = keysByDOMNode.get(node))) {\n if (node === component.___keyedElements[key]) {\n if (componentsByDOMNode.get(node) && /\\[\\]$/.test(key)) {\n delete component.___keyedElements[key][\n componentsByDOMNode.get(node).id\n ];\n } else {\n delete component.___keyedElements[key];\n }\n }\n }\n\n var curChild = node.firstChild;\n while (curChild && curChild !== node.endNode) {\n destroyNodeRecursive(curChild, component);\n curChild = curChild.nextSibling;\n }\n }\n}\n\nfunction nextComponentId() {\n // Each component will get an ID that is unique across all loaded\n // marko runtimes. This allows multiple instances of marko to be\n // loaded in the same window and they should all place nice\n // together\n return \"c\" + markoUID.i++;\n}\n\nfunction nextComponentIdProvider() {\n return nextComponentId;\n}\n\nfunction attachBubblingEvent(\n componentDef,\n handlerMethodName,\n isOnce,\n extraArgs\n) {\n if (handlerMethodName) {\n var componentId = componentDef.id;\n if (extraArgs) {\n return [handlerMethodName, componentId, isOnce, extraArgs];\n } else {\n return [handlerMethodName, componentId, isOnce];\n }\n }\n}\n\nfunction getMarkoPropsFromEl(el) {\n var vElement = vElementsByDOMNode.get(el);\n var virtualProps;\n\n if (vElement) {\n virtualProps = vElement.___properties;\n } else {\n virtualProps = vPropsByDOMNode.get(el);\n if (!virtualProps) {\n virtualProps = el.getAttribute(\"data-marko\");\n vPropsByDOMNode.set(\n el,\n (virtualProps = virtualProps ? JSON.parse(virtualProps) : EMPTY_OBJECT)\n );\n }\n }\n\n return virtualProps;\n}\n\nfunction normalizeComponentKey(key, parentId) {\n if (key[0] === \"#\") {\n key = key.replace(\"#\" + parentId + \"-\", \"\");\n }\n return key;\n}\n\nfunction addComponentRootToKeyedElements(\n keyedElements,\n key,\n rootNode,\n componentId\n) {\n if (/\\[\\]$/.test(key)) {\n var repeatedElementsForKey = (keyedElements[key] =\n keyedElements[key] || {});\n repeatedElementsForKey[componentId] = rootNode;\n } else {\n keyedElements[key] = rootNode;\n }\n}\n\n// eslint-disable-next-line no-constant-condition\nif (\"MARKO_DEBUG\") {\n var warnNodeRemoved = function (event) {\n var fragment = event.target.fragment;\n if (fragment) {\n var baseError = new Error(\n \"Fragment boundary marker removed. This will cause an error when the fragment is updated.\"\n );\n fragment.___markersRemovedError = function (message) {\n var error = new Error(message + \" Boundary markers missing.\");\n\n baseError.stack = baseError.stack.replace(/.*warnNodeRemoved.*\\n/, \"\");\n\n // eslint-disable-next-line no-console\n console.warn(baseError);\n return error;\n };\n }\n };\n exports.___startDOMManipulationWarning = function () {\n document.addEventListener(\"DOMNodeRemoved\", warnNodeRemoved);\n };\n exports.___stopDOMManipulationWarning = function () {\n document.removeEventListener(\"DOMNodeRemoved\", warnNodeRemoved);\n };\n}\n\nexports.___runtimeId = runtimeId;\nexports.___componentLookup = componentLookup;\nexports.___getComponentForEl = getComponentForEl;\nexports.___destroyComponentForNode = destroyComponentForNode;\nexports.___destroyNodeRecursive = destroyNodeRecursive;\nexports.___nextComponentIdProvider = nextComponentIdProvider;\nexports.___attachBubblingEvent = attachBubblingEvent;\nexports.___getMarkoPropsFromEl = getMarkoPropsFromEl;\nexports.___addComponentRootToKeyedElements = addComponentRootToKeyedElements;\nexports.___normalizeComponentKey = normalizeComponentKey;\n"],"file":"index-browser.js"}
1
+ {"version":3,"sources":["../../../../src/runtime/components/util/index-browser.js"],"names":["domData","require","componentsByDOMNode","keysByDOMNode","vElementsByDOMNode","vPropsByDOMNode","markoUID","window","$MUID","i","runtimeId","componentLookup","EMPTY_OBJECT","getComponentForEl","el","host","node","ownerDocument","document","getElementById","component","vElement","fragment","endNode","startNode","get","previousSibling","parentNode","destroyComponentForNode","componentToDestroy","id","destroyNodeRecursive","nodeType","key","test","curChild","firstChild","nextSibling","nextComponentId","nextComponentIdProvider","attachBubblingEvent","componentDef","handlerMethodName","isOnce","extraArgs","componentId","getMarkoPropsFromEl","virtualProps","getAttribute","set","JSON","parse","normalizeComponentKey","parentId","replace","addComponentRootToKeyedElements","keyedElements","rootNode","repeatedElementsForKey","exports"],"mappings":"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","sourcesContent":["var domData = require(\"../dom-data\");\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar keysByDOMNode = domData.___keyByDOMNode;\nvar vElementsByDOMNode = domData.___vElementByDOMNode;\nvar vPropsByDOMNode = domData.___vPropsByDOMNode;\nvar markoUID = window.$MUID || (window.$MUID = { i: 0 });\nvar runtimeId = markoUID.i++;\n\nvar componentLookup = {};\n\nvar EMPTY_OBJECT = {};\n\nfunction getComponentForEl(el, host) {\n var node =\n typeof el == \"string\"\n ? ((host ? host.ownerDocument : host) || document).getElementById(el)\n : el;\n var component;\n var vElement;\n\n while (node) {\n if (node.fragment) {\n if (node.fragment.endNode === node) {\n node = node.fragment.startNode;\n } else {\n node = node.fragment;\n component = componentsByDOMNode.get(node);\n }\n } else if ((vElement = vElementsByDOMNode.get(node))) {\n component = vElement.___ownerComponent;\n }\n\n if (component) {\n return component;\n }\n\n node = node.previousSibling || node.parentNode;\n }\n}\n\nfunction destroyComponentForNode(node) {\n var componentToDestroy = componentsByDOMNode.get(node.fragment || node);\n if (componentToDestroy) {\n componentToDestroy.___destroyShallow();\n delete componentLookup[componentToDestroy.id];\n }\n}\nfunction destroyNodeRecursive(node, component) {\n destroyComponentForNode(node);\n if (node.nodeType === 1 || node.nodeType === 12) {\n var key;\n\n if (component && (key = keysByDOMNode.get(node))) {\n if (node === component.___keyedElements[key]) {\n if (componentsByDOMNode.get(node) && /\\[\\]$/.test(key)) {\n delete component.___keyedElements[key][\n componentsByDOMNode.get(node).id\n ];\n } else {\n delete component.___keyedElements[key];\n }\n }\n }\n\n var curChild = node.firstChild;\n while (curChild && curChild !== node.endNode) {\n destroyNodeRecursive(curChild, component);\n curChild = curChild.nextSibling;\n }\n }\n}\n\nfunction nextComponentId() {\n // Each component will get an ID that is unique across all loaded\n // marko runtimes. This allows multiple instances of marko to be\n // loaded in the same window and they should all place nice\n // together\n return \"c\" + markoUID.i++;\n}\n\nfunction nextComponentIdProvider() {\n return nextComponentId;\n}\n\nfunction attachBubblingEvent(\n componentDef,\n handlerMethodName,\n isOnce,\n extraArgs\n) {\n if (handlerMethodName) {\n var componentId = componentDef.id;\n if (extraArgs) {\n return [handlerMethodName, componentId, isOnce, extraArgs];\n } else {\n return [handlerMethodName, componentId, isOnce];\n }\n }\n}\n\nfunction getMarkoPropsFromEl(el) {\n var vElement = vElementsByDOMNode.get(el);\n var virtualProps;\n\n if (vElement) {\n virtualProps = vElement.___properties;\n } else {\n virtualProps = vPropsByDOMNode.get(el);\n if (!virtualProps) {\n virtualProps = el.getAttribute(\"data-marko\");\n vPropsByDOMNode.set(\n el,\n (virtualProps = virtualProps ? JSON.parse(virtualProps) : EMPTY_OBJECT)\n );\n }\n }\n\n return virtualProps;\n}\n\nfunction normalizeComponentKey(key, parentId) {\n if (key[0] === \"#\") {\n key = key.replace(\"#\" + parentId + \"-\", \"\");\n }\n return key;\n}\n\nfunction addComponentRootToKeyedElements(\n keyedElements,\n key,\n rootNode,\n componentId\n) {\n if (/\\[\\]$/.test(key)) {\n var repeatedElementsForKey = (keyedElements[key] =\n keyedElements[key] || {});\n repeatedElementsForKey[componentId] = rootNode;\n } else {\n keyedElements[key] = rootNode;\n }\n}\n\n// eslint-disable-next-line no-constant-condition\nif (\"MARKO_DEBUG\") {\n var warnNodeRemoved = function (event) {\n var fragment = event.target.fragment;\n if (fragment) {\n var baseError = new Error(\n \"Fragment boundary marker removed. This will cause an error when the fragment is updated.\"\n );\n fragment.___markersRemovedError = function (message) {\n var error = new Error(message + \" Boundary markers missing.\");\n\n baseError.stack = baseError.stack.replace(/.*warnNodeRemoved.*\\n/, \"\");\n\n // eslint-disable-next-line no-console\n console.warn(baseError);\n return error;\n };\n }\n };\n exports.___startDOMManipulationWarning = function (host) {\n host.addEventListener(\"DOMNodeRemoved\", warnNodeRemoved);\n };\n exports.___stopDOMManipulationWarning = function (host) {\n host.removeEventListener(\"DOMNodeRemoved\", warnNodeRemoved);\n };\n}\n\nexports.___runtimeId = runtimeId;\nexports.___componentLookup = componentLookup;\nexports.___getComponentForEl = getComponentForEl;\nexports.___destroyComponentForNode = destroyComponentForNode;\nexports.___destroyNodeRecursive = destroyNodeRecursive;\nexports.___nextComponentIdProvider = nextComponentIdProvider;\nexports.___attachBubblingEvent = attachBubblingEvent;\nexports.___getMarkoPropsFromEl = getMarkoPropsFromEl;\nexports.___addComponentRootToKeyedElements = addComponentRootToKeyedElements;\nexports.___normalizeComponentKey = normalizeComponentKey;\n"],"file":"index-browser.js"}
@@ -2,7 +2,6 @@
2
2
  var EventEmitter = require("events-light");
3
3
  var StringWriter = require("./StringWriter");
4
4
  var BufferedWriter = require("./BufferedWriter");
5
- var defaultDocument = typeof document != "undefined" && document;
6
5
  var RenderResult = require("../RenderResult");
7
6
  var attrsHelper = require("./helpers/attrs");
8
7
  var markoAttr = require("./helpers/data-marko");
@@ -115,7 +114,7 @@ AsyncStream.enableAsyncStackTrace = function () {
115
114
 
116
115
  var proto = AsyncStream.prototype = {
117
116
  constructor: AsyncStream,
118
- X_: defaultDocument,
117
+ X_: typeof window === "object" && document,
119
118
  aP_: true,
120
119
 
121
120
  sync: function () {
@@ -603,17 +602,16 @@ var proto = AsyncStream.prototype = {
603
602
  }
604
603
  },
605
604
 
606
- A_: function (doc) {
605
+ A_: function (host) {
607
606
  var node = this._node;
608
- var nextEl;
609
- var fragment;
610
- var html = this.B_();
611
-
612
- if (!doc) {
613
- doc = this.X_;
614
- }
615
607
 
616
608
  if (!node) {
609
+ var nextEl;
610
+ var fragment;
611
+ var html = this.B_();
612
+ if (!host) host = this.X_;
613
+ var doc = host.ownerDocument || host;
614
+
617
615
  if (html) {
618
616
  node = parseHTML(html);
619
617
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/html/AsyncStream.js"],"names":["EventEmitter","require","StringWriter","BufferedWriter","defaultDocument","document","RenderResult","attrsHelper","markoAttr","escapeXmlHelper","parseHTML","escapeXmlOrNullish","x","escapeXmlString","selfClosingTags","noop","voidWriter","write","script","merge","clear","get","toString","State","root","stream","writer","events","finished","escapeEndingComment","text","replace","AsyncStream","global","parentOut","Error","finalGlobal","attributes","originalStream","state","_state","on","runtimeId","_ended","_remaining","_lastCount","_last","undefined","_parentOut","data","_sync","_stack","name","_timeoutId","_node","_elStack","DEFAULT_TIMEOUT","INCLUDE_STACK","process","env","NODE_ENV","enableAsyncStackTrace","proto","prototype","constructor","sync","isSync","str","getOutput","_result","beginAsync","options","currentWriter","newWriter","newStream","next","timeout","last","getNonMarkoStack","setTimeout","error","emit","out","_doFinish","end","remaining","_flushNext","_emitLast","timeoutId","clearTimeout","_handleChildDone","childOut","nextWriter","nextStream","event","callback","onLast","once","lastArray","push","i","length","lastCallback","type","arg","arguments","apply","removeListener","prependListener","pipe","e","stack","JSON","stringify","message","flush","scheduleFlush","createOut","newOut","bind","tagName","elementAttrs","key","componentDef","props","voidElements","indexOf","svgElements","element","openTagOnly","beginElement","endElement","pop","comment","bf","component","preserve","ef","doc","node","nextEl","fragment","html","nextSibling","createDocumentFragment","appendChild","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","c","customEvents","w","module","exports","split","slice","filter","line","test","join"],"mappings":"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","sourcesContent":["\"use strict\";\nvar EventEmitter = require(\"events-light\");\nvar StringWriter = require(\"./StringWriter\");\nvar BufferedWriter = require(\"./BufferedWriter\");\nvar defaultDocument = typeof document != \"undefined\" && document;\nvar RenderResult = require(\"../RenderResult\");\nvar attrsHelper = require(\"./helpers/attrs\");\nvar markoAttr = require(\"./helpers/data-marko\");\nvar escapeXmlHelper = require(\"./helpers/escape-xml\");\nvar parseHTML = require(\"../vdom/parse-html\");\nvar escapeXmlOrNullish = escapeXmlHelper.x;\nvar escapeXmlString = escapeXmlHelper.___escapeXML;\nvar selfClosingTags = require(\"self-closing-tags\");\n\nfunction noop() {}\n\nvar voidWriter = {\n write: noop,\n script: noop,\n merge: noop,\n clear: noop,\n get: function () {\n return [];\n },\n toString: function () {\n return \"\";\n }\n};\n\nfunction State(root, stream, writer, events) {\n this.root = root;\n this.stream = stream;\n this.writer = writer;\n this.events = events;\n\n this.finished = false;\n}\n\nfunction escapeEndingComment(text) {\n return text.replace(/-->/g, \"--&gt;\");\n}\n\nfunction AsyncStream(global, writer, parentOut) {\n if (parentOut === null) {\n throw new Error(\"illegal state\");\n }\n var finalGlobal = (this.attributes = global || {});\n var originalStream;\n var state;\n\n if (parentOut) {\n state = parentOut._state;\n originalStream = state.stream;\n } else {\n var events = (finalGlobal.events /* deprecated */ =\n writer && writer.on ? writer : new EventEmitter());\n\n if (writer) {\n originalStream = writer;\n writer = new BufferedWriter(writer);\n } else {\n writer = originalStream = new StringWriter();\n }\n\n state = new State(this, originalStream, writer, events);\n writer.state = state;\n }\n\n finalGlobal.runtimeId = finalGlobal.runtimeId || \"M\";\n this.global = finalGlobal;\n this.stream = originalStream;\n this._state = state;\n\n this._ended = false;\n this._remaining = 1;\n this._lastCount = 0;\n this._last = undefined; // Array\n this._parentOut = parentOut;\n\n this.data = {};\n this.writer = writer;\n writer.stream = this;\n\n this._sync = false;\n this._stack = undefined;\n this.name = undefined;\n this._timeoutId = undefined;\n\n this._node = undefined;\n\n this._elStack = undefined; // Array\n\n this.___components = null; // ComponentsContext\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n this.___isLast = false;\n}\n\nAsyncStream.DEFAULT_TIMEOUT = 10000;\n\n/**\n * If set to `true`, AsyncStream errors will include the full stack trace\n */\nAsyncStream.INCLUDE_STACK =\n typeof process !== \"undefined\" &&\n (!process.env.NODE_ENV ||\n process.env.NODE_ENV === \"development\" ||\n process.env.NODE_ENV === \"dev\");\n\nAsyncStream.enableAsyncStackTrace = function () {\n AsyncStream.INCLUDE_STACK = true;\n};\n\nvar proto = (AsyncStream.prototype = {\n constructor: AsyncStream,\n ___document: defaultDocument,\n ___isOut: true,\n\n sync: function () {\n this._sync = true;\n },\n\n isSync: function () {\n return this._sync === true;\n },\n\n write: function (str) {\n if (str != null) {\n this.writer.write(str.toString());\n }\n return this;\n },\n\n script: function (str) {\n if (str != null) {\n this.writer.script(str.toString());\n }\n return this;\n },\n\n ___getOutput: function () {\n return this._state.writer.toString();\n },\n\n /**\n * Legacy...\n */\n getOutput: function () {\n return this.___getOutput();\n },\n\n toString: function () {\n return this._state.writer.toString();\n },\n\n ___getResult: function () {\n this._result = this._result || new RenderResult(this);\n return this._result;\n },\n\n beginAsync: function (options) {\n if (this._sync) {\n throw new Error(\"beginAsync() not allowed when using renderSync()\");\n }\n\n var state = this._state;\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this\n ┃ WAS ┃ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → nextWriter */\n\n var newWriter = new StringWriter();\n var newStream = new AsyncStream(this.global, currentWriter, this);\n newWriter.state = state;\n\n this.writer = newWriter;\n newWriter.stream = this;\n\n newWriter.next = currentWriter.next;\n currentWriter.next = newWriter;\n\n /* ┏━━━━━┓ newStream this\n ┃ NOW ┃ ↓↑ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → newWriter → nextWriter */\n\n var timeout;\n var name;\n\n this._remaining++;\n\n if (options != null) {\n if (typeof options === \"number\") {\n timeout = options;\n } else {\n timeout = options.timeout;\n\n if (options.last === true) {\n if (timeout == null) {\n // Don't assign a timeout to last flush fragments\n // unless it is explicitly given a timeout\n timeout = 0;\n }\n\n this._lastCount++;\n newStream.___isLast = true;\n }\n\n name = options.name;\n }\n }\n\n if (timeout == null) {\n timeout = AsyncStream.DEFAULT_TIMEOUT;\n }\n\n newStream._stack = AsyncStream.INCLUDE_STACK\n ? getNonMarkoStack(new Error())\n : null;\n newStream.name = name;\n\n if (timeout > 0) {\n newStream._timeoutId = setTimeout(function () {\n newStream.error(\n new Error(\n \"Async fragment \" +\n (name ? \"(\" + name + \") \" : \"\") +\n \"timed out after \" +\n timeout +\n \"ms\"\n )\n );\n }, timeout);\n }\n\n state.events.emit(\"beginAsync\", {\n out: newStream,\n parentOut: this\n });\n\n return newStream;\n },\n\n _doFinish: function () {\n var state = this._state;\n\n state.finished = true;\n\n if (state.writer.end) {\n state.writer.end();\n } else {\n state.events.emit(\"finish\", this.___getResult());\n }\n },\n\n end: function (data) {\n if (this._ended === true) {\n return;\n }\n\n this._ended = true;\n\n var remaining = --this._remaining;\n\n if (data != null) {\n this.write(data);\n }\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this nextStream\n ┃ WAS ┃ ↓↑ ↓↑\n ┗━━━━━┛ currentWriter → nextWriter → futureWriter */\n\n // Prevent any more writes to the current steam\n this.writer = voidWriter;\n currentWriter.stream = null;\n\n // Flush the contents of nextWriter to the currentWriter\n this._flushNext(currentWriter);\n\n /* ┏━━━━━┓ this ╵ nextStream\n ┃ ┃ ↓ ╵ ↓↑\n ┃ NOW ┃ voidWriter ╵ currentWriter → futureWriter\n ┃ ┃ ──────────────┴────────────────────────────────\n ┗━━━━━┛ Flushed & garbage collected: nextWriter */\n\n var parentOut = this._parentOut;\n\n if (parentOut === undefined) {\n if (remaining === 0) {\n this._doFinish();\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n } else {\n var timeoutId = this._timeoutId;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n if (remaining === 0) {\n parentOut._handleChildDone(this);\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n\n return this;\n },\n\n _handleChildDone: function (childOut) {\n var remaining = --this._remaining;\n\n if (remaining === 0) {\n var parentOut = this._parentOut;\n if (parentOut === undefined) {\n this._doFinish();\n } else {\n parentOut._handleChildDone(this);\n }\n } else {\n if (childOut.___isLast) {\n this._lastCount--;\n }\n\n if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n },\n\n _flushNext: function (currentWriter) {\n // It is possible that currentWriter is the\n // last writer in the chain, so let's make\n // sure there is a nextWriter to flush.\n var nextWriter = currentWriter.next;\n if (nextWriter) {\n // Flush the contents of nextWriter\n // to the currentWriter\n currentWriter.merge(nextWriter);\n\n // Remove nextWriter from the chain.\n // It has been flushed and can now be\n // garbage collected.\n currentWriter.next = nextWriter.next;\n\n // It's possible that nextWriter is the last\n // writer in the chain and its stream already\n // ended, so let's make sure nextStream exists.\n var nextStream = nextWriter.stream;\n if (nextStream) {\n // Point the nextStream to currentWriter\n nextStream.writer = currentWriter;\n currentWriter.stream = nextStream;\n }\n }\n },\n\n on: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.once(event, callback);\n }\n\n return this;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n _emitLast: function () {\n if (this._last) {\n var i = 0;\n var lastArray = this._last;\n this._last = undefined;\n (function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (lastCallback.length === 0) {\n next();\n }\n })();\n }\n },\n\n emit: function (type, arg) {\n var events = this._state.events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this._state.events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n prependListener: function () {\n var events = this._state.events;\n events.prependListener.apply(events, arguments);\n return this;\n },\n\n pipe: function (stream) {\n this._state.stream.pipe(stream);\n return this;\n },\n\n error: function (e) {\n var name = this.name;\n var stack = this._stack;\n\n if (!(e instanceof Error)) {\n e = new Error(JSON.stringify(e));\n }\n\n if (name || stack) {\n e.message +=\n \"\\nRendered by\" +\n (name ? \" \" + name : \"\") +\n (stack ? \":\\n\" + stack : \"\");\n }\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n flush: function () {\n var state = this._state;\n\n if (!state.finished) {\n var writer = state.writer;\n if (writer && writer.scheduleFlush) {\n writer.scheduleFlush();\n }\n }\n return this;\n },\n\n createOut: function () {\n var newOut = new AsyncStream(this.global);\n // Forward error events to the parent out.\n newOut.on(\"error\", this.emit.bind(this, \"error\"));\n this._state.events.emit(\"beginDetachedAsync\", {\n out: newOut,\n parentOut: this\n });\n return newOut;\n },\n\n ___elementDynamic: function (\n tagName,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n tagName +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs);\n\n if (selfClosingTags.voidElements.indexOf(tagName) !== -1) {\n str += \">\";\n } else if (selfClosingTags.svgElements.indexOf(tagName) !== -1) {\n str += \"/>\";\n } else {\n str += \"></\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n element: function (tagName, elementAttrs, openTagOnly) {\n var str = \"<\" + tagName + attrsHelper(elementAttrs) + \">\";\n\n if (openTagOnly !== true) {\n str += \"</\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n ___beginElementDynamic: function (\n name,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n name +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs) +\n \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n beginElement: function (name, elementAttrs) {\n var str = \"<\" + name + attrsHelper(elementAttrs) + \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n endElement: function () {\n var tagName = this._elStack.pop();\n this.write(\"</\" + tagName + \">\");\n },\n\n comment: function (str) {\n this.write(\"<!--\" + escapeEndingComment(str) + \"-->\");\n },\n\n text: function (str) {\n this.write(escapeXmlOrNullish(str));\n },\n\n bf: function (key, component, preserve) {\n if (preserve) {\n this.write(\"<!--F#\" + escapeXmlString(key) + \"-->\");\n }\n if (this._elStack) {\n this._elStack.push(preserve);\n } else {\n this._elStack = [preserve];\n }\n },\n\n ef: function () {\n var preserve = this._elStack.pop();\n if (preserve) {\n this.write(\"<!--F/-->\");\n }\n },\n\n ___getNode: function (doc) {\n var node = this._node;\n var nextEl;\n var fragment;\n var html = this.___getOutput();\n\n if (!doc) {\n doc = this.___document;\n }\n\n if (!node) {\n if (html) {\n node = parseHTML(html);\n\n if (node && node.nextSibling) {\n // If there are multiple nodes, turn it into a document fragment.\n fragment = doc.createDocumentFragment();\n\n do {\n nextEl = node.nextSibling;\n fragment.appendChild(node);\n } while ((node = nextEl));\n\n node = fragment;\n }\n }\n\n // if HTML is empty use empty document fragment (so that we're returning a valid DOM node)\n this._node = node || doc.createDocumentFragment();\n }\n return node;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject);\n out.on(\"finish\", function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\n// alias:\nproto.w = proto.write;\nproto.___endElement = proto.endElement;\n\nmodule.exports = AsyncStream;\n\nfunction getNonMarkoStack(error) {\n return error.stack\n .toString()\n .split(\"\\n\")\n .slice(1)\n .filter(line => !/\\/node_modules\\/marko\\//.test(line))\n .join(\"\\n\");\n}\n"],"file":"AsyncStream.js"}
1
+ {"version":3,"sources":["../../../src/runtime/html/AsyncStream.js"],"names":["EventEmitter","require","StringWriter","BufferedWriter","RenderResult","attrsHelper","markoAttr","escapeXmlHelper","parseHTML","escapeXmlOrNullish","x","escapeXmlString","selfClosingTags","noop","voidWriter","write","script","merge","clear","get","toString","State","root","stream","writer","events","finished","escapeEndingComment","text","replace","AsyncStream","global","parentOut","Error","finalGlobal","attributes","originalStream","state","_state","on","runtimeId","_ended","_remaining","_lastCount","_last","undefined","_parentOut","data","_sync","_stack","name","_timeoutId","_node","_elStack","DEFAULT_TIMEOUT","INCLUDE_STACK","process","env","NODE_ENV","enableAsyncStackTrace","proto","prototype","constructor","window","document","sync","isSync","str","getOutput","_result","beginAsync","options","currentWriter","newWriter","newStream","next","timeout","last","getNonMarkoStack","setTimeout","error","emit","out","_doFinish","end","remaining","_flushNext","_emitLast","timeoutId","clearTimeout","_handleChildDone","childOut","nextWriter","nextStream","event","callback","onLast","once","lastArray","push","i","length","lastCallback","type","arg","arguments","apply","removeListener","prependListener","pipe","e","stack","JSON","stringify","message","flush","scheduleFlush","createOut","newOut","bind","tagName","elementAttrs","key","componentDef","props","voidElements","indexOf","svgElements","element","openTagOnly","beginElement","endElement","pop","comment","bf","component","preserve","ef","host","node","nextEl","fragment","html","doc","ownerDocument","nextSibling","createDocumentFragment","appendChild","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","c","customEvents","w","module","exports","split","slice","filter","line","test","join"],"mappings":"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","sourcesContent":["\"use strict\";\nvar EventEmitter = require(\"events-light\");\nvar StringWriter = require(\"./StringWriter\");\nvar BufferedWriter = require(\"./BufferedWriter\");\nvar RenderResult = require(\"../RenderResult\");\nvar attrsHelper = require(\"./helpers/attrs\");\nvar markoAttr = require(\"./helpers/data-marko\");\nvar escapeXmlHelper = require(\"./helpers/escape-xml\");\nvar parseHTML = require(\"../vdom/parse-html\");\nvar escapeXmlOrNullish = escapeXmlHelper.x;\nvar escapeXmlString = escapeXmlHelper.___escapeXML;\nvar selfClosingTags = require(\"self-closing-tags\");\n\nfunction noop() {}\n\nvar voidWriter = {\n write: noop,\n script: noop,\n merge: noop,\n clear: noop,\n get: function () {\n return [];\n },\n toString: function () {\n return \"\";\n }\n};\n\nfunction State(root, stream, writer, events) {\n this.root = root;\n this.stream = stream;\n this.writer = writer;\n this.events = events;\n\n this.finished = false;\n}\n\nfunction escapeEndingComment(text) {\n return text.replace(/-->/g, \"--&gt;\");\n}\n\nfunction AsyncStream(global, writer, parentOut) {\n if (parentOut === null) {\n throw new Error(\"illegal state\");\n }\n var finalGlobal = (this.attributes = global || {});\n var originalStream;\n var state;\n\n if (parentOut) {\n state = parentOut._state;\n originalStream = state.stream;\n } else {\n var events = (finalGlobal.events /* deprecated */ =\n writer && writer.on ? writer : new EventEmitter());\n\n if (writer) {\n originalStream = writer;\n writer = new BufferedWriter(writer);\n } else {\n writer = originalStream = new StringWriter();\n }\n\n state = new State(this, originalStream, writer, events);\n writer.state = state;\n }\n\n finalGlobal.runtimeId = finalGlobal.runtimeId || \"M\";\n this.global = finalGlobal;\n this.stream = originalStream;\n this._state = state;\n\n this._ended = false;\n this._remaining = 1;\n this._lastCount = 0;\n this._last = undefined; // Array\n this._parentOut = parentOut;\n\n this.data = {};\n this.writer = writer;\n writer.stream = this;\n\n this._sync = false;\n this._stack = undefined;\n this.name = undefined;\n this._timeoutId = undefined;\n\n this._node = undefined;\n\n this._elStack = undefined; // Array\n\n this.___components = null; // ComponentsContext\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n this.___isLast = false;\n}\n\nAsyncStream.DEFAULT_TIMEOUT = 10000;\n\n/**\n * If set to `true`, AsyncStream errors will include the full stack trace\n */\nAsyncStream.INCLUDE_STACK =\n typeof process !== \"undefined\" &&\n (!process.env.NODE_ENV ||\n process.env.NODE_ENV === \"development\" ||\n process.env.NODE_ENV === \"dev\");\n\nAsyncStream.enableAsyncStackTrace = function () {\n AsyncStream.INCLUDE_STACK = true;\n};\n\nvar proto = (AsyncStream.prototype = {\n constructor: AsyncStream,\n ___host: typeof window === \"object\" && document,\n ___isOut: true,\n\n sync: function () {\n this._sync = true;\n },\n\n isSync: function () {\n return this._sync === true;\n },\n\n write: function (str) {\n if (str != null) {\n this.writer.write(str.toString());\n }\n return this;\n },\n\n script: function (str) {\n if (str != null) {\n this.writer.script(str.toString());\n }\n return this;\n },\n\n ___getOutput: function () {\n return this._state.writer.toString();\n },\n\n /**\n * Legacy...\n */\n getOutput: function () {\n return this.___getOutput();\n },\n\n toString: function () {\n return this._state.writer.toString();\n },\n\n ___getResult: function () {\n this._result = this._result || new RenderResult(this);\n return this._result;\n },\n\n beginAsync: function (options) {\n if (this._sync) {\n throw new Error(\"beginAsync() not allowed when using renderSync()\");\n }\n\n var state = this._state;\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this\n ┃ WAS ┃ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → nextWriter */\n\n var newWriter = new StringWriter();\n var newStream = new AsyncStream(this.global, currentWriter, this);\n newWriter.state = state;\n\n this.writer = newWriter;\n newWriter.stream = this;\n\n newWriter.next = currentWriter.next;\n currentWriter.next = newWriter;\n\n /* ┏━━━━━┓ newStream this\n ┃ NOW ┃ ↓↑ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → newWriter → nextWriter */\n\n var timeout;\n var name;\n\n this._remaining++;\n\n if (options != null) {\n if (typeof options === \"number\") {\n timeout = options;\n } else {\n timeout = options.timeout;\n\n if (options.last === true) {\n if (timeout == null) {\n // Don't assign a timeout to last flush fragments\n // unless it is explicitly given a timeout\n timeout = 0;\n }\n\n this._lastCount++;\n newStream.___isLast = true;\n }\n\n name = options.name;\n }\n }\n\n if (timeout == null) {\n timeout = AsyncStream.DEFAULT_TIMEOUT;\n }\n\n newStream._stack = AsyncStream.INCLUDE_STACK\n ? getNonMarkoStack(new Error())\n : null;\n newStream.name = name;\n\n if (timeout > 0) {\n newStream._timeoutId = setTimeout(function () {\n newStream.error(\n new Error(\n \"Async fragment \" +\n (name ? \"(\" + name + \") \" : \"\") +\n \"timed out after \" +\n timeout +\n \"ms\"\n )\n );\n }, timeout);\n }\n\n state.events.emit(\"beginAsync\", {\n out: newStream,\n parentOut: this\n });\n\n return newStream;\n },\n\n _doFinish: function () {\n var state = this._state;\n\n state.finished = true;\n\n if (state.writer.end) {\n state.writer.end();\n } else {\n state.events.emit(\"finish\", this.___getResult());\n }\n },\n\n end: function (data) {\n if (this._ended === true) {\n return;\n }\n\n this._ended = true;\n\n var remaining = --this._remaining;\n\n if (data != null) {\n this.write(data);\n }\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this nextStream\n ┃ WAS ┃ ↓↑ ↓↑\n ┗━━━━━┛ currentWriter → nextWriter → futureWriter */\n\n // Prevent any more writes to the current steam\n this.writer = voidWriter;\n currentWriter.stream = null;\n\n // Flush the contents of nextWriter to the currentWriter\n this._flushNext(currentWriter);\n\n /* ┏━━━━━┓ this ╵ nextStream\n ┃ ┃ ↓ ╵ ↓↑\n ┃ NOW ┃ voidWriter ╵ currentWriter → futureWriter\n ┃ ┃ ──────────────┴────────────────────────────────\n ┗━━━━━┛ Flushed & garbage collected: nextWriter */\n\n var parentOut = this._parentOut;\n\n if (parentOut === undefined) {\n if (remaining === 0) {\n this._doFinish();\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n } else {\n var timeoutId = this._timeoutId;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n if (remaining === 0) {\n parentOut._handleChildDone(this);\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n\n return this;\n },\n\n _handleChildDone: function (childOut) {\n var remaining = --this._remaining;\n\n if (remaining === 0) {\n var parentOut = this._parentOut;\n if (parentOut === undefined) {\n this._doFinish();\n } else {\n parentOut._handleChildDone(this);\n }\n } else {\n if (childOut.___isLast) {\n this._lastCount--;\n }\n\n if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n },\n\n _flushNext: function (currentWriter) {\n // It is possible that currentWriter is the\n // last writer in the chain, so let's make\n // sure there is a nextWriter to flush.\n var nextWriter = currentWriter.next;\n if (nextWriter) {\n // Flush the contents of nextWriter\n // to the currentWriter\n currentWriter.merge(nextWriter);\n\n // Remove nextWriter from the chain.\n // It has been flushed and can now be\n // garbage collected.\n currentWriter.next = nextWriter.next;\n\n // It's possible that nextWriter is the last\n // writer in the chain and its stream already\n // ended, so let's make sure nextStream exists.\n var nextStream = nextWriter.stream;\n if (nextStream) {\n // Point the nextStream to currentWriter\n nextStream.writer = currentWriter;\n currentWriter.stream = nextStream;\n }\n }\n },\n\n on: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.once(event, callback);\n }\n\n return this;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n _emitLast: function () {\n if (this._last) {\n var i = 0;\n var lastArray = this._last;\n this._last = undefined;\n (function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (lastCallback.length === 0) {\n next();\n }\n })();\n }\n },\n\n emit: function (type, arg) {\n var events = this._state.events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this._state.events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n prependListener: function () {\n var events = this._state.events;\n events.prependListener.apply(events, arguments);\n return this;\n },\n\n pipe: function (stream) {\n this._state.stream.pipe(stream);\n return this;\n },\n\n error: function (e) {\n var name = this.name;\n var stack = this._stack;\n\n if (!(e instanceof Error)) {\n e = new Error(JSON.stringify(e));\n }\n\n if (name || stack) {\n e.message +=\n \"\\nRendered by\" +\n (name ? \" \" + name : \"\") +\n (stack ? \":\\n\" + stack : \"\");\n }\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n flush: function () {\n var state = this._state;\n\n if (!state.finished) {\n var writer = state.writer;\n if (writer && writer.scheduleFlush) {\n writer.scheduleFlush();\n }\n }\n return this;\n },\n\n createOut: function () {\n var newOut = new AsyncStream(this.global);\n // Forward error events to the parent out.\n newOut.on(\"error\", this.emit.bind(this, \"error\"));\n this._state.events.emit(\"beginDetachedAsync\", {\n out: newOut,\n parentOut: this\n });\n return newOut;\n },\n\n ___elementDynamic: function (\n tagName,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n tagName +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs);\n\n if (selfClosingTags.voidElements.indexOf(tagName) !== -1) {\n str += \">\";\n } else if (selfClosingTags.svgElements.indexOf(tagName) !== -1) {\n str += \"/>\";\n } else {\n str += \"></\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n element: function (tagName, elementAttrs, openTagOnly) {\n var str = \"<\" + tagName + attrsHelper(elementAttrs) + \">\";\n\n if (openTagOnly !== true) {\n str += \"</\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n ___beginElementDynamic: function (\n name,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n name +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs) +\n \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n beginElement: function (name, elementAttrs) {\n var str = \"<\" + name + attrsHelper(elementAttrs) + \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n endElement: function () {\n var tagName = this._elStack.pop();\n this.write(\"</\" + tagName + \">\");\n },\n\n comment: function (str) {\n this.write(\"<!--\" + escapeEndingComment(str) + \"-->\");\n },\n\n text: function (str) {\n this.write(escapeXmlOrNullish(str));\n },\n\n bf: function (key, component, preserve) {\n if (preserve) {\n this.write(\"<!--F#\" + escapeXmlString(key) + \"-->\");\n }\n if (this._elStack) {\n this._elStack.push(preserve);\n } else {\n this._elStack = [preserve];\n }\n },\n\n ef: function () {\n var preserve = this._elStack.pop();\n if (preserve) {\n this.write(\"<!--F/-->\");\n }\n },\n\n ___getNode: function (host) {\n var node = this._node;\n\n if (!node) {\n var nextEl;\n var fragment;\n var html = this.___getOutput();\n if (!host) host = this.___host;\n var doc = host.ownerDocument || host;\n\n if (html) {\n node = parseHTML(html);\n\n if (node && node.nextSibling) {\n // If there are multiple nodes, turn it into a document fragment.\n fragment = doc.createDocumentFragment();\n\n do {\n nextEl = node.nextSibling;\n fragment.appendChild(node);\n } while ((node = nextEl));\n\n node = fragment;\n }\n }\n\n // if HTML is empty use empty document fragment (so that we're returning a valid DOM node)\n this._node = node || doc.createDocumentFragment();\n }\n return node;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject);\n out.on(\"finish\", function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\n// alias:\nproto.w = proto.write;\nproto.___endElement = proto.endElement;\n\nmodule.exports = AsyncStream;\n\nfunction getNonMarkoStack(error) {\n return error.stack\n .toString()\n .split(\"\\n\")\n .slice(1)\n .filter(line => !/\\/node_modules\\/marko\\//.test(line))\n .join(\"\\n\");\n}\n"],"file":"AsyncStream.js"}