{"version":3,"sources":["node_modules\\react-dom\\lib\\ReactReconcileTransaction.js"],"names":["_assign","require","CallbackQueue","PooledClass","ReactBrowserEventEmitter","ReactInputSelection","ReactInstrumentation","Transaction","ReactUpdateQueue","SELECTION_RESTORATION","initialize","getSelectionInformation","close","restoreSelection","EVENT_SUPPRESSION","currentlyEnabled","isEnabled","setEnabled","previouslyEnabled","ON_DOM_READY_QUEUEING","reactMountReady","reset","notifyAll","TRANSACTION_WRAPPERS","process","env","NODE_ENV","push","debugTool","onBeginFlush","onEndFlush","ReactReconcileTransaction","useCreateElement","reinitializeTransaction","renderToStaticMarkup","getPooled","Mixin","getTransactionWrappers","getReactMountReady","getUpdateQueue","checkpoint","rollback","destructor","release","prototype","addPoolingTo","module","exports"],"mappings":";;;;;;;;;;AAUA;;AAEA,GAAIA,SAAUC,QAAQ,eAAR,CAAd;;AAEA,GAAIC,eAAgBD,QAAQ,iBAAR,CAApB;AACA,GAAIE,aAAcF,QAAQ,eAAR,CAAlB;AACA,GAAIG,0BAA2BH,QAAQ,4BAAR,CAA/B;AACA,GAAII,qBAAsBJ,QAAQ,uBAAR,CAA1B;AACA,GAAIK,sBAAuBL,QAAQ,wBAAR,CAA3B;AACA,GAAIM,aAAcN,QAAQ,eAAR,CAAlB;AACA,GAAIO,kBAAmBP,QAAQ,oBAAR,CAAvB;;;;;;AAMA,GAAIQ,uBAAwB;;;;AAI1BC,WAAYL,oBAAoBM,uBAJN;;;;AAQ1BC,MAAOP,oBAAoBQ,gBARD,CAA5B;;;;;;;;AAgBA,GAAIC,mBAAoB;;;;;AAKtBJ,WAAY,qBAAY;AACtB,GAAIK,kBAAmBX,yBAAyBY,SAAzB,EAAvB;AACAZ,yBAAyBa,UAAzB,CAAoC,KAApC;AACA,MAAOF,iBAAP;AACD,CATqB;;;;;;;AAgBtBH,MAAO,eAAUM,iBAAV,CAA6B;AAClCd,yBAAyBa,UAAzB,CAAoCC,iBAApC;AACD,CAlBqB,CAAxB;;;;;;;AAyBA,GAAIC,uBAAwB;;;;AAI1BT,WAAY,qBAAY;AACtB,KAAKU,eAAL,CAAqBC,KAArB;AACD,CANyB;;;;;AAW1BT,MAAO,gBAAY;AACjB,KAAKQ,eAAL,CAAqBE,SAArB;AACD,CAbyB,CAA5B;;;;;;;;AAqBA,GAAIC,sBAAuB,CAACd,qBAAD,CAAwBK,iBAAxB,CAA2CK,qBAA3C,CAA3B;;AAEA,GAAIK,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCH,qBAAqBI,IAArB,CAA0B;AACxBjB,WAAYJ,qBAAqBsB,SAArB,CAA+BC,YADnB;AAExBjB,MAAON,qBAAqBsB,SAArB,CAA+BE,UAFd,CAA1B;;AAID;;;;;;;;;;;;;;;;AAgBD,QAASC,0BAAT,CAAmCC,gBAAnC,CAAqD;AACnD,KAAKC,uBAAL;;;;;;AAMA,KAAKC,oBAAL,CAA4B,KAA5B;AACA,KAAKd,eAAL,CAAuBlB,cAAciC,SAAd,CAAwB,IAAxB,CAAvB;AACA,KAAKH,gBAAL,CAAwBA,gBAAxB;AACD;;AAED,GAAII,OAAQ;;;;;;;;AAQVC,uBAAwB,iCAAY;AAClC,MAAOd,qBAAP;AACD,CAVS;;;;;AAeVe,mBAAoB,6BAAY;AAC9B,MAAO,MAAKlB,eAAZ;AACD,CAjBS;;;;;AAsBVmB,eAAgB,yBAAY;AAC1B,MAAO/B,iBAAP;AACD,CAxBS;;;;;;AA8BVgC,WAAY,qBAAY;;AAEtB,MAAO,MAAKpB,eAAL,CAAqBoB,UAArB,EAAP;AACD,CAjCS;;AAmCVC,SAAU,kBAAUD,UAAV,CAAsB;AAC9B,KAAKpB,eAAL,CAAqBqB,QAArB,CAA8BD,UAA9B;AACD,CArCS;;;;;;AA2CVE,WAAY,qBAAY;AACtBxC,cAAcyC,OAAd,CAAsB,KAAKvB,eAA3B;AACA,KAAKA,eAAL,CAAuB,IAAvB;AACD,CA9CS,CAAZ;;;AAiDApB,QAAQ+B,0BAA0Ba,SAAlC,CAA6CrC,WAA7C,CAA0D6B,KAA1D;;AAEAjC,YAAY0C,YAAZ,CAAyBd,yBAAzB;;AAEAe,OAAOC,OAAP,CAAiBhB,yBAAjB","file":"ReactReconcileTransaction.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 _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n  /**\n   * @return {Selection} Selection information.\n   */\n  initialize: ReactInputSelection.getSelectionInformation,\n  /**\n   * @param {Selection} sel Selection information returned from `initialize`.\n   */\n  close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n  /**\n   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n   * the reconciliation.\n   */\n  initialize: function () {\n    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n    ReactBrowserEventEmitter.setEnabled(false);\n    return currentlyEnabled;\n  },\n\n  /**\n   * @param {boolean} previouslyEnabled Enabled status of\n   *   `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n   *   restores the previous value.\n   */\n  close: function (previouslyEnabled) {\n    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n  }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  /**\n   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n   */\n  close: function () {\n    this.reactMountReady.notifyAll();\n  }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n  TRANSACTION_WRAPPERS.push({\n    initialize: ReactInstrumentation.debugTool.onBeginFlush,\n    close: ReactInstrumentation.debugTool.onEndFlush\n  });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n *   modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n *   track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n  this.reinitializeTransaction();\n  // Only server-side rendering really needs this option (see\n  // `ReactServerRendering`), but server-side uses\n  // `ReactServerRenderingTransaction` instead. This option is here so that it's\n  // accessible and defaults to false when `ReactDOMComponent` and\n  // `ReactDOMTextComponent` checks it in `mountComponent`.`\n  this.renderToStaticMarkup = false;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array<object>} List of operation wrap procedures.\n   *   TODO: convert to array<TransactionWrapper>\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * @return {object} The queue to collect React async events.\n   */\n  getUpdateQueue: function () {\n    return ReactUpdateQueue;\n  },\n\n  /**\n   * Save current transaction state -- if the return value from this method is\n   * passed to `rollback`, the transaction will be reset to that state.\n   */\n  checkpoint: function () {\n    // reactMountReady is the our only stateful wrapper\n    return this.reactMountReady.checkpoint();\n  },\n\n  rollback: function (checkpoint) {\n    this.reactMountReady.rollback(checkpoint);\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;"]}