| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| "use strict"; |
| "production" !== process.env.NODE_ENV && |
| (function () { |
| function push(heap, node) { |
| var index = heap.length; |
| heap.push(node); |
| a: for (; 0 < index; ) { |
| var parentIndex = (index - 1) >>> 1, |
| parent = heap[parentIndex]; |
| if (0 < compare(parent, node)) |
| (heap[parentIndex] = node), |
| (heap[index] = parent), |
| (index = parentIndex); |
| else break a; |
| } |
| } |
| function peek(heap) { |
| return 0 === heap.length ? null : heap[0]; |
| } |
| function pop(heap) { |
| if (0 === heap.length) return null; |
| var first = heap[0], |
| last = heap.pop(); |
| if (last !== first) { |
| heap[0] = last; |
| a: for ( |
| var index = 0, length = heap.length, halfLength = length >>> 1; |
| index < halfLength; |
|
|
| ) { |
| var leftIndex = 2 * (index + 1) - 1, |
| left = heap[leftIndex], |
| rightIndex = leftIndex + 1, |
| right = heap[rightIndex]; |
| if (0 > compare(left, last)) |
| rightIndex < length && 0 > compare(right, left) |
| ? ((heap[index] = right), |
| (heap[rightIndex] = last), |
| (index = rightIndex)) |
| : ((heap[index] = left), |
| (heap[leftIndex] = last), |
| (index = leftIndex)); |
| else if (rightIndex < length && 0 > compare(right, last)) |
| (heap[index] = right), |
| (heap[rightIndex] = last), |
| (index = rightIndex); |
| else break a; |
| } |
| } |
| return first; |
| } |
| function compare(a, b) { |
| var diff = a.sortIndex - b.sortIndex; |
| return 0 !== diff ? diff : a.id - b.id; |
| } |
| function advanceTimers(currentTime) { |
| for (var timer = peek(timerQueue); null !== timer; ) { |
| if (null === timer.callback) pop(timerQueue); |
| else if (timer.startTime <= currentTime) |
| pop(timerQueue), |
| (timer.sortIndex = timer.expirationTime), |
| push(taskQueue, timer); |
| else break; |
| timer = peek(timerQueue); |
| } |
| } |
| function handleTimeout(currentTime) { |
| isHostTimeoutScheduled = !1; |
| advanceTimers(currentTime); |
| if (!isHostCallbackScheduled) |
| if (null !== peek(taskQueue)) |
| (isHostCallbackScheduled = !0), (scheduledCallback = flushWork); |
| else { |
| var firstTimer = peek(timerQueue); |
| null !== firstTimer && |
| ((currentTime = firstTimer.startTime - currentTime), |
| (scheduledTimeout = handleTimeout), |
| (timeoutTime = currentMockTime + currentTime)); |
| } |
| } |
| function flushWork(hasTimeRemaining, initialTime) { |
| isHostCallbackScheduled = !1; |
| isHostTimeoutScheduled && |
| ((isHostTimeoutScheduled = !1), |
| (scheduledTimeout = null), |
| (timeoutTime = -1)); |
| isPerformingWork = !0; |
| var previousPriorityLevel = currentPriorityLevel; |
| try { |
| a: { |
| advanceTimers(initialTime); |
| for ( |
| currentTask = peek(taskQueue); |
| null !== currentTask && |
| (!(currentTask.expirationTime > initialTime) || |
| (hasTimeRemaining && !shouldYieldToHost())); |
|
|
| ) { |
| var callback = currentTask.callback; |
| if ("function" === typeof callback) { |
| currentTask.callback = null; |
| currentPriorityLevel = currentTask.priorityLevel; |
| var continuationCallback = callback( |
| currentTask.expirationTime <= initialTime |
| ); |
| initialTime = currentMockTime; |
| if ("function" === typeof continuationCallback) { |
| if ( |
| ((currentTask.callback = continuationCallback), |
| advanceTimers(initialTime), |
| shouldYieldForPaint) |
| ) { |
| var JSCompiler_inline_result = (needsPaint = !0); |
| break a; |
| } |
| } else |
| currentTask === peek(taskQueue) && pop(taskQueue), |
| advanceTimers(initialTime); |
| } else pop(taskQueue); |
| currentTask = peek(taskQueue); |
| } |
| if (null !== currentTask) JSCompiler_inline_result = !0; |
| else { |
| var firstTimer = peek(timerQueue); |
| if (null !== firstTimer) { |
| var ms = firstTimer.startTime - initialTime; |
| scheduledTimeout = handleTimeout; |
| timeoutTime = currentMockTime + ms; |
| } |
| JSCompiler_inline_result = !1; |
| } |
| } |
| return JSCompiler_inline_result; |
| } finally { |
| (currentTask = null), |
| (currentPriorityLevel = previousPriorityLevel), |
| (isPerformingWork = !1); |
| } |
| } |
| function shouldYieldToHost() { |
| return (0 === expectedNumberOfYields && null === yieldedValues) || |
| (-1 !== expectedNumberOfYields && |
| null !== yieldedValues && |
| yieldedValues.length >= expectedNumberOfYields) || |
| (shouldYieldForPaint && needsPaint) |
| ? (didStop = !0) |
| : !1; |
| } |
| function unstable_flushAllWithoutAsserting() { |
| if (isFlushing) throw Error("Already flushing work."); |
| if (null !== scheduledCallback) { |
| var cb = scheduledCallback; |
| isFlushing = !0; |
| try { |
| var hasMoreWork = !0; |
| do hasMoreWork = cb(!0, currentMockTime); |
| while (hasMoreWork); |
| hasMoreWork || (scheduledCallback = null); |
| return !0; |
| } finally { |
| isFlushing = !1; |
| } |
| } else return !1; |
| } |
| var taskQueue = [], |
| timerQueue = [], |
| taskIdCounter = 1, |
| currentTask = null, |
| currentPriorityLevel = 3, |
| isPerformingWork = !1, |
| isHostCallbackScheduled = !1, |
| isHostTimeoutScheduled = !1, |
| currentMockTime = 0, |
| scheduledCallback = null, |
| scheduledTimeout = null, |
| timeoutTime = -1, |
| yieldedValues = null, |
| expectedNumberOfYields = -1, |
| didStop = !1, |
| isFlushing = !1, |
| needsPaint = !1, |
| shouldYieldForPaint = !1, |
| disableYieldValue = !1; |
| exports.log = function (value) { |
| "disabledLog" === console.log.name || |
| disableYieldValue || |
| (null === yieldedValues |
| ? (yieldedValues = [value]) |
| : yieldedValues.push(value)); |
| }; |
| exports.reset = function () { |
| if (isFlushing) throw Error("Cannot reset while already flushing work."); |
| currentMockTime = 0; |
| scheduledTimeout = scheduledCallback = null; |
| timeoutTime = -1; |
| yieldedValues = null; |
| expectedNumberOfYields = -1; |
| needsPaint = isFlushing = didStop = !1; |
| }; |
| exports.unstable_IdlePriority = 5; |
| exports.unstable_ImmediatePriority = 1; |
| exports.unstable_LowPriority = 4; |
| exports.unstable_NormalPriority = 3; |
| exports.unstable_Profiling = null; |
| exports.unstable_UserBlockingPriority = 2; |
| exports.unstable_advanceTime = function (ms) { |
| "disabledLog" === console.log.name || |
| disableYieldValue || |
| ((currentMockTime += ms), |
| null !== scheduledTimeout && |
| timeoutTime <= currentMockTime && |
| (scheduledTimeout(currentMockTime), |
| (timeoutTime = -1), |
| (scheduledTimeout = null))); |
| }; |
| exports.unstable_cancelCallback = function (task) { |
| task.callback = null; |
| }; |
| exports.unstable_clearLog = function () { |
| if (null === yieldedValues) return []; |
| var values = yieldedValues; |
| yieldedValues = null; |
| return values; |
| }; |
| exports.unstable_flushAll = function () { |
| if (null !== yieldedValues) |
| throw Error( |
| "Log is not empty. Assert on the log of yielded values before flushing additional work." |
| ); |
| unstable_flushAllWithoutAsserting(); |
| if (null !== yieldedValues) |
| throw Error( |
| "While flushing work, something yielded a value. Use an assertion helper to assert on the log of yielded values, e.g. expect(Scheduler).toFlushAndYield([...])" |
| ); |
| }; |
| exports.unstable_flushAllWithoutAsserting = |
| unstable_flushAllWithoutAsserting; |
| exports.unstable_flushExpired = function () { |
| if (isFlushing) throw Error("Already flushing work."); |
| if (null !== scheduledCallback) { |
| isFlushing = !0; |
| try { |
| scheduledCallback(!1, currentMockTime) || (scheduledCallback = null); |
| } finally { |
| isFlushing = !1; |
| } |
| } |
| }; |
| exports.unstable_flushNumberOfYields = function (count) { |
| if (isFlushing) throw Error("Already flushing work."); |
| if (null !== scheduledCallback) { |
| var cb = scheduledCallback; |
| expectedNumberOfYields = count; |
| isFlushing = !0; |
| try { |
| count = !0; |
| do count = cb(!0, currentMockTime); |
| while (count && !didStop); |
| count || (scheduledCallback = null); |
| } finally { |
| (expectedNumberOfYields = -1), (isFlushing = didStop = !1); |
| } |
| } |
| }; |
| exports.unstable_flushUntilNextPaint = function () { |
| if (isFlushing) throw Error("Already flushing work."); |
| if (null !== scheduledCallback) { |
| var cb = scheduledCallback; |
| shouldYieldForPaint = !0; |
| needsPaint = !1; |
| isFlushing = !0; |
| try { |
| var hasMoreWork = !0; |
| do hasMoreWork = cb(!0, currentMockTime); |
| while (hasMoreWork && !didStop); |
| hasMoreWork || (scheduledCallback = null); |
| } finally { |
| isFlushing = didStop = shouldYieldForPaint = !1; |
| } |
| } |
| return !1; |
| }; |
| exports.unstable_forceFrameRate = function () {}; |
| exports.unstable_getCurrentPriorityLevel = function () { |
| return currentPriorityLevel; |
| }; |
| exports.unstable_hasPendingWork = function () { |
| return null !== scheduledCallback; |
| }; |
| exports.unstable_next = function (eventHandler) { |
| switch (currentPriorityLevel) { |
| case 1: |
| case 2: |
| case 3: |
| var priorityLevel = 3; |
| break; |
| default: |
| priorityLevel = currentPriorityLevel; |
| } |
| var previousPriorityLevel = currentPriorityLevel; |
| currentPriorityLevel = priorityLevel; |
| try { |
| return eventHandler(); |
| } finally { |
| currentPriorityLevel = previousPriorityLevel; |
| } |
| }; |
| exports.unstable_now = function () { |
| return currentMockTime; |
| }; |
| exports.unstable_requestPaint = function () { |
| needsPaint = !0; |
| }; |
| exports.unstable_runWithPriority = function (priorityLevel, eventHandler) { |
| switch (priorityLevel) { |
| case 1: |
| case 2: |
| case 3: |
| case 4: |
| case 5: |
| break; |
| default: |
| priorityLevel = 3; |
| } |
| var previousPriorityLevel = currentPriorityLevel; |
| currentPriorityLevel = priorityLevel; |
| try { |
| return eventHandler(); |
| } finally { |
| currentPriorityLevel = previousPriorityLevel; |
| } |
| }; |
| exports.unstable_scheduleCallback = function ( |
| priorityLevel, |
| callback, |
| options |
| ) { |
| var currentTime = currentMockTime; |
| "object" === typeof options && null !== options |
| ? ((options = options.delay), |
| (options = |
| "number" === typeof options && 0 < options |
| ? currentTime + options |
| : currentTime)) |
| : (options = currentTime); |
| switch (priorityLevel) { |
| case 1: |
| var timeout = -1; |
| break; |
| case 2: |
| timeout = 250; |
| break; |
| case 5: |
| timeout = 1073741823; |
| break; |
| case 4: |
| timeout = 1e4; |
| break; |
| default: |
| timeout = 5e3; |
| } |
| timeout = options + timeout; |
| priorityLevel = { |
| id: taskIdCounter++, |
| callback: callback, |
| priorityLevel: priorityLevel, |
| startTime: options, |
| expirationTime: timeout, |
| sortIndex: -1 |
| }; |
| options > currentTime |
| ? ((priorityLevel.sortIndex = options), |
| push(timerQueue, priorityLevel), |
| null === peek(taskQueue) && |
| priorityLevel === peek(timerQueue) && |
| (isHostTimeoutScheduled |
| ? ((scheduledTimeout = null), (timeoutTime = -1)) |
| : (isHostTimeoutScheduled = !0), |
| (scheduledTimeout = handleTimeout), |
| (timeoutTime = currentMockTime + (options - currentTime)))) |
| : ((priorityLevel.sortIndex = timeout), |
| push(taskQueue, priorityLevel), |
| isHostCallbackScheduled || |
| isPerformingWork || |
| ((isHostCallbackScheduled = !0), (scheduledCallback = flushWork))); |
| return priorityLevel; |
| }; |
| exports.unstable_setDisableYieldValue = function (newValue) { |
| disableYieldValue = newValue; |
| }; |
| exports.unstable_shouldYield = shouldYieldToHost; |
| exports.unstable_wrapCallback = function (callback) { |
| var parentPriorityLevel = currentPriorityLevel; |
| return function () { |
| var previousPriorityLevel = currentPriorityLevel; |
| currentPriorityLevel = parentPriorityLevel; |
| try { |
| return callback.apply(this, arguments); |
| } finally { |
| currentPriorityLevel = previousPriorityLevel; |
| } |
| }; |
| }; |
| })(); |
|
|