{"version":3,"sources":["node_modules\\react-dom\\lib\\DOMChildrenOperations.js"],"names":["DOMLazyTree","require","Danger","ReactDOMComponentTree","ReactInstrumentation","createMicrosoftUnsafeLocalFunction","setInnerHTML","setTextContent","getNodeAfter","parentNode","node","Array","isArray","nextSibling","firstChild","insertChildAt","childNode","referenceNode","insertBefore","insertLazyTreeChildAt","childTree","insertTreeBefore","moveChild","moveDelimitedText","removeChild","closingComment","removeDelimitedText","openingComment","nextNode","startNode","replaceDelimitedText","stringText","nodeAfterComment","document","createTextNode","process","env","NODE_ENV","debugTool","onHostOperation","instanceID","getInstanceFromNode","_debugID","type","payload","dangerouslyReplaceNodeWithMarkup","oldChild","markup","prevInstance","toString","nextInstance","DOMChildrenOperations","processUpdates","updates","parentNodeDebugID","k","length","update","content","afterNode","toIndex","fromNode","fromIndex","module","exports"],"mappings":";;;;;;;;;;AAUA;;AAEA,GAAIA,aAAcC,QAAQ,eAAR,CAAlB;AACA,GAAIC,QAASD,QAAQ,UAAR,CAAb;AACA,GAAIE,uBAAwBF,QAAQ,yBAAR,CAA5B;AACA,GAAIG,sBAAuBH,QAAQ,wBAAR,CAA3B;;AAEA,GAAII,oCAAqCJ,QAAQ,sCAAR,CAAzC;AACA,GAAIK,cAAeL,QAAQ,gBAAR,CAAnB;AACA,GAAIM,gBAAiBN,QAAQ,kBAAR,CAArB;;AAEA,QAASO,aAAT,CAAsBC,UAAtB,CAAkCC,IAAlC,CAAwC;;;AAGtC,GAAIC,MAAMC,OAAN,CAAcF,IAAd,CAAJ,CAAyB;AACvBA,KAAOA,KAAK,CAAL,CAAP;AACD;AACD,MAAOA,MAAOA,KAAKG,WAAZ,CAA0BJ,WAAWK,UAA5C;AACD;;;;;;;;;;AAUD,GAAIC,eAAgBV,mCAAmC,SAAUI,UAAV,CAAsBO,SAAtB,CAAiCC,aAAjC,CAAgD;;;;AAIrGR,WAAWS,YAAX,CAAwBF,SAAxB,CAAmCC,aAAnC;AACD,CALmB,CAApB;;AAOA,QAASE,sBAAT,CAA+BV,UAA/B,CAA2CW,SAA3C,CAAsDH,aAAtD,CAAqE;AACnEjB,YAAYqB,gBAAZ,CAA6BZ,UAA7B,CAAyCW,SAAzC,CAAoDH,aAApD;AACD;;AAED,QAASK,UAAT,CAAmBb,UAAnB,CAA+BO,SAA/B,CAA0CC,aAA1C,CAAyD;AACvD,GAAIN,MAAMC,OAAN,CAAcI,SAAd,CAAJ,CAA8B;AAC5BO,kBAAkBd,UAAlB,CAA8BO,UAAU,CAAV,CAA9B,CAA4CA,UAAU,CAAV,CAA5C,CAA0DC,aAA1D;AACD,CAFD,IAEO;AACLF,cAAcN,UAAd,CAA0BO,SAA1B,CAAqCC,aAArC;AACD;AACF;;AAED,QAASO,YAAT,CAAqBf,UAArB,CAAiCO,SAAjC,CAA4C;AAC1C,GAAIL,MAAMC,OAAN,CAAcI,SAAd,CAAJ,CAA8B;AAC5B,GAAIS,gBAAiBT,UAAU,CAAV,CAArB;AACAA,UAAYA,UAAU,CAAV,CAAZ;AACAU,oBAAoBjB,UAApB,CAAgCO,SAAhC,CAA2CS,cAA3C;AACAhB,WAAWe,WAAX,CAAuBC,cAAvB;AACD;AACDhB,WAAWe,WAAX,CAAuBR,SAAvB;AACD;;AAED,QAASO,kBAAT,CAA2Bd,UAA3B,CAAuCkB,cAAvC,CAAuDF,cAAvD,CAAuER,aAAvE,CAAsF;AACpF,GAAIP,MAAOiB,cAAX;AACA,MAAO,IAAP,CAAa;AACX,GAAIC,UAAWlB,KAAKG,WAApB;AACAE,cAAcN,UAAd,CAA0BC,IAA1B,CAAgCO,aAAhC;AACA,GAAIP,OAASe,cAAb,CAA6B;AAC3B;AACD;AACDf,KAAOkB,QAAP;AACD;AACF;;AAED,QAASF,oBAAT,CAA6BjB,UAA7B,CAAyCoB,SAAzC,CAAoDJ,cAApD,CAAoE;AAClE,MAAO,IAAP,CAAa;AACX,GAAIf,MAAOmB,UAAUhB,WAArB;AACA,GAAIH,OAASe,cAAb,CAA6B;;AAE3B;AACD,CAHD,IAGO;AACLhB,WAAWe,WAAX,CAAuBd,IAAvB;AACD;AACF;AACF;;AAED,QAASoB,qBAAT,CAA8BH,cAA9B,CAA8CF,cAA9C,CAA8DM,UAA9D,CAA0E;AACxE,GAAItB,YAAakB,eAAelB,UAAhC;AACA,GAAIuB,kBAAmBL,eAAed,WAAtC;AACA,GAAImB,mBAAqBP,cAAzB,CAAyC;;;AAGvC,GAAIM,UAAJ,CAAgB;AACdhB,cAAcN,UAAd,CAA0BwB,SAASC,cAAT,CAAwBH,UAAxB,CAA1B,CAA+DC,gBAA/D;AACD;AACF,CAND,IAMO;AACL,GAAID,UAAJ,CAAgB;;;AAGdxB,eAAeyB,gBAAf,CAAiCD,UAAjC;AACAL,oBAAoBjB,UAApB,CAAgCuB,gBAAhC,CAAkDP,cAAlD;AACD,CALD,IAKO;AACLC,oBAAoBjB,UAApB,CAAgCkB,cAAhC,CAAgDF,cAAhD;AACD;AACF;;AAED,GAAIU,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCjC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYrC,sBAAsBsC,mBAAtB,CAA0Cd,cAA1C,EAA0De,QADzB;AAE7CC,KAAM,cAFuC;AAG7CC,QAASb,UAHoC,CAA/C;;AAKD;AACF;;AAED,GAAIc,kCAAmC3C,OAAO2C,gCAA9C;AACA,GAAIV,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCQ,iCAAmC,0CAAUC,QAAV,CAAoBC,MAApB,CAA4BC,YAA5B,CAA0C;AAC3E9C,OAAO2C,gCAAP,CAAwCC,QAAxC,CAAkDC,MAAlD;AACA,GAAIC,aAAaN,QAAb,GAA0B,CAA9B,CAAiC;AAC/BtC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYQ,aAAaN,QADoB;AAE7CC,KAAM,cAFuC;AAG7CC,QAASG,OAAOE,QAAP,EAHoC,CAA/C;;AAKD,CAND,IAMO;AACL,GAAIC,cAAe/C,sBAAsBsC,mBAAtB,CAA0CM,OAAOrC,IAAjD,CAAnB;AACA,GAAIwC,aAAaR,QAAb,GAA0B,CAA9B,CAAiC;AAC/BtC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYU,aAAaR,QADoB;AAE7CC,KAAM,OAFuC;AAG7CC,QAASG,OAAOE,QAAP,EAHoC,CAA/C;;AAKD;AACF;AACF,CAlBD;AAmBD;;;;;AAKD,GAAIE,uBAAwB;AAC1BN,iCAAkCA,gCADR;;AAG1Bf,qBAAsBA,oBAHI;;;;;;;;;AAY1BsB,eAAgB,wBAAU3C,UAAV,CAAsB4C,OAAtB,CAA+B;AAC7C,GAAIlB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,GAAIiB,mBAAoBnD,sBAAsBsC,mBAAtB,CAA0ChC,UAA1C,EAAsDiC,QAA9E;AACD;;AAED,IAAK,GAAIa,GAAI,CAAb,CAAgBA,EAAIF,QAAQG,MAA5B,CAAoCD,GAApC,CAAyC;AACvC,GAAIE,QAASJ,QAAQE,CAAR,CAAb;AACA,OAAQE,OAAOd,IAAf;AACE,IAAK,eAAL;AACExB,sBAAsBV,UAAtB,CAAkCgD,OAAOC,OAAzC,CAAkDlD,aAAaC,UAAb,CAAyBgD,OAAOE,SAAhC,CAAlD;AACA,GAAIxB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCjC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYc,iBADiC;AAE7CX,KAAM,cAFuC;AAG7CC,QAAS;AACPgB,QAASH,OAAOG,OADT;AAEPF,QAASD,OAAOC,OAAP,CAAeT,QAAf,EAFF,CAHoC,CAA/C;;;AAQD;AACD;AACF,IAAK,eAAL;AACE3B,UAAUb,UAAV,CAAsBgD,OAAOI,QAA7B,CAAuCrD,aAAaC,UAAb,CAAyBgD,OAAOE,SAAhC,CAAvC;AACA,GAAIxB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCjC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYc,iBADiC;AAE7CX,KAAM,YAFuC;AAG7CC,QAAS,CAAEkB,UAAWL,OAAOK,SAApB,CAA+BF,QAASH,OAAOG,OAA/C,CAHoC,CAA/C;;AAKD;AACD;AACF,IAAK,YAAL;AACEtD,aAAaG,UAAb,CAAyBgD,OAAOC,OAAhC;AACA,GAAIvB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCjC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYc,iBADiC;AAE7CX,KAAM,kBAFuC;AAG7CC,QAASa,OAAOC,OAAP,CAAeT,QAAf,EAHoC,CAA/C;;AAKD;AACD;AACF,IAAK,cAAL;AACE1C,eAAeE,UAAf,CAA2BgD,OAAOC,OAAlC;AACA,GAAIvB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCjC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYc,iBADiC;AAE7CX,KAAM,cAFuC;AAG7CC,QAASa,OAAOC,OAAP,CAAeT,QAAf,EAHoC,CAA/C;;AAKD;AACD;AACF,IAAK,aAAL;AACEzB,YAAYf,UAAZ,CAAwBgD,OAAOI,QAA/B;AACA,GAAI1B,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCjC,qBAAqBkC,SAArB,CAA+BC,eAA/B,CAA+C;AAC7CC,WAAYc,iBADiC;AAE7CX,KAAM,cAFuC;AAG7CC,QAAS,CAAEkB,UAAWL,OAAOK,SAApB,CAHoC,CAA/C;;AAKD;AACD,MArDJ;;AAuDD;AACF,CA3EyB,CAA5B;;;AA8EAC,OAAOC,OAAP,CAAiBb,qBAAjB","file":"DOMChildrenOperations.js","sourceRoot":"d:/Work/Office/react-native-on-web/cli/tmpl/project","sourcesContent":["/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n  // Special case for text components, which return [open, close] comments\n  // from getHostNode.\n  if (Array.isArray(node)) {\n    node = node[1];\n  }\n  return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n  // We rely exclusively on `insertBefore(node, null)` instead of also using\n  // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n  // we are careful to use `null`.)\n  parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n  DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n  if (Array.isArray(childNode)) {\n    moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n  } else {\n    insertChildAt(parentNode, childNode, referenceNode);\n  }\n}\n\nfunction removeChild(parentNode, childNode) {\n  if (Array.isArray(childNode)) {\n    var closingComment = childNode[1];\n    childNode = childNode[0];\n    removeDelimitedText(parentNode, childNode, closingComment);\n    parentNode.removeChild(closingComment);\n  }\n  parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n  var node = openingComment;\n  while (true) {\n    var nextNode = node.nextSibling;\n    insertChildAt(parentNode, node, referenceNode);\n    if (node === closingComment) {\n      break;\n    }\n    node = nextNode;\n  }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n  while (true) {\n    var node = startNode.nextSibling;\n    if (node === closingComment) {\n      // The closing comment is removed by ReactMultiChild.\n      break;\n    } else {\n      parentNode.removeChild(node);\n    }\n  }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n  var parentNode = openingComment.parentNode;\n  var nodeAfterComment = openingComment.nextSibling;\n  if (nodeAfterComment === closingComment) {\n    // There are no text nodes between the opening and closing comments; insert\n    // a new one if stringText isn't empty.\n    if (stringText) {\n      insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n    }\n  } else {\n    if (stringText) {\n      // Set the text content of the first node after the opening comment, and\n      // remove all following nodes up until the closing comment.\n      setTextContent(nodeAfterComment, stringText);\n      removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n    } else {\n      removeDelimitedText(parentNode, openingComment, closingComment);\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    ReactInstrumentation.debugTool.onHostOperation({\n      instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n      type: 'replace text',\n      payload: stringText\n    });\n  }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n  dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n    Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n    if (prevInstance._debugID !== 0) {\n      ReactInstrumentation.debugTool.onHostOperation({\n        instanceID: prevInstance._debugID,\n        type: 'replace with',\n        payload: markup.toString()\n      });\n    } else {\n      var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n      if (nextInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onHostOperation({\n          instanceID: nextInstance._debugID,\n          type: 'mount',\n          payload: markup.toString()\n        });\n      }\n    }\n  };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n  dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n  replaceDelimitedText: replaceDelimitedText,\n\n  /**\n   * Updates a component's children by processing a series of updates. The\n   * update configurations are each expected to have a `parentNode` property.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @internal\n   */\n  processUpdates: function (parentNode, updates) {\n    if (process.env.NODE_ENV !== 'production') {\n      var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n    }\n\n    for (var k = 0; k < updates.length; k++) {\n      var update = updates[k];\n      switch (update.type) {\n        case 'INSERT_MARKUP':\n          insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n          if (process.env.NODE_ENV !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation({\n              instanceID: parentNodeDebugID,\n              type: 'insert child',\n              payload: {\n                toIndex: update.toIndex,\n                content: update.content.toString()\n              }\n            });\n          }\n          break;\n        case 'MOVE_EXISTING':\n          moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n          if (process.env.NODE_ENV !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation({\n              instanceID: parentNodeDebugID,\n              type: 'move child',\n              payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n            });\n          }\n          break;\n        case 'SET_MARKUP':\n          setInnerHTML(parentNode, update.content);\n          if (process.env.NODE_ENV !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation({\n              instanceID: parentNodeDebugID,\n              type: 'replace children',\n              payload: update.content.toString()\n            });\n          }\n          break;\n        case 'TEXT_CONTENT':\n          setTextContent(parentNode, update.content);\n          if (process.env.NODE_ENV !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation({\n              instanceID: parentNodeDebugID,\n              type: 'replace text',\n              payload: update.content.toString()\n            });\n          }\n          break;\n        case 'REMOVE_NODE':\n          removeChild(parentNode, update.fromNode);\n          if (process.env.NODE_ENV !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation({\n              instanceID: parentNodeDebugID,\n              type: 'remove child',\n              payload: { fromIndex: update.fromIndex }\n            });\n          }\n          break;\n      }\n    }\n  }\n};\n\nmodule.exports = DOMChildrenOperations;"]}