marko 5.19.2 → 5.20.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -79,16 +79,6 @@ function addDelegatedEventHandlerToHost(eventType, host) {
79
79
  (host.body || host).addEventListener(
80
80
  eventType,
81
81
  listeners[eventType] = function (event) {
82
- var propagationStopped = false;
83
-
84
- // Monkey-patch to fix #97
85
- var oldStopPropagation = event.stopPropagation;
86
-
87
- event.stopPropagation = function () {
88
- oldStopPropagation.call(event);
89
- propagationStopped = true;
90
- };
91
-
92
82
  var curNode = event.target;
93
83
  if (!curNode) {
94
84
  return;
@@ -111,15 +101,29 @@ function addDelegatedEventHandlerToHost(eventType, host) {
111
101
  // Attributes will have the following form:
112
102
  // on<event_type>("<target_method>|<component_id>")
113
103
 
114
- do {
115
- if (target = getEventFromEl(curNode, propName)) {
116
- delegateEvent(curNode, propName, target, event);
104
+ if (event.bubbles) {
105
+ var propagationStopped = false;
106
+
107
+ // Monkey-patch to fix #97
108
+ var oldStopPropagation = event.stopPropagation;
117
109
 
118
- if (propagationStopped) {
119
- break;
110
+ event.stopPropagation = function () {
111
+ oldStopPropagation.call(event);
112
+ propagationStopped = true;
113
+ };
114
+
115
+ do {
116
+ if (target = getEventFromEl(curNode, propName)) {
117
+ delegateEvent(curNode, propName, target, event);
118
+
119
+ if (propagationStopped) {
120
+ break;
121
+ }
120
122
  }
121
- }
122
- } while ((curNode = curNode.parentNode) && curNode.getAttribute);
123
+ } while ((curNode = curNode.parentNode) && curNode.getAttribute);
124
+ } else if (target = getEventFromEl(curNode, propName)) {
125
+ delegateEvent(curNode, propName, target, event);
126
+ }
123
127
  },
124
128
  true);
125
129
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/components/event-delegation.js"],"names":["componentsUtil","require","runtimeId","componentLookup","getMarkoPropsFromEl","TEXT_NODE","listenersAttachedKey","delegatedEvents","getEventFromEl","el","eventName","virtualProps","eventInfo","split","length","parseInt","delegateEvent","node","target","event","targetMethod","targetComponentId","isOnce","extraArgs","targetComponent","targetFunc","Error","apply","concat","call","addDelegatedEventHandler","eventType","addDelegatedEventHandlerToHost","host","listeners","body","addEventListener","propagationStopped","oldStopPropagation","stopPropagation","curNode","correspondingUseElement","nodeType","parentNode","propName","getAttribute","noop","exports","Object","keys","forEach"],"mappings":"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","sourcesContent":["var componentsUtil = require(\"./util\");\nvar runtimeId = componentsUtil.___runtimeId;\nvar componentLookup = componentsUtil.___componentLookup;\nvar getMarkoPropsFromEl = componentsUtil.___getMarkoPropsFromEl;\n\nvar TEXT_NODE = 3;\n\n// We make our best effort to allow multiple marko runtimes to be loaded in the\n// same window. Each marko runtime will get its own unique runtime ID.\nvar listenersAttachedKey = \"$MDE\" + runtimeId;\nvar delegatedEvents = {};\n\nfunction getEventFromEl(el, eventName) {\n var virtualProps = getMarkoPropsFromEl(el);\n var eventInfo = virtualProps[eventName];\n\n if (typeof eventInfo === \"string\") {\n eventInfo = eventInfo.split(\" \");\n if (eventInfo[2]) {\n eventInfo[2] = eventInfo[2] === \"true\";\n }\n if (eventInfo.length == 4) {\n eventInfo[3] = parseInt(eventInfo[3], 10);\n }\n }\n\n return eventInfo;\n}\n\nfunction delegateEvent(node, eventName, target, event) {\n var targetMethod = target[0];\n var targetComponentId = target[1];\n var isOnce = target[2];\n var extraArgs = target[3];\n\n if (isOnce) {\n var virtualProps = getMarkoPropsFromEl(node);\n delete virtualProps[eventName];\n }\n\n var targetComponent = componentLookup[targetComponentId];\n\n if (!targetComponent) {\n return;\n }\n\n var targetFunc =\n typeof targetMethod === \"function\"\n ? targetMethod\n : targetComponent[targetMethod];\n if (!targetFunc) {\n throw Error(\"Method not found: \" + targetMethod);\n }\n\n if (extraArgs != null) {\n if (typeof extraArgs === \"number\") {\n extraArgs = targetComponent.___bubblingDomEvents[extraArgs];\n }\n }\n\n // Invoke the component method\n if (extraArgs) {\n targetFunc.apply(targetComponent, extraArgs.concat(event, node));\n } else {\n targetFunc.call(targetComponent, event, node);\n }\n}\n\nfunction addDelegatedEventHandler(eventType) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = true;\n }\n}\n\nfunction addDelegatedEventHandlerToHost(eventType, host) {\n var listeners = (host[listenersAttachedKey] =\n host[listenersAttachedKey] || {});\n if (!listeners[eventType]) {\n (host.body || host).addEventListener(\n eventType,\n (listeners[eventType] = function (event) {\n var propagationStopped = false;\n\n // Monkey-patch to fix #97\n var oldStopPropagation = event.stopPropagation;\n\n event.stopPropagation = function () {\n oldStopPropagation.call(event);\n propagationStopped = true;\n };\n\n var curNode = event.target;\n if (!curNode) {\n return;\n }\n\n curNode =\n // event.target of an SVGElementInstance does not have a\n // `getAttribute` function in IE 11.\n // See https://github.com/marko-js/marko/issues/796\n curNode.correspondingUseElement ||\n // in some browsers the event target can be a text node\n // one example being dragenter in firefox.\n (curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);\n\n // Search up the tree looking DOM events mapped to target\n // component methods\n var propName = \"on\" + eventType;\n var target;\n\n // Attributes will have the following form:\n // on<event_type>(\"<target_method>|<component_id>\")\n\n do {\n if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n\n if (propagationStopped) {\n break;\n }\n }\n } while ((curNode = curNode.parentNode) && curNode.getAttribute);\n }),\n true\n );\n }\n}\n\nfunction noop() {}\n\nexports.___handleNodeAttach = noop;\nexports.___handleNodeDetach = noop;\nexports.___delegateEvent = delegateEvent;\nexports.___getEventFromEl = getEventFromEl;\nexports.___addDelegatedEventHandler = addDelegatedEventHandler;\nexports.___init = function (host) {\n Object.keys(delegatedEvents).forEach(function (eventType) {\n addDelegatedEventHandlerToHost(eventType, host);\n });\n};\n"],"file":"event-delegation.js"}
1
+ {"version":3,"sources":["../../../src/runtime/components/event-delegation.js"],"names":["componentsUtil","require","runtimeId","componentLookup","getMarkoPropsFromEl","TEXT_NODE","listenersAttachedKey","delegatedEvents","getEventFromEl","el","eventName","virtualProps","eventInfo","split","length","parseInt","delegateEvent","node","target","event","targetMethod","targetComponentId","isOnce","extraArgs","targetComponent","targetFunc","Error","apply","concat","call","addDelegatedEventHandler","eventType","addDelegatedEventHandlerToHost","host","listeners","body","addEventListener","curNode","correspondingUseElement","nodeType","parentNode","propName","bubbles","propagationStopped","oldStopPropagation","stopPropagation","getAttribute","noop","exports","Object","keys","forEach"],"mappings":"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","sourcesContent":["var componentsUtil = require(\"./util\");\nvar runtimeId = componentsUtil.___runtimeId;\nvar componentLookup = componentsUtil.___componentLookup;\nvar getMarkoPropsFromEl = componentsUtil.___getMarkoPropsFromEl;\n\nvar TEXT_NODE = 3;\n\n// We make our best effort to allow multiple marko runtimes to be loaded in the\n// same window. Each marko runtime will get its own unique runtime ID.\nvar listenersAttachedKey = \"$MDE\" + runtimeId;\nvar delegatedEvents = {};\n\nfunction getEventFromEl(el, eventName) {\n var virtualProps = getMarkoPropsFromEl(el);\n var eventInfo = virtualProps[eventName];\n\n if (typeof eventInfo === \"string\") {\n eventInfo = eventInfo.split(\" \");\n if (eventInfo[2]) {\n eventInfo[2] = eventInfo[2] === \"true\";\n }\n if (eventInfo.length == 4) {\n eventInfo[3] = parseInt(eventInfo[3], 10);\n }\n }\n\n return eventInfo;\n}\n\nfunction delegateEvent(node, eventName, target, event) {\n var targetMethod = target[0];\n var targetComponentId = target[1];\n var isOnce = target[2];\n var extraArgs = target[3];\n\n if (isOnce) {\n var virtualProps = getMarkoPropsFromEl(node);\n delete virtualProps[eventName];\n }\n\n var targetComponent = componentLookup[targetComponentId];\n\n if (!targetComponent) {\n return;\n }\n\n var targetFunc =\n typeof targetMethod === \"function\"\n ? targetMethod\n : targetComponent[targetMethod];\n if (!targetFunc) {\n throw Error(\"Method not found: \" + targetMethod);\n }\n\n if (extraArgs != null) {\n if (typeof extraArgs === \"number\") {\n extraArgs = targetComponent.___bubblingDomEvents[extraArgs];\n }\n }\n\n // Invoke the component method\n if (extraArgs) {\n targetFunc.apply(targetComponent, extraArgs.concat(event, node));\n } else {\n targetFunc.call(targetComponent, event, node);\n }\n}\n\nfunction addDelegatedEventHandler(eventType) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = true;\n }\n}\n\nfunction addDelegatedEventHandlerToHost(eventType, host) {\n var listeners = (host[listenersAttachedKey] =\n host[listenersAttachedKey] || {});\n if (!listeners[eventType]) {\n (host.body || host).addEventListener(\n eventType,\n (listeners[eventType] = function (event) {\n var curNode = event.target;\n if (!curNode) {\n return;\n }\n\n curNode =\n // event.target of an SVGElementInstance does not have a\n // `getAttribute` function in IE 11.\n // See https://github.com/marko-js/marko/issues/796\n curNode.correspondingUseElement ||\n // in some browsers the event target can be a text node\n // one example being dragenter in firefox.\n (curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);\n\n // Search up the tree looking DOM events mapped to target\n // component methods\n var propName = \"on\" + eventType;\n var target;\n\n // Attributes will have the following form:\n // on<event_type>(\"<target_method>|<component_id>\")\n\n if (event.bubbles) {\n var propagationStopped = false;\n\n // Monkey-patch to fix #97\n var oldStopPropagation = event.stopPropagation;\n\n event.stopPropagation = function () {\n oldStopPropagation.call(event);\n propagationStopped = true;\n };\n\n do {\n if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n\n if (propagationStopped) {\n break;\n }\n }\n } while ((curNode = curNode.parentNode) && curNode.getAttribute);\n } else if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n }\n }),\n true\n );\n }\n}\n\nfunction noop() {}\n\nexports.___handleNodeAttach = noop;\nexports.___handleNodeDetach = noop;\nexports.___delegateEvent = delegateEvent;\nexports.___getEventFromEl = getEventFromEl;\nexports.___addDelegatedEventHandler = addDelegatedEventHandler;\nexports.___init = function (host) {\n Object.keys(delegatedEvents).forEach(function (eventType) {\n addDelegatedEventHandlerToHost(eventType, host);\n });\n};\n"],"file":"event-delegation.js"}
@@ -216,9 +216,7 @@ var proto = AsyncStream.prototype = {
216
216
  timeout = AsyncStream.DEFAULT_TIMEOUT;
217
217
  }
218
218
 
219
- newStream._stack = AsyncStream.INCLUDE_STACK ?
220
- getNonMarkoStack(new Error()) :
221
- null;
219
+ newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
222
220
  newStream.name = name;
223
221
 
224
222
  if (timeout > 0) {
@@ -455,6 +453,7 @@ var proto = AsyncStream.prototype = {
455
453
  error: function (e) {
456
454
  var name = this.name;
457
455
  var stack = this._stack;
456
+ if (stack) stack = getNonMarkoStack(stack);
458
457
 
459
458
  if (!(e instanceof Error)) {
460
459
  e = new Error(JSON.stringify(e));
@@ -1 +1 @@
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":"AAAA;AACA,IAAIA,YAAY,GAAGC,OAAO,CAAC,cAAD,CAA1B;AACA,IAAIC,YAAY,GAAGD,OAAO,CAAC,gBAAD,CAA1B;AACA,IAAIE,cAAc,GAAGF,OAAO,CAAC,kBAAD,CAA5B;AACA,IAAIG,YAAY,GAAGH,OAAO,CAAC,iBAAD,CAA1B;AACA,IAAII,WAAW,GAAGJ,OAAO,CAAC,iBAAD,CAAzB;AACA,IAAIK,SAAS,GAAGL,OAAO,CAAC,sBAAD,CAAvB;AACA,IAAIM,eAAe,GAAGN,OAAO,CAAC,sBAAD,CAA7B;AACA,IAAIO,SAAS,GAAGP,OAAO,CAAC,oBAAD,CAAvB;AACA,IAAIQ,kBAAkB,GAAGF,eAAe,CAACG,CAAzC;AACA,IAAIC,eAAe,GAAGJ,eAAe,IAArC;AACA,IAAIK,eAAe,GAAGX,OAAO,CAAC,mBAAD,CAA7B;;AAEA,SAASY,IAAT,GAAgB,CAAE;;AAElB,IAAIC,UAAU,GAAG;AACfC,EAAAA,KAAK,EAAEF,IADQ;AAEfG,EAAAA,MAAM,EAAEH,IAFO;AAGfI,EAAAA,KAAK,EAAEJ,IAHQ;AAIfK,EAAAA,KAAK,EAAEL,IAJQ;AAKfM,EAAAA,GAAG,EAAE,YAAY;AACf,WAAO,EAAP;AACD,GAPc;AAQfC,EAAAA,QAAQ,EAAE,YAAY;AACpB,WAAO,EAAP;AACD,GAVc,EAAjB;;;AAaA,SAASC,KAAT,CAAeC,IAAf,EAAqBC,MAArB,EAA6BC,MAA7B,EAAqCC,MAArC,EAA6C;AAC3C,OAAKH,IAAL,GAAYA,IAAZ;AACA,OAAKC,MAAL,GAAcA,MAAd;AACA,OAAKC,MAAL,GAAcA,MAAd;AACA,OAAKC,MAAL,GAAcA,MAAd;;AAEA,OAAKC,QAAL,GAAgB,KAAhB;AACD;;AAED,SAASC,mBAAT,CAA6BC,IAA7B,EAAmC;AACjC,SAAOA,IAAI,CAACC,OAAL,CAAa,MAAb,EAAqB,QAArB,CAAP;AACD;;AAED,SAASC,WAAT,CAAqBC,MAArB,EAA6BP,MAA7B,EAAqCQ,SAArC,EAAgD;AAC9C,MAAIA,SAAS,KAAK,IAAlB,EAAwB;AACtB,UAAM,IAAIC,KAAJ,CAAU,eAAV,CAAN;AACD;AACD,MAAIC,WAAW,GAAI,KAAKC,UAAL,GAAkBJ,MAAM,IAAI,EAA/C;AACA,MAAIK,cAAJ;AACA,MAAIC,KAAJ;;AAEA,MAAIL,SAAJ,EAAe;AACbK,IAAAA,KAAK,GAAGL,SAAS,CAACM,MAAlB;AACAF,IAAAA,cAAc,GAAGC,KAAK,CAACd,MAAvB;AACD,GAHD,MAGO;AACL,QAAIE,MAAM,GAAIS,WAAW,CAACT,MAAZ,CAAmB,gBAAnB;AACZD,IAAAA,MAAM,IAAIA,MAAM,CAACe,EAAjB,GAAsBf,MAAtB,GAA+B,IAAIxB,YAAJ,EADjC;;AAGA,QAAIwB,MAAJ,EAAY;AACVY,MAAAA,cAAc,GAAGZ,MAAjB;AACAA,MAAAA,MAAM,GAAG,IAAIrB,cAAJ,CAAmBqB,MAAnB,CAAT;AACD,KAHD,MAGO;AACLA,MAAAA,MAAM,GAAGY,cAAc,GAAG,IAAIlC,YAAJ,EAA1B;AACD;;AAEDmC,IAAAA,KAAK,GAAG,IAAIhB,KAAJ,CAAU,IAAV,EAAgBe,cAAhB,EAAgCZ,MAAhC,EAAwCC,MAAxC,CAAR;AACAD,IAAAA,MAAM,CAACa,KAAP,GAAeA,KAAf;AACD;;AAEDH,EAAAA,WAAW,CAACM,SAAZ,GAAwBN,WAAW,CAACM,SAAZ,IAAyB,GAAjD;AACA,OAAKT,MAAL,GAAcG,WAAd;AACA,OAAKX,MAAL,GAAca,cAAd;AACA,OAAKE,MAAL,GAAcD,KAAd;;AAEA,OAAKI,MAAL,GAAc,KAAd;AACA,OAAKC,UAAL,GAAkB,CAAlB;AACA,OAAKC,UAAL,GAAkB,CAAlB;AACA,OAAKC,KAAL,GAAaC,SAAb,CAlC8C,CAkCtB;AACxB,OAAKC,UAAL,GAAkBd,SAAlB;;AAEA,OAAKe,IAAL,GAAY,EAAZ;AACA,OAAKvB,MAAL,GAAcA,MAAd;AACAA,EAAAA,MAAM,CAACD,MAAP,GAAgB,IAAhB;;AAEA,OAAKyB,KAAL,GAAa,KAAb;AACA,OAAKC,MAAL,GAAcJ,SAAd;AACA,OAAKK,IAAL,GAAYL,SAAZ;AACA,OAAKM,UAAL,GAAkBN,SAAlB;;AAEA,OAAKO,KAAL,GAAaP,SAAb;;AAEA,OAAKQ,QAAL,GAAgBR,SAAhB,CAhD8C,CAgDnB;;AAE3B,YAAqB,IAArB,CAlD8C,CAkDnB;;AAE3B,YAA+B,IAA/B;AACA,YAAsB,IAAtB;AACA,aAA+B,IAA/B;AACA,aAAiB,KAAjB;AACD;;AAEDf,WAAW,CAACwB,eAAZ,GAA8B,KAA9B;;AAEA;AACA;AACA;AACAxB,WAAW,CAACyB,aAAZ;AACE,OAAOC,OAAP,KAAmB,WAAnB;AACC,CAACA,OAAO,CAACC,GAAR,CAAYC,QAAb;AACCF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAD1B;AAECF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,KAH3B,CADF;;AAMA5B,WAAW,CAAC6B,qBAAZ,GAAoC,YAAY;AAC9C7B,EAAAA,WAAW,CAACyB,aAAZ,GAA4B,IAA5B;AACD,CAFD;;AAIA,IAAIK,KAAK,GAAI9B,WAAW,CAAC+B,SAAZ,GAAwB;AACnCC,EAAAA,WAAW,EAAEhC,WADsB;AAEnC,MAAS,OAAOiC,MAAP,KAAkB,QAAlB,IAA8BC,QAFJ;AAGnC,OAAU,IAHyB;;AAKnCC,EAAAA,IAAI,EAAE,YAAY;AAChB,SAAKjB,KAAL,GAAa,IAAb;AACD,GAPkC;;AASnCkB,EAAAA,MAAM,EAAE,YAAY;AAClB,WAAO,KAAKlB,KAAL,KAAe,IAAtB;AACD,GAXkC;;AAanCjC,EAAAA,KAAK,EAAE,UAAUoD,GAAV,EAAe;AACpB,QAAIA,GAAG,IAAI,IAAX,EAAiB;AACf,WAAK3C,MAAL,CAAYT,KAAZ,CAAkBoD,GAAG,CAAC/C,QAAJ,EAAlB;AACD;AACD,WAAO,IAAP;AACD,GAlBkC;;AAoBnCJ,EAAAA,MAAM,EAAE,UAAUmD,GAAV,EAAe;AACrB,QAAIA,GAAG,IAAI,IAAX,EAAiB;AACf,WAAK3C,MAAL,CAAYR,MAAZ,CAAmBmD,GAAG,CAAC/C,QAAJ,EAAnB;AACD;AACD,WAAO,IAAP;AACD,GAzBkC;;AA2BnC,MAAc,YAAY;AACxB,WAAO,KAAKkB,MAAL,CAAYd,MAAZ,CAAmBJ,QAAnB,EAAP;AACD,GA7BkC;;AA+BnC;AACF;AACA;AACEgD,EAAAA,SAAS,EAAE,YAAY;AACrB,WAAO,SAAP;AACD,GApCkC;;AAsCnChD,EAAAA,QAAQ,EAAE,YAAY;AACpB,WAAO,KAAKkB,MAAL,CAAYd,MAAZ,CAAmBJ,QAAnB,EAAP;AACD,GAxCkC;;AA0CnC,OAAc,YAAY;AACxB,SAAKiD,OAAL,GAAe,KAAKA,OAAL,IAAgB,IAAIjE,YAAJ,CAAiB,IAAjB,CAA/B;AACA,WAAO,KAAKiE,OAAZ;AACD,GA7CkC;;AA+CnCC,EAAAA,UAAU,EAAE,UAAUC,OAAV,EAAmB;AAC7B,QAAI,KAAKvB,KAAT,EAAgB;AACd,YAAM,IAAIf,KAAJ,CAAU,kDAAV,CAAN;AACD;;AAED,QAAII,KAAK,GAAG,KAAKC,MAAjB;;AAEA,QAAIkC,aAAa,GAAG,KAAKhD,MAAzB;;AAEA;AACJ;AACA;;AAEI,QAAIiD,SAAS,GAAG,IAAIvE,YAAJ,EAAhB;AACA,QAAIwE,SAAS,GAAG,IAAI5C,WAAJ,CAAgB,KAAKC,MAArB,EAA6ByC,aAA7B,EAA4C,IAA5C,CAAhB;AACAC,IAAAA,SAAS,CAACpC,KAAV,GAAkBA,KAAlB;;AAEA,SAAKb,MAAL,GAAciD,SAAd;AACAA,IAAAA,SAAS,CAAClD,MAAV,GAAmB,IAAnB;;AAEAkD,IAAAA,SAAS,CAACE,IAAV,GAAiBH,aAAa,CAACG,IAA/B;AACAH,IAAAA,aAAa,CAACG,IAAd,GAAqBF,SAArB;;AAEA;AACJ;AACA;;AAEI,QAAIG,OAAJ;AACA,QAAI1B,IAAJ;;AAEA,SAAKR,UAAL;;AAEA,QAAI6B,OAAO,IAAI,IAAf,EAAqB;AACnB,UAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/BK,QAAAA,OAAO,GAAGL,OAAV;AACD,OAFD,MAEO;AACLK,QAAAA,OAAO,GAAGL,OAAO,CAACK,OAAlB;;AAEA,YAAIL,OAAO,CAACM,IAAR,KAAiB,IAArB,EAA2B;AACzB,cAAID,OAAO,IAAI,IAAf,EAAqB;AACnB;AACA;AACAA,YAAAA,OAAO,GAAG,CAAV;AACD;;AAED,eAAKjC,UAAL;AACA+B,UAAAA,SAAS,IAAT,GAAsB,IAAtB;AACD;;AAEDxB,QAAAA,IAAI,GAAGqB,OAAO,CAACrB,IAAf;AACD;AACF;;AAED,QAAI0B,OAAO,IAAI,IAAf,EAAqB;AACnBA,MAAAA,OAAO,GAAG9C,WAAW,CAACwB,eAAtB;AACD;;AAEDoB,IAAAA,SAAS,CAACzB,MAAV,GAAmBnB,WAAW,CAACyB,aAAZ;AACfuB,IAAAA,gBAAgB,CAAC,IAAI7C,KAAJ,EAAD,CADD;AAEf,QAFJ;AAGAyC,IAAAA,SAAS,CAACxB,IAAV,GAAiBA,IAAjB;;AAEA,QAAI0B,OAAO,GAAG,CAAd,EAAiB;AACfF,MAAAA,SAAS,CAACvB,UAAV,GAAuB4B,UAAU,CAAC,YAAY;AAC5CL,QAAAA,SAAS,CAACM,KAAV;AACE,YAAI/C,KAAJ;AACE;AACGiB,QAAAA,IAAI,GAAG,MAAMA,IAAN,GAAa,IAAhB,GAAuB,EAD9B;AAEE,0BAFF;AAGE0B,QAAAA,OAHF;AAIE,YALJ,CADF;;;AASD,OAVgC,EAU9BA,OAV8B,CAAjC;AAWD;;AAEDvC,IAAAA,KAAK,CAACZ,MAAN,CAAawD,IAAb,CAAkB,YAAlB,EAAgC;AAC9BC,MAAAA,GAAG,EAAER,SADyB;AAE9B1C,MAAAA,SAAS,EAAE,IAFmB,EAAhC;;;AAKA,WAAO0C,SAAP;AACD,GAjIkC;;AAmInCS,EAAAA,SAAS,EAAE,YAAY;AACrB,QAAI9C,KAAK,GAAG,KAAKC,MAAjB;;AAEAD,IAAAA,KAAK,CAACX,QAAN,GAAiB,IAAjB;;AAEA,QAAIW,KAAK,CAACb,MAAN,CAAa4D,GAAjB,EAAsB;AACpB/C,MAAAA,KAAK,CAACb,MAAN,CAAa4D,GAAb;AACD,KAFD,MAEO;AACL/C,MAAAA,KAAK,CAACZ,MAAN,CAAawD,IAAb,CAAkB,QAAlB,EAA4B,UAA5B;AACD;AACF,GA7IkC;;AA+InCG,EAAAA,GAAG,EAAE,UAAUrC,IAAV,EAAgB;AACnB,QAAI,KAAKN,MAAL,KAAgB,IAApB,EAA0B;AACxB;AACD;;AAED,SAAKA,MAAL,GAAc,IAAd;;AAEA,QAAI4C,SAAS,GAAG,EAAE,KAAK3C,UAAvB;;AAEA,QAAIK,IAAI,IAAI,IAAZ,EAAkB;AAChB,WAAKhC,KAAL,CAAWgC,IAAX;AACD;;AAED,QAAIyB,aAAa,GAAG,KAAKhD,MAAzB;;AAEA;AACJ;AACA;;AAEI;AACA,SAAKA,MAAL,GAAcV,UAAd;AACA0D,IAAAA,aAAa,CAACjD,MAAd,GAAuB,IAAvB;;AAEA;AACA,SAAK+D,UAAL,CAAgBd,aAAhB;;AAEA;AACJ;AACA;AACA;AACA;;AAEI,QAAIxC,SAAS,GAAG,KAAKc,UAArB;;AAEA,QAAId,SAAS,KAAKa,SAAlB,EAA6B;AAC3B,UAAIwC,SAAS,KAAK,CAAlB,EAAqB;AACnB,aAAKF,SAAL;AACD,OAFD,MAEO,IAAIE,SAAS,GAAG,KAAK1C,UAAjB,KAAgC,CAApC,EAAuC;AAC5C,aAAK4C,SAAL;AACD;AACF,KAND,MAMO;AACL,UAAIC,SAAS,GAAG,KAAKrC,UAArB;;AAEA,UAAIqC,SAAJ,EAAe;AACbC,QAAAA,YAAY,CAACD,SAAD,CAAZ;AACD;;AAED,UAAIH,SAAS,KAAK,CAAlB,EAAqB;AACnBrD,QAAAA,SAAS,CAAC0D,gBAAV,CAA2B,IAA3B;AACD,OAFD,MAEO,IAAIL,SAAS,GAAG,KAAK1C,UAAjB,KAAgC,CAApC,EAAuC;AAC5C,aAAK4C,SAAL;AACD;AACF;;AAED,WAAO,IAAP;AACD,GAtMkC;;AAwMnCG,EAAAA,gBAAgB,EAAE,UAAUC,QAAV,EAAoB;AACpC,QAAIN,SAAS,GAAG,EAAE,KAAK3C,UAAvB;;AAEA,QAAI2C,SAAS,KAAK,CAAlB,EAAqB;AACnB,UAAIrD,SAAS,GAAG,KAAKc,UAArB;AACA,UAAId,SAAS,KAAKa,SAAlB,EAA6B;AAC3B,aAAKsC,SAAL;AACD,OAFD,MAEO;AACLnD,QAAAA,SAAS,CAAC0D,gBAAV,CAA2B,IAA3B;AACD;AACF,KAPD,MAOO;AACL,UAAIC,QAAQ,IAAZ,EAAwB;AACtB,aAAKhD,UAAL;AACD;;AAED,UAAI0C,SAAS,GAAG,KAAK1C,UAAjB,KAAgC,CAApC,EAAuC;AACrC,aAAK4C,SAAL;AACD;AACF;AACF,GA3NkC;;AA6NnCD,EAAAA,UAAU,EAAE,UAAUd,aAAV,EAAyB;AACnC;AACA;AACA;AACA,QAAIoB,UAAU,GAAGpB,aAAa,CAACG,IAA/B;AACA,QAAIiB,UAAJ,EAAgB;AACd;AACA;AACApB,MAAAA,aAAa,CAACvD,KAAd,CAAoB2E,UAApB;;AAEA;AACA;AACA;AACApB,MAAAA,aAAa,CAACG,IAAd,GAAqBiB,UAAU,CAACjB,IAAhC;;AAEA;AACA;AACA;AACA,UAAIkB,UAAU,GAAGD,UAAU,CAACrE,MAA5B;AACA,UAAIsE,UAAJ,EAAgB;AACd;AACAA,QAAAA,UAAU,CAACrE,MAAX,GAAoBgD,aAApB;AACAA,QAAAA,aAAa,CAACjD,MAAd,GAAuBsE,UAAvB;AACD;AACF;AACF,GAtPkC;;AAwPnCtD,EAAAA,EAAE,EAAE,UAAUuD,KAAV,EAAiBC,QAAjB,EAA2B;AAC7B,QAAI1D,KAAK,GAAG,KAAKC,MAAjB;;AAEA,QAAIwD,KAAK,KAAK,QAAV,IAAsBzD,KAAK,CAACX,QAAN,KAAmB,IAA7C,EAAmD;AACjDqE,MAAAA,QAAQ,CAAC,UAAD,CAAR;AACD,KAFD,MAEO,IAAID,KAAK,KAAK,MAAd,EAAsB;AAC3B,WAAKE,MAAL,CAAYD,QAAZ;AACD,KAFM,MAEA;AACL1D,MAAAA,KAAK,CAACZ,MAAN,CAAac,EAAb,CAAgBuD,KAAhB,EAAuBC,QAAvB;AACD;;AAED,WAAO,IAAP;AACD,GApQkC;;AAsQnCE,EAAAA,IAAI,EAAE,UAAUH,KAAV,EAAiBC,QAAjB,EAA2B;AAC/B,QAAI1D,KAAK,GAAG,KAAKC,MAAjB;;AAEA,QAAIwD,KAAK,KAAK,QAAV,IAAsBzD,KAAK,CAACX,QAAN,KAAmB,IAA7C,EAAmD;AACjDqE,MAAAA,QAAQ,CAAC,UAAD,CAAR;AACD,KAFD,MAEO,IAAID,KAAK,KAAK,MAAd,EAAsB;AAC3B,WAAKE,MAAL,CAAYD,QAAZ;AACD,KAFM,MAEA;AACL1D,MAAAA,KAAK,CAACZ,MAAN,CAAawE,IAAb,CAAkBH,KAAlB,EAAyBC,QAAzB;AACD;;AAED,WAAO,IAAP;AACD,GAlRkC;;AAoRnCC,EAAAA,MAAM,EAAE,UAAUD,QAAV,EAAoB;AAC1B,QAAIG,SAAS,GAAG,KAAKtD,KAArB;;AAEA,QAAIsD,SAAS,KAAKrD,SAAlB,EAA6B;AAC3B,WAAKD,KAAL,GAAa,CAACmD,QAAD,CAAb;AACD,KAFD,MAEO;AACLG,MAAAA,SAAS,CAACC,IAAV,CAAeJ,QAAf;AACD;;AAED,WAAO,IAAP;AACD,GA9RkC;;AAgSnCR,EAAAA,SAAS,EAAE,YAAY;AACrB,QAAI,KAAK3C,KAAT,EAAgB;AACd,UAAIwD,CAAC,GAAG,CAAR;AACA,UAAIF,SAAS,GAAG,KAAKtD,KAArB;AACA,WAAKA,KAAL,GAAaC,SAAb;AACA,OAAC,SAAS8B,IAAT,GAAgB;AACf,YAAIyB,CAAC,KAAKF,SAAS,CAACG,MAApB,EAA4B;AAC1B;AACD;AACD,YAAIC,YAAY,GAAGJ,SAAS,CAACE,CAAC,EAAF,CAA5B;AACAE,QAAAA,YAAY,CAAC3B,IAAD,CAAZ;;AAEA,YAAI2B,YAAY,CAACD,MAAb,KAAwB,CAA5B,EAA+B;AAC7B1B,UAAAA,IAAI;AACL;AACF,OAVD;AAWD;AACF,GAjTkC;;AAmTnCM,EAAAA,IAAI,EAAE,UAAUsB,IAAV,EAAgBC,GAAhB,EAAqB;AACzB,QAAI/E,MAAM,GAAG,KAAKa,MAAL,CAAYb,MAAzB;AACA,YAAQgF,SAAS,CAACJ,MAAlB;AACE,WAAK,CAAL;AACE5E,QAAAA,MAAM,CAACwD,IAAP,CAAYsB,IAAZ;AACA;AACF,WAAK,CAAL;AACE9E,QAAAA,MAAM,CAACwD,IAAP,CAAYsB,IAAZ,EAAkBC,GAAlB;AACA;AACF;AACE/E,QAAAA,MAAM,CAACwD,IAAP,CAAYyB,KAAZ,CAAkBjF,MAAlB,EAA0BgF,SAA1B;AACA,cATJ;;AAWA,WAAO,IAAP;AACD,GAjUkC;;AAmUnCE,EAAAA,cAAc,EAAE,YAAY;AAC1B,QAAIlF,MAAM,GAAG,KAAKa,MAAL,CAAYb,MAAzB;AACAA,IAAAA,MAAM,CAACkF,cAAP,CAAsBD,KAAtB,CAA4BjF,MAA5B,EAAoCgF,SAApC;AACA,WAAO,IAAP;AACD,GAvUkC;;AAyUnCG,EAAAA,eAAe,EAAE,YAAY;AAC3B,QAAInF,MAAM,GAAG,KAAKa,MAAL,CAAYb,MAAzB;AACAA,IAAAA,MAAM,CAACmF,eAAP,CAAuBF,KAAvB,CAA6BjF,MAA7B,EAAqCgF,SAArC;AACA,WAAO,IAAP;AACD,GA7UkC;;AA+UnCI,EAAAA,IAAI,EAAE,UAAUtF,MAAV,EAAkB;AACtB,SAAKe,MAAL,CAAYf,MAAZ,CAAmBsF,IAAnB,CAAwBtF,MAAxB;AACA,WAAO,IAAP;AACD,GAlVkC;;AAoVnCyD,EAAAA,KAAK,EAAE,UAAU8B,CAAV,EAAa;AAClB,QAAI5D,IAAI,GAAG,KAAKA,IAAhB;AACA,QAAI6D,KAAK,GAAG,KAAK9D,MAAjB;;AAEA,QAAI,EAAE6D,CAAC,YAAY7E,KAAf,CAAJ,EAA2B;AACzB6E,MAAAA,CAAC,GAAG,IAAI7E,KAAJ,CAAU+E,IAAI,CAACC,SAAL,CAAeH,CAAf,CAAV,CAAJ;AACD;;AAED,QAAI5D,IAAI,IAAI6D,KAAZ,EAAmB;AACjBD,MAAAA,CAAC,CAACI,OAAF;AACE;AACChE,MAAAA,IAAI,GAAG,MAAMA,IAAT,GAAgB,EADrB;AAEC6D,MAAAA,KAAK,GAAG,QAAQA,KAAX,GAAmB,EAFzB,CADF;AAID;AACD,QAAI;AACF,WAAK9B,IAAL,CAAU,OAAV,EAAmB6B,CAAnB;AACD,KAFD,SAEU;AACR;AACA;AACA;AACA;AACA,WAAK1B,GAAL;AACD;;AAED,WAAO,IAAP;AACD,GA7WkC;;AA+WnC+B,EAAAA,KAAK,EAAE,YAAY;AACjB,QAAI9E,KAAK,GAAG,KAAKC,MAAjB;;AAEA,QAAI,CAACD,KAAK,CAACX,QAAX,EAAqB;AACnB,UAAIF,MAAM,GAAGa,KAAK,CAACb,MAAnB;AACA,UAAIA,MAAM,IAAIA,MAAM,CAAC4F,aAArB,EAAoC;AAClC5F,QAAAA,MAAM,CAAC4F,aAAP;AACD;AACF;AACD,WAAO,IAAP;AACD,GAzXkC;;AA2XnCC,EAAAA,SAAS,EAAE,YAAY;AACrB,QAAIC,MAAM,GAAG,IAAIxF,WAAJ,CAAgB,KAAKC,MAArB,CAAb;AACA;AACAuF,IAAAA,MAAM,CAAC/E,EAAP,CAAU,OAAV,EAAmB,KAAK0C,IAAL,CAAUsC,IAAV,CAAe,IAAf,EAAqB,OAArB,CAAnB;AACA,SAAKjF,MAAL,CAAYb,MAAZ,CAAmBwD,IAAnB,CAAwB,oBAAxB,EAA8C;AAC5CC,MAAAA,GAAG,EAAEoC,MADuC;AAE5CtF,MAAAA,SAAS,EAAE,IAFiC,EAA9C;;AAIA,WAAOsF,MAAP;AACD,GApYkC;;AAsYnC,OAAmB;AACjBE,EAAAA,OADiB;AAEjBC,EAAAA,YAFiB;AAGjBC,EAAAA,GAHiB;AAIjBC,EAAAA,YAJiB;AAKjBC,EAAAA,KALiB;AAMjB;AACA,QAAIzD,GAAG;AACL;AACAqD,IAAAA,OADA;AAEAlH,IAAAA,SAAS,CAAC,IAAD,EAAOqH,YAAP,EAAqBC,KAArB,EAA4BF,GAA5B,CAFT;AAGArH,IAAAA,WAAW,CAACoH,YAAD,CAJb;;AAMA,QAAI7G,eAAe,CAACiH,YAAhB,CAA6BC,OAA7B,CAAqCN,OAArC,MAAkD,CAAC,CAAvD,EAA0D;AACxDrD,MAAAA,GAAG,IAAI,GAAP;AACD,KAFD,MAEO,IAAIvD,eAAe,CAACmH,WAAhB,CAA4BD,OAA5B,CAAoCN,OAApC,MAAiD,CAAC,CAAtD,EAAyD;AAC9DrD,MAAAA,GAAG,IAAI,IAAP;AACD,KAFM,MAEA;AACLA,MAAAA,GAAG,IAAI,QAAQqD,OAAR,GAAkB,GAAzB;AACD;;AAED,SAAKzG,KAAL,CAAWoD,GAAX;AACD,GA5ZkC;;AA8ZnC6D,EAAAA,OAAO,EAAE,UAAUR,OAAV,EAAmBC,YAAnB,EAAiCQ,WAAjC,EAA8C;AACrD,QAAI9D,GAAG,GAAG,MAAMqD,OAAN,GAAgBnH,WAAW,CAACoH,YAAD,CAA3B,GAA4C,GAAtD;;AAEA,QAAIQ,WAAW,KAAK,IAApB,EAA0B;AACxB9D,MAAAA,GAAG,IAAI,OAAOqD,OAAP,GAAiB,GAAxB;AACD;;AAED,SAAKzG,KAAL,CAAWoD,GAAX;AACD,GAtakC;;AAwanC,OAAwB;AACtBjB,EAAAA,IADsB;AAEtBuE,EAAAA,YAFsB;AAGtBC,EAAAA,GAHsB;AAItBC,EAAAA,YAJsB;AAKtBC,EAAAA,KALsB;AAMtB;AACA,QAAIzD,GAAG;AACL;AACAjB,IAAAA,IADA;AAEA5C,IAAAA,SAAS,CAAC,IAAD,EAAOqH,YAAP,EAAqBC,KAArB,EAA4BF,GAA5B,CAFT;AAGArH,IAAAA,WAAW,CAACoH,YAAD,CAHX;AAIA,OALF;;AAOA,SAAK1G,KAAL,CAAWoD,GAAX;;AAEA,QAAI,KAAKd,QAAT,EAAmB;AACjB,WAAKA,QAAL,CAAc8C,IAAd,CAAmBjD,IAAnB;AACD,KAFD,MAEO;AACL,WAAKG,QAAL,GAAgB,CAACH,IAAD,CAAhB;AACD;AACF,GA7bkC;;AA+bnCgF,EAAAA,YAAY,EAAE,UAAUhF,IAAV,EAAgBuE,YAAhB,EAA8B;AAC1C,QAAItD,GAAG,GAAG,MAAMjB,IAAN,GAAa7C,WAAW,CAACoH,YAAD,CAAxB,GAAyC,GAAnD;;AAEA,SAAK1G,KAAL,CAAWoD,GAAX;;AAEA,QAAI,KAAKd,QAAT,EAAmB;AACjB,WAAKA,QAAL,CAAc8C,IAAd,CAAmBjD,IAAnB;AACD,KAFD,MAEO;AACL,WAAKG,QAAL,GAAgB,CAACH,IAAD,CAAhB;AACD;AACF,GAzckC;;AA2cnCiF,EAAAA,UAAU,EAAE,YAAY;AACtB,QAAIX,OAAO,GAAG,KAAKnE,QAAL,CAAc+E,GAAd,EAAd;AACA,SAAKrH,KAAL,CAAW,OAAOyG,OAAP,GAAiB,GAA5B;AACD,GA9ckC;;AAgdnCa,EAAAA,OAAO,EAAE,UAAUlE,GAAV,EAAe;AACtB,SAAKpD,KAAL,CAAW,SAASY,mBAAmB,CAACwC,GAAD,CAA5B,GAAoC,KAA/C;AACD,GAldkC;;AAodnCvC,EAAAA,IAAI,EAAE,UAAUuC,GAAV,EAAe;AACnB,SAAKpD,KAAL,CAAWN,kBAAkB,CAAC0D,GAAD,CAA7B;AACD,GAtdkC;;AAwdnCmE,EAAAA,EAAE,EAAE,UAAUZ,GAAV,EAAea,SAAf,EAA0BC,QAA1B,EAAoC;AACtC,QAAIA,QAAJ,EAAc;AACZ,WAAKzH,KAAL,CAAW,WAAWJ,eAAe,CAAC+G,GAAD,CAA1B,GAAkC,KAA7C;AACD;AACD,QAAI,KAAKrE,QAAT,EAAmB;AACjB,WAAKA,QAAL,CAAc8C,IAAd,CAAmBqC,QAAnB;AACD,KAFD,MAEO;AACL,WAAKnF,QAAL,GAAgB,CAACmF,QAAD,CAAhB;AACD;AACF,GAjekC;;AAmenCC,EAAAA,EAAE,EAAE,YAAY;AACd,QAAID,QAAQ,GAAG,KAAKnF,QAAL,CAAc+E,GAAd,EAAf;AACA,QAAII,QAAJ,EAAc;AACZ,WAAKzH,KAAL,CAAW,WAAX;AACD;AACF,GAxekC;;AA0enC,MAAY,UAAU2H,IAAV,EAAgB;AAC1B,QAAIC,IAAI,GAAG,KAAKvF,KAAhB;;AAEA,QAAI,CAACuF,IAAL,EAAW;AACT,UAAIC,MAAJ;AACA,UAAIC,QAAJ;AACA,UAAIC,IAAI,GAAG,SAAX;AACA,UAAI,CAACJ,IAAL,EAAWA,IAAI,GAAG,OAAP;AACX,UAAIK,GAAG,GAAGL,IAAI,CAACM,aAAL,IAAsBN,IAAhC;;AAEA,UAAII,IAAJ,EAAU;AACRH,QAAAA,IAAI,GAAGnI,SAAS,CAACsI,IAAD,CAAhB;;AAEA,YAAIH,IAAI,IAAIA,IAAI,CAACM,WAAjB,EAA8B;AAC5B;AACAJ,UAAAA,QAAQ,GAAGE,GAAG,CAACG,sBAAJ,EAAX;;AAEA,aAAG;AACDN,YAAAA,MAAM,GAAGD,IAAI,CAACM,WAAd;AACAJ,YAAAA,QAAQ,CAACM,WAAT,CAAqBR,IAArB;AACD,WAHD,QAGUA,IAAI,GAAGC,MAHjB;;AAKAD,UAAAA,IAAI,GAAGE,QAAP;AACD;AACF;;AAED;AACA,WAAKzF,KAAL,GAAauF,IAAI,IAAII,GAAG,CAACG,sBAAJ,EAArB;AACD;AACD,WAAOP,IAAP;AACD,GAxgBkC;;AA0gBnCS,EAAAA,IAAI,EAAE,UAAUC,EAAV,EAAcC,KAAd,EAAqB;AACzB,QAAIpE,GAAG,GAAG,IAAV;AACA,QAAIqE,OAAO,GAAG,IAAIC,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;AACnDxE,MAAAA,GAAG,CAAC3C,EAAJ,CAAO,OAAP,EAAgBmH,MAAhB;AACAxE,MAAAA,GAAG,CAAC3C,EAAJ,CAAO,QAAP,EAAiB,UAAUoH,MAAV,EAAkB;AACjCF,QAAAA,OAAO,CAACE,MAAD,CAAP;AACD,OAFD;AAGD,KALa,CAAd;;AAOA,WAAOH,OAAO,CAACC,OAAR,CAAgBF,OAAhB,EAAyBH,IAAzB,CAA8BC,EAA9B,EAAkCC,KAAlC,CAAP;AACD,GAphBkC;;AAshBnCM,EAAAA,KAAK,EAAE,UAAUN,KAAV,EAAiB;AACtB,WAAO,KAAKF,IAAL,CAAUvG,SAAV,EAAqByG,KAArB,CAAP;AACD,GAxhBkC;;AA0hBnCO,EAAAA,CAAC,EAAE,UAAUlC,YAAV,EAAwBD,GAAxB,EAA6BoC,YAA7B,EAA2C;AAC5C,cAA+BnC,YAA/B;AACA,cAAsBD,GAAtB;AACA,eAA+BoC,YAA/B;AACD,GA9hBkC,EAArC;;;AAiiBA;AACAlG,KAAK,CAACmG,CAAN,GAAUnG,KAAK,CAAC7C,KAAhB;AACA6C,KAAK,IAAL,GAAsBA,KAAK,CAACuE,UAA5B;;AAEA6B,MAAM,CAACC,OAAP,GAAiBnI,WAAjB;;AAEA,SAASgD,gBAAT,CAA0BE,KAA1B,EAAiC;AAC/B,SAAOA,KAAK,CAAC+B,KAAN;AACJ3F,EAAAA,QADI;AAEJ8I,EAAAA,KAFI,CAEE,IAFF;AAGJC,EAAAA,KAHI,CAGE,CAHF;AAIJC,EAAAA,MAJI,CAIG,CAAAC,IAAI,KAAI,CAAC,0BAA0BC,IAA1B,CAA+BD,IAA/B,CAJZ;AAKJE,EAAAA,IALI,CAKC,IALD,CAAP;AAMD","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"}
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","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","getNonMarkoStack","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 ? new Error() : 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 if (stack) stack = getNonMarkoStack(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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "5.19.2",
3
+ "version": "5.20.3",
4
4
  "license": "MIT",
5
5
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
6
6
  "dependencies": {
7
- "@marko/compiler": "^5.19.0",
8
- "@marko/translator-default": "^5.19.2",
7
+ "@marko/compiler": "^5.20.3",
8
+ "@marko/translator-default": "^5.20.3",
9
9
  "app-module-path": "^2.2.0",
10
10
  "argly": "^1.2.0",
11
11
  "browser-refresh-client": "1.1.4",
@@ -72,5 +72,5 @@
72
72
  "index.js",
73
73
  "node-require.js"
74
74
  ],
75
- "gitHead": "b229fc19a03f96a44a8f58b852097a4f72ca080c"
75
+ "gitHead": "19f0a44a1e33e865ecf04eb5b9acfb8b610e51bd"
76
76
  }
@@ -79,16 +79,6 @@ function addDelegatedEventHandlerToHost(eventType, host) {
79
79
  (host.body || host).addEventListener(
80
80
  eventType,
81
81
  (listeners[eventType] = function (event) {
82
- var propagationStopped = false;
83
-
84
- // Monkey-patch to fix #97
85
- var oldStopPropagation = event.stopPropagation;
86
-
87
- event.stopPropagation = function () {
88
- oldStopPropagation.call(event);
89
- propagationStopped = true;
90
- };
91
-
92
82
  var curNode = event.target;
93
83
  if (!curNode) {
94
84
  return;
@@ -111,15 +101,29 @@ function addDelegatedEventHandlerToHost(eventType, host) {
111
101
  // Attributes will have the following form:
112
102
  // on<event_type>("<target_method>|<component_id>")
113
103
 
114
- do {
115
- if ((target = getEventFromEl(curNode, propName))) {
116
- delegateEvent(curNode, propName, target, event);
104
+ if (event.bubbles) {
105
+ var propagationStopped = false;
106
+
107
+ // Monkey-patch to fix #97
108
+ var oldStopPropagation = event.stopPropagation;
117
109
 
118
- if (propagationStopped) {
119
- break;
110
+ event.stopPropagation = function () {
111
+ oldStopPropagation.call(event);
112
+ propagationStopped = true;
113
+ };
114
+
115
+ do {
116
+ if ((target = getEventFromEl(curNode, propName))) {
117
+ delegateEvent(curNode, propName, target, event);
118
+
119
+ if (propagationStopped) {
120
+ break;
121
+ }
120
122
  }
121
- }
122
- } while ((curNode = curNode.parentNode) && curNode.getAttribute);
123
+ } while ((curNode = curNode.parentNode) && curNode.getAttribute);
124
+ } else if ((target = getEventFromEl(curNode, propName))) {
125
+ delegateEvent(curNode, propName, target, event);
126
+ }
123
127
  }),
124
128
  true
125
129
  );
@@ -216,9 +216,7 @@ var proto = (AsyncStream.prototype = {
216
216
  timeout = AsyncStream.DEFAULT_TIMEOUT;
217
217
  }
218
218
 
219
- newStream._stack = AsyncStream.INCLUDE_STACK
220
- ? getNonMarkoStack(new Error())
221
- : null;
219
+ newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
222
220
  newStream.name = name;
223
221
 
224
222
  if (timeout > 0) {
@@ -455,6 +453,7 @@ var proto = (AsyncStream.prototype = {
455
453
  error: function (e) {
456
454
  var name = this.name;
457
455
  var stack = this._stack;
456
+ if (stack) stack = getNonMarkoStack(stack);
458
457
 
459
458
  if (!(e instanceof Error)) {
460
459
  e = new Error(JSON.stringify(e));