{"ast":null,"code":"/** @license React v0.20.2\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function () {\n 'use strict';\n\n var enableSchedulerDebugging = false;\n var enableProfiling = false;\n var requestHostCallback;\n var requestHostTimeout;\n var cancelHostTimeout;\n var requestPaint;\n var hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\n if (hasPerformanceNow) {\n var localPerformance = performance;\n\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date;\n var initialTime = localDate.now();\n\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n }\n\n if ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n // implementation using setTimeout.\n typeof window === 'undefined' || // Check if MessageChannel is supported, too.\n typeof MessageChannel !== 'function') {\n // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n // fallback to a naive implementation.\n var _callback = null;\n var _timeoutID = null;\n\n var _flushCallback = function () {\n if (_callback !== null) {\n try {\n var currentTime = exports.unstable_now();\n var hasRemainingTime = true;\n\n _callback(hasRemainingTime, currentTime);\n\n _callback = null;\n } catch (e) {\n setTimeout(_flushCallback, 0);\n throw e;\n }\n }\n };\n\n requestHostCallback = function (cb) {\n if (_callback !== null) {\n // Protect against re-entrancy.\n setTimeout(requestHostCallback, 0, cb);\n } else {\n _callback = cb;\n setTimeout(_flushCallback, 0);\n }\n };\n\n requestHostTimeout = function (cb, ms) {\n _timeoutID = setTimeout(cb, ms);\n };\n\n cancelHostTimeout = function () {\n clearTimeout(_timeoutID);\n };\n\n exports.unstable_shouldYield = function () {\n return false;\n };\n\n requestPaint = exports.unstable_forceFrameRate = function () {};\n } else {\n // Capture local references to native APIs, in case a polyfill overrides them.\n var _setTimeout = window.setTimeout;\n var _clearTimeout = window.clearTimeout;\n\n if (typeof console !== 'undefined') {\n // TODO: Scheduler no longer requires these methods to be polyfilled. But\n // maybe we want to continue warning if they don't exist, to preserve the\n // option to rely on it in the future?\n var requestAnimationFrame = window.requestAnimationFrame;\n var cancelAnimationFrame = window.cancelAnimationFrame;\n\n if (typeof requestAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n\n if (typeof cancelAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n }\n\n var isMessageLoopRunning = false;\n var scheduledHostCallback = null;\n var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n // thread, like user events. By default, it yields multiple times per frame.\n // It does not attempt to align with frame boundaries, since most tasks don't\n // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n var yieldInterval = 5;\n var deadline = 0; // TODO: Make this configurable\n\n {\n // `isInputPending` is not available. Since we have no way of knowing if\n // there's pending input, always yield at the end of the frame.\n exports.unstable_shouldYield = function () {\n return exports.unstable_now() >= deadline;\n }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n requestPaint = function () {};\n }\n\n exports.unstable_forceFrameRate = function (fps) {\n if (fps < 0 || fps > 125) {\n // Using console['error'] to evade Babel and ESLint\n console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n return;\n }\n\n if (fps > 0) {\n yieldInterval = Math.floor(1000 / fps);\n } else {\n // reset the framerate\n yieldInterval = 5;\n }\n };\n\n var performWorkUntilDeadline = function () {\n if (scheduledHostCallback !== null) {\n var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n // cycle. This means there's always time remaining at the beginning of\n // the message event.\n\n deadline = currentTime + yieldInterval;\n var hasTimeRemaining = true;\n\n try {\n var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n if (!hasMoreWork) {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n } else {\n // If there's more work, schedule the next message event at the end\n // of the preceding one.\n port.postMessage(null);\n }\n } catch (error) {\n // If a scheduler task throws, exit the current browser task so the\n // error can be observed.\n port.postMessage(null);\n throw error;\n }\n } else {\n isMessageLoopRunning = false;\n } // Yielding to the browser will give it a chance to paint, so we can\n\n };\n\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n\n requestHostCallback = function (callback) {\n scheduledHostCallback = callback;\n\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n port.postMessage(null);\n }\n };\n\n requestHostTimeout = function (callback, ms) {\n taskTimeoutID = _setTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n };\n\n cancelHostTimeout = function () {\n _clearTimeout(taskTimeoutID);\n\n taskTimeoutID = -1;\n };\n }\n\n function push(heap, node) {\n var index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n }\n\n function peek(heap) {\n var first = heap[0];\n return first === undefined ? null : first;\n }\n\n function pop(heap) {\n var first = heap[0];\n\n if (first !== undefined) {\n var last = heap.pop();\n\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n\n return first;\n } else {\n return null;\n }\n }\n\n function siftUp(heap, node, i) {\n var index = i;\n\n while (true) {\n var parentIndex = index - 1 >>> 1;\n var parent = heap[parentIndex];\n\n if (parent !== undefined && compare(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n // The parent is smaller. Exit.\n return;\n }\n }\n }\n\n function siftDown(heap, node, i) {\n var index = i;\n var length = heap.length;\n\n while (index < length) {\n var leftIndex = (index + 1) * 2 - 1;\n var left = heap[leftIndex];\n var rightIndex = leftIndex + 1;\n var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n if (left !== undefined && compare(left, node) < 0) {\n if (right !== undefined && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (right !== undefined && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n // Neither child is smaller. Exit.\n return;\n }\n }\n }\n\n function compare(a, b) {\n // Compare sort index first, then task id.\n var diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n } // TODO: Use symbols?\n\n\n var ImmediatePriority = 1;\n var UserBlockingPriority = 2;\n var NormalPriority = 3;\n var LowPriority = 4;\n var IdlePriority = 5;\n\n function markTaskErrored(task, ms) {}\n /* eslint-disable no-var */\n // Math.pow(2, 30) - 1\n // 0b111111111111111111111111111111\n\n\n var maxSigned31BitInt = 1073741823; // Times out immediately\n\n var IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\n var USER_BLOCKING_PRIORITY_TIMEOUT = 250;\n var NORMAL_PRIORITY_TIMEOUT = 5000;\n var LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\n var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\n var taskQueue = [];\n var timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\n var taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\n\n var currentTask = null;\n var currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\n var isPerformingWork = false;\n var isHostCallbackScheduled = false;\n var isHostTimeoutScheduled = false;\n\n function advanceTimers(currentTime) {\n // Check for tasks that are no longer delayed and add them to the queue.\n var timer = peek(timerQueue);\n\n while (timer !== null) {\n if (timer.callback === null) {\n // Timer was cancelled.\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n // Timer fired. Transfer to the task queue.\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n // Remaining timers are pending.\n return;\n }\n\n timer = peek(timerQueue);\n }\n }\n\n function handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n }\n\n function flushWork(hasTimeRemaining, initialTime) {\n isHostCallbackScheduled = false;\n\n if (isHostTimeoutScheduled) {\n // We scheduled a timeout but it's no longer needed. Cancel it.\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n\n isPerformingWork = true;\n var previousPriorityLevel = currentPriorityLevel;\n\n try {\n if (enableProfiling) {\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } catch (error) {\n if (currentTask !== null) {\n var currentTime = exports.unstable_now();\n markTaskErrored(currentTask, currentTime);\n currentTask.isQueued = false;\n }\n\n throw error;\n }\n } else {\n // No catch in prod code path.\n return workLoop(hasTimeRemaining, initialTime);\n }\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n }\n\n function workLoop(hasTimeRemaining, initialTime) {\n var currentTime = initialTime;\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n\n while (currentTask !== null && !enableSchedulerDebugging) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n // This currentTask hasn't expired, and we've reached the deadline.\n break;\n }\n\n var callback = currentTask.callback;\n\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n var continuationCallback = callback(didUserCallbackTimeout);\n currentTime = exports.unstable_now();\n\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n\n currentTask = peek(taskQueue);\n } // Return whether there's additional work\n\n\n if (currentTask !== null) {\n return true;\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n\n return false;\n }\n }\n\n function unstable_runWithPriority(priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n case LowPriority:\n case IdlePriority:\n break;\n\n default:\n priorityLevel = NormalPriority;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n }\n\n function unstable_next(eventHandler) {\n var priorityLevel;\n\n switch (currentPriorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n // Shift down to normal priority\n priorityLevel = NormalPriority;\n break;\n\n default:\n // Anything lower than normal priority should remain at the current level.\n priorityLevel = currentPriorityLevel;\n break;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n }\n\n function unstable_wrapCallback(callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n // This is a fork of runWithPriority, inlined for performance.\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n }\n\n function unstable_scheduleCallback(priorityLevel, callback, options) {\n var currentTime = exports.unstable_now();\n var startTime;\n\n if (typeof options === 'object' && options !== null) {\n var delay = options.delay;\n\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n\n var timeout;\n\n switch (priorityLevel) {\n case ImmediatePriority:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n\n case UserBlockingPriority:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n\n case IdlePriority:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n\n case LowPriority:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n\n case NormalPriority:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n\n var expirationTime = startTime + timeout;\n var newTask = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: startTime,\n expirationTime: expirationTime,\n sortIndex: -1\n };\n\n if (startTime > currentTime) {\n // This is a delayed task.\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n // All tasks are delayed, and this is the task with the earliest delay.\n if (isHostTimeoutScheduled) {\n // Cancel an existing timeout.\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n } // Schedule a timeout.\n\n\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask); // wait until the next time we yield.\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n return newTask;\n }\n\n function unstable_pauseExecution() {}\n\n function unstable_continueExecution() {\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n function unstable_getFirstCallbackNode() {\n return peek(taskQueue);\n }\n\n function unstable_cancelCallback(task) {\n // remove from the queue because you can't remove arbitrary nodes from an\n // array based heap, only the first one.)\n task.callback = null;\n }\n\n function unstable_getCurrentPriorityLevel() {\n return currentPriorityLevel;\n }\n\n var unstable_requestPaint = requestPaint;\n var unstable_Profiling = null;\n exports.unstable_IdlePriority = IdlePriority;\n exports.unstable_ImmediatePriority = ImmediatePriority;\n exports.unstable_LowPriority = LowPriority;\n exports.unstable_NormalPriority = NormalPriority;\n exports.unstable_Profiling = unstable_Profiling;\n exports.unstable_UserBlockingPriority = UserBlockingPriority;\n exports.unstable_cancelCallback = unstable_cancelCallback;\n exports.unstable_continueExecution = unstable_continueExecution;\n exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\n exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\n exports.unstable_next = unstable_next;\n exports.unstable_pauseExecution = unstable_pauseExecution;\n exports.unstable_requestPaint = unstable_requestPaint;\n exports.unstable_runWithPriority = unstable_runWithPriority;\n exports.unstable_scheduleCallback = unstable_scheduleCallback;\n exports.unstable_wrapCallback = unstable_wrapCallback;\n })();\n}","map":{"version":3,"sources":["/app/node_modules/scheduler/cjs/scheduler.development.js"],"names":["process","env","NODE_ENV","enableSchedulerDebugging","enableProfiling","requestHostCallback","requestHostTimeout","cancelHostTimeout","requestPaint","hasPerformanceNow","performance","now","localPerformance","exports","unstable_now","localDate","Date","initialTime","window","MessageChannel","_callback","_timeoutID","_flushCallback","currentTime","hasRemainingTime","e","setTimeout","cb","ms","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","_setTimeout","_clearTimeout","console","requestAnimationFrame","cancelAnimationFrame","isMessageLoopRunning","scheduledHostCallback","taskTimeoutID","yieldInterval","deadline","fps","Math","floor","performWorkUntilDeadline","hasTimeRemaining","hasMoreWork","port","postMessage","error","channel","port2","port1","onmessage","callback","push","heap","node","index","length","siftUp","peek","first","undefined","pop","last","siftDown","i","parentIndex","parent","compare","leftIndex","left","rightIndex","right","a","b","diff","sortIndex","id","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","markTaskErrored","task","maxSigned31BitInt","IMMEDIATE_PRIORITY_TIMEOUT","USER_BLOCKING_PRIORITY_TIMEOUT","NORMAL_PRIORITY_TIMEOUT","LOW_PRIORITY_TIMEOUT","IDLE_PRIORITY_TIMEOUT","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","advanceTimers","timer","startTime","expirationTime","handleTimeout","flushWork","firstTimer","previousPriorityLevel","workLoop","isQueued","priorityLevel","didUserCallbackTimeout","continuationCallback","unstable_runWithPriority","eventHandler","unstable_next","unstable_wrapCallback","parentPriorityLevel","apply","arguments","unstable_scheduleCallback","options","delay","timeout","newTask","unstable_pauseExecution","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_cancelCallback","unstable_getCurrentPriorityLevel","unstable_requestPaint","unstable_Profiling","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_UserBlockingPriority"],"mappings":"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","sourcesContent":["/** @license React v0.20.2\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar enableSchedulerDebugging = false;\nvar enableProfiling = false;\n\nvar requestHostCallback;\nvar requestHostTimeout;\nvar cancelHostTimeout;\nvar requestPaint;\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n var localPerformance = performance;\n\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date;\n var initialTime = localDate.now();\n\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\n\nif ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' || // Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n // fallback to a naive implementation.\n var _callback = null;\n var _timeoutID = null;\n\n var _flushCallback = function () {\n if (_callback !== null) {\n try {\n var currentTime = exports.unstable_now();\n var hasRemainingTime = true;\n\n _callback(hasRemainingTime, currentTime);\n\n _callback = null;\n } catch (e) {\n setTimeout(_flushCallback, 0);\n throw e;\n }\n }\n };\n\n requestHostCallback = function (cb) {\n if (_callback !== null) {\n // Protect against re-entrancy.\n setTimeout(requestHostCallback, 0, cb);\n } else {\n _callback = cb;\n setTimeout(_flushCallback, 0);\n }\n };\n\n requestHostTimeout = function (cb, ms) {\n _timeoutID = setTimeout(cb, ms);\n };\n\n cancelHostTimeout = function () {\n clearTimeout(_timeoutID);\n };\n\n exports.unstable_shouldYield = function () {\n return false;\n };\n\n requestPaint = exports.unstable_forceFrameRate = function () {};\n} else {\n // Capture local references to native APIs, in case a polyfill overrides them.\n var _setTimeout = window.setTimeout;\n var _clearTimeout = window.clearTimeout;\n\n if (typeof console !== 'undefined') {\n // TODO: Scheduler no longer requires these methods to be polyfilled. But\n // maybe we want to continue warning if they don't exist, to preserve the\n // option to rely on it in the future?\n var requestAnimationFrame = window.requestAnimationFrame;\n var cancelAnimationFrame = window.cancelAnimationFrame;\n\n if (typeof requestAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n\n if (typeof cancelAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n }\n\n var isMessageLoopRunning = false;\n var scheduledHostCallback = null;\n var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n // thread, like user events. By default, it yields multiple times per frame.\n // It does not attempt to align with frame boundaries, since most tasks don't\n // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n var yieldInterval = 5;\n var deadline = 0; // TODO: Make this configurable\n\n {\n // `isInputPending` is not available. Since we have no way of knowing if\n // there's pending input, always yield at the end of the frame.\n exports.unstable_shouldYield = function () {\n return exports.unstable_now() >= deadline;\n }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n requestPaint = function () {};\n }\n\n exports.unstable_forceFrameRate = function (fps) {\n if (fps < 0 || fps > 125) {\n // Using console['error'] to evade Babel and ESLint\n console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n return;\n }\n\n if (fps > 0) {\n yieldInterval = Math.floor(1000 / fps);\n } else {\n // reset the framerate\n yieldInterval = 5;\n }\n };\n\n var performWorkUntilDeadline = function () {\n if (scheduledHostCallback !== null) {\n var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n // cycle. This means there's always time remaining at the beginning of\n // the message event.\n\n deadline = currentTime + yieldInterval;\n var hasTimeRemaining = true;\n\n try {\n var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n if (!hasMoreWork) {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n } else {\n // If there's more work, schedule the next message event at the end\n // of the preceding one.\n port.postMessage(null);\n }\n } catch (error) {\n // If a scheduler task throws, exit the current browser task so the\n // error can be observed.\n port.postMessage(null);\n throw error;\n }\n } else {\n isMessageLoopRunning = false;\n } // Yielding to the browser will give it a chance to paint, so we can\n };\n\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n\n requestHostCallback = function (callback) {\n scheduledHostCallback = callback;\n\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n port.postMessage(null);\n }\n };\n\n requestHostTimeout = function (callback, ms) {\n taskTimeoutID = _setTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n };\n\n cancelHostTimeout = function () {\n _clearTimeout(taskTimeoutID);\n\n taskTimeoutID = -1;\n };\n}\n\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n}\nfunction peek(heap) {\n var first = heap[0];\n return first === undefined ? null : first;\n}\nfunction pop(heap) {\n var first = heap[0];\n\n if (first !== undefined) {\n var last = heap.pop();\n\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n\n return first;\n } else {\n return null;\n }\n}\n\nfunction siftUp(heap, node, i) {\n var index = i;\n\n while (true) {\n var parentIndex = index - 1 >>> 1;\n var parent = heap[parentIndex];\n\n if (parent !== undefined && compare(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n // The parent is smaller. Exit.\n return;\n }\n }\n}\n\nfunction siftDown(heap, node, i) {\n var index = i;\n var length = heap.length;\n\n while (index < length) {\n var leftIndex = (index + 1) * 2 - 1;\n var left = heap[leftIndex];\n var rightIndex = leftIndex + 1;\n var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n if (left !== undefined && compare(left, node) < 0) {\n if (right !== undefined && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (right !== undefined && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n // Neither child is smaller. Exit.\n return;\n }\n }\n}\n\nfunction compare(a, b) {\n // Compare sort index first, then task id.\n var diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nfunction markTaskErrored(task, ms) {\n}\n\n/* eslint-disable no-var */\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction advanceTimers(currentTime) {\n // Check for tasks that are no longer delayed and add them to the queue.\n var timer = peek(timerQueue);\n\n while (timer !== null) {\n if (timer.callback === null) {\n // Timer was cancelled.\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n // Timer fired. Transfer to the task queue.\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n // Remaining timers are pending.\n return;\n }\n\n timer = peek(timerQueue);\n }\n}\n\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n\n\n isHostCallbackScheduled = false;\n\n if (isHostTimeoutScheduled) {\n // We scheduled a timeout but it's no longer needed. Cancel it.\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n\n isPerformingWork = true;\n var previousPriorityLevel = currentPriorityLevel;\n\n try {\n if (enableProfiling) {\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } catch (error) {\n if (currentTask !== null) {\n var currentTime = exports.unstable_now();\n markTaskErrored(currentTask, currentTime);\n currentTask.isQueued = false;\n }\n\n throw error;\n }\n } else {\n // No catch in prod code path.\n return workLoop(hasTimeRemaining, initialTime);\n }\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n var currentTime = initialTime;\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n\n while (currentTask !== null && !(enableSchedulerDebugging )) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n // This currentTask hasn't expired, and we've reached the deadline.\n break;\n }\n\n var callback = currentTask.callback;\n\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n\n var continuationCallback = callback(didUserCallbackTimeout);\n currentTime = exports.unstable_now();\n\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n\n currentTask = peek(taskQueue);\n } // Return whether there's additional work\n\n\n if (currentTask !== null) {\n return true;\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n\n return false;\n }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n case LowPriority:\n case IdlePriority:\n break;\n\n default:\n priorityLevel = NormalPriority;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_next(eventHandler) {\n var priorityLevel;\n\n switch (currentPriorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n // Shift down to normal priority\n priorityLevel = NormalPriority;\n break;\n\n default:\n // Anything lower than normal priority should remain at the current level.\n priorityLevel = currentPriorityLevel;\n break;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_wrapCallback(callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n // This is a fork of runWithPriority, inlined for performance.\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n var currentTime = exports.unstable_now();\n var startTime;\n\n if (typeof options === 'object' && options !== null) {\n var delay = options.delay;\n\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n\n var timeout;\n\n switch (priorityLevel) {\n case ImmediatePriority:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n\n case UserBlockingPriority:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n\n case IdlePriority:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n\n case LowPriority:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n\n case NormalPriority:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n\n var expirationTime = startTime + timeout;\n var newTask = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: startTime,\n expirationTime: expirationTime,\n sortIndex: -1\n };\n\n if (startTime > currentTime) {\n // This is a delayed task.\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n // All tasks are delayed, and this is the task with the earliest delay.\n if (isHostTimeoutScheduled) {\n // Cancel an existing timeout.\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n } // Schedule a timeout.\n\n\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask);\n // wait until the next time we yield.\n\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n}\n\nfunction unstable_getFirstCallbackNode() {\n return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n // remove from the queue because you can't remove arbitrary nodes from an\n // array based heap, only the first one.)\n\n\n task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n return currentPriorityLevel;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling = null;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n })();\n}\n"]},"metadata":{},"sourceType":"script"}