{"version":3,"file":"static/js/main.f9892556.js","mappings":"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","sources":["../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/attr-accept/dist/es/index.js","../node_modules/automation-events/build/es5/bundle.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/broker-factory/src/helpers/port-map.ts","../node_modules/broker-factory/src/module.ts","../node_modules/broker-factory/src/helpers/extend-broker-implementation.ts","../node_modules/broker-factory/src/guards/message-port.ts","../node_modules/classnames/index.js","../node_modules/compilerr/build/es5/bundle.js","../node_modules/copy-to-clipboard/index.js","../node_modules/dashify/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/extendable-media-recorder-wav-encoder-broker/src/module.ts","../node_modules/extendable-media-recorder-wav-encoder/src/module.ts","../node_modules/extendable-media-recorder-wav-encoder/src/worker/worker.ts","../node_modules/media-encoder-host-broker/src/module.ts","../node_modules/media-encoder-host/src/module.ts","../node_modules/media-encoder-host/src/worker/worker.ts","../node_modules/extendable-media-recorder/src/factories/invalid-modification-error.ts","../node_modules/extendable-media-recorder/src/factories/not-supported-error.ts","../node_modules/rxjs-interop/source/symbols.ts","../node_modules/rxjs-interop/source/to-observer.ts","../node_modules/subscribable-things/src/factories/animation-frame.ts","../node_modules/subscribable-things/src/functions/emit-not-supported-error.ts","../node_modules/subscribable-things/src/module.ts","../node_modules/subscribable-things/src/factories/window.ts","../node_modules/subscribable-things/src/factories/wrap-subscribe-function.ts","../node_modules/rxjs-interop/source/patch.ts","../node_modules/subscribable-things/src/factories/mutations.ts","../node_modules/subscribable-things/src/factories/map-subscribable-thing.ts","../node_modules/subscribable-things/src/factories/prepend-subscribable-thing.ts","../node_modules/subscribable-things/src/factories/attribute.ts","../node_modules/subscribable-things/src/factories/geolocation.ts","../node_modules/subscribable-things/src/factories/intersections.ts","../node_modules/subscribable-things/src/factories/media-devices.ts","../node_modules/subscribable-things/src/factories/media-query-match.ts","../node_modules/subscribable-things/src/factories/metrics.ts","../node_modules/subscribable-things/src/factories/midi-inputs.ts","../node_modules/subscribable-things/src/factories/midi-outputs.ts","../node_modules/subscribable-things/src/factories/on.ts","../node_modules/subscribable-things/src/factories/online.ts","../node_modules/subscribable-things/src/factories/permission-state.ts","../node_modules/subscribable-things/src/factories/reports.ts","../node_modules/subscribable-things/src/factories/resizes.ts","../node_modules/subscribable-things/src/factories/unhandled-rejection.ts","../node_modules/subscribable-things/src/factories/video-frame.ts","../node_modules/subscribable-things/src/factories/wake-lock.ts","../node_modules/worker-factory/src/helpers/error-renderers.ts","../node_modules/recorder-audio-worklet/src/module.ts","../node_modules/worker-factory/src/helpers/extend-worker-implementation.ts","../node_modules/recorder-audio-worklet/src/factories/add-recorder-audio-worklet-module.ts","../node_modules/recorder-audio-worklet/src/worklet/worklet.ts","../node_modules/recorder-audio-worklet/src/factories/recorder-audio-worklet-node-factory.ts","../node_modules/recorder-audio-worklet/src/factories/listener.ts","../node_modules/recorder-audio-worklet/src/factories/post-message-factory.ts","../node_modules/recorder-audio-worklet/src/functions/validate-state.ts","../node_modules/standardized-audio-context/src/globals.ts","../node_modules/standardized-audio-context/src/helpers/is-constructible.ts","../node_modules/standardized-audio-context/src/helpers/split-import-statements.ts","../node_modules/standardized-audio-context/src/factories/add-audio-worklet-module.ts","../node_modules/standardized-audio-context/src/helpers/get-value-for-key.ts","../node_modules/standardized-audio-context/src/helpers/pick-element-from-set.ts","../node_modules/standardized-audio-context/src/helpers/delete-passive-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/get-event-listeners-of-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/set-internal-state-to-active.ts","../node_modules/standardized-audio-context/src/guards/audio-worklet-node.ts","../node_modules/standardized-audio-context/src/helpers/set-internal-state-to-passive.ts","../node_modules/standardized-audio-context/src/helpers/set-internal-state-to-passive-when-necessary.ts","../node_modules/standardized-audio-context/src/factories/analyser-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/is-owned-by-context.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support.ts","../node_modules/standardized-audio-context/src/factories/index-size-error.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-buffer-get-channel-data-method.ts","../node_modules/standardized-audio-context/src/factories/audio-buffer-constructor.ts","../node_modules/standardized-audio-context/src/constants.ts","../node_modules/standardized-audio-context/src/helpers/is-active-audio-node.ts","../node_modules/standardized-audio-context/src/factories/audio-buffer-source-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/get-audio-node-connections.ts","../node_modules/standardized-audio-context/src/helpers/get-audio-param-connections.ts","../node_modules/standardized-audio-context/src/helpers/deactivate-active-audio-node-input-connections.ts","../node_modules/standardized-audio-context/src/guards/audio-buffer-source-node.ts","../node_modules/standardized-audio-context/src/guards/biquad-filter-node.ts","../node_modules/standardized-audio-context/src/guards/constant-source-node.ts","../node_modules/standardized-audio-context/src/guards/gain-node.ts","../node_modules/standardized-audio-context/src/guards/oscillator-node.ts","../node_modules/standardized-audio-context/src/guards/stereo-panner-node.ts","../node_modules/standardized-audio-context/src/helpers/deactivate-audio-graph.ts","../node_modules/standardized-audio-context/src/helpers/is-valid-latency-hint.ts","../node_modules/standardized-audio-context/src/guards/audio-node.ts","../node_modules/standardized-audio-context/src/guards/audio-node-output-connection.ts","../node_modules/standardized-audio-context/src/helpers/insert-element-in-set.ts","../node_modules/standardized-audio-context/src/helpers/add-active-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/helpers/add-passive-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/guards/native-audio-node-faker.ts","../node_modules/standardized-audio-context/src/helpers/connect-native-audio-node-to-native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/delete-active-input-connection.ts","../node_modules/standardized-audio-context/src/helpers/delete-event-listeners-of-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/delete-passive-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/helpers/disconnect-native-audio-node-from-native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/get-native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/get-native-audio-param.ts","../node_modules/standardized-audio-context/src/helpers/is-part-of-a-cycle.ts","../node_modules/standardized-audio-context/src/helpers/is-passive-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-node-disconnect-method-support.ts","../node_modules/standardized-audio-context/src/helpers/visit-each-audio-node-once.ts","../node_modules/standardized-audio-context/src/guards/native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-node-disconnect-method.ts","../node_modules/standardized-audio-context/src/factories/audio-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/delete-active-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/read-only-map.ts","../node_modules/standardized-audio-context/src/factories/audio-worklet-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/copy-from-channel.ts","../node_modules/standardized-audio-context/src/helpers/copy-to-channel.ts","../node_modules/standardized-audio-context/src/helpers/create-nested-arrays.ts","../node_modules/standardized-audio-context/src/helpers/get-audio-worklet-processor.ts","../node_modules/standardized-audio-context/src/factories/audio-worklet-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/biquad-filter-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/channel-merger-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/channel-splitter-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/constant-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/convolver-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/detach-array-buffer.ts","../node_modules/standardized-audio-context/src/factories/delay-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/disconnect-multiple-outputs.ts","../node_modules/standardized-audio-context/src/factories/dynamics-compressor-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/gain-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/invalid-state-error.ts","../node_modules/standardized-audio-context/src/factories/invalid-access-error.ts","../node_modules/standardized-audio-context/src/factories/iir-filter-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/filter-buffer.ts","../node_modules/standardized-audio-context/src/factories/iir-filter-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/media-stream-audio-destination-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/test-promise-support.ts","../node_modules/standardized-audio-context/src/factories/minimal-offline-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/helpers/assign-native-audio-node-option.ts","../node_modules/standardized-audio-context/src/helpers/assign-native-audio-node-options.ts","../node_modules/standardized-audio-context/src/helpers/test-analyser-node-get-float-time-domain-data-method-support.ts","../node_modules/standardized-audio-context/src/helpers/assign-native-audio-node-audio-param-value.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters.ts","../node_modules/standardized-audio-context/src/helpers/compute-buffer-size.ts","../node_modules/standardized-audio-context/src/helpers/clone-audio-worklet-node-options.ts","../node_modules/standardized-audio-context/src/helpers/create-audio-worklet-processor-promise.ts","../node_modules/standardized-audio-context/src/factories/native-biquad-filter-node.ts","../node_modules/standardized-audio-context/src/factories/native-channel-splitter-node.ts","../node_modules/standardized-audio-context/src/helpers/wrap-channel-splitter-node.ts","../node_modules/standardized-audio-context/src/helpers/intercept-connections.ts","../node_modules/standardized-audio-context/src/factories/native-delay-node.ts","../node_modules/standardized-audio-context/src/factories/native-gain-node.ts","../node_modules/standardized-audio-context/src/factories/native-iir-filter-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/cache-test-result.ts","../node_modules/standardized-audio-context/src/factories/get-native-context.ts","../node_modules/standardized-audio-context/src/factories/add-audio-node-connections.ts","../node_modules/standardized-audio-context/src/factories/convert-number-to-unsigned-long.ts","../node_modules/standardized-audio-context/src/factories/add-audio-param-connections.ts","../node_modules/standardized-audio-context/src/factories/native-script-processor-node.ts","../node_modules/standardized-audio-context/src/factories/not-supported-error.ts","../node_modules/standardized-audio-context/src/factories/offline-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/oscillator-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/panner-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/periodic-wave-constructor.ts","../node_modules/standardized-audio-context/src/factories/stereo-panner-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/unknown-error.ts","../node_modules/standardized-audio-context/src/factories/wave-shaper-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/get-first-sample.ts","../node_modules/standardized-audio-context/src/helpers/is-dc-curve.ts","../node_modules/standardized-audio-context/src/helpers/overwrite-accessors.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls.ts","../node_modules/standardized-audio-context/src/helpers/wrap-event-listener.ts","../node_modules/standardized-audio-context/src/module.ts","../node_modules/standardized-audio-context/src/factories/add-active-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/add-passive-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/delete-active-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/get-audio-node-tail-time.ts","../node_modules/standardized-audio-context/src/factories/window.ts","../node_modules/standardized-audio-context/src/factories/native-analyser-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/wrap-analyser-node-get-float-time-domain-data-method.ts","../node_modules/standardized-audio-context/src/factories/get-audio-node-renderer.ts","../node_modules/standardized-audio-context/src/factories/render-inputs-of-audio-node.ts","../node_modules/standardized-audio-context/src/factories/analyser-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-offline-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/is-native-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/event-target-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/is-native-audio-context.ts","../node_modules/standardized-audio-context/src/factories/is-native-audio-node.ts","../node_modules/standardized-audio-context/src/factories/is-native-audio-param.ts","../node_modules/standardized-audio-context/src/factories/native-audio-worklet-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/add-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/increment-cycle-counter-factory.ts","../node_modules/standardized-audio-context/src/factories/decrement-cycle-counter.ts","../node_modules/standardized-audio-context/src/factories/detect-cycles.ts","../node_modules/standardized-audio-context/src/guards/delay-node.ts","../node_modules/standardized-audio-context/src/factories/native-audio-buffer-constructor.ts","../node_modules/standardized-audio-context/src/factories/wrap-audio-buffer-copy-channel-methods.ts","../node_modules/standardized-audio-context/src/factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds.ts","../node_modules/standardized-audio-context/src/factories/test-audio-buffer-constructor-support.ts","../node_modules/standardized-audio-context/src/factories/add-silent-connection.ts","../node_modules/standardized-audio-context/src/factories/render-inputs-of-audio-param.ts","../node_modules/standardized-audio-context/src/factories/connect-audio-param.ts","../node_modules/standardized-audio-context/src/factories/native-audio-buffer-source-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-source-node-start-method-offset-clamping-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-buffer-source-node-start-method-offset-clamping.ts","../node_modules/standardized-audio-context/src/factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer.ts","../node_modules/standardized-audio-context/src/factories/render-automation.ts","../node_modules/standardized-audio-context/src/factories/get-audio-param-renderer.ts","../node_modules/standardized-audio-context/src/factories/audio-buffer-source-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/audio-param-factory.ts","../node_modules/standardized-audio-context/src/factories/audio-param-renderer.ts","../node_modules/standardized-audio-context/src/helpers/set-value-at-time-until-possible.ts","../node_modules/standardized-audio-context/src/factories/audio-destination-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/audio-destination-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-audio-destination-node.ts","../node_modules/standardized-audio-context/src/factories/biquad-filter-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/set-audio-node-tail-time.ts","../node_modules/standardized-audio-context/src/factories/monitor-connections.ts","../node_modules/standardized-audio-context/src/factories/wrap-channel-merger-node.ts","../node_modules/standardized-audio-context/src/factories/native-channel-merger-node-factory.ts","../node_modules/standardized-audio-context/src/factories/channel-merger-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/channel-splitter-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/helpers/sanitize-channel-splitter-options.ts","../node_modules/standardized-audio-context/src/factories/native-constant-source-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-constant-source-node-factory.ts","../node_modules/standardized-audio-context/src/factories/constant-source-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-convolver-node-factory.ts","../node_modules/standardized-audio-context/src/factories/convolver-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/delay-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-dynamics-compressor-node-factory.ts","../node_modules/standardized-audio-context/src/factories/dynamics-compressor-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/gain-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/render-native-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/test-offline-audio-context-current-time-support.ts","../node_modules/standardized-audio-context/src/factories/native-iir-filter-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/wrap-iir-filter-node-get-frequency-response-method.ts","../node_modules/standardized-audio-context/src/factories/audio-listener-factory.ts","../node_modules/standardized-audio-context/src/factories/minimal-base-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-oscillator-node-factory.ts","../node_modules/standardized-audio-context/src/factories/oscillator-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/connected-native-audio-buffer-source-node-factory.ts","../node_modules/standardized-audio-context/src/factories/native-wave-shaper-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-wave-shaper-node-factory.ts","../node_modules/standardized-audio-context/src/factories/native-panner-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-panner-node-factory.ts","../node_modules/standardized-audio-context/src/factories/panner-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-periodic-wave-factory.ts","../node_modules/standardized-audio-context/src/helpers/sanitize-periodic-wave-options.ts","../node_modules/standardized-audio-context/src/factories/native-stereo-panner-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-stereo-panner-node-factory.ts","../node_modules/standardized-audio-context/src/factories/stereo-panner-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/wave-shaper-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/is-secure-context.ts","../node_modules/standardized-audio-context/src/factories/expose-current-frame-and-current-time.ts","../node_modules/standardized-audio-context/src/factories/get-or-create-backup-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/evaluate-source.ts","../node_modules/standardized-audio-context/src/factories/fetch-source.ts","../node_modules/standardized-audio-context/src/factories/abort-error.ts","../node_modules/standardized-audio-context/src/factories/test-audio-worklet-processor-post-message-support.ts","../node_modules/standardized-audio-context/src/factories/is-native-context.ts","../node_modules/standardized-audio-context/src/factories/decode-audio-data.ts","../node_modules/standardized-audio-context/src/factories/data-clone-error.ts","../node_modules/standardized-audio-context/src/factories/encoding-error.ts","../node_modules/standardized-audio-context/src/factories/base-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/media-element-audio-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-media-element-audio-source-node.ts","../node_modules/standardized-audio-context/src/factories/native-media-stream-audio-destination-node.ts","../node_modules/standardized-audio-context/src/factories/media-stream-audio-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-media-stream-audio-source-node.ts","../node_modules/standardized-audio-context/src/factories/native-media-stream-track-audio-source-node-factory.ts","../node_modules/standardized-audio-context/src/factories/media-stream-track-audio-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/get-unrendered-audio-worklet-nodes.ts","../node_modules/standardized-audio-context/src/factories/add-unrendered-audio-worklet-node.ts","../node_modules/standardized-audio-context/src/factories/connect-multiple-outputs.ts","../node_modules/standardized-audio-context/src/factories/delete-unrendered-audio-worklet-node.ts","../node_modules/standardized-audio-context/src/factories/get-active-audio-worklet-node-inputs.ts","../node_modules/standardized-audio-context/src/factories/native-audio-worklet-node-faker-factory.ts","../node_modules/standardized-audio-context/src/helpers/create-audio-worklet-processor.ts","../node_modules/standardized-audio-context/src/factories/native-audio-worklet-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/test-clonability-of-audio-worklet-node-options.ts","../node_modules/standardized-audio-context/src/factories/get-backup-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/set-active-audio-worklet-node-inputs.ts","../node_modules/standardized-audio-context/src/helpers/sanitize-audio-worklet-node-options.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-worklet-node-options-clonability.ts","../node_modules/standardized-audio-context/src/factories/minimal-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/create-native-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/start-rendering.ts","../node_modules/extendable-media-recorder/src/factories/web-audio-media-recorder.ts","../node_modules/standardized-audio-context/src/factories/is-any-audio-context.ts","../node_modules/standardized-audio-context/src/factories/is-any-audio-node.ts","../node_modules/standardized-audio-context/src/factories/is-any-audio-param.ts","../node_modules/standardized-audio-context/src/factories/is-any-offline-audio-context.ts","../node_modules/extendable-media-recorder/src/module.ts","../node_modules/extendable-media-recorder/src/factories/window.ts","../node_modules/extendable-media-recorder/src/factories/blob-event-factory.ts","../node_modules/extendable-media-recorder/src/factories/native-blob-event-constructor.ts","../node_modules/extendable-media-recorder/src/factories/invalid-state-error.ts","../node_modules/extendable-media-recorder/src/factories/read-variable-size-integer.ts","../node_modules/extendable-media-recorder/src/functions/read-variable-size-integer-length.ts","../node_modules/extendable-media-recorder/src/factories/read-element-content.ts","../node_modules/extendable-media-recorder/src/factories/read-element-type.ts","../node_modules/extendable-media-recorder/src/factories/decode-web-m-chunk.ts","../node_modules/extendable-media-recorder/src/factories/webm-pcm-media-recorder.ts","../node_modules/extendable-media-recorder/src/factories/event-target-factory.ts","../node_modules/extendable-media-recorder/src/factories/native-media-recorder-constructor.ts","../node_modules/extendable-media-recorder/src/factories/native-media-recorder.ts","../node_modules/extendable-media-recorder/src/factories/media-recorder-constructor.ts","../node_modules/extendable-media-recorder/src/factories/event-target-constructor.ts","../node_modules/extendable-media-recorder/src/functions/wrap-event-listener.ts","../node_modules/extendable-media-recorder/src/factories/is-supported-promise.ts","../node_modules/fast-unique-numbers/build/es5/bundle.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/indefinite-article/indefinite-article.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.mergewith/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHas.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/has.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/mapKeys.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/snakeCase.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/moment/moment.js","../node_modules/multi-buffer-data-view/build/es5/bundle.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-helmet/node_modules/react-side-effect/lib/index.js","../node_modules/react-media-recorder/index.js","../node_modules/react-media-recorder/lib/index.js","../node_modules/react-phone-input-2/lib/lib.js","../node_modules/react-query/es/core/focusManager.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react-query/es/core/mutationObserver.js","../node_modules/react-query/es/react/utils.js","../node_modules/react-query/es/react/useMutation.js","../node_modules/react-query/es/core/queryObserver.js","../node_modules/react-query/es/react/QueryErrorResetBoundary.js","../node_modules/react-query/es/react/useBaseQuery.js","../node_modules/react-query/es/react/useQuery.js","../node_modules/react-query/es/core/infiniteQueryObserver.js","../node_modules/react-query/es/react/useInfiniteQuery.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react-table/src/publicUtils.js","../node_modules/react-table/src/utils.js","../node_modules/react-table/src/makeDefaultPluginHooks.js","../node_modules/react-table/src/hooks/useColumnVisibility.js","../node_modules/react-table/src/hooks/useTable.js","../node_modules/react-table/src/plugin-hooks/useExpanded.js","../node_modules/react-table/src/filterTypes.js","../node_modules/react-table/src/plugin-hooks/useFilters.js","../node_modules/react-table/src/plugin-hooks/useGlobalFilter.js","../node_modules/react-table/src/aggregations.js","../node_modules/react-table/src/plugin-hooks/useGroupBy.js","../node_modules/react-table/src/sortTypes.js","../node_modules/react-table/src/plugin-hooks/useSortBy.js","../node_modules/react-table/src/plugin-hooks/usePagination.js","../node_modules/react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../node_modules/react-table/src/plugin-hooks/useRowSelect.js","../node_modules/react-table/src/plugin-hooks/useRowState.js","../node_modules/react-table/src/plugin-hooks/useColumnOrder.js","../node_modules/react-table/src/plugin-hooks/useResizeColumns.js","../node_modules/react-table/src/plugin-hooks/useAbsoluteLayout.js","../node_modules/react-table/src/plugin-hooks/useBlockLayout.js","../node_modules/react-table/src/plugin-hooks/useFlexLayout.js","../node_modules/react-table/src/plugin-hooks/useGridLayout.js","../node_modules/react-table/index.js","../node_modules/react-verification-input/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/toggle-selection/index.js","../node_modules/toposort/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@chakra-ui/css-reset/dist/chakra-ui-css-reset.esm.js","../node_modules/framesync/dist/es/on-next-frame.js","../node_modules/framesync/dist/es/index.js","../node_modules/framesync/dist/es/create-render-step.js","../node_modules/@chakra-ui/utils/dist/chakra-ui-utils.esm.js","../node_modules/@chakra-ui/react-utils/dist/chakra-ui-react-utils.esm.js","../node_modules/@chakra-ui/hooks/dist/use-animation-state-5054a9f7.esm.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/css-box-model/dist/css-box-model.esm.js","../node_modules/@chakra-ui/hooks/dist/chakra-ui-hooks.esm.js","../node_modules/@chakra-ui/portal/dist/chakra-ui-portal.esm.js","../node_modules/@chakra-ui/color-mode/dist/chakra-ui-color-mode.esm.js","../node_modules/@chakra-ui/styled-system/dist/chakra-ui-styled-system.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@chakra-ui/system/dist/chakra-ui-system.esm.js","../node_modules/@chakra-ui/react-env/dist/chakra-ui-react-env.esm.js","../node_modules/@chakra-ui/provider/dist/chakra-ui-provider.esm.js","../node_modules/@chakra-ui/theme/foundations/spacing/dist/chakra-ui-theme-foundations-spacing.esm.js","../node_modules/@chakra-ui/theme/dist/sizes-bd20b99a.esm.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ctrl/tinycolor/dist/module/random.js","../node_modules/@chakra-ui/theme-tools/dist/chakra-ui-theme-tools.esm.js","../node_modules/@chakra-ui/anatomy/dist/chakra-ui-anatomy.esm.js","../node_modules/@chakra-ui/theme/foundations/typography/dist/chakra-ui-theme-foundations-typography.esm.js","../node_modules/@chakra-ui/theme/components/dist/chakra-ui-theme-components.esm.js","../node_modules/@chakra-ui/theme/foundations/dist/chakra-ui-theme-foundations.esm.js","../node_modules/@chakra-ui/theme/foundations/breakpoints/dist/chakra-ui-theme-foundations-breakpoints.esm.js","../node_modules/@chakra-ui/theme/foundations/z-index/dist/chakra-ui-theme-foundations-z-index.esm.js","../node_modules/@chakra-ui/theme/foundations/radius/dist/chakra-ui-theme-foundations-radius.esm.js","../node_modules/@chakra-ui/theme/foundations/blur/dist/chakra-ui-theme-foundations-blur.esm.js","../node_modules/@chakra-ui/theme/foundations/colors/dist/chakra-ui-theme-foundations-colors.esm.js","../node_modules/@chakra-ui/theme/foundations/shadows/dist/chakra-ui-theme-foundations-shadows.esm.js","../node_modules/@chakra-ui/theme/foundations/borders/dist/chakra-ui-theme-foundations-borders.esm.js","../node_modules/@chakra-ui/theme/foundations/transition/dist/chakra-ui-theme-foundations-transition.esm.js","../node_modules/@chakra-ui/theme/dist/chakra-ui-theme.esm.js","../node_modules/@chakra-ui/visually-hidden/dist/chakra-ui-visually-hidden.esm.js","../node_modules/@chakra-ui/spinner/dist/chakra-ui-spinner.esm.js","../node_modules/@chakra-ui/icon/dist/chakra-ui-icon.esm.js","../node_modules/@chakra-ui/alert/dist/chakra-ui-alert.esm.js","../node_modules/@chakra-ui/close-button/dist/chakra-ui-close-button.esm.js","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/use-id.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/tslib/tslib.es6.js","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/features/use-features.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/framer-motion/node_modules/framesync/dist/es/index.mjs","../node_modules/framer-motion/node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/popmotion/dist/es/utils/mix.mjs","../node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/popmotion/dist/es/utils/clamp.mjs","../node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../node_modules/popmotion/dist/es/animations/generators/spring.mjs","../node_modules/popmotion/dist/es/utils/progress.mjs","../node_modules/style-value-types/dist/es/utils.mjs","../node_modules/style-value-types/dist/es/numbers/index.mjs","../node_modules/style-value-types/dist/es/color/utils.mjs","../node_modules/style-value-types/dist/es/color/rgba.mjs","../node_modules/style-value-types/dist/es/color/hex.mjs","../node_modules/style-value-types/dist/es/numbers/units.mjs","../node_modules/style-value-types/dist/es/color/hsla.mjs","../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/popmotion/dist/es/utils/mix-color.mjs","../node_modules/style-value-types/dist/es/color/index.mjs","../node_modules/style-value-types/dist/es/complex/index.mjs","../node_modules/popmotion/dist/es/utils/inc.mjs","../node_modules/popmotion/dist/es/utils/pipe.mjs","../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../node_modules/popmotion/dist/es/utils/interpolate.mjs","../node_modules/popmotion/dist/es/easing/utils.mjs","../node_modules/popmotion/dist/es/easing/index.mjs","../node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../node_modules/popmotion/dist/es/animations/generators/decay.mjs","../node_modules/popmotion/node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/popmotion/node_modules/framesync/dist/es/index.mjs","../node_modules/popmotion/node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../node_modules/popmotion/dist/es/animations/index.mjs","../node_modules/popmotion/dist/es/animations/inertia.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/style-value-types/dist/es/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/popmotion/dist/es/utils/is-point.mjs","../node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../node_modules/popmotion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/animation/animate.mjs","../node_modules/framer-motion/dist/es/projection/node/id.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/utils/types.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../node_modules/framer-motion/dist/es/events/utils.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../node_modules/framer-motion/dist/es/render/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/render/html/visual-element.mjs","../node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/@chakra-ui/toast/dist/chakra-ui-toast.esm.js","../node_modules/@chakra-ui/react/dist/chakra-ui-react.esm.js","reportWebVitals.ts","serviceWorker.ts","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@firebase/util/src/constants.ts","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/query.ts","../node_modules/@firebase/util/src/subscribe.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/app/node_modules/idb/build/wrap-idb-value.js","../node_modules/@firebase/app/node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/@firebase/auth/src/core/errors.ts","../node_modules/@firebase/auth/src/core/util/log.ts","../node_modules/@firebase/auth/src/core/util/assert.ts","../node_modules/@firebase/auth/src/core/util/instantiator.ts","../node_modules/@firebase/auth/src/core/auth/initialize.ts","../node_modules/@firebase/auth/src/core/util/location.ts","../node_modules/@firebase/auth/src/core/util/navigator.ts","../node_modules/@firebase/auth/src/core/util/delay.ts","../node_modules/@firebase/auth/src/core/util/emulator.ts","../node_modules/@firebase/auth/src/core/util/fetch_provider.ts","../node_modules/@firebase/auth/src/api/errors.ts","../node_modules/@firebase/auth/src/api/index.ts","../node_modules/@firebase/auth/src/api/account_management/account.ts","../node_modules/@firebase/auth/src/core/util/time.ts","../node_modules/@firebase/auth/src/core/user/id_token_result.ts","../node_modules/@firebase/auth/src/core/user/invalidation.ts","../node_modules/@firebase/auth/src/core/user/proactive_refresh.ts","../node_modules/@firebase/auth/src/core/user/user_metadata.ts","../node_modules/@firebase/auth/src/core/user/reload.ts","../node_modules/@firebase/auth/src/api/authentication/token.ts","../node_modules/@firebase/auth/src/core/user/token_manager.ts","../node_modules/@firebase/auth/src/core/user/user_impl.ts","../node_modules/@firebase/auth/src/core/persistence/in_memory.ts","../node_modules/@firebase/auth/src/core/persistence/persistence_user_manager.ts","../node_modules/@firebase/auth/src/core/util/browser.ts","../node_modules/@firebase/auth/src/core/util/version.ts","../node_modules/@firebase/auth/src/core/auth/middleware.ts","../node_modules/@firebase/auth/src/core/auth/auth_impl.ts","../node_modules/@firebase/auth/src/core/credentials/auth_credential.ts","../node_modules/@firebase/auth/src/api/account_management/email_and_password.ts","../node_modules/@firebase/auth/src/api/authentication/email_and_password.ts","../node_modules/@firebase/auth/src/api/authentication/email_link.ts","../node_modules/@firebase/auth/src/core/credentials/email.ts","../node_modules/@firebase/auth/src/api/authentication/idp.ts","../node_modules/@firebase/auth/src/core/credentials/oauth.ts","../node_modules/@firebase/auth/src/api/authentication/sms.ts","../node_modules/@firebase/auth/src/core/credentials/phone.ts","../node_modules/@firebase/auth/src/core/action_code_url.ts","../node_modules/@firebase/auth/src/core/providers/email.ts","../node_modules/@firebase/auth/src/core/providers/federated.ts","../node_modules/@firebase/auth/src/core/providers/oauth.ts","../node_modules/@firebase/auth/src/core/providers/facebook.ts","../node_modules/@firebase/auth/src/core/providers/google.ts","../node_modules/@firebase/auth/src/core/providers/github.ts","../node_modules/@firebase/auth/src/core/credentials/saml.ts","../node_modules/@firebase/auth/src/core/providers/twitter.ts","../node_modules/@firebase/auth/src/core/user/user_credential_impl.ts","../node_modules/@firebase/auth/src/mfa/mfa_error.ts","../node_modules/@firebase/auth/src/core/user/link_unlink.ts","../node_modules/@firebase/auth/src/core/user/reauthenticate.ts","../node_modules/@firebase/auth/src/core/strategies/credential.ts","../node_modules/@firebase/auth/src/api/account_management/mfa.ts","../node_modules/@firebase/auth/src/mfa/mfa_user.ts","../node_modules/@firebase/auth/src/core/persistence/index.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/browser.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/local_storage.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/session_storage.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/promise.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/receiver.ts","../node_modules/@firebase/auth/src/core/util/event_id.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/sender.ts","../node_modules/@firebase/auth/src/platform_browser/auth_window.ts","../node_modules/@firebase/auth/src/platform_browser/util/worker.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/indexed_db.ts","../node_modules/@firebase/auth/src/api/authentication/mfa.ts","../node_modules/@firebase/auth/src/api/authentication/recaptcha.ts","../node_modules/@firebase/auth/src/platform_browser/load_js.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_mock.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_loader.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_verifier.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/phone.ts","../node_modules/@firebase/auth/src/platform_browser/providers/phone.ts","../node_modules/@firebase/auth/src/core/util/resolver.ts","../node_modules/@firebase/auth/src/core/strategies/idp.ts","../node_modules/@firebase/auth/src/core/strategies/abstract_popup_redirect_operation.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/popup.ts","../node_modules/@firebase/auth/src/core/strategies/redirect.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/redirect.ts","../node_modules/@firebase/auth/src/core/auth/auth_event_manager.ts","../node_modules/@firebase/auth/src/api/project_config/get_project_config.ts","../node_modules/@firebase/auth/src/core/util/validate_origin.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/gapi.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/iframe.ts","../node_modules/@firebase/auth/src/platform_browser/util/popup.ts","../node_modules/@firebase/auth/src/core/util/handler.ts","../node_modules/@firebase/auth/src/platform_browser/popup_redirect.ts","../node_modules/@firebase/auth/src/platform_browser/mfa/assertions/phone.ts","../node_modules/@firebase/auth/src/mfa/mfa_assertion.ts","../node_modules/@firebase/auth/src/core/auth/register.ts","../node_modules/@firebase/auth/src/core/auth/firebase_internal.ts","../node_modules/jwt-decode/lib/atob.js","../node_modules/@firebase/auth/src/platform_browser/index.ts","../node_modules/jwt-decode/lib/base64_url_decode.js","../node_modules/jwt-decode/lib/index.js","../node_modules/firebase/app/index.ts","firebase.ts","helpers/formatFirebaseAuthError.ts","helpers/getUserRole.ts","services/authService.ts","helpers/history.ts","helpers/axiosInstance.ts","services/agencyUsersService.ts","services/usersService.ts","context/useAuth.tsx","../node_modules/@chakra-ui/layout/dist/chakra-ui-layout.esm.js","../node_modules/@chakra-ui/button/dist/chakra-ui-button.esm.js","../node_modules/react-icons/lib/esm/iconsManifest.js","../node_modules/react-icons/lib/esm/iconContext.js","../node_modules/react-icons/lib/esm/iconBase.js","../node_modules/react-icons/fi/index.esm.js","../node_modules/@chakra-ui/clickable/dist/chakra-ui-clickable.esm.js","../node_modules/@chakra-ui/descendant/dist/chakra-ui-descendant.esm.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@chakra-ui/popper/dist/chakra-ui-popper.esm.js","../node_modules/@chakra-ui/menu/dist/chakra-ui-menu.esm.js","../node_modules/@chakra-ui/image/dist/chakra-ui-image.esm.js","../node_modules/@chakra-ui/avatar/dist/chakra-ui-avatar.esm.js","components/svg/ArrowDown.tsx","components/svg/Dashboard.tsx","components/svg/FAQ.tsx","components/svg/Logout.tsx","components/svg/Profile.tsx","components/common/Link.tsx","components/common/ProfileMenu.tsx","layouts/Header.tsx","../node_modules/focus-lock/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/react-focus-lock/dist/es2015/FocusGuard.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-focus-lock/dist/es2015/medium.js","../node_modules/react-focus-lock/dist/es2015/Lock.js","../node_modules/react-clientside-effect/lib/index.es.js","../node_modules/focus-lock/dist/es2015/utils/is.js","../node_modules/focus-lock/dist/es2015/utils/correctFocus.js","../node_modules/focus-lock/dist/es2015/utils/firstFocus.js","../node_modules/focus-lock/dist/es2015/solver.js","../node_modules/focus-lock/dist/es2015/utils/array.js","../node_modules/focus-lock/dist/es2015/utils/tabOrder.js","../node_modules/focus-lock/dist/es2015/utils/tabUtils.js","../node_modules/focus-lock/dist/es2015/utils/tabbables.js","../node_modules/focus-lock/dist/es2015/utils/DOMutils.js","../node_modules/focus-lock/dist/es2015/utils/all-affected.js","../node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","../node_modules/focus-lock/dist/es2015/utils/parenting.js","../node_modules/focus-lock/dist/es2015/focusMerge.js","../node_modules/focus-lock/dist/es2015/setFocus.js","../node_modules/focus-lock/dist/es2015/index.js","../node_modules/focus-lock/dist/es2015/focusInside.js","../node_modules/focus-lock/dist/es2015/focusables.js","../node_modules/react-focus-lock/dist/es2015/util.js","../node_modules/react-focus-lock/dist/es2015/Trap.js","../node_modules/focus-lock/dist/es2015/focusIsHidden.js","../node_modules/react-focus-lock/dist/es2015/Combination.js","../node_modules/react-focus-lock/dist/es2015/index.js","../node_modules/@chakra-ui/focus-lock/dist/chakra-ui-focus-lock.esm.js","../node_modules/@chakra-ui/transition/dist/chakra-ui-transition.esm.js","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/@chakra-ui/modal/dist/chakra-ui-modal.esm.js","layouts/SidebarItem.tsx","components/svg/AgencyUsers.tsx","components/svg/AssignedCases.tsx","components/svg/Library.tsx","components/svg/SuccessStories.tsx","constants/navigation.ts","components/svg/UserDevices.tsx","components/svg/Location.tsx","components/svg/Agencies.tsx","components/svg/Reports.tsx","layouts/SidebarContent.tsx","layouts/SideBar.tsx","layouts/DashboardLayout.tsx","../node_modules/@chakra-ui/icons/dist/chakra-ui-icons.esm.js","components/common/Container.tsx","layouts/NavBar.tsx","components/svg/Facebook.tsx","components/svg/Twitter.tsx","layouts/Footer.tsx","layouts/HomeLayout.tsx","layouts/ScrollToTop.tsx","../node_modules/@chakra-ui/accordion/dist/chakra-ui-accordion.esm.js","../node_modules/react-helmet/es/Helmet.js","components/common/Heading.tsx","components/faq/FAQItem.tsx","constants/faq.ts","routes/home/FAQ.tsx","components/home/About.tsx","components/svg/Apple.tsx","components/svg/GooglePlayStore.tsx","components/home/GetTheApp.tsx","components/svg/Calendar.tsx","components/svg/Message.tsx","components/svg/ReportCase.tsx","components/home/HowItWorks.tsx","assets/images/landing-bg-left.svg","assets/images/landing-bg-right.svg","components/home/Landing.tsx","routes/home/Home.tsx","routes/home/PrivacyPolicy.tsx","../node_modules/@chakra-ui/media-query/dist/chakra-ui-media-query.esm.js","../node_modules/@chakra-ui/skeleton/dist/chakra-ui-skeleton.esm.js","../node_modules/@chakra-ui/form-control/dist/chakra-ui-form-control.esm.js","../node_modules/@chakra-ui/radio/dist/chakra-ui-radio.esm.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/getValidationModes.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts","context/useRecorder.tsx","context/useUploads.tsx","services/agenciesService.ts","services/incidenceService.ts","services/reportsService.ts","../node_modules/@chakra-ui/input/dist/chakra-ui-input.esm.js","components/svg/ErrorIcon.tsx","components/common/FormInput.tsx","components/common/FormLocation.tsx","components/common/FormRadio.tsx","../node_modules/@chakra-ui/select/dist/chakra-ui-select.esm.js","components/common/FormSelect.tsx","../node_modules/@chakra-ui/checkbox/dist/chakra-ui-checkbox.esm.js","../node_modules/@chakra-ui/switch/dist/chakra-ui-switch.esm.js","components/common/FormSwitch.tsx","../node_modules/@chakra-ui/textarea/dist/chakra-ui-textarea.esm.js","../node_modules/@chakra-ui/slider/dist/chakra-ui-slider.esm.js","components/svg/Pause.tsx","components/svg/Play.tsx","components/common/AudioPlayer.tsx","../node_modules/react-icons/ai/index.esm.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js","services/fileUploadService.ts","components/svg/Mic.tsx","components/common/Recorder.tsx","components/common/FormTextarea.tsx","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","utils/uploadLimit.ts","components/common/FilePreview.tsx","../node_modules/@chakra-ui/progress/dist/chakra-ui-progress.esm.js","../node_modules/nanoclone/src/index.js","components/common/Upload.tsx","components/common/FormUpload.tsx","components/reportCase/ReportCaseForm.tsx","routes/home/QuickReport.tsx","routes/auth/Protected.tsx","../node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../node_modules/@hookform/resolvers/src/toNestError.ts","../node_modules/@hookform/resolvers/yup/src/yup.ts","../node_modules/yup/es/util/printValue.js","../node_modules/yup/es/locale.js","../node_modules/yup/es/util/isSchema.js","../node_modules/yup/es/Condition.js","../node_modules/yup/es/util/toArray.js","../node_modules/yup/es/ValidationError.js","../node_modules/yup/es/util/runTests.js","../node_modules/yup/es/Reference.js","../node_modules/yup/es/util/createValidation.js","../node_modules/yup/es/util/reach.js","../node_modules/yup/es/util/ReferenceSet.js","../node_modules/yup/es/schema.js","../node_modules/yup/es/mixed.js","../node_modules/yup/es/util/isAbsent.js","../node_modules/yup/es/boolean.js","../node_modules/yup/es/string.js","../node_modules/yup/es/number.js","../node_modules/yup/es/util/isodate.js","../node_modules/yup/es/date.js","../node_modules/yup/es/util/sortFields.js","../node_modules/yup/es/util/sortByKeyOrder.js","../node_modules/yup/es/object.js","../node_modules/yup/es/array.js","utils/regex.ts","utils/validationSchema.ts","components/auth/RegisterForm.tsx","routes/auth/Register.tsx","components/auth/LoginForm.tsx","routes/auth/Login.tsx","routes/auth/ForgotPassword.tsx","routes/auth/ResetPassword.tsx","../node_modules/@chakra-ui/popover/dist/chakra-ui-popover.esm.js","components/auth/VerifyForm.tsx","routes/auth/Verify.tsx","components/svg/Email.tsx","routes/auth/VerifyEmail.tsx","components/agencies/DeleteConfirmationModal.tsx","../node_modules/@chakra-ui/table/dist/chakra-ui-table.esm.js","components/svg/NoData.tsx","components/common/EmptyState.tsx","components/common/Table.tsx","routes/dashboard/agencies/Agencies.tsx","components/common/FormPhoneNumber.tsx","components/agencies/CreateAgencyForm.tsx","routes/dashboard/agencies/CreateAgency.tsx","components/agencies/EditAgencyForm.tsx","routes/dashboard/agencies/EditAgency.tsx","../node_modules/@chakra-ui/tag/dist/chakra-ui-tag.esm.js","components/common/Tag.tsx","components/svg/Export.tsx","components/svg/Link.tsx","components/caseDetails/MediaModal.tsx","components/caseDetails/AttachmentsView.tsx","components/caseDetails/AttachmentsModal.tsx","components/caseDetails/MoreModal.tsx","components/caseDetails/AppliedActions.tsx","components/caseDetails/Attachments.tsx","components/caseDetails/DetailsCard.tsx","components/caseDetails/TransferModal.tsx","components/caseDetails/Note.tsx","routes/dashboard/agency-cases/AgencyCaseDetails.tsx","routes/dashboard/agency-users/AgencyUsers.tsx","components/agencyUsers/CreateAgencyUserForm.tsx","routes/dashboard/agency-users/CreateAgencyUser.tsx","components/agencyUsers/EditAgencyUserForm.tsx","routes/dashboard/agency-users/EditAgencyUser.tsx","routes/dashboard/assigned-cases/AssignedCases.tsx","routes/dashboard/assigned-cases/AssignedCaseDetails.tsx","hooks/useDebounce.ts","hooks/useExportAgencyReports.ts","hooks/useGetAgencyReports.ts","components/svg/ClosedCases.tsx","components/svg/NewCases.tsx","components/svg/OngoingCases.tsx","components/svg/PendingCases.tsx","components/svg/UnassignedCases.tsx","components/svg/Search.tsx","components/common/Search.tsx","components/common/DataTable.tsx","components/dashboard/CasesCard.tsx","components/dashboard/AgencyAdminDashboard.tsx","components/svg/ActiveCases.tsx","components/svg/CaseSubmitted.tsx","components/dashboard/AgencyUserDashboard.tsx","hooks/useExportOverallReports.ts","hooks/useGetOverallReports.ts","components/dashboard/OverallAdminDashboard.tsx","components/svg/Emergency.tsx","components/dashboard/UserDashboard.tsx","routes/dashboard/Dashboard.tsx","routes/dashboard/emergency-message/index.tsx","services/libraryService.ts","components/svg/Document.tsx","components/library/AddLibraryItemModal.tsx","utils/getYoutubeURL.ts","components/library/ResourceModal.tsx","components/library/LibraryCard.tsx","components/library/NextArrow.tsx","components/library/PrevArrow.tsx","components/library/DocumentsSlider.tsx","components/library/ImageSlider.tsx","components/library/VideoSlider.tsx","routes/dashboard/library/index.tsx","routes/dashboard/locations/EditLocation.tsx","services/locationService.ts","components/locations/EditLocationModal.tsx","routes/dashboard/locations/Location.tsx","routes/dashboard/my-cases/MyCases.tsx","routes/dashboard/my-cases/ReportCase.tsx","routes/dashboard/my-cases/MyCaseDetails.tsx","routes/dashboard/overall-cases/OverallCaseDetails.tsx","components/profile/EditProfileForm.tsx","routes/dashboard/profile/index.tsx","components/common/SelectColumnFilter.tsx","services/successStoriesService.ts","components/successStories/NewStoryModal.tsx","components/successStories/StoryCard.tsx","components/successStories/Table.tsx","components/successStories/ViewStoryModal.tsx","routes/dashboard/success-stories/SuccessStories.tsx","services/userDeviceService.ts","routes/dashboard/user-devices/UserDevices.tsx","routes/dashboard/users/Users.tsx","App.tsx","theme/components/button.ts","theme/components/checkbox.ts","theme/components/input.ts","theme/components/radio.ts","theme/index.ts","theme/styles.ts","theme/foundations/breakpoints.ts","index.tsx"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\n\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/slicedToArray'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/slicedToArray', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.automationEvents = {}, global._slicedToArray, global._classCallCheck, global._createClass));\n})(this, (function (exports, _slicedToArray, _classCallCheck, _createClass) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);\n var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);\n var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);\n\n var createExtendedExponentialRampToValueAutomationEvent = function createExtendedExponentialRampToValueAutomationEvent(value, endTime, insertTime) {\n return {\n endTime: endTime,\n insertTime: insertTime,\n type: 'exponentialRampToValue',\n value: value\n };\n };\n\n var createExtendedLinearRampToValueAutomationEvent = function createExtendedLinearRampToValueAutomationEvent(value, endTime, insertTime) {\n return {\n endTime: endTime,\n insertTime: insertTime,\n type: 'linearRampToValue',\n value: value\n };\n };\n\n var createSetValueAutomationEvent = function createSetValueAutomationEvent(value, startTime) {\n return {\n startTime: startTime,\n type: 'setValue',\n value: value\n };\n };\n\n var createSetValueCurveAutomationEvent = function createSetValueCurveAutomationEvent(values, startTime, duration) {\n return {\n duration: duration,\n startTime: startTime,\n type: 'setValueCurve',\n values: values\n };\n };\n\n var getTargetValueAtTime = function getTargetValueAtTime(time, valueAtStartTime, _ref) {\n var startTime = _ref.startTime,\n target = _ref.target,\n timeConstant = _ref.timeConstant;\n return target + (valueAtStartTime - target) * Math.exp((startTime - time) / timeConstant);\n };\n\n var isExponentialRampToValueAutomationEvent = function isExponentialRampToValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'exponentialRampToValue';\n };\n\n var isLinearRampToValueAutomationEvent = function isLinearRampToValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'linearRampToValue';\n };\n\n var isAnyRampToValueAutomationEvent = function isAnyRampToValueAutomationEvent(automationEvent) {\n return isExponentialRampToValueAutomationEvent(automationEvent) || isLinearRampToValueAutomationEvent(automationEvent);\n };\n\n var isSetValueAutomationEvent = function isSetValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'setValue';\n };\n\n var isSetValueCurveAutomationEvent = function isSetValueCurveAutomationEvent(automationEvent) {\n return automationEvent.type === 'setValueCurve';\n };\n\n var getValueOfAutomationEventAtIndexAtTime = function getValueOfAutomationEventAtIndexAtTime(automationEvents, index, time, defaultValue) {\n var automationEvent = automationEvents[index];\n return automationEvent === undefined ? defaultValue : isAnyRampToValueAutomationEvent(automationEvent) || isSetValueAutomationEvent(automationEvent) ? automationEvent.value : isSetValueCurveAutomationEvent(automationEvent) ? automationEvent.values[automationEvent.values.length - 1] : getTargetValueAtTime(time, getValueOfAutomationEventAtIndexAtTime(automationEvents, index - 1, automationEvent.startTime, defaultValue), automationEvent);\n };\n\n var getEndTimeAndValueOfPreviousAutomationEvent = function getEndTimeAndValueOfPreviousAutomationEvent(automationEvents, index, currentAutomationEvent, nextAutomationEvent, defaultValue) {\n return currentAutomationEvent === undefined ? [nextAutomationEvent.insertTime, defaultValue] : isAnyRampToValueAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.endTime, currentAutomationEvent.value] : isSetValueAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.startTime, currentAutomationEvent.value] : isSetValueCurveAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.startTime + currentAutomationEvent.duration, currentAutomationEvent.values[currentAutomationEvent.values.length - 1]] : [currentAutomationEvent.startTime, getValueOfAutomationEventAtIndexAtTime(automationEvents, index - 1, currentAutomationEvent.startTime, defaultValue)];\n };\n\n var isCancelAndHoldAutomationEvent = function isCancelAndHoldAutomationEvent(automationEvent) {\n return automationEvent.type === 'cancelAndHold';\n };\n\n var isCancelScheduledValuesAutomationEvent = function isCancelScheduledValuesAutomationEvent(automationEvent) {\n return automationEvent.type === 'cancelScheduledValues';\n };\n\n var getEventTime = function getEventTime(automationEvent) {\n if (isCancelAndHoldAutomationEvent(automationEvent) || isCancelScheduledValuesAutomationEvent(automationEvent)) {\n return automationEvent.cancelTime;\n }\n\n if (isExponentialRampToValueAutomationEvent(automationEvent) || isLinearRampToValueAutomationEvent(automationEvent)) {\n return automationEvent.endTime;\n }\n\n return automationEvent.startTime;\n };\n\n var getExponentialRampValueAtTime = function getExponentialRampValueAtTime(time, startTime, valueAtStartTime, _ref) {\n var endTime = _ref.endTime,\n value = _ref.value;\n\n if (valueAtStartTime === value) {\n return value;\n }\n\n if (0 < valueAtStartTime && 0 < value || valueAtStartTime < 0 && value < 0) {\n return valueAtStartTime * Math.pow(value / valueAtStartTime, (time - startTime) / (endTime - startTime));\n }\n\n return 0;\n };\n\n var getLinearRampValueAtTime = function getLinearRampValueAtTime(time, startTime, valueAtStartTime, _ref) {\n var endTime = _ref.endTime,\n value = _ref.value;\n return valueAtStartTime + (time - startTime) / (endTime - startTime) * (value - valueAtStartTime);\n };\n\n var interpolateValue = function interpolateValue(values, theoreticIndex) {\n var lowerIndex = Math.floor(theoreticIndex);\n var upperIndex = Math.ceil(theoreticIndex);\n\n if (lowerIndex === upperIndex) {\n return values[lowerIndex];\n }\n\n return (1 - (theoreticIndex - lowerIndex)) * values[lowerIndex] + (1 - (upperIndex - theoreticIndex)) * values[upperIndex];\n };\n\n var getValueCurveValueAtTime = function getValueCurveValueAtTime(time, _ref) {\n var duration = _ref.duration,\n startTime = _ref.startTime,\n values = _ref.values;\n var theoreticIndex = (time - startTime) / duration * (values.length - 1);\n return interpolateValue(values, theoreticIndex);\n };\n\n var isSetTargetAutomationEvent = function isSetTargetAutomationEvent(automationEvent) {\n return automationEvent.type === 'setTarget';\n };\n\n var AutomationEventList = /*#__PURE__*/function (_Symbol$iterator) {\n function AutomationEventList(defaultValue) {\n _classCallCheck__default[\"default\"](this, AutomationEventList);\n\n this._automationEvents = [];\n this._currenTime = 0;\n this._defaultValue = defaultValue;\n }\n\n _createClass__default[\"default\"](AutomationEventList, [{\n key: _Symbol$iterator,\n value: function value() {\n return this._automationEvents[Symbol.iterator]();\n }\n }, {\n key: \"add\",\n value: function add(automationEvent) {\n var eventTime = getEventTime(automationEvent);\n\n if (isCancelAndHoldAutomationEvent(automationEvent) || isCancelScheduledValuesAutomationEvent(automationEvent)) {\n var index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n if (isCancelScheduledValuesAutomationEvent(automationEvent) && isSetValueCurveAutomationEvent(currentAutomationEvent)) {\n return currentAutomationEvent.startTime + currentAutomationEvent.duration >= eventTime;\n }\n\n return getEventTime(currentAutomationEvent) >= eventTime;\n });\n\n var removedAutomationEvent = this._automationEvents[index];\n\n if (index !== -1) {\n this._automationEvents = this._automationEvents.slice(0, index);\n }\n\n if (isCancelAndHoldAutomationEvent(automationEvent)) {\n var lastAutomationEvent = this._automationEvents[this._automationEvents.length - 1];\n\n if (removedAutomationEvent !== undefined && isAnyRampToValueAutomationEvent(removedAutomationEvent)) {\n if (isSetTargetAutomationEvent(lastAutomationEvent)) {\n throw new Error('The internal list is malformed.');\n }\n\n var startTime = isSetValueCurveAutomationEvent(lastAutomationEvent) ? lastAutomationEvent.startTime + lastAutomationEvent.duration : getEventTime(lastAutomationEvent);\n var startValue = isSetValueCurveAutomationEvent(lastAutomationEvent) ? lastAutomationEvent.values[lastAutomationEvent.values.length - 1] : lastAutomationEvent.value;\n var value = isExponentialRampToValueAutomationEvent(removedAutomationEvent) ? getExponentialRampValueAtTime(eventTime, startTime, startValue, removedAutomationEvent) : getLinearRampValueAtTime(eventTime, startTime, startValue, removedAutomationEvent);\n var truncatedAutomationEvent = isExponentialRampToValueAutomationEvent(removedAutomationEvent) ? createExtendedExponentialRampToValueAutomationEvent(value, eventTime, this._currenTime) : createExtendedLinearRampToValueAutomationEvent(value, eventTime, this._currenTime);\n\n this._automationEvents.push(truncatedAutomationEvent);\n }\n\n if (lastAutomationEvent !== undefined && isSetTargetAutomationEvent(lastAutomationEvent)) {\n this._automationEvents.push(createSetValueAutomationEvent(this.getValue(eventTime), eventTime));\n }\n\n if (lastAutomationEvent !== undefined && isSetValueCurveAutomationEvent(lastAutomationEvent) && lastAutomationEvent.startTime + lastAutomationEvent.duration > eventTime) {\n this._automationEvents[this._automationEvents.length - 1] = createSetValueCurveAutomationEvent(new Float32Array([6, 7]), lastAutomationEvent.startTime, eventTime - lastAutomationEvent.startTime);\n }\n }\n } else {\n var _index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n return getEventTime(currentAutomationEvent) > eventTime;\n });\n\n var previousAutomationEvent = _index === -1 ? this._automationEvents[this._automationEvents.length - 1] : this._automationEvents[_index - 1];\n\n if (previousAutomationEvent !== undefined && isSetValueCurveAutomationEvent(previousAutomationEvent) && getEventTime(previousAutomationEvent) + previousAutomationEvent.duration > eventTime) {\n return false;\n }\n\n var persistentAutomationEvent = isExponentialRampToValueAutomationEvent(automationEvent) ? createExtendedExponentialRampToValueAutomationEvent(automationEvent.value, automationEvent.endTime, this._currenTime) : isLinearRampToValueAutomationEvent(automationEvent) ? createExtendedLinearRampToValueAutomationEvent(automationEvent.value, eventTime, this._currenTime) : automationEvent;\n\n if (_index === -1) {\n this._automationEvents.push(persistentAutomationEvent);\n } else {\n if (isSetValueCurveAutomationEvent(automationEvent) && eventTime + automationEvent.duration > getEventTime(this._automationEvents[_index])) {\n return false;\n }\n\n this._automationEvents.splice(_index, 0, persistentAutomationEvent);\n }\n }\n\n return true;\n }\n }, {\n key: \"flush\",\n value: function flush(time) {\n var index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n return getEventTime(currentAutomationEvent) > time;\n });\n\n if (index > 1) {\n var remainingAutomationEvents = this._automationEvents.slice(index - 1);\n\n var firstRemainingAutomationEvent = remainingAutomationEvents[0];\n\n if (isSetTargetAutomationEvent(firstRemainingAutomationEvent)) {\n remainingAutomationEvents.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents, index - 2, firstRemainingAutomationEvent.startTime, this._defaultValue), firstRemainingAutomationEvent.startTime));\n }\n\n this._automationEvents = remainingAutomationEvents;\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue(time) {\n if (this._automationEvents.length === 0) {\n return this._defaultValue;\n }\n\n var indexOfNextEvent = this._automationEvents.findIndex(function (automationEvent) {\n return getEventTime(automationEvent) > time;\n });\n\n var nextAutomationEvent = this._automationEvents[indexOfNextEvent];\n var indexOfCurrentEvent = (indexOfNextEvent === -1 ? this._automationEvents.length : indexOfNextEvent) - 1;\n var currentAutomationEvent = this._automationEvents[indexOfCurrentEvent];\n\n if (currentAutomationEvent !== undefined && isSetTargetAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent) || nextAutomationEvent.insertTime > time)) {\n return getTargetValueAtTime(time, getValueOfAutomationEventAtIndexAtTime(this._automationEvents, indexOfCurrentEvent - 1, currentAutomationEvent.startTime, this._defaultValue), currentAutomationEvent);\n }\n\n if (currentAutomationEvent !== undefined && isSetValueAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent))) {\n return currentAutomationEvent.value;\n }\n\n if (currentAutomationEvent !== undefined && isSetValueCurveAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent) || currentAutomationEvent.startTime + currentAutomationEvent.duration > time)) {\n if (time < currentAutomationEvent.startTime + currentAutomationEvent.duration) {\n return getValueCurveValueAtTime(time, currentAutomationEvent);\n }\n\n return currentAutomationEvent.values[currentAutomationEvent.values.length - 1];\n }\n\n if (currentAutomationEvent !== undefined && isAnyRampToValueAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent))) {\n return currentAutomationEvent.value;\n }\n\n if (nextAutomationEvent !== undefined && isExponentialRampToValueAutomationEvent(nextAutomationEvent)) {\n var _getEndTimeAndValueOf = getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents, indexOfCurrentEvent, currentAutomationEvent, nextAutomationEvent, this._defaultValue),\n _getEndTimeAndValueOf2 = _slicedToArray__default[\"default\"](_getEndTimeAndValueOf, 2),\n startTime = _getEndTimeAndValueOf2[0],\n value = _getEndTimeAndValueOf2[1];\n\n return getExponentialRampValueAtTime(time, startTime, value, nextAutomationEvent);\n }\n\n if (nextAutomationEvent !== undefined && isLinearRampToValueAutomationEvent(nextAutomationEvent)) {\n var _getEndTimeAndValueOf3 = getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents, indexOfCurrentEvent, currentAutomationEvent, nextAutomationEvent, this._defaultValue),\n _getEndTimeAndValueOf4 = _slicedToArray__default[\"default\"](_getEndTimeAndValueOf3, 2),\n _startTime = _getEndTimeAndValueOf4[0],\n _value = _getEndTimeAndValueOf4[1];\n\n return getLinearRampValueAtTime(time, _startTime, _value, nextAutomationEvent);\n }\n\n return this._defaultValue;\n }\n }]);\n\n return AutomationEventList;\n }(Symbol.iterator);\n\n var createCancelAndHoldAutomationEvent = function createCancelAndHoldAutomationEvent(cancelTime) {\n return {\n cancelTime: cancelTime,\n type: 'cancelAndHold'\n };\n };\n\n var createCancelScheduledValuesAutomationEvent = function createCancelScheduledValuesAutomationEvent(cancelTime) {\n return {\n cancelTime: cancelTime,\n type: 'cancelScheduledValues'\n };\n };\n\n var createExponentialRampToValueAutomationEvent = function createExponentialRampToValueAutomationEvent(value, endTime) {\n return {\n endTime: endTime,\n type: 'exponentialRampToValue',\n value: value\n };\n };\n\n var createLinearRampToValueAutomationEvent = function createLinearRampToValueAutomationEvent(value, endTime) {\n return {\n endTime: endTime,\n type: 'linearRampToValue',\n value: value\n };\n };\n\n var createSetTargetAutomationEvent = function createSetTargetAutomationEvent(target, startTime, timeConstant) {\n return {\n startTime: startTime,\n target: target,\n timeConstant: timeConstant,\n type: 'setTarget'\n };\n };\n\n exports.AutomationEventList = AutomationEventList;\n exports.createCancelAndHoldAutomationEvent = createCancelAndHoldAutomationEvent;\n exports.createCancelScheduledValuesAutomationEvent = createCancelScheduledValuesAutomationEvent;\n exports.createExponentialRampToValueAutomationEvent = createExponentialRampToValueAutomationEvent;\n exports.createLinearRampToValueAutomationEvent = createLinearRampToValueAutomationEvent;\n exports.createSetTargetAutomationEvent = createSetTargetAutomationEvent;\n exports.createSetValueAutomationEvent = createSetValueAutomationEvent;\n exports.createSetValueCurveAutomationEvent = createSetValueCurveAutomationEvent;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","export const PORT_MAP: WeakMap = new WeakMap();\n","import { generateUniqueNumber } from 'fast-unique-numbers';\nimport { IWorkerDefinition, IWorkerErrorMessage, IWorkerResultMessage } from 'worker-factory';\nimport { isMessagePort } from './guards/message-port';\nimport { extendBrokerImplementation } from './helpers/extend-broker-implementation';\nimport { IBrokerDefinition, IDefaultBrokerDefinition, IWorkerEvent } from './interfaces';\nimport { TBrokerImplementation } from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst ONGOING_REQUESTS = new WeakMap>();\n\nconst createOrGetOngoingRequests = (sender: MessagePort | Worker): Map => {\n if (ONGOING_REQUESTS.has(sender)) {\n // @todo TypeScript needs to be convinced that has() works as expected.\n return >ONGOING_REQUESTS.get(sender);\n }\n\n const ongoingRequests: Map = new Map();\n\n ONGOING_REQUESTS.set(sender, ongoingRequests);\n\n return ongoingRequests;\n};\n\nexport const createBroker = (\n brokerImplementation: TBrokerImplementation\n): ((sender: MessagePort | Worker) => T & IDefaultBrokerDefinition) => {\n const fullBrokerImplementation = extendBrokerImplementation(brokerImplementation);\n\n return (sender: MessagePort | Worker) => {\n const ongoingRequests = createOrGetOngoingRequests(sender);\n\n sender.addEventListener('message', (({ data: message }: IWorkerEvent) => {\n const { id } = message;\n\n if (id !== null && ongoingRequests.has(id)) {\n const { reject, resolve } = <{ reject: Function; resolve: Function }>ongoingRequests.get(id);\n\n ongoingRequests.delete(id);\n\n if ((message).error === undefined) {\n resolve((message).result);\n } else {\n reject(new Error((message).error.message));\n }\n }\n }));\n\n if (isMessagePort(sender)) {\n sender.start();\n }\n\n const call = (method: V, params: U[V]['params'] = null, transferables: U[V]['transferables'] = []) => {\n return new Promise((resolve, reject) => {\n const id = generateUniqueNumber(ongoingRequests);\n\n ongoingRequests.set(id, { reject, resolve });\n\n if (params === null) {\n sender.postMessage({ id, method }, transferables);\n } else {\n sender.postMessage({ id, method, params }, transferables);\n }\n });\n };\n const notify = (method: V, params: U[V]['params'], transferables: U[V]['transferables'] = []) => {\n sender.postMessage({ id: null, method, params }, transferables);\n };\n\n let functions: object = {};\n\n for (const [key, handler] of Object.entries(fullBrokerImplementation)) {\n functions = { ...functions, [key]: handler({ call, notify }) };\n }\n\n return { ...functions };\n };\n};\n","import { IWorkerDefinition } from 'worker-factory';\nimport { IBrokerDefinition, IDefaultBrokerDefinition } from '../interfaces';\nimport { TBrokerImplementation } from '../types';\nimport { PORT_MAP } from './port-map';\n\nexport const extendBrokerImplementation = (\n partialBrokerImplementation: TBrokerImplementation\n): TBrokerImplementation =>\n >{\n ...partialBrokerImplementation,\n connect: ({ call }) => {\n return async (): Promise => {\n const { port1, port2 } = new MessageChannel();\n\n const portId = await call('connect', { port: port1 }, [port1]);\n\n PORT_MAP.set(port2, portId);\n\n return port2;\n };\n },\n disconnect: ({ call }) => {\n return async (port: MessagePort): Promise => {\n const portId = PORT_MAP.get(port);\n\n if (portId === undefined) {\n throw new Error('The given port is not connected.');\n }\n\n await call('disconnect', { portId });\n };\n },\n isSupported: ({ call }) => {\n return () => call('isSupported');\n }\n };\n","export const isMessagePort = (sender: MessagePort | Worker): sender is MessagePort => {\n return typeof (sender).start === 'function';\n};\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/toConsumableArray'), require('dashify'), require('indefinite-article')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/toConsumableArray', 'dashify', 'indefinite-article'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.compilerr = {}, global._toConsumableArray, global.dashify, global.indefiniteArticle));\n})(this, (function (exports, _toConsumableArray, dashify, indefiniteArticle) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);\n var dashify__default = /*#__PURE__*/_interopDefaultLegacy(dashify);\n var indefiniteArticle__default = /*#__PURE__*/_interopDefaultLegacy(indefiniteArticle);\n\n var applyModifiers = function applyModifiers(name, modifiers) {\n if (modifiers === undefined) {\n return name;\n }\n\n return modifiers.reduce(function (modifiedName, modifier) {\n if (modifier === 'capitalize') {\n var head = modifiedName.charAt(0).toUpperCase();\n var tail = modifiedName.slice(1);\n return \"\".concat(head).concat(tail);\n }\n\n if (modifier === 'dashify') {\n return dashify__default[\"default\"](modifiedName);\n }\n\n if (modifier === 'prependIndefiniteArticle') {\n return \"\".concat(indefiniteArticle__default[\"default\"](modifiedName), \" \").concat(modifiedName);\n }\n\n return modifiedName;\n }, name);\n };\n\n var buildRegex = function buildRegex(variable) {\n var expression = variable.name + variable.modifiers.map(function (modifier) {\n return \"\\\\.\".concat(modifier, \"\\\\(\\\\)\");\n }).join('');\n return new RegExp(\"\\\\$\\\\{\".concat(expression, \"}\"), 'g');\n };\n\n var preRenderString = function preRenderString(string, parameters) {\n var expressionRegex = /\\${([^.}]+)((\\.[^(]+\\(\\))*)}/g;\n var variables = [];\n var expressionResult = expressionRegex.exec(string);\n\n while (expressionResult !== null) {\n var variable = {\n modifiers: [],\n name: expressionResult[1]\n };\n\n if (expressionResult[3] !== undefined) {\n var modifiersRegex = /\\.[^(]+\\(\\)/g;\n var modifiersRegexResult = modifiersRegex.exec(expressionResult[2]);\n\n while (modifiersRegexResult !== null) {\n variable.modifiers.push(modifiersRegexResult[0].slice(1, -2));\n modifiersRegexResult = modifiersRegex.exec(expressionResult[2]);\n }\n }\n\n variables.push(variable);\n expressionResult = expressionRegex.exec(string);\n }\n\n var preRenderedParts = variables.reduce(function (parts, variable) {\n return parts.map(function (part) {\n if (typeof part === 'string') {\n return part.split(buildRegex(variable)).reduce(function (prts, prt, index) {\n if (index === 0) {\n return [prt];\n }\n\n if (variable.name in parameters) {\n return [].concat(_toConsumableArray__default[\"default\"](prts), [applyModifiers(parameters[variable.name], variable.modifiers), prt]);\n }\n\n return [].concat(_toConsumableArray__default[\"default\"](prts), [function (prmtrs) {\n return applyModifiers(prmtrs[variable.name], variable.modifiers);\n }, prt]);\n }, []);\n }\n\n return [part];\n }).reduce(function (prts, part) {\n return [].concat(_toConsumableArray__default[\"default\"](prts), _toConsumableArray__default[\"default\"](part));\n }, []);\n }, [string]);\n return function (missingParameters) {\n return preRenderedParts.reduce(function (renderedParts, preRenderedPart) {\n if (typeof preRenderedPart === 'string') {\n return [].concat(_toConsumableArray__default[\"default\"](renderedParts), [preRenderedPart]);\n }\n\n return [].concat(_toConsumableArray__default[\"default\"](renderedParts), [preRenderedPart(missingParameters)]);\n }, []).join('');\n };\n };\n\n var compile = function compile(template) {\n var knownParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var renderCode = template.code === undefined ? undefined : preRenderString(template.code, knownParameters);\n var renderMessage = template.message === undefined ? undefined : preRenderString(template.message, knownParameters);\n\n function render() {\n var causeOrMissingParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var optionalCause = arguments.length > 1 ? arguments[1] : undefined;\n var hasNoOptionalCause = optionalCause === undefined && (causeOrMissingParameters instanceof Error || causeOrMissingParameters.code !== undefined && causeOrMissingParameters.code.slice(-9) === 'Exception');\n\n var _ref = hasNoOptionalCause ? {\n cause: causeOrMissingParameters,\n missingParameters: {}\n } : {\n cause: optionalCause,\n missingParameters: causeOrMissingParameters\n },\n cause = _ref.cause,\n missingParameters = _ref.missingParameters;\n\n var err = renderMessage === undefined ? new Error() : new Error(renderMessage(missingParameters));\n\n if (cause !== null) {\n err.cause = cause;\n }\n\n if (renderCode !== undefined) {\n err.code = renderCode(missingParameters);\n }\n\n if (template.status !== undefined) {\n err.status = template.status;\n }\n\n return err;\n }\n\n return render;\n };\n\n exports.compile = compile;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","/*!\n * dashify \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = (str, options) => {\n if (typeof str !== 'string') throw new TypeError('expected a string');\n return str.trim()\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/\\W/g, m => /[À-ž]/.test(m) ? m : '-')\n .replace(/^-+|-+$/g, '')\n .replace(/-{2,}/g, m => options && options.condense ? '-' : m)\n .toLowerCase();\n};\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","import { createBroker } from 'broker-factory';\nimport { TExtendableMediaRecorderWavEncoderWorkerDefinition } from 'extendable-media-recorder-wav-encoder-worker';\nimport { IExtendableMediaRecorderWavEncoderBrokerDefinition } from './interfaces';\nimport { TExtendableMediaRecorderWavEncoderBrokerLoader, TExtendableMediaRecorderWavEncoderBrokerWrapper } from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nexport const wrap: TExtendableMediaRecorderWavEncoderBrokerWrapper = createBroker<\n IExtendableMediaRecorderWavEncoderBrokerDefinition,\n TExtendableMediaRecorderWavEncoderWorkerDefinition\n>({\n characterize: ({ call }) => {\n return () => call('characterize');\n },\n encode: ({ call }) => {\n return (recordingId, timeslice) => {\n return call('encode', { recordingId, timeslice });\n };\n },\n record: ({ call }) => {\n return async (recordingId, sampleRate, typedArrays) => {\n await call(\n 'record',\n { recordingId, sampleRate, typedArrays },\n typedArrays.map(({ buffer }) => buffer)\n );\n };\n }\n});\n\nexport const load: TExtendableMediaRecorderWavEncoderBrokerLoader = (url: string) => {\n const worker = new Worker(url);\n\n return wrap(worker);\n};\n","import { load } from 'extendable-media-recorder-wav-encoder-broker';\nimport { worker } from './worker/worker';\n\nconst blob: Blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' });\n\nconst url: string = URL.createObjectURL(blob);\n\nconst extendableMediaRecorderWavEncoder = load(url);\n\nexport const characterize = extendableMediaRecorderWavEncoder.characterize;\n\nexport const connect = extendableMediaRecorderWavEncoder.connect;\n\nexport const disconnect = extendableMediaRecorderWavEncoder.disconnect;\n\nexport const encode = extendableMediaRecorderWavEncoder.encode;\n\nexport const isSupported = extendableMediaRecorderWavEncoder.isSupported;\n\nexport const record = extendableMediaRecorderWavEncoder.record;\n\nURL.revokeObjectURL(url);\n","// This is the minified and stringified code of the extendable-media-recorder-wav-encoder-worker package.\nexport const worker = `(()=>{var e={834:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{var n=r(834);e.exports=function(e){if(Array.isArray(e))return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports},942:e=>{e.exports=function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},841:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")},e.exports.__esModule=!0,e.exports.default=e.exports},545:(e,t,r)=>{var n=r(640),o=r(942),s=r(798),a=r(841);e.exports=function(e){return n(e)||o(e)||s(e)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},798:(e,t,r)=>{var n=r(834);e.exports=function(e,t){if(e){if(\"string\"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},775:function(e,t,r){!function(e,t,r,n){\"use strict\";function o(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var s=o(t),a=o(r),i=o(n),u=function(e,t){return void 0===t?e:t.reduce((function(e,t){if(\"capitalize\"===t){var r=e.charAt(0).toUpperCase(),n=e.slice(1);return\"\".concat(r).concat(n)}return\"dashify\"===t?a.default(e):\"prependIndefiniteArticle\"===t?\"\".concat(i.default(e),\" \").concat(e):e}),e)},c=function(e){var t=e.name+e.modifiers.map((function(e){return\"\\\\\\\\.\".concat(e,\"\\\\\\\\(\\\\\\\\)\")})).join(\"\");return new RegExp(\"\\\\\\\\$\\\\\\\\{\".concat(t,\"}\"),\"g\")},l=function(e,t){for(var r=/\\\\\\${([^.}]+)((\\\\.[^(]+\\\\(\\\\))*)}/g,n=[],o=r.exec(e);null!==o;){var a={modifiers:[],name:o[1]};if(void 0!==o[3])for(var i=/\\\\.[^(]+\\\\(\\\\)/g,l=i.exec(o[2]);null!==l;)a.modifiers.push(l[0].slice(1,-2)),l=i.exec(o[2]);n.push(a),o=r.exec(e)}var d=n.reduce((function(e,r){return e.map((function(e){return\"string\"==typeof e?e.split(c(r)).reduce((function(e,n,o){return 0===o?[n]:r.name in t?[].concat(s.default(e),[u(t[r.name],r.modifiers),n]):[].concat(s.default(e),[function(e){return u(e[r.name],r.modifiers)},n])}),[]):[e]})).reduce((function(e,t){return[].concat(s.default(e),s.default(t))}),[])}),[e]);return function(e){return d.reduce((function(t,r){return[].concat(s.default(t),\"string\"==typeof r?[r]:[r(e)])}),[]).join(\"\")}},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=void 0===e.code?void 0:l(e.code,t),n=void 0===e.message?void 0:l(e.message,t);function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,s=void 0===o&&(t instanceof Error||void 0!==t.code&&\"Exception\"===t.code.slice(-9))?{cause:t,missingParameters:{}}:{cause:o,missingParameters:t},a=s.cause,i=s.missingParameters,u=void 0===n?new Error:new Error(n(i));return null!==a&&(u.cause=a),void 0!==r&&(u.code=r(i)),void 0!==e.status&&(u.status=e.status),u}return o};e.compile=d,Object.defineProperty(e,\"__esModule\",{value:!0})}(t,r(545),r(881),r(507))},881:e=>{\"use strict\";e.exports=(e,t)=>{if(\"string\"!=typeof e)throw new TypeError(\"expected a string\");return e.trim().replace(/([a-z])([A-Z])/g,\"$1-$2\").replace(/\\\\W/g,(e=>/[À-ž]/.test(e)?e:\"-\")).replace(/^-+|-+$/g,\"\").replace(/-{2,}/g,(e=>t&&t.condense?\"-\":e)).toLowerCase()}},107:function(e,t){!function(e){\"use strict\";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,s=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,u=r(i),c=a(u,i),l=t(c);e.addUniqueNumber=l,e.generateUniqueNumber=c,Object.defineProperty(e,\"__esModule\",{value:!0})}(t)},507:e=>{var t=function(e){var t,r,n=/\\\\w+/.exec(e);if(!n)return\"an\";var o=(r=n[0]).toLowerCase(),s=[\"honest\",\"hour\",\"hono\"];for(t in s)if(0==o.indexOf(s[t]))return\"an\";if(1==o.length)return\"aedhilmnorsx\".indexOf(o)>=0?\"an\":\"a\";if(r.match(/(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]/))return\"an\";var a=[/^e[uw]/,/^onc?e\\\\b/,/^uni([^nmd]|mo)/,/^u[bcfhjkqrst][aeiou]/];for(t=0;t=0?\"an\":\"a\":\"aeiou\".indexOf(o[0])>=0||o.match(/^y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)/)?\"an\":\"a\"};void 0!==e.exports?e.exports=t:window.indefiniteArticle=t}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}(()=>{\"use strict\";var e=r(775);const t=-32603,n=-32602,o=-32601,s=(0,e.compile)({message:'The requested method called \"\\${method}\" is not supported.',status:o}),a=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned no required result.',status:t}),i=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned an unexpected result.',status:t}),u=(0,e.compile)({message:'The specified parameter called \"portId\" with the given value \"\\${portId}\" does not identify a port connected to this worker.',status:n}),c=(e,t)=>async r=>{let{data:{id:n,method:o,params:u}}=r;const c=t[o];try{if(void 0===c)throw s({method:o});const t=void 0===u?c():c(u);if(void 0===t)throw a({method:o});const r=t instanceof Promise?await t:t;if(null===n){if(void 0!==r.result)throw i({method:o})}else{if(void 0===r.result)throw i({method:o});const{result:t,transferables:s=[]}=r;e.postMessage({id:n,result:t},s)}}catch(t){const{message:r,status:o=-32603}=t;e.postMessage({error:{code:o,message:r},id:n})}};var l=r(107);const d=new Map,f=(e,t,r)=>({...t,connect:r=>{let{port:n}=r;n.start();const o=e(n,t),s=(0,l.generateUniqueNumber)(d);return d.set(s,(()=>{o(),n.close(),d.delete(s)})),{result:s}},disconnect:e=>{let{portId:t}=e;const r=d.get(t);if(void 0===r)throw u({portId:t.toString()});return r(),{result:null}},isSupported:async()=>{if(await new Promise((e=>{const t=new ArrayBuffer(0),{port1:r,port2:n}=new MessageChannel;r.onmessage=t=>{let{data:r}=t;return e(null!==r)},n.postMessage(t,[t])}))){const e=r();return{result:e instanceof Promise?await e:e}}return{result:!1}}}),p=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;const n=f(p,t,r),o=c(e,n);return e.addEventListener(\"message\",o),()=>e.removeEventListener(\"message\",o)},m=e=>e.reduce(((e,t)=>e+t.length),0),h=(e,t)=>{const r=[];let n=0;e:for(;nt){const o=n-t;r.forEach(((t,r)=>{const n=t.pop(),s=n.length-o;t.push(n.subarray(0,s)),e[r].unshift(n.subarray(s))}))}return r},v=new Map,g=(e=>(t,r,n)=>{const o=e.get(t);if(void 0===o){const o={channelDataArrays:n.map((e=>[e])),isComplete:!0,sampleRate:r};return e.set(t,o),o}return o.channelDataArrays.forEach(((e,t)=>e.push(n[t]))),o})(v),x=((e,t)=>(r,n,o,s)=>{const a=o>>3,i=\"subsequent\"===n?0:44,u=r.length,c=e(r[0]),l=new ArrayBuffer(c*u*a+i),d=new DataView(l);return\"subsequent\"!==n&&t(d,o,u,\"complete\"===n?c:Number.POSITIVE_INFINITY,s),r.forEach(((e,t)=>{let r=i+t*a;e.forEach((e=>{const t=e.length;for(let n=0;n{const s=t>>3,a=Math.min(n*r*s,4294967251);e.setUint32(0,1380533830),e.setUint32(4,a+36,!0),e.setUint32(8,1463899717),e.setUint32(12,1718449184),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,r,!0),e.setUint32(24,o,!0),e.setUint32(28,o*r*s,!0),e.setUint16(32,r*s,!0),e.setUint16(34,t,!0),e.setUint32(36,1684108385),e.setUint32(40,a,!0)})),w=new Map;p(self,{characterize:()=>({result:/^audio\\\\/wav$/}),encode:e=>{let{recordingId:t,timeslice:r}=e;const n=w.get(t);void 0!==n&&(w.delete(t),n.reject(new Error(\"Another request was made to initiate an encoding.\")));const o=v.get(t);if(null!==r){if(void 0===o||m(o.channelDataArrays[0])*(1e3/o.sampleRate){w.set(t,{reject:n,resolve:e,timeslice:r})}));const e=h(o.channelDataArrays,Math.ceil(r*(o.sampleRate/1e3))),n=x(e,o.isComplete?\"initial\":\"subsequent\",16,o.sampleRate);return o.isComplete=!1,{result:n,transferables:n}}if(void 0!==o){const e=x(o.channelDataArrays,o.isComplete?\"complete\":\"subsequent\",16,o.sampleRate);return v.delete(t),{result:e,transferables:e}}return{result:[],transferables:[]}},record:e=>{let{recordingId:t,sampleRate:r,typedArrays:n}=e;const o=g(t,r,n),s=w.get(t);if(void 0!==s&&m(o.channelDataArrays[0])*(1e3/r)>=s.timeslice){const e=h(o.channelDataArrays,Math.ceil(s.timeslice*(r/1e3))),n=x(e,o.isComplete?\"initial\":\"subsequent\",16,r);o.isComplete=!1,w.delete(t),s.resolve({result:n,transferables:n})}return{result:null}}})})()})();`; // tslint:disable-line:max-line-length\n","import { createBroker } from 'broker-factory';\nimport { addUniqueNumber } from 'fast-unique-numbers';\nimport { TMediaEncoderHostWorkerDefinition } from 'media-encoder-host-worker';\nimport { IMediaEncoderHostBrokerDefinition } from './interfaces';\nimport { TMediaEncoderHostBrokerLoader, TMediaEncoderHostBrokerWrapper } from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst encoderIds: Set = new Set();\n\nexport const wrap: TMediaEncoderHostBrokerWrapper = createBroker({\n encode: ({ call }) => {\n return async (encoderId, timeslice) => {\n const arrayBuffers = await call('encode', { encoderId, timeslice });\n\n encoderIds.delete(encoderId);\n\n return arrayBuffers;\n };\n },\n instantiate: ({ call }) => {\n return async (mimeType, sampleRate) => {\n const encoderId = addUniqueNumber(encoderIds);\n const port = await call('instantiate', { encoderId, mimeType, sampleRate });\n\n return { encoderId, port };\n };\n },\n register: ({ call }) => {\n return (port) => {\n return call('register', { port }, [port]);\n };\n }\n});\n\nexport const load: TMediaEncoderHostBrokerLoader = (url: string) => {\n const worker = new Worker(url);\n\n return wrap(worker);\n};\n","import { load as loadWorker } from 'media-encoder-host-broker';\nimport { worker } from './worker/worker';\n\nconst blob: Blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' });\n\nconst url: string = URL.createObjectURL(blob);\n\nconst mediaEncoderHost = loadWorker(url);\n\nexport const connect = mediaEncoderHost.connect;\n\nexport const disconnect = mediaEncoderHost.disconnect;\n\nexport const encode = mediaEncoderHost.encode;\n\nexport const instantiate = mediaEncoderHost.instantiate;\n\nexport const isSupported = mediaEncoderHost.isSupported;\n\nexport const register = mediaEncoderHost.register;\n\nURL.revokeObjectURL(url);\n","// This is the minified and stringified code of the media-encoder-host-worker package.\nexport const worker = `(()=>{var e={834:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{var n=r(834);e.exports=function(e){if(Array.isArray(e))return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports},942:e=>{e.exports=function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},841:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")},e.exports.__esModule=!0,e.exports.default=e.exports},545:(e,t,r)=>{var n=r(640),o=r(942),a=r(798),s=r(841);e.exports=function(e){return n(e)||o(e)||a(e)||s()},e.exports.__esModule=!0,e.exports.default=e.exports},798:(e,t,r)=>{var n=r(834);e.exports=function(e,t){if(e){if(\"string\"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},775:function(e,t,r){!function(e,t,r,n){\"use strict\";function o(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var a=o(t),s=o(r),i=o(n),c=function(e,t){return void 0===t?e:t.reduce((function(e,t){if(\"capitalize\"===t){var r=e.charAt(0).toUpperCase(),n=e.slice(1);return\"\".concat(r).concat(n)}return\"dashify\"===t?s.default(e):\"prependIndefiniteArticle\"===t?\"\".concat(i.default(e),\" \").concat(e):e}),e)},u=function(e){var t=e.name+e.modifiers.map((function(e){return\"\\\\\\\\.\".concat(e,\"\\\\\\\\(\\\\\\\\)\")})).join(\"\");return new RegExp(\"\\\\\\\\$\\\\\\\\{\".concat(t,\"}\"),\"g\")},l=function(e,t){for(var r=/\\\\\\${([^.}]+)((\\\\.[^(]+\\\\(\\\\))*)}/g,n=[],o=r.exec(e);null!==o;){var s={modifiers:[],name:o[1]};if(void 0!==o[3])for(var i=/\\\\.[^(]+\\\\(\\\\)/g,l=i.exec(o[2]);null!==l;)s.modifiers.push(l[0].slice(1,-2)),l=i.exec(o[2]);n.push(s),o=r.exec(e)}var d=n.reduce((function(e,r){return e.map((function(e){return\"string\"==typeof e?e.split(u(r)).reduce((function(e,n,o){return 0===o?[n]:r.name in t?[].concat(a.default(e),[c(t[r.name],r.modifiers),n]):[].concat(a.default(e),[function(e){return c(e[r.name],r.modifiers)},n])}),[]):[e]})).reduce((function(e,t){return[].concat(a.default(e),a.default(t))}),[])}),[e]);return function(e){return d.reduce((function(t,r){return[].concat(a.default(t),\"string\"==typeof r?[r]:[r(e)])}),[]).join(\"\")}},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=void 0===e.code?void 0:l(e.code,t),n=void 0===e.message?void 0:l(e.message,t);function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,a=void 0===o&&(t instanceof Error||void 0!==t.code&&\"Exception\"===t.code.slice(-9))?{cause:t,missingParameters:{}}:{cause:o,missingParameters:t},s=a.cause,i=a.missingParameters,c=void 0===n?new Error:new Error(n(i));return null!==s&&(c.cause=s),void 0!==r&&(c.code=r(i)),void 0!==e.status&&(c.status=e.status),c}return o};e.compile=d,Object.defineProperty(e,\"__esModule\",{value:!0})}(t,r(545),r(881),r(507))},881:e=>{\"use strict\";e.exports=(e,t)=>{if(\"string\"!=typeof e)throw new TypeError(\"expected a string\");return e.trim().replace(/([a-z])([A-Z])/g,\"$1-$2\").replace(/\\\\W/g,(e=>/[À-ž]/.test(e)?e:\"-\")).replace(/^-+|-+$/g,\"\").replace(/-{2,}/g,(e=>t&&t.condense?\"-\":e)).toLowerCase()}},107:function(e,t){!function(e){\"use strict\";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,a=2*o,s=function(e,t){return function(r){var s=t.get(r),i=void 0===s?r.size:sn)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,c=r(i),u=s(c,i),l=t(u);e.addUniqueNumber=l,e.generateUniqueNumber=u,Object.defineProperty(e,\"__esModule\",{value:!0})}(t)},507:e=>{var t=function(e){var t,r,n=/\\\\w+/.exec(e);if(!n)return\"an\";var o=(r=n[0]).toLowerCase(),a=[\"honest\",\"hour\",\"hono\"];for(t in a)if(0==o.indexOf(a[t]))return\"an\";if(1==o.length)return\"aedhilmnorsx\".indexOf(o)>=0?\"an\":\"a\";if(r.match(/(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]/))return\"an\";var s=[/^e[uw]/,/^onc?e\\\\b/,/^uni([^nmd]|mo)/,/^u[bcfhjkqrst][aeiou]/];for(t=0;t=0?\"an\":\"a\":\"aeiou\".indexOf(o[0])>=0||o.match(/^y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)/)?\"an\":\"a\"};void 0!==e.exports?e.exports=t:window.indefiniteArticle=t}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}(()=>{\"use strict\";var e=r(775);const t=-32603,n=-32602,o=-32601,a=(0,e.compile)({message:'The requested method called \"\\${method}\" is not supported.',status:o}),s=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned no required result.',status:t}),i=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned an unexpected result.',status:t}),c=(0,e.compile)({message:'The specified parameter called \"portId\" with the given value \"\\${portId}\" does not identify a port connected to this worker.',status:n}),u=(e,t)=>async r=>{let{data:{id:n,method:o,params:c}}=r;const u=t[o];try{if(void 0===u)throw a({method:o});const t=void 0===c?u():u(c);if(void 0===t)throw s({method:o});const r=t instanceof Promise?await t:t;if(null===n){if(void 0!==r.result)throw i({method:o})}else{if(void 0===r.result)throw i({method:o});const{result:t,transferables:a=[]}=r;e.postMessage({id:n,result:t},a)}}catch(t){const{message:r,status:o=-32603}=t;e.postMessage({error:{code:o,message:r},id:n})}};var l=r(107);const d=new Map,f=(e,t,r)=>({...t,connect:r=>{let{port:n}=r;n.start();const o=e(n,t),a=(0,l.generateUniqueNumber)(d);return d.set(a,(()=>{o(),n.close(),d.delete(a)})),{result:a}},disconnect:e=>{let{portId:t}=e;const r=d.get(t);if(void 0===r)throw c({portId:t.toString()});return r(),{result:null}},isSupported:async()=>{if(await new Promise((e=>{const t=new ArrayBuffer(0),{port1:r,port2:n}=new MessageChannel;r.onmessage=t=>{let{data:r}=t;return e(null!==r)},n.postMessage(t,[t])}))){const e=r();return{result:e instanceof Promise?await e:e}}return{result:!1}}}),p=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;const n=f(p,t,r),o=u(e,n);return e.addEventListener(\"message\",o),()=>e.removeEventListener(\"message\",o)},m=e=>{e.onmessage=null,e.close()},h=new WeakMap,g=new WeakMap,v=(e=>{const t=(r=e,{...r,connect:e=>{let{call:t}=e;return async()=>{const{port1:e,port2:r}=new MessageChannel,n=await t(\"connect\",{port:e},[e]);return h.set(r,n),r}},disconnect:e=>{let{call:t}=e;return async e=>{const r=h.get(e);if(void 0===r)throw new Error(\"The given port is not connected.\");await t(\"disconnect\",{portId:r})}},isSupported:e=>{let{call:t}=e;return()=>t(\"isSupported\")}});var r;return e=>{const r=(e=>{if(g.has(e))return g.get(e);const t=new Map;return g.set(e,t),t})(e);e.addEventListener(\"message\",(e=>{let{data:t}=e;const{id:n}=t;if(null!==n&&r.has(n)){const{reject:e,resolve:o}=r.get(n);r.delete(n),void 0===t.error?o(t.result):e(new Error(t.error.message))}})),(e=>\"function\"==typeof e.start)(e)&&e.start();const n=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return new Promise(((a,s)=>{const i=(0,l.generateUniqueNumber)(r);r.set(i,{reject:s,resolve:a}),null===n?e.postMessage({id:i,method:t},o):e.postMessage({id:i,method:t,params:n},o)}))},o=function(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];e.postMessage({id:null,method:t,params:r},n)};let a={};for(const[e,r]of Object.entries(t))a={...a,[e]:r({call:n,notify:o})};return{...a}}})({characterize:e=>{let{call:t}=e;return()=>t(\"characterize\")},encode:e=>{let{call:t}=e;return(e,r)=>t(\"encode\",{recordingId:e,timeslice:r})},record:e=>{let{call:t}=e;return async(e,r,n)=>{await t(\"record\",{recordingId:e,sampleRate:r,typedArrays:n},n.map((e=>{let{buffer:t}=e;return t})))}}}),w=async(e,t)=>{const r=v(t),n=await r.characterize(),o=n.toString();if(e.has(o))throw new Error(\"There is already an encoder stored which handles exactly the same mime types.\");return e.set(o,[n,r]),n},x=new Map,y=(e=>t=>{const r=e.get(t);if(void 0===r)throw new Error(\"There was no instance of an encoder stored with the given id.\");return r})(x),M=((e,t)=>r=>{const n=t(r);return e.delete(r),n})(x,y),b=new Map,E=((e,t)=>r=>{const[n,o,a,s]=t(r);return a?new Promise((t=>{o.onmessage=a=>{let{data:i}=a;0===i.length?(e(o),t(n.encode(r,null))):n.record(r,s,i)}})):n.encode(r,null)})(m,M),A=(e=>t=>{for(const[r,n]of Array.from(e.values()))if(r.test(t))return n;throw new Error(\"There is no encoder registered which could handle the given mimeType.\")})(b),_=((e,t,r)=>(n,o,a)=>{if(t.has(n))throw new Error('There is already an encoder registered with an id called \"'.concat(n,'\".'));const s=r(o),{port1:i,port2:c}=new MessageChannel,u=[s,i,!0,a];return t.set(n,u),i.onmessage=t=>{let{data:r}=t;0===r.length?(e(i),u[2]=!1):s.record(n,a,r)},c})(m,x,A),I=(e=>(t,r)=>{const[n]=e(t);return n.encode(t,r)})(y);p(self,{encode:async e=>{let{encoderId:t,timeslice:r}=e;const n=null===r?await E(t):await I(t,r);return{result:n,transferables:n}},instantiate:e=>{let{encoderId:t,mimeType:r,sampleRate:n}=e;const o=_(t,r,n);return{result:o,transferables:[o]}},register:async e=>{let{port:t}=e;return{result:await w(b,t)}}})})()})();`; // tslint:disable-line:max-line-length\n","import { TInvalidModificationErrorFactory } from '../types';\n\nexport const createInvalidModificationError: TInvalidModificationErrorFactory = (message = '') => {\n try {\n return new DOMException(message, 'InvalidModificationError');\n } catch (err) {\n // @todo Edge is the only browser that does not yet allow to construct a DOMException.\n err.code = 13;\n err.message = message;\n err.name = 'InvalidModificationError';\n\n return err;\n }\n};\n","import { TNotSupportedErrorFactory } from '../types';\n\nexport const createNotSupportedError: TNotSupportedErrorFactory = () => {\n try {\n return new DOMException('', 'NotSupportedError');\n } catch (err) {\n // @todo Edge is the only browser that does not yet allow to construct a DOMException.\n err.code = 9;\n err.name = 'NotSupportedError';\n\n return err;\n }\n};\n","/**\n * @license Use of this source code is governed by an MIT-style license that\n * can be found in the LICENSE file at https://github.com/cartant/rxjs-interop\n */\n\ndeclare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\n\nexport const observable = Symbol.observable || \"@@observable\";\n","/**\n * @license Use of this source code is governed by an MIT-style license that\n * can be found in the LICENSE file at https://github.com/cartant/rxjs-interop\n */\n\nimport { Observer, PartialObserver } from \"./types\";\n\nconst noop = () => {};\nconst rethrow = (error: unknown) => {\n /* eslint-disable-next-line etc/throw-error */\n throw error;\n};\n\nexport function toObserver(observer?: PartialObserver): Observer {\n if (observer) {\n if (observer.next && observer.error && observer.complete) {\n return observer as Observer;\n }\n return {\n complete: (observer.complete ?? noop).bind(observer),\n error: (observer.error ?? rethrow).bind(observer),\n next: (observer.next ?? noop).bind(observer),\n };\n }\n return {\n complete: noop,\n error: rethrow,\n next: noop,\n };\n}\n","import { TAnimationFrameFactory } from '../types';\n\nexport const createAnimationFrame: TAnimationFrameFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return () =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.cancelAnimationFrame === undefined || window.requestAnimationFrame === undefined) {\n return emitNotSupportedError(observer);\n }\n\n let animationFrameHandle = window.requestAnimationFrame(function animationFrameCallback(timestamp): void {\n animationFrameHandle = window.requestAnimationFrame(animationFrameCallback);\n\n observer.next(timestamp);\n });\n\n return () => window.cancelAnimationFrame(animationFrameHandle);\n });\n};\n","import { TEmitNotSupportedErrorFunction } from '../types';\n\nexport const emitNotSupportedError: TEmitNotSupportedErrorFunction = (observer) => {\n observer.error(new Error('The required browser API seems to be not supported.'));\n\n return () => {}; // tslint:disable-line:no-empty\n};\n","import { patch, toObserver } from 'rxjs-interop';\nimport { createAnimationFrame } from './factories/animation-frame';\nimport { createAttribute } from './factories/attribute';\nimport { createGeolocation } from './factories/geolocation';\nimport { createIntersections } from './factories/intersections';\nimport { createMapSubscribableThing } from './factories/map-subscribable-thing';\nimport { createMediaDevices } from './factories/media-devices';\nimport { createMediaQueryMatch } from './factories/media-query-match';\nimport { createMetrics } from './factories/metrics';\nimport { createMidiInputs } from './factories/midi-inputs';\nimport { createMidiOutputs } from './factories/midi-outputs';\nimport { createMutations } from './factories/mutations';\nimport { createOn } from './factories/on';\nimport { createOnline } from './factories/online';\nimport { createPermissionState } from './factories/permission-state';\nimport { createPrependSubscribableThing } from './factories/prepend-subscribable-thing';\nimport { createReports } from './factories/reports';\nimport { createResizes } from './factories/resizes';\nimport { createUnhandledRejection } from './factories/unhandled-rejection';\nimport { createVideoFrame } from './factories/video-frame';\nimport { createWakeLock } from './factories/wake-lock';\nimport { createWindow } from './factories/window';\nimport { createWrapSubscribeFunction } from './factories/wrap-subscribe-function';\nimport { emitNotSupportedError } from './functions/emit-not-supported-error';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst window = createWindow();\nconst wrapSubscribeFunction = createWrapSubscribeFunction(patch, toObserver);\n\nexport const animationFrame = createAnimationFrame(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const mutations = createMutations(emitNotSupportedError, window, wrapSubscribeFunction);\n\nconst mapSubscribableThing = createMapSubscribableThing(wrapSubscribeFunction);\nconst prependSubscribableThing = createPrependSubscribableThing(wrapSubscribeFunction);\n\nexport const attribute = createAttribute(mapSubscribableThing, mutations, prependSubscribableThing);\n\nexport const geolocation = createGeolocation(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const intersections = createIntersections(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const mediaDevices = createMediaDevices(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const mediaQueryMatch = createMediaQueryMatch(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const metrics = createMetrics(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const midiInputs = createMidiInputs(wrapSubscribeFunction);\n\nexport const midiOutputs = createMidiOutputs(wrapSubscribeFunction);\n\nexport const on = createOn(wrapSubscribeFunction);\n\nexport const online = createOnline(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const permissionState = createPermissionState(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const reports = createReports(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const resizes = createResizes(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const unhandledRejection = createUnhandledRejection(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const videoFrame = createVideoFrame(emitNotSupportedError, wrapSubscribeFunction);\n\nexport const wakeLock = createWakeLock(emitNotSupportedError, window, wrapSubscribeFunction);\n","import { TWindow, TWindowFactory } from '../types';\n\n// @todo TypeScript does not include type definitions for the Reporting API yet.\nexport const createWindow: TWindowFactory = () => (typeof window === 'undefined' ? null : window);\n","import { Observer, Subscribable } from 'rxjs-interop';\nimport { TObserverParameters, TSubscribableThing, TSubscribeFunction, TWrapSubscribeFunctionFactory } from '../types';\n\nexport const createWrapSubscribeFunction: TWrapSubscribeFunctionFactory = (patch, toObserver) => {\n const emptyFunction = () => {}; // tslint:disable-line:no-empty\n const isNextFunction = (args: TObserverParameters): args is [Observer['next']] => typeof args[0] === 'function';\n\n return (innerSubscribe: TSubscribeFunction) => {\n const subscribe = >((...args: TObserverParameters) => {\n const unsubscribe = innerSubscribe(isNextFunction(args) ? toObserver({ next: args[0] }) : toObserver(...args));\n\n if (unsubscribe !== undefined) {\n return unsubscribe;\n }\n\n return emptyFunction;\n });\n\n subscribe[Symbol.observable] = () => ({\n subscribe: (...args: Parameters['subscribe']>) => ({ unsubscribe: subscribe(...args) })\n });\n\n return patch(subscribe);\n };\n};\n","/**\n * @license Use of this source code is governed by an MIT-style license that\n * can be found in the LICENSE file at https://github.com/cartant/rxjs-interop\n */\n\nimport { observable } from \"./symbols\";\nimport { InteropObservable } from \"./types\";\n\nexport function patch>(instance: T): T;\nexport function patch InteropObservable>(\n constructor: T\n): T;\nexport function patch(\n arg: InteropObservable | (new (...args: any[]) => InteropObservable)\n): InteropObservable | (new (...args: any[]) => InteropObservable) {\n if (!Symbol.observable) {\n if (\n typeof arg === \"function\" &&\n arg.prototype &&\n arg.prototype[Symbol.observable]\n ) {\n (arg.prototype as any)[observable] = arg.prototype[Symbol.observable];\n delete arg.prototype[Symbol.observable];\n } else {\n (arg as any)[observable] = arg[Symbol.observable];\n delete arg[Symbol.observable];\n }\n }\n return arg;\n}\n","import { TMutationsFactory } from '../types';\n\nexport const createMutations: TMutationsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (htmlElement, options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.MutationObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const mutationObserver = new window.MutationObserver((records) => observer.next(records));\n\n try {\n mutationObserver.observe(htmlElement, options);\n } catch (err) {\n observer.error(err);\n }\n\n return () => mutationObserver.disconnect();\n });\n};\n","import { TSubscribableThing, TWrapSubscribeFunctionFunction } from '../types';\n\nexport const createMapSubscribableThing =\n (wrapSubscribeFunction: TWrapSubscribeFunctionFunction) =>\n (\n subscribableThing: TSubscribableThing,\n map: (value: TValue) => TMappedValue\n ): TSubscribableThing =>\n wrapSubscribeFunction((observer) => subscribableThing({ ...observer, next: (value) => observer.next(map(value)) }));\n","import { TSubscribableThing, TWrapSubscribeFunctionFunction } from '../types';\n\nexport const createPrependSubscribableThing =\n (wrapSubscribeFunction: TWrapSubscribeFunctionFunction) =>\n (\n subscribableThing: TSubscribableThing,\n prependedValue: TPrependedValue\n ): TSubscribableThing =>\n wrapSubscribeFunction((observer) => {\n observer.next(prependedValue);\n\n return subscribableThing(observer);\n });\n","import { TSubscribableThing } from '../types';\nimport type { createMapSubscribableThing } from './map-subscribable-thing';\nimport type { createMutations } from './mutations';\nimport type { createPrependSubscribableThing } from './prepend-subscribable-thing';\n\nexport const createAttribute = (\n mapSubscribableThing: ReturnType,\n mutations: ReturnType,\n prependSubscribableThing: ReturnType\n) => {\n return (htmlElement: HTMLElement, name: string): TSubscribableThing => {\n const getAttribute = () => htmlElement.getAttribute(name);\n\n return prependSubscribableThing(\n mapSubscribableThing(\n mutations(htmlElement, {\n attributeFilter: [name],\n childList: false,\n subtree: false\n }),\n () => getAttribute()\n ),\n getAttribute()\n );\n };\n};\n","import { TEmitNotSupportedErrorFunction, TSubscribableThing, TWindow, TWrapSubscribeFunctionFunction } from '../types';\n\nexport const createGeolocation = (\n emitNotSupportedError: TEmitNotSupportedErrorFunction,\n window: null | TWindow,\n wrapSubscribeFunction: TWrapSubscribeFunctionFunction\n) => {\n return (options?: PositionOptions): TSubscribableThing =>\n wrapSubscribeFunction((observer) => {\n if (\n window === null ||\n window.navigator === undefined ||\n window.navigator.geolocation === undefined ||\n window.navigator.geolocation.clearWatch === undefined ||\n window.navigator.geolocation.watchPosition === undefined\n ) {\n return emitNotSupportedError(observer);\n }\n\n const watchId = window.navigator.geolocation.watchPosition(\n (position) => observer.next(position),\n (err) => observer.error(err),\n options\n );\n\n return () => window.navigator.geolocation.clearWatch(watchId);\n });\n};\n","import { TIntersectionsFactory } from '../types';\n\nexport const createIntersections: TIntersectionsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (htmlElement, options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.IntersectionObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const intersectionObserverObserver = new window.IntersectionObserver((entries) => observer.next(entries), options);\n\n try {\n intersectionObserverObserver.observe(htmlElement);\n } catch (err) {\n observer.error(err);\n }\n\n return () => intersectionObserverObserver.disconnect();\n });\n};\n","import { TMediaDevicesFactory } from '../types';\n\nexport const createMediaDevices: TMediaDevicesFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return () =>\n wrapSubscribeFunction((observer) => {\n if (\n window === null ||\n window.navigator === undefined ||\n window.navigator.mediaDevices === undefined ||\n window.navigator.mediaDevices.enumerateDevices === undefined\n ) {\n return emitNotSupportedError(observer);\n }\n\n let isActive = true;\n\n const enumerateDevices = () => {\n window.navigator.mediaDevices.enumerateDevices().then(\n (mediaDevices) => {\n if (isActive) {\n observer.next(mediaDevices);\n }\n },\n (err) => {\n if (isActive) {\n unsubscribe();\n\n observer.error(err);\n }\n }\n );\n };\n const unsubscribe = () => {\n isActive = false;\n window.navigator.mediaDevices.removeEventListener('devicechange', enumerateDevices);\n };\n\n enumerateDevices();\n window.navigator.mediaDevices.addEventListener('devicechange', enumerateDevices);\n\n return unsubscribe;\n });\n};\n","import { TMediaQueryMatchFactory } from '../types';\n\nexport const createMediaQueryMatch: TMediaQueryMatchFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (mediaQueryString) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.matchMedia === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const mediaQueryList = window.matchMedia(mediaQueryString);\n\n observer.next(mediaQueryList.matches);\n\n mediaQueryList.onchange = () => observer.next(mediaQueryList.matches);\n\n return () => {\n mediaQueryList.onchange = null;\n };\n });\n};\n","import { TMetricsFactory } from '../types';\n\nexport const createMetrics: TMetricsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.PerformanceObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const performanceObserver = new window.PerformanceObserver((entryList) => observer.next(entryList.getEntries()));\n\n try {\n performanceObserver.observe(options);\n } catch (err) {\n observer.error(err);\n }\n\n return () => performanceObserver.disconnect();\n });\n};\n","import { TMidiInputsFactory } from '../types';\n\nexport const createMidiInputs: TMidiInputsFactory = (wrapSubscribeFunction) => {\n return (midiAccess) =>\n wrapSubscribeFunction((observer) => {\n let midiInputs = Array.from(midiAccess.inputs.values());\n\n const emitMidiInputs = () => {\n const midiAccessInputs = midiAccess.inputs;\n\n if (midiInputs.length !== midiAccessInputs.size || midiInputs.some(({ id }) => !midiAccessInputs.has(id))) {\n midiInputs = Array.from(midiAccessInputs.values());\n\n observer.next(midiInputs);\n }\n };\n\n observer.next(midiInputs);\n midiAccess.addEventListener('statechange', emitMidiInputs);\n\n return () => midiAccess.removeEventListener('statechange', emitMidiInputs);\n });\n};\n","import { TMidiOutputsFactory } from '../types';\n\nexport const createMidiOutputs: TMidiOutputsFactory = (wrapSubscribeFunction) => {\n return (midiAccess) =>\n wrapSubscribeFunction((observer) => {\n let midiOutputs = Array.from(midiAccess.outputs.values());\n\n const emitMidiOutputs = () => {\n const midiAccessOutputs = midiAccess.outputs;\n\n if (midiOutputs.length !== midiAccessOutputs.size || midiOutputs.some(({ id }) => !midiAccessOutputs.has(id))) {\n midiOutputs = Array.from(midiAccessOutputs.values());\n\n observer.next(midiOutputs);\n }\n };\n\n observer.next(midiOutputs);\n midiAccess.addEventListener('statechange', emitMidiOutputs);\n\n return () => midiAccess.removeEventListener('statechange', emitMidiOutputs);\n });\n};\n","import { TEventHandler, TEventType, TOnFactory } from '../types';\n\nexport const createOn: TOnFactory = (wrapSubscribeFunction) => {\n return (target, type, options) =>\n wrapSubscribeFunction((observer) => {\n const listener: TEventHandler = (event) => observer.next(>event);\n\n target.addEventListener(type, listener, options);\n\n return () => target.removeEventListener(type, listener, options);\n });\n};\n","import { TOnlineFactory } from '../types';\n\nexport const createOnline: TOnlineFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return () =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.navigator === undefined || window.navigator.onLine === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const emitFalse = () => observer.next(false);\n const emitTrue = () => observer.next(true);\n\n window.addEventListener('offline', emitFalse);\n window.addEventListener('online', emitTrue);\n\n observer.next(window.navigator.onLine);\n\n return () => {\n window.removeEventListener('offline', emitFalse);\n window.removeEventListener('online', emitTrue);\n };\n });\n};\n","import { TPermissionStateFactory } from '../types';\n\nexport const createPermissionState: TPermissionStateFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (permissionDescriptor) =>\n wrapSubscribeFunction((observer) => {\n if (\n window === null ||\n window.navigator === undefined ||\n window.navigator.permissions === undefined ||\n window.navigator.permissions.query === undefined\n ) {\n return emitNotSupportedError(observer);\n }\n\n let isActive = true;\n let unsubscribe = () => {\n isActive = false;\n };\n\n window.navigator.permissions.query(permissionDescriptor).then(\n (permissionStatus) => {\n if (isActive) {\n observer.next(permissionStatus.state);\n }\n\n if (isActive) {\n permissionStatus.onchange = () => observer.next(permissionStatus.state);\n\n unsubscribe = () => {\n permissionStatus.onchange = null;\n };\n }\n },\n (err) => {\n if (isActive) {\n observer.error(err);\n }\n }\n );\n\n return () => unsubscribe();\n });\n};\n","import { TReportsFactory } from '../types';\n\nexport const createReports: TReportsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.ReportingObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const reportingObserver = new window.ReportingObserver((reportList) => observer.next(reportList), options);\n\n reportingObserver.observe();\n\n return () => reportingObserver.disconnect();\n });\n};\n","import { IResizeObserverEntry } from '../interfaces';\nimport { TResizesFactory } from '../types';\n\nexport const createResizes: TResizesFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (htmlElement, options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.ResizeObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const resizeObserver = new window.ResizeObserver((entries) => observer.next(entries));\n\n try {\n resizeObserver.observe(htmlElement, options);\n } catch (err) {\n observer.error(err);\n }\n\n return () => resizeObserver.disconnect();\n });\n};\n","import { TUnhandledRejectionFactory } from '../types';\n\nexport const createUnhandledRejection: TUnhandledRejectionFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (coolingOffPeriod) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.clearInterval === undefined || window.setInterval === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const possiblyUnhandledRejections = new Map, { reason: any; timestamp: number }>();\n\n let intervalId: null | number = null;\n\n const deletePossiblyUnhandledRejection = ({ promise }: PromiseRejectionEvent) => possiblyUnhandledRejections.delete(promise);\n const emitUnhandledRejection = () => {\n const latestTimestampToEmit = Date.now() - coolingOffPeriod;\n\n possiblyUnhandledRejections.forEach(({ reason, timestamp }, promise) => {\n if (timestamp > latestTimestampToEmit) {\n return;\n }\n\n possiblyUnhandledRejections.delete(promise);\n observer.next(reason);\n });\n\n if (intervalId !== null && possiblyUnhandledRejections.size === 0) {\n window.clearInterval(intervalId);\n intervalId = null;\n }\n };\n const registerPossiblyUnhandledRejection = (event: PromiseRejectionEvent) => {\n event.preventDefault();\n\n possiblyUnhandledRejections.set(event.promise, {\n reason: event.reason,\n timestamp: Date.now()\n });\n\n if (intervalId === null) {\n intervalId = window.setInterval(emitUnhandledRejection, coolingOffPeriod / 2);\n }\n };\n\n window.addEventListener('rejectionhandled', deletePossiblyUnhandledRejection);\n window.addEventListener('unhandledrejection', registerPossiblyUnhandledRejection);\n\n return () => {\n if (intervalId !== null) {\n window.clearInterval(intervalId);\n }\n\n window.removeEventListener('rejectionhandled', deletePossiblyUnhandledRejection);\n window.removeEventListener('unhandledrejection', registerPossiblyUnhandledRejection);\n };\n });\n};\n","import { TVideoFrameFactory } from '../types';\n\nexport const createVideoFrame: TVideoFrameFactory = (emitNotSupportedError, wrapSubscribeFunction) => {\n return (videoElement) =>\n wrapSubscribeFunction((observer) => {\n if (videoElement.cancelVideoFrameCallback === undefined || videoElement.requestVideoFrameCallback === undefined) {\n return emitNotSupportedError(observer);\n }\n\n let videoFrameHandle = videoElement.requestVideoFrameCallback(function videoFrameCallback(now, metadata): void {\n videoFrameHandle = videoElement.requestVideoFrameCallback(videoFrameCallback);\n\n observer.next({ ...metadata, now });\n });\n\n return () => videoElement.cancelVideoFrameCallback(videoFrameHandle);\n });\n};\n","import { IWakeLockSentinel } from '../interfaces';\nimport { TWakeLockFactory } from '../types';\n\nexport const createWakeLock: TWakeLockFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (type) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.navigator === undefined || window.navigator.wakeLock === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const releaseWakeLock = (wakeLockSentinel: IWakeLockSentinel) =>\n wakeLockSentinel.release().catch(() => {\n // Ignore errors.\n });\n const removeReleaseEventListener = (wakeLockSentinel: IWakeLockSentinel) => {\n wakeLockSentinel.onrelease = null;\n };\n\n let isActive = true;\n\n const unsubscribeWhileRequesting = () => {\n isActive = false;\n };\n\n let unsubscribe = unsubscribeWhileRequesting;\n\n const requestWakeLock = () =>\n window.navigator.wakeLock.request(type).then(\n (wakeLockSentinel) => {\n if (isActive) {\n observer.next(true);\n }\n\n if (isActive) {\n wakeLockSentinel.onrelease = () => {\n observer.next(false);\n\n unsubscribe = unsubscribeWhileRequesting;\n\n removeReleaseEventListener(wakeLockSentinel);\n requestWakeLock();\n };\n\n unsubscribe = () => {\n removeReleaseEventListener(wakeLockSentinel);\n releaseWakeLock(wakeLockSentinel);\n };\n } else {\n releaseWakeLock(wakeLockSentinel);\n }\n },\n (err) => {\n if (isActive) {\n observer.error(err);\n }\n }\n );\n\n requestWakeLock();\n\n return () => unsubscribe();\n });\n};\n","import { IAugmentedError, IParameterObject, compile } from 'compilerr';\n\nconst JSON_RPC_ERROR_CODES = { INTERNAL_ERROR: -32603, INVALID_PARAMS: -32602, METHOD_NOT_FOUND: -32601 };\n\nexport const renderMethodNotFoundError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The requested method called \"${method}\" is not supported.',\n status: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND\n});\n\nexport const renderMissingResponseError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The handler of the method called \"${method}\" returned no required result.',\n status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR\n});\n\nexport const renderUnexpectedResultError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The handler of the method called \"${method}\" returned an unexpected result.',\n status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR\n});\n\nexport const renderUnknownPortIdError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The specified parameter called \"portId\" with the given value \"${portId}\" does not identify a port connected to this worker.',\n status: JSON_RPC_ERROR_CODES.INVALID_PARAMS\n});\n","import { generateUniqueNumber } from 'fast-unique-numbers';\nimport { on } from 'subscribable-things';\nimport { isSupported } from 'worker-factory';\nimport { createAddRecorderAudioWorkletModule } from './factories/add-recorder-audio-worklet-module';\nimport { createListener } from './factories/listener';\nimport { createPostMessageFactory } from './factories/post-message-factory';\nimport { createRecorderAudioWorkletNodeFactory } from './factories/recorder-audio-worklet-node-factory';\nimport { validateState } from './functions/validate-state';\nimport { worklet } from './worklet/worklet';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nexport const addRecorderAudioWorkletModule = createAddRecorderAudioWorkletModule(Blob, URL, worklet);\n\nexport const createRecorderAudioWorkletNode = createRecorderAudioWorkletNodeFactory(\n createListener,\n createPostMessageFactory(generateUniqueNumber),\n on,\n validateState\n);\n\nexport { isSupported };\n","import { generateUniqueNumber } from 'fast-unique-numbers';\nimport { IDefaultWorkerDefinition, IReceiver, IWorkerDefinition } from '../interfaces';\nimport { TDestroyWorkerFunction, TWorkerImplementation } from '../types';\nimport { renderUnknownPortIdError } from './error-renderers';\nimport { isSupportingTransferables } from './is-supporting-transferables';\n\nconst DESTROY_WORKER_FUNCTIONS: Map = new Map();\n\nexport const extendWorkerImplementation = (\n createWorker: (receiver: IReceiver, workerImplementation: TWorkerImplementation) => TDestroyWorkerFunction,\n partialWorkerImplementation: TWorkerImplementation,\n isSupportedFunction: () => boolean | Promise\n): TWorkerImplementation & TWorkerImplementation => ({\n ...partialWorkerImplementation,\n connect: ({ port }) => {\n port.start();\n\n const destroyWorker = createWorker(port, partialWorkerImplementation);\n const portId = generateUniqueNumber(DESTROY_WORKER_FUNCTIONS);\n\n DESTROY_WORKER_FUNCTIONS.set(portId, () => {\n destroyWorker();\n port.close();\n DESTROY_WORKER_FUNCTIONS.delete(portId);\n });\n\n return { result: portId };\n },\n disconnect: ({ portId }) => {\n const destroyWorker = DESTROY_WORKER_FUNCTIONS.get(portId);\n\n if (destroyWorker === undefined) {\n throw renderUnknownPortIdError({ portId: portId.toString() });\n }\n\n destroyWorker();\n\n return { result: null };\n },\n isSupported: async () => {\n const isSelfSupported = await isSupportingTransferables();\n\n if (isSelfSupported) {\n const result = isSupportedFunction();\n const synchronousResult = result instanceof Promise ? await result : result;\n\n return { result: synchronousResult };\n }\n\n return { result: false };\n }\n});\n","export const createAddRecorderAudioWorkletModule = (blobConstructor: typeof Blob, urlConstructor: typeof URL, worklet: string) => {\n return async (addAudioWorkletModule: (url: string) => Promise) => {\n const blob = new blobConstructor([worklet], { type: 'application/javascript; charset=utf-8' });\n const url = urlConstructor.createObjectURL(blob);\n\n try {\n await addAudioWorkletModule(url);\n } finally {\n urlConstructor.revokeObjectURL(url);\n }\n };\n};\n","// This is the minified and stringified code of the recorder-audio-worklet-processor package.\nexport const worklet = `(()=>{\"use strict\";class e extends AudioWorkletProcessor{constructor(){super(),this._encoderPort=null,this._state=\"inactive\",this.port.onmessage=e=>{let{data:t}=e;\"pause\"===t.method?\"active\"===this._state||\"recording\"===this._state?(this._state=\"paused\",this._sendAcknowledgement(t.id)):this._sendUnexpectedStateError(t.id):\"record\"===t.method?\"inactive\"===this._state?(this._encoderPort=t.params.encoderPort,this._state=\"active\",this._sendAcknowledgement(t.id)):this._sendUnexpectedStateError(t.id):\"resume\"===t.method?\"paused\"===this._state?(this._state=\"active\",this._sendAcknowledgement(t.id)):this._sendUnexpectedStateError(t.id):\"stop\"===t.method?\"active\"!==this._state&&\"paused\"!==this._state&&\"recording\"!==this._state||null===this._encoderPort?this._sendUnexpectedStateError(t.id):(this._stop(this._encoderPort),this._sendAcknowledgement(t.id)):\"number\"==typeof t.id&&this.port.postMessage({error:{code:-32601,message:\"The requested method is not supported.\"},id:t.id})}}process(e){let[t]=e;if(\"inactive\"===this._state||\"paused\"===this._state)return!0;if(\"active\"===this._state){if(void 0===t)throw new Error(\"No channelData was received for the first input.\");if(0===t.length)return!0;this._state=\"recording\"}if(\"recording\"===this._state&&null!==this._encoderPort){if(void 0===t)throw new Error(\"No channelData was received for the first input.\");if(0!==t.length)return this._encoderPort.postMessage(t,t.map((e=>{let{buffer:t}=e;return t}))),!0;this._stop(this._encoderPort)}return!1}_sendAcknowledgement(e){this.port.postMessage({id:e,result:null})}_sendUnexpectedStateError(e){this.port.postMessage({error:{code:-32603,message:\"The internal state does not allow to process the given message.\"},id:e})}_stop(e){e.postMessage([]),e.close(),this._encoderPort=null,this._state=\"stopped\"}}e.parameterDescriptors=[],registerProcessor(\"recorder-audio-worklet-processor\",e)})();`; // tslint:disable-line:max-line-length\n","import type {\n IAudioWorkletNode,\n TAudioWorkletNodeConstructor,\n TContext,\n TNativeAudioWorkletNode,\n TNativeAudioWorkletNodeConstructor,\n TNativeContext\n} from 'standardized-audio-context';\nimport type { on as onFunction } from 'subscribable-things';\nimport type { validateState as validateStateFunction } from '../functions/validate-state';\nimport { INativeRecorderAudioWorkletNode, IRecorderAudioWorkletNode } from '../interfaces';\nimport { TAnyRecorderAudioWorkletNodeOptions, TState } from '../types';\nimport type { createListener as createListenerFunction } from './listener';\nimport type { createPostMessageFactory } from './post-message-factory';\n\nexport const createRecorderAudioWorkletNodeFactory = (\n createListener: typeof createListenerFunction,\n createPostMessage: ReturnType,\n on: typeof onFunction,\n validateState: typeof validateStateFunction\n) => {\n return (\n audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor,\n context: T,\n options: Partial> = {}\n ): T extends TContext ? IRecorderAudioWorkletNode : INativeRecorderAudioWorkletNode => {\n type TAnyAudioWorkletNode = T extends TContext ? IAudioWorkletNode : TNativeAudioWorkletNode;\n type TAnyRecorderAudioWorkletNode = T extends TContext ? IRecorderAudioWorkletNode : INativeRecorderAudioWorkletNode;\n\n const audioWorkletNode: TAnyAudioWorkletNode = new (audioWorkletNodeConstructor)(context, 'recorder-audio-worklet-processor', {\n ...options,\n channelCountMode: 'explicit',\n numberOfInputs: 1,\n numberOfOutputs: 0\n });\n const ongoingRequests: Map = new Map();\n const postMessage = createPostMessage(ongoingRequests, audioWorkletNode.port);\n const unsubscribe = on(audioWorkletNode.port, 'message')(createListener(ongoingRequests));\n\n audioWorkletNode.port.start();\n\n let state: TState = 'inactive';\n\n Object.defineProperties(audioWorkletNode, {\n pause: {\n get(): TAnyRecorderAudioWorkletNode['pause'] {\n return async () => {\n validateState(['recording'], state);\n\n state = 'paused';\n\n return postMessage({\n method: 'pause'\n });\n };\n }\n },\n port: {\n get(): TAnyRecorderAudioWorkletNode['port'] {\n throw new Error(\"The port of a RecorderAudioWorkletNode can't be accessed.\");\n }\n },\n record: {\n get(): TAnyRecorderAudioWorkletNode['record'] {\n return async (encoderPort: MessagePort) => {\n validateState(['inactive'], state);\n\n state = 'recording';\n\n return postMessage(\n {\n method: 'record',\n params: { encoderPort }\n },\n [encoderPort]\n );\n };\n }\n },\n resume: {\n get(): TAnyRecorderAudioWorkletNode['resume'] {\n return async () => {\n validateState(['paused'], state);\n\n state = 'recording';\n\n return postMessage({\n method: 'resume'\n });\n };\n }\n },\n stop: {\n get(): TAnyRecorderAudioWorkletNode['stop'] {\n return async () => {\n validateState(['paused', 'recording'], state);\n\n state = 'stopped';\n\n try {\n await postMessage({ method: 'stop' });\n } finally {\n unsubscribe();\n }\n };\n }\n }\n });\n\n return audioWorkletNode;\n };\n};\n","import type { IWorkerEvent } from 'broker-factory';\nimport type { IWorkerErrorMessage, IWorkerResultMessage } from 'worker-factory';\n\nexport const createListener = (ongoingRequests: Map) => {\n return ({ data: message }: IWorkerEvent) => {\n const { id } = message;\n\n if (id !== null) {\n const ongoingRequest = ongoingRequests.get(id);\n\n if (ongoingRequest !== undefined) {\n const { reject, resolve } = ongoingRequest;\n\n ongoingRequests.delete(id);\n\n if ((message).error === undefined) {\n resolve((message).result);\n } else {\n reject(new Error((message).error.message));\n }\n }\n }\n };\n};\n","import type { generateUniqueNumber as generateUniqueNumberFunction } from 'fast-unique-numbers';\n\nexport const createPostMessageFactory = (generateUniqueNumber: typeof generateUniqueNumberFunction) => {\n return (ongoingRequests: Map, port: MessagePort) => {\n return (message: { method: string; params?: object }, transferables: Transferable[] = []): Promise => {\n return new Promise((resolve, reject) => {\n const id = generateUniqueNumber(ongoingRequests);\n\n ongoingRequests.set(id, { reject, resolve });\n\n port.postMessage({ id, ...message }, transferables);\n });\n };\n };\n};\n","import { TState } from '../types';\n\nexport const validateState = (expectedStates: TState[], currentState: TState): void => {\n if (!expectedStates.includes(currentState)) {\n throw new Error(\n `Expected the state to be ${expectedStates\n .map((expectedState) => `\"${expectedState}\"`)\n .join(' or ')} but it was \"${currentState}\".`\n );\n }\n};\n","import { IAudioNode, IAudioWorkletProcessor, IAudioWorkletProcessorConstructor } from './interfaces';\nimport {\n TAudioNodeConnectionsStore,\n TAudioNodeStore,\n TAudioParamConnectionsStore,\n TAudioParamStore,\n TContext,\n TContextStore,\n TCycleCounters,\n TInternalStateEventListener,\n TNativeAudioWorkletNode,\n TNativeContext\n} from './types';\n\nexport const ACTIVE_AUDIO_NODE_STORE: WeakSet> = new WeakSet();\n\nexport const AUDIO_NODE_CONNECTIONS_STORE: TAudioNodeConnectionsStore = new WeakMap();\n\nexport const AUDIO_NODE_STORE: TAudioNodeStore = new WeakMap();\n\nexport const AUDIO_PARAM_CONNECTIONS_STORE: TAudioParamConnectionsStore = new WeakMap();\n\nexport const AUDIO_PARAM_STORE: TAudioParamStore = new WeakMap();\n\nexport const CONTEXT_STORE: TContextStore = new WeakMap();\n\nexport const EVENT_LISTENERS: WeakMap, Set> = new WeakMap();\n\nexport const CYCLE_COUNTERS: TCycleCounters = new WeakMap();\n\n// This clunky name is borrowed from the spec. :-)\nexport const NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS: WeakMap<\n TNativeContext,\n Map\n> = new WeakMap();\n\nexport const NODE_TO_PROCESSOR_MAPS: WeakMap<\n TNativeContext,\n WeakMap>\n> = new WeakMap();\n","import { TConstructor } from '../types';\n\nconst handler = {\n construct(): any {\n return handler;\n }\n};\n\nexport const isConstructible = (constructible: TConstructor): boolean => {\n try {\n const proxy = new Proxy(constructible, handler);\n\n new proxy(); // tslint:disable-line:no-unused-expression\n } catch {\n return false;\n }\n\n return true;\n};\n","/*\n * This massive regex tries to cover all the following cases.\n *\n * import './path';\n * import defaultImport from './path';\n * import { namedImport } from './path';\n * import { namedImport as renamendImport } from './path';\n * import * as namespaceImport from './path';\n * import defaultImport, { namedImport } from './path';\n * import defaultImport, { namedImport as renamendImport } from './path';\n * import defaultImport, * as namespaceImport from './path';\n */\nconst IMPORT_STATEMENT_REGEX = /^import(?:(?:[\\s]+[\\w]+|(?:[\\s]+[\\w]+[\\s]*,)?[\\s]*\\{[\\s]*[\\w]+(?:[\\s]+as[\\s]+[\\w]+)?(?:[\\s]*,[\\s]*[\\w]+(?:[\\s]+as[\\s]+[\\w]+)?)*[\\s]*}|(?:[\\s]+[\\w]+[\\s]*,)?[\\s]*\\*[\\s]+as[\\s]+[\\w]+)[\\s]+from)?(?:[\\s]*)(\"([^\"\\\\]|\\\\.)+\"|'([^'\\\\]|\\\\.)+')(?:[\\s]*);?/; // tslint:disable-line:max-line-length\n\nexport const splitImportStatements = (source: string, url: string): [string, string] => {\n const importStatements = [];\n\n let sourceWithoutImportStatements = source.replace(/^[\\s]+/, '');\n let result = sourceWithoutImportStatements.match(IMPORT_STATEMENT_REGEX);\n\n while (result !== null) {\n const unresolvedUrl = result[1].slice(1, -1);\n\n const importStatementWithResolvedUrl = result[0]\n .replace(/([\\s]+)?;?$/, '')\n .replace(unresolvedUrl, new URL(unresolvedUrl, url).toString());\n importStatements.push(importStatementWithResolvedUrl);\n\n sourceWithoutImportStatements = sourceWithoutImportStatements.slice(result[0].length).replace(/^[\\s]+/, '');\n result = sourceWithoutImportStatements.match(IMPORT_STATEMENT_REGEX);\n }\n\n return [importStatements.join(';'), sourceWithoutImportStatements];\n};\n","import { NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS } from '../globals';\nimport { isConstructible } from '../helpers/is-constructible';\nimport { splitImportStatements } from '../helpers/split-import-statements';\nimport { IAudioWorkletProcessorConstructor } from '../interfaces';\nimport { TAddAudioWorkletModuleFactory, TEvaluateAudioWorkletGlobalScopeFunction } from '../types';\n\nconst verifyParameterDescriptors = (parameterDescriptors: IAudioWorkletProcessorConstructor['parameterDescriptors']) => {\n if (parameterDescriptors !== undefined && !Array.isArray(parameterDescriptors)) {\n throw new TypeError('The parameterDescriptors property of given value for processorCtor is not an array.');\n }\n};\n\nconst verifyProcessorCtor = (processorCtor: T) => {\n if (!isConstructible(processorCtor)) {\n throw new TypeError('The given value for processorCtor should be a constructor.');\n }\n\n if (processorCtor.prototype === null || typeof processorCtor.prototype !== 'object') {\n throw new TypeError('The given value for processorCtor should have a prototype.');\n }\n};\n\nexport const createAddAudioWorkletModule: TAddAudioWorkletModuleFactory = (\n cacheTestResult,\n createNotSupportedError,\n evaluateSource,\n exposeCurrentFrameAndCurrentTime,\n fetchSource,\n getNativeContext,\n getOrCreateBackupOfflineAudioContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n ongoingRequests,\n resolvedRequests,\n testAudioWorkletProcessorPostMessageSupport,\n window\n) => {\n let index = 0;\n\n return (context, moduleURL, options = { credentials: 'omit' }) => {\n const resolvedRequestsOfContext = resolvedRequests.get(context);\n\n if (resolvedRequestsOfContext !== undefined && resolvedRequestsOfContext.has(moduleURL)) {\n return Promise.resolve();\n }\n\n const ongoingRequestsOfContext = ongoingRequests.get(context);\n\n if (ongoingRequestsOfContext !== undefined) {\n const promiseOfOngoingRequest = ongoingRequestsOfContext.get(moduleURL);\n\n if (promiseOfOngoingRequest !== undefined) {\n return promiseOfOngoingRequest;\n }\n }\n\n const nativeContext = getNativeContext(context);\n\n // Bug #59: Safari does not implement the audioWorklet property.\n const promise =\n nativeContext.audioWorklet === undefined\n ? fetchSource(moduleURL)\n .then(([source, absoluteUrl]) => {\n const [importStatements, sourceWithoutImportStatements] = splitImportStatements(source, absoluteUrl);\n\n /*\n * This is the unminified version of the code used below:\n *\n * ```js\n * ${ importStatements };\n * ((a, b) => {\n * (a[b] = a[b] || [ ]).push(\n * (AudioWorkletProcessor, global, registerProcessor, sampleRate, self, window) => {\n * ${ sourceWithoutImportStatements }\n * }\n * );\n * })(window, '_AWGS');\n * ```\n */\n // tslint:disable-next-line:max-line-length\n const wrappedSource = `${importStatements};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${sourceWithoutImportStatements}\n})})(window,'_AWGS')`;\n\n // @todo Evaluating the given source code is a possible security problem.\n return evaluateSource(wrappedSource);\n })\n .then(() => {\n const evaluateAudioWorkletGlobalScope = ((window)._AWGS).pop();\n\n if (evaluateAudioWorkletGlobalScope === undefined) {\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n throw new SyntaxError();\n }\n\n exposeCurrentFrameAndCurrentTime(nativeContext.currentTime, nativeContext.sampleRate, () =>\n evaluateAudioWorkletGlobalScope(\n class AudioWorkletProcessor {},\n undefined,\n (name, processorCtor) => {\n if (name.trim() === '') {\n throw createNotSupportedError();\n }\n\n const nodeNameToProcessorConstructorMap = NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(nativeContext);\n\n if (nodeNameToProcessorConstructorMap !== undefined) {\n if (nodeNameToProcessorConstructorMap.has(name)) {\n throw createNotSupportedError();\n }\n\n verifyProcessorCtor(processorCtor);\n verifyParameterDescriptors(processorCtor.parameterDescriptors);\n\n nodeNameToProcessorConstructorMap.set(name, processorCtor);\n } else {\n verifyProcessorCtor(processorCtor);\n verifyParameterDescriptors(processorCtor.parameterDescriptors);\n\n NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(nativeContext, new Map([[name, processorCtor]]));\n }\n },\n nativeContext.sampleRate,\n undefined,\n undefined\n )\n );\n })\n : Promise.all([\n fetchSource(moduleURL),\n Promise.resolve(\n cacheTestResult(testAudioWorkletProcessorPostMessageSupport, testAudioWorkletProcessorPostMessageSupport)\n )\n ]).then(([[source, absoluteUrl], isSupportingPostMessage]) => {\n const currentIndex = index + 1;\n\n index = currentIndex;\n\n const [importStatements, sourceWithoutImportStatements] = splitImportStatements(source, absoluteUrl);\n /*\n * Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\n *\n * This is the unminified version of the code used below.\n *\n * ```js\n * class extends AudioWorkletProcessor {\n *\n * __buffers = new WeakSet();\n *\n * constructor () {\n * super();\n *\n * this.port.postMessage = ((postMessage) => {\n * return (message, transferables) => {\n * const filteredTransferables = (transferables)\n * ? transferables.filter((transferable) => !this.__buffers.has(transferable))\n * : transferables;\n *\n * return postMessage.call(this.port, message, filteredTransferables);\n * };\n * })(this.port.postMessage);\n * }\n * }\n * ```\n */\n const patchedAudioWorkletProcessor = isSupportingPostMessage\n ? 'AudioWorkletProcessor'\n : 'class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}';\n /*\n * Bug #170: Chrome and Edge do call process() with an array with empty channelData for each input if no input is connected.\n *\n * Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\n *\n * Bug #190: Safari doesn't throw an error when loading an unparsable module.\n *\n * This is the unminified version of the code used below:\n *\n * ```js\n * `${ importStatements };\n * ((AudioWorkletProcessor, registerProcessor) => {${ sourceWithoutImportStatements }\n * })(\n * ${ patchedAudioWorkletProcessor },\n * (name, processorCtor) => registerProcessor(name, class extends processorCtor {\n *\n * __collectBuffers = (array) => {\n * array.forEach((element) => this.__buffers.add(element.buffer));\n * };\n *\n * process (inputs, outputs, parameters) {\n * inputs.forEach(this.__collectBuffers);\n * outputs.forEach(this.__collectBuffers);\n * this.__collectBuffers(Object.values(parameters));\n *\n * return super.process(\n * (inputs.map((input) => input.some((channelData) => channelData.length === 0)) ? [ ] : input),\n * outputs,\n * parameters\n * );\n * }\n *\n * })\n * );\n *\n * registerProcessor(`__sac${currentIndex}`, class extends AudioWorkletProcessor{\n *\n * process () {\n * return false;\n * }\n *\n * })`\n * ```\n */\n const memberDefinition = isSupportingPostMessage ? '' : '__c = (a) => a.forEach(e=>this.__b.add(e.buffer));';\n const bufferRegistration = isSupportingPostMessage\n ? ''\n : 'i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));';\n const wrappedSource = `${importStatements};((AudioWorkletProcessor,registerProcessor)=>{${sourceWithoutImportStatements}\n})(${patchedAudioWorkletProcessor},(n,p)=>registerProcessor(n,class extends p{${memberDefinition}process(i,o,p){${bufferRegistration}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${currentIndex}',class extends AudioWorkletProcessor{process(){return !1}})`;\n const blob = new Blob([wrappedSource], { type: 'application/javascript; charset=utf-8' });\n const url = URL.createObjectURL(blob);\n\n return nativeContext.audioWorklet\n .addModule(url, options)\n .then(() => {\n if (isNativeOfflineAudioContext(nativeContext)) {\n return nativeContext;\n }\n\n // Bug #186: Chrome and Edge do not allow to create an AudioWorkletNode on a closed AudioContext.\n const backupOfflineAudioContext = getOrCreateBackupOfflineAudioContext(nativeContext);\n\n return backupOfflineAudioContext.audioWorklet.addModule(url, options).then(() => backupOfflineAudioContext);\n })\n .then((nativeContextOrBackupOfflineAudioContext) => {\n if (nativeAudioWorkletNodeConstructor === null) {\n throw new SyntaxError();\n }\n\n try {\n // Bug #190: Safari doesn't throw an error when loading an unparsable module.\n new nativeAudioWorkletNodeConstructor(nativeContextOrBackupOfflineAudioContext, `__sac${currentIndex}`); // tslint:disable-line:no-unused-expression\n } catch {\n throw new SyntaxError();\n }\n })\n .finally(() => URL.revokeObjectURL(url));\n });\n\n if (ongoingRequestsOfContext === undefined) {\n ongoingRequests.set(context, new Map([[moduleURL, promise]]));\n } else {\n ongoingRequestsOfContext.set(moduleURL, promise);\n }\n\n promise\n .then(() => {\n const updatedResolvedRequestsOfContext = resolvedRequests.get(context);\n\n if (updatedResolvedRequestsOfContext === undefined) {\n resolvedRequests.set(context, new Set([moduleURL]));\n } else {\n updatedResolvedRequestsOfContext.add(moduleURL);\n }\n })\n .finally(() => {\n const updatedOngoingRequestsOfContext = ongoingRequests.get(context);\n\n if (updatedOngoingRequestsOfContext !== undefined) {\n updatedOngoingRequestsOfContext.delete(moduleURL);\n }\n });\n\n return promise;\n };\n};\n","import { TGetValueForKeyFunction } from '../types';\n\nexport const getValueForKey: TGetValueForKeyFunction = (map, key) => {\n const value = map.get(key);\n\n if (value === undefined) {\n throw new Error('A value with the given key could not be found.');\n }\n\n return value;\n};\n","import { TPickElementFromSetFunction } from '../types';\n\nexport const pickElementFromSet: TPickElementFromSetFunction = (set, predicate) => {\n const matchingElements = Array.from(set).filter(predicate);\n\n if (matchingElements.length > 1) {\n throw Error('More than one element was found.');\n }\n\n if (matchingElements.length === 0) {\n throw Error('No element was found.');\n }\n\n const [matchingElement] = matchingElements;\n\n set.delete(matchingElement);\n\n return matchingElement;\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext, TPassiveAudioNodeInputConnection } from '../types';\nimport { getValueForKey } from './get-value-for-key';\nimport { pickElementFromSet } from './pick-element-from-set';\n\nexport const deletePassiveInputConnectionToAudioNode = (\n passiveInputs: WeakMap, Set>,\n source: IAudioNode,\n output: number,\n input: number\n) => {\n const passiveInputConnections = getValueForKey(passiveInputs, source);\n const matchingConnection = pickElementFromSet(\n passiveInputConnections,\n (passiveInputConnection) => passiveInputConnection[0] === output && passiveInputConnection[1] === input\n );\n\n if (passiveInputConnections.size === 0) {\n passiveInputs.delete(source);\n }\n\n return matchingConnection;\n};\n","import { EVENT_LISTENERS } from '../globals';\nimport { TGetEventListenersOfAudioNodeFunction } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getEventListenersOfAudioNode: TGetEventListenersOfAudioNodeFunction = (audioNode) => {\n return getValueForKey(EVENT_LISTENERS, audioNode);\n};\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\n\nexport const setInternalStateToActive = (audioNode: IAudioNode) => {\n if (ACTIVE_AUDIO_NODE_STORE.has(audioNode)) {\n throw new Error('The AudioNode is already stored.');\n }\n\n ACTIVE_AUDIO_NODE_STORE.add(audioNode);\n\n getEventListenersOfAudioNode(audioNode).forEach((eventListener) => eventListener(true));\n};\n","import { IAudioNode, IAudioWorkletNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isAudioWorkletNode = (audioNode: IAudioNode): audioNode is IAudioWorkletNode => {\n return 'port' in audioNode;\n};\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\n\nexport const setInternalStateToPassive = (audioNode: IAudioNode) => {\n if (!ACTIVE_AUDIO_NODE_STORE.has(audioNode)) {\n throw new Error('The AudioNode is not stored.');\n }\n\n ACTIVE_AUDIO_NODE_STORE.delete(audioNode);\n\n getEventListenersOfAudioNode(audioNode).forEach((eventListener) => eventListener(false));\n};\n","import { isAudioWorkletNode } from '../guards/audio-worklet-node';\nimport { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext } from '../types';\nimport { setInternalStateToPassive } from './set-internal-state-to-passive';\n\n// Set the internalState of the audioNode to 'passive' if it is not an AudioWorkletNode and if it has no 'active' input connections.\nexport const setInternalStateToPassiveWhenNecessary = (\n audioNode: IAudioNode,\n activeInputs: Set>[]\n) => {\n if (!isAudioWorkletNode(audioNode) && activeInputs.every((connections) => connections.size === 0)) {\n setInternalStateToPassive(audioNode);\n }\n};\n","import { IAnalyserNode, IAnalyserOptions } from '../interfaces';\nimport { TAnalyserNodeConstructorFactory, TAudioNodeRenderer, TContext, TNativeAnalyserNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n fftSize: 2048,\n maxDecibels: -30,\n minDecibels: -100,\n smoothingTimeConstant: 0.8\n} as const;\n\nexport const createAnalyserNodeConstructor: TAnalyserNodeConstructorFactory = (\n audionNodeConstructor,\n createAnalyserNodeRenderer,\n createIndexSizeError,\n createNativeAnalyserNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class AnalyserNode extends audionNodeConstructor implements IAnalyserNode {\n private _nativeAnalyserNode: TNativeAnalyserNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeAnalyserNode = createNativeAnalyserNode(nativeContext, mergedOptions);\n const analyserNodeRenderer = >(\n (isNativeOfflineAudioContext(nativeContext) ? createAnalyserNodeRenderer() : null)\n );\n\n super(context, false, nativeAnalyserNode, analyserNodeRenderer);\n\n this._nativeAnalyserNode = nativeAnalyserNode;\n }\n\n get fftSize(): number {\n return this._nativeAnalyserNode.fftSize;\n }\n\n set fftSize(value) {\n this._nativeAnalyserNode.fftSize = value;\n }\n\n get frequencyBinCount(): number {\n return this._nativeAnalyserNode.frequencyBinCount;\n }\n\n get maxDecibels(): number {\n return this._nativeAnalyserNode.maxDecibels;\n }\n\n set maxDecibels(value) {\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n const maxDecibels = this._nativeAnalyserNode.maxDecibels;\n\n this._nativeAnalyserNode.maxDecibels = value;\n\n if (!(value > this._nativeAnalyserNode.minDecibels)) {\n this._nativeAnalyserNode.maxDecibels = maxDecibels;\n\n throw createIndexSizeError();\n }\n }\n\n get minDecibels(): number {\n return this._nativeAnalyserNode.minDecibels;\n }\n\n set minDecibels(value) {\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n const minDecibels = this._nativeAnalyserNode.minDecibels;\n\n this._nativeAnalyserNode.minDecibels = value;\n\n if (!(this._nativeAnalyserNode.maxDecibels > value)) {\n this._nativeAnalyserNode.minDecibels = minDecibels;\n\n throw createIndexSizeError();\n }\n }\n\n get smoothingTimeConstant(): number {\n return this._nativeAnalyserNode.smoothingTimeConstant;\n }\n\n set smoothingTimeConstant(value) {\n this._nativeAnalyserNode.smoothingTimeConstant = value;\n }\n\n public getByteFrequencyData(array: Uint8Array): void {\n this._nativeAnalyserNode.getByteFrequencyData(array);\n }\n\n public getByteTimeDomainData(array: Uint8Array): void {\n this._nativeAnalyserNode.getByteTimeDomainData(array);\n }\n\n public getFloatFrequencyData(array: Float32Array): void {\n this._nativeAnalyserNode.getFloatFrequencyData(array);\n }\n\n public getFloatTimeDomainData(array: Float32Array): void {\n this._nativeAnalyserNode.getFloatTimeDomainData(array);\n }\n };\n};\n","import { TNativeAudioNode, TNativeContext } from '../types';\n\nexport const isOwnedByContext = (nativeAudioNode: TNativeAudioNode, nativeContext: TNativeContext): boolean => {\n return nativeAudioNode.context === nativeContext;\n};\n","import { TNativeAudioBuffer } from '../types';\n\nexport const testAudioBufferCopyChannelMethodsOutOfBoundsSupport = (nativeAudioBuffer: TNativeAudioBuffer): boolean => {\n try {\n nativeAudioBuffer.copyToChannel(new Float32Array(1), 0, -1);\n } catch {\n return false;\n }\n\n return true;\n};\n","import { TIndexSizeErrorFactory } from '../types';\n\nexport const createIndexSizeError: TIndexSizeErrorFactory = () => new DOMException('', 'IndexSizeError');\n","import { createIndexSizeError } from '../factories/index-size-error';\nimport { TNativeAudioBuffer } from '../types';\n\nexport const wrapAudioBufferGetChannelDataMethod = (audioBuffer: TNativeAudioBuffer): void => {\n audioBuffer.getChannelData = ((getChannelData) => {\n return (channel: number) => {\n try {\n return getChannelData.call(audioBuffer, channel);\n } catch (err) {\n if (err.code === 12) {\n throw createIndexSizeError();\n }\n\n throw err;\n }\n };\n })(audioBuffer.getChannelData);\n};\n","import { testAudioBufferCopyChannelMethodsOutOfBoundsSupport } from '../helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support';\nimport { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nimport { IAudioBuffer, IAudioBufferOptions } from '../interfaces';\nimport { TAudioBufferConstructorFactory, TNativeOfflineAudioContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n} as const;\n\nexport const createAudioBufferConstructor: TAudioBufferConstructorFactory = (\n audioBufferStore,\n cacheTestResult,\n createNotSupportedError,\n nativeAudioBufferConstructor,\n nativeOfflineAudioContextConstructor,\n testNativeAudioBufferConstructorSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n) => {\n let nativeOfflineAudioContext: null | TNativeOfflineAudioContext = null;\n\n return class AudioBuffer implements IAudioBuffer {\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public copyFromChannel!: (destination: Float32Array, channelNumber: number, bufferOffset?: number) => void;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public copyToChannel!: (source: Float32Array, channelNumber: number, bufferOffset?: number) => void;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public duration!: number;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public getChannelData!: (channel: number) => Float32Array;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public length!: number;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public numberOfChannels!: number;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public sampleRate!: number;\n\n constructor(options: IAudioBufferOptions) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n\n if (nativeOfflineAudioContext === null) {\n nativeOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n }\n\n /*\n * Bug #99: Firefox does not throw a NotSupportedError when the numberOfChannels is zero. But it only does it when using the\n * factory function. But since Firefox also supports the constructor everything should be fine.\n */\n const audioBuffer =\n nativeAudioBufferConstructor !== null &&\n cacheTestResult(testNativeAudioBufferConstructorSupport, testNativeAudioBufferConstructorSupport)\n ? new nativeAudioBufferConstructor({ length, numberOfChannels, sampleRate })\n : nativeOfflineAudioContext.createBuffer(numberOfChannels, length, sampleRate);\n\n // Bug #99: Safari does not throw an error when the numberOfChannels is zero.\n if (audioBuffer.numberOfChannels === 0) {\n throw createNotSupportedError();\n }\n\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n } else if (\n !cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () =>\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer)\n )\n ) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n /*\n * This does violate all good pratices but it is necessary to allow this AudioBuffer to be used with native\n * (Offline)AudioContexts.\n */\n return audioBuffer;\n }\n\n public static [Symbol.hasInstance](instance: unknown): boolean {\n return (\n (instance !== null && typeof instance === 'object' && Object.getPrototypeOf(instance) === AudioBuffer.prototype) ||\n audioBufferStore.has(instance)\n );\n }\n };\n};\n","export const MOST_NEGATIVE_SINGLE_FLOAT = -3.4028234663852886e38;\n\nexport const MOST_POSITIVE_SINGLE_FLOAT = -MOST_NEGATIVE_SINGLE_FLOAT;\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { TIsActiveAudioNodeFunction } from '../types';\n\nexport const isActiveAudioNode: TIsActiveAudioNodeFunction = (audioNode) => ACTIVE_AUDIO_NODE_STORE.has(audioNode);\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nimport { IAudioBufferSourceNode, IAudioBufferSourceOptions, IAudioParam, IAudioScheduledSourceNodeEventMap } from '../interfaces';\nimport {\n TAnyAudioBuffer,\n TAudioBufferSourceNodeConstructorFactory,\n TAudioBufferSourceNodeRenderer,\n TContext,\n TEventHandler,\n TNativeAudioBufferSourceNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n // Bug #149: Safari does not yet support the detune AudioParam.\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n} as const;\n\nexport const createAudioBufferSourceNodeConstructor: TAudioBufferSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioBufferSourceNodeRenderer,\n createAudioParam,\n createInvalidStateError,\n createNativeAudioBufferSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n) => {\n return class AudioBufferSourceNode\n extends audioNodeConstructor\n implements IAudioBufferSourceNode\n {\n private _audioBufferSourceNodeRenderer: TAudioBufferSourceNodeRenderer;\n\n private _isBufferNullified: boolean;\n\n private _isBufferSet: boolean;\n\n private _nativeAudioBufferSourceNode: TNativeAudioBufferSourceNode;\n\n private _onended: null | TEventHandler;\n\n private _playbackRate: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const audioBufferSourceNodeRenderer = >(\n (isOffline ? createAudioBufferSourceNodeRenderer() : null)\n );\n\n super(context, false, nativeAudioBufferSourceNode, audioBufferSourceNodeRenderer);\n\n this._audioBufferSourceNodeRenderer = audioBufferSourceNodeRenderer;\n this._isBufferNullified = false;\n this._isBufferSet = mergedOptions.buffer !== null;\n this._nativeAudioBufferSourceNode = nativeAudioBufferSourceNode;\n this._onended = null;\n // Bug #73: Safari does not export the correct values for maxValue and minValue.\n this._playbackRate = createAudioParam(\n this,\n isOffline,\n nativeAudioBufferSourceNode.playbackRate,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n }\n\n get buffer(): null | TAnyAudioBuffer {\n if (this._isBufferNullified) {\n return null;\n }\n\n return this._nativeAudioBufferSourceNode.buffer;\n }\n\n set buffer(value) {\n this._nativeAudioBufferSourceNode.buffer = value;\n\n // Bug #72: Only Chrome & Edge do not allow to reassign the buffer yet.\n if (value !== null) {\n if (this._isBufferSet) {\n throw createInvalidStateError();\n }\n\n this._isBufferSet = true;\n }\n }\n\n get loop(): boolean {\n return this._nativeAudioBufferSourceNode.loop;\n }\n\n set loop(value) {\n this._nativeAudioBufferSourceNode.loop = value;\n }\n\n get loopEnd(): number {\n return this._nativeAudioBufferSourceNode.loopEnd;\n }\n\n set loopEnd(value) {\n this._nativeAudioBufferSourceNode.loopEnd = value;\n }\n\n get loopStart(): number {\n return this._nativeAudioBufferSourceNode.loopStart;\n }\n\n set loopStart(value) {\n this._nativeAudioBufferSourceNode.loopStart = value;\n }\n\n get onended(): null | TEventHandler {\n return this._onended;\n }\n\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeAudioBufferSourceNode.onended = wrappedListener;\n\n const nativeOnEnded = this._nativeAudioBufferSourceNode.onended;\n\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n\n get playbackRate(): IAudioParam {\n return this._playbackRate;\n }\n\n public start(when = 0, offset = 0, duration?: number): void {\n this._nativeAudioBufferSourceNode.start(when, offset, duration);\n\n if (this._audioBufferSourceNodeRenderer !== null) {\n this._audioBufferSourceNodeRenderer.start = duration === undefined ? [when, offset] : [when, offset, duration];\n }\n\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n\n const resetInternalStateToPassive = () => {\n this._nativeAudioBufferSourceNode.removeEventListener('ended', resetInternalStateToPassive);\n\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n\n this._nativeAudioBufferSourceNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n\n public stop(when = 0): void {\n this._nativeAudioBufferSourceNode.stop(when);\n\n if (this._audioBufferSourceNodeRenderer !== null) {\n this._audioBufferSourceNodeRenderer.stop = when;\n }\n }\n };\n};\n","import { AUDIO_NODE_CONNECTIONS_STORE } from '../globals';\nimport { IAudioNode } from '../interfaces';\nimport { TAudioNodeConnections, TContext, TGetAudioNodeConnectionsFunction } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getAudioNodeConnections: TGetAudioNodeConnectionsFunction = (\n audioNode: IAudioNode\n): TAudioNodeConnections => {\n return >getValueForKey(AUDIO_NODE_CONNECTIONS_STORE, audioNode);\n};\n","import { AUDIO_PARAM_CONNECTIONS_STORE } from '../globals';\nimport { IAudioParam } from '../interfaces';\nimport { TAudioParamConnections, TContext, TGetAudioParamConnectionsFunction } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getAudioParamConnections: TGetAudioParamConnectionsFunction = (\n audioParam: IAudioParam\n): TAudioParamConnections => {\n return >getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE, audioParam);\n};\n","import { isAudioBufferSourceNode } from '../guards/audio-buffer-source-node';\nimport { isAudioWorkletNode } from '../guards/audio-worklet-node';\nimport { isBiquadFilterNode } from '../guards/biquad-filter-node';\nimport { isConstantSourceNode } from '../guards/constant-source-node';\nimport { isGainNode } from '../guards/gain-node';\nimport { isOscillatorNode } from '../guards/oscillator-node';\nimport { isStereoPannerNode } from '../guards/stereo-panner-node';\nimport { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { getAudioNodeConnections } from './get-audio-node-connections';\nimport { getAudioParamConnections } from './get-audio-param-connections';\nimport { isActiveAudioNode } from './is-active-audio-node';\nimport { setInternalStateToPassive } from './set-internal-state-to-passive';\n\nexport const deactivateActiveAudioNodeInputConnections = (\n audioNode: IAudioNode,\n trace: readonly IAudioNode[]\n) => {\n const { activeInputs } = getAudioNodeConnections(audioNode);\n\n activeInputs.forEach((connections) =>\n connections.forEach(([source]) => {\n if (!trace.includes(audioNode)) {\n deactivateActiveAudioNodeInputConnections(source, [...trace, audioNode]);\n }\n })\n );\n\n const audioParams = isAudioBufferSourceNode(audioNode)\n ? [\n // Bug #149: Safari does not yet support the detune AudioParam.\n audioNode.playbackRate\n ]\n : isAudioWorkletNode(audioNode)\n ? Array.from(audioNode.parameters.values())\n : isBiquadFilterNode(audioNode)\n ? [audioNode.Q, audioNode.detune, audioNode.frequency, audioNode.gain]\n : isConstantSourceNode(audioNode)\n ? [audioNode.offset]\n : isGainNode(audioNode)\n ? [audioNode.gain]\n : isOscillatorNode(audioNode)\n ? [audioNode.detune, audioNode.frequency]\n : isStereoPannerNode(audioNode)\n ? [audioNode.pan]\n : [];\n\n for (const audioParam of audioParams) {\n const audioParamConnections = getAudioParamConnections(audioParam);\n\n if (audioParamConnections !== undefined) {\n audioParamConnections.activeInputs.forEach(([source]) => deactivateActiveAudioNodeInputConnections(source, trace));\n }\n }\n\n if (isActiveAudioNode(audioNode)) {\n setInternalStateToPassive(audioNode);\n }\n};\n","import { IAudioBufferSourceNode, IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isAudioBufferSourceNode = (audioNode: IAudioNode): audioNode is IAudioBufferSourceNode => {\n return 'playbackRate' in audioNode;\n};\n","import { IAudioNode, IBiquadFilterNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isBiquadFilterNode = (audioNode: IAudioNode): audioNode is IBiquadFilterNode => {\n return 'frequency' in audioNode && 'gain' in audioNode;\n};\n","import { IAudioNode, IConstantSourceNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isConstantSourceNode = (audioNode: IAudioNode): audioNode is IConstantSourceNode => {\n return 'offset' in audioNode;\n};\n","import { IAudioNode, IGainNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isGainNode = (audioNode: IAudioNode): audioNode is IGainNode => {\n return !('frequency' in audioNode) && 'gain' in audioNode;\n};\n","import { IAudioNode, IOscillatorNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isOscillatorNode = (audioNode: IAudioNode): audioNode is IOscillatorNode => {\n return 'detune' in audioNode && 'frequency' in audioNode;\n};\n","import { IAudioNode, IStereoPannerNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isStereoPannerNode = (audioNode: IAudioNode): audioNode is IStereoPannerNode => {\n return 'pan' in audioNode;\n};\n","import { IAudioDestinationNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { deactivateActiveAudioNodeInputConnections } from './deactivate-active-audio-node-input-connections';\n\nexport const deactivateAudioGraph = (context: T): void => {\n deactivateActiveAudioNodeInputConnections(>context.destination, []);\n};\n","import { IAudioContextOptions } from '../interfaces';\n\nexport const isValidLatencyHint = (latencyHint: IAudioContextOptions['latencyHint']) => {\n return (\n latencyHint === undefined ||\n typeof latencyHint === 'number' ||\n (typeof latencyHint === 'string' && (latencyHint === 'balanced' || latencyHint === 'interactive' || latencyHint === 'playback'))\n );\n};\n","import { IAudioNode, IAudioParam } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isAudioNode = (\n audioNodeOrAudioParam: IAudioNode | IAudioParam\n): audioNodeOrAudioParam is IAudioNode => {\n return 'context' in audioNodeOrAudioParam;\n};\n","import { TAudioNodeOutputConnection, TContext, TOutputConnection } from '../types';\nimport { isAudioNode } from './audio-node';\n\nexport const isAudioNodeOutputConnection = (\n outputConnection: TOutputConnection\n): outputConnection is TAudioNodeOutputConnection => {\n return isAudioNode(outputConnection[0]);\n};\n","import { TInsertElementInSetFunction } from '../types';\n\nexport const insertElementInSet: TInsertElementInSetFunction = (set, element, predicate, ignoreDuplicates) => {\n for (const lmnt of set) {\n if (predicate(lmnt)) {\n if (ignoreDuplicates) {\n return false;\n }\n\n throw Error('The set contains at least one similar element.');\n }\n }\n\n set.add(element);\n\n return true;\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext, TPassiveAudioParamInputConnection } from '../types';\nimport { insertElementInSet } from './insert-element-in-set';\n\nexport const addActiveInputConnectionToAudioParam = (\n activeInputs: Set>,\n source: IAudioNode,\n [output, eventListener]: TPassiveAudioParamInputConnection,\n ignoreDuplicates: boolean\n) => {\n insertElementInSet(\n activeInputs,\n [source, output, eventListener],\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output,\n ignoreDuplicates\n );\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext, TPassiveAudioParamInputConnection } from '../types';\nimport { insertElementInSet } from './insert-element-in-set';\n\nexport const addPassiveInputConnectionToAudioParam = (\n passiveInputs: WeakMap, Set>,\n [source, output, eventListener]: TActiveInputConnection,\n ignoreDuplicates: boolean\n) => {\n const passiveInputConnections = passiveInputs.get(source);\n\n if (passiveInputConnections === undefined) {\n passiveInputs.set(source, new Set([[output, eventListener]]));\n } else {\n insertElementInSet(\n passiveInputConnections,\n [output, eventListener],\n (passiveInputConnection) => passiveInputConnection[0] === output,\n ignoreDuplicates\n );\n }\n};\n","import { INativeAudioNodeFaker } from '../interfaces';\nimport { TNativeAudioNode } from '../types';\n\nexport const isNativeAudioNodeFaker = (\n nativeAudioNodeOrNativeAudioNodeFaker: TNativeAudioNode | INativeAudioNodeFaker\n): nativeAudioNodeOrNativeAudioNodeFaker is INativeAudioNodeFaker => {\n return 'inputs' in nativeAudioNodeOrNativeAudioNodeFaker;\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { INativeAudioNodeFaker } from '../interfaces';\nimport { TConnectNativeAudioNodeToNativeAudioNodeFunction, TNativeAudioNode } from '../types';\n\nexport const connectNativeAudioNodeToNativeAudioNode: TConnectNativeAudioNodeToNativeAudioNodeFunction = (\n nativeSourceAudioNode: INativeAudioNodeFaker | TNativeAudioNode,\n nativeDestinationAudioNode: INativeAudioNodeFaker | TNativeAudioNode,\n output: number,\n input: number\n): [TNativeAudioNode, number, number] => {\n if (isNativeAudioNodeFaker(nativeDestinationAudioNode)) {\n const fakeNativeDestinationAudioNode = nativeDestinationAudioNode.inputs[input];\n\n nativeSourceAudioNode.connect(fakeNativeDestinationAudioNode, output, 0);\n\n return [fakeNativeDestinationAudioNode, output, 0];\n }\n\n nativeSourceAudioNode.connect(nativeDestinationAudioNode, output, input);\n\n return [nativeDestinationAudioNode, output, input];\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext } from '../types';\n\nexport const deleteActiveInputConnection = (\n activeInputConnections: Set>,\n source: IAudioNode,\n output: number\n): null | TActiveInputConnection => {\n for (const activeInputConnection of activeInputConnections) {\n if (activeInputConnection[0] === source && activeInputConnection[1] === output) {\n activeInputConnections.delete(activeInputConnection);\n\n return activeInputConnection;\n }\n }\n\n return null;\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext, TInternalStateEventListener } from '../types';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\n\nexport const deleteEventListenerOfAudioNode = (\n audioNode: IAudioNode,\n eventListener: TInternalStateEventListener\n) => {\n const eventListeners = getEventListenersOfAudioNode(audioNode);\n\n if (!eventListeners.delete(eventListener)) {\n throw new Error('Missing the expected event listener.');\n }\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext, TPassiveAudioParamInputConnection } from '../types';\nimport { getValueForKey } from './get-value-for-key';\nimport { pickElementFromSet } from './pick-element-from-set';\n\nexport const deletePassiveInputConnectionToAudioParam = (\n passiveInputs: WeakMap, Set>,\n source: IAudioNode,\n output: number\n) => {\n const passiveInputConnections = getValueForKey(passiveInputs, source);\n const matchingConnection = pickElementFromSet(\n passiveInputConnections,\n (passiveInputConnection) => passiveInputConnection[0] === output\n );\n\n if (passiveInputConnections.size === 0) {\n passiveInputs.delete(source);\n }\n\n return matchingConnection;\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { TDisconnectNativeAudioNodeFromNativeAudioNodeFunction } from '../types';\n\nexport const disconnectNativeAudioNodeFromNativeAudioNode: TDisconnectNativeAudioNodeFromNativeAudioNodeFunction = (\n nativeSourceAudioNode,\n nativeDestinationAudioNode,\n output,\n input\n) => {\n if (isNativeAudioNodeFaker(nativeDestinationAudioNode)) {\n nativeSourceAudioNode.disconnect(nativeDestinationAudioNode.inputs[input], output, 0);\n } else {\n nativeSourceAudioNode.disconnect(nativeDestinationAudioNode, output, input);\n }\n};\n","import { AUDIO_NODE_STORE } from '../globals';\nimport { IAudioNode, INativeAudioNodeFaker } from '../interfaces';\nimport { TContext, TGetNativeAudioNodeFunction, TNativeAudioNode } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getNativeAudioNode: TGetNativeAudioNodeFunction = (\n audioNode: IAudioNode\n): U => {\n return getValueForKey(AUDIO_NODE_STORE, audioNode);\n};\n","import { AUDIO_PARAM_STORE } from '../globals';\nimport { IAudioParam } from '../interfaces';\nimport { TNativeAudioParam } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getNativeAudioParam = (audioParam: IAudioParam): TNativeAudioParam => {\n return getValueForKey(AUDIO_PARAM_STORE, audioParam);\n};\n","import { CYCLE_COUNTERS } from '../globals';\nimport { TIsPartOfACycleFunction } from '../types';\n\nexport const isPartOfACycle: TIsPartOfACycleFunction = (audioNode) => {\n return CYCLE_COUNTERS.has(audioNode);\n};\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { TIsPassiveAudioNodeFunction } from '../types';\n\nexport const isPassiveAudioNode: TIsPassiveAudioNodeFunction = (audioNode) => {\n return !ACTIVE_AUDIO_NODE_STORE.has(audioNode);\n};\n","import { TNativeAudioContext, TNativeAudioWorkletNodeConstructor } from '../types';\n\nexport const testAudioNodeDisconnectMethodSupport = (\n nativeAudioContext: TNativeAudioContext,\n nativeAudioWorkletNodeConstructor: null | TNativeAudioWorkletNodeConstructor\n): Promise => {\n return new Promise((resolve) => {\n /*\n * This bug existed in Safari up until v14.0.2. Since AudioWorklets were not supported in Safari until v14.1 the presence of the\n * constructor for an AudioWorkletNode can be used here to skip the test.\n */\n if (nativeAudioWorkletNodeConstructor !== null) {\n resolve(true);\n } else {\n const analyzer = nativeAudioContext.createScriptProcessor(256, 1, 1); // tslint:disable-line deprecation\n const dummy = nativeAudioContext.createGain();\n // Bug #95: Safari does not play one sample buffers.\n const ones = nativeAudioContext.createBuffer(1, 2, 44100);\n const channelData = ones.getChannelData(0);\n\n channelData[0] = 1;\n channelData[1] = 1;\n\n const source = nativeAudioContext.createBufferSource();\n\n source.buffer = ones;\n source.loop = true;\n\n source.connect(analyzer).connect(nativeAudioContext.destination);\n source.connect(dummy);\n source.disconnect(dummy);\n\n // tslint:disable-next-line:deprecation\n analyzer.onaudioprocess = (event) => {\n const chnnlDt = event.inputBuffer.getChannelData(0); // tslint:disable-line deprecation\n\n if (Array.prototype.some.call(chnnlDt, (sample: number) => sample === 1)) {\n resolve(true);\n } else {\n resolve(false);\n }\n\n source.stop();\n\n analyzer.onaudioprocess = null; // tslint:disable-line:deprecation\n\n source.disconnect(analyzer);\n analyzer.disconnect(nativeAudioContext.destination);\n };\n\n source.start();\n }\n });\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const visitEachAudioNodeOnce = (\n cycles: IAudioNode[][],\n visitor: (audioNode: IAudioNode, count: number) => void\n): void => {\n const counts = new Map, number>();\n\n for (const cycle of cycles) {\n for (const audioNode of cycle) {\n const count = counts.get(audioNode);\n\n counts.set(audioNode, count === undefined ? 1 : count + 1);\n }\n }\n\n counts.forEach((count, audioNode) => visitor(audioNode, count));\n};\n","import { TNativeAudioNode, TNativeAudioParam } from '../types';\n\nexport const isNativeAudioNode = (\n nativeAudioNodeOrAudioParam: TNativeAudioNode | TNativeAudioParam\n): nativeAudioNodeOrAudioParam is TNativeAudioNode => {\n return 'context' in nativeAudioNodeOrAudioParam;\n};\n","import { isNativeAudioNode } from '../guards/native-audio-node';\nimport { TNativeAudioNode, TNativeAudioParam } from '../types';\n\nexport const wrapAudioNodeDisconnectMethod = (nativeAudioNode: TNativeAudioNode): void => {\n const connections = new Map();\n\n nativeAudioNode.connect = ((connect) => {\n // tslint:disable-next-line:invalid-void no-inferrable-types\n return (destination: TNativeAudioNode | TNativeAudioParam, output = 0, input: number = 0): void | TNativeAudioNode => {\n const returnValue = isNativeAudioNode(destination) ? connect(destination, output, input) : connect(destination, output);\n\n // Save the new connection only if the calls to connect above didn't throw an error.\n const connectionsToDestination = connections.get(destination);\n\n if (connectionsToDestination === undefined) {\n connections.set(destination, [{ input, output }]);\n } else {\n if (connectionsToDestination.every((connection) => connection.input !== input || connection.output !== output)) {\n connectionsToDestination.push({ input, output });\n }\n }\n\n return returnValue;\n };\n })(nativeAudioNode.connect.bind(nativeAudioNode));\n\n nativeAudioNode.disconnect = ((disconnect) => {\n return (destinationOrOutput?: number | TNativeAudioNode | TNativeAudioParam, output?: number, input?: number): void => {\n disconnect.apply(nativeAudioNode);\n\n if (destinationOrOutput === undefined) {\n connections.clear();\n } else if (typeof destinationOrOutput === 'number') {\n for (const [destination, connectionsToDestination] of connections) {\n const filteredConnections = connectionsToDestination.filter((connection) => connection.output !== destinationOrOutput);\n\n if (filteredConnections.length === 0) {\n connections.delete(destination);\n } else {\n connections.set(destination, filteredConnections);\n }\n }\n } else if (connections.has(destinationOrOutput)) {\n if (output === undefined) {\n connections.delete(destinationOrOutput);\n } else {\n const connectionsToDestination = connections.get(destinationOrOutput);\n\n if (connectionsToDestination !== undefined) {\n const filteredConnections = connectionsToDestination.filter(\n (connection) => connection.output !== output && (connection.input !== input || input === undefined)\n );\n\n if (filteredConnections.length === 0) {\n connections.delete(destinationOrOutput);\n } else {\n connections.set(destinationOrOutput, filteredConnections);\n }\n }\n }\n }\n\n for (const [destination, connectionsToDestination] of connections) {\n connectionsToDestination.forEach((connection) => {\n if (isNativeAudioNode(destination)) {\n nativeAudioNode.connect(destination, connection.output, connection.input);\n } else {\n nativeAudioNode.connect(destination, connection.output);\n }\n });\n }\n };\n })(nativeAudioNode.disconnect);\n};\n","import { AUDIO_NODE_STORE, EVENT_LISTENERS } from '../globals';\nimport { isAudioNode } from '../guards/audio-node';\nimport { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { addActiveInputConnectionToAudioParam } from '../helpers/add-active-input-connection-to-audio-param';\nimport { addPassiveInputConnectionToAudioParam } from '../helpers/add-passive-input-connection-to-audio-param';\nimport { connectNativeAudioNodeToNativeAudioNode } from '../helpers/connect-native-audio-node-to-native-audio-node';\nimport { deleteActiveInputConnection } from '../helpers/delete-active-input-connection';\nimport { deleteActiveInputConnectionToAudioParam } from '../helpers/delete-active-input-connection-to-audio-param';\nimport { deleteEventListenerOfAudioNode } from '../helpers/delete-event-listeners-of-audio-node';\nimport { deletePassiveInputConnectionToAudioNode } from '../helpers/delete-passive-input-connection-to-audio-node';\nimport { deletePassiveInputConnectionToAudioParam } from '../helpers/delete-passive-input-connection-to-audio-param';\nimport { disconnectNativeAudioNodeFromNativeAudioNode } from '../helpers/disconnect-native-audio-node-from-native-audio-node';\nimport { getAudioNodeConnections } from '../helpers/get-audio-node-connections';\nimport { getAudioParamConnections } from '../helpers/get-audio-param-connections';\nimport { getEventListenersOfAudioNode } from '../helpers/get-event-listeners-of-audio-node';\nimport { getNativeAudioNode } from '../helpers/get-native-audio-node';\nimport { getNativeAudioParam } from '../helpers/get-native-audio-param';\nimport { insertElementInSet } from '../helpers/insert-element-in-set';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { isPartOfACycle } from '../helpers/is-part-of-a-cycle';\nimport { isPassiveAudioNode } from '../helpers/is-passive-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassiveWhenNecessary } from '../helpers/set-internal-state-to-passive-when-necessary';\nimport { testAudioNodeDisconnectMethodSupport } from '../helpers/test-audio-node-disconnect-method-support';\nimport { visitEachAudioNodeOnce } from '../helpers/visit-each-audio-node-once';\nimport { wrapAudioNodeDisconnectMethod } from '../helpers/wrap-audio-node-disconnect-method';\nimport {\n IAudioNode,\n IAudioNodeRenderer,\n IAudioParam,\n IMinimalOfflineAudioContext,\n INativeAudioNodeFaker,\n IOfflineAudioContext\n} from '../interfaces';\nimport {\n TAudioNodeConstructorFactory,\n TChannelCountMode,\n TChannelInterpretation,\n TContext,\n TInternalStateEventListener,\n TNativeAudioNode,\n TNativeAudioParam\n} from '../types';\n\nconst addConnectionToAudioParamOfAudioContext = (\n source: IAudioNode,\n destination: IAudioParam,\n output: number,\n isOffline: boolean\n): boolean => {\n const { activeInputs, passiveInputs } = getAudioParamConnections(destination);\n const { outputs } = getAudioNodeConnections(source);\n const eventListeners = getEventListenersOfAudioNode(source);\n\n const eventListener: TInternalStateEventListener = (isActive) => {\n const nativeAudioNode = getNativeAudioNode(source);\n const nativeAudioParam = getNativeAudioParam(destination);\n\n if (isActive) {\n const partialConnection = deletePassiveInputConnectionToAudioParam(passiveInputs, source, output);\n\n addActiveInputConnectionToAudioParam(activeInputs, source, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n nativeAudioNode.connect(nativeAudioParam, output);\n }\n } else {\n const partialConnection = deleteActiveInputConnectionToAudioParam(activeInputs, source, output);\n\n addPassiveInputConnectionToAudioParam(passiveInputs, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n nativeAudioNode.disconnect(nativeAudioParam, output);\n }\n }\n };\n\n if (\n insertElementInSet(\n outputs,\n [destination, output],\n (outputConnection) => outputConnection[0] === destination && outputConnection[1] === output,\n true\n )\n ) {\n eventListeners.add(eventListener);\n\n if (isActiveAudioNode(source)) {\n addActiveInputConnectionToAudioParam(activeInputs, source, [output, eventListener], true);\n } else {\n addPassiveInputConnectionToAudioParam(passiveInputs, [source, output, eventListener], true);\n }\n\n return true;\n }\n\n return false;\n};\n\nconst deleteInputConnectionOfAudioNode = (\n source: IAudioNode,\n destination: IAudioNode,\n output: number,\n input: number\n): [null | TInternalStateEventListener, boolean] => {\n const { activeInputs, passiveInputs } = getAudioNodeConnections(destination);\n\n const activeInputConnection = deleteActiveInputConnection(activeInputs[input], source, output);\n\n if (activeInputConnection === null) {\n const passiveInputConnection = deletePassiveInputConnectionToAudioNode(passiveInputs, source, output, input);\n\n return [passiveInputConnection[2], false];\n }\n\n return [activeInputConnection[2], true];\n};\n\nconst deleteInputConnectionOfAudioParam = (\n source: IAudioNode,\n destination: IAudioParam,\n output: number\n): [null | TInternalStateEventListener, boolean] => {\n const { activeInputs, passiveInputs } = getAudioParamConnections(destination);\n\n const activeInputConnection = deleteActiveInputConnection(activeInputs, source, output);\n\n if (activeInputConnection === null) {\n const passiveInputConnection = deletePassiveInputConnectionToAudioParam(passiveInputs, source, output);\n\n return [passiveInputConnection[1], false];\n }\n\n return [activeInputConnection[2], true];\n};\n\nconst deleteInputsOfAudioNode = (\n source: IAudioNode,\n isOffline: boolean,\n destination: IAudioNode,\n output: number,\n input: number\n) => {\n const [listener, isActive] = deleteInputConnectionOfAudioNode(source, destination, output, input);\n\n if (listener !== null) {\n deleteEventListenerOfAudioNode(source, listener);\n\n if (isActive && !isOffline && !isPartOfACycle(source)) {\n disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(source), getNativeAudioNode(destination), output, input);\n }\n }\n\n if (isActiveAudioNode(destination)) {\n const { activeInputs } = getAudioNodeConnections(destination);\n\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n};\n\nconst deleteInputsOfAudioParam = (\n source: IAudioNode,\n isOffline: boolean,\n destination: IAudioParam,\n output: number\n) => {\n const [listener, isActive] = deleteInputConnectionOfAudioParam(source, destination, output);\n\n if (listener !== null) {\n deleteEventListenerOfAudioNode(source, listener);\n\n if (isActive && !isOffline && !isPartOfACycle(source)) {\n getNativeAudioNode(source).disconnect(getNativeAudioParam(destination), output);\n }\n }\n};\n\nconst deleteAnyConnection = (source: IAudioNode, isOffline: boolean): (IAudioNode | IAudioParam)[] => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n const destinations = [];\n\n for (const outputConnection of audioNodeConnectionsOfSource.outputs) {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n } else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n\n destinations.push(outputConnection[0]);\n }\n\n audioNodeConnectionsOfSource.outputs.clear();\n\n return destinations;\n};\n\nconst deleteConnectionAtOutput = (\n source: IAudioNode,\n isOffline: boolean,\n output: number\n): (IAudioNode | IAudioParam)[] => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n const destinations = [];\n\n for (const outputConnection of audioNodeConnectionsOfSource.outputs) {\n if (outputConnection[1] === output) {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n } else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n\n destinations.push(outputConnection[0]);\n audioNodeConnectionsOfSource.outputs.delete(outputConnection);\n }\n }\n\n return destinations;\n};\n\nconst deleteConnectionToDestination = (\n source: IAudioNode,\n isOffline: boolean,\n destination: IAudioNode | IAudioParam,\n output?: number,\n input?: number\n): (IAudioNode | IAudioParam)[] => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n\n return Array.from(audioNodeConnectionsOfSource.outputs)\n .filter(\n (outputConnection) =>\n outputConnection[0] === destination &&\n (output === undefined || outputConnection[1] === output) &&\n (input === undefined || outputConnection[2] === input)\n )\n .map((outputConnection) => {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n } else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n\n audioNodeConnectionsOfSource.outputs.delete(outputConnection);\n\n return outputConnection[0];\n });\n};\n\nexport const createAudioNodeConstructor: TAudioNodeConstructorFactory = (\n addAudioNodeConnections,\n addConnectionToAudioNode,\n cacheTestResult,\n createIncrementCycleCounter,\n createIndexSizeError,\n createInvalidAccessError,\n createNotSupportedError,\n decrementCycleCounter,\n detectCycles,\n eventTargetConstructor,\n getNativeContext,\n isNativeAudioContext,\n isNativeAudioNode,\n isNativeAudioParam,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor\n) => {\n return class AudioNode = {}>\n extends eventTargetConstructor\n implements IAudioNode\n {\n private _context: T;\n\n private _nativeAudioNode: INativeAudioNodeFaker | TNativeAudioNode;\n\n constructor(\n context: T,\n isActive: boolean,\n nativeAudioNode: INativeAudioNodeFaker | TNativeAudioNode,\n audioNodeRenderer: T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? IAudioNodeRenderer> : null\n ) {\n super(nativeAudioNode);\n\n this._context = context;\n this._nativeAudioNode = nativeAudioNode;\n\n const nativeContext = getNativeContext(context);\n\n // Bug #12: Safari does not support to disconnect a specific destination.\n if (\n isNativeAudioContext(nativeContext) &&\n true !==\n cacheTestResult(testAudioNodeDisconnectMethodSupport, () => {\n return testAudioNodeDisconnectMethodSupport(nativeContext, nativeAudioWorkletNodeConstructor);\n })\n ) {\n wrapAudioNodeDisconnectMethod(nativeAudioNode);\n }\n\n AUDIO_NODE_STORE.set(this, nativeAudioNode);\n EVENT_LISTENERS.set(this, new Set());\n\n if (context.state !== 'closed' && isActive) {\n setInternalStateToActive(this);\n }\n\n addAudioNodeConnections(this, audioNodeRenderer, nativeAudioNode);\n }\n\n get channelCount(): number {\n return this._nativeAudioNode.channelCount;\n }\n\n set channelCount(value) {\n this._nativeAudioNode.channelCount = value;\n }\n\n get channelCountMode(): TChannelCountMode {\n return this._nativeAudioNode.channelCountMode;\n }\n\n set channelCountMode(value) {\n this._nativeAudioNode.channelCountMode = value;\n }\n\n get channelInterpretation(): TChannelInterpretation {\n return this._nativeAudioNode.channelInterpretation;\n }\n\n set channelInterpretation(value) {\n this._nativeAudioNode.channelInterpretation = value;\n }\n\n get context(): T {\n return this._context;\n }\n\n get numberOfInputs(): number {\n return this._nativeAudioNode.numberOfInputs;\n }\n\n get numberOfOutputs(): number {\n return this._nativeAudioNode.numberOfOutputs;\n }\n\n public connect>(destinationNode: V, output?: number, input?: number): V;\n public connect(destinationParam: IAudioParam, output?: number): void;\n // tslint:disable-next-line:invalid-void\n public connect>(destination: V | IAudioParam, output = 0, input = 0): void | V {\n // Bug #174: Safari does expose a wrong numberOfOutputs for MediaStreamAudioDestinationNodes.\n if (output < 0 || output >= this._nativeAudioNode.numberOfOutputs) {\n throw createIndexSizeError();\n }\n\n const nativeContext = getNativeContext(this._context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n if (isNativeAudioNode(destination) || isNativeAudioParam(destination)) {\n throw createInvalidAccessError();\n }\n\n if (isAudioNode(destination)) {\n const nativeDestinationAudioNode = getNativeAudioNode(destination);\n\n try {\n const connection = connectNativeAudioNodeToNativeAudioNode(\n this._nativeAudioNode,\n nativeDestinationAudioNode,\n output,\n input\n );\n\n const isPassive = isPassiveAudioNode(this);\n\n if (isOffline || isPassive) {\n this._nativeAudioNode.disconnect(...connection);\n }\n\n if (this.context.state !== 'closed' && !isPassive && isPassiveAudioNode(destination)) {\n setInternalStateToActive(destination);\n }\n } catch (err) {\n // Bug #41: Safari does not throw the correct exception so far.\n if (err.code === 12) {\n throw createInvalidAccessError();\n }\n\n throw err;\n }\n\n const isNewConnectionToAudioNode = addConnectionToAudioNode(\n this,\n >destination,\n output,\n input,\n isOffline\n );\n\n // Bug #164: Only Firefox detects cycles so far.\n if (isNewConnectionToAudioNode) {\n const cycles = detectCycles([this], >(destination));\n\n visitEachAudioNodeOnce(cycles, createIncrementCycleCounter(isOffline));\n }\n\n return destination;\n }\n\n const nativeAudioParam = getNativeAudioParam(destination);\n\n /*\n * Bug #73, #147 & #153: Safari does not support to connect an input signal to the playbackRate AudioParam of an\n * AudioBufferSourceNode. This can't be easily detected and that's why the outdated name property is used here to identify\n * Safari. In addition to that the maxValue property is used to only detect the affected versions below v14.0.2.\n */\n if ((nativeAudioParam).name === 'playbackRate' && nativeAudioParam.maxValue === 1024) {\n throw createNotSupportedError();\n }\n\n try {\n this._nativeAudioNode.connect(nativeAudioParam, output);\n\n if (isOffline || isPassiveAudioNode(this)) {\n this._nativeAudioNode.disconnect(nativeAudioParam, output);\n }\n } catch (err) {\n // Bug #58: Safari doesn't throw an InvalidAccessError yet.\n if (err.code === 12) {\n throw createInvalidAccessError();\n }\n\n throw err;\n }\n\n const isNewConnectionToAudioParam = addConnectionToAudioParamOfAudioContext(this, destination, output, isOffline);\n\n // Bug #164: Only Firefox detects cycles so far.\n if (isNewConnectionToAudioParam) {\n const cycles = detectCycles([this], destination);\n\n visitEachAudioNodeOnce(cycles, createIncrementCycleCounter(isOffline));\n }\n }\n\n public disconnect(output?: number): void;\n public disconnect(destinationNode: IAudioNode, output?: number, input?: number): void;\n public disconnect(destinationParam: IAudioParam, output?: number): void;\n public disconnect(\n destinationOrOutput?: number | IAudioNode | IAudioParam,\n output?: number,\n input?: number\n ): void {\n let destinations: (IAudioNode | IAudioParam)[];\n\n const nativeContext = getNativeContext(this._context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n if (destinationOrOutput === undefined) {\n destinations = deleteAnyConnection(this, isOffline);\n } else if (typeof destinationOrOutput === 'number') {\n if (destinationOrOutput < 0 || destinationOrOutput >= this.numberOfOutputs) {\n throw createIndexSizeError();\n }\n\n destinations = deleteConnectionAtOutput(this, isOffline, destinationOrOutput);\n } else {\n if (output !== undefined && (output < 0 || output >= this.numberOfOutputs)) {\n throw createIndexSizeError();\n }\n\n if (isAudioNode(destinationOrOutput) && input !== undefined && (input < 0 || input >= destinationOrOutput.numberOfInputs)) {\n throw createIndexSizeError();\n }\n\n destinations = deleteConnectionToDestination(this, isOffline, destinationOrOutput, output, input);\n\n if (destinations.length === 0) {\n throw createInvalidAccessError();\n }\n }\n\n // Bug #164: Only Firefox detects cycles so far.\n for (const destination of destinations) {\n const cycles = detectCycles([this], destination);\n\n visitEachAudioNodeOnce(cycles, decrementCycleCounter);\n }\n }\n };\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext } from '../types';\nimport { pickElementFromSet } from './pick-element-from-set';\n\nexport const deleteActiveInputConnectionToAudioParam = (\n activeInputs: Set>,\n source: IAudioNode,\n output: number\n) => {\n return pickElementFromSet(\n activeInputs,\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output\n );\n};\n","import { IReadOnlyMap } from './interfaces';\n\nexport class ReadOnlyMap implements IReadOnlyMap {\n private _map: Map;\n\n constructor(parameters: [T, U][]) {\n this._map = new Map(parameters);\n }\n\n get size(): number {\n return this._map.size;\n }\n\n public entries(): IterableIterator<[T, U]> {\n return this._map.entries();\n }\n\n public forEach(callback: (audioParam: U, name: T, map: ReadOnlyMap) => void, thisArg: any = null): void {\n return this._map.forEach((value: U, key: T) => callback.call(thisArg, value, key, this));\n }\n\n public get(name: T): undefined | U {\n return this._map.get(name);\n }\n\n public has(name: T): boolean {\n return this._map.has(name);\n }\n\n public keys(): IterableIterator {\n return this._map.keys();\n }\n\n public values(): IterableIterator {\n return this._map.values();\n }\n}\n","import { NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS } from '../globals';\nimport {\n IAudioParam,\n IAudioWorkletNode,\n IAudioWorkletNodeEventMap,\n IAudioWorkletNodeOptions,\n IMinimalAudioContext,\n IMinimalOfflineAudioContext,\n IOfflineAudioContext,\n IReadOnlyMap\n} from '../interfaces';\nimport { ReadOnlyMap } from '../read-only-map';\nimport {\n TAudioNodeRenderer,\n TAudioParamMap,\n TAudioWorkletNodeConstructorFactory,\n TContext,\n TErrorEventHandler,\n TNativeAudioContext,\n TNativeAudioParam,\n TNativeAudioWorkletNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n // Bug #61: The channelCountMode should be 'max' according to the spec but is set to 'explicit' to achieve consistent behavior.\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 1,\n numberOfOutputs: 1,\n parameterData: {},\n processorOptions: {}\n} as const;\n\nexport const createAudioWorkletNodeConstructor: TAudioWorkletNodeConstructorFactory = (\n addUnrenderedAudioWorkletNode,\n audioNodeConstructor,\n createAudioParam,\n createAudioWorkletNodeRenderer,\n createNativeAudioWorkletNode,\n getAudioNodeConnections,\n getBackupOfflineAudioContext,\n getNativeContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n sanitizeAudioWorkletNodeOptions,\n setActiveAudioWorkletNodeInputs,\n testAudioWorkletNodeOptionsClonability,\n wrapEventListener\n) => {\n return class AudioWorkletNode\n extends audioNodeConstructor\n implements IAudioWorkletNode\n {\n private _nativeAudioWorkletNode: TNativeAudioWorkletNode;\n\n private _onprocessorerror: null | TErrorEventHandler;\n\n private _parameters: null | TAudioParamMap;\n\n constructor(context: T, name: string, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const mergedOptions = sanitizeAudioWorkletNodeOptions({ ...DEFAULT_OPTIONS, ...options });\n\n // Bug #191: Safari doesn't throw an error if the options aren't clonable.\n testAudioWorkletNodeOptionsClonability(mergedOptions);\n\n const nodeNameToProcessorConstructorMap = NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(nativeContext);\n const processorConstructor = nodeNameToProcessorConstructorMap?.get(name);\n // Bug #186: Chrome and Edge do not allow to create an AudioWorkletNode on a closed AudioContext.\n const nativeContextOrBackupOfflineAudioContext =\n isOffline || nativeContext.state !== 'closed'\n ? nativeContext\n : getBackupOfflineAudioContext(nativeContext) ?? nativeContext;\n const nativeAudioWorkletNode = createNativeAudioWorkletNode(\n nativeContextOrBackupOfflineAudioContext,\n isOffline ? null : ((context)).baseLatency,\n nativeAudioWorkletNodeConstructor,\n name,\n processorConstructor,\n mergedOptions\n );\n const audioWorkletNodeRenderer = >(\n (isOffline ? createAudioWorkletNodeRenderer(name, mergedOptions, processorConstructor) : null)\n );\n\n /*\n * @todo Add a mechanism to switch an AudioWorkletNode to passive once the process() function of the AudioWorkletProcessor\n * returns false.\n */\n super(context, true, nativeAudioWorkletNode, audioWorkletNodeRenderer);\n\n const parameters: [string, IAudioParam][] = [];\n\n nativeAudioWorkletNode.parameters.forEach((nativeAudioParam, nm) => {\n const audioParam = createAudioParam(this, isOffline, nativeAudioParam);\n\n parameters.push([nm, audioParam]);\n });\n\n this._nativeAudioWorkletNode = nativeAudioWorkletNode;\n this._onprocessorerror = null;\n this._parameters = new ReadOnlyMap(parameters);\n\n /*\n * Bug #86 & #87: Invoking the renderer of an AudioWorkletNode might be necessary if it has no direct or indirect connection to\n * the destination.\n */\n if (isOffline) {\n addUnrenderedAudioWorkletNode(nativeContext, >this);\n }\n\n const { activeInputs } = getAudioNodeConnections(this);\n\n setActiveAudioWorkletNodeInputs(nativeAudioWorkletNode, activeInputs);\n }\n\n get onprocessorerror(): null | TErrorEventHandler {\n return this._onprocessorerror;\n }\n\n set onprocessorerror(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeAudioWorkletNode.onprocessorerror = wrappedListener;\n\n const nativeOnProcessorError = this._nativeAudioWorkletNode.onprocessorerror;\n\n this._onprocessorerror =\n nativeOnProcessorError !== null && nativeOnProcessorError === wrappedListener\n ? value\n : >nativeOnProcessorError;\n }\n\n get parameters(): TAudioParamMap {\n if (this._parameters === null) {\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n return >this._nativeAudioWorkletNode.parameters;\n }\n\n return this._parameters;\n }\n\n get port(): MessagePort {\n return this._nativeAudioWorkletNode.port;\n }\n };\n};\n","import { TNativeAudioBuffer } from '../types';\n\nexport function copyFromChannel(\n audioBuffer: TNativeAudioBuffer,\n parent: { [key: number]: Float32Array },\n key: number,\n channelNumber: number,\n bufferOffset: number\n): void;\nexport function copyFromChannel(\n audioBuffer: TNativeAudioBuffer,\n parent: { [key: string]: Float32Array },\n key: string,\n channelNumber: number,\n bufferOffset: number\n): void;\nexport function copyFromChannel(\n audioBuffer: TNativeAudioBuffer,\n // @todo There is currently no way to define something like { [ key: number | string ]: Float32Array }\n parent: any,\n key: number | string,\n channelNumber: number,\n bufferOffset: number\n): void {\n if (typeof audioBuffer.copyFromChannel === 'function') {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength === 0) {\n parent[key] = new Float32Array(128);\n }\n\n audioBuffer.copyFromChannel(parent[key], channelNumber, bufferOffset);\n\n // Bug #5: Safari does not support copyFromChannel().\n } else {\n const channelData = audioBuffer.getChannelData(channelNumber);\n\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength === 0) {\n parent[key] = channelData.slice(bufferOffset, bufferOffset + 128);\n } else {\n const slicedInput = new Float32Array(channelData.buffer, bufferOffset * Float32Array.BYTES_PER_ELEMENT, 128);\n\n parent[key].set(slicedInput);\n }\n }\n}\n","import { TNativeAudioBuffer } from '../types';\n\nexport const copyToChannel = (\n audioBuffer: TNativeAudioBuffer,\n parent: { [key: number]: Float32Array },\n key: number,\n channelNumber: number,\n bufferOffset: number\n): void => {\n if (typeof audioBuffer.copyToChannel === 'function') {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength !== 0) {\n audioBuffer.copyToChannel(parent[key], channelNumber, bufferOffset);\n }\n\n // Bug #5: Safari does not support copyToChannel().\n } else {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength !== 0) {\n audioBuffer.getChannelData(channelNumber).set(parent[key], bufferOffset);\n }\n }\n};\n","export const createNestedArrays = (x: number, y: number | number[]): Float32Array[][] => {\n const arrays: Float32Array[][] = [];\n\n for (let i = 0; i < x; i += 1) {\n const array = [];\n\n const length = typeof y === 'number' ? y : y[i];\n\n for (let j = 0; j < length; j += 1) {\n array.push(new Float32Array(128));\n }\n\n arrays.push(array);\n }\n\n return arrays;\n};\n","import { NODE_TO_PROCESSOR_MAPS } from '../globals';\nimport { IAudioNode, IAudioWorkletProcessor } from '../interfaces';\nimport { TContext, TNativeAudioWorkletNode, TNativeOfflineAudioContext } from '../types';\nimport { getNativeAudioNode } from './get-native-audio-node';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getAudioWorkletProcessor = (\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n proxy: IAudioNode\n): Promise => {\n const nodeToProcessorMap = getValueForKey(NODE_TO_PROCESSOR_MAPS, nativeOfflineAudioContext);\n const nativeAudioWorkletNode = getNativeAudioNode(proxy);\n\n return getValueForKey(nodeToProcessorMap, nativeAudioWorkletNode);\n};\n","import { copyFromChannel } from '../helpers/copy-from-channel';\nimport { copyToChannel } from '../helpers/copy-to-channel';\nimport { createNestedArrays } from '../helpers/create-nested-arrays';\nimport { getAudioNodeConnections } from '../helpers/get-audio-node-connections';\nimport { getAudioWorkletProcessor } from '../helpers/get-audio-worklet-processor';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport {\n IAudioWorkletNode,\n IAudioWorkletNodeOptions,\n IAudioWorkletProcessorConstructor,\n IMinimalOfflineAudioContext,\n IOfflineAudioContext,\n IReadOnlyMap\n} from '../interfaces';\nimport {\n TAudioWorkletNodeRendererFactoryFactory,\n TExposeCurrentFrameAndCurrentTimeFunction,\n TNativeAudioBuffer,\n TNativeAudioNode,\n TNativeAudioParam,\n TNativeAudioWorkletNode,\n TNativeChannelMergerNode,\n TNativeChannelSplitterNode,\n TNativeGainNode,\n TNativeOfflineAudioContext\n} from '../types';\n\nconst processBuffer = async (\n proxy: IAudioWorkletNode,\n renderedBuffer: null | TNativeAudioBuffer,\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n options: IAudioWorkletNodeOptions,\n outputChannelCount: number[],\n processorConstructor: undefined | IAudioWorkletProcessorConstructor,\n exposeCurrentFrameAndCurrentTime: TExposeCurrentFrameAndCurrentTimeFunction\n): Promise => {\n // Ceil the length to the next full render quantum.\n // Bug #17: Safari does not yet expose the length.\n const length = renderedBuffer === null ? Math.ceil(proxy.context.length / 128) * 128 : renderedBuffer.length;\n const numberOfInputChannels = options.channelCount * options.numberOfInputs;\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const processedBuffer =\n numberOfOutputChannels === 0\n ? null\n : nativeOfflineAudioContext.createBuffer(numberOfOutputChannels, length, nativeOfflineAudioContext.sampleRate);\n\n if (processorConstructor === undefined) {\n throw new Error('Missing the processor constructor.');\n }\n\n const audioNodeConnections = getAudioNodeConnections(proxy);\n const audioWorkletProcessor = await getAudioWorkletProcessor(nativeOfflineAudioContext, proxy);\n const inputs = createNestedArrays(options.numberOfInputs, options.channelCount);\n const outputs = createNestedArrays(options.numberOfOutputs, outputChannelCount);\n const parameters: { [name: string]: Float32Array } = Array.from(proxy.parameters.keys()).reduce(\n (prmtrs, name) => ({ ...prmtrs, [name]: new Float32Array(128) }),\n {}\n );\n\n for (let i = 0; i < length; i += 128) {\n if (options.numberOfInputs > 0 && renderedBuffer !== null) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < options.channelCount; k += 1) {\n copyFromChannel(renderedBuffer, inputs[j], k, k, i);\n }\n }\n }\n\n if (processorConstructor.parameterDescriptors !== undefined && renderedBuffer !== null) {\n processorConstructor.parameterDescriptors.forEach(({ name }, index) => {\n copyFromChannel(renderedBuffer, parameters, name, numberOfInputChannels + index, i);\n });\n }\n\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (outputs[j][k].byteLength === 0) {\n outputs[j][k] = new Float32Array(128);\n }\n }\n }\n\n try {\n const potentiallyEmptyInputs = inputs.map((input, index) => {\n if (audioNodeConnections.activeInputs[index].size === 0) {\n return [];\n }\n\n return input;\n });\n const activeSourceFlag = exposeCurrentFrameAndCurrentTime(\n i / nativeOfflineAudioContext.sampleRate,\n nativeOfflineAudioContext.sampleRate,\n () => audioWorkletProcessor.process(potentiallyEmptyInputs, outputs, parameters)\n );\n\n if (processedBuffer !== null) {\n for (let j = 0, outputChannelSplitterNodeOutput = 0; j < options.numberOfOutputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n copyToChannel(processedBuffer, outputs[j], k, outputChannelSplitterNodeOutput + k, i);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[j];\n }\n }\n\n if (!activeSourceFlag) {\n break;\n }\n } catch (error) {\n proxy.dispatchEvent(\n new ErrorEvent('processorerror', {\n colno: error.colno,\n filename: error.filename,\n lineno: error.lineno,\n message: error.message\n })\n );\n\n break;\n }\n }\n\n return processedBuffer;\n};\n\nexport const createAudioWorkletNodeRendererFactory: TAudioWorkletNodeRendererFactoryFactory = (\n connectAudioParam,\n connectMultipleOutputs,\n createNativeAudioBufferSourceNode,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n deleteUnrenderedAudioWorkletNode,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getNativeAudioNode,\n nativeAudioWorkletNodeConstructor,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n) => {\n return (\n name: string,\n options: IAudioWorkletNodeOptions,\n processorConstructor: undefined | IAudioWorkletProcessorConstructor\n ) => {\n const renderedNativeAudioNodes = new WeakMap();\n\n let processedBufferPromise: null | Promise = null;\n\n const createAudioNode = async (proxy: IAudioWorkletNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioWorkletNode = getNativeAudioNode(proxy);\n let nativeOutputNodes: null | [TNativeChannelSplitterNode, TNativeChannelMergerNode[], TNativeGainNode] = null;\n\n const nativeAudioWorkletNodeIsOwnedByContext = isOwnedByContext(nativeAudioWorkletNode, nativeOfflineAudioContext);\n const outputChannelCount = Array.isArray(options.outputChannelCount)\n ? options.outputChannelCount\n : Array.from(options.outputChannelCount);\n\n // Bug #61: Only Chrome, Edge & Firefox have an implementation of the AudioWorkletNode yet.\n if (nativeAudioWorkletNodeConstructor === null) {\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const outputChannelSplitterNode = createNativeChannelSplitterNode(nativeOfflineAudioContext, {\n channelCount: Math.max(1, numberOfOutputChannels),\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: Math.max(1, numberOfOutputChannels)\n });\n const outputChannelMergerNodes: TNativeChannelMergerNode[] = [];\n\n for (let i = 0; i < proxy.numberOfOutputs; i += 1) {\n outputChannelMergerNodes.push(\n createNativeChannelMergerNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: outputChannelCount[i]\n })\n );\n }\n\n const outputGainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n });\n\n outputGainNode.connect = connectMultipleOutputs.bind(null, outputChannelMergerNodes);\n outputGainNode.disconnect = disconnectMultipleOutputs.bind(null, outputChannelMergerNodes);\n\n nativeOutputNodes = [outputChannelSplitterNode, outputChannelMergerNodes, outputGainNode];\n } else if (!nativeAudioWorkletNodeIsOwnedByContext) {\n nativeAudioWorkletNode = new nativeAudioWorkletNodeConstructor(nativeOfflineAudioContext, name);\n }\n\n renderedNativeAudioNodes.set(\n nativeOfflineAudioContext,\n nativeOutputNodes === null ? nativeAudioWorkletNode : nativeOutputNodes[2]\n );\n\n if (nativeOutputNodes !== null) {\n if (processedBufferPromise === null) {\n if (processorConstructor === undefined) {\n throw new Error('Missing the processor constructor.');\n }\n\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n // Bug #47: The AudioDestinationNode in Safari gets not initialized correctly.\n const numberOfInputChannels = proxy.channelCount * proxy.numberOfInputs;\n const numberOfParameters =\n processorConstructor.parameterDescriptors === undefined ? 0 : processorConstructor.parameterDescriptors.length;\n const numberOfChannels = numberOfInputChannels + numberOfParameters;\n\n const renderBuffer = async () => {\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n numberOfChannels,\n // Ceil the length to the next full render quantum.\n // Bug #17: Safari does not yet expose the length.\n Math.ceil(proxy.context.length / 128) * 128,\n nativeOfflineAudioContext.sampleRate\n );\n const gainNodes: TNativeGainNode[] = [];\n const inputChannelSplitterNodes = [];\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes.push(\n createNativeGainNode(partialOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n })\n );\n inputChannelSplitterNodes.push(\n createNativeChannelSplitterNode(partialOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: options.channelCount\n })\n );\n }\n\n const constantSourceNodes = await Promise.all(\n Array.from(proxy.parameters.values()).map(async (audioParam) => {\n const constantSourceNode = createNativeConstantSourceNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: audioParam.value\n });\n\n await renderAutomation(partialOfflineAudioContext, audioParam, constantSourceNode.offset);\n\n return constantSourceNode;\n })\n );\n\n const inputChannelMergerNode = createNativeChannelMergerNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: Math.max(1, numberOfInputChannels + numberOfParameters)\n });\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes[i].connect(inputChannelSplitterNodes[i]);\n\n for (let j = 0; j < options.channelCount; j += 1) {\n inputChannelSplitterNodes[i].connect(inputChannelMergerNode, j, i * options.channelCount + j);\n }\n }\n\n for (const [index, constantSourceNode] of constantSourceNodes.entries()) {\n constantSourceNode.connect(inputChannelMergerNode, 0, numberOfInputChannels + index);\n constantSourceNode.start(0);\n }\n\n inputChannelMergerNode.connect(partialOfflineAudioContext.destination);\n\n await Promise.all(\n gainNodes.map((gainNode) => renderInputsOfAudioNode(proxy, partialOfflineAudioContext, gainNode))\n );\n\n return renderNativeOfflineAudioContext(partialOfflineAudioContext);\n };\n\n processedBufferPromise = processBuffer(\n proxy,\n numberOfChannels === 0 ? null : await renderBuffer(),\n nativeOfflineAudioContext,\n options,\n outputChannelCount,\n processorConstructor,\n exposeCurrentFrameAndCurrentTime\n );\n }\n\n const processedBuffer = await processedBufferPromise;\n const audioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const [outputChannelSplitterNode, outputChannelMergerNodes, outputGainNode] = nativeOutputNodes;\n\n if (processedBuffer !== null) {\n audioBufferSourceNode.buffer = processedBuffer;\n audioBufferSourceNode.start(0);\n }\n\n audioBufferSourceNode.connect(outputChannelSplitterNode);\n\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < proxy.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.connect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n\n return outputGainNode;\n }\n\n if (!nativeAudioWorkletNodeIsOwnedByContext) {\n for (const [nm, audioParam] of proxy.parameters.entries()) {\n await renderAutomation(\n nativeOfflineAudioContext,\n audioParam,\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n (>nativeAudioWorkletNode.parameters).get(nm)\n );\n }\n } else {\n for (const [nm, audioParam] of proxy.parameters.entries()) {\n await connectAudioParam(\n nativeOfflineAudioContext,\n audioParam,\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n (>nativeAudioWorkletNode.parameters).get(nm)\n );\n }\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioWorkletNode);\n\n return nativeAudioWorkletNode;\n };\n\n return {\n render(\n proxy: IAudioWorkletNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n deleteUnrenderedAudioWorkletNode(nativeOfflineAudioContext, proxy);\n\n const renderedNativeAudioWorkletNodeOrGainNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioWorkletNodeOrGainNode !== undefined) {\n return Promise.resolve(renderedNativeAudioWorkletNodeOrGainNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam, IBiquadFilterNode, IBiquadFilterOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TBiquadFilterNodeConstructorFactory, TBiquadFilterType, TContext, TNativeBiquadFilterNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n Q: 1,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n detune: 0,\n frequency: 350,\n gain: 0,\n type: 'lowpass'\n} as const;\n\nexport const createBiquadFilterNodeConstructor: TBiquadFilterNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createBiquadFilterNodeRenderer,\n createInvalidAccessError,\n createNativeBiquadFilterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class BiquadFilterNode extends audioNodeConstructor implements IBiquadFilterNode {\n private _detune: IAudioParam;\n\n private _frequency: IAudioParam;\n\n private _gain: IAudioParam;\n\n private _nativeBiquadFilterNode: TNativeBiquadFilterNode;\n\n private _Q: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeBiquadFilterNode = createNativeBiquadFilterNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const biquadFilterNodeRenderer = >(isOffline ? createBiquadFilterNodeRenderer() : null);\n\n super(context, false, nativeBiquadFilterNode, biquadFilterNodeRenderer);\n\n // Bug #80: Safari does not export the correct values for maxValue and minValue.\n this._Q = createAudioParam(this, isOffline, nativeBiquadFilterNode.Q, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n // Bug #78: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._detune = createAudioParam(\n this,\n isOffline,\n nativeBiquadFilterNode.detune,\n 1200 * Math.log2(MOST_POSITIVE_SINGLE_FLOAT),\n -1200 * Math.log2(MOST_POSITIVE_SINGLE_FLOAT)\n );\n // Bug #77: Firefox & Safari do not export the correct value for minValue.\n this._frequency = createAudioParam(this, isOffline, nativeBiquadFilterNode.frequency, context.sampleRate / 2, 0);\n // Bug #79: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._gain = createAudioParam(\n this,\n isOffline,\n nativeBiquadFilterNode.gain,\n 40 * Math.log10(MOST_POSITIVE_SINGLE_FLOAT),\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._nativeBiquadFilterNode = nativeBiquadFilterNode;\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n get detune(): IAudioParam {\n return this._detune;\n }\n\n get frequency(): IAudioParam {\n return this._frequency;\n }\n\n get gain(): IAudioParam {\n return this._gain;\n }\n\n get Q(): IAudioParam {\n return this._Q;\n }\n\n get type(): TBiquadFilterType {\n return this._nativeBiquadFilterNode.type;\n }\n\n set type(value) {\n this._nativeBiquadFilterNode.type = value;\n }\n\n public getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void {\n // Bug #189: Safari does throw an InvalidStateError.\n try {\n this._nativeBiquadFilterNode.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);\n } catch (err) {\n if (err.code === 11) {\n throw createInvalidAccessError();\n }\n\n throw err;\n }\n\n // Bug #68: Safari does not throw an error if the parameters differ in their length.\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n }\n };\n};\n","import { IChannelMergerOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TChannelMergerNodeConstructorFactory, TContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n} as const;\n\nexport const createChannelMergerNodeConstructor: TChannelMergerNodeConstructorFactory = (\n audioNodeConstructor,\n createChannelMergerNodeRenderer,\n createNativeChannelMergerNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class ChannelMergerNode extends audioNodeConstructor {\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeChannelMergerNode = createNativeChannelMergerNode(nativeContext, mergedOptions);\n const channelMergerNodeRenderer = >(\n (isNativeOfflineAudioContext(nativeContext) ? createChannelMergerNodeRenderer() : null)\n );\n\n super(context, false, nativeChannelMergerNode, channelMergerNodeRenderer);\n }\n };\n};\n","import { IChannelSplitterOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TChannelSplitterNodeConstructorFactory, TContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 6,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: 6\n} as const;\n\nexport const createChannelSplitterNodeConstructor: TChannelSplitterNodeConstructorFactory = (\n audioNodeConstructor,\n createChannelSplitterNodeRenderer,\n createNativeChannelSplitterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n sanitizeChannelSplitterOptions\n) => {\n return class ChannelSplitterNode extends audioNodeConstructor {\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = sanitizeChannelSplitterOptions({ ...DEFAULT_OPTIONS, ...options });\n const nativeChannelSplitterNode = createNativeChannelSplitterNode(nativeContext, mergedOptions);\n const channelSplitterNodeRenderer = >(\n (isNativeOfflineAudioContext(nativeContext) ? createChannelSplitterNodeRenderer() : null)\n );\n\n super(context, false, nativeChannelSplitterNode, channelSplitterNodeRenderer);\n }\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nimport { IAudioParam, IAudioScheduledSourceNodeEventMap, IConstantSourceNode, IConstantSourceOptions } from '../interfaces';\nimport {\n TConstantSourceNodeConstructorFactory,\n TConstantSourceNodeRenderer,\n TContext,\n TEventHandler,\n TNativeConstantSourceNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n offset: 1\n} as const;\n\nexport const createConstantSourceNodeConstructor: TConstantSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createConstantSourceNodeRendererFactory,\n createNativeConstantSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n) => {\n return class ConstantSourceNode\n extends audioNodeConstructor\n implements IConstantSourceNode\n {\n private _constantSourceNodeRenderer: TConstantSourceNodeRenderer;\n\n private _nativeConstantSourceNode: TNativeConstantSourceNode;\n\n private _offset: IAudioParam;\n\n private _onended: null | TEventHandler;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeConstantSourceNode = createNativeConstantSourceNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const constantSourceNodeRenderer = >(\n (isOffline ? createConstantSourceNodeRendererFactory() : null)\n );\n\n super(context, false, nativeConstantSourceNode, constantSourceNodeRenderer);\n\n this._constantSourceNodeRenderer = constantSourceNodeRenderer;\n this._nativeConstantSourceNode = nativeConstantSourceNode;\n /*\n * Bug #62 & #74: Safari does not support ConstantSourceNodes and does not export the correct values for maxValue and minValue\n * for GainNodes.\n */\n this._offset = createAudioParam(\n this,\n isOffline,\n nativeConstantSourceNode.offset,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._onended = null;\n }\n\n get offset(): IAudioParam {\n return this._offset;\n }\n\n get onended(): null | TEventHandler {\n return this._onended;\n }\n\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeConstantSourceNode.onended = wrappedListener;\n\n const nativeOnEnded = this._nativeConstantSourceNode.onended;\n\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n\n public start(when = 0): void {\n this._nativeConstantSourceNode.start(when);\n\n if (this._constantSourceNodeRenderer !== null) {\n this._constantSourceNodeRenderer.start = when;\n }\n\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n\n const resetInternalStateToPassive = () => {\n this._nativeConstantSourceNode.removeEventListener('ended', resetInternalStateToPassive);\n\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n\n this._nativeConstantSourceNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n\n public stop(when = 0): void {\n this._nativeConstantSourceNode.stop(when);\n\n if (this._constantSourceNodeRenderer !== null) {\n this._constantSourceNodeRenderer.stop = when;\n }\n }\n };\n};\n","import { IConvolverNode, IConvolverOptions } from '../interfaces';\nimport { TAnyAudioBuffer, TAudioNodeRenderer, TContext, TConvolverNodeConstructorFactory, TNativeConvolverNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n disableNormalization: false\n} as const;\n\nexport const createConvolverNodeConstructor: TConvolverNodeConstructorFactory = (\n audioNodeConstructor,\n createConvolverNodeRenderer,\n createNativeConvolverNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class ConvolverNode extends audioNodeConstructor implements IConvolverNode {\n private _isBufferNullified: boolean;\n\n private _nativeConvolverNode: TNativeConvolverNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeConvolverNode = createNativeConvolverNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const convolverNodeRenderer = >(isOffline ? createConvolverNodeRenderer() : null);\n\n super(context, false, nativeConvolverNode, convolverNodeRenderer);\n\n this._isBufferNullified = false;\n this._nativeConvolverNode = nativeConvolverNode;\n\n if (mergedOptions.buffer !== null) {\n setAudioNodeTailTime(this, mergedOptions.buffer.duration);\n }\n }\n\n get buffer(): null | TAnyAudioBuffer {\n if (this._isBufferNullified) {\n return null;\n }\n\n return this._nativeConvolverNode.buffer;\n }\n\n set buffer(value) {\n this._nativeConvolverNode.buffer = value;\n\n // Bug #115: Safari does not allow to set the buffer to null.\n if (value === null && this._nativeConvolverNode.buffer !== null) {\n const nativeContext = this._nativeConvolverNode.context;\n\n this._nativeConvolverNode.buffer = nativeContext.createBuffer(1, 1, 44100);\n this._isBufferNullified = true;\n\n setAudioNodeTailTime(this, 0);\n } else {\n this._isBufferNullified = false;\n\n setAudioNodeTailTime(this, this._nativeConvolverNode.buffer === null ? 0 : this._nativeConvolverNode.buffer.duration);\n }\n }\n\n get normalize(): boolean {\n return this._nativeConvolverNode.normalize;\n }\n\n set normalize(value) {\n this._nativeConvolverNode.normalize = value;\n }\n };\n};\n","export const detachArrayBuffer = (arrayBuffer: ArrayBuffer): Promise => {\n const { port1, port2 } = new MessageChannel();\n\n return new Promise((resolve) => {\n const closeAndResolve = () => {\n port2.onmessage = null;\n\n port1.close();\n port2.close();\n\n resolve();\n };\n\n port2.onmessage = () => closeAndResolve();\n\n try {\n port1.postMessage(arrayBuffer, [arrayBuffer]);\n } finally {\n closeAndResolve();\n }\n });\n};\n","import { IAudioParam, IDelayNode, IDelayOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TDelayNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n delayTime: 0,\n maxDelayTime: 1\n} as const;\n\nexport const createDelayNodeConstructor: TDelayNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createDelayNodeRenderer,\n createNativeDelayNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class DelayNode extends audioNodeConstructor implements IDelayNode {\n private _delayTime: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeDelayNode = createNativeDelayNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const delayNodeRenderer = >(isOffline ? createDelayNodeRenderer(mergedOptions.maxDelayTime) : null);\n\n super(context, false, nativeDelayNode, delayNodeRenderer);\n\n this._delayTime = createAudioParam(this, isOffline, nativeDelayNode.delayTime);\n\n setAudioNodeTailTime(this, mergedOptions.maxDelayTime);\n }\n\n get delayTime(): IAudioParam {\n return this._delayTime;\n }\n };\n};\n","import { isNativeAudioNode } from '../guards/native-audio-node';\nimport { TDisconnectMultipleOutputsFactory, TIndexSizeErrorFactory, TNativeAudioNode } from '../types';\n\nconst getOutputAudioNodeAtIndex = (\n createIndexSizeError: TIndexSizeErrorFactory,\n outputAudioNodes: TNativeAudioNode[],\n output: number\n): TNativeAudioNode => {\n const outputAudioNode = outputAudioNodes[output];\n\n if (outputAudioNode === undefined) {\n throw createIndexSizeError();\n }\n\n return outputAudioNode;\n};\n\nexport const createDisconnectMultipleOutputs: TDisconnectMultipleOutputsFactory = (createIndexSizeError) => {\n return (outputAudioNodes, destinationOrOutput = undefined, output = undefined, input = 0) => {\n if (destinationOrOutput === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect());\n }\n\n if (typeof destinationOrOutput === 'number') {\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, destinationOrOutput).disconnect();\n }\n\n if (isNativeAudioNode(destinationOrOutput)) {\n if (output === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect(destinationOrOutput));\n }\n\n if (input === undefined) {\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0);\n }\n\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0, input);\n }\n\n if (output === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect(destinationOrOutput));\n }\n\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0);\n };\n};\n","import { IAudioParam, IDynamicsCompressorNode, IDynamicsCompressorOptions } from '../interfaces';\nimport {\n TAudioNodeRenderer,\n TChannelCountMode,\n TContext,\n TDynamicsCompressorNodeConstructorFactory,\n TNativeAudioParam,\n TNativeDynamicsCompressorNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n attack: 0.003,\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n knee: 30,\n ratio: 12,\n release: 0.25,\n threshold: -24\n} as const;\n\nexport const createDynamicsCompressorNodeConstructor: TDynamicsCompressorNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createDynamicsCompressorNodeRenderer,\n createNativeDynamicsCompressorNode,\n createNotSupportedError,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class DynamicsCompressorNode extends audioNodeConstructor implements IDynamicsCompressorNode {\n private _attack: IAudioParam;\n\n private _knee: IAudioParam;\n\n private _nativeDynamicsCompressorNode: TNativeDynamicsCompressorNode;\n\n private _ratio: IAudioParam;\n\n private _release: IAudioParam;\n\n private _threshold: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeDynamicsCompressorNode = createNativeDynamicsCompressorNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const dynamicsCompressorNodeRenderer = >(isOffline ? createDynamicsCompressorNodeRenderer() : null);\n\n super(context, false, nativeDynamicsCompressorNode, dynamicsCompressorNodeRenderer);\n\n this._attack = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.attack);\n this._knee = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.knee);\n this._nativeDynamicsCompressorNode = nativeDynamicsCompressorNode;\n this._ratio = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.ratio);\n this._release = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.release);\n this._threshold = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.threshold);\n\n setAudioNodeTailTime(this, 0.006);\n }\n\n get attack(): IAudioParam {\n return this._attack;\n }\n\n // Bug #108: Safari allows a channelCount of three and above which is why the getter and setter needs to be overwritten here.\n get channelCount(): number {\n return this._nativeDynamicsCompressorNode.channelCount;\n }\n\n set channelCount(value) {\n const previousChannelCount = this._nativeDynamicsCompressorNode.channelCount;\n\n this._nativeDynamicsCompressorNode.channelCount = value;\n\n if (value > 2) {\n this._nativeDynamicsCompressorNode.channelCount = previousChannelCount;\n\n throw createNotSupportedError();\n }\n }\n\n /*\n * Bug #109: Only Chrome and Firefox disallow a channelCountMode of 'max' yet which is why the getter and setter needs to be\n * overwritten here.\n */\n get channelCountMode(): TChannelCountMode {\n return this._nativeDynamicsCompressorNode.channelCountMode;\n }\n\n set channelCountMode(value) {\n const previousChannelCount = this._nativeDynamicsCompressorNode.channelCountMode;\n\n this._nativeDynamicsCompressorNode.channelCountMode = value;\n\n if (value === 'max') {\n this._nativeDynamicsCompressorNode.channelCountMode = previousChannelCount;\n\n throw createNotSupportedError();\n }\n }\n\n get knee(): IAudioParam {\n return this._knee;\n }\n\n get ratio(): IAudioParam {\n return this._ratio;\n }\n\n get reduction(): number {\n // Bug #111: Safari returns an AudioParam instead of a number.\n if (typeof ((this._nativeDynamicsCompressorNode.reduction)).value === 'number') {\n return ((this._nativeDynamicsCompressorNode.reduction)).value;\n }\n\n return this._nativeDynamicsCompressorNode.reduction;\n }\n\n get release(): IAudioParam {\n return this._release;\n }\n\n get threshold(): IAudioParam {\n return this._threshold;\n }\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam, IGainNode, IGainOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TGainNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n gain: 1\n} as const;\n\nexport const createGainNodeConstructor: TGainNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createGainNodeRenderer,\n createNativeGainNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class GainNode extends audioNodeConstructor implements IGainNode {\n private _gain: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeGainNode = createNativeGainNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const gainNodeRenderer = >(isOffline ? createGainNodeRenderer() : null);\n\n super(context, false, nativeGainNode, gainNodeRenderer);\n\n // Bug #74: Safari does not export the correct values for maxValue and minValue.\n this._gain = createAudioParam(this, isOffline, nativeGainNode.gain, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n }\n\n get gain(): IAudioParam {\n return this._gain;\n }\n };\n};\n","import { TInvalidStateErrorFactory } from '../types';\n\nexport const createInvalidStateError: TInvalidStateErrorFactory = () => new DOMException('', 'InvalidStateError');\n","import { TInvalidAccessErrorFactory } from '../types';\n\nexport const createInvalidAccessError: TInvalidAccessErrorFactory = () => new DOMException('', 'InvalidAccessError');\n","import { wrapIIRFilterNodeGetFrequencyResponseMethod } from '../helpers/wrap-iir-filter-node-get-frequency-response-method';\nimport { IIIRFilterNode, IIIRFilterOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TIIRFilterNodeConstructorFactory, TNativeIIRFilterNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers'\n} as const;\n\nexport const createIIRFilterNodeConstructor: TIIRFilterNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeIIRFilterNode,\n createIIRFilterNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class IIRFilterNode extends audioNodeConstructor implements IIIRFilterNode {\n private _nativeIIRFilterNode: TNativeIIRFilterNode;\n\n constructor(\n context: T,\n options: { feedback: IIIRFilterOptions['feedback']; feedforward: IIIRFilterOptions['feedforward'] } & Partial\n ) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeIIRFilterNode = createNativeIIRFilterNode(\n nativeContext,\n isOffline ? null : ((context)).baseLatency,\n mergedOptions\n );\n const iirFilterNodeRenderer = >(\n (isOffline ? createIIRFilterNodeRenderer(mergedOptions.feedback, mergedOptions.feedforward) : null)\n );\n\n super(context, false, nativeIIRFilterNode, iirFilterNodeRenderer);\n\n // Bug #23 & #24: FirefoxDeveloper does not throw an InvalidAccessError.\n // @todo Write a test which allows other browsers to remain unpatched.\n wrapIIRFilterNodeGetFrequencyResponseMethod(nativeIIRFilterNode);\n\n this._nativeIIRFilterNode = nativeIIRFilterNode;\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n public getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void {\n return this._nativeIIRFilterNode.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);\n }\n };\n};\n","// This implementation as shamelessly inspired by source code of\n// tslint:disable-next-line:max-line-length\n// {@link https://chromium.googlesource.com/chromium/src.git/+/master/third_party/WebKit/Source/platform/audio/IIRFilter.cpp|Chromium's IIRFilter}.\nexport const filterBuffer = (\n feedback: Float64Array,\n feedbackLength: number,\n feedforward: Float64Array,\n feedforwardLength: number,\n minLength: number,\n xBuffer: Float32Array,\n yBuffer: Float32Array,\n bufferIndex: number,\n bufferLength: number,\n input: Float32Array,\n output: Float32Array\n) => {\n const inputLength = input.length;\n\n let i = bufferIndex;\n\n for (let j = 0; j < inputLength; j += 1) {\n let y = feedforward[0] * input[j];\n\n for (let k = 1; k < minLength; k += 1) {\n const x = (i - k) & (bufferLength - 1); // tslint:disable-line:no-bitwise\n\n y += feedforward[k] * xBuffer[x];\n y -= feedback[k] * yBuffer[x];\n }\n\n for (let k = minLength; k < feedforwardLength; k += 1) {\n y += feedforward[k] * xBuffer[(i - k) & (bufferLength - 1)]; // tslint:disable-line:no-bitwise\n }\n\n for (let k = minLength; k < feedbackLength; k += 1) {\n y -= feedback[k] * yBuffer[(i - k) & (bufferLength - 1)]; // tslint:disable-line:no-bitwise\n }\n\n xBuffer[i] = input[j];\n yBuffer[i] = y;\n\n i = (i + 1) & (bufferLength - 1); // tslint:disable-line:no-bitwise\n\n output[j] = y;\n }\n\n return i;\n};\n","import { filterBuffer } from '../helpers/filter-buffer';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IIIRFilterNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport {\n TIIRFilterNodeRendererFactoryFactory,\n TNativeAudioBuffer,\n TNativeAudioBufferSourceNode,\n TNativeIIRFilterNode,\n TNativeOfflineAudioContext\n} from '../types';\n\nconst filterFullBuffer = (\n renderedBuffer: TNativeAudioBuffer,\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n feedback: Iterable,\n feedforward: Iterable\n) => {\n const convertedFeedback = feedback instanceof Float64Array ? feedback : new Float64Array(feedback);\n const convertedFeedforward = feedforward instanceof Float64Array ? feedforward : new Float64Array(feedforward);\n const feedbackLength = convertedFeedback.length;\n const feedforwardLength = convertedFeedforward.length;\n const minLength = Math.min(feedbackLength, feedforwardLength);\n\n if (convertedFeedback[0] !== 1) {\n for (let i = 0; i < feedbackLength; i += 1) {\n convertedFeedforward[i] /= convertedFeedback[0];\n }\n\n for (let i = 1; i < feedforwardLength; i += 1) {\n convertedFeedback[i] /= convertedFeedback[0];\n }\n }\n\n const bufferLength = 32;\n const xBuffer = new Float32Array(bufferLength);\n const yBuffer = new Float32Array(bufferLength);\n\n const filteredBuffer = nativeOfflineAudioContext.createBuffer(\n renderedBuffer.numberOfChannels,\n renderedBuffer.length,\n renderedBuffer.sampleRate\n );\n\n const numberOfChannels = renderedBuffer.numberOfChannels;\n\n for (let i = 0; i < numberOfChannels; i += 1) {\n const input = renderedBuffer.getChannelData(i);\n const output = filteredBuffer.getChannelData(i);\n\n xBuffer.fill(0);\n yBuffer.fill(0);\n\n filterBuffer(\n convertedFeedback,\n feedbackLength,\n convertedFeedforward,\n feedforwardLength,\n minLength,\n xBuffer,\n yBuffer,\n 0,\n bufferLength,\n input,\n output\n );\n }\n\n return filteredBuffer;\n};\n\nexport const createIIRFilterNodeRendererFactory: TIIRFilterNodeRendererFactoryFactory = (\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n) => {\n return (feedback: Iterable, feedforward: Iterable) => {\n const renderedNativeAudioNodes = new WeakMap();\n\n let filteredBufferPromise: null | Promise = null;\n\n const createAudioNode = async (proxy: IIIRFilterNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioBufferSourceNode: null | TNativeAudioBufferSourceNode = null;\n let nativeIIRFilterNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeIIRFilterNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeIIRFilterNodeIsOwnedByContext = isOwnedByContext(nativeIIRFilterNode, nativeOfflineAudioContext);\n\n // Bug #9: Safari does not support IIRFilterNodes.\n if (nativeOfflineAudioContext.createIIRFilter === undefined) {\n nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n } else if (!nativeIIRFilterNodeIsOwnedByContext) {\n // @todo TypeScript defines the parameters of createIIRFilter() as arrays of numbers.\n nativeIIRFilterNode = nativeOfflineAudioContext.createIIRFilter(feedforward, feedback);\n }\n\n renderedNativeAudioNodes.set(\n nativeOfflineAudioContext,\n nativeAudioBufferSourceNode === null ? nativeIIRFilterNode : nativeAudioBufferSourceNode\n );\n\n if (nativeAudioBufferSourceNode !== null) {\n if (filteredBufferPromise === null) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n // Bug #47: The AudioDestinationNode in Safari gets not initialized correctly.\n proxy.context.destination.channelCount,\n // Bug #17: Safari does not yet expose the length.\n proxy.context.length,\n nativeOfflineAudioContext.sampleRate\n );\n\n filteredBufferPromise = (async () => {\n await renderInputsOfAudioNode(proxy, partialOfflineAudioContext, partialOfflineAudioContext.destination);\n\n const renderedBuffer = await renderNativeOfflineAudioContext(partialOfflineAudioContext);\n\n return filterFullBuffer(renderedBuffer, nativeOfflineAudioContext, feedback, feedforward);\n })();\n }\n\n const filteredBuffer = await filteredBufferPromise;\n\n nativeAudioBufferSourceNode.buffer = filteredBuffer;\n nativeAudioBufferSourceNode.start(0);\n\n return nativeAudioBufferSourceNode;\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeIIRFilterNode);\n\n return nativeIIRFilterNode;\n };\n\n return {\n render(\n proxy: IIIRFilterNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { IAudioContext, IAudioNodeOptions, IMediaStreamAudioDestinationNode, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaStreamAudioDestinationNodeConstructorFactory, TNativeMediaStreamAudioDestinationNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers'\n} as const;\n\nexport const createMediaStreamAudioDestinationNodeConstructor: TMediaStreamAudioDestinationNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaStreamAudioDestinationNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class MediaStreamAudioDestinationNode extends audioNodeConstructor\n implements IMediaStreamAudioDestinationNode {\n private _nativeMediaStreamAudioDestinationNode: TNativeMediaStreamAudioDestinationNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n\n // Bug #173: Safari allows to create a MediaStreamAudioDestinationNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw new TypeError();\n }\n\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeMediaStreamAudioDestinationNode = createNativeMediaStreamAudioDestinationNode(nativeContext, mergedOptions);\n\n super(context, false, nativeMediaStreamAudioDestinationNode, >null);\n\n this._nativeMediaStreamAudioDestinationNode = nativeMediaStreamAudioDestinationNode;\n }\n\n get stream(): MediaStream {\n return this._nativeMediaStreamAudioDestinationNode.stream;\n }\n };\n};\n","import { TNativeContext } from '../types';\n\nexport const testPromiseSupport = (nativeContext: TNativeContext): boolean => {\n // This 12 numbers represent the 48 bytes of an empty WAVE file with a single sample.\n const uint32Array = new Uint32Array([1179011410, 40, 1163280727, 544501094, 16, 131073, 44100, 176400, 1048580, 1635017060, 4, 0]);\n\n try {\n // Bug #1: Safari requires a successCallback.\n const promise = nativeContext.decodeAudioData(uint32Array.buffer, () => {\n // Ignore the success callback.\n });\n\n if (promise === undefined) {\n return false;\n }\n\n promise.catch(() => {\n // Ignore rejected errors.\n });\n\n return true;\n } catch {\n // Ignore errors.\n }\n\n return false;\n};\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { testPromiseSupport } from '../helpers/test-promise-support';\nimport { IAudioBuffer, IMinimalOfflineAudioContext, IOfflineAudioContextOptions } from '../interfaces';\nimport { TAudioContextState, TMinimalOfflineAudioContextConstructorFactory, TNativeOfflineAudioContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n} as const;\n\nexport const createMinimalOfflineAudioContextConstructor: TMinimalOfflineAudioContextConstructorFactory = (\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n minimalBaseAudioContextConstructor,\n startRendering\n) => {\n return class MinimalOfflineAudioContext extends minimalBaseAudioContextConstructor\n implements IMinimalOfflineAudioContext {\n private _length: number;\n\n private _nativeOfflineAudioContext: TNativeOfflineAudioContext;\n\n private _state: null | TAudioContextState;\n\n constructor(options: IOfflineAudioContextOptions) {\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n\n const nativeOfflineAudioContext = createNativeOfflineAudioContext(numberOfChannels, length, sampleRate);\n\n // #21 Safari does not support promises and therefore would fire the statechange event before the promise can be resolved.\n if (!cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n nativeOfflineAudioContext.addEventListener(\n 'statechange',\n (() => {\n let i = 0;\n\n const delayStateChangeEvent = (event: Event) => {\n if (this._state === 'running') {\n if (i > 0) {\n nativeOfflineAudioContext.removeEventListener('statechange', delayStateChangeEvent);\n event.stopImmediatePropagation();\n\n this._waitForThePromiseToSettle(event);\n } else {\n i += 1;\n }\n }\n };\n\n return delayStateChangeEvent;\n })()\n );\n }\n\n super(nativeOfflineAudioContext, numberOfChannels);\n\n this._length = length;\n this._nativeOfflineAudioContext = nativeOfflineAudioContext;\n this._state = null;\n }\n\n get length(): number {\n // Bug #17: Safari does not yet expose the length.\n if (this._nativeOfflineAudioContext.length === undefined) {\n return this._length;\n }\n\n return this._nativeOfflineAudioContext.length;\n }\n\n get state(): TAudioContextState {\n return this._state === null ? this._nativeOfflineAudioContext.state : this._state;\n }\n\n public startRendering(): Promise {\n /*\n * Bug #9 & #59: It is theoretically possible that startRendering() will first render a partialOfflineAudioContext. Therefore\n * the state of the nativeOfflineAudioContext might no transition to running immediately.\n */\n if (this._state === 'running') {\n return Promise.reject(createInvalidStateError());\n }\n\n this._state = 'running';\n\n return startRendering(this.destination, this._nativeOfflineAudioContext).finally(() => {\n this._state = null;\n\n deactivateAudioGraph(this);\n });\n }\n\n private _waitForThePromiseToSettle(event: Event): void {\n if (this._state === null) {\n this._nativeOfflineAudioContext.dispatchEvent(event);\n } else {\n setTimeout(() => this._waitForThePromiseToSettle(event));\n }\n }\n };\n};\n","export const assignNativeAudioNodeOption = (\n nativeAudioNode: Record,\n options: Record,\n option: T\n) => {\n const value = options[option];\n\n if (value !== undefined && value !== nativeAudioNode[option]) {\n nativeAudioNode[option] = value;\n }\n};\n","import { IAudioNodeOptions } from '../interfaces';\nimport { TNativeAudioNode } from '../types';\nimport { assignNativeAudioNodeOption } from './assign-native-audio-node-option';\n\nexport const assignNativeAudioNodeOptions = (nativeAudioNode: TNativeAudioNode, options: IAudioNodeOptions): void => {\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelCount');\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelCountMode');\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelInterpretation');\n};\n","import { TNativeAnalyserNode } from '../types';\n\nexport const testAnalyserNodeGetFloatTimeDomainDataMethodSupport = (nativeAnalyserNode: TNativeAnalyserNode): boolean => {\n return typeof nativeAnalyserNode.getFloatTimeDomainData === 'function';\n};\n","export const assignNativeAudioNodeAudioParamValue = (\n nativeAudioNode: T,\n options: U,\n audioParam: keyof T & keyof U\n) => {\n const value = options[audioParam];\n\n if (value !== undefined && value !== nativeAudioNode[audioParam].value) {\n nativeAudioNode[audioParam].value = value;\n }\n};\n","import { TNativeAudioBufferSourceNode, TNativeConstantSourceNode, TNativeOscillatorNode } from '../types';\n\nexport const wrapAudioScheduledSourceNodeStartMethodNegativeParameters = (\n nativeAudioScheduledSourceNode: TNativeAudioBufferSourceNode | TNativeConstantSourceNode | TNativeOscillatorNode\n): void => {\n nativeAudioScheduledSourceNode.start = ((start) => {\n return (when = 0, offset = 0, duration?: number) => {\n if ((typeof duration === 'number' && duration < 0) || offset < 0 || when < 0) {\n throw new RangeError(\"The parameters can't be negative.\");\n }\n\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n (<(when: number, offset: number, duration?: number) => void>start).call(nativeAudioScheduledSourceNode, when, offset, duration);\n };\n })(nativeAudioScheduledSourceNode.start);\n};\n","import { TNativeAudioBufferSourceNode, TNativeConstantSourceNode, TNativeOscillatorNode } from '../types';\n\nexport const wrapAudioScheduledSourceNodeStopMethodNegativeParameters = (\n nativeAudioScheduledSourceNode: TNativeAudioBufferSourceNode | TNativeConstantSourceNode | TNativeOscillatorNode\n): void => {\n nativeAudioScheduledSourceNode.stop = ((stop) => {\n return (when = 0) => {\n if (when < 0) {\n throw new RangeError(\"The parameter can't be negative.\");\n }\n\n stop.call(nativeAudioScheduledSourceNode, when);\n };\n })(nativeAudioScheduledSourceNode.stop);\n};\n","export const computeBufferSize = (baseLatency: null | number, sampleRate: number) => {\n if (baseLatency === null) {\n return 512;\n }\n\n return Math.max(512, Math.min(16384, Math.pow(2, Math.round(Math.log2(baseLatency * sampleRate)))));\n};\n","import { IAudioWorkletNodeOptions } from '../interfaces';\n\nexport const cloneAudioWorkletNodeOptions = (audioWorkletNodeOptions: IAudioWorkletNodeOptions): Promise => {\n return new Promise((resolve, reject) => {\n const { port1, port2 } = new MessageChannel();\n\n port1.onmessage = ({ data }) => {\n port1.close();\n port2.close();\n\n resolve(data);\n };\n port1.onmessageerror = ({ data }) => {\n port1.close();\n port2.close();\n\n reject(data);\n };\n\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port2.postMessage(audioWorkletNodeOptions);\n });\n};\n","import { IAudioWorkletNodeOptions, IAudioWorkletProcessor, IAudioWorkletProcessorConstructor } from '../interfaces';\nimport { cloneAudioWorkletNodeOptions } from './clone-audio-worklet-node-options';\n\nexport const createAudioWorkletProcessorPromise = async (\n processorConstructor: IAudioWorkletProcessorConstructor,\n audioWorkletNodeOptions: IAudioWorkletNodeOptions\n): Promise => {\n const clonedAudioWorkletNodeOptions = await cloneAudioWorkletNodeOptions(audioWorkletNodeOptions);\n\n return new processorConstructor(clonedAudioWorkletNodeOptions);\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeBiquadFilterNodeFactory } from '../types';\n\nexport const createNativeBiquadFilterNode: TNativeBiquadFilterNodeFactory = (nativeContext, options) => {\n const nativeBiquadFilterNode = nativeContext.createBiquadFilter();\n\n assignNativeAudioNodeOptions(nativeBiquadFilterNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'Q');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'detune');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'frequency');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'gain');\n\n assignNativeAudioNodeOption(nativeBiquadFilterNode, options, 'type');\n\n return nativeBiquadFilterNode;\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapChannelSplitterNode } from '../helpers/wrap-channel-splitter-node';\nimport { TNativeChannelSplitterNodeFactory } from '../types';\n\nexport const createNativeChannelSplitterNode: TNativeChannelSplitterNodeFactory = (nativeContext, options) => {\n const nativeChannelSplitterNode = nativeContext.createChannelSplitter(options.numberOfOutputs);\n\n // Bug #96: Safari does not have the correct channelCount.\n // Bug #29: Safari does not have the correct channelCountMode.\n // Bug #31: Safari does not have the correct channelInterpretation.\n assignNativeAudioNodeOptions(nativeChannelSplitterNode, options);\n\n // Bug #29, #30, #31, #32, #96 & #97: Only Chrome, Edge & Firefox partially support the spec yet.\n wrapChannelSplitterNode(nativeChannelSplitterNode);\n\n return nativeChannelSplitterNode;\n};\n","import { createInvalidStateError } from '../factories/invalid-state-error';\nimport { TNativeChannelSplitterNode } from '../types';\n\nexport const wrapChannelSplitterNode = (channelSplitterNode: TNativeChannelSplitterNode): void => {\n const channelCount = channelSplitterNode.numberOfOutputs;\n\n // Bug #97: Safari does not throw an error when attempting to change the channelCount to something other than its initial value.\n Object.defineProperty(channelSplitterNode, 'channelCount', {\n get: () => channelCount,\n set: (value) => {\n if (value !== channelCount) {\n throw createInvalidStateError();\n }\n }\n });\n\n // Bug #30: Safari does not throw an error when attempting to change the channelCountMode to something other than explicit.\n Object.defineProperty(channelSplitterNode, 'channelCountMode', {\n get: () => 'explicit',\n set: (value) => {\n if (value !== 'explicit') {\n throw createInvalidStateError();\n }\n }\n });\n\n // Bug #32: Safari does not throw an error when attempting to change the channelInterpretation to something other than discrete.\n Object.defineProperty(channelSplitterNode, 'channelInterpretation', {\n get: () => 'discrete',\n set: (value) => {\n if (value !== 'discrete') {\n throw createInvalidStateError();\n }\n }\n });\n};\n","import { TNativeAudioNode } from '../types';\n\nexport const interceptConnections = (\n original: T,\n interceptor: TNativeAudioNode\n): T & { connect: TNativeAudioNode['connect']; disconnect: TNativeAudioNode['disconnect'] } => {\n (original).connect = interceptor.connect.bind(interceptor);\n\n (original).disconnect = interceptor.disconnect.bind(interceptor);\n\n return original;\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeDelayNodeFactory } from '../types';\n\nexport const createNativeDelayNode: TNativeDelayNodeFactory = (nativeContext, options) => {\n const nativeDelayNode = nativeContext.createDelay(options.maxDelayTime);\n\n assignNativeAudioNodeOptions(nativeDelayNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeDelayNode, options, 'delayTime');\n\n return nativeDelayNode;\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeGainNodeFactory } from '../types';\n\nexport const createNativeGainNode: TNativeGainNodeFactory = (nativeContext, options) => {\n const nativeGainNode = nativeContext.createGain();\n\n assignNativeAudioNodeOptions(nativeGainNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeGainNode, options, 'gain');\n\n return nativeGainNode;\n};\n","import { computeBufferSize } from '../helpers/compute-buffer-size';\nimport { filterBuffer } from '../helpers/filter-buffer';\nimport { interceptConnections } from '../helpers/intercept-connections';\nimport { TNativeAudioNode, TNativeIIRFilterNode, TNativeIIRFilterNodeFakerFactoryFactory } from '../types';\n\nfunction divide(a: [number, number], b: [number, number]): [number, number] {\n const denominator = b[0] * b[0] + b[1] * b[1];\n\n return [(a[0] * b[0] + a[1] * b[1]) / denominator, (a[1] * b[0] - a[0] * b[1]) / denominator];\n}\n\nfunction multiply(a: [number, number], b: [number, number]): [number, number] {\n return [a[0] * b[0] - a[1] * b[1], a[0] * b[1] + a[1] * b[0]];\n}\n\nfunction evaluatePolynomial(coefficient: Float64Array, z: [number, number]): [number, number] {\n let result: [number, number] = [0, 0];\n\n for (let i = coefficient.length - 1; i >= 0; i -= 1) {\n result = multiply(result, z);\n\n result[0] += coefficient[i];\n }\n\n return result;\n}\n\nexport const createNativeIIRFilterNodeFakerFactory: TNativeIIRFilterNodeFakerFactoryFactory = (\n createInvalidAccessError,\n createInvalidStateError,\n createNativeScriptProcessorNode,\n createNotSupportedError\n) => {\n return (nativeContext, baseLatency, { channelCount, channelCountMode, channelInterpretation, feedback, feedforward }) => {\n const bufferSize = computeBufferSize(baseLatency, nativeContext.sampleRate);\n const convertedFeedback = feedback instanceof Float64Array ? feedback : new Float64Array(feedback);\n const convertedFeedforward = feedforward instanceof Float64Array ? feedforward : new Float64Array(feedforward);\n const feedbackLength = convertedFeedback.length;\n const feedforwardLength = convertedFeedforward.length;\n const minLength = Math.min(feedbackLength, feedforwardLength);\n\n if (feedbackLength === 0 || feedbackLength > 20) {\n throw createNotSupportedError();\n }\n\n if (convertedFeedback[0] === 0) {\n throw createInvalidStateError();\n }\n\n if (feedforwardLength === 0 || feedforwardLength > 20) {\n throw createNotSupportedError();\n }\n\n if (convertedFeedforward[0] === 0) {\n throw createInvalidStateError();\n }\n\n if (convertedFeedback[0] !== 1) {\n for (let i = 0; i < feedforwardLength; i += 1) {\n convertedFeedforward[i] /= convertedFeedback[0];\n }\n\n for (let i = 1; i < feedbackLength; i += 1) {\n convertedFeedback[i] /= convertedFeedback[0];\n }\n }\n\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, bufferSize, channelCount, channelCount);\n\n scriptProcessorNode.channelCount = channelCount;\n scriptProcessorNode.channelCountMode = channelCountMode;\n scriptProcessorNode.channelInterpretation = channelInterpretation;\n\n const bufferLength = 32;\n const bufferIndexes: number[] = [];\n const xBuffers: Float32Array[] = [];\n const yBuffers: Float32Array[] = [];\n\n for (let i = 0; i < channelCount; i += 1) {\n bufferIndexes.push(0);\n\n const xBuffer = new Float32Array(bufferLength);\n const yBuffer = new Float32Array(bufferLength);\n\n xBuffer.fill(0);\n yBuffer.fill(0);\n\n xBuffers.push(xBuffer);\n yBuffers.push(yBuffer);\n }\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = (event: AudioProcessingEvent) => {\n const inputBuffer = event.inputBuffer;\n const outputBuffer = event.outputBuffer;\n\n const numberOfChannels = inputBuffer.numberOfChannels;\n\n for (let i = 0; i < numberOfChannels; i += 1) {\n const input = inputBuffer.getChannelData(i);\n const output = outputBuffer.getChannelData(i);\n\n bufferIndexes[i] = filterBuffer(\n convertedFeedback,\n feedbackLength,\n convertedFeedforward,\n feedforwardLength,\n minLength,\n xBuffers[i],\n yBuffers[i],\n bufferIndexes[i],\n bufferLength,\n input,\n output\n );\n }\n };\n\n const nyquist = nativeContext.sampleRate / 2;\n\n const nativeIIRFilterNodeFaker = {\n get bufferSize(): number {\n return bufferSize;\n },\n get channelCount(): number {\n return scriptProcessorNode.channelCount;\n },\n set channelCount(value) {\n scriptProcessorNode.channelCount = value;\n },\n get channelCountMode(): TNativeIIRFilterNode['channelCountMode'] {\n return scriptProcessorNode.channelCountMode;\n },\n set channelCountMode(value) {\n scriptProcessorNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeIIRFilterNode['channelInterpretation'] {\n return scriptProcessorNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n scriptProcessorNode.channelInterpretation = value;\n },\n get context(): TNativeIIRFilterNode['context'] {\n return scriptProcessorNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return [scriptProcessorNode];\n },\n get numberOfInputs(): number {\n return scriptProcessorNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return scriptProcessorNode.numberOfOutputs;\n },\n addEventListener(...args: any[]): void {\n // @todo Dissallow adding an audioprocess listener.\n return scriptProcessorNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return scriptProcessorNode.dispatchEvent(args[0]);\n },\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void {\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n\n const length = frequencyHz.length;\n\n for (let i = 0; i < length; i += 1) {\n const omega = -Math.PI * (frequencyHz[i] / nyquist);\n const z: [number, number] = [Math.cos(omega), Math.sin(omega)];\n const numerator = evaluatePolynomial(convertedFeedforward, z);\n const denominator = evaluatePolynomial(convertedFeedback, z);\n const response = divide(numerator, denominator);\n\n magResponse[i] = Math.sqrt(response[0] * response[0] + response[1] * response[1]);\n phaseResponse[i] = Math.atan2(response[1], response[0]);\n }\n },\n removeEventListener(...args: any[]): void {\n return scriptProcessorNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n return interceptConnections(nativeIIRFilterNodeFaker, scriptProcessorNode);\n };\n};\n","import { TCacheTestResultFactory } from '../types';\n\nexport const createCacheTestResult: TCacheTestResultFactory = (ongoingTests, testResults) => {\n return (tester, test) => {\n const cachedTestResult = testResults.get(tester);\n\n if (cachedTestResult !== undefined) {\n return cachedTestResult;\n }\n\n const ongoingTest = ongoingTests.get(tester);\n\n if (ongoingTest !== undefined) {\n return ongoingTest;\n }\n\n try {\n const synchronousTestResult = test();\n\n if (synchronousTestResult instanceof Promise) {\n ongoingTests.set(tester, synchronousTestResult);\n\n return synchronousTestResult\n .catch(() => false)\n .then((finalTestResult) => {\n ongoingTests.delete(tester);\n testResults.set(tester, finalTestResult);\n\n return finalTestResult;\n });\n }\n\n testResults.set(tester, synchronousTestResult);\n\n return synchronousTestResult;\n } catch {\n testResults.set(tester, false);\n\n return false;\n }\n };\n};\n","import { IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TContext, TGetNativeContextFactory, TNativeAudioContext, TNativeOfflineAudioContext } from '../types';\nimport { createInvalidStateError } from './invalid-state-error';\n\nexport const createGetNativeContext: TGetNativeContextFactory = (contextStore) => {\n return (\n context: T\n ): T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? TNativeOfflineAudioContext : TNativeAudioContext => {\n const nativeContext = contextStore.get(context);\n\n if (nativeContext === undefined) {\n throw createInvalidStateError();\n }\n\n return (\n nativeContext\n );\n };\n};\n","import { IAudioNode, IAudioNodeRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TActiveInputConnection, TAddAudioNodeConnectionsFactory, TContext, TNativeAudioNode } from '../types';\n\nexport const createAddAudioNodeConnections: TAddAudioNodeConnectionsFactory = (audioNodeConnectionsStore) => {\n return (\n audioNode: IAudioNode,\n audioNodeRenderer: T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? IAudioNodeRenderer> : null,\n nativeAudioNode: TNativeAudioNode\n ) => {\n const activeInputs = [];\n\n for (let i = 0; i < nativeAudioNode.numberOfInputs; i += 1) {\n activeInputs.push(new Set>());\n }\n\n audioNodeConnectionsStore.set(audioNode, {\n activeInputs,\n outputs: new Set(),\n passiveInputs: new WeakMap(),\n renderer: audioNodeRenderer\n });\n };\n};\n","import { TConvertNumberToUnsignedLongFactory } from '../types';\n\nexport const createConvertNumberToUnsignedLong: TConvertNumberToUnsignedLongFactory = (unit32Array) => {\n return (value) => {\n unit32Array[0] = value;\n\n return unit32Array[0];\n };\n};\n","import { IAudioParam, IAudioParamRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAddAudioParamConnectionsFactory, TContext } from '../types';\n\nexport const createAddAudioParamConnections: TAddAudioParamConnectionsFactory = (audioParamConnectionsStore) => {\n return (\n audioParam: IAudioParam,\n audioParamRenderer: T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? IAudioParamRenderer : null\n ) => {\n audioParamConnectionsStore.set(audioParam, { activeInputs: new Set(), passiveInputs: new WeakMap(), renderer: audioParamRenderer });\n };\n};\n","import { TNativeScriptProcessorNodeFactory } from '../types';\n\nexport const createNativeScriptProcessorNode: TNativeScriptProcessorNodeFactory = (\n nativeContext,\n bufferSize,\n numberOfInputChannels,\n numberOfOutputChannels\n) => {\n return nativeContext.createScriptProcessor(bufferSize, numberOfInputChannels, numberOfOutputChannels); // tslint:disable-line deprecation\n};\n","import { TNotSupportedErrorFactory } from '../types';\n\nexport const createNotSupportedError: TNotSupportedErrorFactory = () => new DOMException('', 'NotSupportedError');\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { testPromiseSupport } from '../helpers/test-promise-support';\nimport { IAudioBuffer, IOfflineAudioContext, IOfflineAudioContextOptions } from '../interfaces';\nimport { TAudioContextState, TNativeOfflineAudioContext, TOfflineAudioContextConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n} as const;\n\nexport const createOfflineAudioContextConstructor: TOfflineAudioContextConstructorFactory = (\n baseAudioContextConstructor,\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n startRendering\n) => {\n return class OfflineAudioContext extends baseAudioContextConstructor implements IOfflineAudioContext {\n private _length: number;\n\n private _nativeOfflineAudioContext: TNativeOfflineAudioContext;\n\n private _state: null | TAudioContextState;\n\n constructor(options: IOfflineAudioContextOptions);\n constructor(numberOfChannels: number, length: number, sampleRate: number);\n constructor(a: number | IOfflineAudioContextOptions, b?: number, c?: number) {\n let options: IOfflineAudioContextOptions;\n\n if (typeof a === 'number' && b !== undefined && c !== undefined) {\n options = { length: b, numberOfChannels: a, sampleRate: c };\n } else if (typeof a === 'object') {\n options = a;\n } else {\n throw new Error('The given parameters are not valid.');\n }\n\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n\n const nativeOfflineAudioContext = createNativeOfflineAudioContext(numberOfChannels, length, sampleRate);\n\n // #21 Safari does not support promises and therefore would fire the statechange event before the promise can be resolved.\n if (!cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n nativeOfflineAudioContext.addEventListener(\n 'statechange',\n (() => {\n let i = 0;\n\n const delayStateChangeEvent = (event: Event) => {\n if (this._state === 'running') {\n if (i > 0) {\n nativeOfflineAudioContext.removeEventListener('statechange', delayStateChangeEvent);\n event.stopImmediatePropagation();\n\n this._waitForThePromiseToSettle(event);\n } else {\n i += 1;\n }\n }\n };\n\n return delayStateChangeEvent;\n })()\n );\n }\n\n super(nativeOfflineAudioContext, numberOfChannels);\n\n this._length = length;\n this._nativeOfflineAudioContext = nativeOfflineAudioContext;\n this._state = null;\n }\n\n get length(): number {\n // Bug #17: Safari does not yet expose the length.\n if (this._nativeOfflineAudioContext.length === undefined) {\n return this._length;\n }\n\n return this._nativeOfflineAudioContext.length;\n }\n\n get state(): TAudioContextState {\n return this._state === null ? this._nativeOfflineAudioContext.state : this._state;\n }\n\n public startRendering(): Promise {\n /*\n * Bug #9 & #59: It is theoretically possible that startRendering() will first render a partialOfflineAudioContext. Therefore\n * the state of the nativeOfflineAudioContext might no transition to running immediately.\n */\n if (this._state === 'running') {\n return Promise.reject(createInvalidStateError());\n }\n\n this._state = 'running';\n\n return startRendering(this.destination, this._nativeOfflineAudioContext).finally(() => {\n this._state = null;\n\n deactivateAudioGraph(this);\n });\n }\n\n private _waitForThePromiseToSettle(event: Event): void {\n if (this._state === null) {\n this._nativeOfflineAudioContext.dispatchEvent(event);\n } else {\n setTimeout(() => this._waitForThePromiseToSettle(event));\n }\n }\n };\n};\n","import { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nimport {\n IAudioParam,\n IAudioScheduledSourceNodeEventMap,\n IMinimalOfflineAudioContext,\n IOscillatorNode,\n IOscillatorNodeRenderer,\n IOscillatorOptions\n} from '../interfaces';\nimport {\n TContext,\n TEventHandler,\n TNativeOscillatorNode,\n TOscillatorNodeConstructorFactory,\n TOscillatorNodeRenderer,\n TOscillatorType\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max', // This attribute has no effect for nodes with no inputs.\n channelInterpretation: 'speakers', // This attribute has no effect for nodes with no inputs.\n detune: 0,\n frequency: 440,\n periodicWave: undefined,\n type: 'sine'\n} as const;\n\nexport const createOscillatorNodeConstructor: TOscillatorNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createNativeOscillatorNode,\n createOscillatorNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n) => {\n return class OscillatorNode\n extends audioNodeConstructor\n implements IOscillatorNode\n {\n private _detune: IAudioParam;\n\n private _frequency: IAudioParam;\n\n private _nativeOscillatorNode: TNativeOscillatorNode;\n\n private _onended: null | TEventHandler;\n\n private _oscillatorNodeRenderer: TOscillatorNodeRenderer;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeOscillatorNode = createNativeOscillatorNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const oscillatorNodeRenderer = >(isOffline ? createOscillatorNodeRenderer() : null);\n const nyquist = context.sampleRate / 2;\n\n super(context, false, nativeOscillatorNode, oscillatorNodeRenderer);\n\n // Bug #81: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._detune = createAudioParam(this, isOffline, nativeOscillatorNode.detune, 153600, -153600);\n // Bug #76: Safari does not export the correct values for maxValue and minValue.\n this._frequency = createAudioParam(this, isOffline, nativeOscillatorNode.frequency, nyquist, -nyquist);\n this._nativeOscillatorNode = nativeOscillatorNode;\n this._onended = null;\n this._oscillatorNodeRenderer = oscillatorNodeRenderer;\n\n if (this._oscillatorNodeRenderer !== null && mergedOptions.periodicWave !== undefined) {\n (>this._oscillatorNodeRenderer).periodicWave =\n mergedOptions.periodicWave;\n }\n }\n\n get detune(): IAudioParam {\n return this._detune;\n }\n\n get frequency(): IAudioParam {\n return this._frequency;\n }\n\n get onended(): null | TEventHandler {\n return this._onended;\n }\n\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeOscillatorNode.onended = wrappedListener;\n\n const nativeOnEnded = this._nativeOscillatorNode.onended;\n\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n\n get type(): TOscillatorType {\n return this._nativeOscillatorNode.type;\n }\n\n set type(value) {\n this._nativeOscillatorNode.type = value;\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.periodicWave = null;\n }\n }\n\n public setPeriodicWave(periodicWave: PeriodicWave): void {\n this._nativeOscillatorNode.setPeriodicWave(periodicWave);\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.periodicWave = periodicWave;\n }\n }\n\n public start(when = 0): void {\n this._nativeOscillatorNode.start(when);\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.start = when;\n }\n\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n\n const resetInternalStateToPassive = () => {\n this._nativeOscillatorNode.removeEventListener('ended', resetInternalStateToPassive);\n\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n\n this._nativeOscillatorNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n\n public stop(when = 0): void {\n this._nativeOscillatorNode.stop(when);\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.stop = when;\n }\n }\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam, IPannerNode, IPannerOptions } from '../interfaces';\nimport {\n TAudioNodeRenderer,\n TContext,\n TDistanceModelType,\n TNativePannerNode,\n TPannerNodeConstructorFactory,\n TPanningModelType\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n coneInnerAngle: 360,\n coneOuterAngle: 360,\n coneOuterGain: 0,\n distanceModel: 'inverse',\n maxDistance: 10000,\n orientationX: 1,\n orientationY: 0,\n orientationZ: 0,\n panningModel: 'equalpower',\n positionX: 0,\n positionY: 0,\n positionZ: 0,\n refDistance: 1,\n rolloffFactor: 1\n} as const;\n\nexport const createPannerNodeConstructor: TPannerNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createNativePannerNode,\n createPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class PannerNode extends audioNodeConstructor implements IPannerNode {\n private _nativePannerNode: TNativePannerNode;\n\n private _orientationX: IAudioParam;\n\n private _orientationY: IAudioParam;\n\n private _orientationZ: IAudioParam;\n\n private _positionX: IAudioParam;\n\n private _positionY: IAudioParam;\n\n private _positionZ: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativePannerNode = createNativePannerNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const pannerNodeRenderer = >(isOffline ? createPannerNodeRenderer() : null);\n\n super(context, false, nativePannerNode, pannerNodeRenderer);\n\n this._nativePannerNode = nativePannerNode;\n // Bug #74: Safari does not export the correct values for maxValue and minValue.\n this._orientationX = createAudioParam(\n this,\n isOffline,\n nativePannerNode.orientationX,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._orientationY = createAudioParam(\n this,\n isOffline,\n nativePannerNode.orientationY,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._orientationZ = createAudioParam(\n this,\n isOffline,\n nativePannerNode.orientationZ,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._positionX = createAudioParam(\n this,\n isOffline,\n nativePannerNode.positionX,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._positionY = createAudioParam(\n this,\n isOffline,\n nativePannerNode.positionY,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._positionZ = createAudioParam(\n this,\n isOffline,\n nativePannerNode.positionZ,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n get coneInnerAngle(): number {\n return this._nativePannerNode.coneInnerAngle;\n }\n\n set coneInnerAngle(value) {\n this._nativePannerNode.coneInnerAngle = value;\n }\n\n get coneOuterAngle(): number {\n return this._nativePannerNode.coneOuterAngle;\n }\n\n set coneOuterAngle(value) {\n this._nativePannerNode.coneOuterAngle = value;\n }\n\n get coneOuterGain(): number {\n return this._nativePannerNode.coneOuterGain;\n }\n\n set coneOuterGain(value) {\n this._nativePannerNode.coneOuterGain = value;\n }\n\n get distanceModel(): TDistanceModelType {\n return this._nativePannerNode.distanceModel;\n }\n\n set distanceModel(value) {\n this._nativePannerNode.distanceModel = value;\n }\n\n get maxDistance(): number {\n return this._nativePannerNode.maxDistance;\n }\n\n set maxDistance(value) {\n this._nativePannerNode.maxDistance = value;\n }\n\n get orientationX(): IAudioParam {\n return this._orientationX;\n }\n\n get orientationY(): IAudioParam {\n return this._orientationY;\n }\n\n get orientationZ(): IAudioParam {\n return this._orientationZ;\n }\n\n get panningModel(): TPanningModelType {\n return this._nativePannerNode.panningModel;\n }\n\n set panningModel(value) {\n this._nativePannerNode.panningModel = value;\n }\n\n get positionX(): IAudioParam {\n return this._positionX;\n }\n\n get positionY(): IAudioParam {\n return this._positionY;\n }\n\n get positionZ(): IAudioParam {\n return this._positionZ;\n }\n\n get refDistance(): number {\n return this._nativePannerNode.refDistance;\n }\n\n set refDistance(value) {\n this._nativePannerNode.refDistance = value;\n }\n\n get rolloffFactor(): number {\n return this._nativePannerNode.rolloffFactor;\n }\n\n set rolloffFactor(value) {\n this._nativePannerNode.rolloffFactor = value;\n }\n };\n};\n","import { IPeriodicWave, IPeriodicWaveOptions } from '../interfaces';\nimport { TContext, TPeriodicWaveConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n disableNormalization: false\n} as const;\n\nexport const createPeriodicWaveConstructor: TPeriodicWaveConstructorFactory = (\n createNativePeriodicWave,\n getNativeContext,\n periodicWaveStore,\n sanitizePeriodicWaveOptions\n) => {\n return class PeriodicWave implements IPeriodicWave {\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = sanitizePeriodicWaveOptions({ ...DEFAULT_OPTIONS, ...options });\n const periodicWave = createNativePeriodicWave(nativeContext, mergedOptions);\n\n periodicWaveStore.add(periodicWave);\n\n // This does violate all good pratices but it is used here to simplify the handling of periodic waves.\n return periodicWave;\n }\n\n public static [Symbol.hasInstance](instance: unknown): boolean {\n return (\n (instance !== null && typeof instance === 'object' && Object.getPrototypeOf(instance) === PeriodicWave.prototype) ||\n periodicWaveStore.has(instance)\n );\n }\n };\n};\n","import { IAudioParam, IStereoPannerNode, IStereoPannerOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TStereoPannerNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n /*\n * Bug #105: The channelCountMode should be 'clamped-max' according to the spec but is set to 'explicit' to achieve consistent\n * behavior.\n */\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n pan: 0\n} as const;\n\nexport const createStereoPannerNodeConstructor: TStereoPannerNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createNativeStereoPannerNode,\n createStereoPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class StereoPannerNode extends audioNodeConstructor implements IStereoPannerNode {\n private _pan: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeStereoPannerNode = createNativeStereoPannerNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const stereoPannerNodeRenderer = >(isOffline ? createStereoPannerNodeRenderer() : null);\n\n super(context, false, nativeStereoPannerNode, stereoPannerNodeRenderer);\n\n this._pan = createAudioParam(this, isOffline, nativeStereoPannerNode.pan);\n }\n\n get pan(): IAudioParam {\n return this._pan;\n }\n };\n};\n","import { TUnknownErrorFactory } from '../types';\n\nexport const createUnknownError: TUnknownErrorFactory = () => new DOMException('', 'UnknownError');\n","import { IWaveShaperNode, IWaveShaperOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TNativeWaveShaperNode, TOverSampleType, TWaveShaperNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n curve: null,\n oversample: 'none'\n} as const;\n\nexport const createWaveShaperNodeConstructor: TWaveShaperNodeConstructorFactory = (\n audioNodeConstructor,\n createInvalidStateError,\n createNativeWaveShaperNode,\n createWaveShaperNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class WaveShaperNode extends audioNodeConstructor implements IWaveShaperNode {\n private _isCurveNullified: boolean;\n\n private _nativeWaveShaperNode: TNativeWaveShaperNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeWaveShaperNode = createNativeWaveShaperNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const waveShaperNodeRenderer = >(isOffline ? createWaveShaperNodeRenderer() : null);\n\n // @todo Add a mechanism to only switch a WaveShaperNode to active while it is connected.\n super(context, true, nativeWaveShaperNode, waveShaperNodeRenderer);\n\n this._isCurveNullified = false;\n this._nativeWaveShaperNode = nativeWaveShaperNode;\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n get curve(): null | Float32Array {\n if (this._isCurveNullified) {\n return null;\n }\n\n return this._nativeWaveShaperNode.curve;\n }\n\n set curve(value) {\n // Bug #103: Safari does not allow to set the curve to null.\n if (value === null) {\n this._isCurveNullified = true;\n this._nativeWaveShaperNode.curve = new Float32Array([0, 0]);\n } else {\n // Bug #102: Safari does not throw an InvalidStateError when the curve has less than two samples.\n // Bug #104: Chrome and Edge will throw an InvalidAccessError when the curve has less than two samples.\n if (value.length < 2) {\n throw createInvalidStateError();\n }\n\n this._isCurveNullified = false;\n this._nativeWaveShaperNode.curve = value;\n }\n }\n\n get oversample(): TOverSampleType {\n return this._nativeWaveShaperNode.oversample;\n }\n\n set oversample(value) {\n this._nativeWaveShaperNode.oversample = value;\n }\n };\n};\n","import { TGetFirstSampleFunction } from '../types';\n\nexport const getFirstSample: TGetFirstSampleFunction = (audioBuffer, buffer, channelNumber) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n if (audioBuffer.copyFromChannel === undefined) {\n return audioBuffer.getChannelData(channelNumber)[0];\n }\n\n audioBuffer.copyFromChannel(buffer, channelNumber);\n\n return buffer[0];\n};\n","import { TIsDCCurveFunction } from '../types';\n\nexport const isDCCurve: TIsDCCurveFunction = (curve) => {\n if (curve === null) {\n return false;\n }\n\n const length = curve.length;\n\n if (length % 2 !== 0) {\n return curve[Math.floor(length / 2)] !== 0;\n }\n\n return curve[length / 2 - 1] + curve[length / 2] !== 0;\n};\n","import { TOverwriteAccessorsFunction } from '../types';\n\nexport const overwriteAccessors: TOverwriteAccessorsFunction = (object, property, createGetter, createSetter) => {\n let prototype = object;\n\n while (!prototype.hasOwnProperty(property)) {\n prototype = Object.getPrototypeOf(prototype);\n }\n\n const { get, set } = >Object.getOwnPropertyDescriptor(prototype, property);\n\n Object.defineProperty(object, property, { get: createGetter(get), set: createSetter(set) });\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioScheduledSourceNodeStartMethodNegativeParametersSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createOscillator();\n\n try {\n nativeAudioBufferSourceNode.start(-1);\n } catch (err) {\n return err instanceof RangeError;\n }\n\n return false;\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBuffer = nativeContext.createBuffer(1, 1, 44100);\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n nativeAudioBufferSourceNode.start();\n nativeAudioBufferSourceNode.stop();\n\n try {\n nativeAudioBufferSourceNode.stop();\n\n return true;\n } catch {\n return false;\n }\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioScheduledSourceNodeStopMethodNegativeParametersSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createOscillator();\n\n try {\n nativeAudioBufferSourceNode.stop(-1);\n } catch (err) {\n return err instanceof RangeError;\n }\n\n return false;\n};\n","import { TNativeAudioNode, TWrapAudioScheduledSourceNodeStopMethodConsecutiveCallsFunction } from '../types';\nimport { interceptConnections } from './intercept-connections';\n\nexport const wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls: TWrapAudioScheduledSourceNodeStopMethodConsecutiveCallsFunction = (\n nativeAudioScheduledSourceNode,\n nativeContext\n) => {\n const nativeGainNode = nativeContext.createGain();\n\n nativeAudioScheduledSourceNode.connect(nativeGainNode);\n\n const disconnectGainNode = ((disconnect) => {\n return () => {\n // @todo TypeScript cannot infer the overloaded signature with 1 argument yet.\n (<(destinaton: TNativeAudioNode) => void>disconnect).call(nativeAudioScheduledSourceNode, nativeGainNode);\n nativeAudioScheduledSourceNode.removeEventListener('ended', disconnectGainNode);\n };\n })(nativeAudioScheduledSourceNode.disconnect);\n\n nativeAudioScheduledSourceNode.addEventListener('ended', disconnectGainNode);\n\n interceptConnections(nativeAudioScheduledSourceNode, nativeGainNode);\n\n nativeAudioScheduledSourceNode.stop = ((stop) => {\n let isStopped = false;\n\n return (when = 0) => {\n if (isStopped) {\n try {\n stop.call(nativeAudioScheduledSourceNode, when);\n } catch {\n nativeGainNode.gain.setValueAtTime(0, when);\n }\n } else {\n stop.call(nativeAudioScheduledSourceNode, when);\n\n isStopped = true;\n }\n };\n })(nativeAudioScheduledSourceNode.stop);\n};\n","import { TWrapEventListenerFunction } from '../types';\n\nexport const wrapEventListener: TWrapEventListenerFunction = (target, eventListener) => {\n return (event) => {\n const descriptor = { value: target };\n\n Object.defineProperties(event, {\n currentTarget: descriptor,\n target: descriptor\n });\n\n if (typeof eventListener === 'function') {\n return eventListener.call(target, event);\n }\n\n return eventListener.handleEvent.call(target, event);\n };\n};\n","import {\n createCancelAndHoldAutomationEvent,\n createCancelScheduledValuesAutomationEvent,\n createExponentialRampToValueAutomationEvent,\n createLinearRampToValueAutomationEvent,\n createSetTargetAutomationEvent,\n createSetValueAutomationEvent,\n createSetValueCurveAutomationEvent\n} from 'automation-events';\nimport { createAbortError } from './factories/abort-error';\nimport { createAddActiveInputConnectionToAudioNode } from './factories/add-active-input-connection-to-audio-node';\nimport { createAddAudioNodeConnections } from './factories/add-audio-node-connections';\nimport { createAddAudioParamConnections } from './factories/add-audio-param-connections';\nimport { createAddAudioWorkletModule } from './factories/add-audio-worklet-module';\nimport { createAddConnectionToAudioNode } from './factories/add-connection-to-audio-node';\nimport { createAddPassiveInputConnectionToAudioNode } from './factories/add-passive-input-connection-to-audio-node';\nimport { createAddSilentConnection } from './factories/add-silent-connection';\nimport { createAddUnrenderedAudioWorkletNode } from './factories/add-unrendered-audio-worklet-node';\nimport { createAnalyserNodeConstructor } from './factories/analyser-node-constructor';\nimport { createAnalyserNodeRendererFactory } from './factories/analyser-node-renderer-factory';\nimport { createAudioBufferConstructor } from './factories/audio-buffer-constructor';\nimport { createAudioBufferSourceNodeConstructor } from './factories/audio-buffer-source-node-constructor';\nimport { createAudioBufferSourceNodeRendererFactory } from './factories/audio-buffer-source-node-renderer-factory';\nimport { createAudioContextConstructor } from './factories/audio-context-constructor';\nimport { createAudioDestinationNodeConstructor } from './factories/audio-destination-node-constructor';\nimport { createAudioDestinationNodeRenderer } from './factories/audio-destination-node-renderer-factory';\nimport { createAudioListenerFactory } from './factories/audio-listener-factory';\nimport { createAudioNodeConstructor } from './factories/audio-node-constructor';\nimport { createAudioParamFactory } from './factories/audio-param-factory';\nimport { createAudioParamRenderer } from './factories/audio-param-renderer';\nimport { createAudioWorkletNodeConstructor } from './factories/audio-worklet-node-constructor';\nimport { createAudioWorkletNodeRendererFactory } from './factories/audio-worklet-node-renderer-factory';\nimport { createBaseAudioContextConstructor } from './factories/base-audio-context-constructor';\nimport { createBiquadFilterNodeConstructor } from './factories/biquad-filter-node-constructor';\nimport { createBiquadFilterNodeRendererFactory } from './factories/biquad-filter-node-renderer-factory';\nimport { createCacheTestResult } from './factories/cache-test-result';\nimport { createChannelMergerNodeConstructor } from './factories/channel-merger-node-constructor';\nimport { createChannelMergerNodeRendererFactory } from './factories/channel-merger-node-renderer-factory';\nimport { createChannelSplitterNodeConstructor } from './factories/channel-splitter-node-constructor';\nimport { createChannelSplitterNodeRendererFactory } from './factories/channel-splitter-node-renderer-factory';\nimport { createConnectAudioParam } from './factories/connect-audio-param';\nimport { createConnectMultipleOutputs } from './factories/connect-multiple-outputs';\nimport { createConnectedNativeAudioBufferSourceNodeFactory } from './factories/connected-native-audio-buffer-source-node-factory';\nimport { createConstantSourceNodeConstructor } from './factories/constant-source-node-constructor';\nimport { createConstantSourceNodeRendererFactory } from './factories/constant-source-node-renderer-factory';\nimport { createConvertNumberToUnsignedLong } from './factories/convert-number-to-unsigned-long';\nimport { createConvolverNodeConstructor } from './factories/convolver-node-constructor';\nimport { createConvolverNodeRendererFactory } from './factories/convolver-node-renderer-factory';\nimport { createCreateNativeOfflineAudioContext } from './factories/create-native-offline-audio-context';\nimport { createDataCloneError } from './factories/data-clone-error';\nimport { createDecodeAudioData } from './factories/decode-audio-data';\nimport { createDecrementCycleCounter } from './factories/decrement-cycle-counter';\nimport { createDelayNodeConstructor } from './factories/delay-node-constructor';\nimport { createDelayNodeRendererFactory } from './factories/delay-node-renderer-factory';\nimport { createDeleteActiveInputConnectionToAudioNode } from './factories/delete-active-input-connection-to-audio-node';\nimport { createDeleteUnrenderedAudioWorkletNode } from './factories/delete-unrendered-audio-worklet-node';\nimport { createDetectCycles } from './factories/detect-cycles';\nimport { createDisconnectMultipleOutputs } from './factories/disconnect-multiple-outputs';\nimport { createDynamicsCompressorNodeConstructor } from './factories/dynamics-compressor-node-constructor';\nimport { createDynamicsCompressorNodeRendererFactory } from './factories/dynamics-compressor-node-renderer-factory';\nimport { createEncodingError } from './factories/encoding-error';\nimport { createEvaluateSource } from './factories/evaluate-source';\nimport { createEventTargetConstructor } from './factories/event-target-constructor';\nimport { createExposeCurrentFrameAndCurrentTime } from './factories/expose-current-frame-and-current-time';\nimport { createFetchSource } from './factories/fetch-source';\nimport { createGainNodeConstructor } from './factories/gain-node-constructor';\nimport { createGainNodeRendererFactory } from './factories/gain-node-renderer-factory';\nimport { createGetActiveAudioWorkletNodeInputs } from './factories/get-active-audio-worklet-node-inputs';\nimport { createGetAudioNodeRenderer } from './factories/get-audio-node-renderer';\nimport { createGetAudioNodeTailTime } from './factories/get-audio-node-tail-time';\nimport { createGetAudioParamRenderer } from './factories/get-audio-param-renderer';\nimport { createGetBackupOfflineAudioContext } from './factories/get-backup-offline-audio-context';\nimport { createGetNativeContext } from './factories/get-native-context';\nimport { createGetOrCreateBackupOfflineAudioContext } from './factories/get-or-create-backup-offline-audio-context';\nimport { createGetUnrenderedAudioWorkletNodes } from './factories/get-unrendered-audio-worklet-nodes';\nimport { createIIRFilterNodeConstructor } from './factories/iir-filter-node-constructor';\nimport { createIIRFilterNodeRendererFactory } from './factories/iir-filter-node-renderer-factory';\nimport { createIncrementCycleCounterFactory } from './factories/increment-cycle-counter-factory';\nimport { createIndexSizeError } from './factories/index-size-error';\nimport { createInvalidAccessError } from './factories/invalid-access-error';\nimport { createInvalidStateError } from './factories/invalid-state-error';\nimport { createIsAnyAudioContext } from './factories/is-any-audio-context';\nimport { createIsAnyAudioNode } from './factories/is-any-audio-node';\nimport { createIsAnyAudioParam } from './factories/is-any-audio-param';\nimport { createIsAnyOfflineAudioContext } from './factories/is-any-offline-audio-context';\nimport { createIsNativeAudioContext } from './factories/is-native-audio-context';\nimport { createIsNativeAudioNode } from './factories/is-native-audio-node';\nimport { createIsNativeAudioParam } from './factories/is-native-audio-param';\nimport { createIsNativeContext } from './factories/is-native-context';\nimport { createIsNativeOfflineAudioContext } from './factories/is-native-offline-audio-context';\nimport { createIsSecureContext } from './factories/is-secure-context';\nimport { createIsSupportedPromise } from './factories/is-supported-promise';\nimport { createMediaElementAudioSourceNodeConstructor } from './factories/media-element-audio-source-node-constructor';\nimport { createMediaStreamAudioDestinationNodeConstructor } from './factories/media-stream-audio-destination-node-constructor';\nimport { createMediaStreamAudioSourceNodeConstructor } from './factories/media-stream-audio-source-node-constructor';\nimport { createMediaStreamTrackAudioSourceNodeConstructor } from './factories/media-stream-track-audio-source-node-constructor';\nimport { createMinimalAudioContextConstructor } from './factories/minimal-audio-context-constructor';\nimport { createMinimalBaseAudioContextConstructor } from './factories/minimal-base-audio-context-constructor';\nimport { createMinimalOfflineAudioContextConstructor } from './factories/minimal-offline-audio-context-constructor';\nimport { createMonitorConnections } from './factories/monitor-connections';\nimport { createNativeAnalyserNodeFactory } from './factories/native-analyser-node-factory';\nimport { createNativeAudioBufferConstructor } from './factories/native-audio-buffer-constructor';\nimport { createNativeAudioBufferSourceNodeFactory } from './factories/native-audio-buffer-source-node-factory';\nimport { createNativeAudioContextConstructor } from './factories/native-audio-context-constructor';\nimport { createNativeAudioDestinationNodeFactory } from './factories/native-audio-destination-node';\nimport { createNativeAudioWorkletNodeConstructor } from './factories/native-audio-worklet-node-constructor';\nimport { createNativeAudioWorkletNodeFactory } from './factories/native-audio-worklet-node-factory';\nimport { createNativeAudioWorkletNodeFakerFactory } from './factories/native-audio-worklet-node-faker-factory';\nimport { createNativeBiquadFilterNode } from './factories/native-biquad-filter-node';\nimport { createNativeChannelMergerNodeFactory } from './factories/native-channel-merger-node-factory';\nimport { createNativeChannelSplitterNode } from './factories/native-channel-splitter-node';\nimport { createNativeConstantSourceNodeFactory } from './factories/native-constant-source-node-factory';\nimport { createNativeConstantSourceNodeFakerFactory } from './factories/native-constant-source-node-faker-factory';\nimport { createNativeConvolverNodeFactory } from './factories/native-convolver-node-factory';\nimport { createNativeDelayNode } from './factories/native-delay-node';\nimport { createNativeDynamicsCompressorNodeFactory } from './factories/native-dynamics-compressor-node-factory';\nimport { createNativeGainNode } from './factories/native-gain-node';\nimport { createNativeIIRFilterNodeFactory } from './factories/native-iir-filter-node-factory';\nimport { createNativeIIRFilterNodeFakerFactory } from './factories/native-iir-filter-node-faker-factory';\nimport { createNativeMediaElementAudioSourceNode } from './factories/native-media-element-audio-source-node';\nimport { createNativeMediaStreamAudioDestinationNode } from './factories/native-media-stream-audio-destination-node';\nimport { createNativeMediaStreamAudioSourceNode } from './factories/native-media-stream-audio-source-node';\nimport { createNativeMediaStreamTrackAudioSourceNodeFactory } from './factories/native-media-stream-track-audio-source-node-factory';\nimport { createNativeOfflineAudioContextConstructor } from './factories/native-offline-audio-context-constructor';\nimport { createNativeOscillatorNodeFactory } from './factories/native-oscillator-node-factory';\nimport { createNativePannerNodeFactory } from './factories/native-panner-node-factory';\nimport { createNativePannerNodeFakerFactory } from './factories/native-panner-node-faker-factory';\nimport { createNativePeriodicWaveFactory } from './factories/native-periodic-wave-factory';\nimport { createNativeScriptProcessorNode } from './factories/native-script-processor-node';\nimport { createNativeStereoPannerNodeFactory } from './factories/native-stereo-panner-node-factory';\nimport { createNativeStereoPannerNodeFakerFactory } from './factories/native-stereo-panner-node-faker-factory';\nimport { createNativeWaveShaperNodeFactory } from './factories/native-wave-shaper-node-factory';\nimport { createNativeWaveShaperNodeFakerFactory } from './factories/native-wave-shaper-node-faker-factory';\nimport { createNotSupportedError } from './factories/not-supported-error';\nimport { createOfflineAudioContextConstructor } from './factories/offline-audio-context-constructor';\nimport { createOscillatorNodeConstructor } from './factories/oscillator-node-constructor';\nimport { createOscillatorNodeRendererFactory } from './factories/oscillator-node-renderer-factory';\nimport { createPannerNodeConstructor } from './factories/panner-node-constructor';\nimport { createPannerNodeRendererFactory } from './factories/panner-node-renderer-factory';\nimport { createPeriodicWaveConstructor } from './factories/periodic-wave-constructor';\nimport { createRenderAutomation } from './factories/render-automation';\nimport { createRenderInputsOfAudioNode } from './factories/render-inputs-of-audio-node';\nimport { createRenderInputsOfAudioParam } from './factories/render-inputs-of-audio-param';\nimport { createRenderNativeOfflineAudioContext } from './factories/render-native-offline-audio-context';\nimport { createSetActiveAudioWorkletNodeInputs } from './factories/set-active-audio-worklet-node-inputs';\nimport { createSetAudioNodeTailTime } from './factories/set-audio-node-tail-time';\nimport { createStartRendering } from './factories/start-rendering';\nimport { createStereoPannerNodeConstructor } from './factories/stereo-panner-node-constructor';\nimport { createStereoPannerNodeRendererFactory } from './factories/stereo-panner-node-renderer-factory';\nimport { createTestAudioBufferConstructorSupport } from './factories/test-audio-buffer-constructor-support';\nimport { createTestAudioBufferCopyChannelMethodsSubarraySupport } from './factories/test-audio-buffer-copy-channel-methods-subarray-support';\nimport { createTestAudioContextCloseMethodSupport } from './factories/test-audio-context-close-method-support';\nimport { createTestAudioContextDecodeAudioDataMethodTypeErrorSupport } from './factories/test-audio-context-decode-audio-data-method-type-error-support';\nimport { createTestAudioContextOptionsSupport } from './factories/test-audio-context-options-support';\nimport { createTestAudioNodeConnectMethodSupport } from './factories/test-audio-node-connect-method-support';\nimport { createTestAudioWorkletProcessorNoOutputsSupport } from './factories/test-audio-worklet-processor-no-outputs-support';\nimport { createTestAudioWorkletProcessorPostMessageSupport } from './factories/test-audio-worklet-processor-post-message-support';\nimport { createTestChannelMergerNodeChannelCountSupport } from './factories/test-channel-merger-node-channel-count-support';\nimport { createTestConstantSourceNodeAccurateSchedulingSupport } from './factories/test-constant-source-node-accurate-scheduling-support';\nimport { createTestConvolverNodeBufferReassignabilitySupport } from './factories/test-convolver-node-buffer-reassignability-support';\nimport { createTestConvolverNodeChannelCountSupport } from './factories/test-convolver-node-channel-count-support';\nimport { createTestIsSecureContextSupport } from './factories/test-is-secure-context-support';\nimport { createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport } from './factories/test-media-stream-audio-source-node-media-stream-without-audio-track-support';\nimport { createTestOfflineAudioContextCurrentTimeSupport } from './factories/test-offline-audio-context-current-time-support';\nimport { createTestStereoPannerNodeDefaultValueSupport } from './factories/test-stereo-panner-node-default-value-support';\nimport { createUnknownError } from './factories/unknown-error';\nimport { createWaveShaperNodeConstructor } from './factories/wave-shaper-node-constructor';\nimport { createWaveShaperNodeRendererFactory } from './factories/wave-shaper-node-renderer-factory';\nimport { createWindow } from './factories/window';\nimport { createWrapAudioBufferCopyChannelMethods } from './factories/wrap-audio-buffer-copy-channel-methods';\nimport { createWrapAudioBufferCopyChannelMethodsOutOfBounds } from './factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds';\nimport { createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer } from './factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer';\nimport { createWrapChannelMergerNode } from './factories/wrap-channel-merger-node';\nimport {\n AUDIO_NODE_CONNECTIONS_STORE,\n AUDIO_NODE_STORE,\n AUDIO_PARAM_CONNECTIONS_STORE,\n AUDIO_PARAM_STORE,\n CONTEXT_STORE,\n CYCLE_COUNTERS\n} from './globals';\nimport { connectNativeAudioNodeToNativeAudioNode } from './helpers/connect-native-audio-node-to-native-audio-node';\nimport { disconnectNativeAudioNodeFromNativeAudioNode } from './helpers/disconnect-native-audio-node-from-native-audio-node';\nimport { getAudioNodeConnections } from './helpers/get-audio-node-connections';\nimport { getAudioParamConnections } from './helpers/get-audio-param-connections';\nimport { getEventListenersOfAudioNode } from './helpers/get-event-listeners-of-audio-node';\nimport { getFirstSample } from './helpers/get-first-sample';\nimport { getNativeAudioNode } from './helpers/get-native-audio-node';\nimport { getNativeAudioParam } from './helpers/get-native-audio-param';\nimport { getValueForKey } from './helpers/get-value-for-key';\nimport { insertElementInSet } from './helpers/insert-element-in-set';\nimport { isActiveAudioNode } from './helpers/is-active-audio-node';\nimport { isDCCurve } from './helpers/is-dc-curve';\nimport { isPartOfACycle } from './helpers/is-part-of-a-cycle';\nimport { isPassiveAudioNode } from './helpers/is-passive-audio-node';\nimport { overwriteAccessors } from './helpers/overwrite-accessors';\nimport { pickElementFromSet } from './helpers/pick-element-from-set';\nimport { sanitizeAudioWorkletNodeOptions } from './helpers/sanitize-audio-worklet-node-options';\nimport { sanitizeChannelSplitterOptions } from './helpers/sanitize-channel-splitter-options';\nimport { sanitizePeriodicWaveOptions } from './helpers/sanitize-periodic-wave-options';\nimport { setValueAtTimeUntilPossible } from './helpers/set-value-at-time-until-possible';\nimport { testAudioBufferCopyChannelMethodsOutOfBoundsSupport } from './helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support';\nimport { testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport } from './helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support';\nimport { testAudioBufferSourceNodeStartMethodOffsetClampingSupport } from './helpers/test-audio-buffer-source-node-start-method-offset-clamping-support';\nimport { testAudioBufferSourceNodeStopMethodNullifiedBufferSupport } from './helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support';\nimport { testAudioScheduledSourceNodeStartMethodNegativeParametersSupport } from './helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support';\nimport { testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport } from './helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support';\nimport { testAudioScheduledSourceNodeStopMethodNegativeParametersSupport } from './helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support';\nimport { testAudioWorkletNodeOptionsClonability } from './helpers/test-audio-worklet-node-options-clonability';\nimport { testDomExceptionConstructorSupport } from './helpers/test-dom-exception-constructor-support';\nimport { testPromiseSupport } from './helpers/test-promise-support';\nimport { testTransferablesSupport } from './helpers/test-transferables-support';\nimport { wrapAudioBufferSourceNodeStartMethodOffsetClamping } from './helpers/wrap-audio-buffer-source-node-start-method-offset-clamping';\nimport { wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls } from './helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls';\nimport { wrapEventListener } from './helpers/wrap-event-listener';\nimport {\n IAnalyserNode,\n IAudioBuffer,\n IAudioBufferSourceNode,\n IAudioContext,\n IAudioNode,\n IAudioWorkletNode,\n IBiquadFilterNode,\n IConstantSourceNode,\n IConvolverNode,\n IDelayNode,\n IDynamicsCompressorNode,\n IGainNode,\n IIIRFilterNode,\n IMediaElementAudioSourceNode,\n IMediaStreamAudioDestinationNode,\n IMediaStreamAudioSourceNode,\n IMediaStreamTrackAudioSourceNode,\n IMinimalAudioContext,\n IMinimalOfflineAudioContext,\n IOfflineAudioContext,\n IOfflineAudioContextConstructor,\n IOscillatorNode,\n IPannerNode,\n IPeriodicWave,\n IStereoPannerNode,\n IWaveShaperNode\n} from './interfaces';\nimport {\n TActiveAudioWorkletNodeInputsStore,\n TAddAudioWorkletModuleFunction,\n TAnalyserNodeConstructor,\n TAudioBufferConstructor,\n TAudioBufferSourceNodeConstructor,\n TAudioBufferStore,\n TAudioContextConstructor,\n TAudioParamAudioNodeStore,\n TAudioWorkletNodeConstructor,\n TBackupOfflineAudioContextStore,\n TBiquadFilterNodeConstructor,\n TChannelMergerNodeConstructor,\n TChannelSplitterNodeConstructor,\n TConstantSourceNodeConstructor,\n TContext,\n TConvolverNodeConstructor,\n TDecodeAudioDataFunction,\n TDelayNodeConstructor,\n TDynamicsCompressorNodeConstructor,\n TGainNodeConstructor,\n TIIRFilterNodeConstructor,\n TMediaElementAudioSourceNodeConstructor,\n TMediaStreamAudioDestinationNodeConstructor,\n TMediaStreamAudioSourceNodeConstructor,\n TMediaStreamTrackAudioSourceNodeConstructor,\n TMinimalAudioContextConstructor,\n TMinimalOfflineAudioContextConstructor,\n TOscillatorNodeConstructor,\n TPannerNodeConstructor,\n TPeriodicWaveConstructor,\n TStereoPannerNodeConstructor,\n TUnrenderedAudioWorkletNodeStore,\n TWaveShaperNodeConstructor\n} from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst addActiveInputConnectionToAudioNode = createAddActiveInputConnectionToAudioNode(insertElementInSet);\nconst addPassiveInputConnectionToAudioNode = createAddPassiveInputConnectionToAudioNode(insertElementInSet);\nconst deleteActiveInputConnectionToAudioNode = createDeleteActiveInputConnectionToAudioNode(pickElementFromSet);\nconst audioNodeTailTimeStore = new WeakMap();\nconst getAudioNodeTailTime = createGetAudioNodeTailTime(audioNodeTailTimeStore);\nconst cacheTestResult = createCacheTestResult(new Map(), new WeakMap());\nconst window = createWindow();\nconst createNativeAnalyserNode = createNativeAnalyserNodeFactory(cacheTestResult, createIndexSizeError);\nconst getAudioNodeRenderer = createGetAudioNodeRenderer(getAudioNodeConnections);\nconst renderInputsOfAudioNode = createRenderInputsOfAudioNode(getAudioNodeConnections, getAudioNodeRenderer, isPartOfACycle);\nconst createAnalyserNodeRenderer = createAnalyserNodeRendererFactory(createNativeAnalyserNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst getNativeContext = createGetNativeContext(CONTEXT_STORE);\nconst nativeOfflineAudioContextConstructor = createNativeOfflineAudioContextConstructor(window);\nconst isNativeOfflineAudioContext = createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor);\nconst audioParamAudioNodeStore: TAudioParamAudioNodeStore = new WeakMap();\nconst eventTargetConstructor = createEventTargetConstructor(wrapEventListener);\nconst nativeAudioContextConstructor = createNativeAudioContextConstructor(window);\nconst isNativeAudioContext = createIsNativeAudioContext(nativeAudioContextConstructor);\nconst isNativeAudioNode = createIsNativeAudioNode(window);\nconst isNativeAudioParam = createIsNativeAudioParam(window);\nconst nativeAudioWorkletNodeConstructor = createNativeAudioWorkletNodeConstructor(window);\nconst audioNodeConstructor = createAudioNodeConstructor(\n createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),\n createAddConnectionToAudioNode(\n addActiveInputConnectionToAudioNode,\n addPassiveInputConnectionToAudioNode,\n connectNativeAudioNodeToNativeAudioNode,\n deleteActiveInputConnectionToAudioNode,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getAudioNodeTailTime,\n getEventListenersOfAudioNode,\n getNativeAudioNode,\n insertElementInSet,\n isActiveAudioNode,\n isPartOfACycle,\n isPassiveAudioNode\n ),\n cacheTestResult,\n createIncrementCycleCounterFactory(\n CYCLE_COUNTERS,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n isActiveAudioNode\n ),\n createIndexSizeError,\n createInvalidAccessError,\n createNotSupportedError,\n createDecrementCycleCounter(\n connectNativeAudioNodeToNativeAudioNode,\n CYCLE_COUNTERS,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n getNativeContext,\n isActiveAudioNode,\n isNativeOfflineAudioContext\n ),\n createDetectCycles(audioParamAudioNodeStore, getAudioNodeConnections, getValueForKey),\n eventTargetConstructor,\n getNativeContext,\n isNativeAudioContext,\n isNativeAudioNode,\n isNativeAudioParam,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor\n);\nconst analyserNodeConstructor: TAnalyserNodeConstructor = createAnalyserNodeConstructor(\n audioNodeConstructor,\n createAnalyserNodeRenderer,\n createIndexSizeError,\n createNativeAnalyserNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\n\ntype analyserNodeConstructor = IAnalyserNode;\n\nexport { analyserNodeConstructor as AnalyserNode };\n\nconst audioBufferStore: TAudioBufferStore = new WeakSet();\nconst nativeAudioBufferConstructor = createNativeAudioBufferConstructor(window);\nconst convertNumberToUnsignedLong = createConvertNumberToUnsignedLong(new Uint32Array(1));\nconst wrapAudioBufferCopyChannelMethods = createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong, createIndexSizeError);\nconst wrapAudioBufferCopyChannelMethodsOutOfBounds = createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong);\nconst audioBufferConstructor: TAudioBufferConstructor = createAudioBufferConstructor(\n audioBufferStore,\n cacheTestResult,\n createNotSupportedError,\n nativeAudioBufferConstructor,\n nativeOfflineAudioContextConstructor,\n createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n);\n\ntype audioBufferConstructor = IAudioBuffer;\n\nexport { audioBufferConstructor as AudioBuffer };\n\nconst addSilentConnection = createAddSilentConnection(createNativeGainNode);\nconst renderInputsOfAudioParam = createRenderInputsOfAudioParam(getAudioNodeRenderer, getAudioParamConnections, isPartOfACycle);\nconst connectAudioParam = createConnectAudioParam(renderInputsOfAudioParam);\nconst createNativeAudioBufferSourceNode = createNativeAudioBufferSourceNodeFactory(\n addSilentConnection,\n cacheTestResult,\n testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,\n testAudioBufferSourceNodeStartMethodOffsetClampingSupport,\n testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioBufferSourceNodeStartMethodOffsetClamping,\n createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n);\nconst renderAutomation = createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections), renderInputsOfAudioParam);\nconst createAudioBufferSourceNodeRenderer = createAudioBufferSourceNodeRendererFactory(\n connectAudioParam,\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst createAudioParam = createAudioParamFactory(\n createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),\n audioParamAudioNodeStore,\n AUDIO_PARAM_STORE,\n createAudioParamRenderer,\n createCancelAndHoldAutomationEvent,\n createCancelScheduledValuesAutomationEvent,\n createExponentialRampToValueAutomationEvent,\n createLinearRampToValueAutomationEvent,\n createSetTargetAutomationEvent,\n createSetValueAutomationEvent,\n createSetValueCurveAutomationEvent,\n nativeAudioContextConstructor,\n setValueAtTimeUntilPossible\n);\nconst audioBufferSourceNodeConstructor: TAudioBufferSourceNodeConstructor = createAudioBufferSourceNodeConstructor(\n audioNodeConstructor,\n createAudioBufferSourceNodeRenderer,\n createAudioParam,\n createInvalidStateError,\n createNativeAudioBufferSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n);\n\ntype audioBufferSourceNodeConstructor = IAudioBufferSourceNode;\n\nexport { audioBufferSourceNodeConstructor as AudioBufferSourceNode };\n\nconst audioDestinationNodeConstructor = createAudioDestinationNodeConstructor(\n audioNodeConstructor,\n createAudioDestinationNodeRenderer,\n createIndexSizeError,\n createInvalidStateError,\n createNativeAudioDestinationNodeFactory(createNativeGainNode, overwriteAccessors),\n getNativeContext,\n isNativeOfflineAudioContext,\n renderInputsOfAudioNode\n);\nconst createBiquadFilterNodeRenderer = createBiquadFilterNodeRendererFactory(\n connectAudioParam,\n createNativeBiquadFilterNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst setAudioNodeTailTime = createSetAudioNodeTailTime(audioNodeTailTimeStore);\nconst biquadFilterNodeConstructor: TBiquadFilterNodeConstructor = createBiquadFilterNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createBiquadFilterNodeRenderer,\n createInvalidAccessError,\n createNativeBiquadFilterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst monitorConnections = createMonitorConnections(insertElementInSet, isNativeAudioNode);\nconst wrapChannelMergerNode = createWrapChannelMergerNode(createInvalidStateError, monitorConnections);\nconst createNativeChannelMergerNode = createNativeChannelMergerNodeFactory(nativeAudioContextConstructor, wrapChannelMergerNode);\nconst createChannelMergerNodeRenderer = createChannelMergerNodeRendererFactory(\n createNativeChannelMergerNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst channelMergerNodeConstructor: TChannelMergerNodeConstructor = createChannelMergerNodeConstructor(\n audioNodeConstructor,\n createChannelMergerNodeRenderer,\n createNativeChannelMergerNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createChannelSplitterNodeRenderer = createChannelSplitterNodeRendererFactory(\n createNativeChannelSplitterNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst channelSplitterNodeConstructor: TChannelSplitterNodeConstructor = createChannelSplitterNodeConstructor(\n audioNodeConstructor,\n createChannelSplitterNodeRenderer,\n createNativeChannelSplitterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n sanitizeChannelSplitterOptions\n);\nconst createNativeConstantSourceNodeFaker = createNativeConstantSourceNodeFakerFactory(\n addSilentConnection,\n createNativeAudioBufferSourceNode,\n createNativeGainNode,\n monitorConnections\n);\nconst createNativeConstantSourceNode = createNativeConstantSourceNodeFactory(\n addSilentConnection,\n cacheTestResult,\n createNativeConstantSourceNodeFaker,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport\n);\nconst createConstantSourceNodeRenderer = createConstantSourceNodeRendererFactory(\n connectAudioParam,\n createNativeConstantSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst constantSourceNodeConstructor: TConstantSourceNodeConstructor = createConstantSourceNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createConstantSourceNodeRenderer,\n createNativeConstantSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n);\nconst createNativeConvolverNode = createNativeConvolverNodeFactory(createNotSupportedError, overwriteAccessors);\nconst createConvolverNodeRenderer = createConvolverNodeRendererFactory(\n createNativeConvolverNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst convolverNodeConstructor: TConvolverNodeConstructor = createConvolverNodeConstructor(\n audioNodeConstructor,\n createConvolverNodeRenderer,\n createNativeConvolverNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createDelayNodeRenderer = createDelayNodeRendererFactory(\n connectAudioParam,\n createNativeDelayNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst delayNodeConstructor: TDelayNodeConstructor = createDelayNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createDelayNodeRenderer,\n createNativeDelayNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createNativeDynamicsCompressorNode = createNativeDynamicsCompressorNodeFactory(createNotSupportedError);\nconst createDynamicsCompressorNodeRenderer = createDynamicsCompressorNodeRendererFactory(\n connectAudioParam,\n createNativeDynamicsCompressorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst dynamicsCompressorNodeConstructor: TDynamicsCompressorNodeConstructor = createDynamicsCompressorNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createDynamicsCompressorNodeRenderer,\n createNativeDynamicsCompressorNode,\n createNotSupportedError,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createGainNodeRenderer = createGainNodeRendererFactory(\n connectAudioParam,\n createNativeGainNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst gainNodeConstructor: TGainNodeConstructor = createGainNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createGainNodeRenderer,\n createNativeGainNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createNativeIIRFilterNodeFaker = createNativeIIRFilterNodeFakerFactory(\n createInvalidAccessError,\n createInvalidStateError,\n createNativeScriptProcessorNode,\n createNotSupportedError\n);\nconst renderNativeOfflineAudioContext = createRenderNativeOfflineAudioContext(\n cacheTestResult,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode, nativeOfflineAudioContextConstructor)\n);\nconst createIIRFilterNodeRenderer = createIIRFilterNodeRendererFactory(\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n);\nconst createNativeIIRFilterNode = createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker);\nconst iIRFilterNodeConstructor: TIIRFilterNodeConstructor = createIIRFilterNodeConstructor(\n audioNodeConstructor,\n createNativeIIRFilterNode,\n createIIRFilterNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createAudioListener = createAudioListenerFactory(\n createAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n getFirstSample,\n isNativeOfflineAudioContext,\n overwriteAccessors\n);\nconst unrenderedAudioWorkletNodeStore: TUnrenderedAudioWorkletNodeStore = new WeakMap();\nconst minimalBaseAudioContextConstructor = createMinimalBaseAudioContextConstructor(\n audioDestinationNodeConstructor,\n createAudioListener,\n eventTargetConstructor,\n isNativeOfflineAudioContext,\n unrenderedAudioWorkletNodeStore,\n wrapEventListener\n);\nconst createNativeOscillatorNode = createNativeOscillatorNodeFactory(\n addSilentConnection,\n cacheTestResult,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n);\nconst createOscillatorNodeRenderer = createOscillatorNodeRendererFactory(\n connectAudioParam,\n createNativeOscillatorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst oscillatorNodeConstructor: TOscillatorNodeConstructor = createOscillatorNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createNativeOscillatorNode,\n createOscillatorNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n);\nconst createConnectedNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode);\nconst createNativeWaveShaperNodeFaker = createNativeWaveShaperNodeFakerFactory(\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeGainNode,\n isDCCurve,\n monitorConnections\n);\nconst createNativeWaveShaperNode = createNativeWaveShaperNodeFactory(\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeWaveShaperNodeFaker,\n isDCCurve,\n monitorConnections,\n nativeAudioContextConstructor,\n overwriteAccessors\n);\nconst createNativePannerNodeFaker = createNativePannerNodeFakerFactory(\n connectNativeAudioNodeToNativeAudioNode,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getFirstSample,\n monitorConnections\n);\nconst createNativePannerNode = createNativePannerNodeFactory(createNativePannerNodeFaker);\nconst createPannerNodeRenderer = createPannerNodeRendererFactory(\n connectAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativePannerNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n);\nconst pannerNodeConstructor: TPannerNodeConstructor = createPannerNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createNativePannerNode,\n createPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createNativePeriodicWave = createNativePeriodicWaveFactory(createIndexSizeError);\nconst periodicWaveConstructor: TPeriodicWaveConstructor = createPeriodicWaveConstructor(\n createNativePeriodicWave,\n getNativeContext,\n new WeakSet(),\n sanitizePeriodicWaveOptions\n);\nconst nativeStereoPannerNodeFakerFactory = createNativeStereoPannerNodeFakerFactory(\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeGainNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n monitorConnections\n);\nconst createNativeStereoPannerNode = createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory, createNotSupportedError);\nconst createStereoPannerNodeRenderer = createStereoPannerNodeRendererFactory(\n connectAudioParam,\n createNativeStereoPannerNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst stereoPannerNodeConstructor: TStereoPannerNodeConstructor = createStereoPannerNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createNativeStereoPannerNode,\n createStereoPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createWaveShaperNodeRenderer = createWaveShaperNodeRendererFactory(\n createNativeWaveShaperNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst waveShaperNodeConstructor: TWaveShaperNodeConstructor = createWaveShaperNodeConstructor(\n audioNodeConstructor,\n createInvalidStateError,\n createNativeWaveShaperNode,\n createWaveShaperNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst isSecureContext = createIsSecureContext(window);\nconst exposeCurrentFrameAndCurrentTime = createExposeCurrentFrameAndCurrentTime(window);\nconst backupOfflineAudioContextStore: TBackupOfflineAudioContextStore = new WeakMap();\nconst getOrCreateBackupOfflineAudioContext = createGetOrCreateBackupOfflineAudioContext(\n backupOfflineAudioContextStore,\n nativeOfflineAudioContextConstructor\n);\n\n// The addAudioWorkletModule() function is only available in a SecureContext.\nexport const addAudioWorkletModule: undefined | TAddAudioWorkletModuleFunction = isSecureContext\n ? createAddAudioWorkletModule(\n cacheTestResult,\n createNotSupportedError,\n createEvaluateSource(window),\n exposeCurrentFrameAndCurrentTime,\n createFetchSource(createAbortError),\n getNativeContext,\n getOrCreateBackupOfflineAudioContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n new WeakMap(),\n new WeakMap(),\n createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor),\n // @todo window is guaranteed to be defined because isSecureContext checks that as well.\n >window\n )\n : undefined;\n\nconst isNativeContext = createIsNativeContext(isNativeAudioContext, isNativeOfflineAudioContext);\n\nexport const decodeAudioData: TDecodeAudioDataFunction = createDecodeAudioData(\n audioBufferStore,\n cacheTestResult,\n createDataCloneError,\n createEncodingError,\n new WeakSet(),\n getNativeContext,\n isNativeContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n testPromiseSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n);\n\nconst baseAudioContextConstructor = createBaseAudioContextConstructor(\n addAudioWorkletModule,\n analyserNodeConstructor,\n audioBufferConstructor,\n audioBufferSourceNodeConstructor,\n biquadFilterNodeConstructor,\n channelMergerNodeConstructor,\n channelSplitterNodeConstructor,\n constantSourceNodeConstructor,\n convolverNodeConstructor,\n decodeAudioData,\n delayNodeConstructor,\n dynamicsCompressorNodeConstructor,\n gainNodeConstructor,\n iIRFilterNodeConstructor,\n minimalBaseAudioContextConstructor,\n oscillatorNodeConstructor,\n pannerNodeConstructor,\n periodicWaveConstructor,\n stereoPannerNodeConstructor,\n waveShaperNodeConstructor\n);\nconst mediaElementAudioSourceNodeConstructor: TMediaElementAudioSourceNodeConstructor = createMediaElementAudioSourceNodeConstructor(\n audioNodeConstructor,\n createNativeMediaElementAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst mediaStreamAudioDestinationNodeConstructor: TMediaStreamAudioDestinationNodeConstructor =\n createMediaStreamAudioDestinationNodeConstructor(\n audioNodeConstructor,\n createNativeMediaStreamAudioDestinationNode,\n getNativeContext,\n isNativeOfflineAudioContext\n );\nconst mediaStreamAudioSourceNodeConstructor: TMediaStreamAudioSourceNodeConstructor = createMediaStreamAudioSourceNodeConstructor(\n audioNodeConstructor,\n createNativeMediaStreamAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createNativeMediaStreamTrackAudioSourceNode = createNativeMediaStreamTrackAudioSourceNodeFactory(\n createInvalidStateError,\n isNativeOfflineAudioContext\n);\nconst mediaStreamTrackAudioSourceNodeConstructor: TMediaStreamTrackAudioSourceNodeConstructor =\n createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor, createNativeMediaStreamTrackAudioSourceNode, getNativeContext);\nconst audioContextConstructor: TAudioContextConstructor = createAudioContextConstructor(\n baseAudioContextConstructor,\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n mediaElementAudioSourceNodeConstructor,\n mediaStreamAudioDestinationNodeConstructor,\n mediaStreamAudioSourceNodeConstructor,\n mediaStreamTrackAudioSourceNodeConstructor,\n nativeAudioContextConstructor\n);\n\ntype audioContextConstructor = IAudioContext;\n\nexport { audioContextConstructor as AudioContext };\n\nconst getUnrenderedAudioWorkletNodes = createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore);\nconst addUnrenderedAudioWorkletNode = createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes);\nconst connectMultipleOutputs = createConnectMultipleOutputs(createIndexSizeError);\nconst deleteUnrenderedAudioWorkletNode = createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes);\nconst disconnectMultipleOutputs = createDisconnectMultipleOutputs(createIndexSizeError);\nconst activeAudioWorkletNodeInputsStore: TActiveAudioWorkletNodeInputsStore = new WeakMap();\nconst getActiveAudioWorkletNodeInputs = createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore, getValueForKey);\nconst createNativeAudioWorkletNodeFaker = createNativeAudioWorkletNodeFakerFactory(\n connectMultipleOutputs,\n createIndexSizeError,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getActiveAudioWorkletNodeInputs,\n monitorConnections\n);\nconst createNativeAudioWorkletNode = createNativeAudioWorkletNodeFactory(\n createInvalidStateError,\n createNativeAudioWorkletNodeFaker,\n createNativeGainNode,\n createNotSupportedError,\n monitorConnections\n);\nconst createAudioWorkletNodeRenderer = createAudioWorkletNodeRendererFactory(\n connectAudioParam,\n connectMultipleOutputs,\n createNativeAudioBufferSourceNode,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n deleteUnrenderedAudioWorkletNode,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getNativeAudioNode,\n nativeAudioWorkletNodeConstructor,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n);\nconst getBackupOfflineAudioContext = createGetBackupOfflineAudioContext(backupOfflineAudioContextStore);\nconst setActiveAudioWorkletNodeInputs = createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore);\n\n// The AudioWorkletNode constructor is only available in a SecureContext.\nconst audioWorkletNodeConstructor: undefined | TAudioWorkletNodeConstructor = isSecureContext\n ? createAudioWorkletNodeConstructor(\n addUnrenderedAudioWorkletNode,\n audioNodeConstructor,\n createAudioParam,\n createAudioWorkletNodeRenderer,\n createNativeAudioWorkletNode,\n getAudioNodeConnections,\n getBackupOfflineAudioContext,\n getNativeContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n sanitizeAudioWorkletNodeOptions,\n setActiveAudioWorkletNodeInputs,\n testAudioWorkletNodeOptionsClonability,\n wrapEventListener\n )\n : undefined;\n\ntype audioWorkletNodeConstructor = undefined | IAudioWorkletNode;\n\nexport { audioWorkletNodeConstructor as AudioWorkletNode };\n\ntype biquadFilterNodeConstructor = IBiquadFilterNode;\n\nexport { biquadFilterNodeConstructor as BiquadFilterNode };\n\ntype channelMergerNodeConstructor = IAudioNode;\n\nexport { channelMergerNodeConstructor as ChannelMergerNode };\n\ntype channelSplitterNodeConstructor = IAudioNode;\n\nexport { channelSplitterNodeConstructor as ChannelSplitterNode };\n\ntype constantSourceNodeConstructor = IConstantSourceNode;\n\nexport { convolverNodeConstructor as ConvolverNode };\n\ntype convolverNodeConstructor = IConvolverNode;\n\nexport { constantSourceNodeConstructor as ConstantSourceNode };\n\ntype delayNodeConstructor = IDelayNode;\n\nexport { delayNodeConstructor as DelayNode };\n\ntype dynamicsCompressorNodeConstructor = IDynamicsCompressorNode;\n\nexport { dynamicsCompressorNodeConstructor as DynamicsCompressorNode };\n\ntype gainNodeConstructor = IGainNode;\n\nexport { gainNodeConstructor as GainNode };\n\ntype iIRFilterNodeConstructor = IIIRFilterNode;\n\nexport { iIRFilterNodeConstructor as IIRFilterNode };\n\ntype mediaElementAudioSourceNodeConstructor = IMediaElementAudioSourceNode;\n\nexport { mediaElementAudioSourceNodeConstructor as MediaElementAudioSourceNode };\n\ntype mediaStreamAudioDestinationNodeConstructor = IMediaStreamAudioDestinationNode;\n\nexport { mediaStreamAudioDestinationNodeConstructor as MediaStreamAudioDestinationNode };\n\ntype mediaStreamAudioSourceNodeConstructor = IMediaStreamAudioSourceNode;\n\nexport { mediaStreamAudioSourceNodeConstructor as MediaStreamAudioSourceNode };\n\ntype mediaStreamTrackAudioSourceNodeConstructor = IMediaStreamTrackAudioSourceNode;\n\nexport { mediaStreamTrackAudioSourceNodeConstructor as MediaStreamTrackAudioSourceNode };\n\nconst minimalAudioContextConstructor: TMinimalAudioContextConstructor = createMinimalAudioContextConstructor(\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n minimalBaseAudioContextConstructor,\n nativeAudioContextConstructor\n);\n\ntype minimalAudioContextConstructor = IMinimalAudioContext;\n\nexport { minimalAudioContextConstructor as MinimalAudioContext };\n\nconst createNativeOfflineAudioContext = createCreateNativeOfflineAudioContext(\n createNotSupportedError,\n nativeOfflineAudioContextConstructor\n);\nconst startRendering = createStartRendering(\n audioBufferStore,\n cacheTestResult,\n getAudioNodeRenderer,\n getUnrenderedAudioWorkletNodes,\n renderNativeOfflineAudioContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n);\nconst minimalOfflineAudioContextConstructor: TMinimalOfflineAudioContextConstructor = createMinimalOfflineAudioContextConstructor(\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n minimalBaseAudioContextConstructor,\n startRendering\n);\n\ntype minimalOfflineAudioContextConstructor = IMinimalOfflineAudioContext;\n\nexport { minimalOfflineAudioContextConstructor as MinimalOfflineAudioContext };\n\nconst offlineAudioContextConstructor: IOfflineAudioContextConstructor = createOfflineAudioContextConstructor(\n baseAudioContextConstructor,\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n startRendering\n);\n\ntype offlineAudioContextConstructor = IOfflineAudioContext;\n\nexport { offlineAudioContextConstructor as OfflineAudioContext };\n\ntype oscillatorNodeConstructor = IOscillatorNode;\n\nexport { oscillatorNodeConstructor as OscillatorNode };\n\ntype pannerNodeConstructor = IPannerNode;\n\nexport { pannerNodeConstructor as PannerNode };\n\ntype periodicWaveConstructor = IPeriodicWave;\n\nexport { periodicWaveConstructor as PeriodicWave };\n\ntype stereoPannerNodeConstructor = IStereoPannerNode;\n\nexport { stereoPannerNodeConstructor as StereoPannerNode };\n\ntype waveShaperNodeConstructor = IWaveShaperNode;\n\nexport { waveShaperNodeConstructor as WaveShaperNode };\n\nexport const isAnyAudioContext = createIsAnyAudioContext(CONTEXT_STORE, isNativeAudioContext);\n\nexport const isAnyAudioNode = createIsAnyAudioNode(AUDIO_NODE_STORE, isNativeAudioNode);\n\nexport const isAnyAudioParam = createIsAnyAudioParam(AUDIO_PARAM_STORE, isNativeAudioParam);\n\nexport const isAnyOfflineAudioContext = createIsAnyOfflineAudioContext(CONTEXT_STORE, isNativeOfflineAudioContext);\n\nexport const isSupported = () =>\n createIsSupportedPromise(\n cacheTestResult,\n createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor),\n createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor),\n createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor),\n createTestAudioContextOptionsSupport(nativeAudioContextConstructor),\n createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor),\n createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor),\n createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor),\n createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor),\n createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor),\n createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor),\n testDomExceptionConstructorSupport,\n createTestIsSecureContextSupport(window),\n createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor),\n createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor),\n testTransferablesSupport\n );\n","import { TAddActiveInputConnectionToAudioNodeFactory } from '../types/add-active-input-connection-to-audio-node-factory';\n\nexport const createAddActiveInputConnectionToAudioNode: TAddActiveInputConnectionToAudioNodeFactory = (insertElementInSet) => {\n return (activeInputs, source, [output, input, eventListener], ignoreDuplicates) => {\n insertElementInSet(\n activeInputs[input],\n [source, output, eventListener],\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output,\n ignoreDuplicates\n );\n };\n};\n","import { TAddPassiveInputConnectionToAudioNodeFactory } from '../types';\n\nexport const createAddPassiveInputConnectionToAudioNode: TAddPassiveInputConnectionToAudioNodeFactory = (insertElementInSet) => {\n return (passiveInputs, input, [source, output, eventListener], ignoreDuplicates) => {\n const passiveInputConnections = passiveInputs.get(source);\n\n if (passiveInputConnections === undefined) {\n passiveInputs.set(source, new Set([[output, input, eventListener]]));\n } else {\n insertElementInSet(\n passiveInputConnections,\n [output, input, eventListener],\n (passiveInputConnection) => passiveInputConnection[0] === output && passiveInputConnection[1] === input,\n ignoreDuplicates\n );\n }\n };\n};\n","import { TDeleteActiveInputConnectionToAudioNodeFactory } from '../types';\n\nexport const createDeleteActiveInputConnectionToAudioNode: TDeleteActiveInputConnectionToAudioNodeFactory = (pickElementFromSet) => {\n return (activeInputs, source, output, input) => {\n return pickElementFromSet(\n activeInputs[input],\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output\n );\n };\n};\n","import { TGetAudioNodeTailTimeFactory } from '../types';\n\nexport const createGetAudioNodeTailTime: TGetAudioNodeTailTimeFactory = (audioNodeTailTimeStore) => {\n return (audioNode) => audioNodeTailTimeStore.get(audioNode) ?? 0;\n};\n","import { TWindow, TWindowFactory } from '../types';\n\nexport const createWindow: TWindowFactory = () => (typeof window === 'undefined' ? null : window);\n","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { testAnalyserNodeGetFloatTimeDomainDataMethodSupport } from '../helpers/test-analyser-node-get-float-time-domain-data-method-support';\nimport { wrapAnalyserNodeGetFloatTimeDomainDataMethod } from '../helpers/wrap-analyser-node-get-float-time-domain-data-method';\nimport { TNativeAnalyserNodeFactoryFactory } from '../types';\n\nexport const createNativeAnalyserNodeFactory: TNativeAnalyserNodeFactoryFactory = (cacheTestResult, createIndexSizeError) => {\n return (nativeContext, options) => {\n const nativeAnalyserNode = nativeContext.createAnalyser();\n\n // Bug #37: Firefox does not create an AnalyserNode with the default properties.\n assignNativeAudioNodeOptions(nativeAnalyserNode, options);\n\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n if (!(options.maxDecibels > options.minDecibels)) {\n throw createIndexSizeError();\n }\n\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'fftSize');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'maxDecibels');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'minDecibels');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'smoothingTimeConstant');\n\n // Bug #36: Safari does not support getFloatTimeDomainData() yet.\n if (\n !cacheTestResult(testAnalyserNodeGetFloatTimeDomainDataMethodSupport, () =>\n testAnalyserNodeGetFloatTimeDomainDataMethodSupport(nativeAnalyserNode)\n )\n ) {\n wrapAnalyserNodeGetFloatTimeDomainDataMethod(nativeAnalyserNode);\n }\n\n return nativeAnalyserNode;\n };\n};\n","import { TNativeAnalyserNode } from '../types';\n\nexport const wrapAnalyserNodeGetFloatTimeDomainDataMethod = (nativeAnalyserNode: TNativeAnalyserNode): void => {\n nativeAnalyserNode.getFloatTimeDomainData = (array: Float32Array) => {\n const byteTimeDomainData = new Uint8Array(array.length);\n\n nativeAnalyserNode.getByteTimeDomainData(byteTimeDomainData);\n\n const length = Math.max(byteTimeDomainData.length, nativeAnalyserNode.fftSize);\n\n for (let i = 0; i < length; i += 1) {\n array[i] = (byteTimeDomainData[i] - 128) * 0.0078125;\n }\n\n return array;\n };\n};\n","import { IAudioNode, IAudioNodeRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TGetAudioNodeRendererFactory } from '../types';\n\nexport const createGetAudioNodeRenderer: TGetAudioNodeRendererFactory = (getAudioNodeConnections) => {\n return (\n audioNode: IAudioNode\n ): IAudioNodeRenderer> => {\n const audioNodeConnections = getAudioNodeConnections(audioNode);\n\n if (audioNodeConnections.renderer === null) {\n throw new Error('Missing the renderer of the given AudioNode in the audio graph.');\n }\n\n return >>audioNodeConnections.renderer;\n };\n};\n","import { IAudioDestinationNode } from '../interfaces';\nimport { TRenderInputsOfAudioNodeFactory } from '../types';\n\nexport const createRenderInputsOfAudioNode: TRenderInputsOfAudioNodeFactory = (\n getAudioNodeConnections,\n getAudioNodeRenderer,\n isPartOfACycle\n) => {\n return async (audioNode, nativeOfflineAudioContext, nativeAudioNode) => {\n const audioNodeConnections = getAudioNodeConnections(audioNode);\n\n await Promise.all(\n audioNodeConnections.activeInputs\n .map((connections, input) =>\n Array.from(connections).map(async ([source, output]) => {\n const audioNodeRenderer = getAudioNodeRenderer(source);\n const renderedNativeAudioNode = await audioNodeRenderer.render(source, nativeOfflineAudioContext);\n const destination = >audioNode.context.destination;\n\n if (!isPartOfACycle(source) && (audioNode !== destination || !isPartOfACycle(audioNode))) {\n renderedNativeAudioNode.connect(nativeAudioNode, output, input);\n }\n })\n )\n .reduce((allRenderingPromises, renderingPromises) => [...allRenderingPromises, ...renderingPromises], [])\n );\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAnalyserNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAnalyserNodeRendererFactoryFactory, TNativeAnalyserNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createAnalyserNodeRendererFactory: TAnalyserNodeRendererFactoryFactory = (\n createNativeAnalyserNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAnalyserNodes = new WeakMap();\n\n const createAnalyserNode = async (proxy: IAnalyserNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAnalyserNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeAnalyserNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAnalyserNodeIsOwnedByContext = isOwnedByContext(nativeAnalyserNode, nativeOfflineAudioContext);\n\n if (!nativeAnalyserNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAnalyserNode.channelCount,\n channelCountMode: nativeAnalyserNode.channelCountMode,\n channelInterpretation: nativeAnalyserNode.channelInterpretation,\n fftSize: nativeAnalyserNode.fftSize,\n maxDecibels: nativeAnalyserNode.maxDecibels,\n minDecibels: nativeAnalyserNode.minDecibels,\n smoothingTimeConstant: nativeAnalyserNode.smoothingTimeConstant\n };\n\n nativeAnalyserNode = createNativeAnalyserNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAnalyserNodes.set(nativeOfflineAudioContext, nativeAnalyserNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAnalyserNode);\n\n return nativeAnalyserNode;\n };\n\n return {\n render(proxy: IAnalyserNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeAnalyserNode = renderedNativeAnalyserNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAnalyserNode !== undefined) {\n return Promise.resolve(renderedNativeAnalyserNode);\n }\n\n return createAnalyserNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TNativeOfflineAudioContextConstructorFactory } from '../types';\n\nexport const createNativeOfflineAudioContextConstructor: TNativeOfflineAudioContextConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n if (window.hasOwnProperty('OfflineAudioContext')) {\n return window.OfflineAudioContext;\n }\n\n return window.hasOwnProperty('webkitOfflineAudioContext') ? (window).webkitOfflineAudioContext : null;\n};\n","import { TIsNativeOfflineAudioContextFactory, TNativeOfflineAudioContext } from '../types';\n\nexport const createIsNativeOfflineAudioContext: TIsNativeOfflineAudioContextFactory = (nativeOfflineAudioContextConstructor) => {\n return (anything): anything is TNativeOfflineAudioContext => {\n return nativeOfflineAudioContextConstructor !== null && anything instanceof nativeOfflineAudioContextConstructor;\n };\n};\n","import { IEventTarget } from '../interfaces';\nimport { TEventHandler, TEventTargetConstructorFactory, TNativeEventTarget } from '../types';\n\nexport const createEventTargetConstructor: TEventTargetConstructorFactory = (wrapEventListener) => {\n return class EventTarget> implements IEventTarget {\n private _listeners: WeakMap;\n\n constructor(private _nativeEventTarget: TNativeEventTarget) {\n this._listeners = new WeakMap();\n }\n\n public addEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (listener !== null) {\n let wrappedEventListener = this._listeners.get(listener);\n\n if (wrappedEventListener === undefined) {\n wrappedEventListener = wrapEventListener(this, listener);\n\n if (typeof listener === 'function') {\n this._listeners.set(listener, wrappedEventListener);\n }\n }\n\n this._nativeEventTarget.addEventListener(type, wrappedEventListener, options);\n }\n }\n\n public dispatchEvent(event: Event): boolean {\n return this._nativeEventTarget.dispatchEvent(event);\n }\n\n public removeEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n const wrappedEventListener = listener === null ? undefined : this._listeners.get(listener);\n\n this._nativeEventTarget.removeEventListener(type, wrappedEventListener === undefined ? null : wrappedEventListener, options);\n }\n };\n};\n","import { TNativeAudioContextConstructorFactory } from '../types';\n\nexport const createNativeAudioContextConstructor: TNativeAudioContextConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n if (window.hasOwnProperty('AudioContext')) {\n return window.AudioContext;\n }\n\n return window.hasOwnProperty('webkitAudioContext') ? (window).webkitAudioContext : null;\n};\n","import { TIsNativeAudioContextFactory, TNativeAudioContext } from '../types';\n\nexport const createIsNativeAudioContext: TIsNativeAudioContextFactory = (nativeAudioContextConstructor) => {\n return (anything): anything is TNativeAudioContext => {\n return nativeAudioContextConstructor !== null && anything instanceof nativeAudioContextConstructor;\n };\n};\n","import { TIsNativeAudioNodeFactory, TNativeAudioNode } from '../types';\n\nexport const createIsNativeAudioNode: TIsNativeAudioNodeFactory = (window) => {\n return (anything): anything is TNativeAudioNode => {\n return window !== null && typeof window.AudioNode === 'function' && anything instanceof window.AudioNode;\n };\n};\n","import { TIsNativeAudioParamFactory, TNativeAudioParam } from '../types';\n\nexport const createIsNativeAudioParam: TIsNativeAudioParamFactory = (window) => {\n return (anything): anything is TNativeAudioParam => {\n return window !== null && typeof window.AudioParam === 'function' && anything instanceof window.AudioParam;\n };\n};\n","import { TNativeAudioWorkletNodeConstructorFactory } from '../types';\n\nexport const createNativeAudioWorkletNodeConstructor: TNativeAudioWorkletNodeConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n return window.hasOwnProperty('AudioWorkletNode') ? window.AudioWorkletNode : null;\n};\n","import { deletePassiveInputConnectionToAudioNode } from '../helpers/delete-passive-input-connection-to-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassiveWhenNecessary } from '../helpers/set-internal-state-to-passive-when-necessary';\nimport { IAudioNode } from '../interfaces';\nimport { TAddConnectionToAudioNodeFactory, TContext, TInternalStateEventListener } from '../types';\n\nexport const createAddConnectionToAudioNode: TAddConnectionToAudioNodeFactory = (\n addActiveInputConnectionToAudioNode,\n addPassiveInputConnectionToAudioNode,\n connectNativeAudioNodeToNativeAudioNode,\n deleteActiveInputConnectionToAudioNode,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getAudioNodeTailTime,\n getEventListenersOfAudioNode,\n getNativeAudioNode,\n insertElementInSet,\n isActiveAudioNode,\n isPartOfACycle,\n isPassiveAudioNode\n) => {\n const tailTimeTimeoutIds = new WeakMap, number>();\n\n return (source, destination, output, input, isOffline) => {\n const { activeInputs, passiveInputs } = getAudioNodeConnections(destination);\n const { outputs } = getAudioNodeConnections(source);\n const eventListeners = getEventListenersOfAudioNode(source);\n\n const eventListener: TInternalStateEventListener = (isActive) => {\n const nativeDestinationAudioNode = getNativeAudioNode(destination);\n const nativeSourceAudioNode = getNativeAudioNode(source);\n\n if (isActive) {\n const partialConnection = deletePassiveInputConnectionToAudioNode(passiveInputs, source, output, input);\n\n addActiveInputConnectionToAudioNode(activeInputs, source, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n connectNativeAudioNodeToNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output, input);\n }\n\n if (isPassiveAudioNode(destination)) {\n setInternalStateToActive(destination);\n }\n } else {\n const partialConnection = deleteActiveInputConnectionToAudioNode(activeInputs, source, output, input);\n\n addPassiveInputConnectionToAudioNode(passiveInputs, input, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n disconnectNativeAudioNodeFromNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output, input);\n }\n\n const tailTime = getAudioNodeTailTime(destination);\n\n if (tailTime === 0) {\n if (isActiveAudioNode(destination)) {\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n } else {\n const tailTimeTimeoutId = tailTimeTimeoutIds.get(destination);\n\n if (tailTimeTimeoutId !== undefined) {\n clearTimeout(tailTimeTimeoutId);\n }\n\n tailTimeTimeoutIds.set(\n destination,\n setTimeout(() => {\n if (isActiveAudioNode(destination)) {\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n }, tailTime * 1000)\n );\n }\n }\n };\n\n if (\n insertElementInSet(\n outputs,\n [destination, output, input],\n (outputConnection) =>\n outputConnection[0] === destination && outputConnection[1] === output && outputConnection[2] === input,\n true\n )\n ) {\n eventListeners.add(eventListener);\n\n if (isActiveAudioNode(source)) {\n addActiveInputConnectionToAudioNode(activeInputs, source, [output, input, eventListener], true);\n } else {\n addPassiveInputConnectionToAudioNode(passiveInputs, input, [source, output, eventListener], true);\n }\n\n return true;\n }\n\n return false;\n };\n};\n","import { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { TIncrementCycleCounterFactoryFactory } from '../types';\n\nexport const createIncrementCycleCounterFactory: TIncrementCycleCounterFactoryFactory = (\n cycleCounters,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n isActiveAudioNode\n) => {\n return (isOffline) => {\n return (audioNode, count) => {\n const cycleCounter = cycleCounters.get(audioNode);\n\n if (cycleCounter === undefined) {\n if (!isOffline && isActiveAudioNode(audioNode)) {\n const nativeSourceAudioNode = getNativeAudioNode(audioNode);\n const { outputs } = getAudioNodeConnections(audioNode);\n\n for (const output of outputs) {\n if (isAudioNodeOutputConnection(output)) {\n const nativeDestinationAudioNode = getNativeAudioNode(output[0]);\n\n disconnectNativeAudioNodeFromNativeAudioNode(\n nativeSourceAudioNode,\n nativeDestinationAudioNode,\n output[1],\n output[2]\n );\n } else {\n const nativeDestinationAudioParam = getNativeAudioParam(output[0]);\n\n nativeSourceAudioNode.disconnect(nativeDestinationAudioParam, output[1]);\n }\n }\n }\n\n cycleCounters.set(audioNode, count);\n } else {\n cycleCounters.set(audioNode, cycleCounter + count);\n }\n };\n };\n};\n","import { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { TDecrementCycleCounterFactory } from '../types';\n\nexport const createDecrementCycleCounter: TDecrementCycleCounterFactory = (\n connectNativeAudioNodeToNativeAudioNode,\n cycleCounters,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n getNativeContext,\n isActiveAudioNode,\n isNativeOfflineAudioContext\n) => {\n return (audioNode, count) => {\n const cycleCounter = cycleCounters.get(audioNode);\n\n if (cycleCounter === undefined) {\n throw new Error('Missing the expected cycle count.');\n }\n\n const nativeContext = getNativeContext(audioNode.context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n if (cycleCounter === count) {\n cycleCounters.delete(audioNode);\n\n if (!isOffline && isActiveAudioNode(audioNode)) {\n const nativeSourceAudioNode = getNativeAudioNode(audioNode);\n const { outputs } = getAudioNodeConnections(audioNode);\n\n for (const output of outputs) {\n if (isAudioNodeOutputConnection(output)) {\n const nativeDestinationAudioNode = getNativeAudioNode(output[0]);\n\n connectNativeAudioNodeToNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output[1], output[2]);\n } else {\n const nativeDestinationAudioParam = getNativeAudioParam(output[0]);\n\n nativeSourceAudioNode.connect(nativeDestinationAudioParam, output[1]);\n }\n }\n }\n } else {\n cycleCounters.set(audioNode, cycleCounter - count);\n }\n };\n};\n","import { isAudioNode } from '../guards/audio-node';\nimport { isDelayNode } from '../guards/delay-node';\nimport { IAudioNode, IAudioParam } from '../interfaces';\nimport { TContext, TDetectCyclesFactory } from '../types';\n\nexport const createDetectCycles: TDetectCyclesFactory = (audioParamAudioNodeStore, getAudioNodeConnections, getValueForKey) => {\n return function detectCycles(chain: IAudioNode[], nextLink: IAudioNode | IAudioParam): IAudioNode[][] {\n const audioNode = isAudioNode(nextLink) ? nextLink : >getValueForKey(audioParamAudioNodeStore, nextLink);\n\n if (isDelayNode(audioNode)) {\n return [];\n }\n\n if (chain[0] === audioNode) {\n return [chain];\n }\n\n if (chain.includes(audioNode)) {\n return [];\n }\n\n const { outputs } = getAudioNodeConnections(audioNode);\n\n return Array.from(outputs)\n .map((outputConnection) => detectCycles([...chain, audioNode], outputConnection[0]))\n .reduce((mergedCycles, nestedCycles) => mergedCycles.concat(nestedCycles), []);\n };\n};\n","import { IAudioNode, IDelayNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isDelayNode = (audioNode: IAudioNode): audioNode is IDelayNode => {\n return 'delayTime' in audioNode;\n};\n","import { TNativeAudioBufferConstructorFactory } from '../types';\n\nexport const createNativeAudioBufferConstructor: TNativeAudioBufferConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n if (window.hasOwnProperty('AudioBuffer')) {\n return window.AudioBuffer;\n }\n\n return null;\n};\n","import { TNativeAudioBuffer, TWrapAudioBufferCopyChannelMethodsFactory } from '../types';\n\nexport const createWrapAudioBufferCopyChannelMethods: TWrapAudioBufferCopyChannelMethodsFactory = (\n convertNumberToUnsignedLong,\n createIndexSizeError\n) => {\n return (audioBuffer: TNativeAudioBuffer): void => {\n audioBuffer.copyFromChannel = (destination, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (channelNumber >= audioBuffer.numberOfChannels) {\n throw createIndexSizeError();\n }\n\n const audioBufferLength = audioBuffer.length;\n const channelData = audioBuffer.getChannelData(channelNumber);\n const destinationLength = destination.length;\n\n for (let i = bufferOffset < 0 ? -bufferOffset : 0; i + bufferOffset < audioBufferLength && i < destinationLength; i += 1) {\n destination[i] = channelData[i + bufferOffset];\n }\n };\n\n audioBuffer.copyToChannel = (source, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (channelNumber >= audioBuffer.numberOfChannels) {\n throw createIndexSizeError();\n }\n\n const audioBufferLength = audioBuffer.length;\n const channelData = audioBuffer.getChannelData(channelNumber);\n const sourceLength = source.length;\n\n for (let i = bufferOffset < 0 ? -bufferOffset : 0; i + bufferOffset < audioBufferLength && i < sourceLength; i += 1) {\n channelData[i + bufferOffset] = source[i];\n }\n };\n };\n};\n","import { TNativeAudioBuffer, TWrapAudioBufferCopyChannelMethodsOutOfBoundsFactory } from '../types';\n\nexport const createWrapAudioBufferCopyChannelMethodsOutOfBounds: TWrapAudioBufferCopyChannelMethodsOutOfBoundsFactory = (\n convertNumberToUnsignedLong\n) => {\n return (audioBuffer: TNativeAudioBuffer): void => {\n audioBuffer.copyFromChannel = ((copyFromChannel) => {\n return (destination: Float32Array, channelNumberAsNumber: number, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (bufferOffset < audioBuffer.length) {\n return copyFromChannel.call(audioBuffer, destination, channelNumber, bufferOffset);\n }\n };\n })(audioBuffer.copyFromChannel);\n\n audioBuffer.copyToChannel = ((copyToChannel) => {\n return (source: Float32Array, channelNumberAsNumber: number, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (bufferOffset < audioBuffer.length) {\n return copyToChannel.call(audioBuffer, source, channelNumber, bufferOffset);\n }\n };\n })(audioBuffer.copyToChannel);\n };\n};\n","import { TTestAudioBufferConstructorSupportFactory } from '../types';\n\n// Bug #33: Safari exposes an AudioBuffer but it can't be used as a constructor.\nexport const createTestAudioBufferConstructorSupport: TTestAudioBufferConstructorSupportFactory = (nativeAudioBufferConstructor) => {\n return () => {\n if (nativeAudioBufferConstructor === null) {\n return false;\n }\n\n try {\n new nativeAudioBufferConstructor({ length: 1, sampleRate: 44100 }); // tslint:disable-line:no-unused-expression\n } catch {\n return false;\n }\n\n return true;\n };\n};\n","import { TAddSilentConnectionFactory } from '../types';\n\nexport const createAddSilentConnection: TAddSilentConnectionFactory = (createNativeGainNode) => {\n return (nativeContext, nativeAudioScheduledSourceNode) => {\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n nativeAudioScheduledSourceNode.connect(nativeGainNode).connect(nativeContext.destination);\n\n const disconnect = () => {\n nativeAudioScheduledSourceNode.removeEventListener('ended', disconnect);\n nativeAudioScheduledSourceNode.disconnect(nativeGainNode);\n nativeGainNode.disconnect();\n };\n\n nativeAudioScheduledSourceNode.addEventListener('ended', disconnect);\n };\n};\n","import { IAudioParam, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TNativeAudioParam, TNativeOfflineAudioContext, TRenderInputsOfAudioParamFactory } from '../types';\n\nexport const createRenderInputsOfAudioParam: TRenderInputsOfAudioParamFactory = (\n getAudioNodeRenderer,\n getAudioParamConnections,\n isPartOfACycle\n) => {\n return async (\n audioParam: IAudioParam,\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n nativeAudioParam: TNativeAudioParam\n ): Promise => {\n const audioParamConnections = getAudioParamConnections(audioParam);\n\n await Promise.all(\n Array.from(audioParamConnections.activeInputs).map(async ([source, output]) => {\n const audioNodeRenderer = getAudioNodeRenderer(source);\n const renderedNativeAudioNode = await audioNodeRenderer.render(source, nativeOfflineAudioContext);\n\n if (!isPartOfACycle(source)) {\n renderedNativeAudioNode.connect(nativeAudioParam, output);\n }\n })\n );\n };\n};\n","import { TConnectAudioParamFactory } from '../types';\n\nexport const createConnectAudioParam: TConnectAudioParamFactory = (renderInputsOfAudioParam) => {\n return (nativeOfflineAudioContext, audioParam, nativeAudioParam) => {\n return renderInputsOfAudioParam(audioParam, nativeOfflineAudioContext, nativeAudioParam);\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioBufferSourceNodeStartMethodConsecutiveCalls } from '../helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nimport { TNativeAudioBufferSourceNodeFactoryFactory } from '../types';\n\nexport const createNativeAudioBufferSourceNodeFactory: TNativeAudioBufferSourceNodeFactoryFactory = (\n addSilentConnection,\n cacheTestResult,\n testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,\n testAudioBufferSourceNodeStartMethodOffsetClampingSupport,\n testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioBufferSourceNodeStartMethodOffsetClampling,\n wrapAudioBufferSourceNodeStopMethodNullifiedBuffer,\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n) => {\n return (nativeContext, options) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n assignNativeAudioNodeOptions(nativeAudioBufferSourceNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeAudioBufferSourceNode, options, 'playbackRate');\n\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'buffer');\n\n // Bug #149: Safari does not yet support the detune AudioParam.\n\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loop');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loopEnd');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loopStart');\n\n // Bug #69: Safari does allow calls to start() of an already scheduled AudioBufferSourceNode.\n if (\n !cacheTestResult(testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport, () =>\n testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport(nativeContext)\n )\n ) {\n wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(nativeAudioBufferSourceNode);\n }\n\n // Bug #154 & #155: Safari does not handle offsets which are equal to or greater than the duration of the buffer.\n if (\n !cacheTestResult(testAudioBufferSourceNodeStartMethodOffsetClampingSupport, () =>\n testAudioBufferSourceNodeStartMethodOffsetClampingSupport(nativeContext)\n )\n ) {\n wrapAudioBufferSourceNodeStartMethodOffsetClampling(nativeAudioBufferSourceNode);\n }\n\n // Bug #162: Safari does throw an error when stop() is called on an AudioBufferSourceNode which has no buffer assigned to it.\n if (\n !cacheTestResult(testAudioBufferSourceNodeStopMethodNullifiedBufferSupport, () =>\n testAudioBufferSourceNodeStopMethodNullifiedBufferSupport(nativeContext)\n )\n ) {\n wrapAudioBufferSourceNodeStopMethodNullifiedBuffer(nativeAudioBufferSourceNode, nativeContext);\n }\n\n // Bug #44: Safari does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeAudioBufferSourceNode);\n }\n\n // Bug #19: Safari does not ignore calls to stop() of an already stopped AudioBufferSourceNode.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, () =>\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls(nativeAudioBufferSourceNode, nativeContext);\n }\n\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeAudioBufferSourceNode);\n }\n\n // Bug #175: Safari will not fire an ended event if the AudioBufferSourceNode is unconnected.\n addSilentConnection(nativeContext, nativeAudioBufferSourceNode);\n\n return nativeAudioBufferSourceNode;\n };\n};\n","import { createInvalidStateError } from '../factories/invalid-state-error';\nimport { TNativeAudioBufferSourceNode } from '../types';\n\nexport const wrapAudioBufferSourceNodeStartMethodConsecutiveCalls = (nativeAudioBufferSourceNode: TNativeAudioBufferSourceNode): void => {\n nativeAudioBufferSourceNode.start = ((start) => {\n let isScheduled = false;\n\n return (when = 0, offset = 0, duration?: number) => {\n if (isScheduled) {\n throw createInvalidStateError();\n }\n\n start.call(nativeAudioBufferSourceNode, when, offset, duration);\n\n isScheduled = true;\n };\n })(nativeAudioBufferSourceNode.start);\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n nativeAudioBufferSourceNode.start();\n\n try {\n nativeAudioBufferSourceNode.start();\n } catch {\n return true;\n }\n\n return false;\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioBufferSourceNodeStartMethodOffsetClampingSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n const nativeAudioBuffer = nativeContext.createBuffer(1, 1, 44100);\n\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n\n try {\n nativeAudioBufferSourceNode.start(0, 1);\n } catch {\n return false;\n }\n\n return true;\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioBufferSourceNodeStopMethodNullifiedBufferSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n nativeAudioBufferSourceNode.start();\n\n try {\n nativeAudioBufferSourceNode.stop();\n } catch {\n return false;\n }\n\n return true;\n};\n","import { TNativeAudioBufferSourceNode } from '../types';\n\nexport const wrapAudioBufferSourceNodeStartMethodOffsetClamping = (nativeAudioBufferSourceNode: TNativeAudioBufferSourceNode): void => {\n nativeAudioBufferSourceNode.start = ((start) => {\n return (when = 0, offset = 0, duration?: number) => {\n const buffer = nativeAudioBufferSourceNode.buffer;\n // Bug #154: Safari does not clamp the offset if it is equal to or greater than the duration of the buffer.\n const clampedOffset = buffer === null ? offset : Math.min(buffer.duration, offset);\n\n // Bug #155: Safari does not handle the offset correctly if it would cause the buffer to be not be played at all.\n if (buffer !== null && clampedOffset > buffer.duration - 0.5 / nativeAudioBufferSourceNode.context.sampleRate) {\n start.call(nativeAudioBufferSourceNode, when, 0, 0);\n } else {\n start.call(nativeAudioBufferSourceNode, when, clampedOffset, duration);\n }\n };\n })(nativeAudioBufferSourceNode.start);\n};\n","import { TWrapAudioBufferSourceNodeStopMethodNullifiedBufferFactory } from '../types';\n\nexport const createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer: TWrapAudioBufferSourceNodeStopMethodNullifiedBufferFactory = (\n overwriteAccessors\n) => {\n return (nativeAudioBufferSourceNode, nativeContext) => {\n const nullifiedBuffer = nativeContext.createBuffer(1, 1, 44100);\n\n if (nativeAudioBufferSourceNode.buffer === null) {\n nativeAudioBufferSourceNode.buffer = nullifiedBuffer;\n }\n\n overwriteAccessors(\n nativeAudioBufferSourceNode,\n 'buffer',\n (get) => () => {\n const value = get.call(nativeAudioBufferSourceNode);\n\n return value === nullifiedBuffer ? null : value;\n },\n (set) => (value) => {\n return set.call(nativeAudioBufferSourceNode, value === null ? nullifiedBuffer : value);\n }\n );\n };\n};\n","import { TRenderAutomationFactory } from '../types';\n\nexport const createRenderAutomation: TRenderAutomationFactory = (getAudioParamRenderer, renderInputsOfAudioParam) => {\n return (nativeOfflineAudioContext, audioParam, nativeAudioParam) => {\n const audioParamRenderer = getAudioParamRenderer(audioParam);\n\n audioParamRenderer.replay(nativeAudioParam);\n\n return renderInputsOfAudioParam(audioParam, nativeOfflineAudioContext, nativeAudioParam);\n };\n};\n","import { IMinimalOfflineAudioContext } from '../interfaces';\nimport { TGetAudioParamRendererFactory } from '../types';\n\nexport const createGetAudioParamRenderer: TGetAudioParamRendererFactory = (getAudioParamConnections) => {\n return (audioParam) => {\n const audioParamConnections = getAudioParamConnections(audioParam);\n\n if (audioParamConnections.renderer === null) {\n throw new Error('Missing the renderer of the given AudioParam in the audio graph.');\n }\n\n return audioParamConnections.renderer;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAudioBufferSourceNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAudioBufferSourceNodeRendererFactoryFactory, TNativeAudioBufferSourceNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createAudioBufferSourceNodeRendererFactory: TAudioBufferSourceNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAudioBufferSourceNodes = new WeakMap();\n\n let start: null | [number, number] | [number, number, number] = null;\n let stop: null | number = null;\n\n const createAudioBufferSourceNode = async (\n proxy: IAudioBufferSourceNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ) => {\n let nativeAudioBufferSourceNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeAudioBufferSourceNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeAudioBufferSourceNodeIsOwnedByContext = isOwnedByContext(nativeAudioBufferSourceNode, nativeOfflineAudioContext);\n\n if (!nativeAudioBufferSourceNodeIsOwnedByContext) {\n const options = {\n buffer: nativeAudioBufferSourceNode.buffer,\n channelCount: nativeAudioBufferSourceNode.channelCount,\n channelCountMode: nativeAudioBufferSourceNode.channelCountMode,\n channelInterpretation: nativeAudioBufferSourceNode.channelInterpretation,\n // Bug #149: Safari does not yet support the detune AudioParam.\n loop: nativeAudioBufferSourceNode.loop,\n loopEnd: nativeAudioBufferSourceNode.loopEnd,\n loopStart: nativeAudioBufferSourceNode.loopStart,\n playbackRate: nativeAudioBufferSourceNode.playbackRate.value\n };\n\n nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, options);\n\n if (start !== null) {\n nativeAudioBufferSourceNode.start(...start);\n }\n\n if (stop !== null) {\n nativeAudioBufferSourceNode.stop(stop);\n }\n }\n\n renderedNativeAudioBufferSourceNodes.set(nativeOfflineAudioContext, nativeAudioBufferSourceNode);\n\n if (!nativeAudioBufferSourceNodeIsOwnedByContext) {\n // Bug #149: Safari does not yet support the detune AudioParam.\n await renderAutomation(nativeOfflineAudioContext, proxy.playbackRate, nativeAudioBufferSourceNode.playbackRate);\n } else {\n // Bug #149: Safari does not yet support the detune AudioParam.\n await connectAudioParam(nativeOfflineAudioContext, proxy.playbackRate, nativeAudioBufferSourceNode.playbackRate);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioBufferSourceNode);\n\n return nativeAudioBufferSourceNode;\n };\n\n return {\n set start(value: [number, number] | [number, number, number]) {\n start = value;\n },\n set stop(value: number) {\n stop = value;\n },\n render(\n proxy: IAudioBufferSourceNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeAudioBufferSourceNode = renderedNativeAudioBufferSourceNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioBufferSourceNode !== undefined) {\n return Promise.resolve(renderedNativeAudioBufferSourceNode);\n }\n\n return createAudioBufferSourceNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { AutomationEventList } from 'automation-events';\nimport { IAudioNode, IAudioParam, IAudioParamRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAudioParamFactoryFactory, TContext, TNativeAudioParam } from '../types';\n\nexport const createAudioParamFactory: TAudioParamFactoryFactory = (\n addAudioParamConnections,\n audioParamAudioNodeStore,\n audioParamStore,\n createAudioParamRenderer,\n createCancelAndHoldAutomationEvent,\n createCancelScheduledValuesAutomationEvent,\n createExponentialRampToValueAutomationEvent,\n createLinearRampToValueAutomationEvent,\n createSetTargetAutomationEvent,\n createSetValueAutomationEvent,\n createSetValueCurveAutomationEvent,\n nativeAudioContextConstructor,\n setValueAtTimeUntilPossible\n) => {\n return (\n audioNode: IAudioNode,\n isAudioParamOfOfflineAudioContext: boolean,\n nativeAudioParam: TNativeAudioParam,\n maxValue: null | number = null,\n minValue: null | number = null\n ): IAudioParam => {\n const automationEventList = new AutomationEventList(nativeAudioParam.defaultValue);\n const audioParamRenderer = isAudioParamOfOfflineAudioContext ? createAudioParamRenderer(automationEventList) : null;\n const audioParam = {\n get defaultValue(): number {\n return nativeAudioParam.defaultValue;\n },\n get maxValue(): number {\n return maxValue === null ? nativeAudioParam.maxValue : maxValue;\n },\n get minValue(): number {\n return minValue === null ? nativeAudioParam.minValue : minValue;\n },\n get value(): number {\n return nativeAudioParam.value;\n },\n set value(value) {\n nativeAudioParam.value = value;\n\n // Bug #98: Firefox & Safari do not yet treat the value setter like a call to setValueAtTime().\n audioParam.setValueAtTime(value, audioNode.context.currentTime);\n },\n cancelAndHoldAtTime(cancelTime: number): IAudioParam {\n // Bug #28: Firefox & Safari do not yet implement cancelAndHoldAtTime().\n if (typeof nativeAudioParam.cancelAndHoldAtTime === 'function') {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createCancelAndHoldAutomationEvent(cancelTime));\n nativeAudioParam.cancelAndHoldAtTime(cancelTime);\n } else {\n const previousLastEvent = Array.from(automationEventList).pop();\n\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createCancelAndHoldAutomationEvent(cancelTime));\n\n const currentLastEvent = Array.from(automationEventList).pop();\n\n nativeAudioParam.cancelScheduledValues(cancelTime);\n\n if (previousLastEvent !== currentLastEvent && currentLastEvent !== undefined) {\n if (currentLastEvent.type === 'exponentialRampToValue') {\n nativeAudioParam.exponentialRampToValueAtTime(currentLastEvent.value, currentLastEvent.endTime);\n } else if (currentLastEvent.type === 'linearRampToValue') {\n nativeAudioParam.linearRampToValueAtTime(currentLastEvent.value, currentLastEvent.endTime);\n } else if (currentLastEvent.type === 'setValue') {\n nativeAudioParam.setValueAtTime(currentLastEvent.value, currentLastEvent.startTime);\n } else if (currentLastEvent.type === 'setValueCurve') {\n nativeAudioParam.setValueCurveAtTime(\n currentLastEvent.values,\n currentLastEvent.startTime,\n currentLastEvent.duration\n );\n }\n }\n }\n\n return audioParam;\n },\n cancelScheduledValues(cancelTime: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createCancelScheduledValuesAutomationEvent(cancelTime));\n nativeAudioParam.cancelScheduledValues(cancelTime);\n\n return audioParam;\n },\n exponentialRampToValueAtTime(value: number, endTime: number): IAudioParam {\n // Bug #45: Safari does not throw an error yet.\n if (value === 0) {\n throw new RangeError();\n }\n\n // Bug #187: Safari does not throw an error yet.\n if (!Number.isFinite(endTime) || endTime < 0) {\n throw new RangeError();\n }\n\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createExponentialRampToValueAutomationEvent(value, endTime));\n nativeAudioParam.exponentialRampToValueAtTime(value, endTime);\n\n return audioParam;\n },\n linearRampToValueAtTime(value: number, endTime: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createLinearRampToValueAutomationEvent(value, endTime));\n nativeAudioParam.linearRampToValueAtTime(value, endTime);\n\n return audioParam;\n },\n setTargetAtTime(target: number, startTime: number, timeConstant: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetTargetAutomationEvent(target, startTime, timeConstant));\n nativeAudioParam.setTargetAtTime(target, startTime, timeConstant);\n\n return audioParam;\n },\n setValueAtTime(value: number, startTime: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetValueAutomationEvent(value, startTime));\n nativeAudioParam.setValueAtTime(value, startTime);\n\n return audioParam;\n },\n setValueCurveAtTime(values: Iterable, startTime: number, duration: number): IAudioParam {\n // Bug 183: Safari only accepts a Float32Array.\n const convertedValues = values instanceof Float32Array ? values : new Float32Array(values);\n /*\n * Bug #152: Safari does not correctly interpolate the values of the curve.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the\n * existence of the webkitAudioContext is used as a workaround here.\n */\n if (nativeAudioContextConstructor !== null && nativeAudioContextConstructor.name === 'webkitAudioContext') {\n const endTime = startTime + duration;\n const sampleRate = audioNode.context.sampleRate;\n const firstSample = Math.ceil(startTime * sampleRate);\n const lastSample = Math.floor(endTime * sampleRate);\n const numberOfInterpolatedValues = lastSample - firstSample;\n const interpolatedValues = new Float32Array(numberOfInterpolatedValues);\n\n for (let i = 0; i < numberOfInterpolatedValues; i += 1) {\n const theoreticIndex = ((convertedValues.length - 1) / duration) * ((firstSample + i) / sampleRate - startTime);\n const lowerIndex = Math.floor(theoreticIndex);\n const upperIndex = Math.ceil(theoreticIndex);\n\n interpolatedValues[i] =\n lowerIndex === upperIndex\n ? convertedValues[lowerIndex]\n : (1 - (theoreticIndex - lowerIndex)) * convertedValues[lowerIndex] +\n (1 - (upperIndex - theoreticIndex)) * convertedValues[upperIndex];\n }\n\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetValueCurveAutomationEvent(interpolatedValues, startTime, duration));\n nativeAudioParam.setValueCurveAtTime(interpolatedValues, startTime, duration);\n\n const timeOfLastSample = lastSample / sampleRate;\n\n if (timeOfLastSample < endTime) {\n setValueAtTimeUntilPossible(audioParam, interpolatedValues[interpolatedValues.length - 1], timeOfLastSample);\n }\n\n setValueAtTimeUntilPossible(audioParam, convertedValues[convertedValues.length - 1], endTime);\n } else {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetValueCurveAutomationEvent(convertedValues, startTime, duration));\n nativeAudioParam.setValueCurveAtTime(convertedValues, startTime, duration);\n }\n\n return audioParam;\n }\n };\n\n audioParamStore.set(audioParam, nativeAudioParam);\n audioParamAudioNodeStore.set(audioParam, audioNode);\n\n addAudioParamConnections(\n audioParam,\n audioParamRenderer\n );\n\n return audioParam;\n };\n};\n","import { TAudioParamRendererFactory, TNativeAudioParam } from '../types';\n\nexport const createAudioParamRenderer: TAudioParamRendererFactory = (automationEventList) => {\n return {\n replay(audioParam: TNativeAudioParam): void {\n for (const automationEvent of automationEventList) {\n if (automationEvent.type === 'exponentialRampToValue') {\n const { endTime, value } = automationEvent;\n\n audioParam.exponentialRampToValueAtTime(value, endTime);\n } else if (automationEvent.type === 'linearRampToValue') {\n const { endTime, value } = automationEvent;\n\n audioParam.linearRampToValueAtTime(value, endTime);\n } else if (automationEvent.type === 'setTarget') {\n const { startTime, target, timeConstant } = automationEvent;\n\n audioParam.setTargetAtTime(target, startTime, timeConstant);\n } else if (automationEvent.type === 'setValue') {\n const { startTime, value } = automationEvent;\n\n audioParam.setValueAtTime(value, startTime);\n } else if (automationEvent.type === 'setValueCurve') {\n const { duration, startTime, values } = automationEvent;\n\n audioParam.setValueCurveAtTime(values, startTime, duration);\n } else {\n throw new Error(\"Can't apply an unknown automation.\");\n }\n }\n }\n };\n};\n","import { TSetValueAtTimeUntilPossibleFunction } from '../types';\n\nexport const setValueAtTimeUntilPossible: TSetValueAtTimeUntilPossibleFunction = (audioParam, value, startTime) => {\n try {\n audioParam.setValueAtTime(value, startTime);\n } catch (err) {\n if (err.code !== 9) {\n throw err;\n }\n\n setValueAtTimeUntilPossible(audioParam, value, startTime + 1e-7);\n }\n};\n","import { IAudioDestinationNode } from '../interfaces';\nimport {\n TAudioDestinationNodeConstructorFactory,\n TAudioNodeRenderer,\n TChannelCountMode,\n TContext,\n TNativeAudioDestinationNode\n} from '../types';\n\nexport const createAudioDestinationNodeConstructor: TAudioDestinationNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioDestinationNodeRenderer,\n createIndexSizeError,\n createInvalidStateError,\n createNativeAudioDestinationNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n renderInputsOfAudioNode\n) => {\n return class AudioDestinationNode extends audioNodeConstructor implements IAudioDestinationNode {\n private _isNodeOfNativeOfflineAudioContext: boolean;\n\n private _nativeAudioDestinationNode: TNativeAudioDestinationNode;\n\n constructor(context: T, channelCount: number) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const nativeAudioDestinationNode = createNativeAudioDestinationNode(nativeContext, channelCount, isOffline);\n const audioDestinationNodeRenderer = >(\n (isOffline ? createAudioDestinationNodeRenderer(renderInputsOfAudioNode) : null)\n );\n\n super(context, false, nativeAudioDestinationNode, audioDestinationNodeRenderer);\n\n this._isNodeOfNativeOfflineAudioContext = isOffline;\n this._nativeAudioDestinationNode = nativeAudioDestinationNode;\n }\n\n get channelCount(): number {\n return this._nativeAudioDestinationNode.channelCount;\n }\n\n set channelCount(value) {\n // Bug #52: Chrome, Edge & Safari do not throw an exception at all.\n // Bug #54: Firefox does throw an IndexSizeError.\n if (this._isNodeOfNativeOfflineAudioContext) {\n throw createInvalidStateError();\n }\n\n // Bug #47: The AudioDestinationNode in Safari does not initialize the maxChannelCount property correctly.\n if (value > this._nativeAudioDestinationNode.maxChannelCount) {\n throw createIndexSizeError();\n }\n\n this._nativeAudioDestinationNode.channelCount = value;\n }\n\n get channelCountMode(): TChannelCountMode {\n return this._nativeAudioDestinationNode.channelCountMode;\n }\n\n set channelCountMode(value) {\n // Bug #53: No browser does throw an exception yet.\n if (this._isNodeOfNativeOfflineAudioContext) {\n throw createInvalidStateError();\n }\n\n this._nativeAudioDestinationNode.channelCountMode = value;\n }\n\n get maxChannelCount(): number {\n return this._nativeAudioDestinationNode.maxChannelCount;\n }\n };\n};\n","import { IAudioDestinationNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport {\n TAudioDestinationNodeRendererFactory,\n TNativeAudioDestinationNode,\n TNativeOfflineAudioContext,\n TRenderInputsOfAudioNodeFunction\n} from '../types';\n\nexport const createAudioDestinationNodeRenderer: TAudioDestinationNodeRendererFactory = <\n T extends IMinimalOfflineAudioContext | IOfflineAudioContext\n>(\n renderInputsOfAudioNode: TRenderInputsOfAudioNodeFunction\n) => {\n const renderedNativeAudioDestinationNodes = new WeakMap();\n\n const createAudioDestinationNode = async (proxy: IAudioDestinationNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n const nativeAudioDestinationNode = nativeOfflineAudioContext.destination;\n\n renderedNativeAudioDestinationNodes.set(nativeOfflineAudioContext, nativeAudioDestinationNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioDestinationNode);\n\n return nativeAudioDestinationNode;\n };\n\n return {\n render(\n proxy: IAudioDestinationNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeAudioDestinationNode = renderedNativeAudioDestinationNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioDestinationNode !== undefined) {\n return Promise.resolve(renderedNativeAudioDestinationNode);\n }\n\n return createAudioDestinationNode(proxy, nativeOfflineAudioContext);\n }\n };\n};\n","import { TNativeAudioDestinationNode, TNativeAudioDestinationNodeFactoryFactory, TNativeGainNode } from '../types';\n\nexport const createNativeAudioDestinationNodeFactory: TNativeAudioDestinationNodeFactoryFactory = (\n createNativeGainNode,\n overwriteAccessors\n) => {\n return (nativeContext, channelCount, isNodeOfNativeOfflineAudioContext) => {\n const nativeAudioDestinationNode = nativeContext.destination;\n\n // Bug #132: Safari does not have the correct channelCount.\n if (nativeAudioDestinationNode.channelCount !== channelCount) {\n try {\n nativeAudioDestinationNode.channelCount = channelCount;\n } catch {\n // Bug #169: Safari throws an error on each attempt to change the channelCount.\n }\n }\n\n // Bug #83: Safari does not have the correct channelCountMode.\n if (isNodeOfNativeOfflineAudioContext && nativeAudioDestinationNode.channelCountMode !== 'explicit') {\n nativeAudioDestinationNode.channelCountMode = 'explicit';\n }\n\n // Bug #47: The AudioDestinationNode in Safari does not initialize the maxChannelCount property correctly.\n if (nativeAudioDestinationNode.maxChannelCount === 0) {\n Object.defineProperty(nativeAudioDestinationNode, 'maxChannelCount', {\n value: channelCount\n });\n }\n\n // Bug #168: No browser does yet have an AudioDestinationNode with an output.\n const gainNode = createNativeGainNode(nativeContext, {\n channelCount,\n channelCountMode: nativeAudioDestinationNode.channelCountMode,\n channelInterpretation: nativeAudioDestinationNode.channelInterpretation,\n gain: 1\n });\n\n overwriteAccessors(\n gainNode,\n 'channelCount',\n (get) => () => get.call(gainNode),\n (set) => (value) => {\n set.call(gainNode, value);\n\n try {\n nativeAudioDestinationNode.channelCount = value;\n } catch (err) {\n // Bug #169: Safari throws an error on each attempt to change the channelCount.\n if (value > nativeAudioDestinationNode.maxChannelCount) {\n throw err;\n }\n }\n }\n );\n\n overwriteAccessors(\n gainNode,\n 'channelCountMode',\n (get) => () => get.call(gainNode),\n (set) => (value) => {\n set.call(gainNode, value);\n nativeAudioDestinationNode.channelCountMode = value;\n }\n );\n\n overwriteAccessors(\n gainNode,\n 'channelInterpretation',\n (get) => () => get.call(gainNode),\n (set) => (value) => {\n set.call(gainNode, value);\n nativeAudioDestinationNode.channelInterpretation = value;\n }\n );\n\n Object.defineProperty(gainNode, 'maxChannelCount', {\n get: () => nativeAudioDestinationNode.maxChannelCount\n });\n\n // @todo This should be disconnected when the context is closed.\n gainNode.connect(nativeAudioDestinationNode);\n\n return <{ maxChannelCount: TNativeAudioDestinationNode['maxChannelCount'] } & TNativeGainNode>gainNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IBiquadFilterNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TBiquadFilterNodeRendererFactoryFactory, TNativeBiquadFilterNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createBiquadFilterNodeRendererFactory: TBiquadFilterNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeBiquadFilterNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeBiquadFilterNodes = new WeakMap();\n\n const createBiquadFilterNode = async (proxy: IBiquadFilterNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeBiquadFilterNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeBiquadFilterNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeBiquadFilterNodeIsOwnedByContext = isOwnedByContext(nativeBiquadFilterNode, nativeOfflineAudioContext);\n\n if (!nativeBiquadFilterNodeIsOwnedByContext) {\n const options = {\n Q: nativeBiquadFilterNode.Q.value,\n channelCount: nativeBiquadFilterNode.channelCount,\n channelCountMode: nativeBiquadFilterNode.channelCountMode,\n channelInterpretation: nativeBiquadFilterNode.channelInterpretation,\n detune: nativeBiquadFilterNode.detune.value,\n frequency: nativeBiquadFilterNode.frequency.value,\n gain: nativeBiquadFilterNode.gain.value,\n type: nativeBiquadFilterNode.type\n };\n\n nativeBiquadFilterNode = createNativeBiquadFilterNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeBiquadFilterNodes.set(nativeOfflineAudioContext, nativeBiquadFilterNode);\n\n if (!nativeBiquadFilterNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.Q, nativeBiquadFilterNode.Q);\n await renderAutomation(nativeOfflineAudioContext, proxy.detune, nativeBiquadFilterNode.detune);\n await renderAutomation(nativeOfflineAudioContext, proxy.frequency, nativeBiquadFilterNode.frequency);\n await renderAutomation(nativeOfflineAudioContext, proxy.gain, nativeBiquadFilterNode.gain);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.Q, nativeBiquadFilterNode.Q);\n await connectAudioParam(nativeOfflineAudioContext, proxy.detune, nativeBiquadFilterNode.detune);\n await connectAudioParam(nativeOfflineAudioContext, proxy.frequency, nativeBiquadFilterNode.frequency);\n await connectAudioParam(nativeOfflineAudioContext, proxy.gain, nativeBiquadFilterNode.gain);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeBiquadFilterNode);\n\n return nativeBiquadFilterNode;\n };\n\n return {\n render(proxy: IBiquadFilterNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeBiquadFilterNode = renderedNativeBiquadFilterNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeBiquadFilterNode !== undefined) {\n return Promise.resolve(renderedNativeBiquadFilterNode);\n }\n\n return createBiquadFilterNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TSetAudioNodeTailTimeFactory } from '../types';\n\nexport const createSetAudioNodeTailTime: TSetAudioNodeTailTimeFactory = (audioNodeTailTimeStore) => {\n return (audioNode, tailTime) => audioNodeTailTimeStore.set(audioNode, tailTime);\n};\n","import { TMonitorConnectionsFactory, TNativeAudioNode, TNativeAudioParam } from '../types';\n\nexport const createMonitorConnections: TMonitorConnectionsFactory = (insertElementInSet, isNativeAudioNode) => {\n return (nativeAudioNode, whenConnected, whenDisconnected) => {\n const connections = new Set<[TNativeAudioNode, number, number] | [TNativeAudioParam, number]>();\n\n nativeAudioNode.connect = ((connect) => {\n // tslint:disable-next-line:invalid-void no-inferrable-types\n return (destination: TNativeAudioNode | TNativeAudioParam, output = 0, input: number = 0): void | TNativeAudioNode => {\n const wasDisconnected = connections.size === 0;\n\n if (isNativeAudioNode(destination)) {\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n (<(destination: TNativeAudioNode, output?: number, input?: number) => TNativeAudioNode>connect).call(\n nativeAudioNode,\n destination,\n output,\n input\n );\n\n insertElementInSet(\n connections,\n [destination, output, input],\n (connection) => connection[0] === destination && connection[1] === output && connection[2] === input,\n true\n );\n\n if (wasDisconnected) {\n whenConnected();\n }\n\n return destination;\n }\n\n connect.call(nativeAudioNode, destination, output);\n\n insertElementInSet(\n connections,\n [destination, output],\n (connection) => connection[0] === destination && connection[1] === output,\n true\n );\n\n if (wasDisconnected) {\n whenConnected();\n }\n\n return;\n };\n })(nativeAudioNode.connect);\n\n nativeAudioNode.disconnect = ((disconnect) => {\n return (destinationOrOutput?: number | TNativeAudioNode | TNativeAudioParam, output?: number, input?: number): void => {\n const wasConnected = connections.size > 0;\n\n if (destinationOrOutput === undefined) {\n disconnect.apply(nativeAudioNode);\n\n connections.clear();\n } else if (typeof destinationOrOutput === 'number') {\n // @todo TypeScript cannot infer the overloaded signature with 1 argument yet.\n (<(output: number) => void>disconnect).call(nativeAudioNode, destinationOrOutput);\n\n for (const connection of connections) {\n if (connection[1] === destinationOrOutput) {\n connections.delete(connection);\n }\n }\n } else {\n if (isNativeAudioNode(destinationOrOutput)) {\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n (<(destination: TNativeAudioNode, output?: number, input?: number) => void>disconnect).call(\n nativeAudioNode,\n destinationOrOutput,\n output,\n input\n );\n } else {\n // @todo TypeScript cannot infer the overloaded signature with 2 arguments yet.\n (<(destination: TNativeAudioParam, output?: number) => void>disconnect).call(\n nativeAudioNode,\n destinationOrOutput,\n output\n );\n }\n\n for (const connection of connections) {\n if (\n connection[0] === destinationOrOutput &&\n (output === undefined || connection[1] === output) &&\n (input === undefined || connection[2] === input)\n ) {\n connections.delete(connection);\n }\n }\n }\n\n const isDisconnected = connections.size === 0;\n\n if (wasConnected && isDisconnected) {\n whenDisconnected();\n }\n };\n })(nativeAudioNode.disconnect);\n\n return nativeAudioNode;\n };\n};\n","import { TWrapChannelMergerNodeFactory } from '../types';\n\nexport const createWrapChannelMergerNode: TWrapChannelMergerNodeFactory = (createInvalidStateError, monitorConnections) => {\n return (nativeContext, channelMergerNode) => {\n // Bug #15: Safari does not return the default properties.\n channelMergerNode.channelCount = 1;\n channelMergerNode.channelCountMode = 'explicit';\n\n // Bug #16: Safari does not throw an error when setting a different channelCount or channelCountMode.\n Object.defineProperty(channelMergerNode, 'channelCount', {\n get: () => 1,\n set: () => {\n throw createInvalidStateError();\n }\n });\n\n Object.defineProperty(channelMergerNode, 'channelCountMode', {\n get: () => 'explicit',\n set: () => {\n throw createInvalidStateError();\n }\n });\n\n // Bug #20: Safari requires a connection of any kind to treat the input signal correctly.\n const audioBufferSourceNode = nativeContext.createBufferSource();\n\n const whenConnected = () => {\n const length = channelMergerNode.numberOfInputs;\n\n for (let i = 0; i < length; i += 1) {\n audioBufferSourceNode.connect(channelMergerNode, 0, i);\n }\n };\n const whenDisconnected = () => audioBufferSourceNode.disconnect(channelMergerNode);\n\n monitorConnections(channelMergerNode, whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeChannelMergerNodeFactoryFactory } from '../types';\n\nexport const createNativeChannelMergerNodeFactory: TNativeChannelMergerNodeFactoryFactory = (\n nativeAudioContextConstructor,\n wrapChannelMergerNode\n) => {\n return (nativeContext, options) => {\n const nativeChannelMergerNode = nativeContext.createChannelMerger(options.numberOfInputs);\n\n /*\n * Bug #20: Safari requires a connection of any kind to treat the input signal correctly.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the existence of\n * the webkitAudioContext is used as a workaround here.\n */\n if (nativeAudioContextConstructor !== null && nativeAudioContextConstructor.name === 'webkitAudioContext') {\n wrapChannelMergerNode(nativeContext, nativeChannelMergerNode);\n }\n\n assignNativeAudioNodeOptions(nativeChannelMergerNode, options);\n\n return nativeChannelMergerNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAudioNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TChannelMergerNodeRendererFactoryFactory, TNativeAudioNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createChannelMergerNodeRendererFactory: TChannelMergerNodeRendererFactoryFactory = (\n createNativeChannelMergerNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n\n const createAudioNode = async (proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeAudioNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAudioNodeIsOwnedByContext = isOwnedByContext(nativeAudioNode, nativeOfflineAudioContext);\n\n if (!nativeAudioNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAudioNode.channelCount,\n channelCountMode: nativeAudioNode.channelCountMode,\n channelInterpretation: nativeAudioNode.channelInterpretation,\n numberOfInputs: nativeAudioNode.numberOfInputs\n };\n\n nativeAudioNode = createNativeChannelMergerNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioNode);\n\n return nativeAudioNode;\n };\n\n return {\n render(proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAudioNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TChannelSplitterNodeRendererFactoryFactory, TNativeAudioNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createChannelSplitterNodeRendererFactory: TChannelSplitterNodeRendererFactoryFactory = (\n createNativeChannelSplitterNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n\n const createAudioNode = async (proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeAudioNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAudioNodeIsOwnedByContext = isOwnedByContext(nativeAudioNode, nativeOfflineAudioContext);\n\n if (!nativeAudioNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAudioNode.channelCount,\n channelCountMode: nativeAudioNode.channelCountMode,\n channelInterpretation: nativeAudioNode.channelInterpretation,\n numberOfOutputs: nativeAudioNode.numberOfOutputs\n };\n\n nativeAudioNode = createNativeChannelSplitterNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioNode);\n\n return nativeAudioNode;\n };\n\n return {\n render(proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TSanitizeChannelSplitterOptionsFunction } from '../types';\n\nexport const sanitizeChannelSplitterOptions: TSanitizeChannelSplitterOptionsFunction = (options) => {\n return { ...options, channelCount: options.numberOfOutputs };\n};\n","import { interceptConnections } from '../helpers/intercept-connections';\nimport {\n TNativeAudioBufferSourceNode,\n TNativeAudioNode,\n TNativeConstantSourceNode,\n TNativeConstantSourceNodeFakerFactoryFactory\n} from '../types';\n\nexport const createNativeConstantSourceNodeFakerFactory: TNativeConstantSourceNodeFakerFactoryFactory = (\n addSilentConnection,\n createNativeAudioBufferSourceNode,\n createNativeGainNode,\n monitorConnections\n) => {\n return (nativeContext, { offset, ...audioNodeOptions }) => {\n const audioBuffer = nativeContext.createBuffer(1, 2, 44100);\n const audioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const gainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: offset });\n\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n const channelData = audioBuffer.getChannelData(0);\n\n // Bug #95: Safari does not play or loop one sample buffers.\n channelData[0] = 1;\n channelData[1] = 1;\n\n audioBufferSourceNode.buffer = audioBuffer;\n audioBufferSourceNode.loop = true;\n\n const nativeConstantSourceNodeFaker = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return gainNode.channelCount;\n },\n set channelCount(value) {\n gainNode.channelCount = value;\n },\n get channelCountMode(): TNativeConstantSourceNode['channelCountMode'] {\n return gainNode.channelCountMode;\n },\n set channelCountMode(value) {\n gainNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeConstantSourceNode['channelInterpretation'] {\n return gainNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n gainNode.channelInterpretation = value;\n },\n get context(): TNativeConstantSourceNode['context'] {\n return gainNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return [];\n },\n get numberOfInputs(): number {\n return audioBufferSourceNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return gainNode.numberOfOutputs;\n },\n get offset(): TNativeConstantSourceNode['offset'] {\n return gainNode.gain;\n },\n get onended(): TNativeConstantSourceNode['onended'] {\n return audioBufferSourceNode.onended;\n },\n set onended(value) {\n audioBufferSourceNode.onended = value;\n },\n addEventListener(...args: any[]): void {\n return audioBufferSourceNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return audioBufferSourceNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return audioBufferSourceNode.removeEventListener(args[0], args[1], args[2]);\n },\n start(when = 0): void {\n audioBufferSourceNode.start.call(audioBufferSourceNode, when);\n },\n stop(when = 0): void {\n audioBufferSourceNode.stop.call(audioBufferSourceNode, when);\n }\n };\n\n const whenConnected = () => audioBufferSourceNode.connect(gainNode);\n const whenDisconnected = () => audioBufferSourceNode.disconnect(gainNode);\n\n // Bug #175: Safari will not fire an ended event if the AudioBufferSourceNode is unconnected.\n addSilentConnection(nativeContext, audioBufferSourceNode);\n\n return monitorConnections(interceptConnections(nativeConstantSourceNodeFaker, gainNode), whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nimport { TNativeConstantSourceNodeFactoryFactory } from '../types';\n\nexport const createNativeConstantSourceNodeFactory: TNativeConstantSourceNodeFactoryFactory = (\n addSilentConnection,\n cacheTestResult,\n createNativeConstantSourceNodeFaker,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport\n) => {\n return (nativeContext, options) => {\n // Bug #62: Safari does not support ConstantSourceNodes.\n if (nativeContext.createConstantSource === undefined) {\n return createNativeConstantSourceNodeFaker(nativeContext, options);\n }\n\n const nativeConstantSourceNode = nativeContext.createConstantSource();\n\n assignNativeAudioNodeOptions(nativeConstantSourceNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeConstantSourceNode, options, 'offset');\n\n // Bug #44: Safari does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeConstantSourceNode);\n }\n\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeConstantSourceNode);\n }\n\n // Bug #175: Safari will not fire an ended event if the ConstantSourceNode is unconnected.\n addSilentConnection(nativeContext, nativeConstantSourceNode);\n\n return nativeConstantSourceNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IConstantSourceNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TConstantSourceNodeRendererFactoryFactory, TNativeConstantSourceNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createConstantSourceNodeRendererFactory: TConstantSourceNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeConstantSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeConstantSourceNodes = new WeakMap();\n\n let start: null | number = null;\n let stop: null | number = null;\n\n const createConstantSourceNode = async (proxy: IConstantSourceNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeConstantSourceNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeConstantSourceNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeConstantSourceNodeIsOwnedByContext = isOwnedByContext(nativeConstantSourceNode, nativeOfflineAudioContext);\n\n if (!nativeConstantSourceNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeConstantSourceNode.channelCount,\n channelCountMode: nativeConstantSourceNode.channelCountMode,\n channelInterpretation: nativeConstantSourceNode.channelInterpretation,\n offset: nativeConstantSourceNode.offset.value\n };\n\n nativeConstantSourceNode = createNativeConstantSourceNode(nativeOfflineAudioContext, options);\n\n if (start !== null) {\n nativeConstantSourceNode.start(start);\n }\n\n if (stop !== null) {\n nativeConstantSourceNode.stop(stop);\n }\n }\n\n renderedNativeConstantSourceNodes.set(nativeOfflineAudioContext, nativeConstantSourceNode);\n\n if (!nativeConstantSourceNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.offset, nativeConstantSourceNode.offset);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.offset, nativeConstantSourceNode.offset);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConstantSourceNode);\n\n return nativeConstantSourceNode;\n };\n\n return {\n set start(value: number) {\n start = value;\n },\n set stop(value: number) {\n stop = value;\n },\n render(\n proxy: IConstantSourceNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeConstantSourceNode = renderedNativeConstantSourceNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeConstantSourceNode !== undefined) {\n return Promise.resolve(renderedNativeConstantSourceNode);\n }\n\n return createConstantSourceNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeConvolverNodeFactoryFactory } from '../types';\n\nexport const createNativeConvolverNodeFactory: TNativeConvolverNodeFactoryFactory = (createNotSupportedError, overwriteAccessors) => {\n return (nativeContext, options) => {\n const nativeConvolverNode = nativeContext.createConvolver();\n\n assignNativeAudioNodeOptions(nativeConvolverNode, options);\n\n // The normalize property needs to be set before setting the buffer.\n if (options.disableNormalization === nativeConvolverNode.normalize) {\n nativeConvolverNode.normalize = !options.disableNormalization;\n }\n\n assignNativeAudioNodeOption(nativeConvolverNode, options, 'buffer');\n\n // Bug #113: Safari does allow to set the channelCount to a value larger than 2.\n if (options.channelCount > 2) {\n throw createNotSupportedError();\n }\n\n overwriteAccessors(\n nativeConvolverNode,\n 'channelCount',\n (get) => () => get.call(nativeConvolverNode),\n (set) => (value) => {\n if (value > 2) {\n throw createNotSupportedError();\n }\n\n return set.call(nativeConvolverNode, value);\n }\n );\n\n // Bug #114: Safari allows to set the channelCountMode to 'max'.\n if (options.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n overwriteAccessors(\n nativeConvolverNode,\n 'channelCountMode',\n (get) => () => get.call(nativeConvolverNode),\n (set) => (value) => {\n if (value === 'max') {\n throw createNotSupportedError();\n }\n\n return set.call(nativeConvolverNode, value);\n }\n );\n\n return nativeConvolverNode;\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IConvolverNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TConvolverNodeRendererFactoryFactory, TNativeConvolverNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createConvolverNodeRendererFactory: TConvolverNodeRendererFactoryFactory = (\n createNativeConvolverNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeConvolverNodes = new WeakMap();\n\n const createConvolverNode = async (proxy: IConvolverNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeConvolverNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeConvolverNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeConvolverNodeIsOwnedByContext = isOwnedByContext(nativeConvolverNode, nativeOfflineAudioContext);\n\n if (!nativeConvolverNodeIsOwnedByContext) {\n const options = {\n buffer: nativeConvolverNode.buffer,\n channelCount: nativeConvolverNode.channelCount,\n channelCountMode: nativeConvolverNode.channelCountMode,\n channelInterpretation: nativeConvolverNode.channelInterpretation,\n disableNormalization: !nativeConvolverNode.normalize\n };\n\n nativeConvolverNode = createNativeConvolverNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeConvolverNodes.set(nativeOfflineAudioContext, nativeConvolverNode);\n\n if (isNativeAudioNodeFaker(nativeConvolverNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConvolverNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConvolverNode);\n }\n\n return nativeConvolverNode;\n };\n\n return {\n render(proxy: IConvolverNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeConvolverNode = renderedNativeConvolverNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeConvolverNode !== undefined) {\n return Promise.resolve(renderedNativeConvolverNode);\n }\n\n return createConvolverNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IDelayNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TDelayNodeRendererFactoryFactory, TNativeDelayNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createDelayNodeRendererFactory: TDelayNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeDelayNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return (maxDelayTime: number) => {\n const renderedNativeDelayNodes = new WeakMap();\n\n const createDelayNode = async (proxy: IDelayNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeDelayNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeDelayNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeDelayNodeIsOwnedByContext = isOwnedByContext(nativeDelayNode, nativeOfflineAudioContext);\n\n if (!nativeDelayNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeDelayNode.channelCount,\n channelCountMode: nativeDelayNode.channelCountMode,\n channelInterpretation: nativeDelayNode.channelInterpretation,\n delayTime: nativeDelayNode.delayTime.value,\n maxDelayTime\n };\n\n nativeDelayNode = createNativeDelayNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeDelayNodes.set(nativeOfflineAudioContext, nativeDelayNode);\n\n if (!nativeDelayNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.delayTime, nativeDelayNode.delayTime);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.delayTime, nativeDelayNode.delayTime);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeDelayNode);\n\n return nativeDelayNode;\n };\n\n return {\n render(proxy: IDelayNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeDelayNode = renderedNativeDelayNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeDelayNode !== undefined) {\n return Promise.resolve(renderedNativeDelayNode);\n }\n\n return createDelayNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeDynamicsCompressorNodeFactoryFactory } from '../types';\n\nexport const createNativeDynamicsCompressorNodeFactory: TNativeDynamicsCompressorNodeFactoryFactory = (createNotSupportedError) => {\n return (nativeContext, options) => {\n const nativeDynamicsCompressorNode = nativeContext.createDynamicsCompressor();\n\n assignNativeAudioNodeOptions(nativeDynamicsCompressorNode, options);\n\n // Bug #108: Safari allows a channelCount of three and above.\n if (options.channelCount > 2) {\n throw createNotSupportedError();\n }\n\n // Bug #109: Only Chrome and Firefox disallow a channelCountMode of 'max'.\n if (options.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'attack');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'knee');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'ratio');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'release');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'threshold');\n\n return nativeDynamicsCompressorNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IDynamicsCompressorNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TDynamicsCompressorNodeRendererFactoryFactory, TNativeDynamicsCompressorNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createDynamicsCompressorNodeRendererFactory: TDynamicsCompressorNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeDynamicsCompressorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeDynamicsCompressorNodes = new WeakMap();\n\n const createDynamicsCompressorNode = async (\n proxy: IDynamicsCompressorNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ) => {\n let nativeDynamicsCompressorNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeDynamicsCompressorNode was not constructed on the same OfflineAudioContext it needs to be\n * created again.\n */\n const nativeDynamicsCompressorNodeIsOwnedByContext = isOwnedByContext(nativeDynamicsCompressorNode, nativeOfflineAudioContext);\n\n if (!nativeDynamicsCompressorNodeIsOwnedByContext) {\n const options = {\n attack: nativeDynamicsCompressorNode.attack.value,\n channelCount: nativeDynamicsCompressorNode.channelCount,\n channelCountMode: nativeDynamicsCompressorNode.channelCountMode,\n channelInterpretation: nativeDynamicsCompressorNode.channelInterpretation,\n knee: nativeDynamicsCompressorNode.knee.value,\n ratio: nativeDynamicsCompressorNode.ratio.value,\n release: nativeDynamicsCompressorNode.release.value,\n threshold: nativeDynamicsCompressorNode.threshold.value\n };\n\n nativeDynamicsCompressorNode = createNativeDynamicsCompressorNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeDynamicsCompressorNodes.set(nativeOfflineAudioContext, nativeDynamicsCompressorNode);\n\n if (!nativeDynamicsCompressorNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.attack, nativeDynamicsCompressorNode.attack);\n await renderAutomation(nativeOfflineAudioContext, proxy.knee, nativeDynamicsCompressorNode.knee);\n await renderAutomation(nativeOfflineAudioContext, proxy.ratio, nativeDynamicsCompressorNode.ratio);\n await renderAutomation(nativeOfflineAudioContext, proxy.release, nativeDynamicsCompressorNode.release);\n await renderAutomation(nativeOfflineAudioContext, proxy.threshold, nativeDynamicsCompressorNode.threshold);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.attack, nativeDynamicsCompressorNode.attack);\n await connectAudioParam(nativeOfflineAudioContext, proxy.knee, nativeDynamicsCompressorNode.knee);\n await connectAudioParam(nativeOfflineAudioContext, proxy.ratio, nativeDynamicsCompressorNode.ratio);\n await connectAudioParam(nativeOfflineAudioContext, proxy.release, nativeDynamicsCompressorNode.release);\n await connectAudioParam(nativeOfflineAudioContext, proxy.threshold, nativeDynamicsCompressorNode.threshold);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeDynamicsCompressorNode);\n\n return nativeDynamicsCompressorNode;\n };\n\n return {\n render(\n proxy: IDynamicsCompressorNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeDynamicsCompressorNode = renderedNativeDynamicsCompressorNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeDynamicsCompressorNode !== undefined) {\n return Promise.resolve(renderedNativeDynamicsCompressorNode);\n }\n\n return createDynamicsCompressorNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IGainNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TGainNodeRendererFactoryFactory, TNativeGainNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createGainNodeRendererFactory: TGainNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeGainNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeGainNodes = new WeakMap();\n\n const createGainNode = async (proxy: IGainNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeGainNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeGainNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeGainNodeIsOwnedByContext = isOwnedByContext(nativeGainNode, nativeOfflineAudioContext);\n\n if (!nativeGainNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeGainNode.channelCount,\n channelCountMode: nativeGainNode.channelCountMode,\n channelInterpretation: nativeGainNode.channelInterpretation,\n gain: nativeGainNode.gain.value\n };\n\n nativeGainNode = createNativeGainNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeGainNodes.set(nativeOfflineAudioContext, nativeGainNode);\n\n if (!nativeGainNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.gain, nativeGainNode.gain);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.gain, nativeGainNode.gain);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeGainNode);\n\n return nativeGainNode;\n };\n\n return {\n render(proxy: IGainNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeGainNode = renderedNativeGainNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeGainNode !== undefined) {\n return Promise.resolve(renderedNativeGainNode);\n }\n\n return createGainNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { testPromiseSupport } from '../helpers/test-promise-support';\nimport { IOfflineAudioCompletionEvent } from '../interfaces';\nimport { TNativeAudioBuffer, TRenderNativeOfflineAudioContextFactory } from '../types';\n\nexport const createRenderNativeOfflineAudioContext: TRenderNativeOfflineAudioContextFactory = (\n cacheTestResult,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n testOfflineAudioContextCurrentTimeSupport\n) => {\n return (nativeOfflineAudioContext) => {\n // Bug #21: Safari does not support promises yet.\n if (cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n // Bug #158: Chrome and Edge do not advance currentTime if it is not accessed while rendering the audio.\n return Promise.resolve(\n cacheTestResult(testOfflineAudioContextCurrentTimeSupport, testOfflineAudioContextCurrentTimeSupport)\n ).then((isOfflineAudioContextCurrentTimeSupported) => {\n if (!isOfflineAudioContextCurrentTimeSupported) {\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeOfflineAudioContext, 512, 0, 1);\n\n nativeOfflineAudioContext.oncomplete = () => {\n scriptProcessorNode.onaudioprocess = null; // tslint:disable-line:deprecation\n scriptProcessorNode.disconnect();\n };\n scriptProcessorNode.onaudioprocess = () => nativeOfflineAudioContext.currentTime; // tslint:disable-line:deprecation\n\n scriptProcessorNode.connect(nativeOfflineAudioContext.destination);\n }\n\n return nativeOfflineAudioContext.startRendering();\n });\n }\n\n return new Promise((resolve) => {\n // Bug #48: Safari does not render an OfflineAudioContext without any connected node.\n const gainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n nativeOfflineAudioContext.oncomplete = (event: IOfflineAudioCompletionEvent) => {\n gainNode.disconnect();\n\n resolve(event.renderedBuffer);\n };\n\n gainNode.connect(nativeOfflineAudioContext.destination);\n\n nativeOfflineAudioContext.startRendering();\n });\n };\n};\n","import { TTestOfflineAudioContextCurrentTimeSupportFactory } from '../types';\n\nexport const createTestOfflineAudioContextCurrentTimeSupport: TTestOfflineAudioContextCurrentTimeSupportFactory = (\n createNativeGainNode,\n nativeOfflineAudioContextConstructor\n) => {\n return () => {\n if (nativeOfflineAudioContextConstructor === null) {\n return Promise.resolve(false);\n }\n\n const nativeOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n\n // Bug #48: Safari does not render an OfflineAudioContext without any connected node.\n const gainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n // Bug #21: Safari does not support promises yet.\n return new Promise((resolve) => {\n nativeOfflineAudioContext.oncomplete = () => {\n gainNode.disconnect();\n\n resolve(nativeOfflineAudioContext.currentTime !== 0);\n };\n nativeOfflineAudioContext.startRendering();\n });\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeIIRFilterNodeFactoryFactory } from '../types';\n\nexport const createNativeIIRFilterNodeFactory: TNativeIIRFilterNodeFactoryFactory = (createNativeIIRFilterNodeFaker) => {\n return (nativeContext, baseLatency, options) => {\n // Bug #9: Safari does not support IIRFilterNodes.\n if (nativeContext.createIIRFilter === undefined) {\n return createNativeIIRFilterNodeFaker(nativeContext, baseLatency, options);\n }\n\n // @todo TypeScript defines the parameters of createIIRFilter() as arrays of numbers.\n const nativeIIRFilterNode = nativeContext.createIIRFilter(options.feedforward, options.feedback);\n\n assignNativeAudioNodeOptions(nativeIIRFilterNode, options);\n\n return nativeIIRFilterNode;\n };\n};\n","import { createInvalidAccessError } from '../factories/invalid-access-error';\nimport { TNativeIIRFilterNode } from '../types';\n\nexport const wrapIIRFilterNodeGetFrequencyResponseMethod = (nativeIIRFilterNode: TNativeIIRFilterNode): void => {\n nativeIIRFilterNode.getFrequencyResponse = ((getFrequencyResponse) => {\n return (frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) => {\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n\n return getFrequencyResponse.call(nativeIIRFilterNode, frequencyHz, magResponse, phaseResponse);\n };\n })(nativeIIRFilterNode.getFrequencyResponse);\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam } from '../interfaces';\nimport { TAudioListenerFactoryFactory } from '../types';\n\nexport const createAudioListenerFactory: TAudioListenerFactoryFactory = (\n createAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n getFirstSample,\n isNativeOfflineAudioContext,\n overwriteAccessors\n) => {\n return (context, nativeContext) => {\n const nativeListener = nativeContext.listener;\n\n // Bug #117: Only Chrome & Edge support the new interface already.\n const createFakeAudioParams = () => {\n const buffer = new Float32Array(1);\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 9\n });\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n let isScriptProcessorNodeCreated = false;\n let lastOrientation: [number, number, number, number, number, number] = [0, 0, -1, 0, 1, 0];\n let lastPosition: [number, number, number] = [0, 0, 0];\n\n const createScriptProcessorNode = () => {\n if (isScriptProcessorNodeCreated) {\n return;\n }\n\n isScriptProcessorNodeCreated = true;\n\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, 256, 9, 0);\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer }) => {\n const orientation: [number, number, number, number, number, number] = [\n getFirstSample(inputBuffer, buffer, 0),\n getFirstSample(inputBuffer, buffer, 1),\n getFirstSample(inputBuffer, buffer, 2),\n getFirstSample(inputBuffer, buffer, 3),\n getFirstSample(inputBuffer, buffer, 4),\n getFirstSample(inputBuffer, buffer, 5)\n ];\n\n if (orientation.some((value, index) => value !== lastOrientation[index])) {\n nativeListener.setOrientation(...orientation); // tslint:disable-line:deprecation\n\n lastOrientation = orientation;\n }\n\n const positon: [number, number, number] = [\n getFirstSample(inputBuffer, buffer, 6),\n getFirstSample(inputBuffer, buffer, 7),\n getFirstSample(inputBuffer, buffer, 8)\n ];\n\n if (positon.some((value, index) => value !== lastPosition[index])) {\n nativeListener.setPosition(...positon); // tslint:disable-line:deprecation\n\n lastPosition = positon;\n }\n };\n\n channelMergerNode.connect(scriptProcessorNode);\n };\n const createSetOrientation = (index: number) => (value: number) => {\n if (value !== lastOrientation[index]) {\n lastOrientation[index] = value;\n\n nativeListener.setOrientation(...lastOrientation); // tslint:disable-line:deprecation\n }\n };\n const createSetPosition = (index: number) => (value: number) => {\n if (value !== lastPosition[index]) {\n lastPosition[index] = value;\n\n nativeListener.setPosition(...lastPosition); // tslint:disable-line:deprecation\n }\n };\n const createFakeAudioParam = (input: number, initialValue: number, setValue: (value: number) => void) => {\n const constantSourceNode = createNativeConstantSourceNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: initialValue\n });\n\n constantSourceNode.connect(channelMergerNode, 0, input);\n\n // @todo This should be stopped when the context is closed.\n constantSourceNode.start();\n\n Object.defineProperty(constantSourceNode.offset, 'defaultValue', {\n get(): number {\n return initialValue;\n }\n });\n\n /*\n * Bug #62 & #74: Safari does not support ConstantSourceNodes and does not export the correct values for maxValue and\n * minValue for GainNodes.\n */\n const audioParam = createAudioParam(\n { context },\n isOffline,\n constantSourceNode.offset,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n\n overwriteAccessors(\n audioParam,\n 'value',\n (get) => () => get.call(audioParam),\n (set) => (value) => {\n try {\n set.call(audioParam, value);\n } catch (err) {\n if (err.code !== 9) {\n throw err;\n }\n }\n\n createScriptProcessorNode();\n\n if (isOffline) {\n // Bug #117: Using setOrientation() and setPosition() doesn't work with an OfflineAudioContext.\n setValue(value);\n }\n }\n );\n\n audioParam.cancelAndHoldAtTime = ((cancelAndHoldAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = cancelAndHoldAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.cancelAndHoldAtTime);\n audioParam.cancelScheduledValues = ((cancelScheduledValues) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = cancelScheduledValues.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.cancelScheduledValues);\n audioParam.exponentialRampToValueAtTime = ((exponentialRampToValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = exponentialRampToValueAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.exponentialRampToValueAtTime);\n audioParam.linearRampToValueAtTime = ((linearRampToValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = linearRampToValueAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.linearRampToValueAtTime);\n audioParam.setTargetAtTime = ((setTargetAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = setTargetAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.setTargetAtTime);\n audioParam.setValueAtTime = ((setValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = setValueAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.setValueAtTime);\n audioParam.setValueCurveAtTime = ((setValueCurveAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = setValueCurveAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.setValueCurveAtTime);\n\n return audioParam;\n };\n\n return {\n forwardX: createFakeAudioParam(0, 0, createSetOrientation(0)),\n forwardY: createFakeAudioParam(1, 0, createSetOrientation(1)),\n forwardZ: createFakeAudioParam(2, -1, createSetOrientation(2)),\n positionX: createFakeAudioParam(6, 0, createSetPosition(0)),\n positionY: createFakeAudioParam(7, 0, createSetPosition(1)),\n positionZ: createFakeAudioParam(8, 0, createSetPosition(2)),\n upX: createFakeAudioParam(3, 0, createSetOrientation(3)),\n upY: createFakeAudioParam(4, 1, createSetOrientation(4)),\n upZ: createFakeAudioParam(5, 0, createSetOrientation(5))\n };\n };\n\n const { forwardX, forwardY, forwardZ, positionX, positionY, positionZ, upX, upY, upZ } =\n nativeListener.forwardX === undefined ? createFakeAudioParams() : nativeListener;\n\n return {\n get forwardX(): IAudioParam {\n return forwardX;\n },\n get forwardY(): IAudioParam {\n return forwardY;\n },\n get forwardZ(): IAudioParam {\n return forwardZ;\n },\n get positionX(): IAudioParam {\n return positionX;\n },\n get positionY(): IAudioParam {\n return positionY;\n },\n get positionZ(): IAudioParam {\n return positionZ;\n },\n get upX(): IAudioParam {\n return upX;\n },\n get upY(): IAudioParam {\n return upY;\n },\n get upZ(): IAudioParam {\n return upZ;\n }\n };\n };\n};\n","import { CONTEXT_STORE } from '../globals';\nimport { IAudioDestinationNode, IAudioListener, IMinimalBaseAudioContext, IMinimalBaseAudioContextEventMap } from '../interfaces';\nimport { TAudioContextState, TContext, TEventHandler, TMinimalBaseAudioContextConstructorFactory, TNativeContext } from '../types';\n\nexport const createMinimalBaseAudioContextConstructor: TMinimalBaseAudioContextConstructorFactory = (\n audioDestinationNodeConstructor,\n createAudioListener,\n eventTargetConstructor,\n isNativeOfflineAudioContext,\n unrenderedAudioWorkletNodeStore,\n wrapEventListener\n) => {\n return class MinimalBaseAudioContext\n extends eventTargetConstructor\n implements IMinimalBaseAudioContext\n {\n private _destination: IAudioDestinationNode;\n\n private _listener: IAudioListener;\n\n private _onstatechange: null | TEventHandler;\n\n constructor(private _nativeContext: TNativeContext, numberOfChannels: number) {\n super(_nativeContext);\n\n CONTEXT_STORE.set((this), _nativeContext);\n\n if (isNativeOfflineAudioContext(_nativeContext)) {\n unrenderedAudioWorkletNodeStore.set(_nativeContext, new Set());\n }\n\n this._destination = new audioDestinationNodeConstructor((this), numberOfChannels);\n this._listener = createAudioListener((this), _nativeContext);\n this._onstatechange = null;\n }\n\n get currentTime(): number {\n return this._nativeContext.currentTime;\n }\n\n get destination(): IAudioDestinationNode {\n return this._destination;\n }\n\n get listener(): IAudioListener {\n return this._listener;\n }\n\n get onstatechange(): null | TEventHandler {\n return this._onstatechange;\n }\n\n set onstatechange(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeContext.onstatechange = wrappedListener;\n\n const nativeOnStateChange = this._nativeContext.onstatechange;\n\n this._onstatechange = nativeOnStateChange !== null && nativeOnStateChange === wrappedListener ? value : nativeOnStateChange;\n }\n\n get sampleRate(): number {\n return this._nativeContext.sampleRate;\n }\n\n get state(): TAudioContextState {\n return this._nativeContext.state;\n }\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nimport { TNativeOscillatorNodeFactoryFactory } from '../types';\n\nexport const createNativeOscillatorNodeFactory: TNativeOscillatorNodeFactoryFactory = (\n addSilentConnection,\n cacheTestResult,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n) => {\n return (nativeContext, options) => {\n const nativeOscillatorNode = nativeContext.createOscillator();\n\n assignNativeAudioNodeOptions(nativeOscillatorNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeOscillatorNode, options, 'detune');\n assignNativeAudioNodeAudioParamValue(nativeOscillatorNode, options, 'frequency');\n\n if (options.periodicWave !== undefined) {\n nativeOscillatorNode.setPeriodicWave(options.periodicWave);\n } else {\n assignNativeAudioNodeOption(nativeOscillatorNode, options, 'type');\n }\n\n // Bug #44: Only Chrome & Edge throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeOscillatorNode);\n }\n\n // Bug #19: Safari does not ignore calls to stop() of an already stopped AudioBufferSourceNode.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, () =>\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls(nativeOscillatorNode, nativeContext);\n }\n\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeOscillatorNode);\n }\n\n // Bug #175: Safari will not fire an ended event if the OscillatorNode is unconnected.\n addSilentConnection(nativeContext, nativeOscillatorNode);\n\n return nativeOscillatorNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, IOfflineAudioContext, IOscillatorNode, IPeriodicWave } from '../interfaces';\nimport { TNativeOfflineAudioContext, TNativeOscillatorNode, TOscillatorNodeRendererFactoryFactory } from '../types';\n\nexport const createOscillatorNodeRendererFactory: TOscillatorNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeOscillatorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeOscillatorNodes = new WeakMap();\n\n let periodicWave: null | IPeriodicWave = null;\n let start: null | number = null;\n let stop: null | number = null;\n\n const createOscillatorNode = async (proxy: IOscillatorNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeOscillatorNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeOscillatorNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeOscillatorNodeIsOwnedByContext = isOwnedByContext(nativeOscillatorNode, nativeOfflineAudioContext);\n\n if (!nativeOscillatorNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeOscillatorNode.channelCount,\n channelCountMode: nativeOscillatorNode.channelCountMode,\n channelInterpretation: nativeOscillatorNode.channelInterpretation,\n detune: nativeOscillatorNode.detune.value,\n frequency: nativeOscillatorNode.frequency.value,\n periodicWave: periodicWave === null ? undefined : periodicWave,\n type: nativeOscillatorNode.type\n };\n\n nativeOscillatorNode = createNativeOscillatorNode(nativeOfflineAudioContext, options);\n\n if (start !== null) {\n nativeOscillatorNode.start(start);\n }\n\n if (stop !== null) {\n nativeOscillatorNode.stop(stop);\n }\n }\n\n renderedNativeOscillatorNodes.set(nativeOfflineAudioContext, nativeOscillatorNode);\n\n if (!nativeOscillatorNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.detune, nativeOscillatorNode.detune);\n await renderAutomation(nativeOfflineAudioContext, proxy.frequency, nativeOscillatorNode.frequency);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.detune, nativeOscillatorNode.detune);\n await connectAudioParam(nativeOfflineAudioContext, proxy.frequency, nativeOscillatorNode.frequency);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeOscillatorNode);\n\n return nativeOscillatorNode;\n };\n\n return {\n set periodicWave(value: null | IPeriodicWave) {\n periodicWave = value;\n },\n set start(value: number) {\n start = value;\n },\n set stop(value: number) {\n stop = value;\n },\n render(proxy: IOscillatorNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeOscillatorNode = renderedNativeOscillatorNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeOscillatorNode !== undefined) {\n return Promise.resolve(renderedNativeOscillatorNode);\n }\n\n return createOscillatorNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TConnectedNativeAudioBufferSourceNodeFactoryFactory } from '../types';\n\nexport const createConnectedNativeAudioBufferSourceNodeFactory: TConnectedNativeAudioBufferSourceNodeFactoryFactory = (\n createNativeAudioBufferSourceNode\n) => {\n return (nativeContext, nativeAudioNode) => {\n const nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const nativeAudioBuffer = nativeContext.createBuffer(1, 2, 44100);\n\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n nativeAudioBufferSourceNode.loop = true;\n\n nativeAudioBufferSourceNode.connect(nativeAudioNode);\n nativeAudioBufferSourceNode.start();\n\n return () => {\n nativeAudioBufferSourceNode.stop();\n nativeAudioBufferSourceNode.disconnect(nativeAudioNode);\n };\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { interceptConnections } from '../helpers/intercept-connections';\nimport { TNativeAudioNode, TNativeWaveShaperNode, TNativeWaveShaperNodeFakerFactoryFactory } from '../types';\n\nexport const createNativeWaveShaperNodeFakerFactory: TNativeWaveShaperNodeFakerFactoryFactory = (\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeGainNode,\n isDCCurve,\n monitorConnections\n) => {\n return (nativeContext, { curve, oversample, ...audioNodeOptions }) => {\n const negativeWaveShaperNode = nativeContext.createWaveShaper();\n const positiveWaveShaperNode = nativeContext.createWaveShaper();\n\n assignNativeAudioNodeOptions(negativeWaveShaperNode, audioNodeOptions);\n assignNativeAudioNodeOptions(positiveWaveShaperNode, audioNodeOptions);\n\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const invertGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: -1 });\n const outputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const revertGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: -1 });\n\n let disconnectNativeAudioBufferSourceNode: null | (() => void) = null;\n let isConnected = false;\n let unmodifiedCurve: null | TNativeWaveShaperNode['curve'] = null;\n\n const nativeWaveShaperNodeFaker = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return negativeWaveShaperNode.channelCount;\n },\n set channelCount(value) {\n inputGainNode.channelCount = value;\n invertGainNode.channelCount = value;\n negativeWaveShaperNode.channelCount = value;\n outputGainNode.channelCount = value;\n positiveWaveShaperNode.channelCount = value;\n revertGainNode.channelCount = value;\n },\n get channelCountMode(): TNativeWaveShaperNode['channelCountMode'] {\n return negativeWaveShaperNode.channelCountMode;\n },\n set channelCountMode(value) {\n inputGainNode.channelCountMode = value;\n invertGainNode.channelCountMode = value;\n negativeWaveShaperNode.channelCountMode = value;\n outputGainNode.channelCountMode = value;\n positiveWaveShaperNode.channelCountMode = value;\n revertGainNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeWaveShaperNode['channelInterpretation'] {\n return negativeWaveShaperNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n invertGainNode.channelInterpretation = value;\n negativeWaveShaperNode.channelInterpretation = value;\n outputGainNode.channelInterpretation = value;\n positiveWaveShaperNode.channelInterpretation = value;\n revertGainNode.channelInterpretation = value;\n },\n get context(): TNativeWaveShaperNode['context'] {\n return negativeWaveShaperNode.context;\n },\n get curve(): TNativeWaveShaperNode['curve'] {\n return unmodifiedCurve;\n },\n set curve(value) {\n // Bug #102: Safari does not throw an InvalidStateError when the curve has less than two samples.\n if (value !== null && value.length < 2) {\n throw createInvalidStateError();\n }\n\n if (value === null) {\n negativeWaveShaperNode.curve = value;\n positiveWaveShaperNode.curve = value;\n } else {\n const curveLength = value.length;\n\n const negativeCurve = new Float32Array(curveLength + 2 - (curveLength % 2));\n const positiveCurve = new Float32Array(curveLength + 2 - (curveLength % 2));\n\n negativeCurve[0] = value[0];\n positiveCurve[0] = -value[curveLength - 1];\n\n const length = Math.ceil((curveLength + 1) / 2);\n const centerIndex = (curveLength + 1) / 2 - 1;\n\n for (let i = 1; i < length; i += 1) {\n const theoreticIndex = (i / length) * centerIndex;\n\n const lowerIndex = Math.floor(theoreticIndex);\n const upperIndex = Math.ceil(theoreticIndex);\n\n negativeCurve[i] =\n lowerIndex === upperIndex\n ? value[lowerIndex]\n : (1 - (theoreticIndex - lowerIndex)) * value[lowerIndex] +\n (1 - (upperIndex - theoreticIndex)) * value[upperIndex];\n positiveCurve[i] =\n lowerIndex === upperIndex\n ? -value[curveLength - 1 - lowerIndex]\n : -((1 - (theoreticIndex - lowerIndex)) * value[curveLength - 1 - lowerIndex]) -\n (1 - (upperIndex - theoreticIndex)) * value[curveLength - 1 - upperIndex];\n }\n\n negativeCurve[length] = curveLength % 2 === 1 ? value[length - 1] : (value[length - 2] + value[length - 1]) / 2;\n\n negativeWaveShaperNode.curve = negativeCurve;\n positiveWaveShaperNode.curve = positiveCurve;\n }\n\n unmodifiedCurve = value;\n\n if (isConnected) {\n if (isDCCurve(unmodifiedCurve) && disconnectNativeAudioBufferSourceNode === null) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, inputGainNode);\n } else if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n }\n },\n get inputs(): TNativeAudioNode[] {\n return [inputGainNode];\n },\n get numberOfInputs(): number {\n return negativeWaveShaperNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return negativeWaveShaperNode.numberOfOutputs;\n },\n get oversample(): TNativeWaveShaperNode['oversample'] {\n return negativeWaveShaperNode.oversample;\n },\n set oversample(value) {\n negativeWaveShaperNode.oversample = value;\n positiveWaveShaperNode.oversample = value;\n },\n addEventListener(...args: any[]): void {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n if (curve !== null) {\n // Only values of type Float32Array can be assigned to the curve property.\n nativeWaveShaperNodeFaker.curve = curve instanceof Float32Array ? curve : new Float32Array(curve);\n }\n\n if (oversample !== nativeWaveShaperNodeFaker.oversample) {\n nativeWaveShaperNodeFaker.oversample = oversample;\n }\n\n const whenConnected = () => {\n inputGainNode.connect(negativeWaveShaperNode).connect(outputGainNode);\n\n inputGainNode.connect(invertGainNode).connect(positiveWaveShaperNode).connect(revertGainNode).connect(outputGainNode);\n\n isConnected = true;\n\n if (isDCCurve(unmodifiedCurve)) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, inputGainNode);\n }\n };\n const whenDisconnected = () => {\n inputGainNode.disconnect(negativeWaveShaperNode);\n negativeWaveShaperNode.disconnect(outputGainNode);\n\n inputGainNode.disconnect(invertGainNode);\n invertGainNode.disconnect(positiveWaveShaperNode);\n positiveWaveShaperNode.disconnect(revertGainNode);\n revertGainNode.disconnect(outputGainNode);\n\n isConnected = false;\n\n if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n };\n\n return monitorConnections(interceptConnections(nativeWaveShaperNodeFaker, outputGainNode), whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeWaveShaperNodeFactoryFactory } from '../types';\n\nexport const createNativeWaveShaperNodeFactory: TNativeWaveShaperNodeFactoryFactory = (\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeWaveShaperNodeFaker,\n isDCCurve,\n monitorConnections,\n nativeAudioContextConstructor,\n overwriteAccessors\n) => {\n return (nativeContext, options) => {\n const nativeWaveShaperNode = nativeContext.createWaveShaper();\n\n /*\n * Bug #119: Safari does not correctly map the values.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the existence of\n * the webkitAudioContext is used as a workaround here. Testing for the automationRate property is necessary because this workaround\n * isn't necessary anymore since v14.0.2 of Safari.\n */\n if (\n nativeAudioContextConstructor !== null &&\n nativeAudioContextConstructor.name === 'webkitAudioContext' &&\n nativeContext.createGain().gain.automationRate === undefined\n ) {\n return createNativeWaveShaperNodeFaker(nativeContext, options);\n }\n\n assignNativeAudioNodeOptions(nativeWaveShaperNode, options);\n\n const curve = options.curve === null || options.curve instanceof Float32Array ? options.curve : new Float32Array(options.curve);\n\n // Bug #104: Chrome and Edge will throw an InvalidAccessError when the curve has less than two samples.\n if (curve !== null && curve.length < 2) {\n throw createInvalidStateError();\n }\n\n // Only values of type Float32Array can be assigned to the curve property.\n assignNativeAudioNodeOption(nativeWaveShaperNode, { curve }, 'curve');\n assignNativeAudioNodeOption(nativeWaveShaperNode, options, 'oversample');\n\n let disconnectNativeAudioBufferSourceNode: null | (() => void) = null;\n let isConnected = false;\n\n overwriteAccessors(\n nativeWaveShaperNode,\n 'curve',\n (get) => () => get.call(nativeWaveShaperNode),\n (set) => (value) => {\n set.call(nativeWaveShaperNode, value);\n\n if (isConnected) {\n if (isDCCurve(value) && disconnectNativeAudioBufferSourceNode === null) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(\n nativeContext,\n nativeWaveShaperNode\n );\n } else if (!isDCCurve(value) && disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n }\n\n return value;\n }\n );\n\n const whenConnected = () => {\n isConnected = true;\n\n if (isDCCurve(nativeWaveShaperNode.curve)) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, nativeWaveShaperNode);\n }\n };\n const whenDisconnected = () => {\n isConnected = false;\n\n if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n };\n\n return monitorConnections(nativeWaveShaperNode, whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { interceptConnections } from '../helpers/intercept-connections';\nimport { TNativeAudioNode, TNativePannerNode, TNativePannerNodeFakerFactoryFactory } from '../types';\n\nexport const createNativePannerNodeFakerFactory: TNativePannerNodeFakerFactoryFactory = (\n connectNativeAudioNodeToNativeAudioNode,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getFirstSample,\n monitorConnections\n) => {\n return (\n nativeContext,\n {\n coneInnerAngle,\n coneOuterAngle,\n coneOuterGain,\n distanceModel,\n maxDistance,\n orientationX,\n orientationY,\n orientationZ,\n panningModel,\n positionX,\n positionY,\n positionZ,\n refDistance,\n rolloffFactor,\n ...audioNodeOptions\n }\n ) => {\n const pannerNode = nativeContext.createPanner();\n\n // Bug #125: Safari does not throw an error yet.\n if (audioNodeOptions.channelCount > 2) {\n throw createNotSupportedError();\n }\n\n // Bug #126: Safari does not throw an error yet.\n if (audioNodeOptions.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n assignNativeAudioNodeOptions(pannerNode, audioNodeOptions);\n\n const SINGLE_CHANNEL_OPTIONS = {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete'\n } as const;\n\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n ...SINGLE_CHANNEL_OPTIONS,\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n });\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const orientationXGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 1 });\n const orientationYGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const orientationZGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionXGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionYGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionZGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, 256, 6, 1);\n const waveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_OPTIONS,\n curve: new Float32Array([1, 1]),\n oversample: 'none'\n });\n\n let lastOrientation: [number, number, number] = [orientationX, orientationY, orientationZ];\n let lastPosition: [number, number, number] = [positionX, positionY, positionZ];\n\n const buffer = new Float32Array(1);\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer }) => {\n const orientation: [number, number, number] = [\n getFirstSample(inputBuffer, buffer, 0),\n getFirstSample(inputBuffer, buffer, 1),\n getFirstSample(inputBuffer, buffer, 2)\n ];\n\n if (orientation.some((value, index) => value !== lastOrientation[index])) {\n pannerNode.setOrientation(...orientation); // tslint:disable-line:deprecation\n\n lastOrientation = orientation;\n }\n\n const positon: [number, number, number] = [\n getFirstSample(inputBuffer, buffer, 3),\n getFirstSample(inputBuffer, buffer, 4),\n getFirstSample(inputBuffer, buffer, 5)\n ];\n\n if (positon.some((value, index) => value !== lastPosition[index])) {\n pannerNode.setPosition(...positon); // tslint:disable-line:deprecation\n\n lastPosition = positon;\n }\n };\n\n Object.defineProperty(orientationYGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(orientationZGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionXGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionYGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionZGainNode.gain, 'defaultValue', { get: () => 0 });\n\n const nativePannerNodeFaker = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return pannerNode.channelCount;\n },\n set channelCount(value) {\n // Bug #125: Safari does not throw an error yet.\n if (value > 2) {\n throw createNotSupportedError();\n }\n\n inputGainNode.channelCount = value;\n pannerNode.channelCount = value;\n },\n get channelCountMode(): TNativePannerNode['channelCountMode'] {\n return pannerNode.channelCountMode;\n },\n set channelCountMode(value) {\n // Bug #126: Safari does not throw an error yet.\n if (value === 'max') {\n throw createNotSupportedError();\n }\n\n inputGainNode.channelCountMode = value;\n pannerNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativePannerNode['channelInterpretation'] {\n return pannerNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n pannerNode.channelInterpretation = value;\n },\n get coneInnerAngle(): TNativePannerNode['coneInnerAngle'] {\n return pannerNode.coneInnerAngle;\n },\n set coneInnerAngle(value) {\n pannerNode.coneInnerAngle = value;\n },\n get coneOuterAngle(): TNativePannerNode['coneOuterAngle'] {\n return pannerNode.coneOuterAngle;\n },\n set coneOuterAngle(value) {\n pannerNode.coneOuterAngle = value;\n },\n get coneOuterGain(): TNativePannerNode['coneOuterGain'] {\n return pannerNode.coneOuterGain;\n },\n set coneOuterGain(value) {\n // Bug #127: Safari does not throw an InvalidStateError yet.\n if (value < 0 || value > 1) {\n throw createInvalidStateError();\n }\n\n pannerNode.coneOuterGain = value;\n },\n get context(): TNativePannerNode['context'] {\n return pannerNode.context;\n },\n get distanceModel(): TNativePannerNode['distanceModel'] {\n return pannerNode.distanceModel;\n },\n set distanceModel(value) {\n pannerNode.distanceModel = value;\n },\n get inputs(): TNativeAudioNode[] {\n return [inputGainNode];\n },\n get maxDistance(): TNativePannerNode['maxDistance'] {\n return pannerNode.maxDistance;\n },\n set maxDistance(value) {\n // Bug #128: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n\n pannerNode.maxDistance = value;\n },\n get numberOfInputs(): number {\n return pannerNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return pannerNode.numberOfOutputs;\n },\n get orientationX(): TNativePannerNode['orientationX'] {\n return orientationXGainNode.gain;\n },\n get orientationY(): TNativePannerNode['orientationY'] {\n return orientationYGainNode.gain;\n },\n get orientationZ(): TNativePannerNode['orientationZ'] {\n return orientationZGainNode.gain;\n },\n get panningModel(): TNativePannerNode['panningModel'] {\n return pannerNode.panningModel;\n },\n set panningModel(value) {\n pannerNode.panningModel = value;\n },\n get positionX(): TNativePannerNode['positionX'] {\n return positionXGainNode.gain;\n },\n get positionY(): TNativePannerNode['positionY'] {\n return positionYGainNode.gain;\n },\n get positionZ(): TNativePannerNode['positionZ'] {\n return positionZGainNode.gain;\n },\n get refDistance(): TNativePannerNode['refDistance'] {\n return pannerNode.refDistance;\n },\n set refDistance(value) {\n // Bug #129: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n\n pannerNode.refDistance = value;\n },\n get rolloffFactor(): TNativePannerNode['rolloffFactor'] {\n return pannerNode.rolloffFactor;\n },\n set rolloffFactor(value) {\n // Bug #130: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n\n pannerNode.rolloffFactor = value;\n },\n addEventListener(...args: any[]): void {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n if (coneInnerAngle !== nativePannerNodeFaker.coneInnerAngle) {\n nativePannerNodeFaker.coneInnerAngle = coneInnerAngle;\n }\n\n if (coneOuterAngle !== nativePannerNodeFaker.coneOuterAngle) {\n nativePannerNodeFaker.coneOuterAngle = coneOuterAngle;\n }\n\n if (coneOuterGain !== nativePannerNodeFaker.coneOuterGain) {\n nativePannerNodeFaker.coneOuterGain = coneOuterGain;\n }\n\n if (distanceModel !== nativePannerNodeFaker.distanceModel) {\n nativePannerNodeFaker.distanceModel = distanceModel;\n }\n\n if (maxDistance !== nativePannerNodeFaker.maxDistance) {\n nativePannerNodeFaker.maxDistance = maxDistance;\n }\n\n if (orientationX !== nativePannerNodeFaker.orientationX.value) {\n nativePannerNodeFaker.orientationX.value = orientationX;\n }\n\n if (orientationY !== nativePannerNodeFaker.orientationY.value) {\n nativePannerNodeFaker.orientationY.value = orientationY;\n }\n\n if (orientationZ !== nativePannerNodeFaker.orientationZ.value) {\n nativePannerNodeFaker.orientationZ.value = orientationZ;\n }\n\n if (panningModel !== nativePannerNodeFaker.panningModel) {\n nativePannerNodeFaker.panningModel = panningModel;\n }\n\n if (positionX !== nativePannerNodeFaker.positionX.value) {\n nativePannerNodeFaker.positionX.value = positionX;\n }\n\n if (positionY !== nativePannerNodeFaker.positionY.value) {\n nativePannerNodeFaker.positionY.value = positionY;\n }\n\n if (positionZ !== nativePannerNodeFaker.positionZ.value) {\n nativePannerNodeFaker.positionZ.value = positionZ;\n }\n\n if (refDistance !== nativePannerNodeFaker.refDistance) {\n nativePannerNodeFaker.refDistance = refDistance;\n }\n\n if (rolloffFactor !== nativePannerNodeFaker.rolloffFactor) {\n nativePannerNodeFaker.rolloffFactor = rolloffFactor;\n }\n\n if (lastOrientation[0] !== 1 || lastOrientation[1] !== 0 || lastOrientation[2] !== 0) {\n pannerNode.setOrientation(...lastOrientation); // tslint:disable-line:deprecation\n }\n\n if (lastPosition[0] !== 0 || lastPosition[1] !== 0 || lastPosition[2] !== 0) {\n pannerNode.setPosition(...lastPosition); // tslint:disable-line:deprecation\n }\n\n const whenConnected = () => {\n inputGainNode.connect(pannerNode);\n\n // Bug #119: Safari does not fully support the WaveShaperNode.\n connectNativeAudioNodeToNativeAudioNode(inputGainNode, waveShaperNode, 0, 0);\n\n waveShaperNode.connect(orientationXGainNode).connect(channelMergerNode, 0, 0);\n waveShaperNode.connect(orientationYGainNode).connect(channelMergerNode, 0, 1);\n waveShaperNode.connect(orientationZGainNode).connect(channelMergerNode, 0, 2);\n waveShaperNode.connect(positionXGainNode).connect(channelMergerNode, 0, 3);\n waveShaperNode.connect(positionYGainNode).connect(channelMergerNode, 0, 4);\n waveShaperNode.connect(positionZGainNode).connect(channelMergerNode, 0, 5);\n\n channelMergerNode.connect(scriptProcessorNode).connect(nativeContext.destination);\n };\n const whenDisconnected = () => {\n inputGainNode.disconnect(pannerNode);\n\n // Bug #119: Safari does not fully support the WaveShaperNode.\n disconnectNativeAudioNodeFromNativeAudioNode(inputGainNode, waveShaperNode, 0, 0);\n\n waveShaperNode.disconnect(orientationXGainNode);\n orientationXGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(orientationYGainNode);\n orientationYGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(orientationZGainNode);\n orientationZGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionXGainNode);\n positionXGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionYGainNode);\n positionYGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionZGainNode);\n positionZGainNode.disconnect(channelMergerNode);\n\n channelMergerNode.disconnect(scriptProcessorNode);\n scriptProcessorNode.disconnect(nativeContext.destination);\n };\n\n return monitorConnections(interceptConnections(nativePannerNodeFaker, pannerNode), whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativePannerNodeFactoryFactory } from '../types';\n\nexport const createNativePannerNodeFactory: TNativePannerNodeFactoryFactory = (createNativePannerNodeFaker) => {\n return (nativeContext, options) => {\n const nativePannerNode = nativeContext.createPanner();\n\n // Bug #124: Safari does not support modifying the orientation and the position with AudioParams.\n if (nativePannerNode.orientationX === undefined) {\n return createNativePannerNodeFaker(nativeContext, options);\n }\n\n assignNativeAudioNodeOptions(nativePannerNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationX');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationY');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationZ');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionX');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionY');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionZ');\n\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneInnerAngle');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneOuterAngle');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneOuterGain');\n assignNativeAudioNodeOption(nativePannerNode, options, 'distanceModel');\n assignNativeAudioNodeOption(nativePannerNode, options, 'maxDistance');\n assignNativeAudioNodeOption(nativePannerNode, options, 'panningModel');\n assignNativeAudioNodeOption(nativePannerNode, options, 'refDistance');\n assignNativeAudioNodeOption(nativePannerNode, options, 'rolloffFactor');\n\n return nativePannerNode;\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, INativePannerNodeFaker, IOfflineAudioContext, IPannerNode } from '../interfaces';\nimport {\n TNativeAudioBuffer,\n TNativeGainNode,\n TNativeOfflineAudioContext,\n TNativePannerNode,\n TPannerNodeRendererFactoryFactory\n} from '../types';\n\nexport const createPannerNodeRendererFactory: TPannerNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativePannerNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n\n let renderedBufferPromise: null | Promise = null;\n\n const createAudioNode = async (proxy: IPannerNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeGainNode: null | TNativeGainNode = null;\n let nativePannerNode = getNativeAudioNode(proxy);\n\n const commonAudioNodeOptions = {\n channelCount: nativePannerNode.channelCount,\n channelCountMode: nativePannerNode.channelCountMode,\n channelInterpretation: nativePannerNode.channelInterpretation\n };\n const commonNativePannerNodeOptions = {\n ...commonAudioNodeOptions,\n coneInnerAngle: nativePannerNode.coneInnerAngle,\n coneOuterAngle: nativePannerNode.coneOuterAngle,\n coneOuterGain: nativePannerNode.coneOuterGain,\n distanceModel: nativePannerNode.distanceModel,\n maxDistance: nativePannerNode.maxDistance,\n panningModel: nativePannerNode.panningModel,\n refDistance: nativePannerNode.refDistance,\n rolloffFactor: nativePannerNode.rolloffFactor\n };\n\n // If the initially used nativePannerNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativePannerNodeIsOwnedByContext = isOwnedByContext(nativePannerNode, nativeOfflineAudioContext);\n\n // Bug #124: Safari does not support modifying the orientation and the position with AudioParams.\n if ('bufferSize' in nativePannerNode) {\n nativeGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n } else if (!nativePannerNodeIsOwnedByContext) {\n const options = {\n ...commonNativePannerNodeOptions,\n orientationX: nativePannerNode.orientationX.value,\n orientationY: nativePannerNode.orientationY.value,\n orientationZ: nativePannerNode.orientationZ.value,\n positionX: nativePannerNode.positionX.value,\n positionY: nativePannerNode.positionY.value,\n positionZ: nativePannerNode.positionZ.value\n };\n\n nativePannerNode = createNativePannerNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeGainNode === null ? nativePannerNode : nativeGainNode);\n\n if (nativeGainNode !== null) {\n if (renderedBufferPromise === null) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n 6,\n // Bug #17: Safari does not yet expose the length.\n proxy.context.length,\n nativeOfflineAudioContext.sampleRate\n );\n const nativeChannelMergerNode = createNativeChannelMergerNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n });\n nativeChannelMergerNode.connect(partialOfflineAudioContext.destination);\n\n renderedBufferPromise = (async () => {\n const nativeConstantSourceNodes = await Promise.all(\n [\n proxy.orientationX,\n proxy.orientationY,\n proxy.orientationZ,\n proxy.positionX,\n proxy.positionY,\n proxy.positionZ\n ].map(async (audioParam, index) => {\n const nativeConstantSourceNode = createNativeConstantSourceNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: index === 0 ? 1 : 0\n });\n\n await renderAutomation(partialOfflineAudioContext, audioParam, nativeConstantSourceNode.offset);\n\n return nativeConstantSourceNode;\n })\n );\n\n for (let i = 0; i < 6; i += 1) {\n nativeConstantSourceNodes[i].connect(nativeChannelMergerNode, 0, i);\n nativeConstantSourceNodes[i].start(0);\n }\n\n return renderNativeOfflineAudioContext(partialOfflineAudioContext);\n })();\n }\n\n const renderedBuffer = await renderedBufferPromise;\n const inputGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, inputGainNode);\n\n const channelDatas: Float32Array[] = [];\n\n for (let i = 0; i < renderedBuffer.numberOfChannels; i += 1) {\n channelDatas.push(renderedBuffer.getChannelData(i));\n }\n\n let lastOrientation = [channelDatas[0][0], channelDatas[1][0], channelDatas[2][0]];\n let lastPosition = [channelDatas[3][0], channelDatas[4][0], channelDatas[5][0]];\n let gateGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n let partialPannerNode = createNativePannerNode(nativeOfflineAudioContext, {\n ...commonNativePannerNodeOptions,\n orientationX: lastOrientation[0],\n orientationY: lastOrientation[1],\n orientationZ: lastOrientation[2],\n positionX: lastPosition[0],\n positionY: lastPosition[1],\n positionZ: lastPosition[2]\n });\n\n inputGainNode.connect(gateGainNode).connect((partialPannerNode).inputs[0]);\n partialPannerNode.connect(nativeGainNode);\n\n for (let i = 128; i < renderedBuffer.length; i += 128) {\n const orientation: [number, number, number] = [channelDatas[0][i], channelDatas[1][i], channelDatas[2][i]];\n const positon: [number, number, number] = [channelDatas[3][i], channelDatas[4][i], channelDatas[5][i]];\n\n if (\n orientation.some((value, index) => value !== lastOrientation[index]) ||\n positon.some((value, index) => value !== lastPosition[index])\n ) {\n lastOrientation = orientation;\n lastPosition = positon;\n\n const currentTime = i / nativeOfflineAudioContext.sampleRate;\n\n gateGainNode.gain.setValueAtTime(0, currentTime);\n\n gateGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 0 });\n partialPannerNode = createNativePannerNode(nativeOfflineAudioContext, {\n ...commonNativePannerNodeOptions,\n orientationX: lastOrientation[0],\n orientationY: lastOrientation[1],\n orientationZ: lastOrientation[2],\n positionX: lastPosition[0],\n positionY: lastPosition[1],\n positionZ: lastPosition[2]\n });\n\n gateGainNode.gain.setValueAtTime(1, currentTime);\n\n inputGainNode.connect(gateGainNode).connect((partialPannerNode).inputs[0]);\n partialPannerNode.connect(nativeGainNode);\n }\n }\n\n return nativeGainNode;\n }\n\n if (!nativePannerNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationX, nativePannerNode.orientationX);\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationY, nativePannerNode.orientationY);\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationZ, nativePannerNode.orientationZ);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionX, nativePannerNode.positionX);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionY, nativePannerNode.positionY);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionZ, nativePannerNode.positionZ);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationX, nativePannerNode.orientationX);\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationY, nativePannerNode.orientationY);\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationZ, nativePannerNode.orientationZ);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionX, nativePannerNode.positionX);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionY, nativePannerNode.positionY);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionZ, nativePannerNode.positionZ);\n }\n\n if (isNativeAudioNodeFaker(nativePannerNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativePannerNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativePannerNode);\n }\n\n return nativePannerNode;\n };\n\n return {\n render(\n proxy: IPannerNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeGainNodeOrNativePannerNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeGainNodeOrNativePannerNode !== undefined) {\n return Promise.resolve(renderedNativeGainNodeOrNativePannerNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TNativePeriodicWaveFactoryFactory } from '../types';\n\nexport const createNativePeriodicWaveFactory: TNativePeriodicWaveFactoryFactory = (createIndexSizeError) => {\n return (nativeContext, { disableNormalization, imag, real }) => {\n // Bug #180: Safari does not allow to use ordinary arrays.\n const convertedImag = imag instanceof Float32Array ? imag : new Float32Array(imag);\n const convertedReal = real instanceof Float32Array ? real : new Float32Array(real);\n\n const nativePeriodicWave = nativeContext.createPeriodicWave(convertedReal, convertedImag, { disableNormalization });\n\n // Bug #181: Safari does not throw an IndexSizeError so far if the given arrays have less than two values.\n if (Array.from(imag).length < 2) {\n throw createIndexSizeError();\n }\n\n return nativePeriodicWave;\n };\n};\n","import { TSanitizePeriodicWaveOptionsFunction } from '../types';\n\nexport const sanitizePeriodicWaveOptions: TSanitizePeriodicWaveOptionsFunction = (options) => {\n const { imag, real } = options;\n\n if (imag === undefined) {\n if (real === undefined) {\n return { ...options, imag: [0, 0], real: [0, 0] };\n }\n\n return { ...options, imag: Array.from(real, () => 0), real };\n }\n\n if (real === undefined) {\n return { ...options, imag, real: Array.from(imag, () => 0) };\n }\n\n return { ...options, imag, real };\n};\n","import { interceptConnections } from '../helpers/intercept-connections';\nimport { INativeWaveShaperNodeFaker } from '../interfaces';\nimport {\n TNativeAudioNode,\n TNativeChannelMergerNode,\n TNativeContext,\n TNativeGainNode,\n TNativeStereoPannerNode,\n TNativeStereoPannerNodeFakerFactoryFactory\n} from '../types';\n\nexport const createNativeStereoPannerNodeFakerFactory: TNativeStereoPannerNodeFakerFactoryFactory = (\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeGainNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n monitorConnections\n) => {\n // The curve has a size of 14bit plus 1 value to have an exact representation for zero. This value has been determined experimentally.\n const CURVE_SIZE = 16385;\n const DC_CURVE = new Float32Array([1, 1]);\n const HALF_PI = Math.PI / 2;\n const SINGLE_CHANNEL_OPTIONS = { channelCount: 1, channelCountMode: 'explicit', channelInterpretation: 'discrete' } as const;\n const SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS = { ...SINGLE_CHANNEL_OPTIONS, oversample: 'none' } as const;\n\n const buildInternalGraphForMono = (\n nativeContext: TNativeContext,\n inputGainNode: TNativeGainNode,\n panGainNode: TNativeGainNode,\n channelMergerNode: TNativeChannelMergerNode\n ) => {\n const leftWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightWaveShaperCurve = new Float32Array(CURVE_SIZE);\n\n for (let i = 0; i < CURVE_SIZE; i += 1) {\n const x = (i / (CURVE_SIZE - 1)) * HALF_PI;\n\n leftWaveShaperCurve[i] = Math.cos(x);\n rightWaveShaperCurve[i] = Math.sin(x);\n }\n\n const leftGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: leftWaveShaperCurve })\n );\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const panWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: DC_CURVE })\n );\n const rightGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: rightWaveShaperCurve })\n );\n\n return {\n connectGraph(): void {\n inputGainNode.connect(leftGainNode);\n inputGainNode.connect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n inputGainNode.connect(rightGainNode);\n\n panWaveShaperNode.connect(panGainNode);\n\n panGainNode.connect(leftWaveShaperNode.inputs === undefined ? leftWaveShaperNode : leftWaveShaperNode.inputs[0]);\n panGainNode.connect(rightWaveShaperNode.inputs === undefined ? rightWaveShaperNode : rightWaveShaperNode.inputs[0]);\n\n leftWaveShaperNode.connect(leftGainNode.gain);\n rightWaveShaperNode.connect(rightGainNode.gain);\n\n leftGainNode.connect(channelMergerNode, 0, 0);\n rightGainNode.connect(channelMergerNode, 0, 1);\n },\n disconnectGraph(): void {\n inputGainNode.disconnect(leftGainNode);\n inputGainNode.disconnect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n inputGainNode.disconnect(rightGainNode);\n\n panWaveShaperNode.disconnect(panGainNode);\n\n panGainNode.disconnect(leftWaveShaperNode.inputs === undefined ? leftWaveShaperNode : leftWaveShaperNode.inputs[0]);\n panGainNode.disconnect(rightWaveShaperNode.inputs === undefined ? rightWaveShaperNode : rightWaveShaperNode.inputs[0]);\n\n leftWaveShaperNode.disconnect(leftGainNode.gain);\n rightWaveShaperNode.disconnect(rightGainNode.gain);\n\n leftGainNode.disconnect(channelMergerNode, 0, 0);\n rightGainNode.disconnect(channelMergerNode, 0, 1);\n }\n };\n };\n\n const buildInternalGraphForStereo = (\n nativeContext: TNativeContext,\n inputGainNode: TNativeGainNode,\n panGainNode: TNativeGainNode,\n channelMergerNode: TNativeChannelMergerNode\n ) => {\n const leftInputForLeftOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const leftInputForRightOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightInputForLeftOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightInputForRightOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n\n const centerIndex = Math.floor(CURVE_SIZE / 2);\n\n for (let i = 0; i < CURVE_SIZE; i += 1) {\n if (i > centerIndex) {\n const x = ((i - centerIndex) / (CURVE_SIZE - 1 - centerIndex)) * HALF_PI;\n\n leftInputForLeftOutputWaveShaperCurve[i] = Math.cos(x);\n leftInputForRightOutputWaveShaperCurve[i] = Math.sin(x);\n rightInputForLeftOutputWaveShaperCurve[i] = 0;\n rightInputForRightOutputWaveShaperCurve[i] = 1;\n } else {\n const x = (i / (CURVE_SIZE - 1 - centerIndex)) * HALF_PI;\n\n leftInputForLeftOutputWaveShaperCurve[i] = 1;\n leftInputForRightOutputWaveShaperCurve[i] = 0;\n rightInputForLeftOutputWaveShaperCurve[i] = Math.cos(x);\n rightInputForRightOutputWaveShaperCurve[i] = Math.sin(x);\n }\n }\n\n const channelSplitterNode = createNativeChannelSplitterNode(nativeContext, {\n channelCount: 2,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: 2\n });\n const leftInputForLeftOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftInputForLeftOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: leftInputForLeftOutputWaveShaperCurve\n });\n const leftInputForRightOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftInputForRightOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: leftInputForRightOutputWaveShaperCurve\n });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const panWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: DC_CURVE })\n );\n const rightInputForLeftOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightInputForLeftOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: rightInputForLeftOutputWaveShaperCurve\n });\n const rightInputForRightOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightInputForRightOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: rightInputForRightOutputWaveShaperCurve\n });\n\n return {\n connectGraph(): void {\n inputGainNode.connect(channelSplitterNode);\n inputGainNode.connect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n\n channelSplitterNode.connect(leftInputForLeftOutputGainNode, 0);\n channelSplitterNode.connect(leftInputForRightOutputGainNode, 0);\n channelSplitterNode.connect(rightInputForLeftOutputGainNode, 1);\n channelSplitterNode.connect(rightInputForRightOutputGainNode, 1);\n\n panWaveShaperNode.connect(panGainNode);\n\n panGainNode.connect(\n leftInputForLeftOutputWaveShaperNode.inputs === undefined\n ? leftInputForLeftOutputWaveShaperNode\n : leftInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.connect(\n leftInputForRightOutputWaveShaperNode.inputs === undefined\n ? leftInputForRightOutputWaveShaperNode\n : leftInputForRightOutputWaveShaperNode.inputs[0]\n );\n panGainNode.connect(\n rightInputForLeftOutputWaveShaperNode.inputs === undefined\n ? rightInputForLeftOutputWaveShaperNode\n : rightInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.connect(\n rightInputForRightOutputWaveShaperNode.inputs === undefined\n ? rightInputForRightOutputWaveShaperNode\n : rightInputForRightOutputWaveShaperNode.inputs[0]\n );\n\n leftInputForLeftOutputWaveShaperNode.connect(leftInputForLeftOutputGainNode.gain);\n leftInputForRightOutputWaveShaperNode.connect(leftInputForRightOutputGainNode.gain);\n rightInputForLeftOutputWaveShaperNode.connect(rightInputForLeftOutputGainNode.gain);\n rightInputForRightOutputWaveShaperNode.connect(rightInputForRightOutputGainNode.gain);\n\n leftInputForLeftOutputGainNode.connect(channelMergerNode, 0, 0);\n rightInputForLeftOutputGainNode.connect(channelMergerNode, 0, 0);\n\n leftInputForRightOutputGainNode.connect(channelMergerNode, 0, 1);\n rightInputForRightOutputGainNode.connect(channelMergerNode, 0, 1);\n },\n disconnectGraph(): void {\n inputGainNode.disconnect(channelSplitterNode);\n inputGainNode.disconnect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n\n channelSplitterNode.disconnect(leftInputForLeftOutputGainNode, 0);\n channelSplitterNode.disconnect(leftInputForRightOutputGainNode, 0);\n channelSplitterNode.disconnect(rightInputForLeftOutputGainNode, 1);\n channelSplitterNode.disconnect(rightInputForRightOutputGainNode, 1);\n\n panWaveShaperNode.disconnect(panGainNode);\n\n panGainNode.disconnect(\n leftInputForLeftOutputWaveShaperNode.inputs === undefined\n ? leftInputForLeftOutputWaveShaperNode\n : leftInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.disconnect(\n leftInputForRightOutputWaveShaperNode.inputs === undefined\n ? leftInputForRightOutputWaveShaperNode\n : leftInputForRightOutputWaveShaperNode.inputs[0]\n );\n panGainNode.disconnect(\n rightInputForLeftOutputWaveShaperNode.inputs === undefined\n ? rightInputForLeftOutputWaveShaperNode\n : rightInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.disconnect(\n rightInputForRightOutputWaveShaperNode.inputs === undefined\n ? rightInputForRightOutputWaveShaperNode\n : rightInputForRightOutputWaveShaperNode.inputs[0]\n );\n\n leftInputForLeftOutputWaveShaperNode.disconnect(leftInputForLeftOutputGainNode.gain);\n leftInputForRightOutputWaveShaperNode.disconnect(leftInputForRightOutputGainNode.gain);\n rightInputForLeftOutputWaveShaperNode.disconnect(rightInputForLeftOutputGainNode.gain);\n rightInputForRightOutputWaveShaperNode.disconnect(rightInputForRightOutputGainNode.gain);\n\n leftInputForLeftOutputGainNode.disconnect(channelMergerNode, 0, 0);\n rightInputForLeftOutputGainNode.disconnect(channelMergerNode, 0, 0);\n\n leftInputForRightOutputGainNode.disconnect(channelMergerNode, 0, 1);\n rightInputForRightOutputGainNode.disconnect(channelMergerNode, 0, 1);\n }\n };\n };\n\n const buildInternalGraph = (\n nativeContext: TNativeContext,\n channelCount: number,\n inputGainNode: TNativeGainNode,\n panGainNode: TNativeGainNode,\n channelMergerNode: TNativeChannelMergerNode\n ) => {\n if (channelCount === 1) {\n return buildInternalGraphForMono(nativeContext, inputGainNode, panGainNode, channelMergerNode);\n }\n\n if (channelCount === 2) {\n return buildInternalGraphForStereo(nativeContext, inputGainNode, panGainNode, channelMergerNode);\n }\n\n throw createNotSupportedError();\n };\n\n return (nativeContext, { channelCount, channelCountMode, pan, ...audioNodeOptions }) => {\n if (channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n ...audioNodeOptions,\n channelCount: 1,\n channelCountMode,\n numberOfInputs: 2\n });\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, channelCount, channelCountMode, gain: 1 });\n const panGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: pan\n });\n\n let { connectGraph, disconnectGraph } = buildInternalGraph(\n nativeContext,\n channelCount,\n inputGainNode,\n panGainNode,\n channelMergerNode\n );\n\n Object.defineProperty(panGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(panGainNode.gain, 'maxValue', { get: () => 1 });\n Object.defineProperty(panGainNode.gain, 'minValue', { get: () => -1 });\n\n const nativeStereoPannerNodeFakerFactory = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return inputGainNode.channelCount;\n },\n set channelCount(value) {\n if (inputGainNode.channelCount !== value) {\n if (isConnected) {\n disconnectGraph();\n }\n\n ({ connectGraph, disconnectGraph } = buildInternalGraph(\n nativeContext,\n value,\n inputGainNode,\n panGainNode,\n channelMergerNode\n ));\n\n if (isConnected) {\n connectGraph();\n }\n }\n\n inputGainNode.channelCount = value;\n },\n get channelCountMode(): TNativeStereoPannerNode['channelCountMode'] {\n return inputGainNode.channelCountMode;\n },\n set channelCountMode(value) {\n if (value === 'clamped-max' || value === 'max') {\n throw createNotSupportedError();\n }\n\n inputGainNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeStereoPannerNode['channelInterpretation'] {\n return inputGainNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n },\n get context(): TNativeStereoPannerNode['context'] {\n return inputGainNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return [inputGainNode];\n },\n get numberOfInputs(): number {\n return inputGainNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return inputGainNode.numberOfOutputs;\n },\n get pan(): TNativeStereoPannerNode['pan'] {\n return panGainNode.gain;\n },\n addEventListener(...args: any[]): void {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n let isConnected = false;\n\n const whenConnected = () => {\n connectGraph();\n\n isConnected = true;\n };\n const whenDisconnected = () => {\n disconnectGraph();\n\n isConnected = false;\n };\n\n return monitorConnections(\n interceptConnections(nativeStereoPannerNodeFakerFactory, channelMergerNode),\n whenConnected,\n whenDisconnected\n );\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeStereoPannerNodeFactoryFactory } from '../types';\n\nexport const createNativeStereoPannerNodeFactory: TNativeStereoPannerNodeFactoryFactory = (\n createNativeStereoPannerNodeFaker,\n createNotSupportedError\n) => {\n return (nativeContext, options) => {\n const channelCountMode = options.channelCountMode;\n\n /*\n * Bug #105: The channelCountMode of 'clamped-max' should be supported. However it is not possible to write a polyfill for Safari\n * which supports it and therefore it can't be supported at all.\n */\n if (channelCountMode === 'clamped-max') {\n throw createNotSupportedError();\n }\n\n // Bug #105: Safari does not support the StereoPannerNode.\n if (nativeContext.createStereoPanner === undefined) {\n return createNativeStereoPannerNodeFaker(nativeContext, options);\n }\n\n const nativeStereoPannerNode = nativeContext.createStereoPanner();\n\n assignNativeAudioNodeOptions(nativeStereoPannerNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeStereoPannerNode, options, 'pan');\n\n /*\n * Bug #105: The channelCountMode of 'clamped-max' should be supported. However it is not possible to write a polyfill for Safari\n * which supports it and therefore it can't be supported at all.\n */\n Object.defineProperty(nativeStereoPannerNode, 'channelCountMode', {\n get: () => channelCountMode,\n set: (value) => {\n if (value !== channelCountMode) {\n throw createNotSupportedError();\n }\n }\n });\n\n return nativeStereoPannerNode;\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, IOfflineAudioContext, IStereoPannerNode } from '../interfaces';\nimport { TNativeOfflineAudioContext, TNativeStereoPannerNode, TStereoPannerNodeRendererFactoryFactory } from '../types';\n\nexport const createStereoPannerNodeRendererFactory: TStereoPannerNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeStereoPannerNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeStereoPannerNodes = new WeakMap();\n\n const createStereoPannerNode = async (proxy: IStereoPannerNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeStereoPannerNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeStereoPannerNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeStereoPannerNodeIsOwnedByContext = isOwnedByContext(nativeStereoPannerNode, nativeOfflineAudioContext);\n\n if (!nativeStereoPannerNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeStereoPannerNode.channelCount,\n channelCountMode: nativeStereoPannerNode.channelCountMode,\n channelInterpretation: nativeStereoPannerNode.channelInterpretation,\n pan: nativeStereoPannerNode.pan.value\n };\n\n nativeStereoPannerNode = createNativeStereoPannerNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeStereoPannerNodes.set(nativeOfflineAudioContext, nativeStereoPannerNode);\n\n if (!nativeStereoPannerNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.pan, nativeStereoPannerNode.pan);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.pan, nativeStereoPannerNode.pan);\n }\n\n if (isNativeAudioNodeFaker(nativeStereoPannerNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeStereoPannerNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeStereoPannerNode);\n }\n\n return nativeStereoPannerNode;\n };\n\n return {\n render(proxy: IStereoPannerNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeStereoPannerNode = renderedNativeStereoPannerNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeStereoPannerNode !== undefined) {\n return Promise.resolve(renderedNativeStereoPannerNode);\n }\n\n return createStereoPannerNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, IOfflineAudioContext, IWaveShaperNode } from '../interfaces';\nimport { TNativeOfflineAudioContext, TNativeWaveShaperNode, TWaveShaperNodeRendererFactoryFactory } from '../types';\n\nexport const createWaveShaperNodeRendererFactory: TWaveShaperNodeRendererFactoryFactory = (\n createNativeWaveShaperNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeWaveShaperNodes = new WeakMap();\n\n const createWaveShaperNode = async (proxy: IWaveShaperNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeWaveShaperNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeWaveShaperNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeWaveShaperNodeIsOwnedByContext = isOwnedByContext(nativeWaveShaperNode, nativeOfflineAudioContext);\n\n if (!nativeWaveShaperNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeWaveShaperNode.channelCount,\n channelCountMode: nativeWaveShaperNode.channelCountMode,\n channelInterpretation: nativeWaveShaperNode.channelInterpretation,\n curve: nativeWaveShaperNode.curve,\n oversample: nativeWaveShaperNode.oversample\n };\n\n nativeWaveShaperNode = createNativeWaveShaperNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeWaveShaperNodes.set(nativeOfflineAudioContext, nativeWaveShaperNode);\n\n if (isNativeAudioNodeFaker(nativeWaveShaperNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeWaveShaperNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeWaveShaperNode);\n }\n\n return nativeWaveShaperNode;\n };\n\n return {\n render(proxy: IWaveShaperNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeWaveShaperNode = renderedNativeWaveShaperNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeWaveShaperNode !== undefined) {\n return Promise.resolve(renderedNativeWaveShaperNode);\n }\n\n return createWaveShaperNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TIsSecureContextFactory } from '../types';\n\nexport const createIsSecureContext: TIsSecureContextFactory = (window) => window !== null && window.isSecureContext;\n","import { TExposeCurrentFrameAndCurrentTimeFactory } from '../types';\n\nexport const createExposeCurrentFrameAndCurrentTime: TExposeCurrentFrameAndCurrentTimeFactory = (window) => {\n return (currentTime, sampleRate, fn) => {\n Object.defineProperties(window, {\n currentFrame: {\n configurable: true,\n get(): number {\n return Math.round(currentTime * sampleRate);\n }\n },\n currentTime: {\n configurable: true,\n get(): number {\n return currentTime;\n }\n }\n });\n\n try {\n return fn();\n } finally {\n if (window !== null) {\n delete (window).currentFrame;\n delete (window).currentTime;\n }\n }\n };\n};\n","import { TGetOrCreateBackupOfflineAudioContextFactory } from '../types';\n\nexport const createGetOrCreateBackupOfflineAudioContext: TGetOrCreateBackupOfflineAudioContextFactory = (\n backupOfflineAudioContextStore,\n nativeOfflineAudioContextConstructor\n) => {\n return (nativeContext) => {\n let backupOfflineAudioContext = backupOfflineAudioContextStore.get(nativeContext);\n\n if (backupOfflineAudioContext !== undefined) {\n return backupOfflineAudioContext;\n }\n\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n // Bug #141: Safari does not support creating an OfflineAudioContext with less than 44100 Hz.\n backupOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n\n backupOfflineAudioContextStore.set(nativeContext, backupOfflineAudioContext);\n\n return backupOfflineAudioContext;\n };\n};\n","import { TEvaluateSourceFactory } from '../types';\n\nexport const createEvaluateSource: TEvaluateSourceFactory = (window) => {\n return (source) =>\n new Promise((resolve, reject) => {\n if (window === null) {\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n\n return;\n }\n\n const head = window.document.head;\n\n if (head === null) {\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n } else {\n const script = window.document.createElement('script');\n // @todo Safari doesn't like URLs with a type of 'application/javascript; charset=utf-8'.\n const blob = new Blob([source], { type: 'application/javascript' });\n const url = URL.createObjectURL(blob);\n\n const originalOnErrorHandler = window.onerror;\n\n const removeErrorEventListenerAndRevokeUrl = () => {\n window.onerror = originalOnErrorHandler;\n\n URL.revokeObjectURL(url);\n };\n\n window.onerror = (message, src, lineno, colno, error) => {\n // @todo Edge thinks the source is the one of the html document.\n if (src === url || (src === window.location.href && lineno === 1 && colno === 1)) {\n removeErrorEventListenerAndRevokeUrl();\n reject(error);\n\n return false;\n }\n\n if (originalOnErrorHandler !== null) {\n return originalOnErrorHandler(message, src, lineno, colno, error);\n }\n };\n\n script.onerror = () => {\n removeErrorEventListenerAndRevokeUrl();\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n };\n script.onload = () => {\n removeErrorEventListenerAndRevokeUrl();\n resolve();\n };\n script.src = url;\n script.type = 'module';\n\n head.appendChild(script);\n }\n });\n};\n","import { TFetchSourceFactory } from '../types';\n\nexport const createFetchSource: TFetchSourceFactory = (createAbortError) => {\n return async (url) => {\n try {\n const response = await fetch(url);\n\n if (response.ok) {\n return [await response.text(), response.url];\n }\n } catch {\n // Ignore errors.\n } // tslint:disable-line:no-empty\n\n throw createAbortError();\n };\n};\n","import { TAbortErrorFactory } from '../types';\n\nexport const createAbortError: TAbortErrorFactory = () => new DOMException('', 'AbortError');\n","import { TTestAudioWorkletProcessorPostMessageSupportFactory } from '../types';\n\n// Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\nexport const createTestAudioWorkletProcessorPostMessageSupport: TTestAudioWorkletProcessorPostMessageSupportFactory = (\n nativeAudioWorkletNodeConstructor,\n nativeOfflineAudioContextConstructor\n) => {\n return async () => {\n // Bug #61: If there is no native AudioWorkletNode it gets faked and therefore it is no problem if the it doesn't exist.\n if (nativeAudioWorkletNodeConstructor === null) {\n return true;\n }\n\n if (nativeOfflineAudioContextConstructor === null) {\n return false;\n }\n\n const blob = new Blob(\n ['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor(\"a\",A)'],\n {\n type: 'application/javascript; charset=utf-8'\n }\n );\n // Bug #141: Safari does not support creating an OfflineAudioContext with less than 44100 Hz.\n const offlineAudioContext = new nativeOfflineAudioContextConstructor(1, 128, 44100);\n const url = URL.createObjectURL(blob);\n\n let isEmittingMessageEvents = false;\n let isEmittingProcessorErrorEvents = false;\n\n try {\n await offlineAudioContext.audioWorklet.addModule(url);\n\n const audioWorkletNode = new nativeAudioWorkletNodeConstructor(offlineAudioContext, 'a', { numberOfOutputs: 0 });\n const oscillator = offlineAudioContext.createOscillator();\n\n audioWorkletNode.port.onmessage = () => (isEmittingMessageEvents = true);\n audioWorkletNode.onprocessorerror = () => (isEmittingProcessorErrorEvents = true);\n\n oscillator.connect(audioWorkletNode);\n oscillator.start(0);\n\n await offlineAudioContext.startRendering();\n } catch {\n // Ignore errors.\n } finally {\n URL.revokeObjectURL(url);\n }\n\n return isEmittingMessageEvents && !isEmittingProcessorErrorEvents;\n };\n};\n","import { TIsNativeContextFactory, TNativeAudioContext } from '../types';\n\nexport const createIsNativeContext: TIsNativeContextFactory = (isNativeAudioContext, isNativeOfflineAudioContext) => {\n return (anything): anything is TNativeAudioContext => {\n return isNativeAudioContext(anything) || isNativeOfflineAudioContext(anything);\n };\n};\n","import { detachArrayBuffer } from '../helpers/detach-array-buffer';\nimport { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nimport { TDecodeAudioDataFactory } from '../types';\n\nexport const createDecodeAudioData: TDecodeAudioDataFactory = (\n audioBufferStore,\n cacheTestResult,\n createDataCloneError,\n createEncodingError,\n detachedArrayBuffers,\n getNativeContext,\n isNativeContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n testPromiseSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n) => {\n return (anyContext, audioData) => {\n const nativeContext = isNativeContext(anyContext) ? anyContext : getNativeContext(anyContext);\n\n // Bug #43: Only Chrome and Edge do throw a DataCloneError.\n if (detachedArrayBuffers.has(audioData)) {\n const err = createDataCloneError();\n\n return Promise.reject(err);\n }\n\n // The audioData parameter maybe of a type which can't be added to a WeakSet.\n try {\n detachedArrayBuffers.add(audioData);\n } catch {\n // Ignore errors.\n }\n\n // Bug #21: Safari does not support promises yet.\n if (cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeContext))) {\n return nativeContext.decodeAudioData(audioData).then((audioBuffer) => {\n // Bug #133: Safari does neuter the ArrayBuffer.\n detachArrayBuffer(audioData).catch(() => {\n // Ignore errors.\n });\n\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n if (\n !cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () =>\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer)\n )\n ) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n return audioBuffer;\n });\n }\n\n // Bug #21: Safari does not return a Promise yet.\n return new Promise((resolve, reject) => {\n const complete = async () => {\n // Bug #133: Safari does neuter the ArrayBuffer.\n try {\n await detachArrayBuffer(audioData);\n } catch {\n // Ignore errors.\n }\n };\n\n const fail = (err: DOMException | Error) => {\n reject(err);\n complete();\n };\n\n // Bug #26: Safari throws a synchronous error.\n try {\n // Bug #1: Safari requires a successCallback.\n nativeContext.decodeAudioData(\n audioData,\n (audioBuffer) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n complete().then(() => resolve(audioBuffer));\n },\n (err: DOMException | Error) => {\n // Bug #4: Safari returns null instead of an error.\n if (err === null) {\n fail(createEncodingError());\n } else {\n fail(err);\n }\n }\n );\n } catch (err) {\n fail(err);\n }\n });\n };\n};\n","import { TDataCloneErrorFactory } from '../types';\n\nexport const createDataCloneError: TDataCloneErrorFactory = () => new DOMException('', 'DataCloneError');\n","import { TEncodingErrorFactory } from '../types';\n\nexport const createEncodingError: TEncodingErrorFactory = () => new DOMException('', 'EncodingError');\n","import {\n IAnalyserNode,\n IAudioBuffer,\n IAudioBufferSourceNode,\n IAudioNode,\n IAudioWorklet,\n IBaseAudioContext,\n IBiquadFilterNode,\n IConstantSourceNode,\n IConvolverNode,\n IDelayNode,\n IDynamicsCompressorNode,\n IGainNode,\n IIIRFilterNode,\n IOscillatorNode,\n IPannerNode,\n IPeriodicWave,\n IPeriodicWaveConstraints,\n IStereoPannerNode,\n IWaveShaperNode,\n IWorkletOptions\n} from '../interfaces';\nimport { TBaseAudioContextConstructorFactory, TContext, TDecodeErrorCallback, TDecodeSuccessCallback, TNativeContext } from '../types';\n\nexport const createBaseAudioContextConstructor: TBaseAudioContextConstructorFactory = (\n addAudioWorkletModule,\n analyserNodeConstructor,\n audioBufferConstructor,\n audioBufferSourceNodeConstructor,\n biquadFilterNodeConstructor,\n channelMergerNodeConstructor,\n channelSplitterNodeConstructor,\n constantSourceNodeConstructor,\n convolverNodeConstructor,\n decodeAudioData,\n delayNodeConstructor,\n dynamicsCompressorNodeConstructor,\n gainNodeConstructor,\n iIRFilterNodeConstructor,\n minimalBaseAudioContextConstructor,\n oscillatorNodeConstructor,\n pannerNodeConstructor,\n periodicWaveConstructor,\n stereoPannerNodeConstructor,\n waveShaperNodeConstructor\n) => {\n return class BaseAudioContext extends minimalBaseAudioContextConstructor implements IBaseAudioContext {\n private _audioWorklet: undefined | IAudioWorklet;\n\n constructor(private _nativeContext: TNativeContext, numberOfChannels: number) {\n super(_nativeContext, numberOfChannels);\n\n this._audioWorklet =\n addAudioWorkletModule === undefined\n ? undefined\n : {\n addModule: (moduleURL: string, options?: IWorkletOptions) => {\n return addAudioWorkletModule((this), moduleURL, options);\n }\n };\n }\n\n get audioWorklet(): undefined | IAudioWorklet {\n return this._audioWorklet;\n }\n\n public createAnalyser(): IAnalyserNode {\n return new analyserNodeConstructor((this));\n }\n\n public createBiquadFilter(): IBiquadFilterNode {\n return new biquadFilterNodeConstructor((this));\n }\n\n public createBuffer(numberOfChannels: number, length: number, sampleRate: number): IAudioBuffer {\n return new audioBufferConstructor({ length, numberOfChannels, sampleRate });\n }\n\n public createBufferSource(): IAudioBufferSourceNode {\n return new audioBufferSourceNodeConstructor((this));\n }\n\n public createChannelMerger(numberOfInputs = 6): IAudioNode {\n return new channelMergerNodeConstructor((this), { numberOfInputs });\n }\n\n public createChannelSplitter(numberOfOutputs = 6): IAudioNode {\n return new channelSplitterNodeConstructor((this), { numberOfOutputs });\n }\n\n public createConstantSource(): IConstantSourceNode {\n return new constantSourceNodeConstructor((this));\n }\n\n public createConvolver(): IConvolverNode {\n return new convolverNodeConstructor((this));\n }\n\n public createDelay(maxDelayTime = 1): IDelayNode {\n return new delayNodeConstructor((this), { maxDelayTime });\n }\n\n public createDynamicsCompressor(): IDynamicsCompressorNode {\n return new dynamicsCompressorNodeConstructor((this));\n }\n\n public createGain(): IGainNode {\n return new gainNodeConstructor((this));\n }\n\n public createIIRFilter(feedforward: Iterable, feedback: Iterable): IIIRFilterNode {\n return new iIRFilterNodeConstructor((this), { feedback, feedforward });\n }\n\n public createOscillator(): IOscillatorNode {\n return new oscillatorNodeConstructor((this));\n }\n\n public createPanner(): IPannerNode {\n return new pannerNodeConstructor((this));\n }\n\n public createPeriodicWave(\n real: Iterable,\n imag: Iterable,\n constraints: Partial = { disableNormalization: false }\n ): IPeriodicWave {\n return new periodicWaveConstructor((this), { ...constraints, imag, real });\n }\n\n public createStereoPanner(): IStereoPannerNode {\n return new stereoPannerNodeConstructor((this));\n }\n\n public createWaveShaper(): IWaveShaperNode {\n return new waveShaperNodeConstructor((this));\n }\n\n public decodeAudioData(\n audioData: ArrayBuffer,\n successCallback?: TDecodeSuccessCallback,\n errorCallback?: TDecodeErrorCallback\n ): Promise {\n return decodeAudioData(this._nativeContext, audioData).then(\n (audioBuffer) => {\n if (typeof successCallback === 'function') {\n successCallback(audioBuffer);\n }\n\n return audioBuffer;\n },\n (err) => {\n if (typeof errorCallback === 'function') {\n errorCallback(err);\n }\n\n throw err;\n }\n );\n }\n };\n};\n","import { IAudioContext, IMediaElementAudioSourceNode, IMediaElementAudioSourceOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaElementAudioSourceNodeConstructorFactory, TNativeMediaElementAudioSourceNode } from '../types';\n\nexport const createMediaElementAudioSourceNodeConstructor: TMediaElementAudioSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaElementAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class MediaElementAudioSourceNode extends audioNodeConstructor\n implements IMediaElementAudioSourceNode {\n private _nativeMediaElementAudioSourceNode: TNativeMediaElementAudioSourceNode;\n\n constructor(context: T, options: IMediaElementAudioSourceOptions) {\n const nativeContext = getNativeContext(context);\n const nativeMediaElementAudioSourceNode = createNativeMediaElementAudioSourceNode(nativeContext, options);\n\n // Bug #171: Safari allows to create a MediaElementAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw TypeError();\n }\n\n super(context, true, nativeMediaElementAudioSourceNode, >null);\n\n this._nativeMediaElementAudioSourceNode = nativeMediaElementAudioSourceNode;\n }\n\n get mediaElement(): HTMLMediaElement {\n return this._nativeMediaElementAudioSourceNode.mediaElement;\n }\n };\n};\n","import { TNativeMediaElementAudioSourceNodeFactory } from '../types';\n\nexport const createNativeMediaElementAudioSourceNode: TNativeMediaElementAudioSourceNodeFactory = (nativeAudioContext, options) => {\n return nativeAudioContext.createMediaElementSource(options.mediaElement);\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeMediaStreamAudioDestinationNodeFactory } from '../types';\n\nexport const createNativeMediaStreamAudioDestinationNode: TNativeMediaStreamAudioDestinationNodeFactory = (nativeAudioContext, options) => {\n const nativeMediaStreamAudioDestinationNode = nativeAudioContext.createMediaStreamDestination();\n\n assignNativeAudioNodeOptions(nativeMediaStreamAudioDestinationNode, options);\n\n // Bug #174: Safari does expose a wrong numberOfOutputs.\n if (nativeMediaStreamAudioDestinationNode.numberOfOutputs === 1) {\n Object.defineProperty(nativeMediaStreamAudioDestinationNode, 'numberOfOutputs', { get: () => 0 });\n }\n\n return nativeMediaStreamAudioDestinationNode;\n};\n","import { IAudioContext, IMediaStreamAudioSourceNode, IMediaStreamAudioSourceOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaStreamAudioSourceNodeConstructorFactory, TNativeMediaStreamAudioSourceNode } from '../types';\n\nexport const createMediaStreamAudioSourceNodeConstructor: TMediaStreamAudioSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaStreamAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class MediaStreamAudioSourceNode extends audioNodeConstructor\n implements IMediaStreamAudioSourceNode {\n private _nativeMediaStreamAudioSourceNode: TNativeMediaStreamAudioSourceNode;\n\n constructor(context: T, options: IMediaStreamAudioSourceOptions) {\n const nativeContext = getNativeContext(context);\n const nativeMediaStreamAudioSourceNode = createNativeMediaStreamAudioSourceNode(nativeContext, options);\n\n // Bug #172: Safari allows to create a MediaStreamAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw new TypeError();\n }\n\n super(context, true, nativeMediaStreamAudioSourceNode, >null);\n\n this._nativeMediaStreamAudioSourceNode = nativeMediaStreamAudioSourceNode;\n }\n\n get mediaStream(): MediaStream {\n return this._nativeMediaStreamAudioSourceNode.mediaStream;\n }\n };\n};\n","import { TNativeMediaStreamAudioSourceNodeFactory } from '../types';\n\nexport const createNativeMediaStreamAudioSourceNode: TNativeMediaStreamAudioSourceNodeFactory = (nativeAudioContext, { mediaStream }) => {\n const audioStreamTracks = mediaStream.getAudioTracks();\n /*\n * Bug #151: Safari does not use the audio track as input anymore if it gets removed from the mediaStream after construction.\n * Bug #159: Safari picks the first audio track if the MediaStream has more than one audio track.\n */\n audioStreamTracks.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));\n\n const filteredAudioStreamTracks = audioStreamTracks.slice(0, 1);\n\n const nativeMediaStreamAudioSourceNode = nativeAudioContext.createMediaStreamSource(new MediaStream(filteredAudioStreamTracks));\n\n /*\n * Bug #151 & #159: The given mediaStream gets reconstructed before it gets passed to the native node which is why the accessor needs\n * to be overwritten as it would otherwise expose the reconstructed version.\n */\n Object.defineProperty(nativeMediaStreamAudioSourceNode, 'mediaStream', { value: mediaStream });\n\n return nativeMediaStreamAudioSourceNode;\n};\n","import { TNativeMediaStreamTrackAudioSourceNodeFactoryFactory } from '../types';\n\nexport const createNativeMediaStreamTrackAudioSourceNodeFactory: TNativeMediaStreamTrackAudioSourceNodeFactoryFactory = (\n createInvalidStateError,\n isNativeOfflineAudioContext\n) => {\n return (nativeAudioContext, { mediaStreamTrack }) => {\n // Bug #121: Only Firefox does yet support the MediaStreamTrackAudioSourceNode.\n if (typeof nativeAudioContext.createMediaStreamTrackSource === 'function') {\n return nativeAudioContext.createMediaStreamTrackSource(mediaStreamTrack);\n }\n\n const mediaStream = new MediaStream([mediaStreamTrack]);\n const nativeMediaStreamAudioSourceNode = nativeAudioContext.createMediaStreamSource(mediaStream);\n\n // Bug #120: Firefox does not throw an error if the mediaStream has no audio track.\n if (mediaStreamTrack.kind !== 'audio') {\n throw createInvalidStateError();\n }\n\n // Bug #172: Safari allows to create a MediaStreamAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeAudioContext)) {\n throw new TypeError();\n }\n\n return nativeMediaStreamAudioSourceNode;\n };\n};\n","import { IAudioContext, IMediaStreamTrackAudioSourceNode, IMediaStreamTrackAudioSourceOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaStreamTrackAudioSourceNodeConstructorFactory } from '../types';\n\nexport const createMediaStreamTrackAudioSourceNodeConstructor: TMediaStreamTrackAudioSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaStreamTrackAudioSourceNode,\n getNativeContext\n) => {\n return class MediaStreamTrackAudioSourceNode extends audioNodeConstructor\n implements IMediaStreamTrackAudioSourceNode {\n constructor(context: T, options: IMediaStreamTrackAudioSourceOptions) {\n const nativeContext = getNativeContext(context);\n const nativeMediaStreamTrackAudioSourceNode = createNativeMediaStreamTrackAudioSourceNode(nativeContext, options);\n\n super(context, true, nativeMediaStreamTrackAudioSourceNode, >null);\n }\n };\n};\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { isValidLatencyHint } from '../helpers/is-valid-latency-hint';\nimport {\n IAudioContext,\n IAudioContextOptions,\n IMediaElementAudioSourceNode,\n IMediaStreamAudioDestinationNode,\n IMediaStreamAudioSourceNode,\n IMediaStreamTrackAudioSourceNode\n} from '../interfaces';\nimport { TAudioContextConstructorFactory, TAudioContextState, TNativeAudioContext, TNativeGainNode, TNativeOscillatorNode } from '../types';\n\nexport const createAudioContextConstructor: TAudioContextConstructorFactory = (\n baseAudioContextConstructor,\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n mediaElementAudioSourceNodeConstructor,\n mediaStreamAudioDestinationNodeConstructor,\n mediaStreamAudioSourceNodeConstructor,\n mediaStreamTrackAudioSourceNodeConstructor,\n nativeAudioContextConstructor\n) => {\n return class AudioContext extends baseAudioContextConstructor implements IAudioContext {\n private _baseLatency: number;\n\n private _nativeAudioContext: TNativeAudioContext;\n\n private _nativeGainNode: null | TNativeGainNode;\n\n private _nativeOscillatorNode: null | TNativeOscillatorNode;\n\n private _state: null | 'suspended';\n\n constructor(options: IAudioContextOptions = {}) {\n if (nativeAudioContextConstructor === null) {\n throw new Error('Missing the native AudioContext constructor.');\n }\n\n let nativeAudioContext: TNativeAudioContext;\n\n try {\n nativeAudioContext = new nativeAudioContextConstructor(options);\n } catch (err) {\n // Bug #192 Safari does throw a SyntaxError if the sampleRate is not supported.\n if (err.code === 12 && err.message === 'sampleRate is not in range') {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n\n // Bug #131 Safari returns null when there are four other AudioContexts running already.\n if (nativeAudioContext === null) {\n throw createUnknownError();\n }\n\n // Bug #51 Only Chrome and Edge throw an error if the given latencyHint is invalid.\n if (!isValidLatencyHint(options.latencyHint)) {\n throw new TypeError(\n `The provided value '${options.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`\n );\n }\n\n // Bug #150 Safari does not support setting the sampleRate.\n if (options.sampleRate !== undefined && nativeAudioContext.sampleRate !== options.sampleRate) {\n throw createNotSupportedError();\n }\n\n super(nativeAudioContext, 2);\n\n const { latencyHint } = options;\n const { sampleRate } = nativeAudioContext;\n\n // @todo The values for 'balanced', 'interactive' and 'playback' are just copied from Chrome's implementation.\n this._baseLatency =\n typeof nativeAudioContext.baseLatency === 'number'\n ? nativeAudioContext.baseLatency\n : latencyHint === 'balanced'\n ? 512 / sampleRate\n : latencyHint === 'interactive' || latencyHint === undefined\n ? 256 / sampleRate\n : latencyHint === 'playback'\n ? 1024 / sampleRate\n : /*\n * @todo The min (256) and max (16384) values are taken from the allowed bufferSize values of a\n * ScriptProcessorNode.\n */\n (Math.max(2, Math.min(128, Math.round((latencyHint * sampleRate) / 128))) * 128) / sampleRate;\n this._nativeAudioContext = nativeAudioContext;\n\n // Bug #188: Safari will set the context's state to 'interrupted' in case the user switches tabs.\n if (nativeAudioContextConstructor.name === 'webkitAudioContext') {\n this._nativeGainNode = nativeAudioContext.createGain();\n this._nativeOscillatorNode = nativeAudioContext.createOscillator();\n\n this._nativeGainNode.gain.value = 1e-37;\n\n this._nativeOscillatorNode.connect(this._nativeGainNode).connect(nativeAudioContext.destination);\n this._nativeOscillatorNode.start();\n } else {\n this._nativeGainNode = null;\n this._nativeOscillatorNode = null;\n }\n\n this._state = null;\n\n /*\n * Bug #34: Chrome and Edge pretend to be running right away, but fire an onstatechange event when the state actually changes\n * to 'running'.\n */\n if (nativeAudioContext.state === 'running') {\n this._state = 'suspended';\n\n const revokeState = () => {\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n nativeAudioContext.removeEventListener('statechange', revokeState);\n };\n\n nativeAudioContext.addEventListener('statechange', revokeState);\n }\n }\n\n get baseLatency(): number {\n return this._baseLatency;\n }\n\n get state(): TAudioContextState {\n return this._state !== null ? this._state : this._nativeAudioContext.state;\n }\n\n public close(): Promise {\n // Bug #35: Firefox does not throw an error if the AudioContext was closed before.\n if (this.state === 'closed') {\n return this._nativeAudioContext.close().then(() => {\n throw createInvalidStateError();\n });\n }\n\n // Bug #34: If the state was set to suspended before it should be revoked now.\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n return this._nativeAudioContext.close().then(() => {\n if (this._nativeGainNode !== null && this._nativeOscillatorNode !== null) {\n this._nativeOscillatorNode.stop();\n\n this._nativeGainNode.disconnect();\n this._nativeOscillatorNode.disconnect();\n }\n\n deactivateAudioGraph(this);\n });\n }\n\n public createMediaElementSource(mediaElement: HTMLMediaElement): IMediaElementAudioSourceNode {\n return new mediaElementAudioSourceNodeConstructor(this, { mediaElement });\n }\n\n public createMediaStreamDestination(): IMediaStreamAudioDestinationNode {\n return new mediaStreamAudioDestinationNodeConstructor(this);\n }\n\n public createMediaStreamSource(mediaStream: MediaStream): IMediaStreamAudioSourceNode {\n return new mediaStreamAudioSourceNodeConstructor(this, { mediaStream });\n }\n\n public createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack): IMediaStreamTrackAudioSourceNode {\n return new mediaStreamTrackAudioSourceNodeConstructor(this, { mediaStreamTrack });\n }\n\n public resume(): Promise {\n if (this._state === 'suspended') {\n return new Promise((resolve, reject) => {\n const resolvePromise = () => {\n this._nativeAudioContext.removeEventListener('statechange', resolvePromise);\n\n if (this._nativeAudioContext.state === 'running') {\n resolve();\n } else {\n this.resume().then(resolve, reject);\n }\n };\n\n this._nativeAudioContext.addEventListener('statechange', resolvePromise);\n });\n }\n\n return this._nativeAudioContext.resume().catch((err) => {\n // Bug #55: Chrome and Edge do throw an InvalidAccessError instead of an InvalidStateError.\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined || err.code === 15) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n\n public suspend(): Promise {\n return this._nativeAudioContext.suspend().catch((err) => {\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n };\n};\n","import { TGetUnrenderedAudioWorkletNodesFactory } from '../types';\n\nexport const createGetUnrenderedAudioWorkletNodes: TGetUnrenderedAudioWorkletNodesFactory = (unrenderedAudioWorkletNodeStore) => {\n return (nativeContext) => {\n const unrenderedAudioWorkletNodes = unrenderedAudioWorkletNodeStore.get(nativeContext);\n\n if (unrenderedAudioWorkletNodes === undefined) {\n throw new Error('The context has no set of AudioWorkletNodes.');\n }\n\n return unrenderedAudioWorkletNodes;\n };\n};\n","import { TAddUnrenderedAudioWorkletNodeFactory } from '../types';\n\nexport const createAddUnrenderedAudioWorkletNode: TAddUnrenderedAudioWorkletNodeFactory = (getUnrenderedAudioWorkletNodes) => {\n return (nativeContext, audioWorkletNode) => {\n getUnrenderedAudioWorkletNodes(nativeContext).add(audioWorkletNode);\n };\n};\n","import { isNativeAudioNode } from '../guards/native-audio-node';\nimport { TConnectMultipleOutputsFactory } from '../types';\n\nexport const createConnectMultipleOutputs: TConnectMultipleOutputsFactory = (createIndexSizeError) => {\n return (outputAudioNodes, destination, output = 0, input = 0) => {\n const outputAudioNode = outputAudioNodes[output];\n\n if (outputAudioNode === undefined) {\n throw createIndexSizeError();\n }\n\n if (isNativeAudioNode(destination)) {\n return outputAudioNode.connect(destination, 0, input);\n }\n\n return outputAudioNode.connect(destination, 0);\n };\n};\n","import { TDeleteUnrenderedAudioWorkletNodeFactory } from '../types';\n\nexport const createDeleteUnrenderedAudioWorkletNode: TDeleteUnrenderedAudioWorkletNodeFactory = (getUnrenderedAudioWorkletNodes) => {\n return (nativeContext, audioWorkletNode) => {\n getUnrenderedAudioWorkletNodes(nativeContext).delete(audioWorkletNode);\n };\n};\n","import { TActiveInputConnection, TContext, TGetActiveAudioWorkletNodeInputsFactory, TNativeAudioWorkletNode } from '../types';\n\nexport const createGetActiveAudioWorkletNodeInputs: TGetActiveAudioWorkletNodeInputsFactory = (\n activeAudioWorkletNodeInputsStore,\n getValueForKey\n) => {\n return (nativeAudioWorkletNode: TNativeAudioWorkletNode) =>\n >[]>getValueForKey(activeAudioWorkletNodeInputsStore, nativeAudioWorkletNode);\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { computeBufferSize } from '../helpers/compute-buffer-size';\nimport { copyFromChannel } from '../helpers/copy-from-channel';\nimport { copyToChannel } from '../helpers/copy-to-channel';\nimport { createAudioWorkletProcessor } from '../helpers/create-audio-worklet-processor';\nimport { createNestedArrays } from '../helpers/create-nested-arrays';\nimport { IAudioWorkletProcessor } from '../interfaces';\nimport { ReadOnlyMap } from '../read-only-map';\nimport {\n TNativeAudioNode,\n TNativeAudioParam,\n TNativeAudioWorkletNode,\n TNativeAudioWorkletNodeFakerFactoryFactory,\n TNativeChannelMergerNode,\n TNativeChannelSplitterNode,\n TNativeConstantSourceNode,\n TNativeGainNode\n} from '../types';\n\nexport const createNativeAudioWorkletNodeFakerFactory: TNativeAudioWorkletNodeFakerFactoryFactory = (\n connectMultipleOutputs,\n createIndexSizeError,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getActiveAudioWorkletNodeInputs,\n monitorConnections\n) => {\n return (nativeContext, baseLatency, processorConstructor, options) => {\n if (options.numberOfInputs === 0 && options.numberOfOutputs === 0) {\n throw createNotSupportedError();\n }\n\n const outputChannelCount = Array.isArray(options.outputChannelCount)\n ? options.outputChannelCount\n : Array.from(options.outputChannelCount);\n\n // @todo Check if any of the channelCount values is greater than the implementation's maximum number of channels.\n if (outputChannelCount.some((channelCount) => channelCount < 1)) {\n throw createNotSupportedError();\n }\n\n if (outputChannelCount.length !== options.numberOfOutputs) {\n throw createIndexSizeError();\n }\n\n // Bug #61: This is not part of the standard but required for the faker to work.\n if (options.channelCountMode !== 'explicit') {\n throw createNotSupportedError();\n }\n\n const numberOfInputChannels = options.channelCount * options.numberOfInputs;\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const numberOfParameters =\n processorConstructor.parameterDescriptors === undefined ? 0 : processorConstructor.parameterDescriptors.length;\n\n // Bug #61: This is not part of the standard but required for the faker to work.\n if (numberOfInputChannels + numberOfParameters > 6 || numberOfOutputChannels > 6) {\n throw createNotSupportedError();\n }\n\n const messageChannel = new MessageChannel();\n const gainNodes: TNativeGainNode[] = [];\n const inputChannelSplitterNodes: TNativeChannelSplitterNode[] = [];\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes.push(\n createNativeGainNode(nativeContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n })\n );\n inputChannelSplitterNodes.push(\n createNativeChannelSplitterNode(nativeContext, {\n channelCount: options.channelCount,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: options.channelCount\n })\n );\n }\n\n const constantSourceNodes: TNativeConstantSourceNode[] = [];\n\n if (processorConstructor.parameterDescriptors !== undefined) {\n for (const { defaultValue, maxValue, minValue, name } of processorConstructor.parameterDescriptors) {\n const constantSourceNode = createNativeConstantSourceNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset:\n options.parameterData[name] !== undefined\n ? options.parameterData[name]\n : defaultValue === undefined\n ? 0\n : defaultValue\n });\n\n Object.defineProperties(constantSourceNode.offset, {\n defaultValue: {\n get: () => (defaultValue === undefined ? 0 : defaultValue)\n },\n maxValue: {\n get: () => (maxValue === undefined ? MOST_POSITIVE_SINGLE_FLOAT : maxValue)\n },\n minValue: {\n get: () => (minValue === undefined ? MOST_NEGATIVE_SINGLE_FLOAT : minValue)\n }\n });\n\n constantSourceNodes.push(constantSourceNode);\n }\n }\n\n const inputChannelMergerNode = createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: Math.max(1, numberOfInputChannels + numberOfParameters)\n });\n const bufferSize = computeBufferSize(baseLatency, nativeContext.sampleRate);\n const scriptProcessorNode = createNativeScriptProcessorNode(\n nativeContext,\n bufferSize,\n numberOfInputChannels + numberOfParameters,\n // Bug #87: Only Firefox will fire an AudioProcessingEvent if there is no connected output.\n Math.max(1, numberOfOutputChannels)\n );\n const outputChannelSplitterNode = createNativeChannelSplitterNode(nativeContext, {\n channelCount: Math.max(1, numberOfOutputChannels),\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: Math.max(1, numberOfOutputChannels)\n });\n const outputChannelMergerNodes: TNativeChannelMergerNode[] = [];\n\n for (let i = 0; i < options.numberOfOutputs; i += 1) {\n outputChannelMergerNodes.push(\n createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: outputChannelCount[i]\n })\n );\n }\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes[i].connect(inputChannelSplitterNodes[i]);\n\n for (let j = 0; j < options.channelCount; j += 1) {\n inputChannelSplitterNodes[i].connect(inputChannelMergerNode, j, i * options.channelCount + j);\n }\n }\n\n const parameterMap = new ReadOnlyMap(\n processorConstructor.parameterDescriptors === undefined\n ? []\n : processorConstructor.parameterDescriptors.map(({ name }, index) => {\n const constantSourceNode = constantSourceNodes[index];\n\n constantSourceNode.connect(inputChannelMergerNode, 0, numberOfInputChannels + index);\n constantSourceNode.start(0);\n\n return <[string, TNativeAudioParam]>[name, constantSourceNode.offset];\n })\n );\n\n inputChannelMergerNode.connect(scriptProcessorNode);\n\n let channelInterpretation = options.channelInterpretation;\n let onprocessorerror: TNativeAudioWorkletNode['onprocessorerror'] = null;\n\n // Bug #87: Expose at least one output to make this node connectable.\n const outputAudioNodes = options.numberOfOutputs === 0 ? [scriptProcessorNode] : outputChannelMergerNodes;\n const nativeAudioWorkletNodeFaker = {\n get bufferSize(): number {\n return bufferSize;\n },\n get channelCount(): number {\n return options.channelCount;\n },\n set channelCount(_) {\n // Bug #61: This is not part of the standard but required for the faker to work.\n throw createInvalidStateError();\n },\n get channelCountMode(): TNativeAudioWorkletNode['channelCountMode'] {\n return options.channelCountMode;\n },\n set channelCountMode(_) {\n // Bug #61: This is not part of the standard but required for the faker to work.\n throw createInvalidStateError();\n },\n get channelInterpretation(): TNativeAudioWorkletNode['channelInterpretation'] {\n return channelInterpretation;\n },\n set channelInterpretation(value) {\n for (const gainNode of gainNodes) {\n gainNode.channelInterpretation = value;\n }\n\n channelInterpretation = value;\n },\n get context(): TNativeAudioWorkletNode['context'] {\n return scriptProcessorNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return gainNodes;\n },\n get numberOfInputs(): number {\n return options.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return options.numberOfOutputs;\n },\n get onprocessorerror(): TNativeAudioWorkletNode['onprocessorerror'] {\n return onprocessorerror;\n },\n set onprocessorerror(value) {\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNodeFaker.removeEventListener('processorerror', onprocessorerror);\n }\n\n onprocessorerror = typeof value === 'function' ? value : null;\n\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNodeFaker.addEventListener('processorerror', onprocessorerror);\n }\n },\n get parameters(): TNativeAudioWorkletNode['parameters'] {\n return parameterMap;\n },\n get port(): TNativeAudioWorkletNode['port'] {\n return messageChannel.port2;\n },\n addEventListener(...args: any[]): void {\n return scriptProcessorNode.addEventListener(args[0], args[1], args[2]);\n },\n connect: connectMultipleOutputs.bind(null, outputAudioNodes),\n disconnect: disconnectMultipleOutputs.bind(null, outputAudioNodes),\n dispatchEvent(...args: any[]): boolean {\n return scriptProcessorNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return scriptProcessorNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n const patchedEventListeners: Map> = new Map();\n\n messageChannel.port1.addEventListener = ((addEventListener) => {\n return (...args: [string, EventListenerOrEventListenerObject, (boolean | AddEventListenerOptions)?]): void => {\n if (args[0] === 'message') {\n const unpatchedEventListener =\n typeof args[1] === 'function'\n ? args[1]\n : typeof args[1] === 'object' && args[1] !== null && typeof args[1].handleEvent === 'function'\n ? args[1].handleEvent\n : null;\n\n if (unpatchedEventListener !== null) {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n args[1] = patchedEventListener;\n } else {\n args[1] = (event: Event) => {\n exposeCurrentFrameAndCurrentTime(nativeContext.currentTime, nativeContext.sampleRate, () =>\n unpatchedEventListener(event)\n );\n };\n\n patchedEventListeners.set(unpatchedEventListener, args[1]);\n }\n }\n }\n\n return addEventListener.call(messageChannel.port1, args[0], args[1], args[2]);\n };\n })(messageChannel.port1.addEventListener);\n\n messageChannel.port1.removeEventListener = ((removeEventListener) => {\n return (...args: any[]): void => {\n if (args[0] === 'message') {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n patchedEventListeners.delete(args[1]);\n\n args[1] = patchedEventListener;\n }\n }\n\n return removeEventListener.call(messageChannel.port1, args[0], args[1], args[2]);\n };\n })(messageChannel.port1.removeEventListener);\n\n let onmessage: MessagePort['onmessage'] = null;\n\n Object.defineProperty(messageChannel.port1, 'onmessage', {\n get: () => onmessage,\n set: (value) => {\n if (typeof onmessage === 'function') {\n messageChannel.port1.removeEventListener('message', onmessage);\n }\n\n onmessage = typeof value === 'function' ? value : null;\n\n if (typeof onmessage === 'function') {\n messageChannel.port1.addEventListener('message', onmessage);\n messageChannel.port1.start();\n }\n }\n });\n\n processorConstructor.prototype.port = messageChannel.port1;\n\n let audioWorkletProcessor: null | IAudioWorkletProcessor = null;\n\n const audioWorkletProcessorPromise = createAudioWorkletProcessor(\n nativeContext,\n nativeAudioWorkletNodeFaker,\n processorConstructor,\n options\n );\n\n audioWorkletProcessorPromise.then((dWrkltPrcssr) => (audioWorkletProcessor = dWrkltPrcssr));\n\n const inputs = createNestedArrays(options.numberOfInputs, options.channelCount);\n const outputs = createNestedArrays(options.numberOfOutputs, outputChannelCount);\n const parameters: { [name: string]: Float32Array } =\n processorConstructor.parameterDescriptors === undefined\n ? []\n : processorConstructor.parameterDescriptors.reduce(\n (prmtrs, { name }) => ({ ...prmtrs, [name]: new Float32Array(128) }),\n {}\n );\n\n let isActive = true;\n\n const disconnectOutputsGraph = () => {\n if (options.numberOfOutputs > 0) {\n scriptProcessorNode.disconnect(outputChannelSplitterNode);\n }\n\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < options.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.disconnect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n };\n\n const activeInputIndexes = new Map();\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer, outputBuffer }: AudioProcessingEvent) => {\n if (audioWorkletProcessor !== null) {\n const activeInputs = getActiveAudioWorkletNodeInputs(nativeAudioWorkletNodeFaker);\n\n for (let i = 0; i < bufferSize; i += 128) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < options.channelCount; k += 1) {\n copyFromChannel(inputBuffer, inputs[j], k, k, i);\n }\n }\n\n if (processorConstructor.parameterDescriptors !== undefined) {\n processorConstructor.parameterDescriptors.forEach(({ name }, index) => {\n copyFromChannel(inputBuffer, parameters, name, numberOfInputChannels + index, i);\n });\n }\n\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (outputs[j][k].byteLength === 0) {\n outputs[j][k] = new Float32Array(128);\n }\n }\n }\n\n try {\n const potentiallyEmptyInputs = inputs.map((input, index) => {\n const activeInput = activeInputs[index];\n\n if (activeInput.size > 0) {\n activeInputIndexes.set(index, bufferSize / 128);\n\n return input;\n }\n\n const count = activeInputIndexes.get(index);\n\n if (count === undefined) {\n return [];\n }\n\n if (input.every((channelData) => channelData.every((sample) => sample === 0))) {\n if (count === 1) {\n activeInputIndexes.delete(index);\n } else {\n activeInputIndexes.set(index, count - 1);\n }\n }\n\n return input;\n });\n\n const activeSourceFlag = exposeCurrentFrameAndCurrentTime(\n nativeContext.currentTime + i / nativeContext.sampleRate,\n nativeContext.sampleRate,\n () => (audioWorkletProcessor).process(potentiallyEmptyInputs, outputs, parameters)\n );\n\n isActive = activeSourceFlag;\n\n for (let j = 0, outputChannelSplitterNodeOutput = 0; j < options.numberOfOutputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n copyToChannel(outputBuffer, outputs[j], k, outputChannelSplitterNodeOutput + k, i);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[j];\n }\n } catch (error) {\n isActive = false;\n\n nativeAudioWorkletNodeFaker.dispatchEvent(\n new ErrorEvent('processorerror', {\n colno: error.colno,\n filename: error.filename,\n lineno: error.lineno,\n message: error.message\n })\n );\n }\n\n if (!isActive) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n gainNodes[j].disconnect(inputChannelSplitterNodes[j]);\n\n for (let k = 0; k < options.channelCount; k += 1) {\n inputChannelSplitterNodes[i].disconnect(inputChannelMergerNode, k, j * options.channelCount + k);\n }\n }\n\n if (processorConstructor.parameterDescriptors !== undefined) {\n const length = processorConstructor.parameterDescriptors.length;\n\n for (let j = 0; j < length; j += 1) {\n const constantSourceNode = constantSourceNodes[j];\n\n constantSourceNode.disconnect(inputChannelMergerNode, 0, numberOfInputChannels + j);\n constantSourceNode.stop();\n }\n }\n\n inputChannelMergerNode.disconnect(scriptProcessorNode);\n\n scriptProcessorNode.onaudioprocess = null; // tslint:disable-line:deprecation\n\n if (isConnected) {\n disconnectOutputsGraph();\n } else {\n disconnectFakeGraph();\n }\n\n break;\n }\n }\n }\n };\n\n let isConnected = false;\n\n // Bug #87: Only Firefox will fire an AudioProcessingEvent if there is no connected output.\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n const connectFakeGraph = () => scriptProcessorNode.connect(nativeGainNode).connect(nativeContext.destination);\n const disconnectFakeGraph = () => {\n scriptProcessorNode.disconnect(nativeGainNode);\n nativeGainNode.disconnect();\n };\n const whenConnected = () => {\n if (isActive) {\n disconnectFakeGraph();\n\n if (options.numberOfOutputs > 0) {\n scriptProcessorNode.connect(outputChannelSplitterNode);\n }\n\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < options.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.connect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n }\n\n isConnected = true;\n };\n const whenDisconnected = () => {\n if (isActive) {\n connectFakeGraph();\n disconnectOutputsGraph();\n }\n\n isConnected = false;\n };\n\n connectFakeGraph();\n\n return monitorConnections(nativeAudioWorkletNodeFaker, whenConnected, whenDisconnected);\n };\n};\n","import { NODE_TO_PROCESSOR_MAPS } from '../globals';\nimport { IAudioWorkletNodeOptions, IAudioWorkletProcessor, IAudioWorkletProcessorConstructor } from '../interfaces';\nimport { TNativeAudioWorkletNode, TNativeContext } from '../types';\nimport { createAudioWorkletProcessorPromise } from './create-audio-worklet-processor-promise';\n\nexport const createAudioWorkletProcessor = (\n nativeContext: TNativeContext,\n nativeAudioWorkletNode: TNativeAudioWorkletNode,\n processorConstructor: IAudioWorkletProcessorConstructor,\n audioWorkletNodeOptions: IAudioWorkletNodeOptions\n): Promise => {\n let nodeToProcessorMap = NODE_TO_PROCESSOR_MAPS.get(nativeContext);\n\n if (nodeToProcessorMap === undefined) {\n nodeToProcessorMap = new WeakMap();\n\n NODE_TO_PROCESSOR_MAPS.set(nativeContext, nodeToProcessorMap);\n }\n\n const audioWorkletProcessorPromise = createAudioWorkletProcessorPromise(processorConstructor, audioWorkletNodeOptions);\n\n nodeToProcessorMap.set(nativeAudioWorkletNode, audioWorkletProcessorPromise);\n\n return audioWorkletProcessorPromise;\n};\n","import { testClonabilityOfAudioWorkletNodeOptions } from '../helpers/test-clonability-of-audio-worklet-node-options';\nimport { TNativeAudioWorkletNode, TNativeAudioWorkletNodeFactoryFactory, TNativeAudioWorkletNodeOptions } from '../types';\n\nexport const createNativeAudioWorkletNodeFactory: TNativeAudioWorkletNodeFactoryFactory = (\n createInvalidStateError,\n createNativeAudioWorkletNodeFaker,\n createNativeGainNode,\n createNotSupportedError,\n monitorConnections\n) => {\n return (nativeContext, baseLatency, nativeAudioWorkletNodeConstructor, name, processorConstructor, options) => {\n if (nativeAudioWorkletNodeConstructor !== null) {\n try {\n const nativeAudioWorkletNode = new nativeAudioWorkletNodeConstructor(\n nativeContext,\n name,\n options\n );\n const patchedEventListeners: Map<\n EventListenerOrEventListenerObject,\n NonNullable\n > = new Map();\n\n let onprocessorerror: TNativeAudioWorkletNode['onprocessorerror'] = null;\n\n Object.defineProperties(nativeAudioWorkletNode, {\n /*\n * Bug #61: Overwriting the property accessors for channelCount and channelCountMode is necessary as long as some\n * browsers have no native implementation to achieve a consistent behavior.\n */\n channelCount: {\n get: () => options.channelCount,\n set: () => {\n throw createInvalidStateError();\n }\n },\n channelCountMode: {\n get: () => 'explicit',\n set: () => {\n throw createInvalidStateError();\n }\n },\n // Bug #156: Chrome and Edge do not yet fire an ErrorEvent.\n onprocessorerror: {\n get: () => onprocessorerror,\n set: (value) => {\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNode.removeEventListener('processorerror', onprocessorerror);\n }\n\n onprocessorerror = typeof value === 'function' ? value : null;\n\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNode.addEventListener('processorerror', onprocessorerror);\n }\n }\n }\n });\n\n nativeAudioWorkletNode.addEventListener = ((addEventListener) => {\n return (...args: [string, EventListenerOrEventListenerObject, (boolean | AddEventListenerOptions)?]): void => {\n if (args[0] === 'processorerror') {\n const unpatchedEventListener =\n typeof args[1] === 'function'\n ? args[1]\n : typeof args[1] === 'object' && args[1] !== null && typeof args[1].handleEvent === 'function'\n ? args[1].handleEvent\n : null;\n\n if (unpatchedEventListener !== null) {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n args[1] = patchedEventListener;\n } else {\n args[1] = (event: Event) => {\n // Bug #178: Chrome and Edge do fire an event of type error.\n if (event.type === 'error') {\n Object.defineProperties(event, {\n type: { value: 'processorerror' }\n });\n\n unpatchedEventListener(event);\n } else {\n unpatchedEventListener(new ErrorEvent(args[0], { ...event }));\n }\n };\n\n patchedEventListeners.set(unpatchedEventListener, args[1]);\n }\n }\n }\n\n // Bug #178: Chrome and Edge do fire an event of type error.\n addEventListener.call(nativeAudioWorkletNode, 'error', args[1], args[2]);\n\n return addEventListener.call(nativeAudioWorkletNode, ...args);\n };\n })(nativeAudioWorkletNode.addEventListener);\n\n nativeAudioWorkletNode.removeEventListener = ((removeEventListener) => {\n return (...args: any[]): void => {\n if (args[0] === 'processorerror') {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n patchedEventListeners.delete(args[1]);\n\n args[1] = patchedEventListener;\n }\n }\n\n // Bug #178: Chrome and Edge do fire an event of type error.\n removeEventListener.call(nativeAudioWorkletNode, 'error', args[1], args[2]);\n\n return removeEventListener.call(nativeAudioWorkletNode, args[0], args[1], args[2]);\n };\n })(nativeAudioWorkletNode.removeEventListener);\n\n /*\n * Bug #86: Chrome and Edge do not invoke the process() function if the corresponding AudioWorkletNode is unconnected but\n * has an output.\n */\n if (options.numberOfOutputs !== 0) {\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n nativeAudioWorkletNode.connect(nativeGainNode).connect(nativeContext.destination);\n\n const whenConnected = () => nativeGainNode.disconnect();\n const whenDisconnected = () => nativeGainNode.connect(nativeContext.destination);\n\n // @todo Disconnect the connection when the process() function of the AudioWorkletNode returns false.\n return monitorConnections(nativeAudioWorkletNode, whenConnected, whenDisconnected);\n }\n\n return nativeAudioWorkletNode;\n } catch (err) {\n // Bug #60: Chrome & Edge throw an InvalidStateError instead of a NotSupportedError.\n if (err.code === 11) {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n }\n\n // Bug #61: Only Chrome & Edge have an implementation of the AudioWorkletNode yet.\n if (processorConstructor === undefined) {\n throw createNotSupportedError();\n }\n\n testClonabilityOfAudioWorkletNodeOptions(options);\n\n return createNativeAudioWorkletNodeFaker(nativeContext, baseLatency, processorConstructor, options);\n };\n};\n","import { IAudioWorkletNodeOptions } from '../interfaces';\n\nexport const testClonabilityOfAudioWorkletNodeOptions = (audioWorkletNodeOptions: IAudioWorkletNodeOptions): void => {\n const { port1 } = new MessageChannel();\n\n try {\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port1.postMessage(audioWorkletNodeOptions);\n } finally {\n port1.close();\n }\n};\n","import { TGetBackupOfflineAudioContextFactory } from '../types';\n\nexport const createGetBackupOfflineAudioContext: TGetBackupOfflineAudioContextFactory = (backupOfflineAudioContextStore) => {\n return (nativeContext) => {\n return backupOfflineAudioContextStore.get(nativeContext);\n };\n};\n","import { TSetActiveAudioWorkletNodeInputsFactory } from '../types';\n\nexport const createSetActiveAudioWorkletNodeInputs: TSetActiveAudioWorkletNodeInputsFactory = (activeAudioWorkletNodeInputsStore) => {\n return (nativeAudioWorkletNode, activeInputs) => {\n activeAudioWorkletNodeInputsStore.set(nativeAudioWorkletNode, activeInputs);\n };\n};\n","import { TSanitizeAudioWorkletNodeOptionsFunction } from '../types';\n\nexport const sanitizeAudioWorkletNodeOptions: TSanitizeAudioWorkletNodeOptionsFunction = (options) => {\n return {\n ...options,\n outputChannelCount:\n options.outputChannelCount !== undefined\n ? options.outputChannelCount\n : options.numberOfInputs === 1 && options.numberOfOutputs === 1\n ? /*\n * Bug #61: This should be the computedNumberOfChannels, but unfortunately that is almost impossible to fake. That's why\n * the channelCountMode is required to be 'explicit' as long as there is not a native implementation in every browser. That\n * makes sure the computedNumberOfChannels is equivilant to the channelCount which makes it much easier to compute.\n */\n [options.channelCount]\n : Array.from({ length: options.numberOfOutputs }, () => 1)\n };\n};\n","import { TTestAudioWorkletNodeOptionsClonabilityFunction } from '../types';\n\nexport const testAudioWorkletNodeOptionsClonability: TTestAudioWorkletNodeOptionsClonabilityFunction = (audioWorkletNodeOptions) => {\n const { port1, port2 } = new MessageChannel();\n\n try {\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port1.postMessage(audioWorkletNodeOptions);\n } finally {\n port1.close();\n port2.close();\n }\n};\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { isValidLatencyHint } from '../helpers/is-valid-latency-hint';\nimport { IAudioContextOptions, IMinimalAudioContext } from '../interfaces';\nimport {\n TAudioContextState,\n TMinimalAudioContextConstructorFactory,\n TNativeAudioContext,\n TNativeGainNode,\n TNativeOscillatorNode\n} from '../types';\n\nexport const createMinimalAudioContextConstructor: TMinimalAudioContextConstructorFactory = (\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n minimalBaseAudioContextConstructor,\n nativeAudioContextConstructor\n) => {\n return class MinimalAudioContext extends minimalBaseAudioContextConstructor implements IMinimalAudioContext {\n private _baseLatency: number;\n\n private _nativeAudioContext: TNativeAudioContext;\n\n private _nativeGainNode: null | TNativeGainNode;\n\n private _nativeOscillatorNode: null | TNativeOscillatorNode;\n\n private _state: null | 'suspended';\n\n constructor(options: IAudioContextOptions = {}) {\n if (nativeAudioContextConstructor === null) {\n throw new Error('Missing the native AudioContext constructor.');\n }\n\n let nativeAudioContext: TNativeAudioContext;\n\n try {\n nativeAudioContext = new nativeAudioContextConstructor(options);\n } catch (err) {\n // Bug #192 Safari does throw a SyntaxError if the sampleRate is not supported.\n if (err.code === 12 && err.message === 'sampleRate is not in range') {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n\n // Bug #131 Safari returns null when there are four other AudioContexts running already.\n if (nativeAudioContext === null) {\n throw createUnknownError();\n }\n\n // Bug #51 Only Chrome and Edge throw an error if the given latencyHint is invalid.\n if (!isValidLatencyHint(options.latencyHint)) {\n throw new TypeError(\n `The provided value '${options.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`\n );\n }\n\n // Bug #150 Safari does not support setting the sampleRate.\n if (options.sampleRate !== undefined && nativeAudioContext.sampleRate !== options.sampleRate) {\n throw createNotSupportedError();\n }\n\n super(nativeAudioContext, 2);\n\n const { latencyHint } = options;\n const { sampleRate } = nativeAudioContext;\n\n // @todo The values for 'balanced', 'interactive' and 'playback' are just copied from Chrome's implementation.\n this._baseLatency =\n typeof nativeAudioContext.baseLatency === 'number'\n ? nativeAudioContext.baseLatency\n : latencyHint === 'balanced'\n ? 512 / sampleRate\n : latencyHint === 'interactive' || latencyHint === undefined\n ? 256 / sampleRate\n : latencyHint === 'playback'\n ? 1024 / sampleRate\n : /*\n * @todo The min (256) and max (16384) values are taken from the allowed bufferSize values of a\n * ScriptProcessorNode.\n */\n (Math.max(2, Math.min(128, Math.round((latencyHint * sampleRate) / 128))) * 128) / sampleRate;\n this._nativeAudioContext = nativeAudioContext;\n\n // Bug #188: Safari will set the context's state to 'interrupted' in case the user switches tabs.\n if (nativeAudioContextConstructor.name === 'webkitAudioContext') {\n this._nativeGainNode = nativeAudioContext.createGain();\n this._nativeOscillatorNode = nativeAudioContext.createOscillator();\n\n this._nativeGainNode.gain.value = 1e-37;\n\n this._nativeOscillatorNode.connect(this._nativeGainNode).connect(nativeAudioContext.destination);\n this._nativeOscillatorNode.start();\n } else {\n this._nativeGainNode = null;\n this._nativeOscillatorNode = null;\n }\n\n this._state = null;\n\n /*\n * Bug #34: Chrome and Edge pretend to be running right away, but fire an onstatechange event when the state actually changes\n * to 'running'.\n */\n if (nativeAudioContext.state === 'running') {\n this._state = 'suspended';\n\n const revokeState = () => {\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n nativeAudioContext.removeEventListener('statechange', revokeState);\n };\n\n nativeAudioContext.addEventListener('statechange', revokeState);\n }\n }\n\n get baseLatency(): number {\n return this._baseLatency;\n }\n\n get state(): TAudioContextState {\n return this._state !== null ? this._state : this._nativeAudioContext.state;\n }\n\n public close(): Promise {\n // Bug #35: Firefox does not throw an error if the AudioContext was closed before.\n if (this.state === 'closed') {\n return this._nativeAudioContext.close().then(() => {\n throw createInvalidStateError();\n });\n }\n\n // Bug #34: If the state was set to suspended before it should be revoked now.\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n return this._nativeAudioContext.close().then(() => {\n if (this._nativeGainNode !== null && this._nativeOscillatorNode !== null) {\n this._nativeOscillatorNode.stop();\n\n this._nativeGainNode.disconnect();\n this._nativeOscillatorNode.disconnect();\n }\n\n deactivateAudioGraph(this);\n });\n }\n\n public resume(): Promise {\n if (this._state === 'suspended') {\n return new Promise((resolve, reject) => {\n const resolvePromise = () => {\n this._nativeAudioContext.removeEventListener('statechange', resolvePromise);\n\n if (this._nativeAudioContext.state === 'running') {\n resolve();\n } else {\n this.resume().then(resolve, reject);\n }\n };\n\n this._nativeAudioContext.addEventListener('statechange', resolvePromise);\n });\n }\n\n return this._nativeAudioContext.resume().catch((err) => {\n // Bug #55: Chrome and Edge do throw an InvalidAccessError instead of an InvalidStateError.\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined || err.code === 15) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n\n public suspend(): Promise {\n return this._nativeAudioContext.suspend().catch((err) => {\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n };\n};\n","import { TCreateNativeOfflineAudioContextFactory } from '../types';\n\nexport const createCreateNativeOfflineAudioContext: TCreateNativeOfflineAudioContextFactory = (\n createNotSupportedError,\n nativeOfflineAudioContextConstructor\n) => {\n return (numberOfChannels, length, sampleRate) => {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n try {\n return new nativeOfflineAudioContextConstructor(numberOfChannels, length, sampleRate);\n } catch (err) {\n // Bug #143, #144 & #146: Safari throws a SyntaxError when numberOfChannels, length or sampleRate are invalid.\n if (err.name === 'SyntaxError') {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n };\n};\n","import { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nimport { TStartRenderingFactory } from '../types';\n\nexport const createStartRendering: TStartRenderingFactory = (\n audioBufferStore,\n cacheTestResult,\n getAudioNodeRenderer,\n getUnrenderedAudioWorkletNodes,\n renderNativeOfflineAudioContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n) => {\n return (destination, nativeOfflineAudioContext) =>\n getAudioNodeRenderer(destination)\n .render(destination, nativeOfflineAudioContext)\n /*\n * Bug #86 & #87: Invoking the renderer of an AudioWorkletNode might be necessary if it has no direct or indirect connection to the\n * destination.\n */\n .then(() =>\n Promise.all(\n Array.from(getUnrenderedAudioWorkletNodes(nativeOfflineAudioContext)).map((audioWorkletNode) =>\n getAudioNodeRenderer(audioWorkletNode).render(audioWorkletNode, nativeOfflineAudioContext)\n )\n )\n )\n .then(() => renderNativeOfflineAudioContext(nativeOfflineAudioContext))\n .then((audioBuffer) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n } else if (\n !cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () =>\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer)\n )\n ) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n return audioBuffer;\n });\n};\n","import { encode, instantiate } from 'media-encoder-host';\nimport { addRecorderAudioWorkletModule, createRecorderAudioWorkletNode } from 'recorder-audio-worklet';\nimport {\n AudioBuffer,\n AudioBufferSourceNode,\n AudioWorkletNode,\n IAudioBuffer,\n IMinimalAudioContext,\n MediaStreamAudioSourceNode,\n MinimalAudioContext,\n addAudioWorkletModule\n} from 'standardized-audio-context';\nimport { IAudioNodesAndEncoderId } from '../interfaces';\nimport { TRecordingState, TWebAudioMediaRecorderFactoryFactory } from '../types';\n\nconst ERROR_MESSAGE = 'Missing AudioWorklet support. Maybe this is not running in a secure context.';\n\n// @todo This should live in a separate file.\nconst createPromisedAudioNodesEncoderIdAndPort = async (\n audioBuffer: IAudioBuffer,\n audioContext: IMinimalAudioContext,\n channelCount: number,\n mediaStream: MediaStream,\n mimeType: string\n) => {\n const { encoderId, port } = await instantiate(mimeType, audioContext.sampleRate);\n\n if (AudioWorkletNode === undefined) {\n throw new Error(ERROR_MESSAGE);\n }\n\n const audioBufferSourceNode = new AudioBufferSourceNode(audioContext, { buffer: audioBuffer });\n const mediaStreamAudioSourceNode = new MediaStreamAudioSourceNode(audioContext, { mediaStream });\n const recorderAudioWorkletNode = createRecorderAudioWorkletNode(AudioWorkletNode, audioContext, { channelCount });\n\n return { audioBufferSourceNode, encoderId, mediaStreamAudioSourceNode, port, recorderAudioWorkletNode };\n};\n\nexport const createWebAudioMediaRecorderFactory: TWebAudioMediaRecorderFactoryFactory = (\n createBlobEvent,\n createInvalidModificationError,\n createInvalidStateError,\n createNotSupportedError\n) => {\n return (eventTarget, mediaStream, mimeType) => {\n const sampleRate = mediaStream.getAudioTracks()[0]?.getSettings().sampleRate;\n const audioContext = new MinimalAudioContext({ latencyHint: 'playback', sampleRate });\n const length = Math.max(1024, Math.ceil(audioContext.baseLatency * audioContext.sampleRate));\n const audioBuffer = new AudioBuffer({ length, sampleRate: audioContext.sampleRate });\n const bufferedArrayBuffers: ArrayBuffer[] = [];\n const promisedAudioWorkletModule = addRecorderAudioWorkletModule((url: string) => {\n if (addAudioWorkletModule === undefined) {\n throw new Error(ERROR_MESSAGE);\n }\n\n return addAudioWorkletModule(audioContext, url);\n });\n\n let abortRecording: null | (() => void) = null;\n let intervalId: null | number = null;\n let promisedAudioNodesAndEncoderId: null | Promise = null;\n let promisedPartialRecording: null | Promise = null;\n let isAudioContextRunning = true;\n\n const dispatchDataAvailableEvent = (arrayBuffers: ArrayBuffer[]): void => {\n eventTarget.dispatchEvent(createBlobEvent('dataavailable', { data: new Blob(arrayBuffers, { type: mimeType }) }));\n };\n\n const requestNextPartialRecording = async (encoderId: number, timeslice: number): Promise => {\n const arrayBuffers = await encode(encoderId, timeslice);\n\n if (promisedAudioNodesAndEncoderId === null) {\n bufferedArrayBuffers.push(...arrayBuffers);\n } else {\n dispatchDataAvailableEvent(arrayBuffers);\n\n promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice);\n }\n };\n\n const resume = (): Promise => {\n isAudioContextRunning = true;\n\n return audioContext.resume();\n };\n\n const stop = (): void => {\n if (promisedAudioNodesAndEncoderId === null) {\n return;\n }\n\n if (abortRecording !== null) {\n mediaStream.removeEventListener('addtrack', abortRecording);\n mediaStream.removeEventListener('removetrack', abortRecording);\n }\n\n if (intervalId !== null) {\n clearTimeout(intervalId);\n }\n\n promisedAudioNodesAndEncoderId.then(async ({ encoderId, mediaStreamAudioSourceNode, recorderAudioWorkletNode }) => {\n if (promisedPartialRecording !== null) {\n promisedPartialRecording.catch(() => {\n /* @todo Only catch the errors caused by a duplicate call to encode. */\n });\n promisedPartialRecording = null;\n }\n\n await recorderAudioWorkletNode.stop();\n\n mediaStreamAudioSourceNode.disconnect(recorderAudioWorkletNode);\n\n const arrayBuffers = await encode(encoderId, null);\n\n if (promisedAudioNodesAndEncoderId === null) {\n await suspend();\n }\n\n dispatchDataAvailableEvent([...bufferedArrayBuffers, ...arrayBuffers]);\n\n bufferedArrayBuffers.length = 0;\n\n eventTarget.dispatchEvent(new Event('stop'));\n });\n\n promisedAudioNodesAndEncoderId = null;\n };\n\n const suspend = (): Promise => {\n isAudioContextRunning = false;\n\n return audioContext.suspend();\n };\n\n suspend();\n\n return {\n get mimeType(): string {\n return mimeType;\n },\n\n get state(): TRecordingState {\n return promisedAudioNodesAndEncoderId === null ? 'inactive' : isAudioContextRunning ? 'recording' : 'paused';\n },\n\n pause(): void {\n if (promisedAudioNodesAndEncoderId === null) {\n throw createInvalidStateError();\n }\n\n if (isAudioContextRunning) {\n suspend();\n eventTarget.dispatchEvent(new Event('pause'));\n }\n },\n\n resume(): void {\n if (promisedAudioNodesAndEncoderId === null) {\n throw createInvalidStateError();\n }\n\n if (!isAudioContextRunning) {\n resume();\n eventTarget.dispatchEvent(new Event('resume'));\n }\n },\n\n start(timeslice?: number): void {\n if (promisedAudioNodesAndEncoderId !== null) {\n throw createInvalidStateError();\n }\n\n if (mediaStream.getVideoTracks().length > 0) {\n throw createNotSupportedError();\n }\n\n eventTarget.dispatchEvent(new Event('start'));\n\n const audioTracks = mediaStream.getAudioTracks();\n // @todo TypeScript v4.4.2 removed the channelCount property from the MediaTrackSettings interface.\n const channelCount =\n audioTracks.length === 0\n ? 2\n : (audioTracks[0].getSettings()).channelCount ?? 2;\n\n promisedAudioNodesAndEncoderId = Promise.all([\n resume(),\n promisedAudioWorkletModule.then(() =>\n createPromisedAudioNodesEncoderIdAndPort(audioBuffer, audioContext, channelCount, mediaStream, mimeType)\n )\n ]).then(async ([, { audioBufferSourceNode, encoderId, mediaStreamAudioSourceNode, port, recorderAudioWorkletNode }]) => {\n mediaStreamAudioSourceNode.connect(recorderAudioWorkletNode);\n\n await new Promise((resolve) => {\n audioBufferSourceNode.onended = resolve;\n audioBufferSourceNode.connect(recorderAudioWorkletNode);\n audioBufferSourceNode.start(audioContext.currentTime + length / audioContext.sampleRate);\n });\n\n audioBufferSourceNode.disconnect(recorderAudioWorkletNode);\n\n await recorderAudioWorkletNode.record(port);\n\n if (timeslice !== undefined) {\n promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice);\n }\n\n return { encoderId, mediaStreamAudioSourceNode, recorderAudioWorkletNode };\n });\n\n const tracks = mediaStream.getTracks();\n\n abortRecording = () => {\n stop();\n eventTarget.dispatchEvent(new ErrorEvent('error', { error: createInvalidModificationError() }));\n };\n\n mediaStream.addEventListener('addtrack', abortRecording);\n mediaStream.addEventListener('removetrack', abortRecording);\n\n intervalId = setInterval(() => {\n const currentTracks = mediaStream.getTracks();\n\n if (\n (currentTracks.length !== tracks.length || currentTracks.some((track, index) => track !== tracks[index])) &&\n abortRecording !== null\n ) {\n abortRecording();\n }\n }, 1000);\n },\n\n stop\n };\n };\n};\n","import { IAudioContext, IMinimalAudioContext } from '../interfaces';\nimport { TIsAnyAudioContextFactory, TNativeAudioContext } from '../types';\n\nexport const createIsAnyAudioContext: TIsAnyAudioContextFactory = (contextStore, isNativeAudioContext) => {\n return (anything): anything is IAudioContext | IMinimalAudioContext | TNativeAudioContext => {\n const nativeContext = contextStore.get(anything);\n\n return isNativeAudioContext(nativeContext) || isNativeAudioContext(anything);\n };\n};\n","import { IAudioNode } from '../interfaces';\nimport { TIsAnyAudioNodeFactory, TNativeAudioNode } from '../types';\n\nexport const createIsAnyAudioNode: TIsAnyAudioNodeFactory = (audioNodeStore, isNativeAudioNode) => {\n return (anything): anything is IAudioNode | TNativeAudioNode => audioNodeStore.has(anything) || isNativeAudioNode(anything);\n};\n","import { IAudioParam } from '../interfaces';\nimport { TIsAnyAudioParamFactory, TNativeAudioParam } from '../types';\n\nexport const createIsAnyAudioParam: TIsAnyAudioParamFactory = (audioParamStore, isNativeAudioParam) => {\n return (anything): anything is IAudioParam | TNativeAudioParam => audioParamStore.has(anything) || isNativeAudioParam(anything);\n};\n","import { IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TIsAnyOfflineAudioContextFactory, TNativeOfflineAudioContext } from '../types';\n\nexport const createIsAnyOfflineAudioContext: TIsAnyOfflineAudioContextFactory = (contextStore, isNativeOfflineAudioContext) => {\n return (anything): anything is IMinimalOfflineAudioContext | IOfflineAudioContext | TNativeOfflineAudioContext => {\n const nativeContext = contextStore.get(anything);\n\n return isNativeOfflineAudioContext(nativeContext) || isNativeOfflineAudioContext(anything);\n };\n};\n","import { register as rgstr } from 'media-encoder-host';\nimport { createBlobEventFactory } from './factories/blob-event-factory';\nimport { createDecodeWebMChunk } from './factories/decode-web-m-chunk';\nimport { createEventTargetConstructor } from './factories/event-target-constructor';\nimport { createEventTargetFactory } from './factories/event-target-factory';\nimport { createInvalidModificationError } from './factories/invalid-modification-error';\nimport { createInvalidStateError } from './factories/invalid-state-error';\nimport { createIsSupportedPromise } from './factories/is-supported-promise';\nimport { createMediaRecorderConstructor } from './factories/media-recorder-constructor';\nimport { createNativeBlobEventConstructor } from './factories/native-blob-event-constructor';\nimport { createNativeMediaRecorderFactory } from './factories/native-media-recorder';\nimport { createNativeMediaRecorderConstructor } from './factories/native-media-recorder-constructor';\nimport { createNotSupportedError } from './factories/not-supported-error';\nimport { createReadElementContent } from './factories/read-element-content';\nimport { createReadElementType } from './factories/read-element-type';\nimport { createReadVariableSizeInteger } from './factories/read-variable-size-integer';\nimport { createWebAudioMediaRecorderFactory } from './factories/web-audio-media-recorder';\nimport { createWebmPcmMediaRecorderFactory } from './factories/webm-pcm-media-recorder';\nimport { createWindow } from './factories/window';\nimport { readVariableSizeIntegerLength } from './functions/read-variable-size-integer-length';\nimport { wrapEventListener } from './functions/wrap-event-listener';\nimport { IMediaRecorderConstructor } from './interfaces';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst encoderRegexes: RegExp[] = [];\n\nconst window = createWindow();\nconst nativeBlobEventConstructor = createNativeBlobEventConstructor(window);\nconst createBlobEvent = createBlobEventFactory(nativeBlobEventConstructor);\nconst createWebAudioMediaRecorder = createWebAudioMediaRecorderFactory(\n createBlobEvent,\n createInvalidModificationError,\n createInvalidStateError,\n createNotSupportedError\n);\nconst readVariableSizeInteger = createReadVariableSizeInteger(readVariableSizeIntegerLength);\nconst readElementContent = createReadElementContent(readVariableSizeInteger);\nconst readElementType = createReadElementType(readVariableSizeInteger);\nconst decodeWebMChunk = createDecodeWebMChunk(readElementContent, readElementType);\nconst createWebmPcmMediaRecorder = createWebmPcmMediaRecorderFactory(\n createBlobEvent,\n createInvalidModificationError,\n createNotSupportedError,\n decodeWebMChunk,\n readVariableSizeInteger\n);\nconst createEventTarget = createEventTargetFactory(window);\nconst nativeMediaRecorderConstructor = createNativeMediaRecorderConstructor(window);\n\nconst createNativeMediaRecorder = createNativeMediaRecorderFactory(createInvalidModificationError, createNotSupportedError);\nconst mediaRecorderConstructor: IMediaRecorderConstructor = createMediaRecorderConstructor(\n createNativeMediaRecorder,\n createNotSupportedError,\n createWebAudioMediaRecorder,\n createWebmPcmMediaRecorder,\n encoderRegexes,\n createEventTargetConstructor(createEventTarget, wrapEventListener),\n nativeMediaRecorderConstructor\n);\n\nexport { mediaRecorderConstructor as MediaRecorder };\n\nexport const isSupported = () => createIsSupportedPromise(window);\n\nexport const register = async (port: MessagePort): Promise => {\n encoderRegexes.push(await rgstr(port));\n};\n","import { TWindow, TWindowFactory } from '../types';\n\nexport const createWindow: TWindowFactory = () => (typeof window === 'undefined' ? null : window);\n","import { IBlobEvent } from '../interfaces';\nimport { TBlobEventFactoryFactory } from '../types';\n\nexport const createBlobEventFactory: TBlobEventFactoryFactory = (nativeBlobEventConstructor) => {\n return (type, blobEventInit) => {\n // Bug #14: Safari does not yet support the BlobEvent.\n if (nativeBlobEventConstructor === null) {\n const { data, ...eventInit } = blobEventInit;\n const fakeBlobEvent = new Event(type, eventInit);\n\n ( & { -readonly [P in 'data']: IBlobEvent[P] }>fakeBlobEvent).data = data;\n\n return fakeBlobEvent;\n }\n\n return new nativeBlobEventConstructor(type, blobEventInit);\n };\n};\n","import { TNativeBlobEventConstructorFactory } from '../types';\n\nexport const createNativeBlobEventConstructor: TNativeBlobEventConstructorFactory = (window) => {\n if (window !== null && window.BlobEvent !== undefined) {\n return window.BlobEvent;\n }\n\n return null;\n};\n","import { TInvalidStateErrorFactory } from '../types';\n\nexport const createInvalidStateError: TInvalidStateErrorFactory = () => {\n try {\n return new DOMException('', 'InvalidStateError');\n } catch (err) {\n // Bug #122: Edge is the only browser that does not yet allow to construct a DOMException.\n err.code = 11;\n err.name = 'InvalidStateError';\n\n return err;\n }\n};\n","import { TReadVariableSizeIntegerFactory } from '../types';\n\nexport const createReadVariableSizeInteger: TReadVariableSizeIntegerFactory = (readVariableSizeIntegerLength) => {\n return (dataView, offset) => {\n const length = readVariableSizeIntegerLength(dataView, offset);\n\n if (length === null) {\n return length;\n }\n\n const firstDataByteOffset = offset + Math.floor((length - 1) / 8);\n\n if (firstDataByteOffset + length > dataView.byteLength) {\n return null;\n }\n\n const firstDataByte = dataView.getUint8(firstDataByteOffset);\n\n let value = firstDataByte & ((1 << (8 - (length % 8))) - 1); // tslint:disable-line:no-bitwise\n\n for (let i = 1; i < length; i += 1) {\n value = (value << 8) + dataView.getUint8(firstDataByteOffset + i); // tslint:disable-line:no-bitwise\n }\n\n return { length, value };\n };\n};\n","import { TReadVariableSizeIntegerLengthFunction } from '../types';\n\nexport const readVariableSizeIntegerLength: TReadVariableSizeIntegerLengthFunction = (dataView, offset) => {\n if (offset >= dataView.byteLength) {\n return null;\n }\n\n const byte = dataView.getUint8(offset);\n\n if (byte > 127) {\n return 1;\n }\n\n if (byte > 63) {\n return 2;\n }\n\n if (byte > 31) {\n return 3;\n }\n\n if (byte > 15) {\n return 4;\n }\n\n if (byte > 7) {\n return 5;\n }\n\n if (byte > 3) {\n return 6;\n }\n\n if (byte > 1) {\n return 7;\n }\n\n if (byte > 0) {\n return 8;\n }\n\n const length = readVariableSizeIntegerLength(dataView, offset + 1);\n\n return length === null ? null : length + 8;\n};\n","import { TReadElementContentFactory } from '../types';\n\nexport const createReadElementContent: TReadElementContentFactory = (readVariableSizeInteger) => {\n return (dataView, offset, type, channelCount = 2) => {\n const lengthAndValue = readVariableSizeInteger(dataView, offset);\n\n if (lengthAndValue === null) {\n return lengthAndValue;\n }\n\n const { length, value } = lengthAndValue;\n\n if (type === 'master') {\n return { content: null, length };\n }\n\n if (offset + length + value > dataView.byteLength) {\n return null;\n }\n\n if (type === 'binary') {\n const numberOfSamples = (value / Float32Array.BYTES_PER_ELEMENT - 1) / channelCount;\n const content = Array.from({ length: channelCount }, () => new Float32Array(numberOfSamples));\n\n for (let i = 0; i < numberOfSamples; i += 1) {\n const elementOffset = i * channelCount + 1;\n\n for (let j = 0; j < channelCount; j += 1) {\n content[j][i] = dataView.getFloat32(offset + length + (elementOffset + j) * Float32Array.BYTES_PER_ELEMENT, true);\n }\n }\n\n return { content, length: length + value };\n }\n\n return { content: null, length: length + value };\n };\n};\n","import { TReadElementTypeFactory } from '../types';\n\nexport const createReadElementType: TReadElementTypeFactory = (readVariableSizeInteger) => {\n return (dataView, offset) => {\n const lengthAndValue = readVariableSizeInteger(dataView, offset);\n\n if (lengthAndValue === null) {\n return lengthAndValue;\n }\n\n const { length, value } = lengthAndValue;\n\n if (value === 35) {\n return { length, type: 'binary' };\n }\n\n if (\n value === 46 ||\n value === 97 ||\n value === 88713574 ||\n value === 106212971 ||\n value === 139690087 ||\n value === 172351395 ||\n value === 256095861\n ) {\n return { length, type: 'master' };\n }\n\n return { length, type: 'unknown' };\n };\n};\n","import { TDecodeWebMChunkFactory } from '../types';\n\nexport const createDecodeWebMChunk: TDecodeWebMChunkFactory = (readElementContent, readElementType) => {\n return (dataView, elementType, channelCount) => {\n const contents: (readonly Float32Array[])[] = [];\n\n let currentElementType = elementType;\n let offset = 0;\n\n while (offset < dataView.byteLength) {\n if (currentElementType === null) {\n const lengthAndType = readElementType(dataView, offset);\n\n if (lengthAndType === null) {\n break;\n }\n\n const { length, type } = lengthAndType;\n\n currentElementType = type;\n offset += length;\n } else {\n const contentAndLength = readElementContent(dataView, offset, currentElementType, channelCount);\n\n if (contentAndLength === null) {\n break;\n }\n\n const { content, length } = contentAndLength;\n\n currentElementType = null;\n offset += length;\n\n if (content !== null) {\n contents.push(content);\n }\n }\n }\n\n return { contents, currentElementType, offset };\n };\n};\n","import { encode, instantiate } from 'media-encoder-host';\nimport { MultiBufferDataView } from 'multi-buffer-data-view';\nimport { on } from 'subscribable-things';\nimport { TPromisedDataViewElementTypeEncoderIdAndPort, TRecordingState, TWebmPcmMediaRecorderFactoryFactory } from '../types';\n\nexport const createWebmPcmMediaRecorderFactory: TWebmPcmMediaRecorderFactoryFactory = (\n createBlobEvent,\n createInvalidModificationError,\n createNotSupportedError,\n decodeWebMChunk,\n readVariableSizeInteger\n) => {\n return (eventTarget, nativeMediaRecorderConstructor, mediaStream, mimeType) => {\n const audioTracks = mediaStream.getAudioTracks();\n const bufferedArrayBuffers: ArrayBuffer[] = [];\n // @todo TypeScript v4.4.2 removed the channelCount property from the MediaTrackSettings interface.\n const channelCount =\n audioTracks.length === 0\n ? undefined\n : (audioTracks[0].getSettings()).channelCount;\n const nativeMediaRecorder = new nativeMediaRecorderConstructor(mediaStream, { mimeType: 'audio/webm;codecs=pcm' });\n const sampleRate = audioTracks.length === 0 ? undefined : audioTracks[0].getSettings().sampleRate;\n\n let promisedPartialRecording: null | Promise = null;\n let stopRecording = () => {}; // tslint:disable-line:no-empty\n\n const dispatchDataAvailableEvent = (arrayBuffers: ArrayBuffer[]): void => {\n eventTarget.dispatchEvent(createBlobEvent('dataavailable', { data: new Blob(arrayBuffers, { type: mimeType }) }));\n };\n\n const requestNextPartialRecording = async (encoderId: number, timeslice: number): Promise => {\n const arrayBuffers = await encode(encoderId, timeslice);\n\n if (nativeMediaRecorder.state === 'inactive') {\n bufferedArrayBuffers.push(...arrayBuffers);\n } else {\n dispatchDataAvailableEvent(arrayBuffers);\n\n promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice);\n }\n };\n\n const stop = (): void => {\n if (nativeMediaRecorder.state === 'inactive') {\n return;\n }\n\n if (promisedPartialRecording !== null) {\n promisedPartialRecording.catch(() => {\n /* @todo Only catch the errors caused by a duplicate call to encode. */\n });\n promisedPartialRecording = null;\n }\n\n stopRecording();\n stopRecording = () => {}; // tslint:disable-line:no-empty\n\n nativeMediaRecorder.stop();\n };\n\n nativeMediaRecorder.addEventListener('error', () => {\n stop();\n // Bug #3 & #4: Chrome throws an error event without any error.\n eventTarget.dispatchEvent(new ErrorEvent('error', { error: createInvalidModificationError() }));\n });\n nativeMediaRecorder.addEventListener('start', () => eventTarget.dispatchEvent(new Event('start')));\n\n return {\n get mimeType(): string {\n return mimeType;\n },\n\n get state(): TRecordingState {\n return nativeMediaRecorder.state;\n },\n\n pause(): void {\n return nativeMediaRecorder.pause();\n },\n\n resume(): void {\n return nativeMediaRecorder.resume();\n },\n\n start(timeslice?: number): void {\n /*\n * Bug #6: Chrome will emit a blob without any data when asked to encode a MediaStream with a video track into an audio\n * codec.\n */\n if (mediaStream.getVideoTracks().length > 0) {\n throw createNotSupportedError();\n }\n\n if (nativeMediaRecorder.state === 'inactive') {\n if (sampleRate === undefined) {\n throw new Error('The sampleRate is not defined.');\n }\n\n let isRecording = false;\n let isStopped = false;\n // Bug #9: Chrome sometimes fires more than one dataavailable event while being inactive.\n let pendingInvocations = 0;\n let promisedDataViewElementTypeEncoderIdAndPort: TPromisedDataViewElementTypeEncoderIdAndPort = instantiate(\n mimeType,\n sampleRate\n );\n\n stopRecording = () => {\n isStopped = true;\n };\n\n const removeEventListener = on(\n nativeMediaRecorder,\n 'dataavailable'\n )(({ data }) => {\n pendingInvocations += 1;\n\n promisedDataViewElementTypeEncoderIdAndPort = promisedDataViewElementTypeEncoderIdAndPort.then(\n async ({ dataView = null, elementType = null, encoderId, port }) => {\n const arrayBuffer = await data.arrayBuffer();\n\n pendingInvocations -= 1;\n\n const currentDataView =\n dataView === null\n ? new MultiBufferDataView([arrayBuffer])\n : new MultiBufferDataView([...dataView.buffers, arrayBuffer], dataView.byteOffset);\n\n if (!isRecording && nativeMediaRecorder.state === 'recording' && !isStopped) {\n const lengthAndValue = readVariableSizeInteger(currentDataView, 0);\n\n if (lengthAndValue === null) {\n return { dataView: currentDataView, elementType, encoderId, port };\n }\n\n const { value } = lengthAndValue;\n\n if (value !== 172351395) {\n return { dataView, elementType, encoderId, port };\n }\n\n isRecording = true;\n }\n\n const { currentElementType, offset, contents } = decodeWebMChunk(\n currentDataView,\n elementType,\n channelCount\n );\n const remainingDataView =\n offset < currentDataView.byteLength\n ? new MultiBufferDataView(currentDataView.buffers, currentDataView.byteOffset + offset)\n : null;\n\n contents.forEach((content) =>\n port.postMessage(\n content,\n content.map(({ buffer }) => buffer)\n )\n );\n\n if (pendingInvocations === 0 && (nativeMediaRecorder.state === 'inactive' || isStopped)) {\n encode(encoderId, null).then((arrayBuffers) => {\n dispatchDataAvailableEvent([...bufferedArrayBuffers, ...arrayBuffers]);\n\n bufferedArrayBuffers.length = 0;\n\n eventTarget.dispatchEvent(new Event('stop'));\n });\n\n port.postMessage([]);\n port.close();\n\n removeEventListener();\n }\n\n return { dataView: remainingDataView, elementType: currentElementType, encoderId, port };\n }\n );\n });\n\n if (timeslice !== undefined) {\n promisedDataViewElementTypeEncoderIdAndPort.then(\n ({ encoderId }) => (promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice))\n );\n }\n }\n\n nativeMediaRecorder.start(100);\n },\n\n stop\n };\n };\n};\n","import { TEventTargetFactoryFactory } from '../types';\n\nexport const createEventTargetFactory: TEventTargetFactoryFactory = (window) => {\n return () => {\n if (window === null) {\n throw new Error('A native EventTarget could not be created.');\n }\n\n return window.document.createElement('p');\n };\n};\n","import { TNativeMediaRecorderConstructorFactory } from '../types';\n\nexport const createNativeMediaRecorderConstructor: TNativeMediaRecorderConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n return window.MediaRecorder === undefined ? null : window.MediaRecorder;\n};\n","import { IBlobEvent, IMediaRecorder } from '../interfaces';\nimport { TEventHandler, TNativeMediaRecorderFactoryFactory } from '../types';\n\nexport const createNativeMediaRecorderFactory: TNativeMediaRecorderFactoryFactory = (\n createInvalidModificationError,\n createNotSupportedError\n) => {\n return (nativeMediaRecorderConstructor, stream, mediaRecorderOptions) => {\n const bufferedBlobs: Blob[] = [];\n const dataAvailableListeners = new WeakMap void>();\n const errorListeners = new WeakMap void>();\n const nativeMediaRecorder = new nativeMediaRecorderConstructor(stream, mediaRecorderOptions);\n const stopListeners = new WeakMap void>();\n\n let isActive = true;\n\n nativeMediaRecorder.addEventListener = ((addEventListener) => {\n return (\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ) => {\n let patchedEventListener = listener;\n\n if (typeof listener === 'function') {\n if (type === 'dataavailable') {\n // Bug #7 & #8: Chrome fires the dataavailable and stop events before it fires the error event.\n patchedEventListener = (event: IBlobEvent) => {\n setTimeout(() => {\n if (isActive && nativeMediaRecorder.state === 'inactive') {\n bufferedBlobs.push(event.data);\n } else {\n if (bufferedBlobs.length > 0) {\n const blob = event.data;\n\n Object.defineProperty(event, 'data', {\n value: new Blob([...bufferedBlobs, blob], { type: blob.type })\n });\n\n bufferedBlobs.length = 0;\n }\n\n listener.call(nativeMediaRecorder, event);\n }\n });\n };\n\n dataAvailableListeners.set(listener, patchedEventListener);\n } else if (type === 'error') {\n // Bug #12 & #13: Firefox fires a regular event with an error property.\n patchedEventListener = (event: ErrorEvent | (Event & { error?: Error })) => {\n // Bug #3 & #4: Chrome throws an error event without any error.\n if (event.error === undefined) {\n listener.call(nativeMediaRecorder, new ErrorEvent('error', { error: createInvalidModificationError() }));\n // Bug #1 & #2: Firefox throws an error event with an UnknownError.\n } else if (event.error.name === 'UnknownError') {\n const message = event.error.message;\n\n listener.call(\n nativeMediaRecorder,\n new ErrorEvent('error', { error: createInvalidModificationError(message) })\n );\n } else if (event instanceof ErrorEvent) {\n listener.call(nativeMediaRecorder, event);\n } else {\n listener.call(nativeMediaRecorder, new ErrorEvent('error', { error: event.error }));\n }\n };\n\n errorListeners.set(listener, patchedEventListener);\n } else if (type === 'stop') {\n // Bug #7 & #8: Chrome fires the dataavailable and stop events before it fires the error event.\n patchedEventListener = (event: Event) => {\n isActive = false;\n\n setTimeout(() => listener.call(nativeMediaRecorder, event));\n };\n\n stopListeners.set(listener, patchedEventListener);\n }\n }\n\n return addEventListener.call(nativeMediaRecorder, type, patchedEventListener, options);\n };\n })(nativeMediaRecorder.addEventListener);\n\n nativeMediaRecorder.dispatchEvent = ((dispatchEvent) => {\n // Bug #7 & #8: Chrome fires the dataavailable and stop events before it fires the error event.\n return (event: Event) => {\n let wasActive: boolean;\n\n setTimeout(() => {\n wasActive = isActive;\n isActive = false;\n });\n\n const returnValue = dispatchEvent.call(nativeMediaRecorder, event);\n\n setTimeout(() => (isActive = wasActive));\n\n return returnValue;\n };\n })(nativeMediaRecorder.dispatchEvent);\n\n nativeMediaRecorder.removeEventListener = ((removeEventListener) => {\n return (\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ) => {\n let patchedEventListener = listener;\n\n if (typeof listener === 'function') {\n if (type === 'dataavailable') {\n const dataAvailableListener = dataAvailableListeners.get(listener);\n\n if (dataAvailableListener !== undefined) {\n patchedEventListener = dataAvailableListener;\n }\n } else if (type === 'error') {\n const errorListener = errorListeners.get(listener);\n\n if (errorListener !== undefined) {\n patchedEventListener = errorListener;\n }\n } else if (type === 'stop') {\n const stopListener = stopListeners.get(listener);\n\n if (stopListener !== undefined) {\n patchedEventListener = stopListener;\n }\n }\n }\n\n return removeEventListener.call(nativeMediaRecorder, type, patchedEventListener, options);\n };\n })(nativeMediaRecorder.removeEventListener);\n\n nativeMediaRecorder.start = ((start) => {\n return (timeslice?: number) => {\n /*\n * Bug #6: Chrome will emit a blob without any data when asked to encode a MediaStream with a video track into an audio\n * codec.\n */\n if (\n mediaRecorderOptions.mimeType !== undefined &&\n mediaRecorderOptions.mimeType.startsWith('audio/') &&\n stream.getVideoTracks().length > 0\n ) {\n throw createNotSupportedError();\n }\n\n isActive = timeslice !== undefined;\n\n return timeslice === undefined ? start.call(nativeMediaRecorder) : start.call(nativeMediaRecorder, timeslice);\n };\n })(nativeMediaRecorder.start);\n\n return nativeMediaRecorder;\n };\n};\n","import { IMediaRecorder, IMediaRecorderEventMap, IMediaRecorderOptions } from '../interfaces';\nimport {\n TBlobEventHandler,\n TErrorEventHandler,\n TEventHandler,\n TMediaRecorderConstructorFactory,\n TNativeEventTarget,\n TRecordingState\n} from '../types';\n\nexport const createMediaRecorderConstructor: TMediaRecorderConstructorFactory = (\n createNativeMediaRecorder,\n createNotSupportedError,\n createWebAudioMediaRecorder,\n createWebmPcmMediaRecorder,\n encoderRegexes,\n eventTargetConstructor,\n nativeMediaRecorderConstructor\n) => {\n return class MediaRecorder extends eventTargetConstructor implements IMediaRecorder {\n private _internalMediaRecorder: Omit<\n IMediaRecorder,\n 'ondataavailable' | 'onerror' | 'onpause' | 'onresume' | 'onstart' | 'onstop' | keyof TNativeEventTarget\n >;\n\n private _ondataavailable: null | [TBlobEventHandler, TBlobEventHandler];\n\n private _onerror: null | [TErrorEventHandler, TErrorEventHandler];\n\n private _onpause: null | [TEventHandler, TEventHandler];\n\n private _onresume: null | [TEventHandler, TEventHandler];\n\n private _onstart: null | [TEventHandler, TEventHandler];\n\n private _onstop: null | [TEventHandler, TEventHandler];\n\n constructor(stream: MediaStream, options: IMediaRecorderOptions = {}) {\n const { mimeType } = options;\n\n if (\n nativeMediaRecorderConstructor !== null &&\n // Bug #10: Safari does not yet implement the isTypeSupported() method.\n (mimeType === undefined ||\n (nativeMediaRecorderConstructor.isTypeSupported !== undefined &&\n nativeMediaRecorderConstructor.isTypeSupported(mimeType)))\n ) {\n const internalMediaRecorder = createNativeMediaRecorder(nativeMediaRecorderConstructor, stream, options);\n\n super(internalMediaRecorder);\n\n this._internalMediaRecorder = internalMediaRecorder;\n } else if (mimeType !== undefined && encoderRegexes.some((regex) => regex.test(mimeType))) {\n super();\n\n // Bug #10: Safari does not yet implement the isTypeSupported() method.\n if (\n nativeMediaRecorderConstructor !== null &&\n nativeMediaRecorderConstructor.isTypeSupported !== undefined &&\n nativeMediaRecorderConstructor.isTypeSupported('audio/webm;codecs=pcm')\n ) {\n this._internalMediaRecorder = createWebmPcmMediaRecorder(this, nativeMediaRecorderConstructor, stream, mimeType);\n } else {\n this._internalMediaRecorder = createWebAudioMediaRecorder(this, stream, mimeType);\n }\n } else {\n // This is creating a native MediaRecorder just to provoke it to throw an error.\n if (nativeMediaRecorderConstructor !== null) {\n createNativeMediaRecorder(nativeMediaRecorderConstructor, stream, options);\n }\n\n throw createNotSupportedError();\n }\n\n this._ondataavailable = null;\n this._onerror = null;\n this._onpause = null;\n this._onresume = null;\n this._onstart = null;\n this._onstop = null;\n }\n\n get mimeType(): string {\n return this._internalMediaRecorder.mimeType;\n }\n\n get ondataavailable(): null | TBlobEventHandler {\n return this._ondataavailable === null ? this._ondataavailable : this._ondataavailable[0];\n }\n\n set ondataavailable(value) {\n if (this._ondataavailable !== null) {\n this.removeEventListener('dataavailable', this._ondataavailable[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('dataavailable', boundListener);\n\n this._ondataavailable = [value, boundListener];\n } else {\n this._ondataavailable = null;\n }\n }\n\n get onerror(): null | TErrorEventHandler {\n return this._onerror === null ? this._onerror : this._onerror[0];\n }\n\n set onerror(value) {\n if (this._onerror !== null) {\n this.removeEventListener('error', this._onerror[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('error', boundListener);\n\n this._onerror = [value, boundListener];\n } else {\n this._onerror = null;\n }\n }\n\n get onpause(): null | TEventHandler {\n return this._onpause === null ? this._onpause : this._onpause[0];\n }\n\n set onpause(value) {\n if (this._onpause !== null) {\n this.removeEventListener('pause', this._onpause[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('pause', boundListener);\n\n this._onpause = [value, boundListener];\n } else {\n this._onpause = null;\n }\n }\n\n get onresume(): null | TEventHandler {\n return this._onresume === null ? this._onresume : this._onresume[0];\n }\n\n set onresume(value) {\n if (this._onresume !== null) {\n this.removeEventListener('resume', this._onresume[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('resume', boundListener);\n\n this._onresume = [value, boundListener];\n } else {\n this._onresume = null;\n }\n }\n\n get onstart(): null | TEventHandler {\n return this._onstart === null ? this._onstart : this._onstart[0];\n }\n\n set onstart(value) {\n if (this._onstart !== null) {\n this.removeEventListener('start', this._onstart[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('start', boundListener);\n\n this._onstart = [value, boundListener];\n } else {\n this._onstart = null;\n }\n }\n\n get onstop(): null | TEventHandler {\n return this._onstop === null ? this._onstop : this._onstop[0];\n }\n\n set onstop(value) {\n if (this._onstop !== null) {\n this.removeEventListener('stop', this._onstop[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('stop', boundListener);\n\n this._onstop = [value, boundListener];\n } else {\n this._onstop = null;\n }\n }\n\n get state(): TRecordingState {\n return this._internalMediaRecorder.state;\n }\n\n public pause(): void {\n return this._internalMediaRecorder.pause();\n }\n\n public resume(): void {\n return this._internalMediaRecorder.resume();\n }\n\n public start(timeslice?: number): void {\n return this._internalMediaRecorder.start(timeslice);\n }\n\n public stop(): void {\n return this._internalMediaRecorder.stop();\n }\n\n public static isTypeSupported(mimeType: string): boolean {\n return (\n (nativeMediaRecorderConstructor !== null &&\n // Bug #10: Safari does not yet implement the isTypeSupported() method.\n nativeMediaRecorderConstructor.isTypeSupported !== undefined &&\n nativeMediaRecorderConstructor.isTypeSupported(mimeType)) ||\n encoderRegexes.some((regex) => regex.test(mimeType))\n );\n }\n };\n};\n","import { IEventTarget } from '../interfaces';\nimport { TEventHandler, TEventTargetConstructorFactory, TNativeEventTarget } from '../types';\n\nexport const createEventTargetConstructor: TEventTargetConstructorFactory = (createEventTarget, wrapEventListener) => {\n return class EventTarget> implements IEventTarget {\n private _listeners: WeakMap;\n\n private _nativeEventTarget: TNativeEventTarget;\n\n constructor(nativeEventTarget: null | TNativeEventTarget = null) {\n this._listeners = new WeakMap();\n this._nativeEventTarget = nativeEventTarget === null ? createEventTarget() : nativeEventTarget;\n }\n\n public addEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (listener !== null) {\n let wrappedEventListener = this._listeners.get(listener);\n\n if (wrappedEventListener === undefined) {\n wrappedEventListener = wrapEventListener(this, listener);\n\n if (typeof listener === 'function') {\n this._listeners.set(listener, wrappedEventListener);\n }\n }\n\n this._nativeEventTarget.addEventListener(type, wrappedEventListener, options);\n }\n }\n\n public dispatchEvent(event: Event): boolean {\n return this._nativeEventTarget.dispatchEvent(event);\n }\n\n public removeEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n const wrappedEventListener = listener === null ? undefined : this._listeners.get(listener);\n\n this._nativeEventTarget.removeEventListener(type, wrappedEventListener === undefined ? null : wrappedEventListener, options);\n }\n };\n};\n","import { TWrapEventListenerFunction } from '../types';\n\nexport const wrapEventListener: TWrapEventListenerFunction = (target, eventListener) => {\n return (event) => {\n const descriptor = { value: target };\n\n Object.defineProperties(event, {\n currentTarget: descriptor,\n target: descriptor\n });\n\n if (typeof eventListener === 'function') {\n return eventListener.call(target, event);\n }\n\n return eventListener.handleEvent.call(target, event);\n };\n};\n","import { TIsSupportedPromiseFactory } from '../types';\n\nexport const createIsSupportedPromise: TIsSupportedPromiseFactory = (window) => {\n if (\n window !== null &&\n window.MediaStream !== undefined &&\n /*\n * Bug #10: An early experimental implemenation in Safari did not provide the isTypeSupported() function.\n */\n (window.MediaRecorder === undefined || window.MediaRecorder.isTypeSupported !== undefined)\n ) {\n /*\n * Bug #5: Up until v70 Firefox did emit a blob of type video/webm when asked to encode a MediaStream with a video track into an\n * audio codec.\n */\n return new Promise((resolve) => {\n // Bug #11 Safari does not yet support the MediaRecorder but that isn't tested here.\n if (window.MediaRecorder === undefined) {\n return resolve(true);\n }\n\n // @todo captureStream() is not defined yet.\n const canvasElement: HTMLCanvasElement & { captureStream?(): MediaStream } = document.createElement('canvas');\n\n // @todo https://bugzilla.mozilla.org/show_bug.cgi?id=1388974\n canvasElement.getContext('2d');\n\n if (typeof canvasElement.captureStream !== 'function') {\n return resolve(false);\n }\n\n const mediaStream = canvasElement.captureStream();\n const mimeType = 'audio/webm';\n\n try {\n const mediaRecorder = new window.MediaRecorder(mediaStream, { mimeType });\n\n mediaRecorder.addEventListener('dataavailable', ({ data }) => resolve(data.type === mimeType));\n mediaRecorder.start();\n\n setTimeout(() => mediaRecorder.stop(), 10);\n } catch (err) {\n resolve(err.name === 'NotSupportedError');\n }\n });\n }\n\n return Promise.resolve(false);\n};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.fastUniqueNumbers = {}));\n})(this, (function (exports) { 'use strict';\n\n var createAddUniqueNumber = function createAddUniqueNumber(generateUniqueNumber) {\n return function (set) {\n var number = generateUniqueNumber(set);\n set.add(number);\n return number;\n };\n };\n\n var createCache = function createCache(lastNumberWeakMap) {\n return function (collection, nextNumber) {\n lastNumberWeakMap.set(collection, nextNumber);\n return nextNumber;\n };\n };\n\n /*\n * The value of the constant Number.MAX_SAFE_INTEGER equals (2 ** 53 - 1) but it\n * is fairly new.\n */\n var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER === undefined ? 9007199254740991 : Number.MAX_SAFE_INTEGER;\n var TWO_TO_THE_POWER_OF_TWENTY_NINE = 536870912;\n var TWO_TO_THE_POWER_OF_THIRTY = TWO_TO_THE_POWER_OF_TWENTY_NINE * 2;\n var createGenerateUniqueNumber = function createGenerateUniqueNumber(cache, lastNumberWeakMap) {\n return function (collection) {\n var lastNumber = lastNumberWeakMap.get(collection);\n /*\n * Let's try the cheapest algorithm first. It might fail to produce a new\n * number, but it is so cheap that it is okay to take the risk. Just\n * increase the last number by one or reset it to 0 if we reached the upper\n * bound of SMIs (which stands for small integers). When the last number is\n * unknown it is assumed that the collection contains zero based consecutive\n * numbers.\n */\n\n var nextNumber = lastNumber === undefined ? collection.size : lastNumber < TWO_TO_THE_POWER_OF_THIRTY ? lastNumber + 1 : 0;\n\n if (!collection.has(nextNumber)) {\n return cache(collection, nextNumber);\n }\n /*\n * If there are less than half of 2 ** 30 numbers stored in the collection,\n * the chance to generate a new random number in the range from 0 to 2 ** 30\n * is at least 50%. It's benifitial to use only SMIs because they perform\n * much better in any environment based on V8.\n */\n\n\n if (collection.size < TWO_TO_THE_POWER_OF_TWENTY_NINE) {\n while (collection.has(nextNumber)) {\n nextNumber = Math.floor(Math.random() * TWO_TO_THE_POWER_OF_THIRTY);\n }\n\n return cache(collection, nextNumber);\n } // Quickly check if there is a theoretical chance to generate a new number.\n\n\n if (collection.size > MAX_SAFE_INTEGER) {\n throw new Error('Congratulations, you created a collection of unique numbers which uses all available integers!');\n } // Otherwise use the full scale of safely usable integers.\n\n\n while (collection.has(nextNumber)) {\n nextNumber = Math.floor(Math.random() * MAX_SAFE_INTEGER);\n }\n\n return cache(collection, nextNumber);\n };\n };\n\n var LAST_NUMBER_WEAK_MAP = new WeakMap();\n var cache = createCache(LAST_NUMBER_WEAK_MAP);\n var generateUniqueNumber = createGenerateUniqueNumber(cache, LAST_NUMBER_WEAK_MAP);\n var addUniqueNumber = createAddUniqueNumber(generateUniqueNumber);\n\n exports.addUniqueNumber = addUniqueNumber;\n exports.generateUniqueNumber = generateUniqueNumber;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\n * indefinite-article.js v1.0.0, 12-18-2011\n *\n * @author: Rodrigo Neri (@rigoneri)\n *\n * (The MIT License)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar indefiniteArticle = function(phrase) {\n var i, word;\n\n // Getting the first word\n var match = /\\w+/.exec(phrase);\n if (match)\n word = match[0];\n else\n return \"an\";\n\n var l_word = word.toLowerCase();\n // Specific start of words that should be preceeded by 'an'\n var alt_cases = [\"honest\", \"hour\", \"hono\"];\n for (i in alt_cases) {\n if (l_word.indexOf(alt_cases[i]) == 0)\n return \"an\";\n }\n\n // Single letter word which should be preceeded by 'an'\n if (l_word.length == 1) {\n if (\"aedhilmnorsx\".indexOf(l_word) >= 0)\n return \"an\";\n else\n return \"a\";\n }\n\n // Capital words which should likely be preceeded by 'an'\n if (word.match(/(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]/)) {\n return \"an\";\n }\n\n // Special cases where a word that begins with a vowel should be preceeded by 'a'\n var regexes = [/^e[uw]/, /^onc?e\\b/, /^uni([^nmd]|mo)/, /^u[bcfhjkqrst][aeiou]/];\n for (i = 0; i < regexes.length; i++) {\n if (l_word.match(regexes[i]))\n return \"a\"\n }\n\n // Special capital words (UK, UN)\n if (word.match(/^U[NK][AIEO]/)) {\n return \"a\";\n }\n else if (word == word.toUpperCase()) {\n if (\"aedhilmnorsx\".indexOf(l_word[0]) >= 0)\n return \"an\";\n else\n return \"a\";\n }\n\n // Basic method of words that begin with a vowel being preceeded by 'an'\n if (\"aeiou\".indexOf(l_word[0]) >= 0)\n return \"an\";\n\n // Instances where y follwed by specific letters is preceeded by 'an'\n if (l_word.match(/^y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)/))\n return \"an\";\n\n return \"a\";\n};\n\nif ((typeof module !== 'undefined') && (typeof module.exports !== 'undefined')) {\n module.exports = indefiniteArticle;\n} else {\n window.indefiniteArticle = indefiniteArticle;\n}\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = mergeWith;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/slicedToArray'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/slicedToArray', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.multiBufferDataView = {}, global._slicedToArray, global._classCallCheck, global._createClass));\n})(this, (function (exports, _slicedToArray, _classCallCheck, _createClass) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);\n var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);\n var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);\n\n function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\n function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\n function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n var MultiBufferDataView = /*#__PURE__*/function () {\n function MultiBufferDataView(buffers) {\n var byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var byteLength = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck__default[\"default\"](this, MultiBufferDataView);\n\n if (byteOffset < 0 || byteLength !== undefined && byteLength < 0) {\n throw new RangeError();\n }\n\n var availableBytes = buffers.reduce(function (length, buffer) {\n return length + buffer.byteLength;\n }, 0);\n\n if (byteOffset > availableBytes || byteLength !== undefined && byteOffset + byteLength > availableBytes) {\n throw new RangeError();\n }\n\n var dataViews = [];\n var effectiveByteLength = byteLength === undefined ? availableBytes - byteOffset : byteLength;\n var truncatedBuffers = [];\n var consumedByteLength = 0;\n var truncatedByteOffset = byteOffset;\n\n var _iterator = _createForOfIteratorHelper(buffers),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var buffer = _step.value;\n\n if (truncatedBuffers.length === 0) {\n if (buffer.byteLength > truncatedByteOffset) {\n consumedByteLength = buffer.byteLength - truncatedByteOffset;\n var byteLengthOfDataView = consumedByteLength > effectiveByteLength ? effectiveByteLength : consumedByteLength;\n dataViews.push(new DataView(buffer, truncatedByteOffset, byteLengthOfDataView));\n truncatedBuffers.push(buffer);\n } else {\n truncatedByteOffset -= buffer.byteLength;\n }\n } else if (consumedByteLength < effectiveByteLength) {\n consumedByteLength += buffer.byteLength;\n\n var _byteLengthOfDataView = consumedByteLength > effectiveByteLength ? buffer.byteLength - consumedByteLength + effectiveByteLength : buffer.byteLength;\n\n dataViews.push(new DataView(buffer, 0, _byteLengthOfDataView));\n truncatedBuffers.push(buffer);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._buffers = truncatedBuffers;\n this._byteLength = effectiveByteLength;\n this._byteOffset = truncatedByteOffset;\n this._dataViews = dataViews;\n this._internalBuffer = new DataView(new ArrayBuffer(8));\n }\n\n _createClass__default[\"default\"](MultiBufferDataView, [{\n key: \"buffers\",\n get: function get() {\n return this._buffers;\n }\n }, {\n key: \"byteLength\",\n get: function get() {\n return this._byteLength;\n }\n }, {\n key: \"byteOffset\",\n get: function get() {\n return this._byteOffset;\n }\n }, {\n key: \"getFloat32\",\n value: function getFloat32(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n\n return this._internalBuffer.getFloat32(0, littleEndian);\n }\n }, {\n key: \"getFloat64\",\n value: function getFloat64(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n\n this._internalBuffer.setUint8(4, this.getUint8(byteOffset + 4));\n\n this._internalBuffer.setUint8(5, this.getUint8(byteOffset + 5));\n\n this._internalBuffer.setUint8(6, this.getUint8(byteOffset + 6));\n\n this._internalBuffer.setUint8(7, this.getUint8(byteOffset + 7));\n\n return this._internalBuffer.getFloat64(0, littleEndian);\n }\n }, {\n key: \"getInt16\",\n value: function getInt16(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n\n return this._internalBuffer.getInt16(0, littleEndian);\n }\n }, {\n key: \"getInt32\",\n value: function getInt32(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n\n return this._internalBuffer.getInt32(0, littleEndian);\n }\n }, {\n key: \"getInt8\",\n value: function getInt8(byteOffset) {\n var _this$_findDataViewWi = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi2 = _slicedToArray__default[\"default\"](_this$_findDataViewWi, 2),\n dataView = _this$_findDataViewWi2[0],\n byteOffsetOfDataView = _this$_findDataViewWi2[1];\n\n return dataView.getInt8(byteOffset - byteOffsetOfDataView);\n }\n }, {\n key: \"getUint16\",\n value: function getUint16(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n\n return this._internalBuffer.getUint16(0, littleEndian);\n }\n }, {\n key: \"getUint32\",\n value: function getUint32(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n\n return this._internalBuffer.getUint32(0, littleEndian);\n }\n }, {\n key: \"getUint8\",\n value: function getUint8(byteOffset) {\n var _this$_findDataViewWi3 = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi4 = _slicedToArray__default[\"default\"](_this$_findDataViewWi3, 2),\n dataView = _this$_findDataViewWi4[0],\n byteOffsetOfDataView = _this$_findDataViewWi4[1];\n\n return dataView.getUint8(byteOffset - byteOffsetOfDataView);\n }\n }, {\n key: \"setFloat32\",\n value: function setFloat32(byteOffset, value, littleEndian) {\n this._internalBuffer.setFloat32(0, value, littleEndian);\n\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n }\n }, {\n key: \"setFloat64\",\n value: function setFloat64(byteOffset, value, littleEndian) {\n this._internalBuffer.setFloat64(0, value, littleEndian);\n\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n this.setUint8(byteOffset + 4, this._internalBuffer.getUint8(4));\n this.setUint8(byteOffset + 5, this._internalBuffer.getUint8(5));\n this.setUint8(byteOffset + 6, this._internalBuffer.getUint8(6));\n this.setUint8(byteOffset + 7, this._internalBuffer.getUint8(7));\n }\n }, {\n key: \"setInt16\",\n value: function setInt16(byteOffset, value, littleEndian) {\n this._internalBuffer.setInt16(0, value, littleEndian);\n\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n }\n }, {\n key: \"setInt32\",\n value: function setInt32(byteOffset, value, littleEndian) {\n this._internalBuffer.setInt32(0, value, littleEndian);\n\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n }\n }, {\n key: \"setInt8\",\n value: function setInt8(byteOffset, value) {\n var _this$_findDataViewWi5 = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi6 = _slicedToArray__default[\"default\"](_this$_findDataViewWi5, 2),\n dataView = _this$_findDataViewWi6[0],\n byteOffsetOfDataView = _this$_findDataViewWi6[1];\n\n dataView.setInt8(byteOffset - byteOffsetOfDataView, value);\n }\n }, {\n key: \"setUint16\",\n value: function setUint16(byteOffset, value, littleEndian) {\n this._internalBuffer.setUint16(0, value, littleEndian);\n\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n }\n }, {\n key: \"setUint32\",\n value: function setUint32(byteOffset, value, littleEndian) {\n this._internalBuffer.setUint32(0, value, littleEndian);\n\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n }\n }, {\n key: \"setUint8\",\n value: function setUint8(byteOffset, value) {\n var _this$_findDataViewWi7 = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi8 = _slicedToArray__default[\"default\"](_this$_findDataViewWi7, 2),\n dataView = _this$_findDataViewWi8[0],\n byteOffsetOfDataView = _this$_findDataViewWi8[1];\n\n dataView.setUint8(byteOffset - byteOffsetOfDataView, value);\n }\n }, {\n key: \"_findDataViewWithOffset\",\n value: function _findDataViewWithOffset(byteOffset) {\n var byteOffsetOfDataView = 0;\n\n var _iterator2 = _createForOfIteratorHelper(this._dataViews),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var dataView = _step2.value;\n var byteOffsetOfNextDataView = byteOffsetOfDataView + dataView.byteLength;\n\n if (byteOffset >= byteOffsetOfDataView && byteOffset < byteOffsetOfNextDataView) {\n return [dataView, byteOffsetOfDataView];\n }\n\n byteOffsetOfDataView = byteOffsetOfNextDataView;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n throw new RangeError();\n }\n }]);\n\n return MultiBufferDataView;\n }();\n\n exports.MultiBufferDataView = MultiBufferDataView;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","/**\n * @license React\n * react-dom.production.min.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function t(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new t(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new t(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new t(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new t(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new t(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new t(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new t(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new t(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new t(a,5,!1,a.toLowerCase(),null,!1,!1)});var qa=/[\\-:]([a-z])/g;function ra(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(qa,\nra);z[b]=new t(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new t(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction sa(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Ma=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?La(a):\"\"}\nfunction Oa(a){switch(a.tag){case 5:return La(a.type);case 16:return La(\"Lazy\");case 13:return La(\"Suspense\");case 19:return La(\"SuspenseList\");case 0:case 2:case 15:return a=Na(a.type,!1),a;case 11:return a=Na(a.type.render,!1),a;case 1:return a=Na(a.type,!0),a;default:return\"\"}}\nfunction Pa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case wa:return\"Fragment\";case va:return\"Portal\";case za:return\"Profiler\";case xa:return\"StrictMode\";case Da:return\"Suspense\";case Ea:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ba:return(a.displayName||\"Context\")+\".Consumer\";case Aa:return(a._context.displayName||\"Context\")+\".Provider\";case Ca:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Fa:return b=a.displayName||null,null!==b?b:Pa(a.type)||\"Memo\";case Ga:b=a._payload;a=a._init;try{return Pa(a(b))}catch(c){}}return null}\nfunction Qa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Pa(b);case 8:return b===xa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Ra(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Sa(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ta(a){var b=Sa(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ua(a){a._valueTracker||(a._valueTracker=Ta(a))}function Va(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Sa(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Wa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Xa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Ya(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ra(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Za(a,b){b=b.checked;null!=b&&sa(a,\"checked\",b,!1)}\nfunction $a(a,b){Za(a,b);var c=Ra(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Ra(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Wa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var db=Array.isArray;\nfunction eb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=lb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction nb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar ob={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(ob).forEach(function(a){pb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);ob[b]=ob[a]})});function qb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||ob.hasOwnProperty(a)&&ob[a]?(\"\"+b).trim():b+\"px\"}\nfunction rb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=qb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var sb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction tb(a,b){if(b){if(sb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction ub(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var vb=null;function wb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xb=null,yb=null,zb=null;\nfunction Ab(a){if(a=Bb(a)){if(\"function\"!==typeof xb)throw Error(p(280));var b=a.stateNode;b&&(b=Cb(b),xb(a.stateNode,a.type,b))}}function Db(a){yb?zb?zb.push(a):zb=[a]:yb=a}function Eb(){if(yb){var a=yb,b=zb;zb=yb=null;Ab(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(oc(a)/pc|0)|0}var qc=64,rc=4194304;\nfunction sc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function tc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=sc(h):(f&=g,0!==f&&(d=sc(f)))}else g=c&~e,0!==g?d=sc(g):0!==f&&(d=sc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction zc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-nc(b);a[b]=c}function Ac(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=ae),de=String.fromCharCode(32),ee=!1;\nfunction fe(a,b){switch(a){case \"keyup\":return-1!==Zd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ge(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var he=!1;function ie(a,b){switch(a){case \"compositionend\":return ge(b);case \"keypress\":if(32!==b.which)return null;ee=!0;return de;case \"textInput\":return a=b.data,a===de&&ee?null:a;default:return null}}\nfunction je(a,b){if(he)return\"compositionend\"===a||!$d&&fe(a,b)?(a=md(),ld=kd=jd=null,he=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ie(c)}}function Ke(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ke(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Le(){for(var a=window,b=Wa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Wa(a.document)}return b}function Me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Ne(a){var b=Le(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ke(c.ownerDocument.documentElement,c)){if(null!==d&&Me(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Je(c,f);var g=Je(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Pe=null,Qe=null,Re=null,Se=!1;\nfunction Te(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Se||null==Pe||Pe!==Wa(d)||(d=Pe,\"selectionStart\"in d&&Me(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Re&&He(Re,d)||(Re=d,d=ne(Qe,\"onSelect\"),0Sf||(a.current=Rf[Sf],Rf[Sf]=null,Sf--)}function G(a,b){Sf++;Rf[Sf]=a.current;a.current=b}var Uf={},H=Tf(Uf),Vf=Tf(!1),Wf=Uf;function Xf(a,b){var c=a.type.contextTypes;if(!c)return Uf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Yf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Zf(){E(Vf);E(H)}function $f(a,b,c){if(H.current!==Uf)throw Error(p(168));G(H,b);G(Vf,c)}function ag(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Qa(a)||\"Unknown\",e));return A({},c,d)}\nfunction bg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Uf;Wf=H.current;G(H,a);G(Vf,Vf.current);return!0}function cg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=ag(a,b,Wf),d.__reactInternalMemoizedMergedChildContext=a,E(Vf),E(H),G(H,a)):E(Vf);G(Vf,c)}var dg=null,eg=!1,fg=!1;function gg(a){null===dg?dg=[a]:dg.push(a)}function hg(a){eg=!0;gg(a)}\nfunction ig(){if(!fg&&null!==dg){fg=!0;var a=0,b=C;try{var c=dg;for(C=1;a>=g;e-=g;Yg=1<<32-nc(b)+e|c<m?(x=r,r=null):x=r.sibling;var v=q(e,r,h[m],k);if(null===v){null===r&&(r=x);break}a&&r&&null===v.alternate&&b(e,r);g=f(v,g,m);null===n?l=v:n.sibling=v;n=v;r=x}if(m===h.length)return c(e,r),I&&$g(e,m),l;if(null===r){for(;mr?(x=m,m=null):x=m.sibling;var w=q(e,m,v.value,k);if(null===w){null===m&&(m=x);break}a&&m&&null===w.alternate&&b(e,m);g=f(w,g,r);null===n?l=w:n.sibling=w;n=w;m=x}if(v.done)return c(e,\nm),I&&$g(e,r),l;if(null===m){for(;!v.done;r++,v=h.next())v=u(e,v.value,k),null!==v&&(g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);I&&$g(e,r);return l}for(m=d(e,m);!v.done;r++,v=h.next())v=y(m,e,r,v.value,k),null!==v&&(a&&null!==v.alternate&&m.delete(null===v.key?r:v.key),g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);a&&m.forEach(function(a){return b(e,a)});I&&$g(e,r);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===wa&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ua:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===wa){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ga&&rh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ph(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===wa?(d=xh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=vh(f.type,f.key,f.props,null,a.mode,h),h.ref=ph(a,d,f),h.return=a,a=h)}return g(a);case va:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=wh(f,a.mode,h);d.return=a;a=d}return g(a);case Ga:return l=f._init,J(a,d,l(f._payload),h)}if(db(f))return m(a,d,f,h);if(Ja(f))return w(a,d,f,h);qh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=uh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var yh=sh(!0),zh=sh(!1),Ah={},Bh=Tf(Ah),Ch=Tf(Ah),Dh=Tf(Ah);function Eh(a){if(a===Ah)throw Error(p(174));return a}function Fh(a,b){G(Dh,b);G(Ch,a);G(Bh,Ah);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:kb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=kb(b,a)}E(Bh);G(Bh,b)}function Gh(){E(Bh);E(Ch);E(Dh)}\nfunction Hh(a){Eh(Dh.current);var b=Eh(Bh.current);var c=kb(b,a.type);b!==c&&(G(Ch,a),G(Bh,c))}function Ih(a){Ch.current===a&&(E(Bh),E(Ch))}var K=Tf(0);\nfunction Jh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Kh=[];\nfunction Lh(){for(var a=0;ac?c:4;a(!0);var d=Nh.transition;Nh.transition={};try{a(!1),b()}finally{C=c,Nh.transition=d}}function Bi(){return ai().memoizedState}\nfunction Ci(a,b,c){var d=Kg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};Di(a)?Ei(b,c):(Fi(a,b,c),c=Jg(),a=Lg(a,d,c),null!==a&&Gi(a,b,d))}\nfunction ni(a,b,c){var d=Kg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Di(a))Ei(b,e);else{Fi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ge(h,g))return}catch(k){}finally{}c=Jg();a=Lg(a,d,c);null!==a&&Gi(a,b,d)}}function Di(a){var b=a.alternate;return a===L||null!==b&&b===L}\nfunction Ei(a,b){Qh=Ph=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Fi(a,b,c){Bg(a)?(a=b.interleaved,null===a?(c.next=c,null===vg?vg=[b]:vg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function Gi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Bc(a,c)}}\nvar Yh={readContext:ug,useCallback:O,useContext:O,useEffect:O,useImperativeHandle:O,useInsertionEffect:O,useLayoutEffect:O,useMemo:O,useReducer:O,useRef:O,useState:O,useDebugValue:O,useDeferredValue:O,useTransition:O,useMutableSource:O,useSyncExternalStore:O,useId:O,unstable_isNewReconciler:!1},Vh={readContext:ug,useCallback:function(a,b){$h().memoizedState=[a,void 0===b?null:b];return a},useContext:ug,useEffect:ri,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return pi(4194308,\n4,ui.bind(null,b,a),c)},useLayoutEffect:function(a,b){return pi(4194308,4,a,b)},useInsertionEffect:function(a,b){return pi(4,2,a,b)},useMemo:function(a,b){var c=$h();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=$h();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Ci.bind(null,L,a);return[d.memoizedState,a]},useRef:function(a){var b=\n$h();a={current:a};return b.memoizedState=a},useState:mi,useDebugValue:wi,useDeferredValue:function(a){return $h().memoizedState=a},useTransition:function(){var a=mi(!1),b=a[0];a=Ai.bind(null,a[1]);$h().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=L,e=$h();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===P)throw Error(p(349));0!==(Oh&30)||ki(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ri(hi.bind(null,d,\nf,a),[a]);d.flags|=2048;ii(9,ji.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=$h(),b=P.identifierPrefix;if(I){var c=Zg;var d=Yg;c=(d&~(1<<32-nc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Rh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Nf]=b;a[Of]=d;Ti(a,b,!1,!1);b.stateNode=a;a:{g=ub(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eaj&&(b.flags|=\n128,d=!0,Xi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Jh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Xi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return Q(b),null}else 2*B()-f.renderingStartTime>aj&&1073741824!==c&&(b.flags|=128,d=!0,Xi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=\nB(),b.sibling=null,c=K.current,G(K,d?c&1|2:c&1),b;Q(b);return null;case 22:case 23:return bj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(cj&1073741824)&&(Q(b),b.subtreeFlags&6&&(b.flags|=8192)):Q(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var dj=ta.ReactCurrentOwner,tg=!1;function ej(a,b,c,d){b.child=null===a?zh(b,null,c,d):yh(b,a.child,c,d)}\nfunction fj(a,b,c,d,e){c=c.render;var f=b.ref;sg(b,e);d=Uh(a,b,c,d,f,e);c=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&c&&bh(b);b.flags|=1;ej(a,b,d,e);return b.child}\nfunction hj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!ij(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,jj(a,b,f,d,e);a=vh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:He;if(c(g,d)&&a.ref===b.ref)return gj(a,b,e)}b.flags|=1;a=th(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction jj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(He(f,d)&&a.ref===b.ref)if(tg=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(tg=!0);else return b.lanes=a.lanes,gj(a,b,e)}return kj(a,b,c,d,e)}\nfunction lj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(mj,cj),cj|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=null!==f?f.baseLanes:c,G(mj,cj),cj|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(mj,cj),cj|=a,null;\nelse null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(mj,cj),cj|=d;ej(a,b,e,c);return b.child}function nj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function kj(a,b,c,d,e){var f=Yf(c)?Wf:H.current;f=Xf(b,f);sg(b,e);c=Uh(a,b,c,d,f,e);d=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&d&&bh(b);b.flags|=1;ej(a,b,c,e);return b.child}\nfunction oj(a,b,c,d,e){if(Yf(c)){var f=!0;bg(b)}else f=!1;sg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Og(b,c,d),Qg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=ug(l):(l=Yf(c)?Wf:H.current,l=Xf(b,l));var n=c.getDerivedStateFromProps,u=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;u||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Pg(b,g,d,l);wg=!1;var q=b.memoizedState;g.state=q;Eg(b,d,g,e);k=b.memoizedState;h!==d||q!==k||Vf.current||wg?(\"function\"===typeof n&&(Ig(b,c,n,d),k=b.memoizedState),(h=wg||Ng(b,c,h,d,q,k,l))?(u||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:kg(b.type,h);g.props=l;u=b.pendingProps;q=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=ug(k):(k=Yf(c)?Wf:H.current,k=Xf(b,k));var y=c.getDerivedStateFromProps;(n=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==u||q!==k)&&Pg(b,g,d,k);wg=!1;q=b.memoizedState;g.state=q;Eg(b,d,g,e);var m=b.memoizedState;h!==u||q!==m||Vf.current||wg?(\"function\"===typeof y&&(Ig(b,c,y,d),m=b.memoizedState),(l=wg||Ng(b,c,l,d,q,m,k)||!1)?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,m,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,m,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=m),g.props=d,g.state=m,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),d=!1)}return pj(a,b,c,d,f,e)}\nfunction pj(a,b,c,d,e,f){nj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&cg(b,c,!1),gj(a,b,f);d=b.stateNode;dj.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=yh(b,a.child,null,f),b.child=yh(b,null,h,f)):ej(a,b,h,f);b.memoizedState=d.state;e&&cg(b,c,!0);return b.child}function qj(a){var b=a.stateNode;b.pendingContext?$f(a,b.pendingContext,b.pendingContext!==b.context):b.context&&$f(a,b.context,!1);Fh(a,b.containerInfo)}\nfunction rj(a,b,c,d,e){nh();oh(e);b.flags|=256;ej(a,b,c,d);return b.child}var sj={dehydrated:null,treeContext:null,retryLane:0};function tj(a){return{baseLanes:a,cachePool:null,transitions:null}}function uj(a,b){return{baseLanes:a.baseLanes|b,cachePool:null,transitions:a.transitions}}\nfunction vj(a,b,c){var d=b.pendingProps,e=K.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(K,e&1);if(null===a){kh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=wj(e,d,0,null),a=xh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=tj(c),b.memoizedState=sj,a):xj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,yj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=wj({mode:\"visible\",children:d.children},e,0,null);f=xh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&yh(b,a.child,\nnull,c);b.child.memoizedState=tj(c);b.memoizedState=sj;return f}if(0===(b.mode&1))b=yj(a,b,c,null);else if(\"$!\"===h.data)b=yj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),tg||d){d=P;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Lg(a,d,-1))}$i();b=yj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=zj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,eh=Kf(h.nextSibling),dh=b,I=!0,fh=null,null!==c&&(Vg[Wg++]=Yg,Vg[Wg++]=Zg,Vg[Wg++]=Xg,Yg=c.id,Zg=c.overflow,Xg=b),b=xj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}function xj(a,b){b=wj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}\nfunction Bj(a,b,c,d){var e=a.child;a=e.sibling;c=th(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction Aj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=th(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=th(g,d):(d=xh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yj(a,b,c,d){null!==d&&oh(d);yh(b,a.child,null,c);a=xj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction Cj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);rg(a.return,b,c)}function Dj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction Ej(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;ej(a,b,d.children,c);d=K.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Cj(a,c,b);else if(19===a.tag)Cj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(K,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Jh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Dj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Jh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Dj(b,!0,c,null,f);break;case \"together\":Dj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction gj(a,b,c){null!==a&&(b.dependencies=a.dependencies);Fg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=th(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=th(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction Fj(a,b,c){switch(b.tag){case 3:qj(b);nh();break;case 5:Hh(b);break;case 1:Yf(b.type)&&bg(b);break;case 4:Fh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(lg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(K,K.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return vj(a,b,c);G(K,K.current&1);a=gj(a,b,c);return null!==a?a.sibling:null}G(K,K.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return Ej(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(K,K.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,lj(a,b,c)}return gj(a,b,c)}\nfunction Gj(a,b){ch(b);switch(b.tag){case 1:return Yf(b.type)&&Zf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Gh(),E(Vf),E(H),Lh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Ih(b),null;case 13:E(K);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));nh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(K),null;case 4:return Gh(),null;case 10:return qg(b.type._context),null;case 22:case 23:return bj(),\nnull;case 24:return null;default:return null}}var Hj=!1,S=!1,Ij=\"function\"===typeof WeakSet?WeakSet:Set,T=null;function Jj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){U(a,b,d)}else c.current=null}function Kj(a,b,c){try{c()}catch(d){U(a,b,d)}}var Lj=!1;\nfunction Mj(a,b){Bf=cd;a=Le();if(Me(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(Z){c=null;break a}var g=0,h=-1,k=-1,l=0,n=0,u=a,q=null;b:for(;;){for(var y;;){u!==c||0!==e&&3!==u.nodeType||(h=g+e);u!==f||0!==d&&3!==u.nodeType||(k=g+d);3===u.nodeType&&(g+=\nu.nodeValue.length);if(null===(y=u.firstChild))break;q=u;u=y}for(;;){if(u===a)break b;q===c&&++l===e&&(h=g);q===f&&++n===d&&(k=g);if(null!==(y=u.nextSibling))break;u=q;q=u.parentNode}u=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Cf={focusedElem:a,selectionRange:c};cd=!1;for(T=b;null!==T;)if(b=T,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,T=a;else for(;null!==T;){b=T;try{var m=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==m){var w=m.memoizedProps,J=m.memoizedState,v=b.stateNode,x=v.getSnapshotBeforeUpdate(b.elementType===b.type?w:kg(b.type,w),J);v.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var r=b.stateNode.containerInfo;if(1===r.nodeType)r.textContent=\"\";else if(9===r.nodeType){var F=r.body;null!=F&&(F.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(Z){U(b,b.return,Z)}a=b.sibling;if(null!==a){a.return=b.return;T=a;break}T=b.return}m=Lj;Lj=!1;return m}\nfunction Nj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Kj(b,c,f)}e=e.next}while(e!==d)}}function Oj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Pj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Qj(a){var b=a.alternate;null!==b&&(a.alternate=null,Qj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Nf],delete b[Of],delete b[nf],delete b[Pf],delete b[Qf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Rj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Sj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Rj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Tj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Af));else if(4!==d&&(a=a.child,null!==a))for(Tj(a,b,c),a=a.sibling;null!==a;)Tj(a,b,c),a=a.sibling}\nfunction Uj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Uj(a,b,c),a=a.sibling;null!==a;)Uj(a,b,c),a=a.sibling}var V=null,Vj=!1;function Wj(a,b,c){for(c=c.child;null!==c;)Xj(a,b,c),c=c.sibling}\nfunction Xj(a,b,c){if(kc&&\"function\"===typeof kc.onCommitFiberUnmount)try{kc.onCommitFiberUnmount(jc,c)}catch(h){}switch(c.tag){case 5:S||Jj(c,b);case 6:var d=V,e=Vj;V=null;Wj(a,b,c);V=d;Vj=e;null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):V.removeChild(c.stateNode));break;case 18:null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?Jf(a.parentNode,c):1===a.nodeType&&Jf(a,c),ad(a)):Jf(V,c.stateNode));break;case 4:d=V;e=Vj;V=c.stateNode.containerInfo;Vj=!0;\nWj(a,b,c);V=d;Vj=e;break;case 0:case 11:case 14:case 15:if(!S&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Kj(c,b,g):0!==(f&4)&&Kj(c,b,g));e=e.next}while(e!==d)}Wj(a,b,c);break;case 1:if(!S&&(Jj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){U(c,b,h)}Wj(a,b,c);break;case 21:Wj(a,b,c);break;case 22:c.mode&1?(S=(d=S)||null!==\nc.memoizedState,Wj(a,b,c),S=d):Wj(a,b,c);break;default:Wj(a,b,c)}}function Yj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ij);b.forEach(function(b){var d=Zj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ak(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*jk(d/1960))-d;if(10a?16:a;if(null===uk)var d=!1;else{a=uk;uk=null;vk=0;if(0!==(W&6))throw Error(p(331));var e=W;W|=4;for(T=a.current;null!==T;){var f=T,g=f.child;if(0!==(T.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-dk?Jk(a,0):pk|=c);Ck(a,b)}function Xk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=rc,rc<<=1,0===(rc&130023424)&&(rc=4194304)));var c=Jg();a=Ak(a,b);null!==a&&(zc(a,b,c),Ck(a,c))}function zj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Xk(a,c)}\nfunction Zj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Xk(a,c)}var Uk;\nUk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Vf.current)tg=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return tg=!1,Fj(a,b,c);tg=0!==(a.flags&131072)?!0:!1}else tg=!1,I&&0!==(b.flags&1048576)&&ah(b,Ug,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Xf(b,H.current);sg(b,c);e=Uh(null,b,d,a,e,c);var f=Zh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Yf(d)?(f=!0,bg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,xg(b),e.updater=Mg,b.stateNode=e,e._reactInternals=b,Qg(b,d,a,c),b=pj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&bh(b),ej(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Yk(d);a=kg(d,a);switch(e){case 0:b=kj(null,b,d,a,c);break a;case 1:b=oj(null,b,\nd,a,c);break a;case 11:b=fj(null,b,d,a,c);break a;case 14:b=hj(null,b,d,kg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),kj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),oj(a,b,d,e,c);case 3:a:{qj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;yg(a,b);Eg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=rj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=rj(a,b,d,c,e);break a}else for(eh=Kf(b.stateNode.containerInfo.firstChild),dh=b,I=!0,fh=null,c=zh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{nh();if(d===e){b=gj(a,b,c);break a}ej(a,b,d,c)}b=b.child}return b;case 5:return Hh(b),null===a&&kh(b),d=b.type,e=\nb.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Df(d,e)?g=null:null!==f&&Df(d,f)&&(b.flags|=32),nj(a,b),ej(a,b,g,c),b.child;case 6:return null===a&&kh(b),null;case 13:return vj(a,b,c);case 4:return Fh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=yh(b,null,d,c):ej(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),fj(a,b,d,e,c);case 7:return ej(a,b,b.pendingProps,c),b.child;case 8:return ej(a,b,b.pendingProps.children,c),b.child;case 12:return ej(a,\nb,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;G(lg,d._currentValue);d._currentValue=g;if(null!==f)if(Ge(f.value,g)){if(f.children===e.children&&!Vf.current){b=gj(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=zg(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var n=l.pending;null===n?k.next=\nk:(k.next=n.next,n.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);rg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);rg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}ej(a,b,e.children,c);b=b.child}return b;\ncase 9:return e=b.type,d=b.pendingProps.children,sg(b,c),e=ug(e),d=d(e),b.flags|=1,ej(a,b,d,c),b.child;case 14:return d=b.type,e=kg(d,b.pendingProps),e=kg(d.type,e),hj(a,b,d,e,c);case 15:return jj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Yf(d)?(a=!0,bg(b)):a=!1,sg(b,c),Og(b,d,e),Qg(b,d,e,c),pj(null,b,d,!0,a,c);case 19:return Ej(a,b,c);case 22:return lj(a,b,c)}throw Error(p(156,\nb.tag));};function Ek(a,b){return $b(a,b)}function Zk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function hh(a,b,c,d){return new Zk(a,b,c,d)}\nfunction ij(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Yk(a){if(\"function\"===typeof a)return ij(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ca)return 11;if(a===Fa)return 14}return 2}\nfunction th(a,b){var c=a.alternate;null===c?(c=hh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction vh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ij(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case wa:return xh(c.children,e,f,b);case xa:g=8;e|=8;break;case za:return a=hh(12,c,b,e|2),a.elementType=za,a.lanes=f,a;case Da:return a=hh(13,c,b,e),a.elementType=Da,a.lanes=f,a;case Ea:return a=hh(19,c,b,e),a.elementType=Ea,a.lanes=f,a;case Ha:return wj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Aa:g=10;break a;case Ba:g=9;break a;case Ca:g=11;\nbreak a;case Fa:g=14;break a;case Ga:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=hh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function xh(a,b,c,d){a=hh(7,a,d,b);a.lanes=c;return a}function wj(a,b,c,d){a=hh(22,a,d,b);a.elementType=Ha;a.lanes=c;a.stateNode={};return a}function uh(a,b,c){a=hh(6,a,null,b);a.lanes=c;return a}\nfunction wh(a,b,c){b=hh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction $k(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=yc(0);this.expirationTimes=yc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=yc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function al(a,b,c,d,e,f,g,h,k){a=new $k(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=hh(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};xg(f);return a}function bl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","module.exports = require(\"./lib\");\n","\"use strict\";var __awaiter=(this&&this.__awaiter)||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value);});}\nreturn new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value));}catch(e){reject(e);}}\nfunction rejected(value){try{step(generator[\"throw\"](value));}catch(e){reject(e);}}\nfunction step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected);}\nstep((generator=generator.apply(thisArg,_arguments||[])).next());});};var __generator=(this&&this.__generator)||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}\nfunction step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}\nif(op[0]===3&&(!t||(op[1]>t[0]&&op[1]0){console.error(\"The constraints \".concat(unSupportedConstraints.join(\",\"),\" doesn't support on this browser. Please check your ReactMediaRecorder component.\"));}};if(typeof audio===\"object\"){checkConstraints(audio);}\nif(typeof video===\"object\"){checkConstraints(video);}\nif(mediaRecorderOptions&&mediaRecorderOptions.mimeType){if(!MediaRecorder.isTypeSupported(mediaRecorderOptions.mimeType)){console.error(\"The specified MIME type you supplied for MediaRecorder doesn't support this browser\");}}\nif(!mediaStream.current&&askPermissionOnMount){getMediaStream();}\nreturn function(){if(mediaStream.current){var tracks=mediaStream.current.getTracks();tracks.forEach(function(track){return track.clone().stop();});}};},[audio,screen,video,getMediaStream,mediaRecorderOptions,askPermissionOnMount,]);var startRecording=function(){return __awaiter(_this,void 0,void 0,function(){var isStreamEnded;return __generator(this,function(_a){switch(_a.label){case 0:setError(\"NONE\");if(!!mediaStream.current)return[3,2];return[4,getMediaStream()];case 1:_a.sent();_a.label=2;case 2:if(!mediaStream.current)return[3,5];isStreamEnded=mediaStream.current.getTracks().some(function(track){return track.readyState===\"ended\";});if(!isStreamEnded)return[3,4];return[4,getMediaStream()];case 3:_a.sent();_a.label=4;case 4:if(!mediaStream.current.active){return[2];}\nmediaRecorder.current=new extendable_media_recorder_1.MediaRecorder(mediaStream.current,mediaRecorderOptions||undefined);mediaRecorder.current.ondataavailable=onRecordingActive;mediaRecorder.current.onstop=onRecordingStop;mediaRecorder.current.onstart=onRecordingStart;mediaRecorder.current.onerror=function(){setError(\"NO_RECORDER\");setStatus(\"idle\");};mediaRecorder.current.start();setStatus(\"recording\");_a.label=5;case 5:return[2];}});});};var onRecordingActive=function(_a){var data=_a.data;mediaChunks.current.push(data);};var onRecordingStart=function(){onStart();};var onRecordingStop=function(){var chunk=mediaChunks.current[0];var blobProperty=Object.assign({type:chunk.type},blobPropertyBag||(video?{type:\"video/mp4\"}:{type:\"audio/wav\"}));var blob=new Blob(mediaChunks.current,blobProperty);var url=URL.createObjectURL(blob);setStatus(\"stopped\");setMediaBlobUrl(url);onStop(url,blob);};var muteAudio=function(mute){setIsAudioMuted(mute);if(mediaStream.current){mediaStream.current.getAudioTracks().forEach(function(audioTrack){return(audioTrack.enabled=!mute);});}};var pauseRecording=function(){if(mediaRecorder.current&&mediaRecorder.current.state===\"recording\"){setStatus(\"paused\");mediaRecorder.current.pause();}};var resumeRecording=function(){if(mediaRecorder.current&&mediaRecorder.current.state===\"paused\"){setStatus(\"recording\");mediaRecorder.current.resume();}};var stopRecording=function(){if(mediaRecorder.current){if(mediaRecorder.current.state!==\"inactive\"){setStatus(\"stopping\");mediaRecorder.current.stop();if(stopStreamsOnStop){mediaStream.current&&mediaStream.current.getTracks().forEach(function(track){return track.stop();});}\nmediaChunks.current=[];}}};return{error:RecorderErrors[error],muteAudio:function(){return muteAudio(true);},unMuteAudio:function(){return muteAudio(false);},startRecording:startRecording,pauseRecording:pauseRecording,resumeRecording:resumeRecording,stopRecording:stopRecording,mediaBlobUrl:mediaBlobUrl,status:status,isAudioMuted:isAudioMuted,previewStream:mediaStream.current?new MediaStream(mediaStream.current.getVideoTracks()):null,previewAudioStream:mediaStream.current?new MediaStream(mediaStream.current.getAudioTracks()):null,clearBlobUrl:function(){if(mediaBlobUrl){URL.revokeObjectURL(mediaBlobUrl);}\nsetMediaBlobUrl(undefined);setStatus(\"idle\");},};}\nexports.useReactMediaRecorder=useReactMediaRecorder;var ReactMediaRecorder=function(props){return props.render(useReactMediaRecorder(props));};exports.ReactMediaRecorder=ReactMediaRecorder;","module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=9)}([function(e,t){e.exports=require(\"react\")},function(e,t,r){var n;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/!function(){\"use strict\";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t=o?a:o)),r=a,t=h(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||a||Function(\"return this\")();var i,u=Array.prototype,c=Function.prototype,s=Object.prototype,l=o[\"__core-js_shared__\"],f=(i=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+i:\"\",d=c.toString,p=s.hasOwnProperty,h=s.toString,m=RegExp(\"^\"+d.call(p).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),y=u.splice,b=x(o,\"Map\"),g=x(Object,\"create\");function v(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},C.prototype.set=function(e,t){var r=this.__data__,n=w(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(b||C),string:new v}},_.prototype.delete=function(e){return j(this,e).delete(e)},_.prototype.get=function(e){return j(this,e).get(e)},_.prototype.has=function(e){return j(this,e).has(e)},_.prototype.set=function(e,t){return j(this,e).set(e,t),this},N.Cache=_,e.exports=N}).call(this,r(3))},function(e,t,r){(function(t){var r=/^\\s+|\\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")(),l=Object.prototype.toString,f=Math.max,d=Math.min,p=function(){return s.Date.now()};function h(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function m(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==l.call(e)}(e))return NaN;if(h(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(r,\"\");var u=a.test(e);return u||o.test(e)?i(e.slice(2),u?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,r){var n,a,o,i,u,c,s=0,l=!1,y=!1,b=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function g(t){var r=n,o=a;return n=a=void 0,s=t,i=e.apply(o,r)}function v(e){return s=e,u=setTimeout(_,t),l?g(e):i}function C(e){var r=e-c;return void 0===c||r>=t||r<0||y&&e-s>=o}function _(){var e=p();if(C(e))return w(e);u=setTimeout(_,function(e){var r=t-(e-c);return y?d(r,o-(e-s)):r}(e))}function w(e){return u=void 0,b&&n?g(e):(n=a=void 0,i)}function S(){var e=p(),r=C(e);if(n=arguments,a=this,c=e,r){if(void 0===u)return v(c);if(y)return u=setTimeout(_,t),g(c)}return void 0===u&&(u=setTimeout(_,t)),i}return t=m(t)||0,h(r)&&(l=!!r.leading,o=(y=\"maxWait\"in r)?f(m(r.maxWait)||0,t):o,b=\"trailing\"in r?!!r.trailing:b),S.cancel=function(){void 0!==u&&clearTimeout(u),s=0,n=c=a=u=void 0},S.flush=function(){return void 0===u?i:w(p())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=\"[object Arguments]\",a=\"[object Map]\",o=\"[object Object]\",i=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,s=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,f=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,h={};h[\"[object Float32Array]\"]=h[\"[object Float64Array]\"]=h[\"[object Int8Array]\"]=h[\"[object Int16Array]\"]=h[\"[object Int32Array]\"]=h[\"[object Uint8Array]\"]=h[\"[object Uint8ClampedArray]\"]=h[\"[object Uint16Array]\"]=h[\"[object Uint32Array]\"]=!0,h[n]=h[\"[object Array]\"]=h[\"[object ArrayBuffer]\"]=h[\"[object Boolean]\"]=h[\"[object DataView]\"]=h[\"[object Date]\"]=h[\"[object Error]\"]=h[\"[object Function]\"]=h[a]=h[\"[object Number]\"]=h[o]=h[\"[object RegExp]\"]=h[i]=h[\"[object String]\"]=h[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,y=\"object\"==typeof self&&self&&self.Object===Object&&self,b=m||y||Function(\"return this\")(),g=t&&!t.nodeType&&t,v=g&&\"object\"==typeof r&&r&&!r.nodeType&&r,C=v&&v.exports===g&&m.process,_=function(){try{return C&&C.binding(\"util\")}catch(e){}}(),w=_&&_.isTypedArray;function S(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},ue.prototype.set=function(e,t){var r=this.__data__,n=de(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ce.prototype.clear=function(){this.__data__={hash:new ie,map:new(H||ue),string:new ie}},ce.prototype.delete=function(e){return xe(this,e).delete(e)},ce.prototype.get=function(e){return xe(this,e).get(e)},ce.prototype.has=function(e){return xe(this,e).has(e)},ce.prototype.set=function(e,t){return xe(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ue},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ue){var n=r.__data__;if(!H||n.length<199)return n.push([e,t]),this;r=this.__data__=new ce(n)}return r.set(e,t),this};var pe,he,me=(pe=function(e,t){return e&&ye(e,t,qe)},function(e,t){if(null==e)return e;if(!ze(e))return pe(e,t);for(var r=e.length,n=he?r:-1,a=Object(e);(he?n--:++nu))return!1;var s=o.get(e);if(s&&o.get(t))return s==t;var l=-1,f=!0,d=1&a?new se:void 0;for(o.set(e,t),o.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function $e(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function Ve(e){return!!e&&\"object\"==typeof e}function Ke(e){return\"symbol\"==typeof e||Ve(e)&&\"[object Symbol]\"==z.call(e)}var Ue=w?function(e){return function(t){return e(t)}}(w):function(e){return Ve(e)&&Ge(e.length)&&!!h[z.call(e)]};function qe(e){return ze(e)?fe(e):we(e)}function He(e){return e}r.exports=function(e,t,r){var n=Le(e)?S:x,a=arguments.length<3;return n(e,_e(t),r,a,me)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;if(document.activeElement===e){e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)}},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.onlyCountries,o=t.selectedCountry,i=r.concatPreferredCountries(n,a).findIndex((function(e){return e.dialCode===o.dialCode&&e.iso2===o.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:i},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p&&p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=e.target.selectionStart,g=r.state.formattedNumber,v=i.length-g.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){v>0&&(b-=v),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):b>0&&g.length>=i.length?r.numberInputRef.setSelectionRange(b,b):y1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u,searchValue:\"\"},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=r.concatPreferredCountries(a,u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.concatPreferredCountries=function(e,t){return e.length>0?o(new Set(e.concat(t))):t},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=r.concatPreferredCountries(t,n),c=a.trim().toLowerCase().replace(\"+\",\"\");if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e=r.state,t=e.preferredCountries,a=e.highlightCountryIndex,o=e.showDropdown,i=e.searchValue,u=r.props,c=u.disableDropdown,s=u.prefix,l=r.props,f=l.enableSearch,d=l.searchNotFound,p=l.disableSearchIcon,h=l.searchClass,m=l.searchStyle,b=l.searchPlaceholder,g=l.autocompleteSearch,v=r.getSearchFilteredCountries().map((function(e,t){var n=a===t,o=N()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:o,\"data-dial-code\":\"1\",tabIndex:c?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):s+e.dialCode))})),C=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});t.length>0&&(!f||f&&!i.trim())&&v.splice(t.length,0,C);var _=N()(n({\"country-list\":!0,hide:!o},r.props.dropdownClass,!0));return y.a.createElement(\"ul\",{ref:function(e){return!f&&e&&e.focus(),r.dropdownRef=e},className:_,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},f&&y.a.createElement(\"li\",{className:N()(n({search:!0},h,h))},!p&&y.a.createElement(\"span\",{className:N()(n({\"search-emoji\":!0},\"\".concat(h,\"-emoji\"),h)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:N()(n({\"search-box\":!0},\"\".concat(h,\"-box\"),h)),style:m,type:\"search\",placeholder:b,autoFocus:!0,autoComplete:g?\"on\":\"off\",value:i,onChange:r.handleSearchChange})),v.length>0?v:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,d)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside),this.props.onMount&&this.props.onMount(this.state.formattedNumber.replace(/[^0-9]+/g,\"\"),this.getCountryData(),this.state.formattedNumber)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a=this,o=this.state,i=o.onlyCountries,u=o.selectedCountry,c=o.showDropdown,s=o.formattedNumber,l=o.hiddenAreaCodes,f=this.props,d=f.disableDropdown,p=f.renderStringAsFlag,h=f.isValid,m=f.defaultErrorMessage,b=f.specialLabel;if(\"boolean\"==typeof h)t=h;else{var g=h(s.replace(/\\D/g,\"\"),u,i,l);\"boolean\"==typeof g?!1===(t=g)&&(r=m):(t=!1,r=g)}var v=N()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),C=N()({arrow:!0,up:c}),_=N()(n({\"form-control\":!0,\"invalid-number\":!t,open:c},this.props.inputClass,!0)),w=N()({\"selected-flag\":!0,open:c}),S=N()(n({\"flag-dropdown\":!0,\"invalid-number\":!t,open:c},this.props.buttonClass,!0)),j=\"flag \".concat(u&&u.iso2);return y.a.createElement(\"div\",{className:\"\".concat(v,\" \").concat(this.props.className),style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},b&&y.a.createElement(\"div\",{className:\"special-label\"},b),r&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},r),y.a.createElement(\"input\",Object.assign({className:_,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:s,onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps,{ref:function(e){a.numberInputRef=e,\"function\"==typeof a.props.inputProps.ref?a.props.inputProps.ref(e):\"object\"==typeof a.props.inputProps.ref&&(a.props.inputProps.ref.current=e)}})),y.a.createElement(\"div\",{className:S,style:this.props.buttonStyle,ref:function(e){return a.dropdownContainerRef=e}},p?y.a.createElement(\"div\",{className:w},p):y.a.createElement(\"div\",{onClick:d?void 0:this.handleFlagDropdownClick,className:w,title:u?\"\".concat(u.localName||u.name,\": + \").concat(u.dialCode):\"\",tabIndex:d?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!c||void 0},y.a.createElement(\"div\",{className:j},!d&&y.a.createElement(\"div\",{className:C}))),c&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",className:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { getDefaultState } from './mutation';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var MutationObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationObserver, _Subscribable);\n\n function MutationObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n\n _this.setOptions(options);\n\n _this.bindMethods();\n\n _this.updateResult();\n\n return _this;\n }\n\n var _proto = MutationObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n };\n\n _proto.setOptions = function setOptions(options) {\n this.options = this.client.defaultMutationOptions(options);\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n var _this$currentMutation;\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.removeObserver(this);\n }\n };\n\n _proto.onMutationUpdate = function onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n var notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.reset = function reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n };\n\n _proto.mutate = function mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, _extends({}, this.options, {\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n }));\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n };\n\n _proto.updateResult = function updateResult() {\n var state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n\n var result = _extends({}, state, {\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n });\n\n this.currentResult = result;\n };\n\n _proto.notify = function notify(options) {\n var _this2 = this;\n\n notifyManager.batch(function () {\n // First trigger the mutate callbacks\n if (_this2.mutateOptions) {\n if (options.onSuccess) {\n _this2.mutateOptions.onSuccess == null ? void 0 : _this2.mutateOptions.onSuccess(_this2.currentResult.data, _this2.currentResult.variables, _this2.currentResult.context);\n _this2.mutateOptions.onSettled == null ? void 0 : _this2.mutateOptions.onSettled(_this2.currentResult.data, null, _this2.currentResult.variables, _this2.currentResult.context);\n } else if (options.onError) {\n _this2.mutateOptions.onError == null ? void 0 : _this2.mutateOptions.onError(_this2.currentResult.error, _this2.currentResult.variables, _this2.currentResult.context);\n _this2.mutateOptions.onSettled == null ? void 0 : _this2.mutateOptions.onSettled(undefined, _this2.currentResult.error, _this2.currentResult.variables, _this2.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n _this2.listeners.forEach(function (listener) {\n listener(_this2.currentResult);\n });\n }\n });\n };\n\n return MutationObserver;\n}(Subscribable);","export function shouldThrowError(suspense, _useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary.apply(void 0, params);\n } // Allow useErrorBoundary to override suspense's throwing behavior\n\n\n if (typeof _useErrorBoundary === 'boolean') return _useErrorBoundary; // If suspense is enabled default to throwing errors\n\n return !!suspense;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { noop, parseMutationArgs } from '../core/utils';\nimport { MutationObserver } from '../core/mutationObserver';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils'; // HOOK\n\nexport function useMutation(arg1, arg2, arg3) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var options = parseMutationArgs(arg1, arg2, arg3);\n var queryClient = useQueryClient();\n var obsRef = React.useRef();\n\n if (!obsRef.current) {\n obsRef.current = new MutationObserver(queryClient, options);\n } else {\n obsRef.current.setOptions(options);\n }\n\n var currentResult = obsRef.current.getCurrentResult();\n React.useEffect(function () {\n mountedRef.current = true;\n var unsubscribe = obsRef.current.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n }));\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, []);\n var mutate = React.useCallback(function (variables, mutateOptions) {\n obsRef.current.mutate(variables, mutateOptions).catch(noop);\n }, []);\n\n if (currentResult.error && shouldThrowError(undefined, obsRef.current.options.useErrorBoundary, [currentResult.error])) {\n throw currentResult.error;\n }\n\n return _extends({}, currentResult, {\n mutate: mutate,\n mutateAsync: currentResult.mutate\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.selectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n var value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","import React from 'react'; // CONTEXT\n\nfunction createValue() {\n var _isReset = false;\n return {\n clearReset: function clearReset() {\n _isReset = false;\n },\n reset: function reset() {\n _isReset = true;\n },\n isReset: function isReset() {\n return _isReset;\n }\n };\n}\n\nvar QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nexport var useQueryErrorResetBoundary = function useQueryErrorResetBoundary() {\n return React.useContext(QueryErrorResetBoundaryContext);\n}; // COMPONENT\n\nexport var QueryErrorResetBoundary = function QueryErrorResetBoundary(_ref) {\n var children = _ref.children;\n var value = React.useMemo(function () {\n return createValue();\n }, []);\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};","import React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils';\nexport function useBaseQuery(options, Observer) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var queryClient = useQueryClient();\n var errorResetBoundary = useQueryErrorResetBoundary();\n var defaultedOptions = queryClient.defaultQueryObserverOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions.optimisticResults = true; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n } // Set cache time to 1 if the option has been set to 0\n // when using suspense to prevent infinite loop of fetches\n\n\n if (defaultedOptions.cacheTime === 0) {\n defaultedOptions.cacheTime = 1;\n }\n }\n\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n\n var _React$useState2 = React.useState(function () {\n return new Observer(queryClient, defaultedOptions);\n }),\n observer = _React$useState2[0];\n\n var result = observer.getOptimisticResult(defaultedOptions);\n React.useEffect(function () {\n mountedRef.current = true;\n errorResetBoundary.clearReset();\n var unsubscribe = observer.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n })); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, [errorResetBoundary, observer]);\n React.useEffect(function () {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (defaultedOptions.suspense && result.isLoading) {\n throw observer.fetchOptimistic(defaultedOptions).then(function (_ref) {\n var data = _ref.data;\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n }).catch(function (error) {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n });\n } // Handle error boundary\n\n\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.suspense, defaultedOptions.useErrorBoundary, [result.error, observer.getCurrentQuery()])) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n if (defaultedOptions.notifyOnChangeProps === 'tracked') {\n result = observer.trackResult(result, defaultedOptions);\n }\n\n return result;\n}","import { QueryObserver } from '../core';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { QueryObserver } from './queryObserver';\nimport { hasNextPage, hasPreviousPage, infiniteQueryBehavior } from './infiniteQueryBehavior';\nexport var InfiniteQueryObserver = /*#__PURE__*/function (_QueryObserver) {\n _inheritsLoose(InfiniteQueryObserver, _QueryObserver);\n\n // Type override\n // Type override\n // Type override\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n function InfiniteQueryObserver(client, options) {\n return _QueryObserver.call(this, client, options) || this;\n }\n\n var _proto = InfiniteQueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n _QueryObserver.prototype.bindMethods.call(this);\n\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n _QueryObserver.prototype.setOptions.call(this, _extends({}, options, {\n behavior: infiniteQueryBehavior()\n }), notifyOptions);\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return _QueryObserver.prototype.getOptimisticResult.call(this, options);\n };\n\n _proto.fetchNextPage = function fetchNextPage(options) {\n var _options$cancelRefetc;\n\n return this.fetch({\n // TODO consider removing `?? true` in future breaking change, to be consistent with `refetch` API (see https://github.com/tannerlinsley/react-query/issues/2617)\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n throwOnError: options == null ? void 0 : options.throwOnError,\n meta: {\n fetchMore: {\n direction: 'forward',\n pageParam: options == null ? void 0 : options.pageParam\n }\n }\n });\n };\n\n _proto.fetchPreviousPage = function fetchPreviousPage(options) {\n var _options$cancelRefetc2;\n\n return this.fetch({\n // TODO consider removing `?? true` in future breaking change, to be consistent with `refetch` API (see https://github.com/tannerlinsley/react-query/issues/2617)\n cancelRefetch: (_options$cancelRefetc2 = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc2 : true,\n throwOnError: options == null ? void 0 : options.throwOnError,\n meta: {\n fetchMore: {\n direction: 'backward',\n pageParam: options == null ? void 0 : options.pageParam\n }\n }\n });\n };\n\n _proto.createResult = function createResult(query, options) {\n var _state$data, _state$data2, _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet;\n\n var state = query.state;\n\n var result = _QueryObserver.prototype.createResult.call(this, query, options);\n\n return _extends({}, result, {\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),\n hasPreviousPage: hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),\n isFetchingNextPage: state.isFetching && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward',\n isFetchingPreviousPage: state.isFetching && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward'\n });\n };\n\n return InfiniteQueryObserver;\n}(QueryObserver);","import { InfiniteQueryObserver } from '../core/infiniteQueryObserver';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useInfiniteQuery(arg1, arg2, arg3) {\n var options = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(options, InfiniteQueryObserver);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","import React from 'react'\n\nlet renderErr = 'Renderer Error ☝️'\n\nexport const actions = {\n init: 'init',\n}\n\nexport const defaultRenderer = ({ value = '' }) => value;\nexport const emptyRenderer = () => <> ;\n\nexport const defaultColumn = {\n Cell: defaultRenderer,\n width: 150,\n minWidth: 0,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nfunction mergeProps(...propList) {\n return propList.reduce((props, next) => {\n const { style, className, ...rest } = next\n\n props = {\n ...props,\n ...rest,\n }\n\n if (style) {\n props.style = props.style\n ? { ...(props.style || {}), ...(style || {}) }\n : style\n }\n\n if (className) {\n props.className = props.className\n ? props.className + ' ' + className\n : className\n }\n\n if (props.className === '') {\n delete props.className\n }\n\n return props\n }, {})\n}\n\nfunction handlePropGetter(prevProps, userProps, meta) {\n // Handle a lambda, pass it the previous props\n if (typeof userProps === 'function') {\n return handlePropGetter({}, userProps(prevProps, meta))\n }\n\n // Handle an array, merge each item as separate props\n if (Array.isArray(userProps)) {\n return mergeProps(prevProps, ...userProps)\n }\n\n // Handle an object by default, merge the two objects\n return mergeProps(prevProps, userProps)\n}\n\nexport const makePropGetter = (hooks, meta = {}) => {\n return (userProps = {}) =>\n [...hooks, userProps].reduce(\n (prev, next) =>\n handlePropGetter(prev, next, {\n ...meta,\n userProps,\n }),\n {}\n )\n}\n\nexport const reduceHooks = (hooks, initial, meta = {}, allowUndefined) =>\n hooks.reduce((prev, next) => {\n const nextValue = next(prev, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (!allowUndefined && typeof nextValue === 'undefined') {\n console.info(next)\n throw new Error(\n 'React Table: A reducer hook ☝️ just returned undefined! This is not allowed.'\n )\n }\n }\n return nextValue\n }, initial)\n\nexport const loopHooks = (hooks, context, meta = {}) =>\n hooks.forEach(hook => {\n const nextValue = hook(context, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (typeof nextValue !== 'undefined') {\n console.info(hook, nextValue)\n throw new Error(\n 'React Table: A loop-type hook ☝️ just returned a value! This is not allowed.'\n )\n }\n }\n })\n\nexport function ensurePluginOrder(plugins, befores, pluginName, afters) {\n if (process.env.NODE_ENV !== 'production' && afters) {\n throw new Error(\n `Defining plugins in the \"after\" section of ensurePluginOrder is no longer supported (see plugin ${pluginName})`\n )\n }\n const pluginIndex = plugins.findIndex(\n plugin => plugin.pluginName === pluginName\n )\n\n if (pluginIndex === -1) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`The plugin \"${pluginName}\" was not found in the plugin list!\nThis usually means you need to need to name your plugin hook by setting the 'pluginName' property of the hook function, eg:\n\n ${pluginName}.pluginName = '${pluginName}'\n`)\n }\n }\n\n befores.forEach(before => {\n const beforeIndex = plugins.findIndex(\n plugin => plugin.pluginName === before\n )\n if (beforeIndex > -1 && beforeIndex > pluginIndex) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `React Table: The ${pluginName} plugin hook must be placed after the ${before} plugin hook!`\n )\n }\n }\n })\n}\n\nexport function functionalUpdate(updater, old) {\n return typeof updater === 'function' ? updater(old) : updater\n}\n\nexport function useGetLatest(obj) {\n const ref = React.useRef()\n ref.current = obj\n\n return React.useCallback(() => ref.current, [])\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn, deps) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useAsyncDebounce(defaultFn, defaultWait = 0) {\n const debounceRef = React.useRef({})\n\n const getDefaultFn = useGetLatest(defaultFn)\n const getDefaultWait = useGetLatest(defaultWait)\n\n return React.useCallback(\n async (...args) => {\n if (!debounceRef.current.promise) {\n debounceRef.current.promise = new Promise((resolve, reject) => {\n debounceRef.current.resolve = resolve\n debounceRef.current.reject = reject\n })\n }\n\n if (debounceRef.current.timeout) {\n clearTimeout(debounceRef.current.timeout)\n }\n\n debounceRef.current.timeout = setTimeout(async () => {\n delete debounceRef.current.timeout\n try {\n debounceRef.current.resolve(await getDefaultFn()(...args))\n } catch (err) {\n debounceRef.current.reject(err)\n } finally {\n delete debounceRef.current.promise\n }\n }, getDefaultWait())\n\n return debounceRef.current.promise\n },\n [getDefaultFn, getDefaultWait]\n )\n}\n\nexport function makeRenderer(instance, column, meta = {}) {\n return (type, userProps = {}) => {\n const Comp = typeof type === 'string' ? column[type] : type\n\n if (typeof Comp === 'undefined') {\n console.info(column)\n throw new Error(renderErr)\n }\n\n return flexRender(Comp, { ...instance, column, ...meta, ...userProps })\n }\n}\n\nexport function flexRender(Comp, props) {\n return isReactComponent(Comp) ? : Comp\n}\n\nfunction isReactComponent(component) {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n","import { defaultColumn, emptyRenderer } from './publicUtils'\n\n// Find the depth of the columns\nexport function findMaxDepth(columns, depth = 0) {\n return columns.reduce((prev, curr) => {\n if (curr.columns) {\n return Math.max(prev, findMaxDepth(curr.columns, depth + 1))\n }\n return depth\n }, 0)\n}\n\n// Build the visible columns, headers and flat column list\nexport function linkColumnStructure(columns, parent, depth = 0) {\n return columns.map(column => {\n column = {\n ...column,\n parent,\n depth,\n }\n\n assignColumnAccessor(column)\n\n if (column.columns) {\n column.columns = linkColumnStructure(column.columns, column, depth + 1)\n }\n return column\n })\n}\n\nexport function flattenColumns(columns) {\n return flattenBy(columns, 'columns')\n}\n\nexport function assignColumnAccessor(column) {\n // First check for string accessor\n let { id, accessor, Header } = column\n\n if (typeof accessor === 'string') {\n id = id || accessor\n const accessorPath = accessor.split('.')\n accessor = row => getBy(row, accessorPath)\n }\n\n if (!id && typeof Header === 'string' && Header) {\n id = Header\n }\n\n if (!id && column.columns) {\n console.error(column)\n throw new Error('A column ID (or unique \"Header\" value) is required!')\n }\n\n if (!id) {\n console.error(column)\n throw new Error('A column ID (or string accessor) is required!')\n }\n\n Object.assign(column, {\n id,\n accessor,\n })\n\n return column\n}\n\nexport function decorateColumn(column, userDefaultColumn) {\n if (!userDefaultColumn) {\n throw new Error()\n }\n Object.assign(column, {\n // Make sure there is a fallback header, just in case\n Header: emptyRenderer,\n Footer: emptyRenderer,\n ...defaultColumn,\n ...userDefaultColumn,\n ...column,\n })\n\n Object.assign(column, {\n originalWidth: column.width,\n })\n\n return column\n}\n\n// Build the header groups from the bottom up\nexport function makeHeaderGroups(\n allColumns,\n defaultColumn,\n additionalHeaderProperties = () => ({})\n) {\n const headerGroups = []\n\n let scanColumns = allColumns\n\n let uid = 0\n const getUID = () => uid++\n\n while (scanColumns.length) {\n // The header group we are creating\n const headerGroup = {\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const parentColumns = []\n\n const hasParents = scanColumns.some(d => d.parent)\n\n // Scan each column for parents\n scanColumns.forEach(column => {\n // What is the latest (last) parent column?\n let latestParentColumn = [...parentColumns].reverse()[0]\n\n let newParent\n\n if (hasParents) {\n // If the column has a parent, add it if necessary\n if (column.parent) {\n newParent = {\n ...column.parent,\n originalId: column.parent.id,\n id: `${column.parent.id}_${getUID()}`,\n headers: [column],\n ...additionalHeaderProperties(column),\n }\n } else {\n // If other columns have parents, we'll need to add a place holder if necessary\n const originalId = `${column.id}_placeholder`\n newParent = decorateColumn(\n {\n originalId,\n id: `${column.id}_placeholder_${getUID()}`,\n placeholderOf: column,\n headers: [column],\n ...additionalHeaderProperties(column),\n },\n defaultColumn\n )\n }\n\n // If the resulting parent columns are the same, just add\n // the column and increment the header span\n if (\n latestParentColumn &&\n latestParentColumn.originalId === newParent.originalId\n ) {\n latestParentColumn.headers.push(column)\n } else {\n parentColumns.push(newParent)\n }\n }\n\n headerGroup.headers.push(column)\n })\n\n headerGroups.push(headerGroup)\n\n // Start scanning the parent columns\n scanColumns = parentColumns\n }\n\n return headerGroups.reverse()\n}\n\nconst pathObjCache = new Map()\n\nexport function getBy(obj, path, def) {\n if (!path) {\n return obj\n }\n const cacheKey = typeof path === 'function' ? path : JSON.stringify(path)\n\n const pathObj =\n pathObjCache.get(cacheKey) ||\n (() => {\n const pathObj = makePathArray(path)\n pathObjCache.set(cacheKey, pathObj)\n return pathObj\n })()\n\n let val\n\n try {\n val = pathObj.reduce((cursor, pathPart) => cursor[pathPart], obj)\n } catch (e) {\n // continue regardless of error\n }\n return typeof val !== 'undefined' ? val : def\n}\n\nexport function getFirstDefined(...args) {\n for (let i = 0; i < args.length; i += 1) {\n if (typeof args[i] !== 'undefined') {\n return args[i]\n }\n }\n}\n\nexport function getElementDimensions(element) {\n const rect = element.getBoundingClientRect()\n const style = window.getComputedStyle(element)\n const margins = {\n left: parseInt(style.marginLeft),\n right: parseInt(style.marginRight),\n }\n const padding = {\n left: parseInt(style.paddingLeft),\n right: parseInt(style.paddingRight),\n }\n return {\n left: Math.ceil(rect.left),\n width: Math.ceil(rect.width),\n outerWidth: Math.ceil(\n rect.width + margins.left + margins.right + padding.left + padding.right\n ),\n marginLeft: margins.left,\n marginRight: margins.right,\n paddingLeft: padding.left,\n paddingRight: padding.right,\n scrollWidth: element.scrollWidth,\n }\n}\n\nexport function isFunction(a) {\n if (typeof a === 'function') {\n return a\n }\n}\n\nexport function flattenBy(arr, key) {\n const flat = []\n\n const recurse = arr => {\n arr.forEach(d => {\n if (!d[key]) {\n flat.push(d)\n } else {\n recurse(d[key])\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\nexport function expandRows(\n rows,\n { manualExpandedKey, expanded, expandSubRows = true }\n) {\n const expandedRows = []\n\n const handleRow = (row, addToExpandedRows = true) => {\n row.isExpanded =\n (row.original && row.original[manualExpandedKey]) || expanded[row.id]\n\n row.canExpand = row.subRows && !!row.subRows.length\n\n if (addToExpandedRows) {\n expandedRows.push(row)\n }\n\n if (row.subRows && row.subRows.length && row.isExpanded) {\n row.subRows.forEach(row => handleRow(row, expandSubRows))\n }\n }\n\n rows.forEach(row => handleRow(row))\n\n return expandedRows\n}\n\nexport function getFilterMethod(filter, userFilterTypes, filterTypes) {\n return (\n isFunction(filter) ||\n userFilterTypes[filter] ||\n filterTypes[filter] ||\n filterTypes.text\n )\n}\n\nexport function shouldAutoRemoveFilter(autoRemove, value, column) {\n return autoRemove ? autoRemove(value, column) : typeof value === 'undefined'\n}\n\nexport function unpreparedAccessWarning() {\n throw new Error(\n 'React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.'\n )\n}\n\nlet passiveSupported = null\nexport function passiveEventSupported() {\n // memoize support to avoid adding multiple test events\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n window.addEventListener('test', null, options)\n window.removeEventListener('test', null, options)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n//\n\nconst reOpenBracket = /\\[/g\nconst reCloseBracket = /\\]/g\n\nfunction makePathArray(obj) {\n return (\n flattenDeep(obj)\n // remove all periods in parts\n .map(d => String(d).replace('.', '_'))\n // join parts using period\n .join('.')\n // replace brackets with periods\n .replace(reOpenBracket, '.')\n .replace(reCloseBracket, '')\n // split it back out on periods\n .split('.')\n )\n}\n\nfunction flattenDeep(arr, newArr = []) {\n if (!Array.isArray(arr)) {\n newArr.push(arr)\n } else {\n for (let i = 0; i < arr.length; i += 1) {\n flattenDeep(arr[i], newArr)\n }\n }\n return newArr\n}\n","const defaultGetTableProps = props => ({\n role: 'table',\n ...props,\n})\n\nconst defaultGetTableBodyProps = props => ({\n role: 'rowgroup',\n ...props,\n})\n\nconst defaultGetHeaderProps = (props, { column }) => ({\n key: `header_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n role: 'columnheader',\n ...props,\n})\n\nconst defaultGetFooterProps = (props, { column }) => ({\n key: `footer_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n ...props,\n})\n\nconst defaultGetHeaderGroupProps = (props, { index }) => ({\n key: `headerGroup_${index}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetFooterGroupProps = (props, { index }) => ({\n key: `footerGroup_${index}`,\n ...props,\n})\n\nconst defaultGetRowProps = (props, { row }) => ({\n key: `row_${row.id}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetCellProps = (props, { cell }) => ({\n key: `cell_${cell.row.id}_${cell.column.id}`,\n role: 'cell',\n ...props,\n})\n\nexport default function makeDefaultPluginHooks() {\n return {\n useOptions: [],\n stateReducers: [],\n useControlledState: [],\n columns: [],\n columnsDeps: [],\n allColumns: [],\n allColumnsDeps: [],\n accessValue: [],\n materializedColumns: [],\n materializedColumnsDeps: [],\n useInstanceAfterData: [],\n visibleColumns: [],\n visibleColumnsDeps: [],\n headerGroups: [],\n headerGroupsDeps: [],\n useInstanceBeforeDimensions: [],\n useInstance: [],\n prepareRow: [],\n getTableProps: [defaultGetTableProps],\n getTableBodyProps: [defaultGetTableBodyProps],\n getHeaderGroupProps: [defaultGetHeaderGroupProps],\n getFooterGroupProps: [defaultGetFooterGroupProps],\n getHeaderProps: [defaultGetHeaderProps],\n getFooterProps: [defaultGetFooterProps],\n getRowProps: [defaultGetRowProps],\n getCellProps: [defaultGetCellProps],\n useFinalInstance: [],\n }\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useGetLatest,\n makePropGetter,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nactions.resetHiddenColumns = 'resetHiddenColumns'\nactions.toggleHideColumn = 'toggleHideColumn'\nactions.setHiddenColumns = 'setHiddenColumns'\nactions.toggleHideAllColumns = 'toggleHideAllColumns'\n\nexport const useColumnVisibility = hooks => {\n hooks.getToggleHiddenProps = [defaultGetToggleHiddenProps]\n hooks.getToggleHideAllColumnsProps = [defaultGetToggleHideAllColumnsProps]\n\n hooks.stateReducers.push(reducer)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n hooks.headerGroupsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.hiddenColumns,\n ])\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnVisibility.pluginName = 'useColumnVisibility'\n\nconst defaultGetToggleHiddenProps = (props, { column }) => [\n props,\n {\n onChange: e => {\n column.toggleHidden(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: column.isVisible,\n title: 'Toggle Column Visible',\n },\n]\n\nconst defaultGetToggleHideAllColumnsProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleHideAllColumns(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: !instance.allColumnsHidden && !instance.state.hiddenColumns.length,\n title: 'Toggle All Columns Hidden',\n indeterminate:\n !instance.allColumnsHidden && instance.state.hiddenColumns.length,\n },\n]\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n hiddenColumns: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetHiddenColumns) {\n return {\n ...state,\n hiddenColumns: instance.initialState.hiddenColumns || [],\n }\n }\n\n if (action.type === actions.toggleHideColumn) {\n const should =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.includes(action.columnId)\n\n const hiddenColumns = should\n ? [...state.hiddenColumns, action.columnId]\n : state.hiddenColumns.filter(d => d !== action.columnId)\n\n return {\n ...state,\n hiddenColumns,\n }\n }\n\n if (action.type === actions.setHiddenColumns) {\n return {\n ...state,\n hiddenColumns: functionalUpdate(action.value, state.hiddenColumns),\n }\n }\n\n if (action.type === actions.toggleHideAllColumns) {\n const shouldAll =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.length\n\n return {\n ...state,\n hiddenColumns: shouldAll ? instance.allColumns.map(d => d.id) : [],\n }\n }\n}\n\nfunction useInstanceBeforeDimensions(instance) {\n const {\n headers,\n state: { hiddenColumns },\n } = instance\n\n const isMountedRef = React.useRef(false)\n\n if (!isMountedRef.current) {\n }\n\n const handleColumn = (column, parentVisible) => {\n column.isVisible = parentVisible && !hiddenColumns.includes(column.id)\n\n let totalVisibleHeaderCount = 0\n\n if (column.headers && column.headers.length) {\n column.headers.forEach(\n subColumn =>\n (totalVisibleHeaderCount += handleColumn(subColumn, column.isVisible))\n )\n } else {\n totalVisibleHeaderCount = column.isVisible ? 1 : 0\n }\n\n column.totalVisibleHeaderCount = totalVisibleHeaderCount\n\n return totalVisibleHeaderCount\n }\n\n let totalVisibleHeaderCount = 0\n\n headers.forEach(\n subHeader => (totalVisibleHeaderCount += handleColumn(subHeader, true))\n )\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n flatHeaders,\n dispatch,\n allColumns,\n getHooks,\n state: { hiddenColumns },\n autoResetHiddenColumns = true,\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n const allColumnsHidden = allColumns.length === hiddenColumns.length\n\n const toggleHideColumn = React.useCallback(\n (columnId, value) =>\n dispatch({ type: actions.toggleHideColumn, columnId, value }),\n [dispatch]\n )\n\n const setHiddenColumns = React.useCallback(\n value => dispatch({ type: actions.setHiddenColumns, value }),\n [dispatch]\n )\n\n const toggleHideAllColumns = React.useCallback(\n value => dispatch({ type: actions.toggleHideAllColumns, value }),\n [dispatch]\n )\n\n const getToggleHideAllColumnsProps = makePropGetter(\n getHooks().getToggleHideAllColumnsProps,\n { instance: getInstance() }\n )\n\n flatHeaders.forEach(column => {\n column.toggleHidden = value => {\n dispatch({\n type: actions.toggleHideColumn,\n columnId: column.id,\n value,\n })\n }\n\n column.getToggleHiddenProps = makePropGetter(\n getHooks().getToggleHiddenProps,\n {\n instance: getInstance(),\n column,\n }\n )\n })\n\n const getAutoResetHiddenColumns = useGetLatest(autoResetHiddenColumns)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetHiddenColumns()) {\n dispatch({ type: actions.resetHiddenColumns })\n }\n }, [dispatch, columns])\n\n Object.assign(instance, {\n allColumnsHidden,\n toggleHideColumn,\n setHiddenColumns,\n toggleHideAllColumns,\n getToggleHideAllColumnsProps,\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n linkColumnStructure,\n flattenColumns,\n assignColumnAccessor,\n unpreparedAccessWarning,\n makeHeaderGroups,\n decorateColumn,\n} from '../utils'\n\nimport {\n useGetLatest,\n reduceHooks,\n actions,\n loopHooks,\n makePropGetter,\n makeRenderer,\n} from '../publicUtils'\n\nimport makeDefaultPluginHooks from '../makeDefaultPluginHooks'\n\nimport { useColumnVisibility } from './useColumnVisibility'\n\nconst defaultInitialState = {}\nconst defaultColumnInstance = {}\nconst defaultReducer = (state, action, prevState) => state\nconst defaultGetSubRows = (row, index) => row.subRows || []\nconst defaultGetRowId = (row, index, parent) =>\n `${parent ? [parent.id, index].join('.') : index}`\nconst defaultUseControlledState = d => d\n\nfunction applyDefaults(props) {\n const {\n initialState = defaultInitialState,\n defaultColumn = defaultColumnInstance,\n getSubRows = defaultGetSubRows,\n getRowId = defaultGetRowId,\n stateReducer = defaultReducer,\n useControlledState = defaultUseControlledState,\n ...rest\n } = props\n\n return {\n ...rest,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n }\n}\n\nexport const useTable = (props, ...plugins) => {\n // Apply default props\n props = applyDefaults(props)\n\n // Add core plugins\n plugins = [useColumnVisibility, ...plugins]\n\n // Create the table instance\n let instanceRef = React.useRef({})\n\n // Create a getter for the instance (helps avoid a lot of potential memory leaks)\n const getInstance = useGetLatest(instanceRef.current)\n\n // Assign the props, plugins and hooks to the instance\n Object.assign(getInstance(), {\n ...props,\n plugins,\n hooks: makeDefaultPluginHooks(),\n })\n\n // Allow plugins to register hooks as early as possible\n plugins.filter(Boolean).forEach(plugin => {\n plugin(getInstance().hooks)\n })\n\n // Consume all hooks and make a getter for them\n const getHooks = useGetLatest(getInstance().hooks)\n getInstance().getHooks = getHooks\n delete getInstance().hooks\n\n // Allow useOptions hooks to modify the options coming into the table\n Object.assign(\n getInstance(),\n reduceHooks(getHooks().useOptions, applyDefaults(props))\n )\n\n const {\n data,\n columns: userColumns,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n } = getInstance()\n\n // Setup user reducer ref\n const getStateReducer = useGetLatest(stateReducer)\n\n // Build the reducer\n const reducer = React.useCallback(\n (state, action) => {\n // Detect invalid actions\n if (!action.type) {\n console.info({ action })\n throw new Error('Unknown Action 👆')\n }\n\n // Reduce the state from all plugin reducers\n return [\n ...getHooks().stateReducers,\n // Allow the user to add their own state reducer(s)\n ...(Array.isArray(getStateReducer())\n ? getStateReducer()\n : [getStateReducer()]),\n ].reduce(\n (s, handler) => handler(s, action, state, getInstance()) || s,\n state\n )\n },\n [getHooks, getStateReducer, getInstance]\n )\n\n // Start the reducer\n const [reducerState, dispatch] = React.useReducer(reducer, undefined, () =>\n reducer(initialState, { type: actions.init })\n )\n\n // Allow the user to control the final state with hooks\n const state = reduceHooks(\n [...getHooks().useControlledState, useControlledState],\n reducerState,\n { instance: getInstance() }\n )\n\n Object.assign(getInstance(), {\n state,\n dispatch,\n })\n\n // Decorate All the columns\n const columns = React.useMemo(\n () =>\n linkColumnStructure(\n reduceHooks(getHooks().columns, userColumns, {\n instance: getInstance(),\n })\n ),\n [\n getHooks,\n getInstance,\n userColumns,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().columnsDeps, [], { instance: getInstance() }),\n ]\n )\n getInstance().columns = columns\n\n // Get the flat list of all columns and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let allColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().allColumns, flattenColumns(columns), {\n instance: getInstance(),\n }).map(assignColumnAccessor),\n [\n columns,\n getHooks,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().allColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().allColumns = allColumns\n\n // Access the row model using initial columns\n const [rows, flatRows, rowsById] = React.useMemo(() => {\n let rows = []\n let flatRows = []\n const rowsById = {}\n\n const allColumnsQueue = [...allColumns]\n\n while (allColumnsQueue.length) {\n const column = allColumnsQueue.shift()\n accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks: getHooks().accessValue,\n getInstance,\n })\n }\n\n return [rows, flatRows, rowsById]\n }, [allColumns, data, getRowId, getSubRows, getHooks, getInstance])\n\n Object.assign(getInstance(), {\n rows,\n initialRows: [...rows],\n flatRows,\n rowsById,\n // materializedColumns,\n })\n\n loopHooks(getHooks().useInstanceAfterData, getInstance())\n\n // Get the flat list of all columns AFTER the rows\n // have been access, and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let visibleColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().visibleColumns, allColumns, {\n instance: getInstance(),\n }).map(d => decorateColumn(d, defaultColumn)),\n [\n getHooks,\n allColumns,\n getInstance,\n defaultColumn,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().visibleColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n\n // Combine new visible columns with all columns\n allColumns = React.useMemo(() => {\n const columns = [...visibleColumns]\n\n allColumns.forEach(column => {\n if (!columns.find(d => d.id === column.id)) {\n columns.push(column)\n }\n })\n\n return columns\n }, [allColumns, visibleColumns])\n getInstance().allColumns = allColumns\n\n if (process.env.NODE_ENV !== 'production') {\n const duplicateColumns = allColumns.filter((column, i) => {\n return allColumns.findIndex(d => d.id === column.id) !== i\n })\n\n if (duplicateColumns.length) {\n console.info(allColumns)\n throw new Error(\n `Duplicate columns were found with ids: \"${duplicateColumns\n .map(d => d.id)\n .join(', ')}\" in the columns array above`\n )\n }\n }\n\n // Make the headerGroups\n const headerGroups = React.useMemo(\n () =>\n reduceHooks(\n getHooks().headerGroups,\n makeHeaderGroups(visibleColumns, defaultColumn),\n getInstance()\n ),\n [\n getHooks,\n visibleColumns,\n defaultColumn,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().headerGroupsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().headerGroups = headerGroups\n\n // Get the first level of headers\n const headers = React.useMemo(\n () => (headerGroups.length ? headerGroups[0].headers : []),\n [headerGroups]\n )\n getInstance().headers = headers\n\n // Provide a flat header list for utilities\n getInstance().flatHeaders = headerGroups.reduce(\n (all, headerGroup) => [...all, ...headerGroup.headers],\n []\n )\n\n loopHooks(getHooks().useInstanceBeforeDimensions, getInstance())\n\n // Filter columns down to visible ones\n const visibleColumnsDep = visibleColumns\n .filter(d => d.isVisible)\n .map(d => d.id)\n .sort()\n .join('_')\n\n visibleColumns = React.useMemo(\n () => visibleColumns.filter(d => d.isVisible),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [visibleColumns, visibleColumnsDep]\n )\n getInstance().visibleColumns = visibleColumns\n\n // Header Visibility is needed by this point\n const [\n totalColumnsMinWidth,\n totalColumnsWidth,\n totalColumnsMaxWidth,\n ] = calculateHeaderWidths(headers)\n\n getInstance().totalColumnsMinWidth = totalColumnsMinWidth\n getInstance().totalColumnsWidth = totalColumnsWidth\n getInstance().totalColumnsMaxWidth = totalColumnsMaxWidth\n\n loopHooks(getHooks().useInstance, getInstance())\n\n // Each materialized header needs to be assigned a render function and other\n // prop getter properties here.\n ;[...getInstance().flatHeaders, ...getInstance().allColumns].forEach(\n column => {\n // Give columns/headers rendering power\n column.render = makeRenderer(getInstance(), column)\n\n // Give columns/headers a default getHeaderProps\n column.getHeaderProps = makePropGetter(getHooks().getHeaderProps, {\n instance: getInstance(),\n column,\n })\n\n // Give columns/headers a default getFooterProps\n column.getFooterProps = makePropGetter(getHooks().getFooterProps, {\n instance: getInstance(),\n column,\n })\n }\n )\n\n getInstance().headerGroups = React.useMemo(\n () =>\n headerGroups.filter((headerGroup, i) => {\n // Filter out any headers and headerGroups that don't have visible columns\n headerGroup.headers = headerGroup.headers.filter(column => {\n const recurse = headers =>\n headers.filter(column => {\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n }).length\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n })\n\n // Give headerGroups getRowProps\n if (headerGroup.headers.length) {\n headerGroup.getHeaderGroupProps = makePropGetter(\n getHooks().getHeaderGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n headerGroup.getFooterGroupProps = makePropGetter(\n getHooks().getFooterGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n return true\n }\n\n return false\n }),\n [headerGroups, getInstance, getHooks]\n )\n\n getInstance().footerGroups = [...getInstance().headerGroups].reverse()\n\n // The prepareRow function is absolutely necessary and MUST be called on\n // any rows the user wishes to be displayed.\n\n getInstance().prepareRow = React.useCallback(\n row => {\n row.getRowProps = makePropGetter(getHooks().getRowProps, {\n instance: getInstance(),\n row,\n })\n\n // Build the visible cells for each row\n row.allCells = allColumns.map(column => {\n const value = row.values[column.id]\n\n const cell = {\n column,\n row,\n value,\n }\n\n // Give each cell a getCellProps base\n cell.getCellProps = makePropGetter(getHooks().getCellProps, {\n instance: getInstance(),\n cell,\n })\n\n // Give each cell a renderer function (supports multiple renderers)\n cell.render = makeRenderer(getInstance(), column, {\n row,\n cell,\n value,\n })\n\n return cell\n })\n\n row.cells = visibleColumns.map(column =>\n row.allCells.find(cell => cell.column.id === column.id)\n )\n\n // need to apply any row specific hooks (useExpanded requires this)\n loopHooks(getHooks().prepareRow, row, { instance: getInstance() })\n },\n [getHooks, getInstance, allColumns, visibleColumns]\n )\n\n getInstance().getTableProps = makePropGetter(getHooks().getTableProps, {\n instance: getInstance(),\n })\n\n getInstance().getTableBodyProps = makePropGetter(\n getHooks().getTableBodyProps,\n {\n instance: getInstance(),\n }\n )\n\n loopHooks(getHooks().useFinalInstance, getInstance())\n\n return getInstance()\n}\n\nfunction calculateHeaderWidths(headers, left = 0) {\n let sumTotalMinWidth = 0\n let sumTotalWidth = 0\n let sumTotalMaxWidth = 0\n let sumTotalFlexWidth = 0\n\n headers.forEach(header => {\n let { headers: subHeaders } = header\n\n header.totalLeft = left\n\n if (subHeaders && subHeaders.length) {\n const [\n totalMinWidth,\n totalWidth,\n totalMaxWidth,\n totalFlexWidth,\n ] = calculateHeaderWidths(subHeaders, left)\n header.totalMinWidth = totalMinWidth\n header.totalWidth = totalWidth\n header.totalMaxWidth = totalMaxWidth\n header.totalFlexWidth = totalFlexWidth\n } else {\n header.totalMinWidth = header.minWidth\n header.totalWidth = Math.min(\n Math.max(header.minWidth, header.width),\n header.maxWidth\n )\n header.totalMaxWidth = header.maxWidth\n header.totalFlexWidth = header.canResize ? header.totalWidth : 0\n }\n if (header.isVisible) {\n left += header.totalWidth\n sumTotalMinWidth += header.totalMinWidth\n sumTotalWidth += header.totalWidth\n sumTotalMaxWidth += header.totalMaxWidth\n sumTotalFlexWidth += header.totalFlexWidth\n }\n })\n\n return [sumTotalMinWidth, sumTotalWidth, sumTotalMaxWidth, sumTotalFlexWidth]\n}\n\nfunction accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks,\n getInstance,\n}) {\n // Access the row's data column-by-column\n // We do it this way so we can incrementally add materialized\n // columns after the first pass and avoid excessive looping\n const accessRow = (originalRow, rowIndex, depth = 0, parent, parentRows) => {\n // Keep the original reference around\n const original = originalRow\n\n const id = getRowId(originalRow, rowIndex, parent)\n\n let row = rowsById[id]\n\n // If the row hasn't been created, let's make it\n if (!row) {\n row = {\n id,\n original,\n index: rowIndex,\n depth,\n cells: [{}], // This is a dummy cell\n }\n\n // Override common array functions (and the dummy cell's getCellProps function)\n // to show an error if it is accessed without calling prepareRow\n row.cells.map = unpreparedAccessWarning\n row.cells.filter = unpreparedAccessWarning\n row.cells.forEach = unpreparedAccessWarning\n row.cells[0].getCellProps = unpreparedAccessWarning\n\n // Create the cells and values\n row.values = {}\n\n // Push this row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n row.originalSubRows = getSubRows(originalRow, rowIndex)\n\n // Then recursively access them\n if (row.originalSubRows) {\n const subRows = []\n row.originalSubRows.forEach((d, i) =>\n accessRow(d, i, depth + 1, row, subRows)\n )\n // Keep the new subRows array on the row\n row.subRows = subRows\n }\n } else if (row.subRows) {\n // If the row exists, then it's already been accessed\n // Keep recursing, but don't worry about passing the\n // accumlator array (those rows already exist)\n row.originalSubRows.forEach((d, i) => accessRow(d, i, depth + 1, row))\n }\n\n // If the column has an accessor, use it to get a value\n if (column.accessor) {\n row.values[column.id] = column.accessor(\n originalRow,\n rowIndex,\n row,\n parentRows,\n data\n )\n }\n\n // Allow plugins to manipulate the column value\n row.values[column.id] = reduceHooks(\n accessValueHooks,\n row.values[column.id],\n {\n row,\n column,\n instance: getInstance(),\n },\n true\n )\n }\n\n data.forEach((originalRow, rowIndex) =>\n accessRow(originalRow, rowIndex, 0, undefined, rows)\n )\n}\n","import React from 'react'\n\nimport { expandRows } from '../utils'\n\nimport {\n useGetLatest,\n actions,\n useMountedLayoutEffect,\n makePropGetter,\n ensurePluginOrder,\n} from '../publicUtils'\n\n// Actions\nactions.resetExpanded = 'resetExpanded'\nactions.toggleRowExpanded = 'toggleRowExpanded'\nactions.toggleAllRowsExpanded = 'toggleAllRowsExpanded'\n\nexport const useExpanded = hooks => {\n hooks.getToggleAllRowsExpandedProps = [defaultGetToggleAllRowsExpandedProps]\n hooks.getToggleRowExpandedProps = [defaultGetToggleRowExpandedProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseExpanded.pluginName = 'useExpanded'\n\nconst defaultGetToggleAllRowsExpandedProps = (props, { instance }) => [\n props,\n {\n onClick: e => {\n instance.toggleAllRowsExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle All Rows Expanded',\n },\n]\n\nconst defaultGetToggleRowExpandedProps = (props, { row }) => [\n props,\n {\n onClick: () => {\n row.toggleRowExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle Row Expanded',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n expanded: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetExpanded) {\n return {\n ...state,\n expanded: instance.initialState.expanded || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsExpanded) {\n const { value } = action\n const { rowsById } = instance\n\n const isAllRowsExpanded =\n Object.keys(rowsById).length === Object.keys(state.expanded).length\n\n const expandAll = typeof value !== 'undefined' ? value : !isAllRowsExpanded\n\n if (expandAll) {\n const expanded = {}\n\n Object.keys(rowsById).forEach(rowId => {\n expanded[rowId] = true\n })\n\n return {\n ...state,\n expanded,\n }\n }\n\n return {\n ...state,\n expanded: {},\n }\n }\n\n if (action.type === actions.toggleRowExpanded) {\n const { id, value: setExpanded } = action\n const exists = state.expanded[id]\n\n const shouldExist =\n typeof setExpanded !== 'undefined' ? setExpanded : !exists\n\n if (!exists && shouldExist) {\n return {\n ...state,\n expanded: {\n ...state.expanded,\n [id]: true,\n },\n }\n } else if (exists && !shouldExist) {\n const { [id]: _, ...rest } = state.expanded\n return {\n ...state,\n expanded: rest,\n }\n } else {\n return state\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n rowsById,\n manualExpandedKey = 'expanded',\n paginateExpandedRows = true,\n expandSubRows = true,\n autoResetExpanded = true,\n getHooks,\n plugins,\n state: { expanded },\n dispatch,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useSortBy', 'useGroupBy', 'usePivotColumns', 'useGlobalFilter'],\n 'useExpanded'\n )\n\n const getAutoResetExpanded = useGetLatest(autoResetExpanded)\n\n let isAllRowsExpanded = Boolean(\n Object.keys(rowsById).length && Object.keys(expanded).length\n )\n\n if (isAllRowsExpanded) {\n if (Object.keys(rowsById).some(id => !expanded[id])) {\n isAllRowsExpanded = false\n }\n }\n\n // Bypass any effects from firing when this changes\n useMountedLayoutEffect(() => {\n if (getAutoResetExpanded()) {\n dispatch({ type: actions.resetExpanded })\n }\n }, [dispatch, data])\n\n const toggleRowExpanded = React.useCallback(\n (id, value) => {\n dispatch({ type: actions.toggleRowExpanded, id, value })\n },\n [dispatch]\n )\n\n const toggleAllRowsExpanded = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsExpanded, value }),\n [dispatch]\n )\n\n const expandedRows = React.useMemo(() => {\n if (paginateExpandedRows) {\n return expandRows(rows, { manualExpandedKey, expanded, expandSubRows })\n }\n\n return rows\n }, [paginateExpandedRows, rows, manualExpandedKey, expanded, expandSubRows])\n\n const expandedDepth = React.useMemo(() => findExpandedDepth(expanded), [\n expanded,\n ])\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsExpandedProps = makePropGetter(\n getHooks().getToggleAllRowsExpandedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n preExpandedRows: rows,\n expandedRows,\n rows: expandedRows,\n expandedDepth,\n isAllRowsExpanded,\n toggleRowExpanded,\n toggleAllRowsExpanded,\n getToggleAllRowsExpandedProps,\n })\n}\n\nfunction prepareRow(row, { instance: { getHooks }, instance }) {\n row.toggleRowExpanded = set => instance.toggleRowExpanded(row.id, set)\n\n row.getToggleRowExpandedProps = makePropGetter(\n getHooks().getToggleRowExpandedProps,\n {\n instance,\n row,\n }\n )\n}\n\nfunction findExpandedDepth(expanded) {\n let maxDepth = 0\n\n Object.keys(expanded).forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n","export const text = (rows, ids, filterValue) => {\n rows = rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return String(rowValue)\n .toLowerCase()\n .includes(String(filterValue).toLowerCase())\n })\n })\n return rows\n}\n\ntext.autoRemove = val => !val\n\nexport const exactText = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase()\n : true\n })\n })\n}\n\nexactText.autoRemove = val => !val\n\nexport const exactTextCase = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue) === String(filterValue)\n : true\n })\n })\n}\n\nexactTextCase.autoRemove = val => !val\n\nexport const includes = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\nincludes.autoRemove = val => !val || !val.length\n\nexport const includesAll = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesAll.autoRemove = val => !val || !val.length\n\nexport const includesSome = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.some(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesSome.autoRemove = val => !val || !val.length\n\nexport const includesValue = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return filterValue.includes(rowValue)\n })\n })\n}\n\nincludesValue.autoRemove = val => !val || !val.length\n\nexport const exact = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nexact.autoRemove = val => typeof val === 'undefined'\n\nexport const equals = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nequals.autoRemove = val => val == null\n\nexport const between = (rows, ids, filterValue) => {\n let [min, max] = filterValue || []\n\n min = typeof min === 'number' ? min : -Infinity\n max = typeof max === 'number' ? max : Infinity\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetween.autoRemove = val =>\n !val || (typeof val[0] !== 'number' && typeof val[1] !== 'number')\n","import React from 'react'\n\nimport {\n getFirstDefined,\n getFilterMethod,\n shouldAutoRemoveFilter,\n} from '../utils'\n\nimport {\n actions,\n useGetLatest,\n functionalUpdate,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetFilters = 'resetFilters'\nactions.setFilter = 'setFilter'\nactions.setAllFilters = 'setAllFilters'\n\nexport const useFilters = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseFilters.pluginName = 'useFilters'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n filters: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetFilters) {\n return {\n ...state,\n filters: instance.initialState.filters || [],\n }\n }\n\n if (action.type === actions.setFilter) {\n const { columnId, filterValue } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n const previousfilter = state.filters.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n filterValue,\n previousfilter && previousfilter.value\n )\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter, column)) {\n return {\n ...state,\n filters: state.filters.filter(d => d.id !== columnId),\n }\n }\n\n if (previousfilter) {\n return {\n ...state,\n filters: state.filters.map(d => {\n if (d.id === columnId) {\n return { id: columnId, value: newFilter }\n }\n return d\n }),\n }\n }\n\n return {\n ...state,\n filters: [...state.filters, { id: columnId, value: newFilter }],\n }\n }\n\n if (action.type === actions.setAllFilters) {\n const { filters } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n return {\n ...state,\n // Filter out undefined values\n filters: functionalUpdate(filters, state.filters).filter(filter => {\n const column = allColumns.find(d => d.id === filter.id)\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (\n shouldAutoRemoveFilter(filterMethod.autoRemove, filter.value, column)\n ) {\n return false\n }\n return true\n }),\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n manualFilters,\n defaultCanFilter = false,\n disableFilters,\n state: { filters },\n dispatch,\n autoResetFilters = true,\n } = instance\n\n const setFilter = React.useCallback(\n (columnId, filterValue) => {\n dispatch({ type: actions.setFilter, columnId, filterValue })\n },\n [dispatch]\n )\n\n const setAllFilters = React.useCallback(\n filters => {\n dispatch({\n type: actions.setAllFilters,\n filters,\n })\n },\n [dispatch]\n )\n\n allColumns.forEach(column => {\n const {\n id,\n accessor,\n defaultCanFilter: columnDefaultCanFilter,\n disableFilters: columnDisableFilters,\n } = column\n\n // Determine if a column is filterable\n column.canFilter = accessor\n ? getFirstDefined(\n columnDisableFilters === true ? false : undefined,\n disableFilters === true ? false : undefined,\n true\n )\n : getFirstDefined(columnDefaultCanFilter, defaultCanFilter, false)\n\n // Provide the column a way of updating the filter value\n column.setFilter = val => setFilter(column.id, val)\n\n // Provide the current filter value to the column for\n // convenience\n const found = filters.find(d => d.id === id)\n column.filterValue = found && found.value\n })\n\n const [\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n ] = React.useMemo(() => {\n if (manualFilters || !filters.length) {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n // Filters top level and nested rows\n const filterRows = (rows, depth = 0) => {\n let filteredRows = rows\n\n filteredRows = filters.reduce(\n (filteredSoFar, { id: columnId, value: filterValue }) => {\n // Find the filters column\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n return filteredSoFar\n }\n\n if (depth === 0) {\n column.preFilteredRows = filteredSoFar\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(\n `Could not find a valid 'column.filter' for column with the ID: ${column.id}.`\n )\n return filteredSoFar\n }\n\n // Pass the rows, id, filterValue and column to the filterMethod\n // to get the filtered rows back\n column.filteredRows = filterMethod(\n filteredSoFar,\n [columnId],\n filterValue\n )\n\n return column.filteredRows\n },\n rows\n )\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n if (!row.subRows) {\n return\n }\n\n row.subRows =\n row.subRows && row.subRows.length > 0\n ? filterRows(row.subRows, depth + 1)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualFilters,\n filters,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userFilterTypes,\n ])\n\n React.useMemo(() => {\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = allColumns.filter(\n column => !filters.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n nonFilteredColumns.forEach(column => {\n column.preFilteredRows = filteredRows\n column.filteredRows = filteredRows\n })\n }, [filteredRows, filters, allColumns])\n\n const getAutoResetFilters = useGetLatest(autoResetFilters)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetFilters()) {\n dispatch({ type: actions.resetFilters })\n }\n }, [dispatch, manualFilters ? null : data])\n\n Object.assign(instance, {\n preFilteredRows: rows,\n preFilteredFlatRows: flatRows,\n preFilteredRowsById: rowsById,\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n rows: filteredRows,\n flatRows: filteredFlatRows,\n rowsById: filteredRowsById,\n setFilter,\n setAllFilters,\n })\n}\n","import React from 'react'\n\nimport {\n getFilterMethod,\n shouldAutoRemoveFilter,\n getFirstDefined,\n} from '../utils'\n\nimport {\n actions,\n useMountedLayoutEffect,\n functionalUpdate,\n useGetLatest,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetGlobalFilter = 'resetGlobalFilter'\nactions.setGlobalFilter = 'setGlobalFilter'\n\nexport const useGlobalFilter = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseGlobalFilter.pluginName = 'useGlobalFilter'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.resetGlobalFilter) {\n return {\n ...state,\n globalFilter: instance.initialState.globalFilter || undefined,\n }\n }\n\n if (action.type === actions.setGlobalFilter) {\n const { filterValue } = action\n const { userFilterTypes } = instance\n\n const filterMethod = getFilterMethod(\n instance.globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n const newFilter = functionalUpdate(filterValue, state.globalFilter)\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter)) {\n const { globalFilter, ...stateWithoutGlobalFilter } = state\n return stateWithoutGlobalFilter\n }\n\n return {\n ...state,\n globalFilter: newFilter,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n globalFilter,\n manualGlobalFilter,\n state: { globalFilter: globalFilterValue },\n dispatch,\n autoResetGlobalFilter = true,\n disableGlobalFilter,\n } = instance\n\n const setGlobalFilter = React.useCallback(\n filterValue => {\n dispatch({ type: actions.setGlobalFilter, filterValue })\n },\n [dispatch]\n )\n\n // TODO: Create a filter cache for incremental high speed multi-filtering\n // This gets pretty complicated pretty fast, since you have to maintain a\n // cache for each row group (top-level rows, and each row's recursive subrows)\n // This would make multi-filtering a lot faster though. Too far?\n\n const [\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n ] = React.useMemo(() => {\n if (manualGlobalFilter || typeof globalFilterValue === 'undefined') {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n const filterMethod = getFilterMethod(\n globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(`Could not find a valid 'globalFilter' option.`)\n return rows\n }\n\n allColumns.forEach(column => {\n const { disableGlobalFilter: columnDisableGlobalFilter } = column\n\n column.canFilter = getFirstDefined(\n columnDisableGlobalFilter === true ? false : undefined,\n disableGlobalFilter === true ? false : undefined,\n true\n )\n })\n\n const filterableColumns = allColumns.filter(c => c.canFilter === true)\n\n // Filters top level and nested rows\n const filterRows = filteredRows => {\n filteredRows = filterMethod(\n filteredRows,\n filterableColumns.map(d => d.id),\n globalFilterValue\n )\n\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n\n row.subRows =\n row.subRows && row.subRows.length\n ? filterRows(row.subRows)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualGlobalFilter,\n globalFilterValue,\n globalFilter,\n userFilterTypes,\n allColumns,\n rows,\n flatRows,\n rowsById,\n disableGlobalFilter,\n ])\n\n const getAutoResetGlobalFilter = useGetLatest(autoResetGlobalFilter)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGlobalFilter()) {\n dispatch({ type: actions.resetGlobalFilter })\n }\n }, [dispatch, manualGlobalFilter ? null : data])\n\n Object.assign(instance, {\n preGlobalFilteredRows: rows,\n preGlobalFilteredFlatRows: flatRows,\n preGlobalFilteredRowsById: rowsById,\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n rows: globalFilteredRows,\n flatRows: globalFilteredFlatRows,\n rowsById: globalFilteredRowsById,\n setGlobalFilter,\n disableGlobalFilter,\n })\n}\n","export function sum(values, aggregatedValues) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return aggregatedValues.reduce(\n (sum, next) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nexport function min(values) {\n let min = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n }\n })\n\n return min\n}\n\nexport function max(values) {\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n max = Math.max(max, value)\n }\n })\n\n return max\n}\n\nexport function minMax(values) {\n let min = values[0] || 0\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return `${min}..${max}`\n}\n\nexport function average(values) {\n return sum(null, values) / values.length\n}\n\nexport function median(values) {\n if (!values.length) {\n return null\n }\n\n const mid = Math.floor(values.length / 2)\n const nums = [...values].sort((a, b) => a - b)\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2\n}\n\nexport function unique(values) {\n return Array.from(new Set(values).values())\n}\n\nexport function uniqueCount(values) {\n return new Set(values).size\n}\n\nexport function count(values) {\n return values.length\n}\n","import React from 'react'\n\nimport * as aggregations from '../aggregations'\n\nimport { getFirstDefined, flattenBy } from '../utils'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst emptyArray = []\nconst emptyObject = {}\n\n// Actions\nactions.resetGroupBy = 'resetGroupBy'\nactions.setGroupBy = 'setGroupBy'\nactions.toggleGroupBy = 'toggleGroupBy'\n\nexport const useGroupBy = hooks => {\n hooks.getGroupByToggleProps = [defaultGetGroupByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.groupBy,\n ])\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseGroupBy.pluginName = 'useGroupBy'\n\nconst defaultGetGroupByToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canGroupBy\n ? e => {\n e.persist()\n header.toggleGroupBy()\n }\n : undefined,\n style: {\n cursor: header.canGroupBy ? 'pointer' : undefined,\n },\n title: 'Toggle GroupBy',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n groupBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetGroupBy) {\n return {\n ...state,\n groupBy: instance.initialState.groupBy || [],\n }\n }\n\n if (action.type === actions.setGroupBy) {\n const { value } = action\n return {\n ...state,\n groupBy: value,\n }\n }\n\n if (action.type === actions.toggleGroupBy) {\n const { columnId, value: setGroupBy } = action\n\n const resolvedGroupBy =\n typeof setGroupBy !== 'undefined'\n ? setGroupBy\n : !state.groupBy.includes(columnId)\n\n if (resolvedGroupBy) {\n return {\n ...state,\n groupBy: [...state.groupBy, columnId],\n }\n }\n\n return {\n ...state,\n groupBy: state.groupBy.filter(d => d !== columnId),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { groupBy },\n },\n }\n) {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n\n const groupByColumns = groupBy\n .map(g => columns.find(col => col.id === g))\n .filter(Boolean)\n\n const nonGroupByColumns = columns.filter(col => !groupBy.includes(col.id))\n\n columns = [...groupByColumns, ...nonGroupByColumns]\n\n columns.forEach(column => {\n column.isGrouped = groupBy.includes(column.id)\n column.groupedIndex = groupBy.indexOf(column.id)\n })\n\n return columns\n}\n\nconst defaultUserAggregations = {}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n flatHeaders,\n groupByFn = defaultGroupByFn,\n manualGroupBy,\n aggregations: userAggregations = defaultUserAggregations,\n plugins,\n state: { groupBy },\n dispatch,\n autoResetGroupBy = true,\n disableGroupBy,\n defaultCanGroupBy,\n getHooks,\n } = instance\n\n ensurePluginOrder(plugins, ['useColumnOrder', 'useFilters'], 'useGroupBy')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultGroupBy: defaultColumnGroupBy,\n disableGroupBy: columnDisableGroupBy,\n } = column\n\n column.canGroupBy = accessor\n ? getFirstDefined(\n column.canGroupBy,\n columnDisableGroupBy === true ? false : undefined,\n disableGroupBy === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canGroupBy,\n defaultColumnGroupBy,\n defaultCanGroupBy,\n false\n )\n\n if (column.canGroupBy) {\n column.toggleGroupBy = () => instance.toggleGroupBy(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const toggleGroupBy = React.useCallback(\n (columnId, value) => {\n dispatch({ type: actions.toggleGroupBy, columnId, value })\n },\n [dispatch]\n )\n\n const setGroupBy = React.useCallback(\n value => {\n dispatch({ type: actions.setGroupBy, value })\n },\n [dispatch]\n )\n\n flatHeaders.forEach(header => {\n header.getGroupByToggleProps = makePropGetter(\n getHooks().getGroupByToggleProps,\n { instance: getInstance(), header }\n )\n })\n\n const [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ] = React.useMemo(() => {\n if (manualGroupBy || !groupBy.length) {\n return [\n rows,\n flatRows,\n rowsById,\n emptyArray,\n emptyObject,\n flatRows,\n rowsById,\n ]\n }\n\n // Ensure that the list of filtered columns exist\n const existingGroupBy = groupBy.filter(g =>\n allColumns.find(col => col.id === g)\n )\n\n // Find the columns that can or are aggregating\n // Uses each column to aggregate rows into a single value\n const aggregateRowsToValues = (leafRows, groupedRows, depth) => {\n const values = {}\n\n allColumns.forEach(column => {\n // Don't aggregate columns that are in the groupBy\n if (existingGroupBy.includes(column.id)) {\n values[column.id] = groupedRows[0]\n ? groupedRows[0].values[column.id]\n : null\n return\n }\n\n // Aggregate the values\n let aggregateFn =\n typeof column.aggregate === 'function'\n ? column.aggregate\n : userAggregations[column.aggregate] ||\n aggregations[column.aggregate]\n\n if (aggregateFn) {\n // Get the columnValues to aggregate\n const groupedValues = groupedRows.map(row => row.values[column.id])\n\n // Get the columnValues to aggregate\n const leafValues = leafRows.map(row => {\n let columnValue = row.values[column.id]\n\n if (!depth && column.aggregateValue) {\n const aggregateValueFn =\n typeof column.aggregateValue === 'function'\n ? column.aggregateValue\n : userAggregations[column.aggregateValue] ||\n aggregations[column.aggregateValue]\n\n if (!aggregateValueFn) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregateValue option for column listed above`\n )\n }\n\n columnValue = aggregateValueFn(columnValue, row, column)\n }\n return columnValue\n })\n\n values[column.id] = aggregateFn(leafValues, groupedValues)\n } else if (column.aggregate) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregate option for column listed above`\n )\n } else {\n values[column.id] = null\n }\n })\n\n return values\n }\n\n let groupedFlatRows = []\n const groupedRowsById = {}\n const onlyGroupedFlatRows = []\n const onlyGroupedRowsById = {}\n const nonGroupedFlatRows = []\n const nonGroupedRowsById = {}\n\n // Recursively group the data\n const groupUpRecursively = (rows, depth = 0, parentId) => {\n // This is the last level, just return the rows\n if (depth === existingGroupBy.length) {\n return rows.map((row) => ({ ...row, depth }))\n }\n\n const columnId = existingGroupBy[depth]\n\n // Group the rows together for this level\n let rowGroupsMap = groupByFn(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Object.entries(rowGroupsMap).map(\n ([groupByVal, groupedRows], index) => {\n let id = `${columnId}:${groupByVal}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, 'leafRows')\n : groupedRows\n\n const values = aggregateRowsToValues(leafRows, groupedRows, depth)\n\n const row = {\n id,\n isGrouped: true,\n groupByID: columnId,\n groupByVal,\n values,\n subRows,\n leafRows,\n depth,\n index,\n }\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rows)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n // Assign the new data\n return [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ]\n }, [\n manualGroupBy,\n groupBy,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userAggregations,\n groupByFn,\n ])\n\n const getAutoResetGroupBy = useGetLatest(autoResetGroupBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGroupBy()) {\n dispatch({ type: actions.resetGroupBy })\n }\n }, [dispatch, manualGroupBy ? null : data])\n\n Object.assign(instance, {\n preGroupedRows: rows,\n preGroupedFlatRow: flatRows,\n preGroupedRowsById: rowsById,\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n toggleGroupBy,\n setGroupBy,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the groupBy and the pivot cell for the row\n cell.isGrouped = cell.column.isGrouped && cell.column.id === row.groupByID\n // Placeholder cells are any columns in the groupBy that are not grouped\n cell.isPlaceholder = !cell.isGrouped && cell.column.isGrouped\n // Aggregated cells are not grouped, not repeated, but still have subRows\n cell.isAggregated =\n !cell.isGrouped && !cell.isPlaceholder && row.subRows?.length\n })\n}\n\nexport function defaultGroupByFn(rows, columnId) {\n return rows.reduce((prev, row, i) => {\n // TODO: Might want to implement a key serializer here so\n // irregular column values can still be grouped if needed?\n const resKey = `${row.values[columnId]}`\n prev[resKey] = Array.isArray(prev[resKey]) ? prev[resKey] : []\n prev[resKey].push(row)\n return prev\n }, {})\n}\n","const reSplitAlphaNumeric = /([0-9]+)/gm\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nexport const alphanumeric = (rowA, rowB, columnId) => {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n // Force to strings (or \"\" for unsupported types)\n a = toString(a)\n b = toString(b)\n\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n a = a.split(reSplitAlphaNumeric).filter(Boolean)\n b = b.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\nexport function datetime(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n a = a.getTime()\n b = b.getTime()\n\n return compareBasic(a, b)\n}\n\nexport function basic(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n return compareBasic(a, b)\n}\n\nexport function string(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n a = a.split('').filter(Boolean)\n b = b.split('').filter(Boolean)\n\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n let alower = aa.toLowerCase()\n let blower = bb.toLowerCase()\n\n // Case insensitive comparison until characters match\n if (alower > blower) {\n return 1\n }\n if (blower > alower) {\n return -1\n }\n // If lowercase characters are identical\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n return a.length - b.length\n}\n\nexport function number(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n const replaceNonNumeric = /[^0-9.]/gi\n\n a = Number(String(a).replace(replaceNonNumeric, ''))\n b = Number(String(b).replace(replaceNonNumeric, ''))\n\n return compareBasic(a, b)\n}\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction getRowValuesByColumnID(row1, row2, columnId) {\n return [row1.values[columnId], row2.values[columnId]]\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n","import React from 'react'\n\nimport {\n actions,\n ensurePluginOrder,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, isFunction } from '../utils'\n\nimport * as sortTypes from '../sortTypes'\n\n// Actions\nactions.resetSortBy = 'resetSortBy'\nactions.setSortBy = 'setSortBy'\nactions.toggleSortBy = 'toggleSortBy'\nactions.clearSortBy = 'clearSortBy'\n\ndefaultColumn.sortType = 'alphanumeric'\ndefaultColumn.sortDescFirst = false\n\nexport const useSortBy = hooks => {\n hooks.getSortByToggleProps = [defaultGetSortByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseSortBy.pluginName = 'useSortBy'\n\nconst defaultGetSortByToggleProps = (props, { instance, column }) => {\n const { isMultiSortEvent = e => e.shiftKey } = instance\n\n return [\n props,\n {\n onClick: column.canSort\n ? e => {\n e.persist()\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e)\n )\n }\n : undefined,\n style: {\n cursor: column.canSort ? 'pointer' : undefined,\n },\n title: column.canSort ? 'Toggle SortBy' : undefined,\n },\n ]\n}\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n sortBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetSortBy) {\n return {\n ...state,\n sortBy: instance.initialState.sortBy || [],\n }\n }\n\n if (action.type === actions.clearSortBy) {\n const { sortBy } = state\n const newSortBy = sortBy.filter(d => d.id !== action.columnId)\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n\n if (action.type === actions.setSortBy) {\n const { sortBy } = action\n return {\n ...state,\n sortBy,\n }\n }\n\n if (action.type === actions.toggleSortBy) {\n const { columnId, desc, multi } = action\n\n const {\n allColumns,\n disableMultiSort,\n disableSortRemove,\n disableMultiRemove,\n maxMultiSortColCount = Number.MAX_SAFE_INTEGER,\n } = instance\n\n const { sortBy } = state\n\n // Find the column for this columnId\n const column = allColumns.find(d => d.id === columnId)\n const { sortDescFirst } = column\n\n // Find any existing sortBy for this column\n const existingSortBy = sortBy.find(d => d.id === columnId)\n const existingIndex = sortBy.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSortBy = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (!disableMultiSort && multi) {\n if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (existingIndex !== sortBy.length - 1 || sortBy.length !== 1) {\n sortAction = 'replace'\n } else if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sortBy\n if (\n sortAction === 'toggle' && // Must be toggling\n !disableSortRemove && // If disableSortRemove, disable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? !disableMultiRemove : true) && // If multi, don't allow if disableMultiRemove\n ((existingSortBy && // Finally, detect if it should indeed be removed\n existingSortBy.desc &&\n !sortDescFirst) ||\n (!existingSortBy.desc && sortDescFirst))\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSortBy = [\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n } else if (sortAction === 'add') {\n newSortBy = [\n ...sortBy,\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n // Take latest n columns\n newSortBy.splice(0, newSortBy.length - maxMultiSortColCount)\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSortBy = sortBy.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc : !existingSortBy.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSortBy = sortBy.filter(d => d.id !== columnId)\n }\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n allColumns,\n orderByFn = defaultOrderByFn,\n sortTypes: userSortTypes,\n manualSortBy,\n defaultCanSort,\n disableSortBy,\n flatHeaders,\n state: { sortBy },\n dispatch,\n plugins,\n getHooks,\n autoResetSortBy = true,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGlobalFilter', 'useGroupBy', 'usePivotColumns'],\n 'useSortBy'\n )\n\n const setSortBy = React.useCallback(\n sortBy => {\n dispatch({ type: actions.setSortBy, sortBy })\n },\n [dispatch]\n )\n\n // Updates sorting based on a columnId, desc flag and multi flag\n const toggleSortBy = React.useCallback(\n (columnId, desc, multi) => {\n dispatch({ type: actions.toggleSortBy, columnId, desc, multi })\n },\n [dispatch]\n )\n\n // use reference to avoid memory leak in #1608\n const getInstance = useGetLatest(instance)\n\n // Add the getSortByToggleProps method to columns and headers\n flatHeaders.forEach(column => {\n const {\n accessor,\n canSort: defaultColumnCanSort,\n disableSortBy: columnDisableSortBy,\n id,\n } = column\n\n const canSort = accessor\n ? getFirstDefined(\n columnDisableSortBy === true ? false : undefined,\n disableSortBy === true ? false : undefined,\n true\n )\n : getFirstDefined(defaultCanSort, defaultColumnCanSort, false)\n\n column.canSort = canSort\n\n if (column.canSort) {\n column.toggleSortBy = (desc, multi) =>\n toggleSortBy(column.id, desc, multi)\n\n column.clearSortBy = () => {\n dispatch({ type: actions.clearSortBy, columnId: column.id })\n }\n }\n\n column.getSortByToggleProps = makePropGetter(\n getHooks().getSortByToggleProps,\n {\n instance: getInstance(),\n column,\n }\n )\n\n const columnSort = sortBy.find(d => d.id === id)\n column.isSorted = !!columnSort\n column.sortedIndex = sortBy.findIndex(d => d.id === id)\n column.isSortedDesc = column.isSorted ? columnSort.desc : undefined\n })\n\n const [sortedRows, sortedFlatRows] = React.useMemo(() => {\n if (manualSortBy || !sortBy.length) {\n return [rows, flatRows]\n }\n\n const sortedFlatRows = []\n\n // Filter out sortBys that correspond to non existing columns\n const availableSortBy = sortBy.filter(sort =>\n allColumns.find(col => col.id === sort.id)\n )\n\n const sortData = rows => {\n // Use the orderByFn to compose multiple sortBy's together.\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = orderByFn(\n rows,\n availableSortBy.map(sort => {\n // Support custom sorting methods for each column\n const column = allColumns.find(d => d.id === sort.id)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${sort.id} while sorting`\n )\n }\n\n const { sortType } = column\n\n // Look up sortBy functions in this order:\n // column function\n // column string lookup on user sortType\n // column string lookup on built-in sortType\n // default function\n // default string lookup on user sortType\n // default string lookup on built-in sortType\n const sortMethod =\n isFunction(sortType) ||\n (userSortTypes || {})[sortType] ||\n sortTypes[sortType]\n\n if (!sortMethod) {\n throw new Error(\n `React-Table: Could not find a valid sortType of '${sortType}' for column '${sort.id}'.`\n )\n }\n\n // Return the correct sortFn.\n // This function should always return in ascending order\n return (a, b) => sortMethod(a, b, sort.id, sort.desc)\n }),\n // Map the directions\n availableSortBy.map(sort => {\n // Detect and use the sortInverted option\n const column = allColumns.find(d => d.id === sort.id)\n\n if (column && column.sortInverted) {\n return sort.desc\n }\n\n return !sort.desc\n })\n )\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length === 0) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return [sortData(rows), sortedFlatRows]\n }, [\n manualSortBy,\n sortBy,\n rows,\n flatRows,\n allColumns,\n orderByFn,\n userSortTypes,\n ])\n\n const getAutoResetSortBy = useGetLatest(autoResetSortBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSortBy()) {\n dispatch({ type: actions.resetSortBy })\n }\n }, [manualSortBy ? null : data])\n\n Object.assign(instance, {\n preSortedRows: rows,\n preSortedFlatRows: flatRows,\n sortedRows,\n sortedFlatRows,\n rows: sortedRows,\n flatRows: sortedFlatRows,\n setSortBy,\n toggleSortBy,\n })\n}\n\nexport function defaultOrderByFn(arr, funcs, dirs) {\n return [...arr].sort((rowA, rowB) => {\n for (let i = 0; i < funcs.length; i += 1) {\n const sortFn = funcs[i]\n const desc = dirs[i] === false || dirs[i] === 'desc'\n const sortInt = sortFn(rowA, rowB)\n if (sortInt !== 0) {\n return desc ? -sortInt : sortInt\n }\n }\n return dirs[0] ? rowA.index - rowB.index : rowB.index - rowA.index\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n actions,\n ensurePluginOrder,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { expandRows } from '../utils'\n\nconst pluginName = 'usePagination'\n\n// Actions\nactions.resetPage = 'resetPage'\nactions.gotoPage = 'gotoPage'\nactions.setPageSize = 'setPageSize'\n\nexport const usePagination = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nusePagination.pluginName = pluginName\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pageSize: 10,\n pageIndex: 0,\n ...state,\n }\n }\n\n if (action.type === actions.resetPage) {\n return {\n ...state,\n pageIndex: instance.initialState.pageIndex || 0,\n }\n }\n\n if (action.type === actions.gotoPage) {\n const { pageCount, page } = instance\n const newPageIndex = functionalUpdate(action.pageIndex, state.pageIndex)\n let canNavigate = false\n\n if (newPageIndex > state.pageIndex) {\n // next page\n canNavigate =\n pageCount === -1\n ? page.length >= state.pageSize\n : newPageIndex < pageCount\n } else if (newPageIndex < state.pageIndex) {\n // prev page\n canNavigate = newPageIndex > -1\n }\n\n if (!canNavigate) {\n return state\n }\n\n return {\n ...state,\n pageIndex: newPageIndex,\n }\n }\n\n if (action.type === actions.setPageSize) {\n const { pageSize } = action\n const topRowIndex = state.pageSize * state.pageIndex\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...state,\n pageIndex,\n pageSize,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n rows,\n autoResetPage = true,\n manualExpandedKey = 'expanded',\n plugins,\n pageCount: userPageCount,\n paginateExpandedRows = true,\n expandSubRows = true,\n state: {\n pageSize,\n pageIndex,\n expanded,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n },\n dispatch,\n data,\n manualPagination,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useGlobalFilter', 'useFilters', 'useGroupBy', 'useSortBy', 'useExpanded'],\n 'usePagination'\n )\n\n const getAutoResetPage = useGetLatest(autoResetPage)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPage()) {\n dispatch({ type: actions.resetPage })\n }\n }, [\n dispatch,\n manualPagination ? null : data,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n ])\n\n const pageCount = manualPagination\n ? userPageCount\n : Math.ceil(rows.length / pageSize)\n\n const pageOptions = React.useMemo(\n () =>\n pageCount > 0\n ? [...new Array(pageCount)].fill(null).map((d, i) => i)\n : [],\n [pageCount]\n )\n\n const page = React.useMemo(() => {\n let page\n\n if (manualPagination) {\n page = rows\n } else {\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n page = rows.slice(pageStart, pageEnd)\n }\n\n if (paginateExpandedRows) {\n return page\n }\n\n return expandRows(page, { manualExpandedKey, expanded, expandSubRows })\n }, [\n expandSubRows,\n expanded,\n manualExpandedKey,\n manualPagination,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n rows,\n ])\n\n const canPreviousPage = pageIndex > 0\n const canNextPage =\n pageCount === -1 ? page.length >= pageSize : pageIndex < pageCount - 1\n\n const gotoPage = React.useCallback(\n pageIndex => {\n dispatch({ type: actions.gotoPage, pageIndex })\n },\n [dispatch]\n )\n\n const previousPage = React.useCallback(() => {\n return gotoPage(old => old - 1)\n }, [gotoPage])\n\n const nextPage = React.useCallback(() => {\n return gotoPage(old => old + 1)\n }, [gotoPage])\n\n const setPageSize = React.useCallback(\n pageSize => {\n dispatch({ type: actions.setPageSize, pageSize })\n },\n [dispatch]\n )\n\n Object.assign(instance, {\n pageOptions,\n pageCount,\n page,\n canPreviousPage,\n canNextPage,\n gotoPage,\n previousPage,\n nextPage,\n setPageSize,\n })\n}\n","/* istanbul ignore file */\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { flattenColumns, getFirstDefined } from '../utils'\n\n// Actions\nactions.resetPivot = 'resetPivot'\nactions.togglePivot = 'togglePivot'\n\nexport const _UNSTABLE_usePivotColumns = hooks => {\n hooks.getPivotToggleProps = [defaultGetPivotToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstanceAfterData.push(useInstanceAfterData)\n hooks.allColumns.push(allColumns)\n hooks.accessValue.push(accessValue)\n hooks.materializedColumns.push(materializedColumns)\n hooks.materializedColumnsDeps.push(materializedColumnsDeps)\n hooks.visibleColumns.push(visibleColumns)\n hooks.visibleColumnsDeps.push(visibleColumnsDeps)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\n_UNSTABLE_usePivotColumns.pluginName = 'usePivotColumns'\n\nconst defaultPivotColumns = []\n\nconst defaultGetPivotToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canPivot\n ? e => {\n e.persist()\n header.togglePivot()\n }\n : undefined,\n style: {\n cursor: header.canPivot ? 'pointer' : undefined,\n },\n title: 'Toggle Pivot',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pivotColumns: defaultPivotColumns,\n ...state,\n }\n }\n\n if (action.type === actions.resetPivot) {\n return {\n ...state,\n pivotColumns: instance.initialState.pivotColumns || defaultPivotColumns,\n }\n }\n\n if (action.type === actions.togglePivot) {\n const { columnId, value: setPivot } = action\n\n const resolvedPivot =\n typeof setPivot !== 'undefined'\n ? setPivot\n : !state.pivotColumns.includes(columnId)\n\n if (resolvedPivot) {\n return {\n ...state,\n pivotColumns: [...state.pivotColumns, columnId],\n }\n }\n\n return {\n ...state,\n pivotColumns: state.pivotColumns.filter(d => d !== columnId),\n }\n }\n}\n\nfunction useInstanceAfterData(instance) {\n instance.allColumns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n })\n}\n\nfunction allColumns(columns, { instance }) {\n columns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n column.uniqueValues = new Set()\n })\n return columns\n}\n\nfunction accessValue(value, { column }) {\n if (column.uniqueValues && typeof value !== 'undefined') {\n column.uniqueValues.add(value)\n }\n return value\n}\n\nfunction materializedColumns(materialized, { instance }) {\n const { allColumns, state } = instance\n\n if (!state.pivotColumns.length || !state.groupBy || !state.groupBy.length) {\n return materialized\n }\n\n const pivotColumns = state.pivotColumns\n .map(id => allColumns.find(d => d.id === id))\n .filter(Boolean)\n\n const sourceColumns = allColumns.filter(\n d =>\n !d.isPivotSource &&\n !state.groupBy.includes(d.id) &&\n !state.pivotColumns.includes(d.id)\n )\n\n const buildPivotColumns = (depth = 0, parent, pivotFilters = []) => {\n const pivotColumn = pivotColumns[depth]\n\n if (!pivotColumn) {\n return sourceColumns.map(sourceColumn => {\n // TODO: We could offer support here for renesting pivoted\n // columns inside copies of their header groups. For now,\n // that seems like it would be (1) overkill on nesting, considering\n // you already get nesting for every pivot level and (2)\n // really hard. :)\n\n return {\n ...sourceColumn,\n canPivot: false,\n isPivoted: true,\n parent,\n depth: depth,\n id: `${parent ? `${parent.id}.${sourceColumn.id}` : sourceColumn.id}`,\n accessor: (originalRow, i, row) => {\n if (pivotFilters.every(filter => filter(row))) {\n return row.values[sourceColumn.id]\n }\n },\n }\n })\n }\n\n const uniqueValues = Array.from(pivotColumn.uniqueValues).sort()\n\n return uniqueValues.map(uniqueValue => {\n const columnGroup = {\n ...pivotColumn,\n Header:\n pivotColumn.PivotHeader || typeof pivotColumn.header === 'string'\n ? `${pivotColumn.Header}: ${uniqueValue}`\n : uniqueValue,\n isPivotGroup: true,\n parent,\n depth,\n id: parent\n ? `${parent.id}.${pivotColumn.id}.${uniqueValue}`\n : `${pivotColumn.id}.${uniqueValue}`,\n pivotValue: uniqueValue,\n }\n\n columnGroup.columns = buildPivotColumns(depth + 1, columnGroup, [\n ...pivotFilters,\n row => row.values[pivotColumn.id] === uniqueValue,\n ])\n\n return columnGroup\n })\n }\n\n const newMaterialized = flattenColumns(buildPivotColumns())\n\n return [...materialized, ...newMaterialized]\n}\n\nfunction materializedColumnsDeps(\n deps,\n {\n instance: {\n state: { pivotColumns, groupBy },\n },\n }\n) {\n return [...deps, pivotColumns, groupBy]\n}\n\nfunction visibleColumns(visibleColumns, { instance: { state } }) {\n visibleColumns = visibleColumns.filter(d => !d.isPivotSource)\n\n if (state.pivotColumns.length && state.groupBy && state.groupBy.length) {\n visibleColumns = visibleColumns.filter(\n column => column.isGrouped || column.isPivoted\n )\n }\n\n return visibleColumns\n}\n\nfunction visibleColumnsDeps(deps, { instance }) {\n return [...deps, instance.state.pivotColumns, instance.state.groupBy]\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n allColumns,\n flatHeaders,\n // pivotFn = defaultPivotFn,\n // manualPivot,\n getHooks,\n plugins,\n dispatch,\n autoResetPivot = true,\n manaulPivot,\n disablePivot,\n defaultCanPivot,\n } = instance\n\n ensurePluginOrder(plugins, ['useGroupBy'], 'usePivotColumns')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultPivot: defaultColumnPivot,\n disablePivot: columnDisablePivot,\n } = column\n\n column.canPivot = accessor\n ? getFirstDefined(\n column.canPivot,\n columnDisablePivot === true ? false : undefined,\n disablePivot === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canPivot,\n defaultColumnPivot,\n defaultCanPivot,\n false\n )\n\n if (column.canPivot) {\n column.togglePivot = () => instance.togglePivot(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const togglePivot = (columnId, value) => {\n dispatch({ type: actions.togglePivot, columnId, value })\n }\n\n flatHeaders.forEach(header => {\n header.getPivotToggleProps = makePropGetter(\n getHooks().getPivotToggleProps,\n {\n instance: getInstance(),\n header,\n }\n )\n })\n\n const getAutoResetPivot = useGetLatest(autoResetPivot)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPivot()) {\n dispatch({ type: actions.resetPivot })\n }\n }, [dispatch, manaulPivot ? null : columns])\n\n Object.assign(instance, {\n togglePivot,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the pivotColumns and the pivot cell for the row\n cell.isPivoted = cell.column.isPivoted\n })\n}\n","import React from 'react'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nconst pluginName = 'useRowSelect'\n\n// Actions\nactions.resetSelectedRows = 'resetSelectedRows'\nactions.toggleAllRowsSelected = 'toggleAllRowsSelected'\nactions.toggleRowSelected = 'toggleRowSelected'\nactions.toggleAllPageRowsSelected = 'toggleAllPageRowsSelected'\n\nexport const useRowSelect = hooks => {\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps]\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps]\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowSelect.pluginName = pluginName\n\nconst defaultGetToggleRowSelectedProps = (props, { instance, row }) => {\n const { manualRowSelectedKey = 'isSelected' } = instance\n let checked = false\n\n if (row.original && row.original[manualRowSelectedKey]) {\n checked = true\n } else {\n checked = row.isSelected\n }\n\n return [\n props,\n {\n onChange: e => {\n row.toggleRowSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked,\n title: 'Toggle Row Selected',\n indeterminate: row.isSomeSelected,\n },\n ]\n}\n\nconst defaultGetToggleAllRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleAllRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length\n ),\n },\n]\n\nconst defaultGetToggleAllPageRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange(e) {\n instance.toggleAllPageRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }) => instance.state.selectedRowIds[id])\n ),\n },\n]\n\n// eslint-disable-next-line max-params\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action\n const {\n isAllRowsSelected,\n rowsById,\n nonGroupedRowsById = rowsById,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllRowsSelected\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = Object.assign({}, state.selectedRowIds)\n\n if (selectAll) {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n selectedRowIds[rowId] = true\n })\n } else {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n delete selectedRowIds[rowId]\n })\n }\n\n return {\n ...state,\n selectedRowIds,\n }\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action\n const { rowsById, selectSubRows = true, getSubRows } = instance\n const isSelected = state.selectedRowIds[id]\n const shouldExist =\n typeof setSelected !== 'undefined' ? setSelected : !isSelected\n\n if (isSelected === shouldExist) {\n return state\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (row) {\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n }\n\n handleRowById(id)\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllPageRowsSelected\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (!row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n\n page.forEach(row => handleRowById(row.id))\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n return state\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n state: { selectedRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGroupBy', 'useSortBy', 'useExpanded', 'usePagination'],\n 'useRowSelect'\n )\n\n const selectedFlatRows = React.useMemo(() => {\n const selectedFlatRows = []\n\n rows.forEach(row => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id]\n row.isSelected = !!isSelected\n row.isSomeSelected = isSelected === null\n\n if (isSelected) {\n selectedFlatRows.push(row)\n }\n })\n\n return selectedFlatRows\n }, [rows, selectSubRows, selectedRowIds, getSubRows])\n\n let isAllRowsSelected = Boolean(\n Object.keys(nonGroupedRowsById).length && Object.keys(selectedRowIds).length\n )\n\n let isAllPageRowsSelected = isAllRowsSelected\n\n if (isAllRowsSelected) {\n if (Object.keys(nonGroupedRowsById).some(id => !selectedRowIds[id])) {\n isAllRowsSelected = false\n }\n }\n\n if (!isAllRowsSelected) {\n if (page && page.length && page.some(({ id }) => !selectedRowIds[id])) {\n isAllPageRowsSelected = false\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows })\n }\n }, [dispatch, data])\n\n const toggleAllRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch]\n )\n\n const toggleAllPageRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch]\n )\n\n const toggleRowSelected = React.useCallback(\n (id, value) => dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch]\n )\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n { instance: getInstance() }\n )\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n selectedFlatRows,\n isAllRowsSelected,\n isAllPageRowsSelected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n row.toggleRowSelected = set => instance.toggleRowSelected(row.id, set)\n\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n { instance: instance, row }\n )\n}\n\nfunction getRowIsSelected(row, selectedRowIds, getSubRows) {\n if (selectedRowIds[row.id]) {\n return true\n }\n\n const subRows = getSubRows(row)\n\n if (subRows && subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n return allChildrenSelected ? true : someSelected ? null : false\n }\n\n return false\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst defaultInitialRowStateAccessor = row => ({})\nconst defaultInitialCellStateAccessor = cell => ({})\n\n// Actions\nactions.setRowState = 'setRowState'\nactions.setCellState = 'setCellState'\nactions.resetRowState = 'resetRowState'\n\nexport const useRowState = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowState.pluginName = 'useRowState'\n\nfunction reducer(state, action, previousState, instance) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n rowsById,\n } = instance\n\n if (action.type === actions.init) {\n return {\n rowState: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetRowState) {\n return {\n ...state,\n rowState: instance.initialState.rowState || {},\n }\n }\n\n if (action.type === actions.setRowState) {\n const { rowId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: functionalUpdate(value, oldRowState),\n },\n }\n }\n\n if (action.type === actions.setCellState) {\n const { rowId, columnId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n const oldCellState =\n typeof oldRowState?.cellState?.[columnId] !== 'undefined'\n ? oldRowState.cellState[columnId]\n : initialCellStateAccessor(\n rowsById[rowId]?.cells?.find(cell => cell.column.id === columnId)\n )\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: {\n ...oldRowState,\n cellState: {\n ...(oldRowState.cellState || {}),\n [columnId]: functionalUpdate(value, oldCellState),\n },\n },\n },\n }\n }\n}\n\nfunction useInstance(instance) {\n const { autoResetRowState = true, data, dispatch } = instance\n\n const setRowState = React.useCallback(\n (rowId, value) =>\n dispatch({\n type: actions.setRowState,\n rowId,\n value,\n }),\n [dispatch]\n )\n\n const setCellState = React.useCallback(\n (rowId, columnId, value) =>\n dispatch({\n type: actions.setCellState,\n rowId,\n columnId,\n value,\n }),\n [dispatch]\n )\n\n const getAutoResetRowState = useGetLatest(autoResetRowState)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetRowState()) {\n dispatch({ type: actions.resetRowState })\n }\n }, [data])\n\n Object.assign(instance, {\n setRowState,\n setCellState,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n state: { rowState },\n } = instance\n\n if (row) {\n row.state =\n typeof rowState[row.id] !== 'undefined'\n ? rowState[row.id]\n : initialRowStateAccessor(row)\n\n row.setState = updater => {\n return instance.setRowState(row.id, updater)\n }\n\n row.cells.forEach(cell => {\n if (!row.state.cellState) {\n row.state.cellState = {}\n }\n\n cell.state =\n typeof row.state.cellState[cell.column.id] !== 'undefined'\n ? row.state.cellState[cell.column.id]\n : initialCellStateAccessor(cell)\n\n cell.setState = updater => {\n return instance.setCellState(row.id, cell.column.id, updater)\n }\n })\n }\n}\n","import React from 'react'\n\nimport { functionalUpdate, actions } from '../publicUtils'\n\n// Actions\nactions.resetColumnOrder = 'resetColumnOrder'\nactions.setColumnOrder = 'setColumnOrder'\n\nexport const useColumnOrder = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => {\n return [...deps, instance.state.columnOrder]\n })\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnOrder.pluginName = 'useColumnOrder'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n columnOrder: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetColumnOrder) {\n return {\n ...state,\n columnOrder: instance.initialState.columnOrder || [],\n }\n }\n\n if (action.type === actions.setColumnOrder) {\n return {\n ...state,\n columnOrder: functionalUpdate(action.columnOrder, state.columnOrder),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { columnOrder },\n },\n }\n) {\n // If there is no order, return the normal columns\n if (!columnOrder || !columnOrder.length) {\n return columns\n }\n\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n const columnsInOrder = []\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId)\n if (foundIndex > -1) {\n columnsInOrder.push(columnsCopy.splice(foundIndex, 1)[0])\n }\n }\n\n // If there are any columns left, add them to the end\n return [...columnsInOrder, ...columnsCopy]\n}\n\nfunction useInstance(instance) {\n const { dispatch } = instance\n\n instance.setColumnOrder = React.useCallback(\n columnOrder => {\n return dispatch({ type: actions.setColumnOrder, columnOrder })\n },\n [dispatch]\n )\n}\n","import React from 'react'\n\nimport {\n actions,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n ensurePluginOrder,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, passiveEventSupported } from '../utils'\n\n// Default Column\ndefaultColumn.canResize = true\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport const useResizeColumns = hooks => {\n hooks.getResizerProps = [defaultGetResizerProps]\n hooks.getHeaderProps.push({\n style: {\n position: 'relative',\n },\n })\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n}\n\nconst defaultGetResizerProps = (props, { instance, header }) => {\n const { dispatch } = instance\n\n const onResizeStart = (e, header) => {\n let isTouchEvent = false\n if (e.type === 'touchstart') {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n isTouchEvent = true\n }\n const headersToResize = getLeafHeaders(header)\n const headerIdWidths = headersToResize.map(d => [d.id, d.totalWidth])\n\n const clientX = isTouchEvent ? Math.round(e.touches[0].clientX) : e.clientX\n\n let raf\n let mostRecentClientX\n\n const dispatchEnd = () => {\n window.cancelAnimationFrame(raf)\n raf = null\n dispatch({ type: actions.columnDoneResizing })\n }\n const dispatchMove = () => {\n window.cancelAnimationFrame(raf)\n raf = null\n dispatch({ type: actions.columnResizing, clientX: mostRecentClientX })\n }\n\n const scheduleDispatchMoveOnNextAnimationFrame = clientXPos => {\n mostRecentClientX = clientXPos\n if (!raf) {\n raf = window.requestAnimationFrame(dispatchMove)\n }\n }\n\n const handlersAndEvents = {\n mouse: {\n moveEvent: 'mousemove',\n moveHandler: e => scheduleDispatchMoveOnNextAnimationFrame(e.clientX),\n upEvent: 'mouseup',\n upHandler: e => {\n document.removeEventListener(\n 'mousemove',\n handlersAndEvents.mouse.moveHandler\n )\n document.removeEventListener(\n 'mouseup',\n handlersAndEvents.mouse.upHandler\n )\n dispatchEnd()\n },\n },\n touch: {\n moveEvent: 'touchmove',\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n scheduleDispatchMoveOnNextAnimationFrame(e.touches[0].clientX)\n return false\n },\n upEvent: 'touchend',\n upHandler: e => {\n document.removeEventListener(\n handlersAndEvents.touch.moveEvent,\n handlersAndEvents.touch.moveHandler\n )\n document.removeEventListener(\n handlersAndEvents.touch.upEvent,\n handlersAndEvents.touch.moveHandler\n )\n dispatchEnd()\n },\n },\n }\n\n const events = isTouchEvent\n ? handlersAndEvents.touch\n : handlersAndEvents.mouse\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n document.addEventListener(\n events.moveEvent,\n events.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n events.upEvent,\n events.upHandler,\n passiveIfSupported\n )\n\n dispatch({\n type: actions.columnStartResizing,\n columnId: header.id,\n columnWidth: header.totalWidth,\n headerIdWidths,\n clientX,\n })\n }\n\n return [\n props,\n {\n onMouseDown: e => e.persist() || onResizeStart(e, header),\n onTouchStart: e => e.persist() || onResizeStart(e, header),\n style: {\n cursor: 'col-resize',\n },\n draggable: false,\n role: 'separator',\n },\n ]\n}\n\nuseResizeColumns.pluginName = 'useResizeColumns'\n\nfunction reducer(state, action) {\n if (action.type === actions.init) {\n return {\n columnResizing: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n columnResizing: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { clientX, columnId, columnWidth, headerIdWidths } = action\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: clientX,\n headerIdWidths,\n columnWidth,\n isResizingColumn: columnId,\n },\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX, columnWidth, headerIdWidths = [] } = state.columnResizing\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.max(\n headerWidth + headerWidth * percentageDeltaX,\n 0\n )\n })\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n columnWidths: {\n ...state.columnResizing.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: null,\n isResizingColumn: null,\n },\n }\n }\n}\n\nconst useInstanceBeforeDimensions = instance => {\n const {\n flatHeaders,\n disableResizing,\n getHooks,\n state: { columnResizing },\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n flatHeaders.forEach(header => {\n const canResize = getFirstDefined(\n header.disableResizing === true ? false : undefined,\n disableResizing === true ? false : undefined,\n true\n )\n\n header.canResize = canResize\n header.width =\n columnResizing.columnWidths[header.id] ||\n header.originalWidth ||\n header.width\n header.isResizing = columnResizing.isResizingColumn === header.id\n\n if (canResize) {\n header.getResizerProps = makePropGetter(getHooks().getResizerProps, {\n instance: getInstance(),\n header,\n })\n }\n })\n}\n\nfunction useInstance(instance) {\n const { plugins, dispatch, autoResetResize = true, columns } = instance\n\n ensurePluginOrder(plugins, ['useAbsoluteLayout'], 'useResizeColumns')\n\n const getAutoResetResize = useGetLatest(autoResetResize)\n useMountedLayoutEffect(() => {\n if (getAutoResetResize()) {\n dispatch({ type: actions.resetResize })\n }\n }, [columns])\n\n const resetResizing = React.useCallback(\n () => dispatch({ type: actions.resetResize }),\n [dispatch]\n )\n\n Object.assign(instance, {\n resetResizing,\n })\n}\n\nfunction getLeafHeaders(header) {\n const leafHeaders = []\n const recurseHeader = header => {\n if (header.columns && header.columns.length) {\n header.columns.map(recurseHeader)\n }\n leafHeaders.push(header)\n }\n recurseHeader(header)\n return leafHeaders\n}\n","const cellStyles = {\n position: 'absolute',\n top: 0,\n}\n\nexport const useAbsoluteLayout = hooks => {\n hooks.getTableBodyProps.push(getRowStyles)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${cell.column.totalLeft}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseAbsoluteLayout.pluginName = 'useAbsoluteLayout'\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n position: 'relative',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n","const cellStyles = {\n display: 'inline-block',\n boxSizing: 'border-box',\n}\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n\nexport const useBlockLayout = hooks => {\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseBlockLayout.pluginName = 'useBlockLayout'\n","export function useFlexLayout(hooks) {\n hooks.getTableProps.push(getTableProps)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getCellProps.push(getCellProps)\n hooks.getFooterProps.push(getFooterProps)\n}\n\nuseFlexLayout.pluginName = 'useFlexLayout'\n\nconst getTableProps = (props, { instance }) => [\n props,\n {\n style: {\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n flex: '1 0 auto',\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n\nconst getCellProps = (props, { cell }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: `${cell.column.totalFlexWidth} 0 auto`,\n minWidth: `${cell.column.totalMinWidth}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n]\n\nconst getFooterProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n","import { actions } from '../publicUtils'\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport function useGridLayout(hooks) {\n hooks.stateReducers.push(reducer)\n hooks.getTableProps.push(getTableProps)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getRowProps.push(getRowProps)\n}\n\nuseGridLayout.pluginName = 'useGridLayout'\n\nconst getTableProps = (props, { instance }) => {\n const gridTemplateColumns = instance.visibleColumns.map(column => {\n if (instance.state.gridLayout.columnWidths[column.id])\n return `${instance.state.gridLayout.columnWidths[column.id]}px`\n // When resizing, lock the width of all unset columns\n // instead of using user-provided width or defaultColumn width,\n // which could potentially be 'auto' or 'fr' units that don't scale linearly\n if (instance.state.columnResizing?.isResizingColumn)\n return `${instance.state.gridLayout.startWidths[column.id]}px`\n if (typeof column.width === 'number') return `${column.width}px`\n return column.width\n })\n return [\n props,\n {\n style: {\n display: `grid`,\n gridTemplateColumns: gridTemplateColumns.join(` `),\n },\n },\n ]\n}\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n id: `header-cell-${column.id}`,\n style: {\n position: `sticky`, //enables a scroll wrapper to be placed around the table and have sticky headers\n gridColumn: `span ${column.totalVisibleHeaderCount}`,\n },\n },\n]\n\nconst getRowProps = (props, { row }) => {\n if (row.isExpanded) {\n return [\n props,\n {\n style: {\n gridColumn: `1 / ${row.cells.length + 1}`,\n },\n },\n ]\n }\n return [props, {}]\n}\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n gridLayout: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n gridLayout: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { columnId, headerIdWidths } = action\n const columnWidth = getElementWidth(columnId)\n\n if (columnWidth !== undefined) {\n const startWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: getElementWidth(column.id),\n }),\n {}\n )\n const minWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: column.minWidth,\n }),\n {}\n )\n const maxWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: column.maxWidth,\n }),\n {}\n )\n\n const headerIdGridWidths = headerIdWidths.map(([headerId]) => [\n headerId,\n getElementWidth(headerId),\n ])\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n startWidths,\n minWidths,\n maxWidths,\n headerIdGridWidths,\n columnWidth,\n },\n }\n } else {\n return state\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX } = state.columnResizing\n const {\n columnWidth,\n minWidths,\n maxWidths,\n headerIdGridWidths = [],\n } = state.gridLayout\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdGridWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.min(\n Math.max(\n minWidths[headerId],\n headerWidth + headerWidth * percentageDeltaX\n ),\n maxWidths[headerId]\n )\n })\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n columnWidths: {\n ...state.gridLayout.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n startWidths: {},\n minWidths: {},\n maxWidths: {},\n },\n }\n }\n}\n\nfunction getElementWidth(columnId) {\n const width = document.getElementById(`header-cell-${columnId}`)?.offsetWidth\n\n if (width !== undefined) {\n return width\n }\n}\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/react-table.production.min.js')\n} else {\n module.exports = require('./dist/react-table.development.js')\n}\n","/*! For license information please see index.js.LICENSE.txt */\n(()=>{var e={184:(e,n)=>{var r;!function(){\"use strict\";var t={}.hasOwnProperty;function o(){for(var e=[],n=0;n{\"use strict\";r.d(n,{Z:()=>i});var t=r(81),o=r.n(t),a=r(645),c=r.n(a)()(o());c.push([e.id,\"/* :where() gives the styles specificity 0, which makes them overridable */\\n:where(.vi__wrapper) {\\n position: relative;\\n width: min-content;\\n}\\n\\n.vi {\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n box-sizing: border-box;\\n position: absolute;\\n color: transparent;\\n background: transparent;\\n caret-color: transparent;\\n outline: none;\\n border: 0 none transparent;\\n}\\n\\n.vi::selection {\\n background: transparent;\\n}\\n\\n:where(.vi__container) {\\n display: flex;\\n gap: 8px;\\n height: 50px;\\n width: 300px;\\n}\\n\\n:where(.vi__character) {\\n height: 100%;\\n flex-grow: 1;\\n flex-basis: 0;\\n text-align: center;\\n font-size: 36px;\\n line-height: 50px;\\n color: black;\\n background-color: white;\\n border: 1px solid black;\\n cursor: default;\\n user-select: none;\\n box-sizing: border-box;\\n}\\n\\n:where(.vi__character--inactive) {\\n color: dimgray;\\n background-color: lightgray;\\n}\\n\\n:where(.vi__character--selected) {\\n outline: 2px solid cornflowerblue;\\n color: cornflowerblue;\\n}\\n\",\"\"]);const i=c},645:e=>{\"use strict\";e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var r=\"\",t=void 0!==n[5];return n[4]&&(r+=\"@supports (\".concat(n[4],\") {\")),n[2]&&(r+=\"@media \".concat(n[2],\" {\")),t&&(r+=\"@layer\".concat(n[5].length>0?\" \".concat(n[5]):\"\",\" {\")),r+=e(n),t&&(r+=\"}\"),n[2]&&(r+=\"}\"),n[4]&&(r+=\"}\"),r})).join(\"\")},n.i=function(e,r,t,o,a){\"string\"==typeof e&&(e=[[null,e,void 0]]);var c={};if(t)for(var i=0;i0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=a),r&&(u[2]?(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=o):u[4]=\"\".concat(o)),n.push(u))}},n}},81:e=>{\"use strict\";e.exports=function(e){return e[1]}},703:(e,n,r)=>{\"use strict\";var t=r(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,n,r,o,a,c){if(c!==t){var i=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw i.name=\"Invariant Violation\",i}}function n(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:a,resetWarningCache:o};return r.PropTypes=r,r}},697:(e,n,r)=>{e.exports=r(703)()},414:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var a=n[t]={id:t,exports:{}};return e[t](a,a.exports,r),a.exports}r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var t={};(()=>{\"use strict\";r.r(t),r.d(t,{default:()=>b});const e=require(\"react\");var n=r.n(e),o=r(184),a=r.n(o),c=r(697),i=r.n(c),l=r(28),s=[\"className\"],u=[\"className\"];function p(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var n=1;n=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function d(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var t,o,a=[],c=!0,i=!1;try{for(r=r.call(e);!(c=(t=r.next()).done)&&(a.push(t.value),!n||a.length!==n);c=!0);}catch(e){i=!0,o=e}finally{try{c||null==r.return||r.return()}finally{if(i)throw o}}return a}}(e,n)||v(e,n)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function v(e,n){if(e){if(\"string\"==typeof e)return y(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?y(e,n):void 0}}function y(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.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';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"e440b28b\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"flagit:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkflagit\"] = self[\"webpackChunkflagit\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\nimport { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, useTheme as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwnProperty as h, useInsertionEffectMaybe as u, withEmotionCache as w };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react';\nimport { createElement, useLayoutEffect, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, u as useInsertionEffectMaybe } from './emotion-element-cbed451f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, a as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-cbed451f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.9.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/babel-plugin\": \"^11.7.1\",\n\t\t\"@emotion/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.3\",\n\t\t\"@emotion/utils\": \"^1.1.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.9.0\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.8.1\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^4.2.1\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useLayoutEffect;\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffect(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectMaybe(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import { Global } from '@emotion/react';\nimport * as React from 'react';\n\nvar CSSReset = function CSSReset() {\n return /*#__PURE__*/React.createElement(Global, {\n styles: \"\\n html {\\n line-height: 1.5;\\n -webkit-text-size-adjust: 100%;\\n font-family: system-ui, sans-serif;\\n -webkit-font-smoothing: antialiased;\\n text-rendering: optimizeLegibility;\\n -moz-osx-font-smoothing: grayscale;\\n touch-action: manipulation;\\n }\\n\\n body {\\n position: relative;\\n min-height: 100%;\\n font-feature-settings: 'kern';\\n }\\n\\n *,\\n *::before,\\n *::after {\\n border-width: 0;\\n border-style: solid;\\n box-sizing: border-box;\\n }\\n\\n main {\\n display: block;\\n }\\n\\n hr {\\n border-top-width: 1px;\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n }\\n\\n pre,\\n code,\\n kbd,\\n samp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;\\n font-size: 1em;\\n }\\n\\n a {\\n background-color: transparent;\\n color: inherit;\\n text-decoration: inherit;\\n }\\n\\n abbr[title] {\\n border-bottom: none;\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n }\\n\\n b,\\n strong {\\n font-weight: bold;\\n }\\n\\n small {\\n font-size: 80%;\\n }\\n\\n sub,\\n sup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n }\\n\\n sub {\\n bottom: -0.25em;\\n }\\n\\n sup {\\n top: -0.5em;\\n }\\n\\n img {\\n border-style: none;\\n }\\n\\n button,\\n input,\\n optgroup,\\n select,\\n textarea {\\n font-family: inherit;\\n font-size: 100%;\\n line-height: 1.15;\\n margin: 0;\\n }\\n\\n button,\\n input {\\n overflow: visible;\\n }\\n\\n button,\\n select {\\n text-transform: none;\\n }\\n\\n button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner {\\n border-style: none;\\n padding: 0;\\n }\\n\\n fieldset {\\n padding: 0.35em 0.75em 0.625em;\\n }\\n\\n legend {\\n box-sizing: border-box;\\n color: inherit;\\n display: table;\\n max-width: 100%;\\n padding: 0;\\n white-space: normal;\\n }\\n\\n progress {\\n vertical-align: baseline;\\n }\\n\\n textarea {\\n overflow: auto;\\n }\\n\\n [type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"] {\\n box-sizing: border-box;\\n padding: 0;\\n }\\n\\n [type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button {\\n -webkit-appearance: none !important;\\n }\\n\\n input[type=\\\"number\\\"] {\\n -moz-appearance: textfield;\\n }\\n\\n [type=\\\"search\\\"] {\\n -webkit-appearance: textfield;\\n outline-offset: -2px;\\n }\\n\\n [type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none !important;\\n }\\n\\n ::-webkit-file-upload-button {\\n -webkit-appearance: button;\\n font: inherit;\\n }\\n\\n details {\\n display: block;\\n }\\n\\n summary {\\n display: list-item;\\n }\\n\\n template {\\n display: none;\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n\\n body,\\n blockquote,\\n dl,\\n dd,\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6,\\n hr,\\n figure,\\n p,\\n pre {\\n margin: 0;\\n }\\n\\n button {\\n background: transparent;\\n padding: 0;\\n }\\n\\n fieldset {\\n margin: 0;\\n padding: 0;\\n }\\n\\n ol,\\n ul {\\n margin: 0;\\n padding: 0;\\n }\\n\\n textarea {\\n resize: vertical;\\n }\\n\\n button,\\n [role=\\\"button\\\"] {\\n cursor: pointer;\\n }\\n\\n button::-moz-focus-inner {\\n border: 0 !important;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-size: inherit;\\n font-weight: inherit;\\n }\\n\\n button,\\n input,\\n optgroup,\\n select,\\n textarea {\\n padding: 0;\\n line-height: inherit;\\n color: inherit;\\n }\\n\\n img,\\n svg,\\n video,\\n canvas,\\n audio,\\n iframe,\\n embed,\\n object {\\n display: block;\\n }\\n\\n img,\\n video {\\n max-width: 100%;\\n height: auto;\\n }\\n\\n [data-js-focus-visible] :focus:not([data-focus-visible-added]):not([data-focus-visible-disabled]) {\\n outline: none;\\n box-shadow: none;\\n }\\n\\n select::-ms-expand {\\n display: none;\\n }\\n \"\n });\n};\nvar CSSReset$1 = CSSReset;\n\nexport { CSSReset, CSSReset$1 as default };\n","var defaultTimestep = (1 / 60) * 1000;\nvar getCurrentTime = typeof performance !== \"undefined\"\n ? function () { return performance.now(); }\n : function () { return Date.now(); };\nvar onNextFrame = typeof window !== \"undefined\"\n ? function (callback) {\n return window.requestAnimationFrame(callback);\n }\n : function (callback) {\n return setTimeout(function () { return callback(getCurrentTime()); }, defaultTimestep);\n };\n\nexport { defaultTimestep, onNextFrame };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.js';\nimport { createRenderStep } from './create-render-step.js';\n\nvar maxElapsed = 40;\nvar useDefaultElapsed = true;\nvar runNextFrame = false;\nvar isProcessing = false;\nvar frame = {\n delta: 0,\n timestamp: 0\n};\nvar stepsOrder = [\"read\", \"update\", \"preRender\", \"render\", \"postRender\"];\nvar steps = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = createRenderStep(function () {\n return runNextFrame = true;\n });\n return acc;\n}, {});\nvar sync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n var step = steps[key];\n acc[key] = function (process, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n if (immediate === void 0) {\n immediate = false;\n }\n if (!runNextFrame) startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nvar cancelSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nvar flushSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = function () {\n return steps[key].process(frame);\n };\n return acc;\n}, {});\nvar processStep = function (stepId) {\n return steps[stepId].process(frame);\n};\nvar processFrame = function (timestamp) {\n runNextFrame = false;\n frame.delta = useDefaultElapsed ? defaultTimestep : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nvar startLoop = function () {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing) onNextFrame(processFrame);\n};\nvar getFrameData = function () {\n return frame;\n};\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function createRenderStep(runNextFrame) {\n var toRun = [];\n var toRunNextFrame = [];\n var numToRun = 0;\n var isProcessing = false;\n var toKeepAlive = new WeakSet();\n var step = {\n schedule: function (callback, keepAlive, immediate) {\n if (keepAlive === void 0) { keepAlive = false; }\n if (immediate === void 0) { immediate = false; }\n var addToCurrentFrame = immediate && isProcessing;\n var buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: function (callback) {\n var index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: function (frameData) {\n var _a;\n isProcessing = true;\n _a = [toRunNextFrame, toRun], toRun = _a[0], toRunNextFrame = _a[1];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (var i = 0; i < numToRun; i++) {\n var callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","export * from 'css-box-model';\nexport { default as mergeWith } from 'lodash.mergewith';\nimport sync, { cancelSync, getFrameData } from 'framesync';\n\nfunction getFirstItem(array) {\n return array != null && array.length ? array[0] : undefined;\n}\nfunction getLastItem(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\nfunction getPrevItem(index, array, loop) {\n if (loop === void 0) {\n loop = true;\n }\n\n var prevIndex = getPrevIndex(index, array.length, loop);\n return array[prevIndex];\n}\nfunction getNextItem(index, array, loop) {\n if (loop === void 0) {\n loop = true;\n }\n\n var nextIndex = getNextIndex(index, array.length, 1, loop);\n return array[nextIndex];\n}\nfunction removeIndex(array, index) {\n return array.filter(function (_, idx) {\n return idx !== index;\n });\n}\nfunction addItem(array, item) {\n return [].concat(array, [item]);\n}\nfunction removeItem(array, item) {\n return array.filter(function (eachItem) {\n return eachItem !== item;\n });\n}\n/**\n * Get the next index based on the current index and step.\n *\n * @param currentIndex the current index\n * @param length the total length or count of items\n * @param step the number of steps\n * @param loop whether to circle back once `currentIndex` is at the start/end\n */\n\nfunction getNextIndex(currentIndex, length, step, loop) {\n if (step === void 0) {\n step = 1;\n }\n\n if (loop === void 0) {\n loop = true;\n }\n\n var lastIndex = length - 1;\n\n if (currentIndex === -1) {\n return step > 0 ? 0 : lastIndex;\n }\n\n var nextIndex = currentIndex + step;\n\n if (nextIndex < 0) {\n return loop ? lastIndex : 0;\n }\n\n if (nextIndex >= length) {\n if (loop) return 0;\n return currentIndex > length ? length : currentIndex;\n }\n\n return nextIndex;\n}\n/**\n * Gets the previous index based on the current index.\n * Mostly used for keyboard navigation.\n *\n * @param index - the current index\n * @param count - the length or total count of items in the array\n * @param loop - whether we should circle back to the\n * first/last once `currentIndex` is at the start/end\n */\n\nfunction getPrevIndex(index, count, loop) {\n if (loop === void 0) {\n loop = true;\n }\n\n return getNextIndex(index, count, -1, loop);\n}\n/**\n * Converts an array into smaller chunks or groups.\n *\n * @param array the array to chunk into group\n * @param size the length of each chunk\n */\n\nfunction chunk(array, size) {\n return array.reduce(function (rows, currentValue, index) {\n if (index % size === 0) {\n rows.push([currentValue]);\n } else {\n rows[rows.length - 1].push(currentValue);\n }\n\n return rows;\n }, []);\n}\n/**\n * Gets the next item based on a search string\n *\n * @param items array of items\n * @param searchString the search string\n * @param itemToString resolves an item to string\n * @param currentItem the current selected item\n */\n\nfunction getNextItemFromSearch(items, searchString, itemToString, currentItem) {\n if (searchString == null) {\n return currentItem;\n } // If current item doesn't exist, find the item that matches the search string\n\n\n if (!currentItem) {\n var foundItem = items.find(function (item) {\n return itemToString(item).toLowerCase().startsWith(searchString.toLowerCase());\n });\n return foundItem;\n } // Filter items for ones that match the search string (case insensitive)\n\n\n var matchingItems = items.filter(function (item) {\n return itemToString(item).toLowerCase().startsWith(searchString.toLowerCase());\n }); // If there's a match, let's get the next item to select\n\n if (matchingItems.length > 0) {\n var nextIndex; // If the currentItem is in the available items, we move to the next available option\n\n if (matchingItems.includes(currentItem)) {\n var currentIndex = matchingItems.indexOf(currentItem);\n nextIndex = currentIndex + 1;\n\n if (nextIndex === matchingItems.length) {\n nextIndex = 0;\n }\n\n return matchingItems[nextIndex];\n } // Else, we pick the first item in the available items\n\n\n nextIndex = items.indexOf(matchingItems[0]);\n return items[nextIndex];\n } // a decent fallback to the currentItem\n\n\n return currentItem;\n}\n\n// Number assertions\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isNotNumber(value) {\n return typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value);\n}\nfunction isNumeric(value) {\n return value != null && value - parseFloat(value) + 1 >= 0;\n} // Array assertions\n\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n} // Function assertions\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n} // Generic assertions\n\nfunction isDefined(value) {\n return typeof value !== \"undefined\" && value !== undefined;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\" || value === undefined;\n} // Object assertions\n\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type === \"object\" || type === \"function\") && !isArray(value);\n}\nfunction isEmptyObject(value) {\n return isObject(value) && Object.keys(value).length === 0;\n}\nfunction isNotEmptyObject(value) {\n return value && !isEmptyObject(value);\n}\nfunction isNull(value) {\n return value == null;\n} // String assertions\n\nfunction isString(value) {\n return Object.prototype.toString.call(value) === \"[object String]\";\n}\nfunction isCssVar(value) {\n return /^var\\(--.+\\)$/.test(value);\n} // Empty assertions\n\nfunction isEmpty(value) {\n if (isArray(value)) return isEmptyArray(value);\n if (isObject(value)) return isEmptyObject(value);\n if (value == null || value === \"\") return true;\n return false;\n}\nvar __DEV__ = process.env.NODE_ENV !== \"production\";\nvar __TEST__ = process.env.NODE_ENV === \"test\";\nfunction isRefObject(val) {\n return \"current\" in val;\n}\nfunction isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n}\n\nfunction omit(object, keys) {\n var result = {};\n Object.keys(object).forEach(function (key) {\n if (keys.includes(key)) return;\n result[key] = object[key];\n });\n return result;\n}\nfunction pick(object, keys) {\n var result = {};\n keys.forEach(function (key) {\n if (key in object) {\n result[key] = object[key];\n }\n });\n return result;\n}\nfunction split(object, keys) {\n var picked = {};\n var omitted = {};\n Object.keys(object).forEach(function (key) {\n if (keys.includes(key)) {\n picked[key] = object[key];\n } else {\n omitted[key] = object[key];\n }\n });\n return [picked, omitted];\n}\n/**\n * Get value from a deeply nested object using a string path.\n * Memorizes the value.\n * @param obj - the object\n * @param path - the string path\n * @param fallback - the fallback value\n */\n\nfunction get(obj, path, fallback, index) {\n var key = typeof path === \"string\" ? path.split(\".\") : [path];\n\n for (index = 0; index < key.length; index += 1) {\n if (!obj) break;\n obj = obj[key[index]];\n }\n\n return obj === undefined ? fallback : obj;\n}\nvar memoize = function memoize(fn) {\n var cache = new WeakMap();\n\n var memoizedFn = function memoizedFn(obj, path, fallback, index) {\n if (typeof obj === \"undefined\") {\n return fn(obj, path, fallback);\n }\n\n if (!cache.has(obj)) {\n cache.set(obj, new Map());\n }\n\n var map = cache.get(obj);\n\n if (map.has(path)) {\n return map.get(path);\n }\n\n var value = fn(obj, path, fallback, index);\n map.set(path, value);\n return value;\n };\n\n return memoizedFn;\n};\nvar memoizedGet = memoize(get);\n/**\n * Get value from deeply nested object, based on path\n * It returns the path value if not found in object\n *\n * @param path - the string path or value\n * @param scale - the string path or value\n */\n\nfunction getWithDefault(path, scale) {\n return memoizedGet(scale, path, path);\n}\n\n/**\n * Returns the items of an object that meet the condition specified in a callback function.\n *\n * @param object the object to loop through\n * @param fn The filter function\n */\nfunction objectFilter(object, fn) {\n var result = {};\n Object.keys(object).forEach(function (key) {\n var value = object[key];\n var shouldPass = fn(value, key, object);\n\n if (shouldPass) {\n result[key] = value;\n }\n });\n return result;\n}\nvar filterUndefined = function filterUndefined(object) {\n return objectFilter(object, function (val) {\n return val !== null && val !== undefined;\n });\n};\nvar objectKeys = function objectKeys(obj) {\n return Object.keys(obj);\n};\n/**\n * Object.entries polyfill for Node v10 compatibility\n */\n\nvar fromEntries = function fromEntries(entries) {\n return entries.reduce(function (carry, _ref) {\n var key = _ref[0],\n value = _ref[1];\n carry[key] = value;\n return carry;\n }, {});\n};\n/**\n * Get the CSS variable ref stored in the theme\n */\n\nvar getCSSVar = function getCSSVar(theme, scale, value) {\n var _theme$__cssMap$$varR, _theme$__cssMap$;\n\n return (_theme$__cssMap$$varR = (_theme$__cssMap$ = theme.__cssMap[scale + \".\" + value]) == null ? void 0 : _theme$__cssMap$.varRef) != null ? _theme$__cssMap$$varR : value;\n};\n\nfunction analyzeCSSValue(value) {\n var num = parseFloat(value.toString());\n var unit = value.toString().replace(String(num), \"\");\n return {\n unitless: !unit,\n value: num,\n unit: unit\n };\n}\n\nfunction px(value) {\n if (value == null) return value;\n\n var _analyzeCSSValue = analyzeCSSValue(value),\n unitless = _analyzeCSSValue.unitless;\n\n return unitless || isNumber(value) ? value + \"px\" : value;\n}\n\nvar sortByBreakpointValue = function sortByBreakpointValue(a, b) {\n return parseInt(a[1], 10) > parseInt(b[1], 10) ? 1 : -1;\n};\n\nvar sortBps = function sortBps(breakpoints) {\n return fromEntries(Object.entries(breakpoints).sort(sortByBreakpointValue));\n};\n\nfunction normalize(breakpoints) {\n var sorted = sortBps(breakpoints);\n return Object.assign(Object.values(sorted), sorted);\n}\n\nfunction keys(breakpoints) {\n var value = Object.keys(sortBps(breakpoints));\n return new Set(value);\n}\n\nfunction subtract(value) {\n var _px;\n\n if (!value) return value;\n value = (_px = px(value)) != null ? _px : value;\n var factor = value.endsWith(\"px\") ? -1 : // the equivalent of 1px in em using a 16px base\n -0.0635;\n return isNumber(value) ? \"\" + (value + factor) : value.replace(/([0-9]+\\.?[0-9]*)/, function (m) {\n return \"\" + (parseFloat(m) + factor);\n });\n}\n\nfunction toMediaQueryString(min, max) {\n var query = [\"@media screen\"];\n if (min) query.push(\"and\", \"(min-width: \" + px(min) + \")\");\n if (max) query.push(\"and\", \"(max-width: \" + px(max) + \")\");\n return query.join(\" \");\n}\nfunction analyzeBreakpoints(breakpoints) {\n var _breakpoints$base;\n\n if (!breakpoints) return null;\n breakpoints.base = (_breakpoints$base = breakpoints.base) != null ? _breakpoints$base : \"0px\";\n var normalized = normalize(breakpoints);\n var queries = Object.entries(breakpoints).sort(sortByBreakpointValue).map(function (_ref, index, entry) {\n var _entry;\n\n var breakpoint = _ref[0],\n minW = _ref[1];\n\n var _ref2 = (_entry = entry[index + 1]) != null ? _entry : [],\n maxW = _ref2[1];\n\n maxW = parseFloat(maxW) > 0 ? subtract(maxW) : undefined;\n return {\n _minW: subtract(minW),\n breakpoint: breakpoint,\n minW: minW,\n maxW: maxW,\n maxWQuery: toMediaQueryString(null, maxW),\n minWQuery: toMediaQueryString(minW),\n minMaxQuery: toMediaQueryString(minW, maxW)\n };\n });\n\n var _keys = keys(breakpoints);\n\n var _keysArr = Array.from(_keys.values());\n\n return {\n keys: _keys,\n normalized: normalized,\n isResponsive: function isResponsive(test) {\n var keys = Object.keys(test);\n return keys.length > 0 && keys.every(function (key) {\n return _keys.has(key);\n });\n },\n asObject: sortBps(breakpoints),\n asArray: normalize(breakpoints),\n details: queries,\n media: [null].concat(normalized.map(function (minW) {\n return toMediaQueryString(minW);\n }).slice(1)),\n toArrayValue: function toArrayValue(test) {\n if (!isObject(test)) {\n throw new Error(\"toArrayValue: value must be an object\");\n }\n\n var result = _keysArr.map(function (bp) {\n var _test$bp;\n\n return (_test$bp = test[bp]) != null ? _test$bp : null;\n });\n\n while (getLastItem(result) === null) {\n result.pop();\n }\n\n return result;\n },\n toObjectValue: function toObjectValue(test) {\n if (!Array.isArray(test)) {\n throw new Error(\"toObjectValue: value must be an array\");\n }\n\n return test.reduce(function (acc, value, index) {\n var key = _keysArr[index];\n if (key != null && value != null) acc[key] = value;\n return acc;\n }, {});\n }\n };\n}\n\nfunction isElement(el) {\n return el != null && typeof el == \"object\" && \"nodeType\" in el && el.nodeType === Node.ELEMENT_NODE;\n}\nfunction isHTMLElement(el) {\n var _el$ownerDocument$def;\n\n if (!isElement(el)) {\n return false;\n }\n\n var win = (_el$ownerDocument$def = el.ownerDocument.defaultView) != null ? _el$ownerDocument$def : window;\n return el instanceof win.HTMLElement;\n}\nfunction getOwnerWindow(node) {\n var _getOwnerDocument$def, _getOwnerDocument;\n\n return isElement(node) ? (_getOwnerDocument$def = (_getOwnerDocument = getOwnerDocument(node)) == null ? void 0 : _getOwnerDocument.defaultView) != null ? _getOwnerDocument$def : window : window;\n}\nfunction getOwnerDocument(node) {\n var _node$ownerDocument;\n\n return isElement(node) ? (_node$ownerDocument = node.ownerDocument) != null ? _node$ownerDocument : document : document;\n}\nfunction getEventWindow(event) {\n var _view;\n\n return (_view = event.view) != null ? _view : window;\n}\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\nvar isBrowser = canUseDOM();\nvar dataAttr = function dataAttr(condition) {\n return condition ? \"\" : undefined;\n};\nvar ariaAttr = function ariaAttr(condition) {\n return condition ? true : undefined;\n};\nvar cx = function cx() {\n for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {\n classNames[_key] = arguments[_key];\n }\n\n return classNames.filter(Boolean).join(\" \");\n};\nfunction getActiveElement(node) {\n var doc = getOwnerDocument(node);\n return doc == null ? void 0 : doc.activeElement;\n}\nfunction contains(parent, child) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return function () {\n target.removeEventListener(eventName, handler, options);\n };\n}\n/**\n * Get the normalized event key across all browsers\n * @param event keyboard event\n */\n\nfunction normalizeEventKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n var isArrowKey = keyCode >= 37 && keyCode <= 40 && key.indexOf(\"Arrow\") !== 0;\n var eventKey = isArrowKey ? \"Arrow\" + key : key;\n return eventKey;\n}\nfunction getRelatedTarget(event) {\n var _event$target, _event$relatedTarget;\n\n var target = (_event$target = event.target) != null ? _event$target : event.currentTarget;\n var activeElement = getActiveElement(target);\n return (_event$relatedTarget = event.relatedTarget) != null ? _event$relatedTarget : activeElement;\n}\nfunction isRightClick(event) {\n return event.button !== 0;\n}\n\n// Really great work done by Diego Haz on this one\nvar hasDisplayNone = function hasDisplayNone(element) {\n return window.getComputedStyle(element).display === \"none\";\n};\nvar hasTabIndex = function hasTabIndex(element) {\n return element.hasAttribute(\"tabindex\");\n};\nvar hasNegativeTabIndex = function hasNegativeTabIndex(element) {\n return hasTabIndex(element) && element.tabIndex === -1;\n};\nfunction isDisabled(element) {\n return Boolean(element.getAttribute(\"disabled\")) === true || Boolean(element.getAttribute(\"aria-disabled\")) === true;\n}\nfunction isInputElement(element) {\n return isHTMLElement(element) && element.localName === \"input\" && \"select\" in element;\n}\nfunction isActiveElement(element) {\n var doc = isHTMLElement(element) ? getOwnerDocument(element) : document;\n return doc.activeElement === element;\n}\nfunction hasFocusWithin(element) {\n if (!document.activeElement) return false;\n return element.contains(document.activeElement);\n}\nfunction isHidden(element) {\n if (element.parentElement && isHidden(element.parentElement)) return true;\n return element.hidden;\n}\nfunction isContentEditable(element) {\n var value = element.getAttribute(\"contenteditable\");\n return value !== \"false\" && value != null;\n}\nfunction isFocusable(element) {\n if (!isHTMLElement(element) || isHidden(element) || isDisabled(element)) {\n return false;\n }\n\n var localName = element.localName;\n var focusableTags = [\"input\", \"select\", \"textarea\", \"button\"];\n if (focusableTags.indexOf(localName) >= 0) return true;\n var others = {\n a: function a() {\n return element.hasAttribute(\"href\");\n },\n audio: function audio() {\n return element.hasAttribute(\"controls\");\n },\n video: function video() {\n return element.hasAttribute(\"controls\");\n }\n };\n\n if (localName in others) {\n return others[localName]();\n }\n\n if (isContentEditable(element)) return true;\n return hasTabIndex(element);\n}\nfunction isTabbable(element) {\n if (!element) return false;\n return isHTMLElement(element) && isFocusable(element) && !hasNegativeTabIndex(element);\n}\n\nvar focusableElList = [\"input:not([disabled])\", \"select:not([disabled])\", \"textarea:not([disabled])\", \"embed\", \"iframe\", \"object\", \"a[href]\", \"area[href]\", \"button:not([disabled])\", \"[tabindex]\", \"audio[controls]\", \"video[controls]\", \"*[tabindex]:not([aria-disabled])\", \"*[contenteditable]\"];\nvar focusableElSelector = focusableElList.join();\nfunction getAllFocusable(container) {\n var focusableEls = Array.from(container.querySelectorAll(focusableElSelector));\n focusableEls.unshift(container);\n return focusableEls.filter(isFocusable).filter(function (el) {\n return window.getComputedStyle(el).display !== \"none\";\n });\n}\nfunction getFirstFocusable(container) {\n var allFocusable = getAllFocusable(container);\n return allFocusable.length ? allFocusable[0] : null;\n}\nfunction getAllTabbable(container, fallbackToFocusable) {\n var allFocusable = Array.from(container.querySelectorAll(focusableElSelector));\n var allTabbable = allFocusable.filter(isTabbable);\n\n if (isTabbable(container)) {\n allTabbable.unshift(container);\n }\n\n if (!allTabbable.length && fallbackToFocusable) {\n return allFocusable;\n }\n\n return allTabbable;\n}\nfunction getFirstTabbableIn(container, fallbackToFocusable) {\n var _getAllTabbable = getAllTabbable(container, fallbackToFocusable),\n first = _getAllTabbable[0];\n\n return first || null;\n}\nfunction getLastTabbableIn(container, fallbackToFocusable) {\n var allTabbable = getAllTabbable(container, fallbackToFocusable);\n return allTabbable[allTabbable.length - 1] || null;\n}\nfunction getNextTabbable(container, fallbackToFocusable) {\n var allFocusable = getAllFocusable(container);\n var index = allFocusable.indexOf(document.activeElement);\n var slice = allFocusable.slice(index + 1);\n return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\nfunction getPreviousTabbable(container, fallbackToFocusable) {\n var allFocusable = getAllFocusable(container).reverse();\n var index = allFocusable.indexOf(document.activeElement);\n var slice = allFocusable.slice(index + 1);\n return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\nfunction focusNextTabbable(container, fallbackToFocusable) {\n var nextTabbable = getNextTabbable(container, fallbackToFocusable);\n\n if (nextTabbable && isHTMLElement(nextTabbable)) {\n nextTabbable.focus();\n }\n}\nfunction focusPreviousTabbable(container, fallbackToFocusable) {\n var previousTabbable = getPreviousTabbable(container, fallbackToFocusable);\n\n if (previousTabbable && isHTMLElement(previousTabbable)) {\n previousTabbable.focus();\n }\n}\n\nfunction matches(element, selectors) {\n if (\"matches\" in element) return element.matches(selectors);\n if (\"msMatchesSelector\" in element) return element.msMatchesSelector(selectors);\n return element.webkitMatchesSelector(selectors);\n}\n\nfunction closest(element, selectors) {\n if (\"closest\" in element) return element.closest(selectors);\n\n do {\n if (matches(element, selectors)) return element;\n element = element.parentElement || element.parentNode;\n } while (element !== null && element.nodeType === 1);\n\n return null;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/* eslint-disable no-nested-ternary */\nfunction runIfFn(valueOrFn) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return isFunction(valueOrFn) ? valueOrFn.apply(void 0, args) : valueOrFn;\n}\nfunction callAllHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function func(event) {\n fns.some(function (fn) {\n fn == null ? void 0 : fn(event);\n return event == null ? void 0 : event.defaultPrevented;\n });\n };\n}\nfunction callAll() {\n for (var _len3 = arguments.length, fns = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n fns[_key3] = arguments[_key3];\n }\n\n return function mergedFn(arg) {\n fns.forEach(function (fn) {\n fn == null ? void 0 : fn(arg);\n });\n };\n}\nvar compose = function compose(fn1) {\n for (var _len4 = arguments.length, fns = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n fns[_key4 - 1] = arguments[_key4];\n }\n\n return fns.reduce(function (f1, f2) {\n return function () {\n return f1(f2.apply(void 0, arguments));\n };\n }, fn1);\n};\nfunction once(fn) {\n var result;\n return function func() {\n if (fn) {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n result = fn.apply(this, args);\n fn = null;\n }\n\n return result;\n };\n}\nvar noop = function noop() {};\nvar warn = once(function (options) {\n return function () {\n var condition = options.condition,\n message = options.message;\n\n if (condition && __DEV__) {\n console.warn(message);\n }\n };\n});\nvar error = once(function (options) {\n return function () {\n var condition = options.condition,\n message = options.message;\n\n if (condition && __DEV__) {\n console.error(message);\n }\n };\n});\nvar pipe = function pipe() {\n for (var _len6 = arguments.length, fns = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n fns[_key6] = arguments[_key6];\n }\n\n return function (v) {\n return fns.reduce(function (a, b) {\n return b(a);\n }, v);\n };\n};\n\nvar distance1D = function distance1D(a, b) {\n return Math.abs(a - b);\n};\n\nvar isPoint = function isPoint(point) {\n return \"x\" in point && \"y\" in point;\n};\n\nfunction distance(a, b) {\n if (isNumber(a) && isNumber(b)) {\n return distance1D(a, b);\n }\n\n if (isPoint(a) && isPoint(b)) {\n var xDelta = distance1D(a.x, b.x);\n var yDelta = distance1D(a.y, b.y);\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2));\n }\n\n return 0;\n}\n\nfunction focus(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$isActive = _options.isActive,\n isActive = _options$isActive === void 0 ? isActiveElement : _options$isActive,\n nextTick = _options.nextTick,\n _options$preventScrol = _options.preventScroll,\n preventScroll = _options$preventScrol === void 0 ? true : _options$preventScrol,\n _options$selectTextIf = _options.selectTextIfInput,\n selectTextIfInput = _options$selectTextIf === void 0 ? true : _options$selectTextIf;\n if (!element || isActive(element)) return -1;\n\n function triggerFocus() {\n if (!element) {\n warn({\n condition: true,\n message: \"[chakra-ui]: can't call focus() on `null` or `undefined` element\"\n });\n return;\n }\n\n if (supportsPreventScroll()) {\n element.focus({\n preventScroll: preventScroll\n });\n } else {\n element.focus();\n\n if (preventScroll) {\n var scrollableElements = getScrollableElements(element);\n restoreScrollPosition(scrollableElements);\n }\n }\n\n if (selectTextIfInput) {\n if (isInputElement(element)) {\n element.select();\n } else if (\"setSelectionRange\" in element) {\n var el = element;\n el.setSelectionRange(el.value.length, el.value.length);\n }\n }\n }\n\n if (nextTick) {\n return requestAnimationFrame(triggerFocus);\n }\n\n triggerFocus();\n return -1;\n}\nvar supportsPreventScrollCached = null;\n\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n\n try {\n var div = document.createElement(\"div\");\n div.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n\n });\n } catch (e) {// Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element) {\n var _doc$defaultView;\n\n var doc = getOwnerDocument(element);\n var win = (_doc$defaultView = doc.defaultView) != null ? _doc$defaultView : window;\n var parent = element.parentNode;\n var scrollableElements = [];\n var rootScrollingElement = doc.scrollingElement || doc.documentElement;\n\n while (parent instanceof win.HTMLElement && parent !== rootScrollingElement) {\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof win.HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements) {\n for (var _iterator = _createForOfIteratorHelperLoose(scrollableElements), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n element = _step$value.element,\n scrollTop = _step$value.scrollTop,\n scrollLeft = _step$value.scrollLeft;\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\nfunction flatten(target, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = Infinity;\n }\n\n if (!isObject(target) && !Array.isArray(target) || !maxDepth) {\n return target;\n }\n\n return Object.entries(target).reduce(function (result, _ref) {\n var key = _ref[0],\n value = _ref[1];\n\n if (isObject(value) || isArray(value)) {\n Object.entries(flatten(value, maxDepth - 1)).forEach(function (_ref2) {\n var childKey = _ref2[0],\n childValue = _ref2[1];\n // e.g. gray.500\n result[key + \".\" + childKey] = childValue;\n });\n } else {\n // e.g. transparent\n result[key] = value;\n }\n\n return result;\n }, {});\n}\n\n/**\n * Determines whether the children of a disclosure widget\n * should be rendered or not, depending on the lazy behavior.\n *\n * Used in accordion, tabs, popover, menu and other disclosure\n * widgets.\n */\nfunction determineLazyBehavior(options) {\n var hasBeenSelected = options.hasBeenSelected,\n isLazy = options.isLazy,\n isSelected = options.isSelected,\n _options$lazyBehavior = options.lazyBehavior,\n lazyBehavior = _options$lazyBehavior === void 0 ? \"unmount\" : _options$lazyBehavior; // if not lazy, always render the disclosure's content\n\n if (!isLazy) return true; // if the disclosure is selected, render the disclosure's content\n\n if (isSelected) return true; // if the disclosure was selected but not active, keep its content active\n\n if (lazyBehavior === \"keepMounted\" && hasBeenSelected) return true;\n return false;\n}\n\nvar minSafeInteger = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar maxSafeInteger = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nfunction toNumber(value) {\n var num = parseFloat(value);\n return isNotNumber(num) ? 0 : num;\n}\n/**\n * Converts a value to a specific precision (or decimal points).\n *\n * Returns a string representing a number in fixed-point notation.\n *\n * @param value the value to convert\n * @param precision the precision or decimal points\n */\n\n\nfunction toPrecision(value, precision) {\n var nextValue = toNumber(value);\n var scaleFactor = Math.pow(10, precision != null ? precision : 10);\n nextValue = Math.round(nextValue * scaleFactor) / scaleFactor;\n return precision ? nextValue.toFixed(precision) : nextValue.toString();\n}\n/**\n * Counts the number of decimal places a number has\n *\n * @param value the decimal value to count\n */\n\nfunction countDecimalPlaces(value) {\n if (!Number.isFinite(value)) return 0;\n var e = 1;\n var p = 0;\n\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n\n return p;\n}\n/**\n * Convert a value to percentage based on lower and upper bound values\n *\n * @param value the value in number\n * @param min the minimum value\n * @param max the maximum value\n */\n\nfunction valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\n/**\n * Calculate the value based on percentage, lower and upper bound values\n *\n * @param percent the percent value in decimals (e.g 0.6, 0.3)\n * @param min the minimum value\n * @param max the maximum value\n */\n\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\n/**\n * Rounds a specific value to the next or previous step\n *\n * @param value the value to round\n * @param from the number that stepping started from\n * @param step the specified step\n */\n\nfunction roundValueToStep(value, from, step) {\n var nextValue = Math.round((value - from) / step) * step + from;\n var precision = countDecimalPlaces(step);\n return toPrecision(nextValue, precision);\n}\n/**\n * Clamps a value to ensure it stays within the min and max range.\n *\n * @param value the value to clamp\n * @param min the minimum value\n * @param max the maximum value\n */\n\nfunction clampValue(value, min, max) {\n if (value == null) return value;\n warn({\n condition: max < min,\n message: \"clamp: max cannot be less than min\"\n });\n return Math.min(Math.max(value, min), max);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\nfunction isMouseEvent(event) {\n var win = getEventWindow(event); // PointerEvent inherits from MouseEvent, so we can't use a straight instanceof check.\n\n if (typeof win.PointerEvent !== \"undefined\" && event instanceof win.PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n\n return event instanceof win.MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var win = getEventWindow(event);\n var isMouseEvent = event instanceof win.MouseEvent;\n var isPrimaryPointer = !isMouseEvent || isMouseEvent && event.button === 0;\n\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\n\nvar defaultPagePoint = {\n pageX: 0,\n pageY: 0\n};\n\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) {\n pointType = \"page\";\n }\n\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"]\n };\n}\n\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) {\n pointType = \"page\";\n }\n\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"]\n };\n}\n\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) {\n pointType = \"page\";\n }\n\n return {\n point: isTouchEvent(event) ? pointFromTouch(event, pointType) : pointFromMouse(event, pointType)\n };\n}\nfunction getViewportPointFromEvent(event) {\n return extractEventInfo(event, \"client\");\n}\nvar wrapPointerEventHandler = function wrapPointerEventHandler(handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) {\n shouldFilterPrimaryPointer = false;\n }\n\n var listener = function listener(event) {\n return handler(event, extractEventInfo(event));\n };\n\n return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener;\n}; // We check for event support via functions in case they've been mocked by a testing suite.\n\nvar supportsPointerEvents = function supportsPointerEvents() {\n return isBrowser && window.onpointerdown === null;\n};\n\nvar supportsTouchEvents = function supportsTouchEvents() {\n return isBrowser && window.ontouchstart === null;\n};\n\nvar supportsMouseEvents = function supportsMouseEvents() {\n return isBrowser && window.onmousedown === null;\n};\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\"\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\"\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n\n if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n\n if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapPointerEventHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction isMultiTouchEvent(event) {\n return isTouchEvent(event) && event.touches.length > 1;\n}\n\n/**\n * The event information passed to pan event handlers like `onPan`, `onPanStart`.\n *\n * It contains information about the current state of the tap gesture such as its\n * `point`, `delta`, and `offset`\n */\n\n/**\n * @internal\n *\n * A Pan Session is recognized when the pointer is down\n * and moved in the allowed direction.\n */\nvar PanSession = /*#__PURE__*/function () {\n /**\n * We use this to keep track of the `x` and `y` pan session history\n * as the pan event happens. It helps to calculate the `offset` and `delta`\n */\n // The pointer event that started the pan session\n // The current pointer event for the pan session\n // The current pointer event info for the pan session\n\n /**\n * Minimal pan distance required before recognizing the pan.\n * @default \"3px\"\n */\n function PanSession(_event, handlers, threshold) {\n var _this = this;\n\n this.history = [];\n this.startEvent = null;\n this.lastEvent = null;\n this.lastEventInfo = null;\n this.handlers = {};\n this.removeListeners = noop;\n this.threshold = 3;\n this.win = void 0;\n\n this.updatePoint = function () {\n if (!(_this.lastEvent && _this.lastEventInfo)) return;\n var info = getPanInfo(_this.lastEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n\n var isDistancePastThreshold = distance(info.offset, {\n x: 0,\n y: 0\n }) >= _this.threshold;\n\n if (!isPanStarted && !isDistancePastThreshold) return;\n\n var _getFrameData = getFrameData(),\n timestamp = _getFrameData.timestamp;\n\n _this.history.push(_extends({}, info.point, {\n timestamp: timestamp\n }));\n\n var _this$handlers = _this.handlers,\n onStart = _this$handlers.onStart,\n onMove = _this$handlers.onMove;\n\n if (!isPanStarted) {\n onStart == null ? void 0 : onStart(_this.lastEvent, info);\n _this.startEvent = _this.lastEvent;\n }\n\n onMove == null ? void 0 : onMove(_this.lastEvent, info);\n };\n\n this.onPointerMove = function (event, info) {\n _this.lastEvent = event;\n _this.lastEventInfo = info; // Because Safari doesn't trigger mouseup events when it's above a ``\n if (isMouseEvent(event) && event.buttons === 0) {\n _this.handlePointerUp(event, info);\n return;\n }\n // Throttle mouse move event to once per frame\n sync.update(_this.updatePoint, true);\n };\n this.handlePointerUp = function (event, info) {\n _this.end();\n var _a = _this.handlers, onEnd = _a.onEnd, onSessionEnd = _a.onSessionEnd;\n var panInfo = getPanInfo(transformPoint(info, _this.transformPagePoint), _this.history);\n if (_this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (isTouchEvent(event) && event.touches.length > 1)\n return;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n var info = extractEventInfo(event);\n var initialInfo = transformPoint(info, this.transformPagePoint);\n var point = initialInfo.point;\n var timestamp = getFrameData().timestamp;\n this.history = [__assign(__assign({}, point), { timestamp: timestamp })];\n var onSessionStart = handlers.onSessionStart;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(window, \"pointermove\", this.handlePointerMove), addPointerEvent(window, \"pointerup\", this.handlePointerUp), addPointerEvent(window, \"pointercancel\", this.handlePointerUp));\n }\n PanSession.prototype.updateHandlers = function (handlers) {\n this.handlers = handlers;\n };\n PanSession.prototype.end = function () {\n this.removeListeners && this.removeListeners();\n cancelSync.update(this.updatePoint);\n };\n return PanSession;\n}());\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo(_a, history) {\n var point = _a.point;\n return {\n point: point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n var i = history.length - 1;\n var timestampedPoint = null;\n var lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n var time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000;\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n var currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { __read } from 'tslib';\nimport { clamp, mix, progress } from 'popmotion';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, _a, elastic) {\n var min = _a.min, max = _a.max;\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic ? mix(min, point, elastic.min) : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic ? mix(max, point, elastic.max) : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, _a) {\n var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n var _a;\n var min = constraintsAxis.min - layoutAxis.min;\n var max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n _a = __read([max, min], 2), min = _a[0], max = _a[1];\n }\n return { min: min, max: max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n var origin = 0.5;\n var sourceLength = calcLength(source);\n var targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n var relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nvar defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic) {\n if (dragElastic === void 0) { dragElastic = defaultElastic; }\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n var _a;\n return typeof dragElastic === \"number\"\n ? dragElastic\n : (_a = dragElastic[label]) !== null && _a !== void 0 ? _a : 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.y;\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n var topLeft = transformPoint({ x: point.left, y: point.top });\n var bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n var viewportBox = measureViewportBox(element, transformPagePoint);\n var scroll = rootProjectionNode.scroll;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.x);\n translateAxis(viewportBox.y, scroll.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { __assign } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { PanSession } from '../PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/use-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/use-dom-event.mjs';\nimport { mix } from 'popmotion';\nimport { percent } from 'style-value-types';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\n\nvar elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: AnyPointerEvent\nvar VisualElementDragControls = /** @class */ (function () {\n function VisualElementDragControls(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n VisualElementDragControls.prototype.start = function (originEvent, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, _c = _b.snapToCursor, snapToCursor = _c === void 0 ? false : _c;\n /**\n * Don't start dragging if this component is exiting\n */\n if (this.visualElement.isPresent === false)\n return;\n var onSessionStart = function (event) {\n // Stop any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n _this.stopAnimation();\n if (snapToCursor) {\n _this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n var onStart = function (event, info) {\n var _a;\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n var _b = _this.getProps(), drag = _b.drag, dragPropagation = _b.dragPropagation, onDragStart = _b.onDragStart;\n if (drag && !dragPropagation) {\n if (_this.openGlobalLock)\n _this.openGlobalLock();\n _this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!_this.openGlobalLock)\n return;\n }\n _this.isDragging = true;\n _this.currentDirection = null;\n _this.resolveConstraints();\n if (_this.visualElement.projection) {\n _this.visualElement.projection.isAnimationBlocked = true;\n _this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis(function (axis) {\n var _a, _b;\n var current = _this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n var measuredAxis = (_b = (_a = _this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.actual[axis];\n if (measuredAxis) {\n var length_1 = calcLength(measuredAxis);\n current = length_1 * (parseFloat(current) / 100);\n }\n }\n _this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event, info);\n (_a = _this.visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Drag, true);\n };\n var onMove = function (event, info) {\n // latestPointerEvent = event\n var _a = _this.getProps(), dragPropagation = _a.dragPropagation, dragDirectionLock = _a.dragDirectionLock, onDirectionLock = _a.onDirectionLock, onDrag = _a.onDrag;\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !_this.openGlobalLock)\n return;\n var offset = info.offset;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && _this.currentDirection === null) {\n _this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (_this.currentDirection !== null) {\n onDirectionLock === null || onDirectionLock === void 0 ? void 0 : onDirectionLock(_this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n _this.updateAxis(\"x\", info.point, offset);\n _this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n _this.visualElement.syncRender();\n /**\n * This must fire after the syncRender call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag === null || onDrag === void 0 ? void 0 : onDrag(event, info);\n };\n var onSessionEnd = function (event, info) {\n return _this.stop(event, info);\n };\n this.panSession = new PanSession(originEvent, {\n onSessionStart: onSessionStart,\n onStart: onStart,\n onMove: onMove,\n onSessionEnd: onSessionEnd,\n }, { transformPagePoint: this.visualElement.getTransformPagePoint() });\n };\n VisualElementDragControls.prototype.stop = function (event, info) {\n var isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n var velocity = info.velocity;\n this.startAnimation(velocity);\n var onDragEnd = this.getProps().onDragEnd;\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, info);\n };\n VisualElementDragControls.prototype.cancel = function () {\n var _a, _b;\n this.isDragging = false;\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = false;\n }\n (_a = this.panSession) === null || _a === void 0 ? void 0 : _a.end();\n this.panSession = undefined;\n var dragPropagation = this.getProps().dragPropagation;\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n (_b = this.visualElement.animationState) === null || _b === void 0 ? void 0 : _b.setActive(AnimationType.Drag, false);\n };\n VisualElementDragControls.prototype.updateAxis = function (axis, _point, offset) {\n var drag = this.getProps().drag;\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n var axisValue = this.getAxisMotionValue(axis);\n var next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n };\n VisualElementDragControls.prototype.resolveConstraints = function () {\n var _this = this;\n var _a = this.getProps(), dragConstraints = _a.dragConstraints, dragElastic = _a.dragElastic;\n var layout = (this.visualElement.projection || {}).layout;\n var prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.actual, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis(function (axis) {\n if (_this.getAxisMotionValue(axis)) {\n _this.constraints[axis] = rebaseAxisConstraints(layout.actual[axis], _this.constraints[axis]);\n }\n });\n }\n };\n VisualElementDragControls.prototype.resolveRefConstraints = function () {\n var _a = this.getProps(), constraints = _a.dragConstraints, onMeasureDragConstraints = _a.onMeasureDragConstraints;\n if (!constraints || !isRefObject(constraints))\n return false;\n var constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n var projection = this.visualElement.projection;\n // TODO\n if (!projection || !projection.layout)\n return false;\n var constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n var measuredConstraints = calcViewportConstraints(projection.layout.actual, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n var userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n };\n VisualElementDragControls.prototype.startAnimation = function (velocity) {\n var _this = this;\n var _a = this.getProps(), drag = _a.drag, dragMomentum = _a.dragMomentum, dragElastic = _a.dragElastic, dragTransition = _a.dragTransition, dragSnapToOrigin = _a.dragSnapToOrigin, onDragTransitionEnd = _a.onDragTransitionEnd;\n var constraints = this.constraints || {};\n var momentumAnimations = eachAxis(function (axis) {\n var _a;\n if (!shouldDrag(axis, drag, _this.currentDirection)) {\n return;\n }\n var transition = (_a = constraints === null || constraints === void 0 ? void 0 : constraints[axis]) !== null && _a !== void 0 ? _a : {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n var bounceStiffness = dragElastic ? 200 : 1000000;\n var bounceDamping = dragElastic ? 40 : 10000000;\n var inertia = __assign(__assign({ type: \"inertia\", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness: bounceStiffness, bounceDamping: bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return _this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n };\n VisualElementDragControls.prototype.startAxisValueAnimation = function (axis, transition) {\n var axisValue = this.getAxisMotionValue(axis);\n return startAnimation(axis, axisValue, 0, transition);\n };\n VisualElementDragControls.prototype.stopAnimation = function () {\n var _this = this;\n eachAxis(function (axis) { return _this.getAxisMotionValue(axis).stop(); });\n };\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n VisualElementDragControls.prototype.getAxisMotionValue = function (axis) {\n var _a, _b;\n var dragKey = \"_drag\" + axis.toUpperCase();\n var externalMotionValue = this.visualElement.getProps()[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (_b = (_a = this.visualElement.getProps().initial) === null || _a === void 0 ? void 0 : _a[axis]) !== null && _b !== void 0 ? _b : 0);\n };\n VisualElementDragControls.prototype.snapToCursor = function (point) {\n var _this = this;\n eachAxis(function (axis) {\n var drag = _this.getProps().drag;\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, _this.currentDirection))\n return;\n var projection = _this.visualElement.projection;\n var axisValue = _this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n var _a = projection.layout.actual[axis], min = _a.min, max = _a.max;\n axisValue.set(point[axis] - mix(min, max, 0.5));\n }\n });\n };\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n VisualElementDragControls.prototype.scalePositionWithinConstraints = function () {\n var _this = this;\n var _a;\n var _b = this.getProps(), drag = _b.drag, dragConstraints = _b.dragConstraints;\n var projection = this.visualElement.projection;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n var boxProgress = { x: 0, y: 0 };\n eachAxis(function (axis) {\n var axisValue = _this.getAxisMotionValue(axis);\n if (axisValue) {\n var latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, _this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n var transformTemplate = this.visualElement.getProps().transformTemplate;\n this.visualElement.getInstance().style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis(function (axis) {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n var axisValue = _this.getAxisMotionValue(axis);\n var _a = _this.constraints[axis], min = _a.min, max = _a.max;\n axisValue.set(mix(min, max, boxProgress[axis]));\n });\n };\n VisualElementDragControls.prototype.addListeners = function () {\n var _this = this;\n var _a;\n elementDragControls.set(this.visualElement, this);\n var element = this.visualElement.getInstance();\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n var stopPointerListener = addPointerEvent(element, \"pointerdown\", function (event) {\n var _a = _this.getProps(), drag = _a.drag, _b = _a.dragListener, dragListener = _b === void 0 ? true : _b;\n drag && dragListener && _this.start(event);\n });\n var measureDragConstraints = function () {\n var dragConstraints = _this.getProps().dragConstraints;\n if (isRefObject(dragConstraints)) {\n _this.constraints = _this.resolveRefConstraints();\n }\n };\n var projection = this.visualElement.projection;\n var stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();\n projection.updateLayout();\n }\n measureDragConstraints();\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n var stopResizeListener = addDomEvent(window, \"resize\", function () {\n _this.scalePositionWithinConstraints();\n });\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n projection.addEventListener(\"didUpdate\", (function (_a) {\n var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged;\n if (_this.isDragging && hasLayoutChanged) {\n eachAxis(function (axis) {\n var motionValue = _this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n _this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n _this.visualElement.syncRender();\n }\n }));\n return function () {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n };\n };\n VisualElementDragControls.prototype.getProps = function () {\n var props = this.visualElement.getProps();\n var _a = props.drag, drag = _a === void 0 ? false : _a, _b = props.dragDirectionLock, dragDirectionLock = _b === void 0 ? false : _b, _c = props.dragPropagation, dragPropagation = _c === void 0 ? false : _c, _d = props.dragConstraints, dragConstraints = _d === void 0 ? false : _d, _e = props.dragElastic, dragElastic = _e === void 0 ? defaultElastic : _e, _f = props.dragMomentum, dragMomentum = _f === void 0 ? true : _f;\n return __assign(__assign({}, props), { drag: drag, dragDirectionLock: dragDirectionLock, dragPropagation: dragPropagation, dragConstraints: dragConstraints, dragElastic: dragElastic, dragMomentum: dragMomentum });\n };\n return VisualElementDragControls;\n}());\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold) {\n if (lockThreshold === void 0) { lockThreshold = 10; }\n var direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { useDrag } from '../../gestures/drag/use-drag.mjs';\nimport { usePanGesture } from '../../gestures/use-pan-gesture.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar drag = {\n pan: makeRenderlessComponent(usePanGesture),\n drag: makeRenderlessComponent(useDrag),\n};\n\nexport { drag };\n","import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { PanSession } from './PanSession.mjs';\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @internalremarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture(_a) {\n var onPan = _a.onPan, onPanStart = _a.onPanStart, onPanEnd = _a.onPanEnd, onPanSessionStart = _a.onPanSessionStart, visualElement = _a.visualElement;\n var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n var panSession = useRef(null);\n var transformPagePoint = useContext(MotionConfigContext).transformPagePoint;\n var handlers = {\n onSessionStart: onPanSessionStart,\n onStart: onPanStart,\n onMove: onPan,\n onEnd: function (event, info) {\n panSession.current = null;\n onPanEnd && onPanEnd(event, info);\n },\n };\n useEffect(function () {\n if (panSession.current !== null) {\n panSession.current.updateHandlers(handlers);\n }\n });\n function onPointerDown(event) {\n panSession.current = new PanSession(event, handlers, {\n transformPagePoint: transformPagePoint,\n });\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n useUnmountEffect(function () { return panSession.current && panSession.current.end(); });\n}\n\nexport { usePanGesture };\n","import { useEffect } from 'react';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\n\n/**\n * A hook that allows an element to be dragged.\n *\n * @internal\n */\nfunction useDrag(props) {\n var groupDragControls = props.dragControls, visualElement = props.visualElement;\n var dragControls = useConstant(function () { return new VisualElementDragControls(visualElement); });\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n useEffect(function () { return groupDragControls && groupDragControls.subscribe(dragControls); }, [dragControls, groupDragControls]);\n // Apply the event listeners to the element\n useEffect(function () { return dragControls.addListeners(); }, [dragControls]);\n}\n\nexport { useDrag };\n","import { __spreadArray, __read } from 'tslib';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\n\nvar names = [\n \"LayoutMeasure\",\n \"BeforeLayoutMeasure\",\n \"LayoutUpdate\",\n \"ViewportBoxUpdate\",\n \"Update\",\n \"Render\",\n \"AnimationComplete\",\n \"LayoutAnimationComplete\",\n \"AnimationStart\",\n \"LayoutAnimationStart\",\n \"SetAxisTarget\",\n \"Unmount\",\n];\nfunction createLifecycles() {\n var managers = names.map(function () { return new SubscriptionManager(); });\n var propSubscriptions = {};\n var lifecycles = {\n clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },\n updatePropListeners: function (props) {\n names.forEach(function (name) {\n var _a;\n var on = \"on\" + name;\n var propListener = props[on];\n // Unsubscribe existing subscription\n (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);\n // Add new subscription\n if (propListener) {\n propSubscriptions[name] = lifecycles[on](propListener);\n }\n });\n },\n };\n managers.forEach(function (manager, i) {\n lifecycles[\"on\" + names[i]] = function (handler) { return manager.add(handler); };\n lifecycles[\"notify\" + names[i]] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return manager.notify.apply(manager, __spreadArray([], __read(args), false));\n };\n });\n return lifecycles;\n}\n\nexport { createLifecycles };\n","import { __assign, __spreadArray, __read } from 'tslib';\nimport sync, { cancelSync } from 'framesync';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { variantPriorityOrder } from './utils/animation-state.mjs';\nimport { createLifecycles } from './utils/lifecycles.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel } from './utils/variants.mjs';\n\nvar visualElement = function (_a) {\n var _b = _a.treeType, treeType = _b === void 0 ? \"\" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;\n return function (_a, options) {\n var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState, shouldReduceMotion = _a.shouldReduceMotion;\n if (options === void 0) { options = {}; }\n var isMounted = false;\n var latestValues = visualState.latestValues, renderState = visualState.renderState;\n /**\n * The instance of the render-specific node that will be hydrated by the\n * exposed React ref. So for example, this visual element can host a\n * HTMLElement, plain object, or Three.js object. The functions provided\n * in VisualElementConfig allow us to interface with this instance.\n */\n var instance;\n /**\n * Manages the subscriptions for a visual element's lifecycle, for instance\n * onRender\n */\n var lifecycles = createLifecycles();\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n var values = new Map();\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n var valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n var prevMotionValues = {};\n /**\n * When values are removed from all animation props we need to search\n * for a fallback value to animate to. These values are tracked in baseTarget.\n */\n var baseTarget = __assign({}, latestValues);\n // Internal methods ========================\n /**\n * On mount, this will be hydrated with a callback to disconnect\n * this visual element from its parent on unmount.\n */\n var removeFromVariantTree;\n /**\n * Render the element with the latest styles outside of the React\n * render lifecycle\n */\n function render() {\n if (!instance || !isMounted)\n return;\n triggerBuild();\n renderInstance(instance, renderState, props.style, element.projection);\n }\n function triggerBuild() {\n build(element, renderState, latestValues, options, props);\n }\n function update() {\n lifecycles.notifyUpdate(latestValues);\n }\n /**\n *\n */\n function bindToMotionValue(key, value) {\n var removeOnChange = value.onChange(function (latestValue) {\n latestValues[key] = latestValue;\n props.onUpdate && sync.update(update, false, true);\n });\n var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);\n valueSubscriptions.set(key, function () {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n var initialMotionValues = scrapeMotionValuesFromProps(props);\n for (var key in initialMotionValues) {\n var value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n var element = __assign(__assign({ treeType: treeType, \n /**\n * This is a mirror of the internal instance prop, which keeps\n * VisualElement type-compatible with React's RefObject.\n */\n current: null, \n /**\n * The depth of this visual element within the visual element tree.\n */\n depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), \n /**\n *\n */\n presenceId: presenceId, shouldReduceMotion: shouldReduceMotion, \n /**\n * If this component is part of the variant tree, it should track\n * any children that are also part of the tree. This is essentially\n * a shadow tree to simplify logic around how to stagger over children.\n */\n variantChildren: isVariantNode ? new Set() : undefined, \n /**\n * Whether this instance is visible. This can be changed imperatively\n * by the projection tree, is analogous to CSS's visibility in that\n * hidden elements should take up layout, and needs enacting by the configured\n * render function.\n */\n isVisible: undefined, \n /**\n * Normally, if a component is controlled by a parent's variants, it can\n * rely on that ancestor to trigger animations further down the tree.\n * However, if a component is created after its parent is mounted, the parent\n * won't trigger that mount animation so the child needs to.\n *\n * TODO: This might be better replaced with a method isParentMounted\n */\n manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), \n /**\n * This can be set by AnimatePresence to force components that mount\n * at the same time as it to mount as if they have initial={false} set.\n */\n blockInitialAnimation: blockInitialAnimation, \n /**\n * Determine whether this component has mounted yet. This is mostly used\n * by variant children to determine whether they need to trigger their\n * own animations on mount.\n */\n isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {\n isMounted = true;\n instance = element.current = newInstance;\n if (element.projection) {\n element.projection.mount(newInstance);\n }\n if (isVariantNode && parent && !isControllingVariants) {\n removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);\n }\n values.forEach(function (value, key) { return bindToMotionValue(key, value); });\n parent === null || parent === void 0 ? void 0 : parent.children.add(element);\n element.setProps(props);\n }, \n /**\n *\n */\n unmount: function () {\n var _a;\n (_a = element.projection) === null || _a === void 0 ? void 0 : _a.unmount();\n cancelSync.update(update);\n cancelSync.render(render);\n valueSubscriptions.forEach(function (remove) { return remove(); });\n removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();\n parent === null || parent === void 0 ? void 0 : parent.children.delete(element);\n lifecycles.clearAllListeners();\n instance = undefined;\n isMounted = false;\n }, \n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild: function (child) {\n var _a;\n var closestVariantNode = element.getClosestVariantNode();\n if (closestVariantNode) {\n (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n return function () {\n return closestVariantNode.variantChildren.delete(child);\n };\n }\n }, sortNodePosition: function (other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!sortNodePosition || treeType !== other.treeType)\n return 0;\n return sortNodePosition(element.getInstance(), other.getInstance());\n }, \n /**\n * Returns the closest variant node in the tree starting from\n * this visual element.\n */\n getClosestVariantNode: function () {\n return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();\n }, \n /**\n * Expose the latest layoutId prop.\n */\n getLayoutId: function () { return props.layoutId; }, \n /**\n * Returns the current instance.\n */\n getInstance: function () { return instance; }, \n /**\n * Get/set the latest static values.\n */\n getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, \n /**\n * Returns the latest motion value state. Currently only used to take\n * a snapshot of the visual element - perhaps this can return the whole\n * visual state\n */\n getLatestValues: function () { return latestValues; }, \n /**\n * Set the visiblity of the visual element. If it's changed, schedule\n * a render to reflect these changes.\n */\n setVisibility: function (visibility) {\n if (element.isVisible === visibility)\n return;\n element.isVisible = visibility;\n element.scheduleRender();\n }, \n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable: function (target, canMutate) {\n if (canMutate === void 0) { canMutate = true; }\n return makeTargetAnimatable(element, target, props, canMutate);\n }, \n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox: function () {\n return measureViewportBox(instance, props);\n }, \n // Motion values ========================\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue: function (key, value) {\n // Remove existing value if it exists\n if (element.hasValue(key))\n element.removeValue(key);\n values.set(key, value);\n latestValues[key] = value.get();\n bindToMotionValue(key, value);\n }, \n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue: function (key) {\n var _a;\n values.delete(key);\n (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n valueSubscriptions.delete(key);\n delete latestValues[key];\n removeValueFromRenderState(key, renderState);\n }, \n /**\n * Check whether we have a motion value for this key\n */\n hasValue: function (key) { return values.has(key); }, \n /**\n * Get a motion value for this key. If called with a default\n * value, we'll create one if none exists.\n */\n getValue: function (key, defaultValue) {\n var value = values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue);\n element.addValue(key, value);\n }\n return value;\n }, \n /**\n * Iterate over our motion values.\n */\n forEachValue: function (callback) { return values.forEach(callback); }, \n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue: function (key) {\n var _a;\n return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, options);\n }, \n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget: function (key, value) {\n baseTarget[key] = value;\n }, \n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget: function (key) {\n if (getBaseTarget) {\n var target = getBaseTarget(props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n }\n return baseTarget[key];\n } }, lifecycles), { \n /**\n * Build the renderer state based on the latest visual state.\n */\n build: function () {\n triggerBuild();\n return renderState;\n }, \n /**\n * Schedule a render on the next animation frame.\n */\n scheduleRender: function () {\n sync.render(render, false, true);\n }, \n /**\n * Synchronously fire render. It's prefered that we batch renders but\n * in many circumstances, like layout measurement, we need to run this\n * synchronously. However in those instances other measures should be taken\n * to batch reads/writes.\n */\n syncRender: render, \n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n setProps: function (newProps) {\n if (newProps.transformTemplate || props.transformTemplate) {\n element.scheduleRender();\n }\n props = newProps;\n lifecycles.updatePropListeners(newProps);\n prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);\n }, getProps: function () { return props; }, \n // Variants ==============================\n /**\n * Returns the variant definition with a given name.\n */\n getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, \n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition: function () { return props.transition; }, getTransformPagePoint: function () {\n return props.transformPagePoint;\n }, \n /**\n * Used by child variant nodes to get the closest ancestor variant props.\n */\n getVariantContext: function (startAtParent) {\n if (startAtParent === void 0) { startAtParent = false; }\n if (startAtParent)\n return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();\n if (!isControllingVariants) {\n var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};\n if (props.initial !== undefined) {\n context_1.initial = props.initial;\n }\n return context_1;\n }\n var context = {};\n for (var i = 0; i < numVariantProps; i++) {\n var name_1 = variantProps[i];\n var prop = props[name_1];\n if (isVariantLabel(prop) || prop === false) {\n context[name_1] = prop;\n }\n }\n return context;\n } });\n return element;\n };\n};\nvar variantProps = __spreadArray([\"initial\"], __read(variantPriorityOrder), false);\nvar numVariantProps = variantProps.length;\n\nexport { visualElement };\n","import { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n var _a;\n for (var key in next) {\n var nextValue = next[key];\n var prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping to a new motion value, create a new motion value\n * from that\n */\n element.addValue(key, motionValue(nextValue));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n var existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));\n }\n }\n }\n // Handle removed values\n for (var key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { __rest, __assign, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\n\nfunction isCSSVariable(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\".concat(current, \"\\\". This may indicate a circular fallback dependency.\"));\n var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n var _b;\n var target = __rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof Element))\n return { target: target, transitionEnd: transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = __assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable(current))\n return;\n var resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (var key in target) {\n var current = target[key];\n if (!isCSSVariable(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nexport { cssVariableRegex, parseCSSVariable, resolveCSSVariables };\n","import { __assign, __read } from 'tslib';\nimport { number, px } from 'style-value-types';\nimport { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from 'hey-listen';\nimport { transformProps } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) {\n return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n };\n};\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.syncRender();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a, _b) {\n var x = _a.x;\n var _c = _b.paddingLeft, paddingLeft = _c === void 0 ? \"0\" : _c, _d = _b.paddingRight, paddingRight = _d === void 0 ? \"0\" : _d;\n return x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight);\n },\n height: function (_a, _b) {\n var y = _a.y;\n var _c = _b.paddingTop, paddingTop = _c === void 0 ? \"0\" : _c, _d = _b.paddingBottom, paddingBottom = _d === void 0 ? \"0\" : _d;\n return y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom);\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.measureViewportBox();\n var element = visualElement.getInstance();\n var elementComputedStyle = getComputedStyle(element);\n var display = elementComputedStyle.display;\n var origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach(function (key) {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.syncRender();\n var targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach(function (key) {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n var value = visualElement.getValue(key);\n setAndResetVelocity(value, origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = __assign({}, target);\n transitionEnd = __assign({}, transitionEnd);\n var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var fromType = findDimensionValueType(from);\n var to = target[key];\n var toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n var numKeyframes = to.length;\n var fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (var i = fromIndex; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n var current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.syncRender();\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target: target, transitionEnd: transitionEnd };\n}\n\nexport { BoundingBoxDimension, positionalValues, unitConversion };\n","import { resolveCSSVariables } from './css-variables-conversion.mjs';\nimport { unitConversion } from './unit-conversion.mjs';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","import { __rest, __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariable } from '../dom/utils/is-css-variable.mjs';\nimport { parseDomVariant } from '../dom/utils/parse-dom-variant.mjs';\nimport { isTransformProp } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nvar htmlConfig = {\n treeType: \"dom\",\n readValueFromInstance: function (domElement, key) {\n if (isTransformProp(key)) {\n var defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n var computedStyle = getComputedStyle(domElement);\n return ((isCSSVariable(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0);\n }\n },\n sortNodePosition: function (a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n },\n getBaseTarget: function (props, key) {\n var _a;\n return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n },\n measureViewportBox: function (element, _a) {\n var transformPagePoint = _a.transformPagePoint;\n return measureViewportBox(element, transformPagePoint);\n },\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n resetTransform: function (element, domElement, props) {\n var transformTemplate = props.transformTemplate;\n domElement.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform on the next frame\n element.scheduleRender();\n },\n restoreTransform: function (instance, mutableState) {\n instance.style.transform = mutableState.style.transform;\n },\n removeValueFromRenderState: function (key, _a) {\n var vars = _a.vars, style = _a.style;\n delete vars[key];\n delete style[key];\n },\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n makeTargetAnimatable: function (element, _a, _b, isMounted) {\n var transformValues = _b.transformValues;\n if (isMounted === void 0) { isMounted = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n var origin = getOrigin(target, transition || {}, element);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(element, target, origin);\n var parsed = parseDomVariant(element, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return __assign({ transition: transition, transitionEnd: transitionEnd }, target);\n },\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n build: function (element, renderState, latestValues, options, props) {\n if (element.isVisible !== undefined) {\n renderState.style.visibility = element.isVisible\n ? \"visible\"\n : \"hidden\";\n }\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n },\n render: renderHTML,\n};\nvar htmlVisualElement = visualElement(htmlConfig);\n\nexport { getComputedStyle, htmlConfig, htmlVisualElement };\n","import { __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { htmlConfig } from '../html/visual-element.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\n\nvar svgVisualElement = visualElement(__assign(__assign({}, htmlConfig), { getBaseTarget: function (props, key) {\n return props[key];\n }, readValueFromInstance: function (domElement, key) {\n var _a;\n if (isTransformProp(key)) {\n return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return domElement.getAttribute(key);\n }, scrapeMotionValuesFromProps: scrapeMotionValuesFromProps, build: function (_element, renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, props.transformTemplate);\n }, render: renderSVG }));\n\nexport { svgVisualElement };\n","import { htmlVisualElement } from '../html/visual-element.mjs';\nimport { svgVisualElement } from '../svg/visual-element.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nvar createDomVisualElement = function (Component, options) {\n return isSVGComponent(Component)\n ? svgVisualElement(options, { enableHardwareAcceleration: false })\n : htmlVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { px } from 'style-value-types';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nvar correctBorderRadius = {\n correct: function (latest, node) {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n var x = pixelsToPercent(latest, node.target.x);\n var y = pixelsToPercent(latest, node.target.y);\n return \"\".concat(x, \"% \").concat(y, \"%\");\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mix } from 'popmotion';\nimport { complex } from 'style-value-types';\nimport { cssVariableRegex } from '../../render/dom/utils/css-variables-conversion.mjs';\n\nvar varToken = \"_$css\";\nvar correctBoxShadow = {\n correct: function (latest, _a) {\n var treeScale = _a.treeScale, projectionDelta = _a.projectionDelta;\n var original = latest;\n /**\n * We need to first strip and store CSS variables from the string.\n */\n var containsCSSVariables = latest.includes(\"var(\");\n var cssVariables = [];\n if (containsCSSVariables) {\n latest = latest.replace(cssVariableRegex, function (match) {\n cssVariables.push(match);\n return varToken;\n });\n }\n var shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n var template = complex.createTransformer(latest);\n var offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n var xScale = projectionDelta.x.scale * treeScale.x;\n var yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n var averageScale = mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n var output = template(shadow);\n if (containsCSSVariables) {\n var i_1 = 0;\n output = output.replace(varToken, function () {\n var cssVariable = cssVariables[i_1];\n i_1++;\n return cssVariable;\n });\n }\n return output;\n },\n};\n\nexport { correctBoxShadow };\n","import { __extends, __assign, __read } from 'tslib';\nimport sync from 'framesync';\nimport React__default, { useContext } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/create-projection-node.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\n\nvar MeasureLayoutWithContext = /** @class */ (function (_super) {\n __extends(MeasureLayoutWithContext, _super);\n function MeasureLayoutWithContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n MeasureLayoutWithContext.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, switchLayoutGroup = _a.switchLayoutGroup, layoutId = _a.layoutId;\n var projection = visualElement.projection;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.add(projection);\n if ((switchLayoutGroup === null || switchLayoutGroup === void 0 ? void 0 : switchLayoutGroup.register) && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", function () {\n _this.safeToRemove();\n });\n projection.setOptions(__assign(__assign({}, projection.options), { onExitComplete: function () { return _this.safeToRemove(); } }));\n }\n globalProjectionState.hasEverUpdated = true;\n };\n MeasureLayoutWithContext.prototype.getSnapshotBeforeUpdate = function (prevProps) {\n var _this = this;\n var _a = this.props, layoutDependency = _a.layoutDependency, visualElement = _a.visualElement, drag = _a.drag, isPresent = _a.isPresent;\n var projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n sync.postRender(function () {\n var _a;\n if (!((_a = projection.getStack()) === null || _a === void 0 ? void 0 : _a.members.length)) {\n _this.safeToRemove();\n }\n });\n }\n }\n return null;\n };\n MeasureLayoutWithContext.prototype.componentDidUpdate = function () {\n var projection = this.props.visualElement.projection;\n if (projection) {\n projection.root.didUpdate();\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n }\n };\n MeasureLayoutWithContext.prototype.componentWillUnmount = function () {\n var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, promoteContext = _a.switchLayoutGroup;\n var projection = visualElement.projection;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext === null || promoteContext === void 0 ? void 0 : promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n };\n MeasureLayoutWithContext.prototype.safeToRemove = function () {\n var safeToRemove = this.props.safeToRemove;\n safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove();\n };\n MeasureLayoutWithContext.prototype.render = function () {\n return null;\n };\n return MeasureLayoutWithContext;\n}(React__default.Component));\nfunction MeasureLayout(props) {\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var layoutGroup = useContext(LayoutGroupContext);\n return (React__default.createElement(MeasureLayoutWithContext, __assign({}, props, { layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove })));\n}\nvar defaultScaleCorrectors = {\n borderRadius: __assign(__assign({}, correctBorderRadius), { applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ] }),\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { MeasureLayout } from './MeasureLayout.mjs';\n\nvar layoutFeatures = {\n measureLayout: MeasureLayout,\n};\n\nexport { layoutFeatures };\n","import { createProjectionNode } from './create-projection-node.mjs';\n\nvar DocumentProjectionNode = createProjectionNode({\n attachResizeListener: function (ref, notify) {\n ref.addEventListener(\"resize\", notify, { passive: true });\n return function () { return ref.removeEventListener(\"resize\", notify); };\n },\n measureScroll: function () { return ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }); },\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nvar rootProjectionNode = {\n current: undefined,\n};\nvar HTMLProjectionNode = createProjectionNode({\n measureScroll: function (instance) { return ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }); },\n defaultParent: function () {\n if (!rootProjectionNode.current) {\n var documentNode = new DocumentProjectionNode(0, {});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: function (instance, value) {\n instance.style.transform = value !== null && value !== void 0 ? value : \"none\";\n },\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { __assign } from 'tslib';\nimport { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layoutFeatures } from '../../motion/features/layout/index.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nvar featureBundle = __assign(__assign(__assign(__assign({}, animations), gestureAnimations), drag), layoutFeatures);\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nvar motion = /*@__PURE__*/ createMotionProxy(function (Component, config) {\n return createDomMotionConfig(Component, config, featureBundle, createDomVisualElement, HTMLProjectionNode);\n});\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, featureBundle, createDomVisualElement, HTMLProjectionNode));\n}\n\nexport { createDomMotionComponent, motion };\n","import { __assign } from 'tslib';\nimport { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, _a, preloadedFeatures, createVisualElement, projectionNodeConstructor) {\n var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;\n var baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement, projectionNodeConstructor: projectionNodeConstructor, Component: Component });\n}\n\nexport { createDomMotionConfig };\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n var isMounted = useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import { __values } from 'tslib';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\nvar PresenceChild = function (_a) {\n var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useId();\n var context = useMemo(function () { return ({\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function (childId) {\n var e_1, _a;\n presenceChildren.set(childId, true);\n try {\n for (var _b = __values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var isComplete = _c.value;\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();\n },\n register: function (childId) {\n presenceChildren.set(childId, false);\n return function () { return presenceChildren.delete(childId); };\n },\n }); }, \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(function () {\n presenceChildren.forEach(function (_, key) { return presenceChildren.set(key, false); });\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(function () {\n !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n }, [isPresent]);\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { __read, __spreadArray } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport process from '../../utils/process.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\n\nvar getChildKey = function (child) { return child.key || \"\"; };\nfunction updateChildLookup(children, allChildren) {\n children.forEach(function (child) {\n var key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n var filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, function (child) {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n var _d = __read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n var presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n var isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = __spreadArray([], __read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n","import { __read } from 'tslib';\nimport sync from 'framesync';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = useCallback(function () {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n var deferredForceRender = useCallback(function () { return sync.postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { chakra, useChakra, ThemeProvider, ColorModeContext } from '@chakra-ui/system';\nimport * as React from 'react';\nimport { Alert, AlertIcon, AlertTitle, AlertDescription } from '@chakra-ui/alert';\nimport { CloseButton } from '@chakra-ui/close-button';\nimport { isFunction, runIfFn, __DEV__, objectKeys, noop } from '@chakra-ui/utils';\nimport { useIsPresent, motion, AnimatePresence } from 'framer-motion';\nimport { Portal } from '@chakra-ui/portal';\nimport { useUpdateEffect, useTimeout } from '@chakra-ui/hooks';\nimport defaultTheme from '@chakra-ui/theme';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction getToastPlacement(position, dir) {\n var _logical$dir;\n\n var computedPosition = position != null ? position : \"bottom\";\n var logicals = {\n \"top-start\": {\n ltr: \"top-left\",\n rtl: \"top-right\"\n },\n \"top-end\": {\n ltr: \"top-right\",\n rtl: \"top-left\"\n },\n \"bottom-start\": {\n ltr: \"bottom-left\",\n rtl: \"bottom-right\"\n },\n \"bottom-end\": {\n ltr: \"bottom-right\",\n rtl: \"bottom-left\"\n }\n };\n var logical = logicals[computedPosition];\n return (_logical$dir = logical == null ? void 0 : logical[dir]) != null ? _logical$dir : computedPosition;\n}\n\n/**\n * Given an array of toasts for a specific position.\n * It returns the toast that matches the `id` passed\n */\n/**\n * Given the toast manager state, finds the toast that matches\n * the id and return its position and index\n */\n\nfunction findToast(toasts, id) {\n var position = getToastPosition(toasts, id);\n var index = position ? toasts[position].findIndex(function (toast) {\n return toast.id === id;\n }) : -1;\n return {\n position: position,\n index: index\n };\n}\n/**\n * Given the toast manager state, finds the position of the toast that\n * matches the `id`\n */\n\nvar getToastPosition = function getToastPosition(toasts, id) {\n var _Object$values$flat$f;\n\n return (_Object$values$flat$f = Object.values(toasts).flat().find(function (toast) {\n return toast.id === id;\n })) == null ? void 0 : _Object$values$flat$f.position;\n};\n/**\n * Gets the styles to be applied to a toast's container\n * based on its position in the manager\n */\n\nfunction getToastStyle(position) {\n var isRighty = position.includes(\"right\");\n var isLefty = position.includes(\"left\");\n var alignItems = \"center\";\n if (isRighty) alignItems = \"flex-end\";\n if (isLefty) alignItems = \"flex-start\";\n return {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: alignItems\n };\n}\n/**\n * Compute the style of a toast based on its position\n */\n\nfunction getToastListStyle(position) {\n var isTopOrBottom = position === \"top\" || position === \"bottom\";\n var margin = isTopOrBottom ? \"0 auto\" : undefined;\n var top = position.includes(\"top\") ? \"env(safe-area-inset-top, 0px)\" : undefined;\n var bottom = position.includes(\"bottom\") ? \"env(safe-area-inset-bottom, 0px)\" : undefined;\n var right = !position.includes(\"left\") ? \"env(safe-area-inset-right, 0px)\" : undefined;\n var left = !position.includes(\"right\") ? \"env(safe-area-inset-left, 0px)\" : undefined;\n return {\n position: \"fixed\",\n zIndex: 5500,\n pointerEvents: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n margin: margin,\n top: top,\n bottom: bottom,\n right: right,\n left: left\n };\n}\n\nvar initialState = {\n top: [],\n \"top-left\": [],\n \"top-right\": [],\n \"bottom-left\": [],\n bottom: [],\n \"bottom-right\": []\n};\n/**\n * Store to track all the toast across all positions\n */\n\nvar toastStore = createStore(initialState);\n\nfunction createStore(initialState) {\n var state = initialState;\n var listeners = new Set();\n\n var setState = function setState(setStateFn) {\n state = setStateFn(state);\n listeners.forEach(function (l) {\n return l();\n });\n };\n\n return {\n getState: function getState() {\n return state;\n },\n subscribe: function subscribe(listener) {\n listeners.add(listener);\n return function () {\n // Delete all toasts on unmount\n setState(function () {\n return initialState;\n });\n listeners[\"delete\"](listener);\n };\n },\n\n /**\n * Delete a toast record at its position\n */\n removeToast: function removeToast(id, position) {\n setState(function (prevState) {\n var _extends2;\n\n return _extends({}, prevState, (_extends2 = {}, _extends2[position] = prevState[position].filter(function (toast) {\n return toast.id != id;\n }), _extends2));\n });\n },\n notify: function notify(message, options) {\n var toast = createToast(message, options);\n var position = toast.position,\n id = toast.id;\n setState(function (prevToasts) {\n var _prevToasts$position, _prevToasts$position2, _extends3;\n\n var isTop = position.includes(\"top\");\n /**\n * - If the toast is positioned at the top edges, the\n * recent toast stacks on top of the other toasts.\n *\n * - If the toast is positioned at the bottom edges, the recent\n * toast stacks below the other toasts.\n */\n\n var toasts = isTop ? [toast].concat((_prevToasts$position = prevToasts[position]) != null ? _prevToasts$position : []) : [].concat((_prevToasts$position2 = prevToasts[position]) != null ? _prevToasts$position2 : [], [toast]);\n return _extends({}, prevToasts, (_extends3 = {}, _extends3[position] = toasts, _extends3));\n });\n return id;\n },\n update: function update(id, options) {\n if (!id) return;\n setState(function (prevState) {\n var nextState = _extends({}, prevState);\n\n var _findToast = findToast(nextState, id),\n position = _findToast.position,\n index = _findToast.index;\n\n if (position && index !== -1) {\n nextState[position][index] = _extends({}, nextState[position][index], options, {\n message: createRenderToast(options)\n });\n }\n\n return nextState;\n });\n },\n closeAll: function closeAll(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n positions = _ref.positions;\n\n // only one setState here for perf reasons\n // instead of spamming this.closeToast\n setState(function (prev) {\n var allPositions = [\"bottom\", \"bottom-right\", \"bottom-left\", \"top\", \"top-left\", \"top-right\"];\n var positionsToClose = positions != null ? positions : allPositions;\n return positionsToClose.reduce(function (acc, position) {\n acc[position] = prev[position].map(function (toast) {\n return _extends({}, toast, {\n requestClose: true\n });\n });\n return acc;\n }, _extends({}, prev));\n });\n },\n close: function close(id) {\n setState(function (prevState) {\n var _extends4;\n\n var position = getToastPosition(prevState, id);\n if (!position) return prevState;\n return _extends({}, prevState, (_extends4 = {}, _extends4[position] = prevState[position].map(function (toast) {\n // id may be string or number\n // eslint-disable-next-line eqeqeq\n if (toast.id == id) {\n return _extends({}, toast, {\n requestClose: true\n });\n }\n\n return toast;\n }), _extends4));\n });\n },\n isActive: function isActive(id) {\n return Boolean(findToast(toastStore.getState(), id).position);\n }\n };\n}\n/**\n * Static id counter to create unique ids\n * for each toast\n */\n\n\nvar counter = 0;\n/**\n * Create properties for a new toast\n */\n\nfunction createToast(message, options) {\n var _options$id, _options$position;\n\n if (options === void 0) {\n options = {};\n }\n\n counter += 1;\n var id = (_options$id = options.id) != null ? _options$id : counter;\n var position = (_options$position = options.position) != null ? _options$position : \"bottom\";\n return {\n id: id,\n message: message,\n position: position,\n duration: options.duration,\n onCloseComplete: options.onCloseComplete,\n onRequestRemove: function onRequestRemove() {\n return toastStore.removeToast(String(id), position);\n },\n status: options.status,\n requestClose: false,\n containerStyle: options.containerStyle\n };\n}\n\nvar Toast = function Toast(props) {\n var status = props.status,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? \"solid\" : _props$variant,\n id = props.id,\n title = props.title,\n isClosable = props.isClosable,\n onClose = props.onClose,\n description = props.description,\n icon = props.icon;\n var alertTitleId = typeof id !== \"undefined\" ? \"toast-\" + id + \"-title\" : undefined;\n return /*#__PURE__*/React.createElement(Alert, {\n status: status,\n variant: variant,\n id: String(id),\n alignItems: \"start\",\n borderRadius: \"md\",\n boxShadow: \"lg\",\n paddingEnd: 8,\n textAlign: \"start\",\n width: \"auto\",\n \"aria-labelledby\": alertTitleId\n }, /*#__PURE__*/React.createElement(AlertIcon, null, icon), /*#__PURE__*/React.createElement(chakra.div, {\n flex: \"1\",\n maxWidth: \"100%\"\n }, title && /*#__PURE__*/React.createElement(AlertTitle, {\n id: alertTitleId\n }, title), description && /*#__PURE__*/React.createElement(AlertDescription, {\n display: \"block\"\n }, description)), isClosable && /*#__PURE__*/React.createElement(CloseButton, {\n size: \"sm\",\n onClick: onClose,\n position: \"absolute\",\n insetEnd: 1,\n top: 1\n }));\n};\nfunction createRenderToast(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n render = _options.render,\n _options$toastCompone = _options.toastComponent,\n ToastComponent = _options$toastCompone === void 0 ? Toast : _options$toastCompone;\n\n var renderToast = function renderToast(props) {\n if (isFunction(render)) {\n return render(props);\n }\n\n return /*#__PURE__*/React.createElement(ToastComponent, _extends({}, props, options));\n };\n\n return renderToast;\n}\nfunction createToastFn(dir, defaultOptions) {\n var normalizeToastOptions = function normalizeToastOptions(options) {\n var _options$position;\n\n return _extends({}, defaultOptions, options, {\n position: getToastPlacement((_options$position = options == null ? void 0 : options.position) != null ? _options$position : defaultOptions == null ? void 0 : defaultOptions.position, dir)\n });\n };\n\n var toast = function toast(options) {\n var normalizedToastOptions = normalizeToastOptions(options);\n var Message = createRenderToast(normalizedToastOptions);\n return toastStore.notify(Message, normalizedToastOptions);\n };\n\n toast.update = function (id, options) {\n toastStore.update(id, normalizeToastOptions(options));\n };\n\n toast.promise = function (promise, options) {\n var id = toast(_extends({}, options.loading, {\n status: \"loading\",\n duration: null\n }));\n promise.then(function (data) {\n return toast.update(id, _extends({\n status: \"success\",\n duration: 5000\n }, runIfFn(options.success, data)));\n })[\"catch\"](function (error) {\n return toast.update(id, _extends({\n status: \"error\",\n duration: 5000\n }, runIfFn(options.error, error)));\n });\n };\n\n toast.closeAll = toastStore.closeAll;\n toast.close = toastStore.close;\n toast.isActive = toastStore.isActive;\n return toast;\n}\n\n/**\n * React hook used to create a function that can be used\n * to show toasts in an application.\n */\nfunction useToast(defaultOptions) {\n var _useChakra = useChakra(),\n theme = _useChakra.theme;\n\n return React.useMemo(function () {\n return createToastFn(theme.direction, defaultOptions);\n }, [defaultOptions, theme.direction]);\n}\n\nvar toastMotionVariants = {\n initial: function initial(props) {\n var _ref;\n\n var position = props.position;\n var dir = [\"top\", \"bottom\"].includes(position) ? \"y\" : \"x\";\n var factor = [\"top-right\", \"bottom-right\"].includes(position) ? 1 : -1;\n if (position === \"bottom\") factor = 1;\n return _ref = {\n opacity: 0\n }, _ref[dir] = factor * 24, _ref;\n },\n animate: {\n opacity: 1,\n y: 0,\n x: 0,\n scale: 1,\n transition: {\n duration: 0.4,\n ease: [0.4, 0, 0.2, 1]\n }\n },\n exit: {\n opacity: 0,\n scale: 0.85,\n transition: {\n duration: 0.2,\n ease: [0.4, 0, 1, 1]\n }\n }\n};\nvar ToastComponent = /*#__PURE__*/React.memo(function (props) {\n var id = props.id,\n message = props.message,\n onCloseComplete = props.onCloseComplete,\n onRequestRemove = props.onRequestRemove,\n _props$requestClose = props.requestClose,\n requestClose = _props$requestClose === void 0 ? false : _props$requestClose,\n _props$position = props.position,\n position = _props$position === void 0 ? \"bottom\" : _props$position,\n _props$duration = props.duration,\n duration = _props$duration === void 0 ? 5000 : _props$duration,\n containerStyle = props.containerStyle,\n _props$motionVariants = props.motionVariants,\n motionVariants = _props$motionVariants === void 0 ? toastMotionVariants : _props$motionVariants,\n _props$toastSpacing = props.toastSpacing,\n toastSpacing = _props$toastSpacing === void 0 ? \"0.5rem\" : _props$toastSpacing;\n\n var _React$useState = React.useState(duration),\n delay = _React$useState[0],\n setDelay = _React$useState[1];\n\n var isPresent = useIsPresent();\n useUpdateEffect(function () {\n if (!isPresent) {\n onCloseComplete == null ? void 0 : onCloseComplete();\n }\n }, [isPresent]);\n useUpdateEffect(function () {\n setDelay(duration);\n }, [duration]);\n\n var onMouseEnter = function onMouseEnter() {\n return setDelay(null);\n };\n\n var onMouseLeave = function onMouseLeave() {\n return setDelay(duration);\n };\n\n var close = function close() {\n if (isPresent) onRequestRemove();\n };\n\n React.useEffect(function () {\n if (isPresent && requestClose) {\n onRequestRemove();\n }\n }, [isPresent, requestClose, onRequestRemove]);\n useTimeout(close, delay);\n var containerStyles = React.useMemo(function () {\n return _extends({\n pointerEvents: \"auto\",\n maxWidth: 560,\n minWidth: 300,\n margin: toastSpacing\n }, containerStyle);\n }, [containerStyle, toastSpacing]);\n var toastStyle = React.useMemo(function () {\n return getToastStyle(position);\n }, [position]);\n return /*#__PURE__*/React.createElement(motion.li, {\n layout: true,\n className: \"chakra-toast\",\n variants: motionVariants,\n initial: \"initial\",\n animate: \"animate\",\n exit: \"exit\",\n onHoverStart: onMouseEnter,\n onHoverEnd: onMouseLeave,\n custom: {\n position: position\n },\n style: toastStyle\n }, /*#__PURE__*/React.createElement(chakra.div, {\n role: \"status\",\n \"aria-atomic\": \"true\",\n className: \"chakra-toast__inner\",\n __css: containerStyles\n }, runIfFn(message, {\n id: id,\n onClose: close\n })));\n});\n\nif (__DEV__) {\n ToastComponent.displayName = \"ToastComponent\";\n}\n\n/**\n * Manages the creation, and removal of toasts\n * across all corners (\"top\", \"bottom\", etc.)\n */\nvar ToastProvider = function ToastProvider(props) {\n var state = React.useSyncExternalStore(toastStore.subscribe, toastStore.getState, toastStore.getState);\n var children = props.children,\n motionVariants = props.motionVariants,\n _props$component = props.component,\n CustomToastComponent = _props$component === void 0 ? ToastComponent : _props$component;\n var toastList = objectKeys(state).map(function (position) {\n var toasts = state[position];\n return /*#__PURE__*/React.createElement(\"ul\", {\n role: \"region\",\n \"aria-live\": \"polite\",\n key: position,\n id: \"chakra-toast-manager-\" + position,\n style: getToastListStyle(position)\n }, /*#__PURE__*/React.createElement(AnimatePresence, {\n initial: false\n }, toasts.map(function (toast) {\n return /*#__PURE__*/React.createElement(CustomToastComponent, _extends({\n key: toast.id,\n motionVariants: motionVariants\n }, toast));\n })));\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement(Portal, null, toastList));\n};\n\nvar defaults = {\n duration: 5000,\n variant: \"solid\"\n};\nvar defaultStandaloneParam = {\n theme: defaultTheme,\n colorMode: \"light\",\n toggleColorMode: noop,\n setColorMode: noop,\n defaultOptions: defaults\n};\n/**\n * Create a toast\n */\n\nfunction createStandaloneToast(_temp) {\n var _ref = _temp === void 0 ? defaultStandaloneParam : _temp,\n _ref$theme = _ref.theme,\n theme = _ref$theme === void 0 ? defaultStandaloneParam.theme : _ref$theme,\n _ref$colorMode = _ref.colorMode,\n colorMode = _ref$colorMode === void 0 ? defaultStandaloneParam.colorMode : _ref$colorMode,\n _ref$toggleColorMode = _ref.toggleColorMode,\n toggleColorMode = _ref$toggleColorMode === void 0 ? defaultStandaloneParam.toggleColorMode : _ref$toggleColorMode,\n _ref$setColorMode = _ref.setColorMode,\n setColorMode = _ref$setColorMode === void 0 ? defaultStandaloneParam.setColorMode : _ref$setColorMode,\n _ref$defaultOptions = _ref.defaultOptions,\n defaultOptions = _ref$defaultOptions === void 0 ? defaultStandaloneParam.defaultOptions : _ref$defaultOptions,\n motionVariants = _ref.motionVariants,\n toastSpacing = _ref.toastSpacing,\n component = _ref.component;\n\n var colorModeContextValue = {\n colorMode: colorMode,\n setColorMode: setColorMode,\n toggleColorMode: toggleColorMode\n };\n\n var ToastContainer = function ToastContainer() {\n return /*#__PURE__*/React.createElement(ThemeProvider, {\n theme: theme\n }, /*#__PURE__*/React.createElement(ColorModeContext.Provider, {\n value: colorModeContextValue\n }, /*#__PURE__*/React.createElement(ToastProvider, {\n defaultOptions: defaultOptions,\n motionVariants: motionVariants,\n toastSpacing: toastSpacing,\n component: component\n })));\n };\n\n return {\n ToastContainer: ToastContainer,\n toast: createToastFn(theme.direction, defaultOptions)\n };\n}\n\nexport { Toast, ToastProvider, createRenderToast, createStandaloneToast, createToastFn, defaultStandaloneParam, getToastPlacement, useToast };\n","import * as React from 'react';\nimport { ChakraProvider as ChakraProvider$1 } from '@chakra-ui/provider';\nimport { theme as theme$1, isChakraTheme } from '@chakra-ui/theme';\nexport * from '@chakra-ui/theme';\nimport { ToastProvider } from '@chakra-ui/toast';\nexport * from '@chakra-ui/toast';\nimport { pipe, isFunction, mergeWith, isObject, fromEntries } from '@chakra-ui/utils';\nexport * from '@chakra-ui/accordion';\nexport * from '@chakra-ui/alert';\nexport * from '@chakra-ui/avatar';\nexport * from '@chakra-ui/breadcrumb';\nexport * from '@chakra-ui/button';\nexport * from '@chakra-ui/checkbox';\nexport * from '@chakra-ui/close-button';\nexport * from '@chakra-ui/counter';\nexport * from '@chakra-ui/css-reset';\nexport * from '@chakra-ui/editable';\nexport * from '@chakra-ui/form-control';\nexport * from '@chakra-ui/control-box';\nexport * from '@chakra-ui/hooks';\nexport * from '@chakra-ui/icon';\nexport * from '@chakra-ui/image';\nexport * from '@chakra-ui/input';\nexport * from '@chakra-ui/layout';\nexport * from '@chakra-ui/media-query';\nexport * from '@chakra-ui/table';\nexport * from '@chakra-ui/menu';\nexport * from '@chakra-ui/modal';\nexport * from '@chakra-ui/number-input';\nexport * from '@chakra-ui/pin-input';\nexport * from '@chakra-ui/popover';\nexport * from '@chakra-ui/popper';\nexport * from '@chakra-ui/portal';\nexport * from '@chakra-ui/progress';\nexport * from '@chakra-ui/radio';\nexport * from '@chakra-ui/select';\nexport * from '@chakra-ui/skeleton';\nexport * from '@chakra-ui/slider';\nexport * from '@chakra-ui/spinner';\nexport * from '@chakra-ui/stat';\nexport * from '@chakra-ui/switch';\nexport * from '@chakra-ui/system';\nexport * from '@chakra-ui/tabs';\nexport * from '@chakra-ui/tag';\nexport * from '@chakra-ui/textarea';\nexport * from '@chakra-ui/tooltip';\nexport * from '@chakra-ui/transition';\nexport * from '@chakra-ui/visually-hidden';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"children\", \"toastOptions\"];\nvar ChakraProvider = function ChakraProvider(_ref) {\n var children = _ref.children,\n toastOptions = _ref.toastOptions,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(ChakraProvider$1, restProps, children, /*#__PURE__*/React.createElement(ToastProvider, toastOptions));\n};\nChakraProvider.defaultProps = {\n theme: theme$1\n};\n\n/**\n * NOTE: This got too complex to manage, and it's not worth the extra complexity.\n * We'll re-evaluate this API in the future releases.\n *\n * Function to override or customize the Chakra UI theme conveniently.\n * First extension overrides the baseTheme and following extensions override the preceding extensions.\n *\n * @example:\n * import { theme as baseTheme, extendTheme, withDefaultColorScheme } from '@chakra-ui/react'\n *\n * const customTheme = extendTheme(\n * {\n * colors: {\n * brand: {\n * 500: \"#b4d455\",\n * },\n * },\n * },\n * withDefaultColorScheme({ colorScheme: \"red\" }),\n * baseTheme // optional\n * )\n */\nfunction extendTheme() {\n for (var _len = arguments.length, extensions = new Array(_len), _key = 0; _key < _len; _key++) {\n extensions[_key] = arguments[_key];\n }\n\n var overrides = [].concat(extensions);\n var baseTheme = extensions[extensions.length - 1];\n\n if (isChakraTheme(baseTheme) && // this ensures backward compatibility\n // previously only `extendTheme(override, baseTheme?)` was allowed\n overrides.length > 1) {\n overrides = overrides.slice(0, overrides.length - 1);\n } else {\n baseTheme = theme$1;\n }\n\n return pipe.apply(void 0, overrides.map(function (extension) {\n return function (prevTheme) {\n return isFunction(extension) ? extension(prevTheme) : mergeThemeOverride(prevTheme, extension);\n };\n }))(baseTheme);\n}\nfunction mergeThemeOverride() {\n for (var _len2 = arguments.length, overrides = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n overrides[_key2] = arguments[_key2];\n }\n\n return mergeWith.apply(void 0, [{}].concat(overrides, [mergeThemeCustomizer]));\n}\n\nfunction mergeThemeCustomizer(source, override, key, object) {\n if ((isFunction(source) || isFunction(override)) && Object.prototype.hasOwnProperty.call(object, key)) {\n return function () {\n var sourceValue = isFunction(source) ? source.apply(void 0, arguments) : source;\n var overrideValue = isFunction(override) ? override.apply(void 0, arguments) : override;\n return mergeWith({}, sourceValue, overrideValue, mergeThemeCustomizer);\n };\n } // fallback to default behaviour\n\n\n return undefined;\n}\n\nfunction withDefaultColorScheme(_ref) {\n var colorScheme = _ref.colorScheme,\n components = _ref.components;\n return function (theme) {\n var names = Object.keys(theme.components || {});\n\n if (Array.isArray(components)) {\n names = components;\n } else if (isObject(components)) {\n names = Object.keys(components);\n }\n\n return mergeThemeOverride(theme, {\n components: fromEntries(names.map(function (componentName) {\n var withColorScheme = {\n defaultProps: {\n colorScheme: colorScheme\n }\n };\n return [componentName, withColorScheme];\n }))\n });\n };\n}\n\nfunction withDefaultSize(_ref) {\n var size = _ref.size,\n components = _ref.components;\n return function (theme) {\n var names = Object.keys(theme.components || {});\n\n if (Array.isArray(components)) {\n names = components;\n } else if (isObject(components)) {\n names = Object.keys(components);\n }\n\n return mergeThemeOverride(theme, {\n components: fromEntries(names.map(function (componentName) {\n var withSize = {\n defaultProps: {\n size: size\n }\n };\n return [componentName, withSize];\n }))\n });\n };\n}\n\nfunction withDefaultVariant(_ref) {\n var variant = _ref.variant,\n components = _ref.components;\n return function (theme) {\n var names = Object.keys(theme.components || {});\n\n if (Array.isArray(components)) {\n names = components;\n } else if (isObject(components)) {\n names = Object.keys(components);\n }\n\n return mergeThemeOverride(theme, {\n components: fromEntries(names.map(function (componentName) {\n var withVariant = {\n defaultProps: {\n variant: variant\n }\n };\n return [componentName, withVariant];\n }))\n });\n };\n}\n\nfunction withDefaultProps(_ref) {\n var _ref$defaultProps = _ref.defaultProps,\n colorScheme = _ref$defaultProps.colorScheme,\n variant = _ref$defaultProps.variant,\n size = _ref$defaultProps.size,\n components = _ref.components;\n\n var identity = function identity(t) {\n return t;\n };\n\n var fns = [colorScheme ? withDefaultColorScheme({\n colorScheme: colorScheme,\n components: components\n }) : identity, size ? withDefaultSize({\n size: size,\n components: components\n }) : identity, variant ? withDefaultVariant({\n variant: variant,\n components: components\n }) : identity];\n return function (theme) {\n return mergeThemeOverride(pipe.apply(void 0, fns)(theme));\n };\n}\n\nexport { ChakraProvider, extendTheme, mergeThemeOverride, withDefaultColorScheme, withDefaultProps, withDefaultSize, withDefaultVariant };\n","import { ReportHandler } from \"web-vitals\"\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/,\n ),\n)\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void\n onUpdate?: (registration: ServiceWorkerRegistration) => void\n}\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://cra.link/PWA\",\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://cra.link/PWA.\",\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It is the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\")\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\")\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\",\n )\n })\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(error.message)\n })\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\n */\n\nexport const CONSTANTS = {\n /**\n * @define {boolean} Whether this is the client Node.js SDK.\n */\n NODE_CLIENT: false,\n /**\n * @define {boolean} Whether this is the Admin Node.js SDK.\n */\n NODE_ADMIN: false,\n\n /**\n * Firebase SDK Version\n */\n SDK_VERSION: '${JSCORE_VERSION}'\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CONSTANTS } from './constants';\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment\n */\nexport function isBrowser(): boolean {\n return typeof self === 'object' && self.self === self;\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n return typeof indexedDB === 'object';\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n * // Typescript string literals for type-safe codes\n * type Err =\n * 'unknown' |\n * 'object-not-found'\n * ;\n *\n * // Closure enum for type-safe error codes\n * // at-enum {string}\n * var Err = {\n * UNKNOWN: 'unknown',\n * OBJECT_NOT_FOUND: 'object-not-found',\n * }\n *\n * let errors: Map = {\n * 'generic-error': \"Unknown error\",\n * 'file-not-found': \"Could not find file: {$file}\",\n * };\n *\n * // Type-safe function - must pass a valid error code as param.\n * let error = new ErrorFactory('service', 'Service', errors);\n *\n * ...\n * throw error.create(Err.GENERIC);\n * ...\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n * ...\n * // Service: Could not file file: foo.txt (service/file-not-found).\n *\n * catch (e) {\n * assert(e.message === \"Could not find file: foo.txt.\");\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\n * console.log(\"Could not read file: \" + e['file']);\n * }\n * }\n */\n\nexport type ErrorMap = {\n readonly [K in ErrorCode]: string;\n};\n\nconst ERROR_NAME = 'FirebaseError';\n\nexport interface StringLike {\n toString(): string;\n}\n\nexport interface ErrorData {\n [key: string]: unknown;\n}\n\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nexport class FirebaseError extends Error {\n /** The custom name for all FirebaseErrors. */\n readonly name: string = ERROR_NAME;\n\n constructor(\n /** The error code for this error. */\n readonly code: string,\n message: string,\n /** Custom data for this error. */\n public customData?: Record\n ) {\n super(message);\n\n // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, FirebaseError.prototype);\n\n // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\n }\n }\n}\n\nexport class ErrorFactory<\n ErrorCode extends string,\n ErrorParams extends { readonly [K in ErrorCode]?: ErrorData } = {}\n> {\n constructor(\n private readonly service: string,\n private readonly serviceName: string,\n private readonly errors: ErrorMap\n ) {}\n\n create(\n code: K,\n ...data: K extends keyof ErrorParams ? [ErrorParams[K]] : []\n ): FirebaseError {\n const customData = (data[0] as ErrorData) || {};\n const fullCode = `${this.service}/${code}`;\n const template = this.errors[code];\n\n const message = template ? replaceTemplate(template, customData) : 'Error';\n // Service Name: Error message (service/code).\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n\n const error = new FirebaseError(fullCode, fullMessage, customData);\n\n return error;\n }\n}\n\nfunction replaceTemplate(template: string, data: ErrorData): string {\n return template.replace(PATTERN, (_, key) => {\n const value = data[key];\n return value != null ? String(value) : `<${key}?>`;\n });\n}\n\nconst PATTERN = /\\{\\$([^}]+)}/g;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\n * params object (e.g. {arg: 'val', arg2: 'val2'})\n * Note: You must prepend it with ? when adding it to a URL.\n */\nexport function querystring(querystringParams: {\n [key: string]: string | number;\n}): string {\n const params = [];\n for (const [key, value] of Object.entries(querystringParams)) {\n if (Array.isArray(value)) {\n value.forEach(arrayVal => {\n params.push(\n encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal)\n );\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n return params.length ? '&' + params.join('&') : '';\n}\n\n/**\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\n * (e.g. {arg: 'val', arg2: 'val2'})\n */\nexport function querystringDecode(querystring: string): Record {\n const obj: Record = {};\n const tokens = querystring.replace(/^\\?/, '').split('&');\n\n tokens.forEach(token => {\n if (token) {\n const [key, value] = token.split('=');\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n\n/**\n * Extract the query string part of a URL, including the leading question mark (if present).\n */\nexport function extractQuerystring(url: string): string {\n const queryStart = url.indexOf('?');\n if (!queryStart) {\n return '';\n }\n const fragmentStart = url.indexOf('#', queryStart);\n return url.substring(\n queryStart,\n fragmentStart > 0 ? fragmentStart : undefined\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport type NextFn = (value: T) => void;\nexport type ErrorFn = (error: Error) => void;\nexport type CompleteFn = () => void;\n\nexport interface Observer {\n // Called once for each value in a stream of values.\n next: NextFn;\n\n // A stream terminates by a single call to EITHER error() or complete().\n error: ErrorFn;\n\n // No events will be sent to next() once complete() is called.\n complete: CompleteFn;\n}\n\nexport type PartialObserver = Partial>;\n\n// TODO: Support also Unsubscribe.unsubscribe?\nexport type Unsubscribe = () => void;\n\n/**\n * The Subscribe interface has two forms - passing the inline function\n * callbacks, or a object interface with callback properties.\n */\nexport interface Subscribe {\n (next?: NextFn, error?: ErrorFn, complete?: CompleteFn): Unsubscribe;\n (observer: PartialObserver): Unsubscribe;\n}\n\nexport interface Observable {\n // Subscribe method\n subscribe: Subscribe;\n}\n\nexport type Executor = (observer: Observer) => void;\n\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\nexport function createSubscribe(\n executor: Executor,\n onNoObservers?: Executor\n): Subscribe {\n const proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n\n/**\n * Implement fan-out for any number of Observers attached via a subscribe\n * function.\n */\nclass ObserverProxy implements Observer {\n private observers: Array> | undefined = [];\n private unsubscribes: Unsubscribe[] = [];\n private onNoObservers: Executor | undefined;\n private observerCount = 0;\n // Micro-task scheduling by calling task.then().\n private task = Promise.resolve();\n private finalized = false;\n private finalError?: Error;\n\n /**\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\n constructor(executor: Executor, onNoObservers?: Executor) {\n this.onNoObservers = onNoObservers;\n // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n this.task\n .then(() => {\n executor(this);\n })\n .catch(e => {\n this.error(e);\n });\n }\n\n next(value: T): void {\n this.forEachObserver((observer: Observer) => {\n observer.next(value);\n });\n }\n\n error(error: Error): void {\n this.forEachObserver((observer: Observer) => {\n observer.error(error);\n });\n this.close(error);\n }\n\n complete(): void {\n this.forEachObserver((observer: Observer) => {\n observer.complete();\n });\n this.close();\n }\n\n /**\n * Subscribe function that can be used to add an Observer to the fan-out list.\n *\n * - We require that no event is sent to a subscriber sychronously to their\n * call to subscribe().\n */\n subscribe(\n nextOrObserver?: NextFn | PartialObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n ): Unsubscribe {\n let observer: Observer;\n\n if (\n nextOrObserver === undefined &&\n error === undefined &&\n complete === undefined\n ) {\n throw new Error('Missing Observer.');\n }\n\n // Assemble an Observer object when passed as callback functions.\n if (\n implementsAnyMethods(nextOrObserver as { [key: string]: unknown }, [\n 'next',\n 'error',\n 'complete'\n ])\n ) {\n observer = nextOrObserver as Observer;\n } else {\n observer = {\n next: nextOrObserver as NextFn,\n error,\n complete\n } as Observer;\n }\n\n if (observer.next === undefined) {\n observer.next = noop as NextFn;\n }\n if (observer.error === undefined) {\n observer.error = noop as ErrorFn;\n }\n if (observer.complete === undefined) {\n observer.complete = noop as CompleteFn;\n }\n\n const unsub = this.unsubscribeOne.bind(this, this.observers!.length);\n\n // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n try {\n if (this.finalError) {\n observer.error(this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {\n // nothing\n }\n return;\n });\n }\n\n this.observers!.push(observer as Observer);\n\n return unsub;\n }\n\n // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n private unsubscribeOne(i: number): void {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n\n this.observerCount -= 1;\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n }\n\n private forEachObserver(fn: (observer: Observer) => void): void {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n }\n\n // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n for (let i = 0; i < this.observers!.length; i++) {\n this.sendOne(i, fn);\n }\n }\n\n // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n private sendOne(i: number, fn: (observer: Observer) => void): void {\n // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n if (this.observers !== undefined && this.observers[i] !== undefined) {\n try {\n fn(this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n }\n\n private close(err?: Error): void {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n if (err !== undefined) {\n this.finalError = err;\n }\n // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n this.observers = undefined;\n this.onNoObservers = undefined;\n });\n }\n}\n\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function async(fn: Function, onError?: ErrorFn): Function {\n return (...args: unknown[]) => {\n Promise.resolve(true)\n .then(() => {\n fn(...args);\n })\n .catch((error: Error) => {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n\n/**\n * Return true if the object passed in implements any of the named methods.\n */\nfunction implementsAnyMethods(\n obj: { [key: string]: unknown },\n methods: string[]\n): boolean {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (const method of methods) {\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop(): void {\n // do nothing\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n InstantiationMode,\n InstanceFactory,\n ComponentType,\n Dictionary,\n Name,\n onInstanceCreatedCallback\n} from './types';\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nexport class Component {\n multipleInstances = false;\n /**\n * Properties to be added to the service namespace\n */\n serviceProps: Dictionary = {};\n\n instantiationMode = InstantiationMode.LAZY;\n\n onInstanceCreated: onInstanceCreatedCallback | null = null;\n\n /**\n *\n * @param name The public service name, e.g. app, auth, firestore, database\n * @param instanceFactory Service factory responsible for creating the public interface\n * @param type whether the service provided by the component is public or private\n */\n constructor(\n readonly name: T,\n readonly instanceFactory: InstanceFactory,\n readonly type: ComponentType\n ) {}\n\n setInstantiationMode(mode: InstantiationMode): this {\n this.instantiationMode = mode;\n return this;\n }\n\n setMultipleInstances(multipleInstances: boolean): this {\n this.multipleInstances = multipleInstances;\n return this;\n }\n\n setServiceProps(props: Dictionary): this {\n this.serviceProps = props;\n return this;\n }\n\n setInstanceCreatedCallback(callback: onInstanceCreatedCallback): this {\n this.onInstanceCreated = callback;\n return this;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Deferred } from '@firebase/util';\nimport { ComponentContainer } from './component_container';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport {\n InitializeOptions,\n InstantiationMode,\n Name,\n NameServiceMapping,\n OnInitCallBack\n} from './types';\nimport { Component } from './component';\n\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nexport class Provider {\n private component: Component | null = null;\n private readonly instances: Map = new Map();\n private readonly instancesDeferred: Map<\n string,\n Deferred\n > = new Map();\n private readonly instancesOptions: Map> =\n new Map();\n private onInitCallbacks: Map>> = new Map();\n\n constructor(\n private readonly name: T,\n private readonly container: ComponentContainer\n ) {}\n\n /**\n * @param identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n */\n get(identifier?: string): Promise {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n const deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n // initialize the service if it can be auto-initialized\n try {\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {\n // when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier)!.promise;\n }\n\n /**\n *\n * @param options.identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n * @param options.optional If optional is false or not provided, the method throws an error when\n * the service is not immediately available.\n * If optional is true, the method returns null if the service is not immediately available.\n */\n getImmediate(options: {\n identifier?: string;\n optional: true;\n }): NameServiceMapping[T] | null;\n getImmediate(options?: {\n identifier?: string;\n optional?: false;\n }): NameServiceMapping[T];\n getImmediate(options?: {\n identifier?: string;\n optional?: boolean;\n }): NameServiceMapping[T] | null {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n options?.identifier\n );\n const optional = options?.optional ?? false;\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(`Service ${this.name} is not available`);\n }\n }\n }\n\n getComponent(): Component | null {\n return this.component;\n }\n\n setComponent(component: Component): void {\n if (component.name !== this.name) {\n throw Error(\n `Mismatching Component ${component.name} for Provider ${this.name}.`\n );\n }\n\n if (this.component) {\n throw Error(`Component for ${this.name} has already been provided`);\n }\n\n this.component = component;\n\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n if (!this.shouldAutoInitialize()) {\n return;\n }\n\n // if the service is eager, initialize the default instance\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\n } catch (e) {\n // when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n })!;\n instanceDeferred.resolve(instance);\n } catch (e) {\n // when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n }\n\n clearInstance(identifier: string = DEFAULT_ENTRY_NAME): void {\n this.instancesDeferred.delete(identifier);\n this.instancesOptions.delete(identifier);\n this.instances.delete(identifier);\n }\n\n // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n async delete(): Promise {\n const services = Array.from(this.instances.values());\n\n await Promise.all([\n ...services\n .filter(service => 'INTERNAL' in service) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any).INTERNAL!.delete()),\n ...services\n .filter(service => '_delete' in service) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any)._delete())\n ]);\n }\n\n isComponentSet(): boolean {\n return this.component != null;\n }\n\n isInitialized(identifier: string = DEFAULT_ENTRY_NAME): boolean {\n return this.instances.has(identifier);\n }\n\n getOptions(identifier: string = DEFAULT_ENTRY_NAME): Record {\n return this.instancesOptions.get(identifier) || {};\n }\n\n initialize(opts: InitializeOptions = {}): NameServiceMapping[T] {\n const { options = {} } = opts;\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n opts.instanceIdentifier\n );\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(\n `${this.name}(${normalizedIdentifier}) has already been initialized`\n );\n }\n\n if (!this.isComponentSet()) {\n throw Error(`Component ${this.name} has not been registered yet`);\n }\n\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options\n })!;\n\n // resolve any pending promise waiting for the service instance\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedDeferredIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n\n return instance;\n }\n\n /**\n *\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n *\n * @param identifier An optional instance identifier\n * @returns a function to unregister the callback\n */\n onInit(callback: OnInitCallBack, identifier?: string): () => void {\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n const existingCallbacks =\n this.onInitCallbacks.get(normalizedIdentifier) ??\n new Set>();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n\n const existingInstance = this.instances.get(normalizedIdentifier);\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return () => {\n existingCallbacks.delete(callback);\n };\n }\n\n /**\n * Invoke onInit callbacks synchronously\n * @param instance the service instance`\n */\n private invokeOnInitCallbacks(\n instance: NameServiceMapping[T],\n identifier: string\n ): void {\n const callbacks = this.onInitCallbacks.get(identifier);\n if (!callbacks) {\n return;\n }\n for (const callback of callbacks) {\n try {\n callback(instance, identifier);\n } catch {\n // ignore errors in the onInit callback\n }\n }\n }\n\n private getOrInitializeService({\n instanceIdentifier,\n options = {}\n }: {\n instanceIdentifier: string;\n options?: Record;\n }): NameServiceMapping[T] | null {\n let instance = this.instances.get(instanceIdentifier);\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options\n });\n this.instances.set(instanceIdentifier, instance);\n this.instancesOptions.set(instanceIdentifier, options);\n\n /**\n * Invoke onInit listeners.\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\n * while onInit listeners are registered by consumers of the provider.\n */\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n\n /**\n * Order is important\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n * makes `isInitialized()` return true.\n */\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(\n this.container,\n instanceIdentifier,\n instance\n );\n } catch {\n // ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n }\n\n private normalizeInstanceIdentifier(\n identifier: string = DEFAULT_ENTRY_NAME\n ): string {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n }\n\n private shouldAutoInitialize(): boolean {\n return (\n !!this.component &&\n this.component.instantiationMode !== InstantiationMode.EXPLICIT\n );\n }\n}\n\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier: string): string | undefined {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component: Component): boolean {\n return component.instantiationMode === InstantiationMode.EAGER;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Provider } from './provider';\nimport { Component } from './component';\nimport { Name } from './types';\n\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nexport class ComponentContainer {\n private readonly providers = new Map>();\n\n constructor(private readonly name: string) {}\n\n /**\n *\n * @param component Component being added\n * @param overwrite When a component with the same name has already been registered,\n * if overwrite is true: overwrite the existing component with the new component and create a new\n * provider with the new component. It can be useful in tests where you want to use different mocks\n * for different tests.\n * if overwrite is false: throw an exception\n */\n addComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n throw new Error(\n `Component ${component.name} has already been registered with ${this.name}`\n );\n }\n\n provider.setComponent(component);\n }\n\n addOrOverwriteComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n }\n\n /**\n * getProvider provides a type safe interface where it can only be called with a field name\n * present in NameServiceMapping interface.\n *\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\n * themselves.\n */\n getProvider(name: T): Provider {\n if (this.providers.has(name)) {\n return this.providers.get(name) as unknown as Provider;\n }\n\n // create a Provider for a service that hasn't registered with Firebase\n const provider = new Provider(name, this);\n this.providers.set(name, provider as unknown as Provider);\n\n return provider as Provider;\n }\n\n getProviders(): Array> {\n return Array.from(this.providers.values());\n }\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ComponentContainer,\n ComponentType,\n Provider,\n Name\n} from '@firebase/component';\nimport { PlatformLoggerService, VersionService } from './types';\n\nexport class PlatformLoggerServiceImpl implements PlatformLoggerService {\n constructor(private readonly container: ComponentContainer) {}\n // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n getPlatformInfoString(): string {\n const providers = this.container.getProviders();\n // Loop through providers and get library/version pairs from any that are\n // version components.\n return providers\n .map(provider => {\n if (isVersionServiceProvider(provider)) {\n const service = provider.getImmediate() as VersionService;\n return `${service.library}/${service.version}`;\n } else {\n return null;\n }\n })\n .filter(logString => logString)\n .join(' ');\n }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider: Provider): boolean {\n const component = provider.getComponent();\n return component?.type === ComponentType.VERSION;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/app');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { name as appName } from '../package.json';\nimport { name as appCompatName } from '../../app-compat/package.json';\nimport { name as analyticsCompatName } from '../../../packages/analytics-compat/package.json';\nimport { name as analyticsName } from '../../../packages/analytics/package.json';\nimport { name as appCheckCompatName } from '../../../packages/app-check-compat/package.json';\nimport { name as appCheckName } from '../../../packages/app-check/package.json';\nimport { name as authName } from '../../../packages/auth/package.json';\nimport { name as authCompatName } from '../../../packages/auth-compat/package.json';\nimport { name as databaseName } from '../../../packages/database/package.json';\nimport { name as databaseCompatName } from '../../../packages/database-compat/package.json';\nimport { name as functionsName } from '../../../packages/functions/package.json';\nimport { name as functionsCompatName } from '../../../packages/functions-compat/package.json';\nimport { name as installationsName } from '../../../packages/installations/package.json';\nimport { name as installationsCompatName } from '../../../packages/installations-compat/package.json';\nimport { name as messagingName } from '../../../packages/messaging/package.json';\nimport { name as messagingCompatName } from '../../../packages/messaging-compat/package.json';\nimport { name as performanceName } from '../../../packages/performance/package.json';\nimport { name as performanceCompatName } from '../../../packages/performance-compat/package.json';\nimport { name as remoteConfigName } from '../../../packages/remote-config/package.json';\nimport { name as remoteConfigCompatName } from '../../../packages/remote-config-compat/package.json';\nimport { name as storageName } from '../../../packages/storage/package.json';\nimport { name as storageCompatName } from '../../../packages/storage-compat/package.json';\nimport { name as firestoreName } from '../../../packages/firestore/package.json';\nimport { name as firestoreCompatName } from '../../../packages/firestore-compat/package.json';\nimport { name as packageName } from '../../../packages/firebase/package.json';\n\n/**\n * The default app name\n *\n * @internal\n */\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\nexport const PLATFORM_LOG_STRING = {\n [appName]: 'fire-core',\n [appCompatName]: 'fire-core-compat',\n [analyticsName]: 'fire-analytics',\n [analyticsCompatName]: 'fire-analytics-compat',\n [appCheckName]: 'fire-app-check',\n [appCheckCompatName]: 'fire-app-check-compat',\n [authName]: 'fire-auth',\n [authCompatName]: 'fire-auth-compat',\n [databaseName]: 'fire-rtdb',\n [databaseCompatName]: 'fire-rtdb-compat',\n [functionsName]: 'fire-fn',\n [functionsCompatName]: 'fire-fn-compat',\n [installationsName]: 'fire-iid',\n [installationsCompatName]: 'fire-iid-compat',\n [messagingName]: 'fire-fcm',\n [messagingCompatName]: 'fire-fcm-compat',\n [performanceName]: 'fire-perf',\n [performanceCompatName]: 'fire-perf-compat',\n [remoteConfigName]: 'fire-rc',\n [remoteConfigCompatName]: 'fire-rc-compat',\n [storageName]: 'fire-gcs',\n [storageCompatName]: 'fire-gcs-compat',\n [firestoreName]: 'fire-fst',\n [firestoreCompatName]: 'fire-fst-compat',\n 'fire-js': 'fire-js', // Platform identifier for JS SDK.\n [packageName]: 'fire-js-all'\n} as const;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp } from './public-types';\nimport { Component, Provider, Name } from '@firebase/component';\nimport { logger } from './logger';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport { FirebaseAppImpl } from './firebaseApp';\n\n/**\n * @internal\n */\nexport const _apps = new Map();\n\n/**\n * Registered components.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const _components = new Map>();\n\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */\nexport function _addComponent(\n app: FirebaseApp,\n component: Component\n): void {\n try {\n (app as FirebaseAppImpl).container.addComponent(component);\n } catch (e) {\n logger.debug(\n `Component ${component.name} failed to register with FirebaseApp ${app.name}`,\n e\n );\n }\n}\n\n/**\n *\n * @internal\n */\nexport function _addOrOverwriteComponent(\n app: FirebaseApp,\n component: Component\n): void {\n (app as FirebaseAppImpl).container.addOrOverwriteComponent(component);\n}\n\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */\nexport function _registerComponent(\n component: Component\n): boolean {\n const componentName = component.name;\n if (_components.has(componentName)) {\n logger.debug(\n `There were multiple attempts to register component ${componentName}.`\n );\n\n return false;\n }\n\n _components.set(componentName, component);\n\n // add the component to existing app instances\n for (const app of _apps.values()) {\n _addComponent(app as FirebaseAppImpl, component);\n }\n\n return true;\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */\nexport function _getProvider(\n app: FirebaseApp,\n name: T\n): Provider {\n const heartbeatController = (app as FirebaseAppImpl).container\n .getProvider('heartbeat')\n .getImmediate({ optional: true });\n if (heartbeatController) {\n void heartbeatController.triggerHeartbeat();\n }\n return (app as FirebaseAppImpl).container.getProvider(name);\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */\nexport function _removeServiceInstance(\n app: FirebaseApp,\n name: T,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n): void {\n _getProvider(app, name).clearInstance(instanceIdentifier);\n}\n\n/**\n * Test only\n *\n * @internal\n */\nexport function _clearComponents(): void {\n _components.clear();\n}\n\n/**\n * Exported in order to be used in app-compat package\n */\nexport { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppError {\n NO_APP = 'no-app',\n BAD_APP_NAME = 'bad-app-name',\n DUPLICATE_APP = 'duplicate-app',\n APP_DELETED = 'app-deleted',\n INVALID_APP_ARGUMENT = 'invalid-app-argument',\n INVALID_LOG_ARGUMENT = 'invalid-log-argument',\n IDB_OPEN = 'idb-open',\n IDB_GET = 'idb-get',\n IDB_WRITE = 'idb-set',\n IDB_DELETE = 'idb-delete'\n}\n\nconst ERRORS: ErrorMap = {\n [AppError.NO_APP]:\n \"No Firebase App '{$appName}' has been created - \" +\n 'call Firebase App.initializeApp()',\n [AppError.BAD_APP_NAME]: \"Illegal App name: '{$appName}\",\n [AppError.DUPLICATE_APP]:\n \"Firebase App named '{$appName}' already exists with different options or config\",\n [AppError.APP_DELETED]: \"Firebase App named '{$appName}' already deleted\",\n [AppError.INVALID_APP_ARGUMENT]:\n 'firebase.{$appName}() takes either no argument or a ' +\n 'Firebase App instance.',\n [AppError.INVALID_LOG_ARGUMENT]:\n 'First argument to `onLog` must be null or a function.',\n [AppError.IDB_OPEN]:\n 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_GET]:\n 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_WRITE]:\n 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_DELETE]:\n 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.'\n};\n\ninterface ErrorParams {\n [AppError.NO_APP]: { appName: string };\n [AppError.BAD_APP_NAME]: { appName: string };\n [AppError.DUPLICATE_APP]: { appName: string };\n [AppError.APP_DELETED]: { appName: string };\n [AppError.INVALID_APP_ARGUMENT]: { appName: string };\n [AppError.IDB_OPEN]: { originalErrorMessage?: string };\n [AppError.IDB_GET]: { originalErrorMessage?: string };\n [AppError.IDB_WRITE]: { originalErrorMessage?: string };\n [AppError.IDB_DELETE]: { originalErrorMessage?: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'app',\n 'Firebase',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport {\n ComponentContainer,\n Component,\n ComponentType\n} from '@firebase/component';\nimport { ERROR_FACTORY, AppError } from './errors';\n\nexport class FirebaseAppImpl implements FirebaseApp {\n private readonly _options: FirebaseOptions;\n private readonly _name: string;\n /**\n * Original config values passed in as a constructor parameter.\n * It is only used to compare with another config object to support idempotent initializeApp().\n *\n * Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.\n */\n private readonly _config: Required;\n private _automaticDataCollectionEnabled: boolean;\n private _isDeleted = false;\n private readonly _container: ComponentContainer;\n\n constructor(\n options: FirebaseOptions,\n config: Required,\n container: ComponentContainer\n ) {\n this._options = { ...options };\n this._config = { ...config };\n this._name = config.name;\n this._automaticDataCollectionEnabled =\n config.automaticDataCollectionEnabled;\n this._container = container;\n this.container.addComponent(\n new Component('app', () => this, ComponentType.PUBLIC)\n );\n }\n\n get automaticDataCollectionEnabled(): boolean {\n this.checkDestroyed();\n return this._automaticDataCollectionEnabled;\n }\n\n set automaticDataCollectionEnabled(val: boolean) {\n this.checkDestroyed();\n this._automaticDataCollectionEnabled = val;\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): FirebaseOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get config(): Required {\n this.checkDestroyed();\n return this._config;\n }\n\n get container(): ComponentContainer {\n return this._container;\n }\n\n get isDeleted(): boolean {\n return this._isDeleted;\n }\n\n set isDeleted(val: boolean) {\n this._isDeleted = val;\n }\n\n /**\n * This function will throw an Error if the App has already been deleted -\n * use before performing API actions on the App.\n */\n private checkDestroyed(): void {\n if (this.isDeleted) {\n throw ERROR_FACTORY.create(AppError.APP_DELETED, { appName: this._name });\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport {\n ComponentContainer,\n Component,\n Name,\n ComponentType\n} from '@firebase/component';\nimport { version } from '../../firebase/package.json';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { _apps, _components, _registerComponent } from './internal';\nimport { logger } from './logger';\nimport {\n LogLevelString,\n setLogLevel as setLogLevelImpl,\n LogCallback,\n LogOptions,\n setUserLogHandler\n} from '@firebase/logger';\nimport { deepEqual } from '@firebase/util';\n\nexport { FirebaseError } from '@firebase/util';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const SDK_VERSION = version;\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseApp} instance.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize default app\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * });\n * ```\n *\n * @example\n * ```javascript\n *\n * // Initialize another app\n * const otherApp = initializeApp({\n * databaseURL: \"https://.firebaseio.com\",\n * storageBucket: \".appspot.com\"\n * }, \"otherApp\");\n * ```\n *\n * @param options - Options to configure the app's services.\n * @param name - Optional name of the app to initialize. If no name\n * is provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The initialized app.\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n name?: string\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @param options - Options to configure the app's services.\n * @param config - FirebaseApp Configuration\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n config?: FirebaseAppSettings\n): FirebaseApp;\nexport function initializeApp(\n options: FirebaseOptions,\n rawConfig = {}\n): FirebaseApp {\n if (typeof rawConfig !== 'object') {\n const name = rawConfig;\n rawConfig = { name };\n }\n\n const config: Required = {\n name: DEFAULT_ENTRY_NAME,\n automaticDataCollectionEnabled: false,\n ...rawConfig\n };\n const name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(AppError.BAD_APP_NAME, {\n appName: String(name)\n });\n }\n\n const existingApp = _apps.get(name) as FirebaseAppImpl;\n if (existingApp) {\n // return the existing app if options and config deep equal the ones in the existing app.\n if (\n deepEqual(options, existingApp.options) &&\n deepEqual(config, existingApp.config)\n ) {\n return existingApp;\n } else {\n throw ERROR_FACTORY.create(AppError.DUPLICATE_APP, { appName: name });\n }\n }\n\n const container = new ComponentContainer(name);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseAppImpl(options, config, container);\n\n _apps.set(name, newApp);\n\n return newApp;\n}\n\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n * provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n * If no app name is provided, the default app is returned.\n *\n * @public\n */\nexport function getApp(name: string = DEFAULT_ENTRY_NAME): FirebaseApp {\n const app = _apps.get(name);\n if (!app) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n\n return app;\n}\n\n/**\n * A (read-only) array of all initialized apps.\n * @public\n */\nexport function getApps(): FirebaseApp[] {\n return Array.from(_apps.values());\n}\n\n/**\n * Renders this app unusable and frees the resources of all associated\n * services.\n *\n * @example\n * ```javascript\n * deleteApp(app)\n * .then(function() {\n * console.log(\"App deleted successfully\");\n * })\n * .catch(function(error) {\n * console.log(\"Error deleting app:\", error);\n * });\n * ```\n *\n * @public\n */\nexport async function deleteApp(app: FirebaseApp): Promise {\n const name = app.name;\n if (_apps.has(name)) {\n _apps.delete(name);\n await Promise.all(\n (app as FirebaseAppImpl).container\n .getProviders()\n .map(provider => provider.delete())\n );\n (app as FirebaseAppImpl).isDeleted = true;\n }\n}\n\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */\nexport function registerVersion(\n libraryKeyOrName: string,\n version: string,\n variant?: string\n): void {\n // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n let library = PLATFORM_LOG_STRING[libraryKeyOrName] ?? libraryKeyOrName;\n if (variant) {\n library += `-${variant}`;\n }\n const libraryMismatch = library.match(/\\s|\\//);\n const versionMismatch = version.match(/\\s|\\//);\n if (libraryMismatch || versionMismatch) {\n const warning = [\n `Unable to register library \"${library}\" with version \"${version}\":`\n ];\n if (libraryMismatch) {\n warning.push(\n `library name \"${library}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n if (versionMismatch) {\n warning.push(\n `version name \"${version}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n logger.warn(warning.join(' '));\n return;\n }\n _registerComponent(\n new Component(\n `${library}-version` as Name,\n () => ({ library, version }),\n ComponentType.VERSION\n )\n );\n}\n\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */\nexport function onLog(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(AppError.INVALID_LOG_ARGUMENT);\n }\n setUserLogHandler(logCallback, options);\n}\n\n/**\n * Sets log level for all Firebase SDKs.\n *\n * All of the log types above the current log level are captured (i.e. if\n * you set the log level to `info`, errors are logged, but `debug` and\n * `verbose` logs are not).\n *\n * @public\n */\nexport function setLogLevel(logLevel: LogLevelString): void {\n setLogLevelImpl(logLevel);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { DBSchema, openDB, IDBPDatabase } from 'idb';\nimport { AppError, ERROR_FACTORY } from './errors';\nimport { FirebaseApp } from './public-types';\nimport { HeartbeatsInIndexedDB } from './types';\nimport { logger } from './logger';\n\nconst DB_NAME = 'firebase-heartbeat-database';\nconst DB_VERSION = 1;\nconst STORE_NAME = 'firebase-heartbeat-store';\n\ninterface AppDB extends DBSchema {\n 'firebase-heartbeat-store': {\n key: string;\n value: HeartbeatsInIndexedDB;\n };\n}\n\nlet dbPromise: Promise> | null = null;\nfunction getDbPromise(): Promise> {\n if (!dbPromise) {\n dbPromise = openDB(DB_NAME, DB_VERSION, {\n upgrade: (db, oldVersion) => {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (oldVersion) {\n case 0:\n db.createObjectStore(STORE_NAME);\n }\n }\n }).catch(e => {\n throw ERROR_FACTORY.create(AppError.IDB_OPEN, {\n originalErrorMessage: e.message\n });\n });\n }\n return dbPromise;\n}\n\nexport async function readHeartbeatsFromIndexedDB(\n app: FirebaseApp\n): Promise {\n try {\n const db = await getDbPromise();\n return db\n .transaction(STORE_NAME)\n .objectStore(STORE_NAME)\n .get(computeKey(app)) as Promise;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_GET, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nexport async function writeHeartbeatsToIndexedDB(\n app: FirebaseApp,\n heartbeatObject: HeartbeatsInIndexedDB\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME, 'readwrite');\n const objectStore = tx.objectStore(STORE_NAME);\n await objectStore.put(heartbeatObject, computeKey(app));\n return tx.done;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_WRITE, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nfunction computeKey(app: FirebaseApp): string {\n return `${app.name}!${app.options.appId}`;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentContainer } from '@firebase/component';\nimport {\n base64urlEncodeWithoutPadding,\n isIndexedDBAvailable,\n validateIndexedDBOpenable\n} from '@firebase/util';\nimport {\n readHeartbeatsFromIndexedDB,\n writeHeartbeatsToIndexedDB\n} from './indexeddb';\nimport { FirebaseApp } from './public-types';\nimport {\n HeartbeatsByUserAgent,\n HeartbeatService,\n HeartbeatsInIndexedDB,\n HeartbeatStorage,\n SingleDateHeartbeat\n} from './types';\n\nconst MAX_HEADER_BYTES = 1024;\n// 30 days\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\n\nexport class HeartbeatServiceImpl implements HeartbeatService {\n /**\n * The persistence layer for heartbeats\n * Leave public for easier testing.\n */\n _storage: HeartbeatStorageImpl;\n\n /**\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\n * the header string.\n * Stores one record per date. This will be consolidated into the standard\n * format of one record per user agent string before being sent as a header.\n * Populated from indexedDB when the controller is instantiated and should\n * be kept in sync with indexedDB.\n * Leave public for easier testing.\n */\n _heartbeatsCache: HeartbeatsInIndexedDB | null = null;\n\n /**\n * the initialization promise for populating heartbeatCache.\n * If getHeartbeatsHeader() is called before the promise resolves\n * (hearbeatsCache == null), it should wait for this promise\n * Leave public for easier testing.\n */\n _heartbeatsCachePromise: Promise;\n constructor(private readonly container: ComponentContainer) {\n const app = this.container.getProvider('app').getImmediate();\n this._storage = new HeartbeatStorageImpl(app);\n this._heartbeatsCachePromise = this._storage.read().then(result => {\n this._heartbeatsCache = result;\n return result;\n });\n }\n\n /**\n * Called to report a heartbeat. The function will generate\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\n * to IndexedDB.\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\n * already logged, subsequent calls to this function in the same day will be ignored.\n */\n async triggerHeartbeat(): Promise {\n const platformLogger = this.container\n .getProvider('platform-logger')\n .getImmediate();\n\n // This is the \"Firebase user agent\" string from the platform logger\n // service, not the browser user agent.\n const agent = platformLogger.getPlatformInfoString();\n const date = getUTCDateString();\n if (this._heartbeatsCache === null) {\n this._heartbeatsCache = await this._heartbeatsCachePromise;\n }\n // Do not store a heartbeat if one is already stored for this day\n // or if a header has already been sent today.\n if (\n this._heartbeatsCache.lastSentHeartbeatDate === date ||\n this._heartbeatsCache.heartbeats.some(\n singleDateHeartbeat => singleDateHeartbeat.date === date\n )\n ) {\n return;\n } else {\n // There is no entry for this date. Create one.\n this._heartbeatsCache.heartbeats.push({ date, agent });\n }\n // Remove entries older than 30 days.\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(\n singleDateHeartbeat => {\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\n const now = Date.now();\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\n }\n );\n return this._storage.overwrite(this._heartbeatsCache);\n }\n\n /**\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\n * It also clears all heartbeats from memory as well as in IndexedDB.\n *\n * NOTE: Consuming product SDKs should not send the header if this method\n * returns an empty string.\n */\n async getHeartbeatsHeader(): Promise {\n if (this._heartbeatsCache === null) {\n await this._heartbeatsCachePromise;\n }\n // If it's still null or the array is empty, there is no data to send.\n if (\n this._heartbeatsCache === null ||\n this._heartbeatsCache.heartbeats.length === 0\n ) {\n return '';\n }\n const date = getUTCDateString();\n // Extract as many heartbeats from the cache as will fit under the size limit.\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(\n this._heartbeatsCache.heartbeats\n );\n const headerString = base64urlEncodeWithoutPadding(\n JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })\n );\n // Store last sent date to prevent another being logged/sent for the same day.\n this._heartbeatsCache.lastSentHeartbeatDate = date;\n if (unsentEntries.length > 0) {\n // Store any unsent entries if they exist.\n this._heartbeatsCache.heartbeats = unsentEntries;\n // This seems more likely than emptying the array (below) to lead to some odd state\n // since the cache isn't empty and this will be called again on the next request,\n // and is probably safest if we await it.\n await this._storage.overwrite(this._heartbeatsCache);\n } else {\n this._heartbeatsCache.heartbeats = [];\n // Do not wait for this, to reduce latency.\n void this._storage.overwrite(this._heartbeatsCache);\n }\n return headerString;\n }\n}\n\nfunction getUTCDateString(): string {\n const today = new Date();\n // Returns date format 'YYYY-MM-DD'\n return today.toISOString().substring(0, 10);\n}\n\nexport function extractHeartbeatsForHeader(\n heartbeatsCache: SingleDateHeartbeat[],\n maxSize = MAX_HEADER_BYTES\n): {\n heartbeatsToSend: HeartbeatsByUserAgent[];\n unsentEntries: SingleDateHeartbeat[];\n} {\n // Heartbeats grouped by user agent in the standard format to be sent in\n // the header.\n const heartbeatsToSend: HeartbeatsByUserAgent[] = [];\n // Single date format heartbeats that are not sent.\n let unsentEntries = heartbeatsCache.slice();\n for (const singleDateHeartbeat of heartbeatsCache) {\n // Look for an existing entry with the same user agent.\n const heartbeatEntry = heartbeatsToSend.find(\n hb => hb.agent === singleDateHeartbeat.agent\n );\n if (!heartbeatEntry) {\n // If no entry for this user agent exists, create one.\n heartbeatsToSend.push({\n agent: singleDateHeartbeat.agent,\n dates: [singleDateHeartbeat.date]\n });\n if (countBytes(heartbeatsToSend) > maxSize) {\n // If the header would exceed max size, remove the added heartbeat\n // entry and stop adding to the header.\n heartbeatsToSend.pop();\n break;\n }\n } else {\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\n // If the header would exceed max size, remove the added date\n // and stop adding to the header.\n if (countBytes(heartbeatsToSend) > maxSize) {\n heartbeatEntry.dates.pop();\n break;\n }\n }\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\n // quota and the loop breaks early.)\n unsentEntries = unsentEntries.slice(1);\n }\n return {\n heartbeatsToSend,\n unsentEntries\n };\n}\n\nexport class HeartbeatStorageImpl implements HeartbeatStorage {\n private _canUseIndexedDBPromise: Promise;\n constructor(public app: FirebaseApp) {\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\n }\n async runIndexedDBEnvironmentCheck(): Promise {\n if (!isIndexedDBAvailable()) {\n return false;\n } else {\n return validateIndexedDBOpenable()\n .then(() => true)\n .catch(() => false);\n }\n }\n /**\n * Read all heartbeats.\n */\n async read(): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return { heartbeats: [] };\n } else {\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\n return idbHeartbeatObject || { heartbeats: [] };\n }\n }\n // overwrite the storage with the provided heartbeats\n async overwrite(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: heartbeatsObject.heartbeats\n });\n }\n }\n // add heartbeats\n async add(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: [\n ...existingHeartbeatsObject.heartbeats,\n ...heartbeatsObject.heartbeats\n ]\n });\n }\n }\n}\n\n/**\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\n * in a platform logging header JSON object, stringified, and converted\n * to base 64.\n */\nexport function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number {\n // base64 has a restricted set of characters, all of which should be 1 byte.\n return base64urlEncodeWithoutPadding(\n // heartbeatsCache wrapper properties\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })\n ).length;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, ComponentType } from '@firebase/component';\nimport { PlatformLoggerServiceImpl } from './platformLoggerService';\nimport { name, version } from '../package.json';\nimport { _registerComponent } from './internal';\nimport { registerVersion } from './api';\nimport { HeartbeatServiceImpl } from './heartbeatService';\n\nexport function registerCoreComponents(variant?: string): void {\n _registerComponent(\n new Component(\n 'platform-logger',\n container => new PlatformLoggerServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n _registerComponent(\n new Component(\n 'heartbeat',\n container => new HeartbeatServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n\n // Register `app` package.\n registerVersion(name, version, variant);\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n // Register platform SDK identifier (no version).\n registerVersion('fire-js', '');\n}\n","/**\n * Firebase App\n *\n * @remarks This package coordinates the communication between the different Firebase components\n * @packageDocumentation\n */\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerCoreComponents } from './registerCoreComponents';\n\nexport * from './api';\nexport * from './internal';\nexport * from './public-types';\n\nregisterCoreComponents('__RUNTIME_ENV__');\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorMap, User } from '../model/public_types';\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { AppName } from '../model/auth';\nimport { AuthCredential } from './credentials';\n\n/**\n * Enumeration of Firebase Auth error codes.\n *\n * @internal\n */\nexport const enum AuthErrorCode {\n ADMIN_ONLY_OPERATION = 'admin-restricted-operation',\n ARGUMENT_ERROR = 'argument-error',\n APP_NOT_AUTHORIZED = 'app-not-authorized',\n APP_NOT_INSTALLED = 'app-not-installed',\n CAPTCHA_CHECK_FAILED = 'captcha-check-failed',\n CODE_EXPIRED = 'code-expired',\n CORDOVA_NOT_READY = 'cordova-not-ready',\n CORS_UNSUPPORTED = 'cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE = 'credential-already-in-use',\n CREDENTIAL_MISMATCH = 'custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH = 'dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED = 'dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'email-change-needs-verification',\n EMAIL_EXISTS = 'email-already-in-use',\n EMULATOR_CONFIG_FAILED = 'emulator-config-failed',\n EXPIRED_OOB_CODE = 'expired-action-code',\n EXPIRED_POPUP_REQUEST = 'cancelled-popup-request',\n INTERNAL_ERROR = 'internal-error',\n INVALID_API_KEY = 'invalid-api-key',\n INVALID_APP_CREDENTIAL = 'invalid-app-credential',\n INVALID_APP_ID = 'invalid-app-id',\n INVALID_AUTH = 'invalid-user-token',\n INVALID_AUTH_EVENT = 'invalid-auth-event',\n INVALID_CERT_HASH = 'invalid-cert-hash',\n INVALID_CODE = 'invalid-verification-code',\n INVALID_CONTINUE_URI = 'invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION = 'invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN = 'invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN = 'invalid-dynamic-link-domain',\n INVALID_EMAIL = 'invalid-email',\n INVALID_EMULATOR_SCHEME = 'invalid-emulator-scheme',\n INVALID_IDP_RESPONSE = 'invalid-credential',\n INVALID_MESSAGE_PAYLOAD = 'invalid-message-payload',\n INVALID_MFA_SESSION = 'invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID = 'invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER = 'invalid-oauth-provider',\n INVALID_OOB_CODE = 'invalid-action-code',\n INVALID_ORIGIN = 'unauthorized-domain',\n INVALID_PASSWORD = 'wrong-password',\n INVALID_PERSISTENCE = 'invalid-persistence-type',\n INVALID_PHONE_NUMBER = 'invalid-phone-number',\n INVALID_PROVIDER_ID = 'invalid-provider-id',\n INVALID_RECIPIENT_EMAIL = 'invalid-recipient-email',\n INVALID_SENDER = 'invalid-sender',\n INVALID_SESSION_INFO = 'invalid-verification-id',\n INVALID_TENANT_ID = 'invalid-tenant-id',\n LOGIN_BLOCKED = 'login-blocked',\n MFA_INFO_NOT_FOUND = 'multi-factor-info-not-found',\n MFA_REQUIRED = 'multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME = 'missing-android-pkg-name',\n MISSING_APP_CREDENTIAL = 'missing-app-credential',\n MISSING_AUTH_DOMAIN = 'auth-domain-config-required',\n MISSING_CODE = 'missing-verification-code',\n MISSING_CONTINUE_URI = 'missing-continue-uri',\n MISSING_IFRAME_START = 'missing-iframe-start',\n MISSING_IOS_BUNDLE_ID = 'missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE = 'missing-or-invalid-nonce',\n MISSING_MFA_INFO = 'missing-multi-factor-info',\n MISSING_MFA_SESSION = 'missing-multi-factor-session',\n MISSING_PHONE_NUMBER = 'missing-phone-number',\n MISSING_SESSION_INFO = 'missing-verification-id',\n MODULE_DESTROYED = 'app-deleted',\n NEED_CONFIRMATION = 'account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED = 'network-request-failed',\n NULL_USER = 'null-user',\n NO_AUTH_EVENT = 'no-auth-event',\n NO_SUCH_PROVIDER = 'no-such-provider',\n OPERATION_NOT_ALLOWED = 'operation-not-allowed',\n OPERATION_NOT_SUPPORTED = 'operation-not-supported-in-this-environment',\n POPUP_BLOCKED = 'popup-blocked',\n POPUP_CLOSED_BY_USER = 'popup-closed-by-user',\n PROVIDER_ALREADY_LINKED = 'provider-already-linked',\n QUOTA_EXCEEDED = 'quota-exceeded',\n REDIRECT_CANCELLED_BY_USER = 'redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING = 'redirect-operation-pending',\n REJECTED_CREDENTIAL = 'rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED = 'second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH = 'tenant-id-mismatch',\n TIMEOUT = 'timeout',\n TOKEN_EXPIRED = 'user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'too-many-requests',\n UNAUTHORIZED_DOMAIN = 'unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR = 'unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE = 'unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION = 'unsupported-tenant-operation',\n UNVERIFIED_EMAIL = 'unverified-email',\n USER_CANCELLED = 'user-cancelled',\n USER_DELETED = 'user-not-found',\n USER_DISABLED = 'user-disabled',\n USER_MISMATCH = 'user-mismatch',\n USER_SIGNED_OUT = 'user-signed-out',\n WEAK_PASSWORD = 'weak-password',\n WEB_STORAGE_UNSUPPORTED = 'web-storage-unsupported',\n ALREADY_INITIALIZED = 'already-initialized'\n}\n\nfunction _debugErrorMap(): ErrorMap {\n return {\n [AuthErrorCode.ADMIN_ONLY_OPERATION]:\n 'This operation is restricted to administrators only.',\n [AuthErrorCode.ARGUMENT_ERROR]: '',\n [AuthErrorCode.APP_NOT_AUTHORIZED]:\n \"This app, identified by the domain where it's hosted, is not \" +\n 'authorized to use Firebase Authentication with the provided API key. ' +\n 'Review your key configuration in the Google API console.',\n [AuthErrorCode.APP_NOT_INSTALLED]:\n 'The requested mobile application corresponding to the identifier (' +\n 'Android package name or iOS bundle ID) provided is not installed on ' +\n 'this device.',\n [AuthErrorCode.CAPTCHA_CHECK_FAILED]:\n 'The reCAPTCHA response token provided is either invalid, expired, ' +\n 'already used or the domain associated with it does not match the list ' +\n 'of whitelisted domains.',\n [AuthErrorCode.CODE_EXPIRED]:\n 'The SMS code has expired. Please re-send the verification code to try ' +\n 'again.',\n [AuthErrorCode.CORDOVA_NOT_READY]: 'Cordova framework is not ready.',\n [AuthErrorCode.CORS_UNSUPPORTED]: 'This browser is not supported.',\n [AuthErrorCode.CREDENTIAL_ALREADY_IN_USE]:\n 'This credential is already associated with a different user account.',\n [AuthErrorCode.CREDENTIAL_MISMATCH]:\n 'The custom token corresponds to a different audience.',\n [AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n 'This operation is sensitive and requires recent authentication. Log in ' +\n 'again before retrying this request.',\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.',\n [AuthErrorCode.DYNAMIC_LINK_NOT_ACTIVATED]:\n 'Please activate Dynamic Links in the Firebase Console and agree to the terms and ' +\n 'conditions.',\n [AuthErrorCode.EMAIL_CHANGE_NEEDS_VERIFICATION]:\n 'Multi-factor users must always have a verified email.',\n [AuthErrorCode.EMAIL_EXISTS]:\n 'The email address is already in use by another account.',\n [AuthErrorCode.EMULATOR_CONFIG_FAILED]:\n 'Auth instance has already been used to make a network call. Auth can ' +\n 'no longer be configured to use the emulator. Try calling ' +\n '\"connectAuthEmulator()\" sooner.',\n [AuthErrorCode.EXPIRED_OOB_CODE]: 'The action code has expired.',\n [AuthErrorCode.EXPIRED_POPUP_REQUEST]:\n 'This operation has been cancelled due to another conflicting popup being opened.',\n [AuthErrorCode.INTERNAL_ERROR]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_APP_CREDENTIAL]:\n 'The phone verification request contains an invalid application verifier.' +\n ' The reCAPTCHA token response is either invalid or expired.',\n [AuthErrorCode.INVALID_APP_ID]:\n 'The mobile app identifier is not registed for the current project.',\n [AuthErrorCode.INVALID_AUTH]:\n \"This user's credential isn't valid for this project. This can happen \" +\n \"if the user's token has been tampered with, or if the user isn't for \" +\n 'the project associated with this API key.',\n [AuthErrorCode.INVALID_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_CODE]:\n 'The SMS verification code used to create the phone auth credential is ' +\n 'invalid. Please resend the verification code sms and be sure to use the ' +\n 'verification code provided by the user.',\n [AuthErrorCode.INVALID_CONTINUE_URI]:\n 'The continue URL provided in the request is invalid.',\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]:\n 'The following Cordova plugins must be installed to enable OAuth sign-in: ' +\n 'cordova-plugin-buildinfo, cordova-universal-links-plugin, ' +\n 'cordova-plugin-browsertab, cordova-plugin-inappbrowser and ' +\n 'cordova-plugin-customurlscheme.',\n [AuthErrorCode.INVALID_CUSTOM_TOKEN]:\n 'The custom token format is incorrect. Please check the documentation.',\n [AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN]:\n 'The provided dynamic link domain is not configured or authorized for the current project.',\n [AuthErrorCode.INVALID_EMAIL]: 'The email address is badly formatted.',\n [AuthErrorCode.INVALID_EMULATOR_SCHEME]:\n 'Emulator URL must start with a valid scheme (http:// or https://).',\n [AuthErrorCode.INVALID_API_KEY]:\n 'Your API key is invalid, please check you have copied it correctly.',\n [AuthErrorCode.INVALID_CERT_HASH]:\n 'The SHA-1 certificate hash provided is invalid.',\n [AuthErrorCode.INVALID_IDP_RESPONSE]:\n 'The supplied auth credential is malformed or has expired.',\n [AuthErrorCode.INVALID_MESSAGE_PAYLOAD]:\n 'The email template corresponding to this action contains invalid characters in its message. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_MFA_SESSION]:\n 'The request does not contain a valid proof of first factor successful sign-in.',\n [AuthErrorCode.INVALID_OAUTH_PROVIDER]:\n 'EmailAuthProvider is not supported for this operation. This operation ' +\n 'only supports OAuth providers.',\n [AuthErrorCode.INVALID_OAUTH_CLIENT_ID]:\n 'The OAuth client ID provided is either invalid or does not match the ' +\n 'specified API key.',\n [AuthErrorCode.INVALID_ORIGIN]:\n 'This domain is not authorized for OAuth operations for your Firebase ' +\n 'project. Edit the list of authorized domains from the Firebase console.',\n [AuthErrorCode.INVALID_OOB_CODE]:\n 'The action code is invalid. This can happen if the code is malformed, ' +\n 'expired, or has already been used.',\n [AuthErrorCode.INVALID_PASSWORD]:\n 'The password is invalid or the user does not have a password.',\n [AuthErrorCode.INVALID_PERSISTENCE]:\n 'The specified persistence type is invalid. It can only be local, session or none.',\n [AuthErrorCode.INVALID_PHONE_NUMBER]:\n 'The format of the phone number provided is incorrect. Please enter the ' +\n 'phone number in a format that can be parsed into E.164 format. E.164 ' +\n 'phone numbers are written in the format [+][country code][subscriber ' +\n 'number including area code].',\n [AuthErrorCode.INVALID_PROVIDER_ID]:\n 'The specified provider ID is invalid.',\n [AuthErrorCode.INVALID_RECIPIENT_EMAIL]:\n 'The email corresponding to this action failed to send as the provided ' +\n 'recipient email address is invalid.',\n [AuthErrorCode.INVALID_SENDER]:\n 'The email template corresponding to this action contains an invalid sender email or name. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_SESSION_INFO]:\n 'The verification ID used to create the phone auth credential is invalid.',\n [AuthErrorCode.INVALID_TENANT_ID]:\n \"The Auth instance's tenant ID is invalid.\",\n [AuthErrorCode.LOGIN_BLOCKED]:\n 'Login blocked by user-provided method: {$originalMessage}',\n [AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME]:\n 'An Android Package Name must be provided if the Android App is required to be installed.',\n [AuthErrorCode.MISSING_AUTH_DOMAIN]:\n 'Be sure to include authDomain when calling firebase.initializeApp(), ' +\n 'by following the instructions in the Firebase console.',\n [AuthErrorCode.MISSING_APP_CREDENTIAL]:\n 'The phone verification request is missing an application verifier ' +\n 'assertion. A reCAPTCHA response token needs to be provided.',\n [AuthErrorCode.MISSING_CODE]:\n 'The phone auth credential was created with an empty SMS verification code.',\n [AuthErrorCode.MISSING_CONTINUE_URI]:\n 'A continue URL must be provided in the request.',\n [AuthErrorCode.MISSING_IFRAME_START]: 'An internal AuthError has occurred.',\n [AuthErrorCode.MISSING_IOS_BUNDLE_ID]:\n 'An iOS Bundle ID must be provided if an App Store ID is provided.',\n [AuthErrorCode.MISSING_OR_INVALID_NONCE]:\n 'The request does not contain a valid nonce. This can occur if the ' +\n 'SHA-256 hash of the provided raw nonce does not match the hashed nonce ' +\n 'in the ID token payload.',\n [AuthErrorCode.MISSING_MFA_INFO]:\n 'No second factor identifier is provided.',\n [AuthErrorCode.MISSING_MFA_SESSION]:\n 'The request is missing proof of first factor successful sign-in.',\n [AuthErrorCode.MISSING_PHONE_NUMBER]:\n 'To send verification codes, provide a phone number for the recipient.',\n [AuthErrorCode.MISSING_SESSION_INFO]:\n 'The phone auth credential was created with an empty verification ID.',\n [AuthErrorCode.MODULE_DESTROYED]:\n 'This instance of FirebaseApp has been deleted.',\n [AuthErrorCode.MFA_INFO_NOT_FOUND]:\n 'The user does not have a second factor matching the identifier provided.',\n [AuthErrorCode.MFA_REQUIRED]:\n 'Proof of ownership of a second factor is required to complete sign-in.',\n [AuthErrorCode.NEED_CONFIRMATION]:\n 'An account already exists with the same email address but different ' +\n 'sign-in credentials. Sign in using a provider associated with this ' +\n 'email address.',\n [AuthErrorCode.NETWORK_REQUEST_FAILED]:\n 'A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.',\n [AuthErrorCode.NO_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.NO_SUCH_PROVIDER]:\n 'User was not linked to an account with the given provider.',\n [AuthErrorCode.NULL_USER]:\n 'A null user object was provided as the argument for an operation which ' +\n 'requires a non-null user object.',\n [AuthErrorCode.OPERATION_NOT_ALLOWED]:\n 'The given sign-in provider is disabled for this Firebase project. ' +\n 'Enable it in the Firebase console, under the sign-in method tab of the ' +\n 'Auth section.',\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]:\n 'This operation is not supported in the environment this application is ' +\n 'running on. \"location.protocol\" must be http, https or chrome-extension' +\n ' and web storage must be enabled.',\n [AuthErrorCode.POPUP_BLOCKED]:\n 'Unable to establish a connection with the popup. It may have been blocked by the browser.',\n [AuthErrorCode.POPUP_CLOSED_BY_USER]:\n 'The popup has been closed by the user before finalizing the operation.',\n [AuthErrorCode.PROVIDER_ALREADY_LINKED]:\n 'User can only be linked to one identity for the given provider.',\n [AuthErrorCode.QUOTA_EXCEEDED]:\n \"The project's quota for this operation has been exceeded.\",\n [AuthErrorCode.REDIRECT_CANCELLED_BY_USER]:\n 'The redirect operation has been cancelled by the user before finalizing.',\n [AuthErrorCode.REDIRECT_OPERATION_PENDING]:\n 'A redirect sign-in operation is already pending.',\n [AuthErrorCode.REJECTED_CREDENTIAL]:\n 'The request contains malformed or mismatching credentials.',\n [AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED]:\n 'The second factor is already enrolled on this account.',\n [AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED]:\n 'The maximum allowed number of second factors on a user has been exceeded.',\n [AuthErrorCode.TENANT_ID_MISMATCH]:\n \"The provided tenant ID does not match the Auth instance's tenant ID\",\n [AuthErrorCode.TIMEOUT]: 'The operation has timed out.',\n [AuthErrorCode.TOKEN_EXPIRED]:\n \"The user's credential is no longer valid. The user must sign in again.\",\n [AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER]:\n 'We have blocked all requests from this device due to unusual activity. ' +\n 'Try again later.',\n [AuthErrorCode.UNAUTHORIZED_DOMAIN]:\n 'The domain of the continue URL is not whitelisted. Please whitelist ' +\n 'the domain in the Firebase console.',\n [AuthErrorCode.UNSUPPORTED_FIRST_FACTOR]:\n 'Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.',\n [AuthErrorCode.UNSUPPORTED_PERSISTENCE]:\n 'The current environment does not support the specified persistence type.',\n [AuthErrorCode.UNSUPPORTED_TENANT_OPERATION]:\n 'This operation is not supported in a multi-tenant context.',\n [AuthErrorCode.UNVERIFIED_EMAIL]:\n 'The operation requires a verified email.',\n [AuthErrorCode.USER_CANCELLED]:\n 'The user did not grant your application the permissions it requested.',\n [AuthErrorCode.USER_DELETED]:\n 'There is no user record corresponding to this identifier. The user may ' +\n 'have been deleted.',\n [AuthErrorCode.USER_DISABLED]:\n 'The user account has been disabled by an administrator.',\n [AuthErrorCode.USER_MISMATCH]:\n 'The supplied credentials do not correspond to the previously signed in user.',\n [AuthErrorCode.USER_SIGNED_OUT]: '',\n [AuthErrorCode.WEAK_PASSWORD]:\n 'The password must be 6 characters long or more.',\n [AuthErrorCode.WEB_STORAGE_UNSUPPORTED]:\n 'This browser is not supported or 3rd party cookies and data may be disabled.',\n [AuthErrorCode.ALREADY_INITIALIZED]:\n 'initializeAuth() has already been called with ' +\n 'different options. To avoid this error, call initializeAuth() with the ' +\n 'same options as when it was originally called, or call getAuth() to return the' +\n ' already initialized instance.'\n };\n}\n\nexport interface ErrorMapRetriever extends AuthErrorMap {\n (): ErrorMap;\n}\n\nfunction _prodErrorMap(): ErrorMap {\n // We will include this one message in the prod error map since by the very\n // nature of this error, developers will never be able to see the message\n // using the debugErrorMap (which is installed during auth initialization).\n return {\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.'\n } as ErrorMap;\n}\n\n/**\n * A verbose error map with detailed descriptions for most error codes.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const debugErrorMap: AuthErrorMap = _debugErrorMap;\n\n/**\n * A minimal error map with all verbose error messages stripped.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const prodErrorMap: AuthErrorMap = _prodErrorMap;\n\nexport interface NamedErrorParams {\n appName: AppName;\n credential?: AuthCredential;\n email?: string;\n phoneNumber?: string;\n tenantId?: string;\n user?: User;\n _serverResponse?: object;\n}\n\n/**\n * @internal\n */\ntype GenericAuthErrorParams = {\n [key in Exclude<\n AuthErrorCode,\n | AuthErrorCode.ARGUMENT_ERROR\n | AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n | AuthErrorCode.INTERNAL_ERROR\n | AuthErrorCode.MFA_REQUIRED\n | AuthErrorCode.NO_AUTH_EVENT\n | AuthErrorCode.OPERATION_NOT_SUPPORTED\n >]: {\n appName?: AppName;\n email?: string;\n phoneNumber?: string;\n message?: string;\n };\n};\n\n/**\n * @internal\n */\nexport interface AuthErrorParams extends GenericAuthErrorParams {\n [AuthErrorCode.ARGUMENT_ERROR]: { appName?: AppName };\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]: { appName?: AppName };\n [AuthErrorCode.INTERNAL_ERROR]: { appName?: AppName };\n [AuthErrorCode.LOGIN_BLOCKED]: {\n appName?: AppName;\n originalMessage?: string;\n };\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]: { appName?: AppName };\n [AuthErrorCode.NO_AUTH_EVENT]: { appName?: AppName };\n [AuthErrorCode.MFA_REQUIRED]: {\n appName: AppName;\n _serverResponse: IdTokenMfaResponse;\n };\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]: {\n appName: AppName;\n missingPlugin?: string;\n };\n}\n\nexport const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory<\n AuthErrorCode,\n AuthErrorParams\n>('auth', 'Firebase', _prodErrorMap());\n\n/**\n * A map of potential `Auth` error codes, for easier comparison with errors\n * thrown by the SDK.\n *\n * @remarks\n * Note that you can't tree-shake individual keys\n * in the map, so by using the map you might substantially increase your\n * bundle size.\n *\n * @public\n */\nexport const AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY = {\n ADMIN_ONLY_OPERATION: 'auth/admin-restricted-operation',\n ARGUMENT_ERROR: 'auth/argument-error',\n APP_NOT_AUTHORIZED: 'auth/app-not-authorized',\n APP_NOT_INSTALLED: 'auth/app-not-installed',\n CAPTCHA_CHECK_FAILED: 'auth/captcha-check-failed',\n CODE_EXPIRED: 'auth/code-expired',\n CORDOVA_NOT_READY: 'auth/cordova-not-ready',\n CORS_UNSUPPORTED: 'auth/cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE: 'auth/credential-already-in-use',\n CREDENTIAL_MISMATCH: 'auth/custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 'auth/requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH: 'auth/dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED: 'auth/dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION: 'auth/email-change-needs-verification',\n EMAIL_EXISTS: 'auth/email-already-in-use',\n EMULATOR_CONFIG_FAILED: 'auth/emulator-config-failed',\n EXPIRED_OOB_CODE: 'auth/expired-action-code',\n EXPIRED_POPUP_REQUEST: 'auth/cancelled-popup-request',\n INTERNAL_ERROR: 'auth/internal-error',\n INVALID_API_KEY: 'auth/invalid-api-key',\n INVALID_APP_CREDENTIAL: 'auth/invalid-app-credential',\n INVALID_APP_ID: 'auth/invalid-app-id',\n INVALID_AUTH: 'auth/invalid-user-token',\n INVALID_AUTH_EVENT: 'auth/invalid-auth-event',\n INVALID_CERT_HASH: 'auth/invalid-cert-hash',\n INVALID_CODE: 'auth/invalid-verification-code',\n INVALID_CONTINUE_URI: 'auth/invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION: 'auth/invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN: 'auth/invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN: 'auth/invalid-dynamic-link-domain',\n INVALID_EMAIL: 'auth/invalid-email',\n INVALID_EMULATOR_SCHEME: 'auth/invalid-emulator-scheme',\n INVALID_IDP_RESPONSE: 'auth/invalid-credential',\n INVALID_MESSAGE_PAYLOAD: 'auth/invalid-message-payload',\n INVALID_MFA_SESSION: 'auth/invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID: 'auth/invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER: 'auth/invalid-oauth-provider',\n INVALID_OOB_CODE: 'auth/invalid-action-code',\n INVALID_ORIGIN: 'auth/unauthorized-domain',\n INVALID_PASSWORD: 'auth/wrong-password',\n INVALID_PERSISTENCE: 'auth/invalid-persistence-type',\n INVALID_PHONE_NUMBER: 'auth/invalid-phone-number',\n INVALID_PROVIDER_ID: 'auth/invalid-provider-id',\n INVALID_RECIPIENT_EMAIL: 'auth/invalid-recipient-email',\n INVALID_SENDER: 'auth/invalid-sender',\n INVALID_SESSION_INFO: 'auth/invalid-verification-id',\n INVALID_TENANT_ID: 'auth/invalid-tenant-id',\n MFA_INFO_NOT_FOUND: 'auth/multi-factor-info-not-found',\n MFA_REQUIRED: 'auth/multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME: 'auth/missing-android-pkg-name',\n MISSING_APP_CREDENTIAL: 'auth/missing-app-credential',\n MISSING_AUTH_DOMAIN: 'auth/auth-domain-config-required',\n MISSING_CODE: 'auth/missing-verification-code',\n MISSING_CONTINUE_URI: 'auth/missing-continue-uri',\n MISSING_IFRAME_START: 'auth/missing-iframe-start',\n MISSING_IOS_BUNDLE_ID: 'auth/missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE: 'auth/missing-or-invalid-nonce',\n MISSING_MFA_INFO: 'auth/missing-multi-factor-info',\n MISSING_MFA_SESSION: 'auth/missing-multi-factor-session',\n MISSING_PHONE_NUMBER: 'auth/missing-phone-number',\n MISSING_SESSION_INFO: 'auth/missing-verification-id',\n MODULE_DESTROYED: 'auth/app-deleted',\n NEED_CONFIRMATION: 'auth/account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED: 'auth/network-request-failed',\n NULL_USER: 'auth/null-user',\n NO_AUTH_EVENT: 'auth/no-auth-event',\n NO_SUCH_PROVIDER: 'auth/no-such-provider',\n OPERATION_NOT_ALLOWED: 'auth/operation-not-allowed',\n OPERATION_NOT_SUPPORTED: 'auth/operation-not-supported-in-this-environment',\n POPUP_BLOCKED: 'auth/popup-blocked',\n POPUP_CLOSED_BY_USER: 'auth/popup-closed-by-user',\n PROVIDER_ALREADY_LINKED: 'auth/provider-already-linked',\n QUOTA_EXCEEDED: 'auth/quota-exceeded',\n REDIRECT_CANCELLED_BY_USER: 'auth/redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING: 'auth/redirect-operation-pending',\n REJECTED_CREDENTIAL: 'auth/rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED: 'auth/second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED: 'auth/maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH: 'auth/tenant-id-mismatch',\n TIMEOUT: 'auth/timeout',\n TOKEN_EXPIRED: 'auth/user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER: 'auth/too-many-requests',\n UNAUTHORIZED_DOMAIN: 'auth/unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR: 'auth/unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE: 'auth/unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION: 'auth/unsupported-tenant-operation',\n UNVERIFIED_EMAIL: 'auth/unverified-email',\n USER_CANCELLED: 'auth/user-cancelled',\n USER_DELETED: 'auth/user-not-found',\n USER_DISABLED: 'auth/user-disabled',\n USER_MISMATCH: 'auth/user-mismatch',\n USER_SIGNED_OUT: 'auth/user-signed-out',\n WEAK_PASSWORD: 'auth/weak-password',\n WEB_STORAGE_UNSUPPORTED: 'auth/web-storage-unsupported',\n ALREADY_INITIALIZED: 'auth/already-initialized'\n} as const;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger, LogLevel } from '@firebase/logger';\nimport { SDK_VERSION } from '@firebase/app';\n\nexport { LogLevel };\n\nconst logClient = new Logger('@firebase/auth');\n\n// Helper methods are needed because variables can't be exported as read/write\nexport function _getLogLevel(): LogLevel {\n return logClient.logLevel;\n}\n\nexport function _setLogLevel(newLevel: LogLevel): void {\n logClient.logLevel = newLevel;\n}\n\nexport function _logDebug(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.DEBUG) {\n logClient.debug(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logError(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.ERROR) {\n logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth } from '../../model/public_types';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../../model/auth';\nimport {\n _DEFAULT_AUTH_ERROR_FACTORY,\n AuthErrorCode,\n AuthErrorParams,\n prodErrorMap,\n ErrorMapRetriever\n} from '../errors';\nimport { _logError } from './log';\n\ntype AuthErrorListParams = K extends keyof AuthErrorParams\n ? [AuthErrorParams[K]]\n : [];\ntype LessAppName = Omit;\n\n/**\n * Unconditionally fails, throwing a developer facing INTERNAL_ERROR\n *\n * @example\n * ```javascript\n * fail(auth, AuthErrorCode.MFA_REQUIRED); // Error: the MFA_REQUIRED error needs more params than appName\n * fail(auth, AuthErrorCode.MFA_REQUIRED, {serverResponse}); // Compiles\n * fail(AuthErrorCode.INTERNAL_ERROR); // Compiles; internal error does not need appName\n * fail(AuthErrorCode.USER_DELETED); // Error: USER_DELETED requires app name\n * fail(auth, AuthErrorCode.USER_DELETED); // Compiles; USER_DELETED _only_ needs app name\n * ```\n *\n * @param appName App name for tagging the error\n * @throws FirebaseError\n */\nexport function _fail(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): never;\nexport function _fail(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): never;\nexport function _fail(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): never {\n throw createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _createError(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): FirebaseError;\nexport function _createError(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): FirebaseError;\nexport function _createError(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n return createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _errorWithCustomMessage(\n auth: Auth,\n code: AuthErrorCode,\n message: string\n): FirebaseError {\n const errorMap = {\n ...(prodErrorMap as ErrorMapRetriever)(),\n [code]: message\n };\n const factory = new ErrorFactory(\n 'auth',\n 'Firebase',\n errorMap\n );\n return factory.create(code, {\n appName: auth.name\n });\n}\n\nexport function _assertInstanceOf(\n auth: Auth,\n object: object,\n instance: unknown\n): void {\n const constructorInstance = instance as { new (...args: unknown[]): unknown };\n if (!(object instanceof constructorInstance)) {\n if (constructorInstance.name !== object.constructor.name) {\n _fail(auth, AuthErrorCode.ARGUMENT_ERROR);\n }\n\n throw _errorWithCustomMessage(\n auth,\n AuthErrorCode.ARGUMENT_ERROR,\n `Type of ${object.constructor.name} does not match expected instance.` +\n `Did you pass a reference from a different Auth SDK?`\n );\n }\n}\n\nfunction createErrorInternal(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n if (typeof authOrCode !== 'string') {\n const code = rest[0] as K;\n const fullParams = [...rest.slice(1)] as AuthErrorListParams;\n if (fullParams[0]) {\n fullParams[0].appName = authOrCode.name;\n }\n\n return (authOrCode as AuthInternal)._errorFactory.create(\n code,\n ...fullParams\n );\n }\n\n return _DEFAULT_AUTH_ERROR_FACTORY.create(\n authOrCode,\n ...(rest as AuthErrorListParams)\n );\n}\n\nexport function _assert(\n assertion: unknown,\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n authOrCode: Auth | K,\n ...rest: unknown[]\n): asserts assertion {\n if (!assertion) {\n throw createErrorInternal(authOrCode, ...rest);\n }\n}\n\n// We really do want to accept literally any function type here\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype TypeExpectation = Function | string | MapType;\n\ninterface MapType extends Record {}\n\nclass Optional {\n constructor(readonly type: TypeExpectation) {}\n}\n\nexport function opt(type: TypeExpectation): Optional {\n return new Optional(type);\n}\n\n/**\n * Asserts the runtime types of arguments. The 'expected' field can be one of\n * a class, a string (representing a \"typeof\" call), or a record map of name\n * to type. Furthermore, the opt() function can be used to mark a field as\n * optional. For example:\n *\n * function foo(auth: Auth, profile: {displayName?: string}, update = false) {\n * assertTypes(arguments, [AuthImpl, {displayName: opt('string')}, opt('boolean')]);\n * }\n *\n * opt() can be used for any type:\n * function foo(auth?: Auth) {\n * assertTypes(arguments, [opt(AuthImpl)]);\n * }\n *\n * The string types can be or'd together, and you can use \"null\" as well (note\n * that typeof null === 'object'; this is an edge case). For example:\n *\n * function foo(profile: {displayName?: string | null}) {\n * assertTypes(arguments, [{displayName: opt('string|null')}]);\n * }\n *\n * @param args\n * @param expected\n */\nexport function assertTypes(\n args: Omit,\n ...expected: Array\n): void {\n if (args.length > expected.length) {\n _fail(AuthErrorCode.ARGUMENT_ERROR, {});\n }\n\n for (let i = 0; i < expected.length; i++) {\n let expect = expected[i];\n const arg = args[i];\n\n if (expect instanceof Optional) {\n // If the arg is undefined, then it matches \"optional\" and we can move to\n // the next arg\n if (typeof arg === 'undefined') {\n continue;\n }\n expect = expect.type;\n }\n\n if (typeof expect === 'string') {\n // Handle the edge case for null because typeof null === 'object'\n if (expect.includes('null') && arg === null) {\n continue;\n }\n\n const required = expect.split('|');\n _assert(required.includes(typeof arg), AuthErrorCode.ARGUMENT_ERROR, {});\n } else if (typeof expect === 'object') {\n // Recursively check record arguments\n const record = arg as Record;\n const map = expect as MapType;\n const keys = Object.keys(expect);\n\n assertTypes(\n keys.map(k => record[k]),\n ...keys.map(k => map[k])\n );\n } else {\n _assert(arg instanceof expect, AuthErrorCode.ARGUMENT_ERROR, {});\n }\n }\n}\n\n/**\n * Unconditionally fails, throwing an internal error with the given message.\n *\n * @param failure type of failure encountered\n * @throws Error\n */\nexport function debugFail(failure: string): never {\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n const message = `INTERNAL ASSERTION FAILED: ` + failure;\n _logError(message);\n\n // NOTE: We don't use FirebaseError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw new Error(message);\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * @param assertion\n * @param message\n */\nexport function debugAssert(\n assertion: unknown,\n message: string\n): asserts assertion {\n if (!assertion) {\n debugFail(message);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugAssert } from './assert';\n\n/**\n * Our API has a lot of one-off constants that are used to do things.\n * Unfortunately we can't export these as classes instantiated directly since\n * the constructor may side effect and therefore can't be proven to be safely\n * culled. Instead, we export these classes themselves as a lowerCamelCase\n * constant, and instantiate them under the hood.\n */\nexport interface SingletonInstantiator {\n new (): T;\n}\n\nconst instanceCache: Map = new Map();\n\nexport function _getInstance(cls: unknown): T {\n debugAssert(cls instanceof Function, 'Expected a class definition');\n let instance = instanceCache.get(cls) as T | undefined;\n\n if (instance) {\n debugAssert(\n instance instanceof cls,\n 'Instance stored in cache mismatched with class'\n );\n return instance;\n }\n\n instance = new (cls as SingletonInstantiator)();\n instanceCache.set(cls, instance);\n return instance;\n}\n\nexport function _clearInstanceMap(): void {\n instanceCache.clear();\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProvider, FirebaseApp } from '@firebase/app';\nimport { deepEqual } from '@firebase/util';\nimport { Auth, Dependencies } from '../../model/public_types';\n\nimport { AuthErrorCode } from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport { _fail } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { AuthImpl } from './auth_impl';\n\n/**\n * Initializes an {@link Auth} instance with fine-grained control over\n * {@link Dependencies}.\n *\n * @remarks\n *\n * This function allows more control over the {@link Auth} instance than\n * {@link getAuth}. `getAuth` uses platform-specific defaults to supply\n * the {@link Dependencies}. In general, `getAuth` is the easiest way to\n * initialize Auth and works for most use cases. Use `initializeAuth` if you\n * need control over which persistence layer is used, or to minimize bundle\n * size if you're not using either `signInWithPopup` or `signInWithRedirect`.\n *\n * For example, if your app only uses anonymous accounts and you only want\n * accounts saved for the current session, initialize `Auth` with:\n *\n * ```js\n * const auth = initializeAuth(app, {\n * persistence: browserSessionPersistence,\n * popupRedirectResolver: undefined,\n * });\n * ```\n *\n * @public\n */\nexport function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n const auth = provider.getImmediate() as AuthImpl;\n const initialOptions = provider.getOptions() as Dependencies;\n if (deepEqual(initialOptions, deps ?? {})) {\n return auth;\n } else {\n _fail(auth, AuthErrorCode.ALREADY_INITIALIZED);\n }\n }\n\n const auth = provider.initialize({ options: deps }) as AuthImpl;\n\n return auth;\n}\n\nexport function _initializeAuthInstance(\n auth: AuthImpl,\n deps?: Dependencies\n): void {\n const persistence = deps?.persistence || [];\n const hierarchy = (\n Array.isArray(persistence) ? persistence : [persistence]\n ).map(_getInstance);\n if (deps?.errorMap) {\n auth._updateErrorMap(deps.errorMap);\n }\n\n // This promise is intended to float; auth initialization happens in the\n // background, meanwhile the auth object may be used by the app.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _getCurrentUrl(): string {\n return (typeof self !== 'undefined' && self.location?.href) || '';\n}\n\nexport function _isHttpOrHttps(): boolean {\n return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';\n}\n\nexport function _getCurrentScheme(): string | null {\n return (typeof self !== 'undefined' && self.location?.protocol) || null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isBrowserExtension } from '@firebase/util';\nimport { _isHttpOrHttps } from './location';\n\n/**\n * Determine whether the browser is working online\n */\nexport function _isOnline(): boolean {\n if (\n typeof navigator !== 'undefined' &&\n navigator &&\n 'onLine' in navigator &&\n typeof navigator.onLine === 'boolean' &&\n // Apply only for traditional web apps and Chrome extensions.\n // This is especially true for Cordova apps which have unreliable\n // navigator.onLine behavior unless cordova-plugin-network-information is\n // installed which overwrites the native navigator.onLine value and\n // defines navigator.connection.\n (_isHttpOrHttps() || isBrowserExtension() || 'connection' in navigator)\n ) {\n return navigator.onLine;\n }\n // If we can't determine the state, assume it is online.\n return true;\n}\n\nexport function _getUserLanguage(): string | null {\n if (typeof navigator === 'undefined') {\n return null;\n }\n const navigatorLanguage: NavigatorLanguage = navigator;\n return (\n // Most reliable, but only supported in Chrome/Firefox.\n (navigatorLanguage.languages && navigatorLanguage.languages[0]) ||\n // Supported in most browsers, but returns the language of the browser\n // UI, not the language set in browser settings.\n navigatorLanguage.language ||\n // Couldn't determine language.\n null\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isMobileCordova, isReactNative } from '@firebase/util';\nimport { _isOnline } from './navigator';\nimport { debugAssert } from './assert';\n\nexport const enum DelayMin {\n OFFLINE = 5000\n}\n\n/**\n * A structure to help pick between a range of long and short delay durations\n * depending on the current environment. In general, the long delay is used for\n * mobile environments whereas short delays are used for desktop environments.\n */\nexport class Delay {\n // The default value for the offline delay timeout in ms.\n\n private readonly isMobile: boolean;\n constructor(\n private readonly shortDelay: number,\n private readonly longDelay: number\n ) {\n // Internal error when improperly initialized.\n debugAssert(\n longDelay > shortDelay,\n 'Short delay should be less than long delay!'\n );\n this.isMobile = isMobileCordova() || isReactNative();\n }\n\n get(): number {\n if (!_isOnline()) {\n // Pick the shorter timeout.\n return Math.min(DelayMin.OFFLINE, this.shortDelay);\n }\n // If running in a mobile environment, return the long delay, otherwise\n // return the short delay.\n // This could be improved in the future to dynamically change based on other\n // variables instead of just reading the current environment.\n return this.isMobile ? this.longDelay : this.shortDelay;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigInternal } from '../../model/auth';\nimport { debugAssert } from './assert';\n\nexport function _emulatorUrl(config: ConfigInternal, path?: string): string {\n debugAssert(config.emulator, 'Emulator should always be set here');\n const { url } = config.emulator;\n\n if (!path) {\n return url;\n }\n\n return `${url}${path.startsWith('/') ? path.slice(1) : path}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugFail } from './assert';\n\nexport class FetchProvider {\n private static fetchImpl: typeof fetch | null;\n private static headersImpl: typeof Headers | null;\n private static responseImpl: typeof Response | null;\n\n static initialize(\n fetchImpl: typeof fetch,\n headersImpl?: typeof Headers,\n responseImpl?: typeof Response\n ): void {\n this.fetchImpl = fetchImpl;\n if (headersImpl) {\n this.headersImpl = headersImpl;\n }\n if (responseImpl) {\n this.responseImpl = responseImpl;\n }\n }\n\n static fetch(): typeof fetch {\n if (this.fetchImpl) {\n return this.fetchImpl;\n }\n if (typeof self !== 'undefined' && 'fetch' in self) {\n return self.fetch;\n }\n debugFail(\n 'Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static headers(): typeof Headers {\n if (this.headersImpl) {\n return this.headersImpl;\n }\n if (typeof self !== 'undefined' && 'Headers' in self) {\n return self.Headers;\n }\n debugFail(\n 'Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static response(): typeof Response {\n if (this.responseImpl) {\n return this.responseImpl;\n }\n if (typeof self !== 'undefined' && 'Response' in self) {\n return self.Response;\n }\n debugFail(\n 'Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\n\n/**\n * Errors that can be returned by the backend\n */\nexport const enum ServerError {\n ADMIN_ONLY_OPERATION = 'ADMIN_ONLY_OPERATION',\n BLOCKING_FUNCTION_ERROR_RESPONSE = 'BLOCKING_FUNCTION_ERROR_RESPONSE',\n CAPTCHA_CHECK_FAILED = 'CAPTCHA_CHECK_FAILED',\n CORS_UNSUPPORTED = 'CORS_UNSUPPORTED',\n CREDENTIAL_MISMATCH = 'CREDENTIAL_MISMATCH',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'CREDENTIAL_TOO_OLD_LOGIN_AGAIN',\n DYNAMIC_LINK_NOT_ACTIVATED = 'DYNAMIC_LINK_NOT_ACTIVATED',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'EMAIL_CHANGE_NEEDS_VERIFICATION',\n EMAIL_EXISTS = 'EMAIL_EXISTS',\n EMAIL_NOT_FOUND = 'EMAIL_NOT_FOUND',\n EXPIRED_OOB_CODE = 'EXPIRED_OOB_CODE',\n FEDERATED_USER_ID_ALREADY_LINKED = 'FEDERATED_USER_ID_ALREADY_LINKED',\n INVALID_APP_CREDENTIAL = 'INVALID_APP_CREDENTIAL',\n INVALID_APP_ID = 'INVALID_APP_ID',\n INVALID_CERT_HASH = 'INVALID_CERT_HASH',\n INVALID_CODE = 'INVALID_CODE',\n INVALID_CONTINUE_URI = 'INVALID_CONTINUE_URI',\n INVALID_CUSTOM_TOKEN = 'INVALID_CUSTOM_TOKEN',\n INVALID_DYNAMIC_LINK_DOMAIN = 'INVALID_DYNAMIC_LINK_DOMAIN',\n INVALID_EMAIL = 'INVALID_EMAIL',\n INVALID_ID_TOKEN = 'INVALID_ID_TOKEN',\n INVALID_IDP_RESPONSE = 'INVALID_IDP_RESPONSE',\n INVALID_IDENTIFIER = 'INVALID_IDENTIFIER',\n INVALID_MESSAGE_PAYLOAD = 'INVALID_MESSAGE_PAYLOAD',\n INVALID_MFA_PENDING_CREDENTIAL = 'INVALID_MFA_PENDING_CREDENTIAL',\n INVALID_OAUTH_CLIENT_ID = 'INVALID_OAUTH_CLIENT_ID',\n INVALID_OOB_CODE = 'INVALID_OOB_CODE',\n INVALID_PASSWORD = 'INVALID_PASSWORD',\n INVALID_PENDING_TOKEN = 'INVALID_PENDING_TOKEN',\n INVALID_PHONE_NUMBER = 'INVALID_PHONE_NUMBER',\n INVALID_PROVIDER_ID = 'INVALID_PROVIDER_ID',\n INVALID_RECIPIENT_EMAIL = 'INVALID_RECIPIENT_EMAIL',\n INVALID_SENDER = 'INVALID_SENDER',\n INVALID_SESSION_INFO = 'INVALID_SESSION_INFO',\n INVALID_TEMPORARY_PROOF = 'INVALID_TEMPORARY_PROOF',\n INVALID_TENANT_ID = 'INVALID_TENANT_ID',\n MFA_ENROLLMENT_NOT_FOUND = 'MFA_ENROLLMENT_NOT_FOUND',\n MISSING_ANDROID_PACKAGE_NAME = 'MISSING_ANDROID_PACKAGE_NAME',\n MISSING_APP_CREDENTIAL = 'MISSING_APP_CREDENTIAL',\n MISSING_CODE = 'MISSING_CODE',\n MISSING_CONTINUE_URI = 'MISSING_CONTINUE_URI',\n MISSING_CUSTOM_TOKEN = 'MISSING_CUSTOM_TOKEN',\n MISSING_IOS_BUNDLE_ID = 'MISSING_IOS_BUNDLE_ID',\n MISSING_MFA_ENROLLMENT_ID = 'MISSING_MFA_ENROLLMENT_ID',\n MISSING_MFA_PENDING_CREDENTIAL = 'MISSING_MFA_PENDING_CREDENTIAL',\n MISSING_OOB_CODE = 'MISSING_OOB_CODE',\n MISSING_OR_INVALID_NONCE = 'MISSING_OR_INVALID_NONCE',\n MISSING_PASSWORD = 'MISSING_PASSWORD',\n MISSING_REQ_TYPE = 'MISSING_REQ_TYPE',\n MISSING_PHONE_NUMBER = 'MISSING_PHONE_NUMBER',\n MISSING_SESSION_INFO = 'MISSING_SESSION_INFO',\n OPERATION_NOT_ALLOWED = 'OPERATION_NOT_ALLOWED',\n PASSWORD_LOGIN_DISABLED = 'PASSWORD_LOGIN_DISABLED',\n QUOTA_EXCEEDED = 'QUOTA_EXCEEDED',\n RESET_PASSWORD_EXCEED_LIMIT = 'RESET_PASSWORD_EXCEED_LIMIT',\n REJECTED_CREDENTIAL = 'REJECTED_CREDENTIAL',\n SECOND_FACTOR_EXISTS = 'SECOND_FACTOR_EXISTS',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'SECOND_FACTOR_LIMIT_EXCEEDED',\n SESSION_EXPIRED = 'SESSION_EXPIRED',\n TENANT_ID_MISMATCH = 'TENANT_ID_MISMATCH',\n TOKEN_EXPIRED = 'TOKEN_EXPIRED',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'TOO_MANY_ATTEMPTS_TRY_LATER',\n UNSUPPORTED_FIRST_FACTOR = 'UNSUPPORTED_FIRST_FACTOR',\n UNSUPPORTED_TENANT_OPERATION = 'UNSUPPORTED_TENANT_OPERATION',\n UNAUTHORIZED_DOMAIN = 'UNAUTHORIZED_DOMAIN',\n UNVERIFIED_EMAIL = 'UNVERIFIED_EMAIL',\n USER_CANCELLED = 'USER_CANCELLED',\n USER_DISABLED = 'USER_DISABLED',\n USER_NOT_FOUND = 'USER_NOT_FOUND',\n WEAK_PASSWORD = 'WEAK_PASSWORD'\n}\n\n/**\n * API Response in the event of an error\n */\nexport interface JsonError {\n error: {\n code: number;\n message: string;\n errors?: [\n {\n message: ServerError;\n domain: string;\n reason: string;\n }\n ];\n };\n}\n\n/**\n * Type definition for a map from server errors to developer visible errors\n */\nexport declare type ServerErrorMap = {\n readonly [K in ApiError]: AuthErrorCode;\n};\n\n/**\n * Map from errors returned by the server to errors to developer visible errors\n */\nexport const SERVER_ERROR_MAP: Partial> = {\n // Custom token errors.\n [ServerError.CREDENTIAL_MISMATCH]: AuthErrorCode.CREDENTIAL_MISMATCH,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CUSTOM_TOKEN]: AuthErrorCode.INTERNAL_ERROR,\n\n // Create Auth URI errors.\n [ServerError.INVALID_IDENTIFIER]: AuthErrorCode.INVALID_EMAIL,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CONTINUE_URI]: AuthErrorCode.INTERNAL_ERROR,\n\n // Sign in with email and password errors (some apply to sign up too).\n [ServerError.INVALID_PASSWORD]: AuthErrorCode.INVALID_PASSWORD,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_PASSWORD]: AuthErrorCode.INTERNAL_ERROR,\n\n // Sign up with email and password errors.\n [ServerError.EMAIL_EXISTS]: AuthErrorCode.EMAIL_EXISTS,\n [ServerError.PASSWORD_LOGIN_DISABLED]: AuthErrorCode.OPERATION_NOT_ALLOWED,\n\n // Verify assertion for sign in with credential errors:\n [ServerError.INVALID_IDP_RESPONSE]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.INVALID_PENDING_TOKEN]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.FEDERATED_USER_ID_ALREADY_LINKED]:\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_REQ_TYPE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Send Password reset email errors:\n [ServerError.EMAIL_NOT_FOUND]: AuthErrorCode.USER_DELETED,\n [ServerError.RESET_PASSWORD_EXCEED_LIMIT]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n [ServerError.EXPIRED_OOB_CODE]: AuthErrorCode.EXPIRED_OOB_CODE,\n [ServerError.INVALID_OOB_CODE]: AuthErrorCode.INVALID_OOB_CODE,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_OOB_CODE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Operations that require ID token in request:\n [ServerError.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN,\n [ServerError.INVALID_ID_TOKEN]: AuthErrorCode.INVALID_AUTH,\n [ServerError.TOKEN_EXPIRED]: AuthErrorCode.TOKEN_EXPIRED,\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.TOKEN_EXPIRED,\n\n // Other errors.\n [ServerError.TOO_MANY_ATTEMPTS_TRY_LATER]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n // Phone Auth related errors.\n [ServerError.INVALID_CODE]: AuthErrorCode.INVALID_CODE,\n [ServerError.INVALID_SESSION_INFO]: AuthErrorCode.INVALID_SESSION_INFO,\n [ServerError.INVALID_TEMPORARY_PROOF]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.MISSING_SESSION_INFO]: AuthErrorCode.MISSING_SESSION_INFO,\n [ServerError.SESSION_EXPIRED]: AuthErrorCode.CODE_EXPIRED,\n\n // Other action code errors when additional settings passed.\n // MISSING_CONTINUE_URI is getting mapped to INTERNAL_ERROR above.\n // This is OK as this error will be caught by client side validation.\n [ServerError.MISSING_ANDROID_PACKAGE_NAME]:\n AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME,\n [ServerError.UNAUTHORIZED_DOMAIN]: AuthErrorCode.UNAUTHORIZED_DOMAIN,\n\n // getProjectConfig errors when clientId is passed.\n [ServerError.INVALID_OAUTH_CLIENT_ID]: AuthErrorCode.INVALID_OAUTH_CLIENT_ID,\n\n // User actions (sign-up or deletion) disabled errors.\n [ServerError.ADMIN_ONLY_OPERATION]: AuthErrorCode.ADMIN_ONLY_OPERATION,\n\n // Multi factor related errors.\n [ServerError.INVALID_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.INVALID_MFA_SESSION,\n [ServerError.MFA_ENROLLMENT_NOT_FOUND]: AuthErrorCode.MFA_INFO_NOT_FOUND,\n [ServerError.MISSING_MFA_ENROLLMENT_ID]: AuthErrorCode.MISSING_MFA_INFO,\n [ServerError.MISSING_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.MISSING_MFA_SESSION,\n [ServerError.SECOND_FACTOR_EXISTS]:\n AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED,\n [ServerError.SECOND_FACTOR_LIMIT_EXCEEDED]:\n AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED,\n\n // Blocking functions related errors.\n [ServerError.BLOCKING_FUNCTION_ERROR_RESPONSE]: AuthErrorCode.INTERNAL_ERROR\n};\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError, querystring } from '@firebase/util';\n\nimport { AuthErrorCode, NamedErrorParams } from '../core/errors';\nimport {\n _createError,\n _errorWithCustomMessage,\n _fail\n} from '../core/util/assert';\nimport { Delay } from '../core/util/delay';\nimport { _emulatorUrl } from '../core/util/emulator';\nimport { FetchProvider } from '../core/util/fetch_provider';\nimport { Auth } from '../model/public_types';\nimport { AuthInternal, ConfigInternal } from '../model/auth';\nimport { IdTokenResponse, TaggedWithTokenResponse } from '../model/id_token';\nimport { IdTokenMfaResponse } from './authentication/mfa';\nimport { SERVER_ERROR_MAP, ServerError, ServerErrorMap } from './errors';\n\nexport const enum HttpMethod {\n POST = 'POST',\n GET = 'GET'\n}\n\nexport const enum HttpHeader {\n CONTENT_TYPE = 'Content-Type',\n X_FIREBASE_LOCALE = 'X-Firebase-Locale',\n X_CLIENT_VERSION = 'X-Client-Version',\n X_FIREBASE_GMPID = 'X-Firebase-gmpid',\n X_FIREBASE_CLIENT = 'X-Firebase-Client'\n}\n\nexport const enum Endpoint {\n CREATE_AUTH_URI = '/v1/accounts:createAuthUri',\n DELETE_ACCOUNT = '/v1/accounts:delete',\n RESET_PASSWORD = '/v1/accounts:resetPassword',\n SIGN_UP = '/v1/accounts:signUp',\n SIGN_IN_WITH_CUSTOM_TOKEN = '/v1/accounts:signInWithCustomToken',\n SIGN_IN_WITH_EMAIL_LINK = '/v1/accounts:signInWithEmailLink',\n SIGN_IN_WITH_IDP = '/v1/accounts:signInWithIdp',\n SIGN_IN_WITH_PASSWORD = '/v1/accounts:signInWithPassword',\n SIGN_IN_WITH_PHONE_NUMBER = '/v1/accounts:signInWithPhoneNumber',\n SEND_VERIFICATION_CODE = '/v1/accounts:sendVerificationCode',\n SEND_OOB_CODE = '/v1/accounts:sendOobCode',\n SET_ACCOUNT_INFO = '/v1/accounts:update',\n GET_ACCOUNT_INFO = '/v1/accounts:lookup',\n GET_RECAPTCHA_PARAM = '/v1/recaptchaParams',\n START_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:start',\n FINALIZE_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:finalize',\n START_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:start',\n FINALIZE_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:finalize',\n WITHDRAW_MFA = '/v2/accounts/mfaEnrollment:withdraw',\n GET_PROJECT_CONFIG = '/v1/projects'\n}\n\nexport const DEFAULT_API_TIMEOUT_MS = new Delay(30_000, 60_000);\n\nexport function _addTidIfNecessary(\n auth: Auth,\n request: T\n): T {\n if (auth.tenantId && !request.tenantId) {\n return {\n ...request,\n tenantId: auth.tenantId\n };\n }\n return request;\n}\n\nexport async function _performApiRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n return _performFetchWithErrorHandling(auth, customErrorMap, async () => {\n let body = {};\n let params = {};\n if (request) {\n if (method === HttpMethod.GET) {\n params = request;\n } else {\n body = {\n body: JSON.stringify(request)\n };\n }\n }\n\n const query = querystring({\n key: auth.config.apiKey,\n ...params\n }).slice(1);\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/json';\n\n if (auth.languageCode) {\n headers[HttpHeader.X_FIREBASE_LOCALE] = auth.languageCode;\n }\n\n return FetchProvider.fetch()(\n _getFinalTarget(auth, auth.config.apiHost, path, query),\n {\n method,\n headers,\n referrerPolicy: 'no-referrer',\n ...body\n }\n );\n });\n}\n\nexport async function _performFetchWithErrorHandling(\n auth: Auth,\n customErrorMap: Partial>,\n fetchFn: () => Promise\n): Promise {\n (auth as AuthInternal)._canInitEmulator = false;\n const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };\n try {\n const networkTimeout = new NetworkTimeout(auth);\n const response: Response = await Promise.race>([\n fetchFn(),\n networkTimeout.promise\n ]);\n\n // If we've reached this point, the fetch succeeded and the networkTimeout\n // didn't throw; clear the network timeout delay so that Node won't hang\n networkTimeout.clearNetworkTimeout();\n\n const json = await response.json();\n if ('needConfirmation' in json) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, json);\n }\n\n if (response.ok && !('errorMessage' in json)) {\n return json;\n } else {\n const errorMessage = response.ok ? json.errorMessage : json.error.message;\n const [serverErrorCode, serverErrorMessage] = errorMessage.split(' : ');\n if (serverErrorCode === ServerError.FEDERATED_USER_ID_ALREADY_LINKED) {\n throw _makeTaggedError(\n auth,\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n json\n );\n } else if (serverErrorCode === ServerError.EMAIL_EXISTS) {\n throw _makeTaggedError(auth, AuthErrorCode.EMAIL_EXISTS, json);\n } else if (serverErrorCode === ServerError.USER_DISABLED) {\n throw _makeTaggedError(auth, AuthErrorCode.USER_DISABLED, json);\n }\n const authError =\n errorMap[serverErrorCode as ServerError] ||\n (serverErrorCode\n .toLowerCase()\n .replace(/[_\\s]+/g, '-') as unknown as AuthErrorCode);\n if (serverErrorMessage) {\n throw _errorWithCustomMessage(auth, authError, serverErrorMessage);\n } else {\n _fail(auth, authError);\n }\n }\n } catch (e) {\n if (e instanceof FirebaseError) {\n throw e;\n }\n _fail(auth, AuthErrorCode.NETWORK_REQUEST_FAILED);\n }\n}\n\nexport async function _performSignInRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n const serverResponse = (await _performApiRequest(\n auth,\n method,\n path,\n request,\n customErrorMap\n )) as V;\n if ('mfaPendingCredential' in serverResponse) {\n _fail(auth, AuthErrorCode.MFA_REQUIRED, {\n _serverResponse: serverResponse\n });\n }\n\n return serverResponse;\n}\n\nexport function _getFinalTarget(\n auth: Auth,\n host: string,\n path: string,\n query: string\n): string {\n const base = `${host}${path}?${query}`;\n\n if (!(auth as AuthInternal).config.emulator) {\n return `${auth.config.apiScheme}://${base}`;\n }\n\n return _emulatorUrl(auth.config as ConfigInternal, base);\n}\n\nclass NetworkTimeout {\n // Node timers and browser timers are fundamentally incompatible, but we\n // don't care about the value here\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timer: any | null = null;\n readonly promise = new Promise((_, reject) => {\n this.timer = setTimeout(() => {\n return reject(\n _createError(this.auth, AuthErrorCode.NETWORK_REQUEST_FAILED)\n );\n }, DEFAULT_API_TIMEOUT_MS.get());\n });\n\n clearNetworkTimeout(): void {\n clearTimeout(this.timer);\n }\n\n constructor(private readonly auth: Auth) {}\n}\n\ninterface PotentialResponse extends IdTokenResponse {\n email?: string;\n phoneNumber?: string;\n}\n\nexport function _makeTaggedError(\n auth: Auth,\n code: AuthErrorCode,\n response: PotentialResponse\n): FirebaseError {\n const errorParams: NamedErrorParams = {\n appName: auth.name\n };\n\n if (response.email) {\n errorParams.email = response.email;\n }\n if (response.phoneNumber) {\n errorParams.phoneNumber = response.phoneNumber;\n }\n\n const error = _createError(auth, code, errorParams);\n\n // We know customData is defined on error because errorParams is defined\n (error.customData! as TaggedWithTokenResponse)._tokenResponse = response;\n return error;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { MfaEnrollment } from './mfa';\nimport { Auth } from '../../model/public_types';\n\nexport interface DeleteAccountRequest {\n idToken: string;\n}\n\nexport async function deleteAccount(\n auth: Auth,\n request: DeleteAccountRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.DELETE_ACCOUNT,\n request\n );\n}\n\nexport interface ProviderUserInfo {\n providerId: string;\n rawId?: string;\n email?: string;\n displayName?: string;\n photoUrl?: string;\n phoneNumber?: string;\n}\n\nexport interface DeleteLinkedAccountsRequest {\n idToken: string;\n deleteProvider: string[];\n}\n\nexport interface DeleteLinkedAccountsResponse {\n providerUserInfo: ProviderUserInfo[];\n}\n\nexport async function deleteLinkedAccounts(\n auth: Auth,\n request: DeleteLinkedAccountsRequest\n): Promise {\n return _performApiRequest<\n DeleteLinkedAccountsRequest,\n DeleteLinkedAccountsResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface APIUserInfo {\n localId?: string;\n displayName?: string;\n photoUrl?: string;\n email?: string;\n emailVerified?: boolean;\n phoneNumber?: string;\n lastLoginAt?: number;\n createdAt?: number;\n tenantId?: string;\n passwordHash?: string;\n providerUserInfo?: ProviderUserInfo[];\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface GetAccountInfoRequest {\n idToken: string;\n}\n\nexport interface GetAccountInfoResponse {\n users: APIUserInfo[];\n}\n\nexport async function getAccountInfo(\n auth: Auth,\n request: GetAccountInfoRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.GET_ACCOUNT_INFO,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function utcTimestampToDateString(\n utcTimestamp?: string | number\n): string | undefined {\n if (!utcTimestamp) {\n return undefined;\n }\n try {\n // Convert to date object.\n const date = new Date(Number(utcTimestamp));\n // Test date is valid.\n if (!isNaN(date.getTime())) {\n // Convert to UTC date string.\n return date.toUTCString();\n }\n } catch (e) {\n // Do nothing. undefined will be returned.\n }\n return undefined;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult, ParsedToken, User } from '../../model/public_types';\nimport { base64Decode, getModularInstance } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { _logError } from '../util/log';\nimport { utcTimestampToDateString } from '../util/time';\nimport { AuthErrorCode } from '../errors';\n\n/**\n * Returns a JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport function getIdToken(user: User, forceRefresh = false): Promise {\n return getModularInstance(user).getIdToken(forceRefresh);\n}\n\n/**\n * Returns a deserialized JSON Web Token (JWT) used to identitfy the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport async function getIdTokenResult(\n user: User,\n forceRefresh = false\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const token = await userInternal.getIdToken(forceRefresh);\n const claims = _parseToken(token);\n\n _assert(\n claims && claims.exp && claims.auth_time && claims.iat,\n userInternal.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const firebase =\n typeof claims.firebase === 'object' ? claims.firebase : undefined;\n\n const signInProvider: string | undefined = firebase?.['sign_in_provider'];\n\n return {\n claims,\n token,\n authTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.auth_time)\n )!,\n issuedAtTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.iat)\n )!,\n expirationTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.exp)\n )!,\n signInProvider: signInProvider || null,\n signInSecondFactor: firebase?.['sign_in_second_factor'] || null\n };\n}\n\nfunction secondsStringToMilliseconds(seconds: string): number {\n return Number(seconds) * 1000;\n}\n\nexport function _parseToken(token: string): ParsedToken | null {\n const [algorithm, payload, signature] = token.split('.');\n if (\n algorithm === undefined ||\n payload === undefined ||\n signature === undefined\n ) {\n _logError('JWT malformed, contained fewer than 3 sections');\n return null;\n }\n\n try {\n const decoded = base64Decode(payload);\n if (!decoded) {\n _logError('Failed to decode base64 JWT payload');\n return null;\n }\n return JSON.parse(decoded);\n } catch (e) {\n _logError(\n 'Caught error parsing JWT payload as JSON',\n (e as Error)?.toString()\n );\n return null;\n }\n}\n\n/**\n * Extract expiresIn TTL from a token by subtracting the expiration from the issuance.\n */\nexport function _tokenExpiresIn(token: string): number {\n const parsedToken = _parseToken(token);\n _assert(parsedToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.exp !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.iat !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n return Number(parsedToken.exp) - Number(parsedToken.iat);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\nexport async function _logoutIfInvalidated(\n user: UserInternal,\n promise: Promise,\n bypassAuthState = false\n): Promise {\n if (bypassAuthState) {\n return promise;\n }\n try {\n return await promise;\n } catch (e) {\n if (e instanceof FirebaseError && isUserInvalidated(e)) {\n if (user.auth.currentUser === user) {\n await user.auth.signOut();\n }\n }\n\n throw e;\n }\n}\n\nfunction isUserInvalidated({ code }: FirebaseError): boolean {\n return (\n code === `auth/${AuthErrorCode.USER_DISABLED}` ||\n code === `auth/${AuthErrorCode.TOKEN_EXPIRED}`\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\n// Refresh the token five minutes before expiration\nexport const enum Duration {\n OFFSET = 5 * 1000 * 60,\n RETRY_BACKOFF_MIN = 30 * 1000,\n RETRY_BACKOFF_MAX = 16 * 60 * 1000\n}\n\nexport class ProactiveRefresh {\n private isRunning = false;\n\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timerId: any | null = null;\n private errorBackoff = Duration.RETRY_BACKOFF_MIN;\n\n constructor(private readonly user: UserInternal) {}\n\n _start(): void {\n if (this.isRunning) {\n return;\n }\n\n this.isRunning = true;\n this.schedule();\n }\n\n _stop(): void {\n if (!this.isRunning) {\n return;\n }\n\n this.isRunning = false;\n if (this.timerId !== null) {\n clearTimeout(this.timerId);\n }\n }\n\n private getInterval(wasError: boolean): number {\n if (wasError) {\n const interval = this.errorBackoff;\n this.errorBackoff = Math.min(\n this.errorBackoff * 2,\n Duration.RETRY_BACKOFF_MAX\n );\n return interval;\n } else {\n // Reset the error backoff\n this.errorBackoff = Duration.RETRY_BACKOFF_MIN;\n const expTime = this.user.stsTokenManager.expirationTime ?? 0;\n const interval = expTime - Date.now() - Duration.OFFSET;\n\n return Math.max(0, interval);\n }\n }\n\n private schedule(wasError = false): void {\n if (!this.isRunning) {\n // Just in case...\n return;\n }\n\n const interval = this.getInterval(wasError);\n this.timerId = setTimeout(async () => {\n await this.iteration();\n }, interval);\n }\n\n private async iteration(): Promise {\n try {\n await this.user.getIdToken(true);\n } catch (e) {\n // Only retry on network errors\n if (\n (e as FirebaseError)?.code ===\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n this.schedule(/* wasError */ true);\n }\n\n return;\n }\n this.schedule();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserMetadata as UserMetadataType } from '../../model/public_types';\n\nimport { utcTimestampToDateString } from '../util/time';\n\nexport class UserMetadata implements UserMetadataType {\n creationTime?: string;\n lastSignInTime?: string;\n\n constructor(\n private createdAt?: string | number,\n private lastLoginAt?: string | number\n ) {\n this._initializeTime();\n }\n\n private _initializeTime(): void {\n this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt);\n this.creationTime = utcTimestampToDateString(this.createdAt);\n }\n\n _copy(metadata: UserMetadata): void {\n this.createdAt = metadata.createdAt;\n this.lastLoginAt = metadata.lastLoginAt;\n this._initializeTime();\n }\n\n toJSON(): object {\n return {\n createdAt: this.createdAt,\n lastLoginAt: this.lastLoginAt\n };\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User, UserInfo } from '../../model/public_types';\n\nimport {\n getAccountInfo,\n ProviderUserInfo\n} from '../../api/account_management/account';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserMetadata } from './user_metadata';\nimport { getModularInstance } from '@firebase/util';\n\nexport async function _reloadWithoutSaving(user: UserInternal): Promise {\n const auth = user.auth;\n const idToken = await user.getIdToken();\n const response = await _logoutIfInvalidated(\n user,\n getAccountInfo(auth, { idToken })\n );\n\n _assert(response?.users.length, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const coreAccount = response.users[0];\n\n user._notifyReloadListener(coreAccount);\n\n const newProviderData = coreAccount.providerUserInfo?.length\n ? extractProviderData(coreAccount.providerUserInfo)\n : [];\n\n const providerData = mergeProviderData(user.providerData, newProviderData);\n\n // Preserves the non-nonymous status of the stored user, even if no more\n // credentials (federated or email/password) are linked to the user. If\n // the user was previously anonymous, then use provider data to update.\n // On the other hand, if it was not anonymous before, it should never be\n // considered anonymous now.\n const oldIsAnonymous = user.isAnonymous;\n const newIsAnonymous =\n !(user.email && coreAccount.passwordHash) && !providerData?.length;\n const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;\n\n const updates: Partial = {\n uid: coreAccount.localId,\n displayName: coreAccount.displayName || null,\n photoURL: coreAccount.photoUrl || null,\n email: coreAccount.email || null,\n emailVerified: coreAccount.emailVerified || false,\n phoneNumber: coreAccount.phoneNumber || null,\n tenantId: coreAccount.tenantId || null,\n providerData,\n metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),\n isAnonymous\n };\n\n Object.assign(user, updates);\n}\n\n/**\n * Reloads user account data, if signed in.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function reload(user: User): Promise {\n const userInternal: UserInternal = getModularInstance(user) as UserInternal;\n await _reloadWithoutSaving(userInternal);\n\n // Even though the current user hasn't changed, update\n // current user will trigger a persistence update w/ the\n // new info.\n await userInternal.auth._persistUserIfCurrent(userInternal);\n userInternal.auth._notifyListenersIfCurrent(userInternal);\n}\n\nfunction mergeProviderData(\n original: UserInfo[],\n newData: UserInfo[]\n): UserInfo[] {\n const deduped = original.filter(\n o => !newData.some(n => n.providerId === o.providerId)\n );\n return [...deduped, ...newData];\n}\n\nfunction extractProviderData(providers: ProviderUserInfo[]): UserInfo[] {\n return providers.map(({ providerId, ...provider }) => {\n return {\n providerId,\n uid: provider.rawId || '',\n displayName: provider.displayName || null,\n email: provider.email || null,\n phoneNumber: provider.phoneNumber || null,\n photoURL: provider.photoUrl || null\n };\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable camelcase */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n _getFinalTarget,\n _performFetchWithErrorHandling,\n HttpMethod,\n HttpHeader\n} from '../index';\nimport { FetchProvider } from '../../core/util/fetch_provider';\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\n\nexport const enum Endpoint {\n TOKEN = '/v1/token'\n}\n\n/** The server responses with snake_case; we convert to camelCase */\ninterface RequestStsTokenServerResponse {\n access_token: string;\n expires_in: string;\n refresh_token: string;\n}\n\nexport interface RequestStsTokenResponse {\n accessToken: string;\n expiresIn: string;\n refreshToken: string;\n}\n\nexport async function requestStsToken(\n auth: Auth,\n refreshToken: string\n): Promise {\n const response =\n await _performFetchWithErrorHandling(\n auth,\n {},\n async () => {\n const body = querystring({\n 'grant_type': 'refresh_token',\n 'refresh_token': refreshToken\n }).slice(1);\n const { tokenApiHost, apiKey } = auth.config;\n const url = _getFinalTarget(\n auth,\n tokenApiHost,\n Endpoint.TOKEN,\n `key=${apiKey}`\n );\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/x-www-form-urlencoded';\n\n return FetchProvider.fetch()(url, {\n method: HttpMethod.POST,\n headers,\n body\n });\n }\n );\n\n // The response comes back in snake_case. Convert to camel:\n return {\n accessToken: response.access_token,\n expiresIn: response.expires_in,\n refreshToken: response.refresh_token\n };\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { requestStsToken } from '../../api/authentication/token';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert, debugFail } from '../util/assert';\nimport { _tokenExpiresIn } from './id_token_result';\n\n/**\n * The number of milliseconds before the official expiration time of a token\n * to refresh that token, to provide a buffer for RPCs to complete.\n */\nexport const enum Buffer {\n TOKEN_REFRESH = 30_000\n}\n\n/**\n * We need to mark this class as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport class StsTokenManager {\n refreshToken: string | null = null;\n accessToken: string | null = null;\n expirationTime: number | null = null;\n\n get isExpired(): boolean {\n return (\n !this.expirationTime ||\n Date.now() > this.expirationTime - Buffer.TOKEN_REFRESH\n );\n }\n\n updateFromServerResponse(\n response: IdTokenResponse | FinalizeMfaResponse\n ): void {\n _assert(response.idToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(\n typeof response.idToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof response.refreshToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n const expiresIn =\n 'expiresIn' in response && typeof response.expiresIn !== 'undefined'\n ? Number(response.expiresIn)\n : _tokenExpiresIn(response.idToken);\n this.updateTokensAndExpiration(\n response.idToken,\n response.refreshToken,\n expiresIn\n );\n }\n\n async getToken(\n auth: AuthInternal,\n forceRefresh = false\n ): Promise {\n _assert(\n !this.accessToken || this.refreshToken,\n auth,\n AuthErrorCode.TOKEN_EXPIRED\n );\n\n if (!forceRefresh && this.accessToken && !this.isExpired) {\n return this.accessToken;\n }\n\n if (this.refreshToken) {\n await this.refresh(auth, this.refreshToken!);\n return this.accessToken;\n }\n\n return null;\n }\n\n clearRefreshToken(): void {\n this.refreshToken = null;\n }\n\n private async refresh(auth: AuthInternal, oldToken: string): Promise {\n const { accessToken, refreshToken, expiresIn } = await requestStsToken(\n auth,\n oldToken\n );\n this.updateTokensAndExpiration(\n accessToken,\n refreshToken,\n Number(expiresIn)\n );\n }\n\n private updateTokensAndExpiration(\n accessToken: string,\n refreshToken: string,\n expiresInSec: number\n ): void {\n this.refreshToken = refreshToken || null;\n this.accessToken = accessToken || null;\n this.expirationTime = Date.now() + expiresInSec * 1000;\n }\n\n static fromJSON(appName: string, object: PersistedBlob): StsTokenManager {\n const { refreshToken, accessToken, expirationTime } = object;\n\n const manager = new StsTokenManager();\n if (refreshToken) {\n _assert(typeof refreshToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.refreshToken = refreshToken;\n }\n if (accessToken) {\n _assert(typeof accessToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.accessToken = accessToken;\n }\n if (expirationTime) {\n _assert(\n typeof expirationTime === 'number',\n AuthErrorCode.INTERNAL_ERROR,\n {\n appName\n }\n );\n manager.expirationTime = expirationTime;\n }\n return manager;\n }\n\n toJSON(): object {\n return {\n refreshToken: this.refreshToken,\n accessToken: this.accessToken,\n expirationTime: this.expirationTime\n };\n }\n\n _assign(stsTokenManager: StsTokenManager): void {\n this.accessToken = stsTokenManager.accessToken;\n this.refreshToken = stsTokenManager.refreshToken;\n this.expirationTime = stsTokenManager.expirationTime;\n }\n\n _clone(): StsTokenManager {\n return Object.assign(new StsTokenManager(), this.toJSON());\n }\n\n _performRefresh(): never {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult } from '../../model/public_types';\nimport { NextFn } from '@firebase/util';\n\nimport {\n APIUserInfo,\n deleteAccount\n} from '../../api/account_management/account';\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport {\n MutableUserInfo,\n UserInternal,\n UserParameters\n} from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert } from '../util/assert';\nimport { getIdTokenResult } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { ProactiveRefresh } from './proactive_refresh';\nimport { _reloadWithoutSaving, reload } from './reload';\nimport { StsTokenManager } from './token_manager';\nimport { UserMetadata } from './user_metadata';\nimport { ProviderId } from '../../model/enums';\n\nfunction assertStringOrUndefined(\n assertion: unknown,\n appName: string\n): asserts assertion is string | undefined {\n _assert(\n typeof assertion === 'string' || typeof assertion === 'undefined',\n AuthErrorCode.INTERNAL_ERROR,\n { appName }\n );\n}\n\nexport class UserImpl implements UserInternal {\n // For the user object, provider is always Firebase.\n readonly providerId = ProviderId.FIREBASE;\n stsTokenManager: StsTokenManager;\n // Last known accessToken so we know when it changes\n private accessToken: string | null;\n\n uid: string;\n auth: AuthInternal;\n emailVerified: boolean;\n isAnonymous: boolean;\n tenantId: string | null;\n readonly metadata: UserMetadata;\n providerData: MutableUserInfo[];\n\n // Optional fields from UserInfo\n displayName: string | null;\n email: string | null;\n phoneNumber: string | null;\n photoURL: string | null;\n\n _redirectEventId?: string;\n private readonly proactiveRefresh = new ProactiveRefresh(this);\n\n constructor({ uid, auth, stsTokenManager, ...opt }: UserParameters) {\n this.uid = uid;\n this.auth = auth;\n this.stsTokenManager = stsTokenManager;\n this.accessToken = stsTokenManager.accessToken;\n this.displayName = opt.displayName || null;\n this.email = opt.email || null;\n this.emailVerified = opt.emailVerified || false;\n this.phoneNumber = opt.phoneNumber || null;\n this.photoURL = opt.photoURL || null;\n this.isAnonymous = opt.isAnonymous || false;\n this.tenantId = opt.tenantId || null;\n this.providerData = opt.providerData ? [...opt.providerData] : [];\n this.metadata = new UserMetadata(\n opt.createdAt || undefined,\n opt.lastLoginAt || undefined\n );\n }\n\n async getIdToken(forceRefresh?: boolean): Promise {\n const accessToken = await _logoutIfInvalidated(\n this,\n this.stsTokenManager.getToken(this.auth, forceRefresh)\n );\n _assert(accessToken, this.auth, AuthErrorCode.INTERNAL_ERROR);\n\n if (this.accessToken !== accessToken) {\n this.accessToken = accessToken;\n await this.auth._persistUserIfCurrent(this);\n this.auth._notifyListenersIfCurrent(this);\n }\n\n return accessToken;\n }\n\n getIdTokenResult(forceRefresh?: boolean): Promise {\n return getIdTokenResult(this, forceRefresh);\n }\n\n reload(): Promise {\n return reload(this);\n }\n\n private reloadUserInfo: APIUserInfo | null = null;\n private reloadListener: NextFn | null = null;\n\n _assign(user: UserInternal): void {\n if (this === user) {\n return;\n }\n _assert(this.uid === user.uid, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.displayName = user.displayName;\n this.photoURL = user.photoURL;\n this.email = user.email;\n this.emailVerified = user.emailVerified;\n this.phoneNumber = user.phoneNumber;\n this.isAnonymous = user.isAnonymous;\n this.tenantId = user.tenantId;\n this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));\n this.metadata._copy(user.metadata);\n this.stsTokenManager._assign(user.stsTokenManager);\n }\n\n _clone(auth: AuthInternal): UserInternal {\n return new UserImpl({\n ...this,\n auth,\n stsTokenManager: this.stsTokenManager._clone()\n });\n }\n\n _onReload(callback: NextFn): void {\n // There should only ever be one listener, and that is a single instance of MultiFactorUser\n _assert(!this.reloadListener, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.reloadListener = callback;\n if (this.reloadUserInfo) {\n this._notifyReloadListener(this.reloadUserInfo);\n this.reloadUserInfo = null;\n }\n }\n\n _notifyReloadListener(userInfo: APIUserInfo): void {\n if (this.reloadListener) {\n this.reloadListener(userInfo);\n } else {\n // If no listener is subscribed yet, save the result so it's available when they do subscribe\n this.reloadUserInfo = userInfo;\n }\n }\n\n _startProactiveRefresh(): void {\n this.proactiveRefresh._start();\n }\n\n _stopProactiveRefresh(): void {\n this.proactiveRefresh._stop();\n }\n\n async _updateTokensIfNecessary(\n response: IdTokenResponse | FinalizeMfaResponse,\n reload = false\n ): Promise {\n let tokensRefreshed = false;\n if (\n response.idToken &&\n response.idToken !== this.stsTokenManager.accessToken\n ) {\n this.stsTokenManager.updateFromServerResponse(response);\n tokensRefreshed = true;\n }\n\n if (reload) {\n await _reloadWithoutSaving(this);\n }\n\n await this.auth._persistUserIfCurrent(this);\n if (tokensRefreshed) {\n this.auth._notifyListenersIfCurrent(this);\n }\n }\n\n async delete(): Promise {\n const idToken = await this.getIdToken();\n await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken }));\n this.stsTokenManager.clearRefreshToken();\n\n // TODO: Determine if cancellable-promises are necessary to use in this class so that delete()\n // cancels pending actions...\n\n return this.auth.signOut();\n }\n\n toJSON(): PersistedBlob {\n return {\n uid: this.uid,\n email: this.email || undefined,\n emailVerified: this.emailVerified,\n displayName: this.displayName || undefined,\n isAnonymous: this.isAnonymous,\n photoURL: this.photoURL || undefined,\n phoneNumber: this.phoneNumber || undefined,\n tenantId: this.tenantId || undefined,\n providerData: this.providerData.map(userInfo => ({ ...userInfo })),\n stsTokenManager: this.stsTokenManager.toJSON(),\n // Redirect event ID must be maintained in case there is a pending\n // redirect event.\n _redirectEventId: this._redirectEventId,\n ...this.metadata.toJSON(),\n\n // Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):\n apiKey: this.auth.config.apiKey,\n appName: this.auth.name\n // Missing authDomain will be tolerated by the legacy SDK.\n // stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).\n };\n }\n\n get refreshToken(): string {\n return this.stsTokenManager.refreshToken || '';\n }\n\n static _fromJSON(auth: AuthInternal, object: PersistedBlob): UserInternal {\n const displayName = object.displayName ?? undefined;\n const email = object.email ?? undefined;\n const phoneNumber = object.phoneNumber ?? undefined;\n const photoURL = object.photoURL ?? undefined;\n const tenantId = object.tenantId ?? undefined;\n const _redirectEventId = object._redirectEventId ?? undefined;\n const createdAt = object.createdAt ?? undefined;\n const lastLoginAt = object.lastLoginAt ?? undefined;\n const {\n uid,\n emailVerified,\n isAnonymous,\n providerData,\n stsTokenManager: plainObjectTokenManager\n } = object;\n\n _assert(uid && plainObjectTokenManager, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const stsTokenManager = StsTokenManager.fromJSON(\n this.name,\n plainObjectTokenManager as PersistedBlob\n );\n\n _assert(typeof uid === 'string', auth, AuthErrorCode.INTERNAL_ERROR);\n assertStringOrUndefined(displayName, auth.name);\n assertStringOrUndefined(email, auth.name);\n _assert(\n typeof emailVerified === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof isAnonymous === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n assertStringOrUndefined(phoneNumber, auth.name);\n assertStringOrUndefined(photoURL, auth.name);\n assertStringOrUndefined(tenantId, auth.name);\n assertStringOrUndefined(_redirectEventId, auth.name);\n assertStringOrUndefined(createdAt, auth.name);\n assertStringOrUndefined(lastLoginAt, auth.name);\n const user = new UserImpl({\n uid,\n auth,\n email,\n emailVerified,\n displayName,\n isAnonymous,\n photoURL,\n phoneNumber,\n tenantId,\n stsTokenManager,\n createdAt,\n lastLoginAt\n });\n\n if (providerData && Array.isArray(providerData)) {\n user.providerData = providerData.map(userInfo => ({ ...userInfo }));\n }\n\n if (_redirectEventId) {\n user._redirectEventId = _redirectEventId;\n }\n\n return user;\n }\n\n /**\n * Initialize a User from an idToken server response\n * @param auth\n * @param idTokenResponse\n */\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const stsTokenManager = new StsTokenManager();\n stsTokenManager.updateFromServerResponse(idTokenResponse);\n\n // Initialize the Firebase Auth user.\n const user = new UserImpl({\n uid: idTokenResponse.localId,\n auth,\n stsTokenManager,\n isAnonymous\n });\n\n // Updates the user info and data and resolves with a user instance.\n await _reloadWithoutSaving(user);\n return user;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../persistence';\n\nexport class InMemoryPersistence implements PersistenceInternal {\n static type: 'NONE' = 'NONE';\n readonly type = PersistenceType.NONE;\n storage: Record = {};\n\n async _isAvailable(): Promise {\n return true;\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n this.storage[key] = value;\n }\n\n async _get(key: string): Promise {\n const value = this.storage[key];\n return value === undefined ? null : (value as T);\n }\n\n async _remove(key: string): Promise {\n delete this.storage[key];\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type 'NONE'.\n *\n * @public\n */\nexport const inMemoryPersistence: Persistence = InMemoryPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { PersistedBlob, PersistenceInternal } from '../persistence';\nimport { UserImpl } from '../user/user_impl';\nimport { _getInstance } from '../util/instantiator';\nimport { inMemoryPersistence } from './in_memory';\n\nexport const enum KeyName {\n AUTH_USER = 'authUser',\n AUTH_EVENT = 'authEvent',\n REDIRECT_USER = 'redirectUser',\n PERSISTENCE_USER = 'persistence'\n}\nexport const enum Namespace {\n PERSISTENCE = 'firebase'\n}\n\nexport function _persistenceKeyName(\n key: string,\n apiKey: ApiKey,\n appName: AppName\n): string {\n return `${Namespace.PERSISTENCE}:${key}:${apiKey}:${appName}`;\n}\n\nexport class PersistenceUserManager {\n private readonly fullUserKey: string;\n private readonly fullPersistenceKey: string;\n private readonly boundEventHandler: () => void;\n\n private constructor(\n public persistence: PersistenceInternal,\n private readonly auth: AuthInternal,\n private readonly userKey: string\n ) {\n const { config, name } = this.auth;\n this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name);\n this.fullPersistenceKey = _persistenceKeyName(\n KeyName.PERSISTENCE_USER,\n config.apiKey,\n name\n );\n this.boundEventHandler = auth._onStorageEvent.bind(auth);\n this.persistence._addListener(this.fullUserKey, this.boundEventHandler);\n }\n\n setCurrentUser(user: UserInternal): Promise {\n return this.persistence._set(this.fullUserKey, user.toJSON());\n }\n\n async getCurrentUser(): Promise {\n const blob = await this.persistence._get(this.fullUserKey);\n return blob ? UserImpl._fromJSON(this.auth, blob) : null;\n }\n\n removeCurrentUser(): Promise {\n return this.persistence._remove(this.fullUserKey);\n }\n\n savePersistenceForRedirect(): Promise {\n return this.persistence._set(\n this.fullPersistenceKey,\n this.persistence.type\n );\n }\n\n async setPersistence(newPersistence: PersistenceInternal): Promise {\n if (this.persistence === newPersistence) {\n return;\n }\n\n const currentUser = await this.getCurrentUser();\n await this.removeCurrentUser();\n\n this.persistence = newPersistence;\n\n if (currentUser) {\n return this.setCurrentUser(currentUser);\n }\n }\n\n delete(): void {\n this.persistence._removeListener(this.fullUserKey, this.boundEventHandler);\n }\n\n static async create(\n auth: AuthInternal,\n persistenceHierarchy: PersistenceInternal[],\n userKey = KeyName.AUTH_USER\n ): Promise {\n if (!persistenceHierarchy.length) {\n return new PersistenceUserManager(\n _getInstance(inMemoryPersistence),\n auth,\n userKey\n );\n }\n\n // Eliminate any persistences that are not available\n const availablePersistences = (\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (await persistence._isAvailable()) {\n return persistence;\n }\n return undefined;\n })\n )\n ).filter(persistence => persistence) as PersistenceInternal[];\n\n // Fall back to the first persistence listed, or in memory if none available\n let selectedPersistence =\n availablePersistences[0] ||\n _getInstance(inMemoryPersistence);\n\n const key = _persistenceKeyName(userKey, auth.config.apiKey, auth.name);\n\n // Pull out the existing user, setting the chosen persistence to that\n // persistence if the user exists.\n let userToMigrate: UserInternal | null = null;\n // Note, here we check for a user in _all_ persistences, not just the\n // ones deemed available. If we can migrate a user out of a broken\n // persistence, we will (but only if that persistence supports migration).\n for (const persistence of persistenceHierarchy) {\n try {\n const blob = await persistence._get(key);\n if (blob) {\n const user = UserImpl._fromJSON(auth, blob); // throws for unparsable blob (wrong format)\n if (persistence !== selectedPersistence) {\n userToMigrate = user;\n }\n selectedPersistence = persistence;\n break;\n }\n } catch {}\n }\n\n // If we find the user in a persistence that does support migration, use\n // that migration path (of only persistences that support migration)\n const migrationHierarchy = availablePersistences.filter(\n p => p._shouldAllowMigration\n );\n\n // If the persistence does _not_ allow migration, just finish off here\n if (\n !selectedPersistence._shouldAllowMigration ||\n !migrationHierarchy.length\n ) {\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n\n selectedPersistence = migrationHierarchy[0];\n if (userToMigrate) {\n // This normally shouldn't throw since chosenPersistence.isAvailable() is true, but if it does\n // we'll just let it bubble to surface the error.\n await selectedPersistence._set(key, userToMigrate.toJSON());\n }\n\n // Attempt to clear the key in other persistences but ignore errors. This helps prevent issues\n // such as users getting stuck with a previous account after signing out and refreshing the tab.\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (persistence !== selectedPersistence) {\n try {\n await persistence._remove(key);\n } catch {}\n }\n })\n );\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isIE, getUA } from '@firebase/util';\n\ninterface NavigatorStandalone extends Navigator {\n standalone?: unknown;\n}\n\ninterface Document {\n documentMode?: number;\n}\n\n/**\n * Enums for Browser name.\n */\nexport const enum BrowserName {\n ANDROID = 'Android',\n BLACKBERRY = 'Blackberry',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n IE = 'IE',\n IEMOBILE = 'IEMobile',\n OPERA = 'Opera',\n OTHER = 'Other',\n CHROME = 'Chrome',\n SAFARI = 'Safari',\n SILK = 'Silk',\n WEBOS = 'Webos'\n}\n\n/**\n * Determine the browser for the purposes of reporting usage to the API\n */\nexport function _getBrowserName(userAgent: string): BrowserName | string {\n const ua = userAgent.toLowerCase();\n if (ua.includes('opera/') || ua.includes('opr/') || ua.includes('opios/')) {\n return BrowserName.OPERA;\n } else if (_isIEMobile(ua)) {\n // Windows phone IEMobile browser.\n return BrowserName.IEMOBILE;\n } else if (ua.includes('msie') || ua.includes('trident/')) {\n return BrowserName.IE;\n } else if (ua.includes('edge/')) {\n return BrowserName.EDGE;\n } else if (_isFirefox(ua)) {\n return BrowserName.FIREFOX;\n } else if (ua.includes('silk/')) {\n return BrowserName.SILK;\n } else if (_isBlackBerry(ua)) {\n // Blackberry browser.\n return BrowserName.BLACKBERRY;\n } else if (_isWebOS(ua)) {\n // WebOS default browser.\n return BrowserName.WEBOS;\n } else if (_isSafari(ua)) {\n return BrowserName.SAFARI;\n } else if (\n (ua.includes('chrome/') || _isChromeIOS(ua)) &&\n !ua.includes('edge/')\n ) {\n return BrowserName.CHROME;\n } else if (_isAndroid(ua)) {\n // Android stock browser.\n return BrowserName.ANDROID;\n } else {\n // Most modern browsers have name/version at end of user agent string.\n const re = /([a-zA-Z\\d\\.]+)\\/[a-zA-Z\\d\\.]*$/;\n const matches = userAgent.match(re);\n if (matches?.length === 2) {\n return matches[1];\n }\n }\n return BrowserName.OTHER;\n}\n\nexport function _isFirefox(ua = getUA()): boolean {\n return /firefox\\//i.test(ua);\n}\n\nexport function _isSafari(userAgent = getUA()): boolean {\n const ua = userAgent.toLowerCase();\n return (\n ua.includes('safari/') &&\n !ua.includes('chrome/') &&\n !ua.includes('crios/') &&\n !ua.includes('android')\n );\n}\n\nexport function _isChromeIOS(ua = getUA()): boolean {\n return /crios\\//i.test(ua);\n}\n\nexport function _isIEMobile(ua = getUA()): boolean {\n return /iemobile/i.test(ua);\n}\n\nexport function _isAndroid(ua = getUA()): boolean {\n return /android/i.test(ua);\n}\n\nexport function _isBlackBerry(ua = getUA()): boolean {\n return /blackberry/i.test(ua);\n}\n\nexport function _isWebOS(ua = getUA()): boolean {\n return /webos/i.test(ua);\n}\n\nexport function _isIOS(ua = getUA()): boolean {\n return (\n /iphone|ipad|ipod/i.test(ua) ||\n (/macintosh/i.test(ua) && /mobile/i.test(ua))\n );\n}\n\nexport function _isIOS7Or8(ua = getUA()): boolean {\n return (\n /(iPad|iPhone|iPod).*OS 7_\\d/i.test(ua) ||\n /(iPad|iPhone|iPod).*OS 8_\\d/i.test(ua)\n );\n}\n\nexport function _isIOSStandalone(ua = getUA()): boolean {\n return _isIOS(ua) && !!(window.navigator as NavigatorStandalone)?.standalone;\n}\n\nexport function _isIE10(): boolean {\n return isIE() && (document as Document).documentMode === 10;\n}\n\nexport function _isMobileBrowser(ua: string = getUA()): boolean {\n // TODO: implement getBrowserName equivalent for OS.\n return (\n _isIOS(ua) ||\n _isAndroid(ua) ||\n _isWebOS(ua) ||\n _isBlackBerry(ua) ||\n /windows phone/i.test(ua) ||\n _isIEMobile(ua)\n );\n}\n\nexport function _isIframe(): boolean {\n try {\n // Check that the current window is not the top window.\n // If so, return true.\n return !!(window && window !== window.top);\n } catch (e) {\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { _getBrowserName } from './browser';\nimport { getUA } from '@firebase/util';\n\nexport const enum ClientImplementation {\n CORE = 'JsCore'\n}\n\n/**\n * @internal\n */\nexport const enum ClientPlatform {\n BROWSER = 'Browser',\n NODE = 'Node',\n REACT_NATIVE = 'ReactNative',\n CORDOVA = 'Cordova',\n WORKER = 'Worker'\n}\n\n/*\n * Determine the SDK version string\n */\nexport function _getClientVersion(\n clientPlatform: ClientPlatform,\n frameworks: readonly string[] = []\n): string {\n let reportedPlatform: string;\n switch (clientPlatform) {\n case ClientPlatform.BROWSER:\n // In a browser environment, report the browser name.\n reportedPlatform = _getBrowserName(getUA());\n break;\n case ClientPlatform.WORKER:\n // Technically a worker runs from a browser but we need to differentiate a\n // worker from a browser.\n // For example: Chrome-Worker/JsCore/4.9.1/FirebaseCore-web.\n reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`;\n break;\n default:\n reportedPlatform = clientPlatform;\n }\n const reportedFrameworks = frameworks.length\n ? frameworks.join(',')\n : 'FirebaseCore-web'; /* default value if no other framework is used */\n return `${reportedPlatform}/${ClientImplementation.CORE}/${SDK_VERSION}/${reportedFrameworks}`;\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport { Unsubscribe, User } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\n\ninterface MiddlewareEntry {\n (user: User | null): Promise;\n onAbort?: () => void;\n}\n\nexport class AuthMiddlewareQueue {\n private readonly queue: MiddlewareEntry[] = [];\n\n constructor(private readonly auth: AuthInternal) {}\n\n pushCallback(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n // The callback could be sync or async. Wrap it into a\n // function that is always async.\n const wrappedCallback: MiddlewareEntry = (\n user: User | null\n ): Promise =>\n new Promise((resolve, reject) => {\n try {\n const result = callback(user);\n // Either resolve with existing promise or wrap a non-promise\n // return value into a promise.\n resolve(result);\n } catch (e) {\n // Sync callback throws.\n reject(e);\n }\n });\n // Attach the onAbort if present\n wrappedCallback.onAbort = onAbort;\n this.queue.push(wrappedCallback);\n\n const index = this.queue.length - 1;\n return () => {\n // Unsubscribe. Replace with no-op. Do not remove from array, or it will disturb\n // indexing of other elements.\n this.queue[index] = () => Promise.resolve();\n };\n }\n\n async runMiddleware(nextUser: User | null): Promise {\n if (this.auth.currentUser === nextUser) {\n return;\n }\n\n // While running the middleware, build a temporary stack of onAbort\n // callbacks to call if one middleware callback rejects.\n\n const onAbortStack: Array<() => void> = [];\n try {\n for (const beforeStateCallback of this.queue) {\n await beforeStateCallback(nextUser);\n\n // Only push the onAbort if the callback succeeds\n if (beforeStateCallback.onAbort) {\n onAbortStack.push(beforeStateCallback.onAbort);\n }\n }\n } catch (e) {\n // Run all onAbort, with separate try/catch to ignore any errors and\n // continue\n onAbortStack.reverse();\n for (const onAbort of onAbortStack) {\n try {\n onAbort();\n } catch (_) {\n /* swallow error */\n }\n }\n\n throw this.auth._errorFactory.create(AuthErrorCode.LOGIN_BLOCKED, {\n originalMessage: (e as Error)?.message\n });\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _FirebaseService, FirebaseApp } from '@firebase/app';\nimport { Provider } from '@firebase/component';\nimport {\n Auth,\n AuthErrorMap,\n AuthSettings,\n EmulatorConfig,\n NextOrObserver,\n Persistence,\n PopupRedirectResolver,\n User,\n UserCredential,\n CompleteFn,\n ErrorFn,\n NextFn,\n Unsubscribe\n} from '../../model/public_types';\nimport {\n createSubscribe,\n ErrorFactory,\n FirebaseError,\n getModularInstance,\n Observer,\n Subscribe\n} from '@firebase/util';\n\nimport { AuthInternal, ConfigInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport {\n AuthErrorCode,\n AuthErrorParams,\n ErrorMapRetriever,\n _DEFAULT_AUTH_ERROR_FACTORY\n} from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport {\n KeyName,\n PersistenceUserManager\n} from '../persistence/persistence_user_manager';\nimport { _reloadWithoutSaving } from '../user/reload';\nimport { _assert } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { _getUserLanguage } from '../util/navigator';\nimport { _getClientVersion } from '../util/version';\nimport { HttpHeader } from '../../api';\nimport { AuthMiddlewareQueue } from './middleware';\n\ninterface AsyncAction {\n (): Promise;\n}\n\nexport const enum DefaultConfig {\n TOKEN_API_HOST = 'securetoken.googleapis.com',\n API_HOST = 'identitytoolkit.googleapis.com',\n API_SCHEME = 'https'\n}\n\nexport class AuthImpl implements AuthInternal, _FirebaseService {\n currentUser: User | null = null;\n emulatorConfig: EmulatorConfig | null = null;\n private operations = Promise.resolve();\n private persistenceManager?: PersistenceUserManager;\n private redirectPersistenceManager?: PersistenceUserManager;\n private authStateSubscription = new Subscription(this);\n private idTokenSubscription = new Subscription(this);\n private readonly beforeStateQueue = new AuthMiddlewareQueue(this);\n private redirectUser: UserInternal | null = null;\n private isProactiveRefreshEnabled = false;\n\n // Any network calls will set this to true and prevent subsequent emulator\n // initialization\n _canInitEmulator = true;\n _isInitialized = false;\n _deleted = false;\n _initializationPromise: Promise | null = null;\n _popupRedirectResolver: PopupRedirectResolverInternal | null = null;\n _errorFactory: ErrorFactory =\n _DEFAULT_AUTH_ERROR_FACTORY;\n readonly name: string;\n\n // Tracks the last notified UID for state change listeners to prevent\n // repeated calls to the callbacks. Undefined means it's never been\n // called, whereas null means it's been called with a signed out user\n private lastNotifiedUid: string | null | undefined = undefined;\n\n languageCode: string | null = null;\n tenantId: string | null = null;\n settings: AuthSettings = { appVerificationDisabledForTesting: false };\n\n constructor(\n public readonly app: FirebaseApp,\n private readonly heartbeatServiceProvider: Provider<'heartbeat'>,\n public readonly config: ConfigInternal\n ) {\n this.name = app.name;\n this.clientVersion = config.sdkClientVersion;\n }\n\n _initializeWithPersistence(\n persistenceHierarchy: PersistenceInternal[],\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (popupRedirectResolver) {\n this._popupRedirectResolver = _getInstance(popupRedirectResolver);\n }\n\n // Have to check for app deletion throughout initialization (after each\n // promise resolution)\n this._initializationPromise = this.queue(async () => {\n if (this._deleted) {\n return;\n }\n\n this.persistenceManager = await PersistenceUserManager.create(\n this,\n persistenceHierarchy\n );\n\n if (this._deleted) {\n return;\n }\n\n // Initialize the resolver early if necessary (only applicable to web:\n // this will cause the iframe to load immediately in certain cases)\n if (this._popupRedirectResolver?._shouldInitProactively) {\n // If this fails, don't halt auth loading\n try {\n await this._popupRedirectResolver._initialize(this);\n } catch (e) {\n /* Ignore the error */\n }\n }\n\n await this.initializeCurrentUser(popupRedirectResolver);\n this.lastNotifiedUid = this.currentUser?.uid || null;\n\n if (this._deleted) {\n return;\n }\n\n this._isInitialized = true;\n });\n\n return this._initializationPromise;\n }\n\n /**\n * If the persistence is changed in another window, the user manager will let us know\n */\n async _onStorageEvent(): Promise {\n if (this._deleted) {\n return;\n }\n\n const user = await this.assertedPersistence.getCurrentUser();\n\n if (!this.currentUser && !user) {\n // No change, do nothing (was signed out and remained signed out).\n return;\n }\n\n // If the same user is to be synchronized.\n if (this.currentUser && user && this.currentUser.uid === user.uid) {\n // Data update, simply copy data changes.\n this._currentUser._assign(user);\n // If tokens changed from previous user tokens, this will trigger\n // notifyAuthListeners_.\n await this.currentUser.getIdToken();\n return;\n }\n\n // Update current Auth state. Either a new login or logout.\n // Skip blocking callbacks, they should not apply to a change in another tab.\n await this._updateCurrentUser(user, /* skipBeforeStateCallbacks */ true);\n }\n\n private async initializeCurrentUser(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n // First check to see if we have a pending redirect event.\n const previouslyStoredUser =\n (await this.assertedPersistence.getCurrentUser()) as UserInternal | null;\n let futureCurrentUser = previouslyStoredUser;\n let needsTocheckMiddleware = false;\n if (popupRedirectResolver && this.config.authDomain) {\n await this.getOrInitRedirectPersistenceManager();\n const redirectUserEventId = this.redirectUser?._redirectEventId;\n const storedUserEventId = futureCurrentUser?._redirectEventId;\n const result = await this.tryRedirectSignIn(popupRedirectResolver);\n\n // If the stored user (i.e. the old \"currentUser\") has a redirectId that\n // matches the redirect user, then we want to initially sign in with the\n // new user object from result.\n // TODO(samgho): More thoroughly test all of this\n if (\n (!redirectUserEventId || redirectUserEventId === storedUserEventId) &&\n result?.user\n ) {\n futureCurrentUser = result.user as UserInternal;\n needsTocheckMiddleware = true;\n }\n }\n\n // If no user in persistence, there is no current user. Set to null.\n if (!futureCurrentUser) {\n return this.directlySetCurrentUser(null);\n }\n\n if (!futureCurrentUser._redirectEventId) {\n // This isn't a redirect link operation, we can reload and bail.\n // First though, ensure that we check the middleware is happy.\n if (needsTocheckMiddleware) {\n try {\n await this.beforeStateQueue.runMiddleware(futureCurrentUser);\n } catch (e) {\n futureCurrentUser = previouslyStoredUser;\n // We know this is available since the bit is only set when the\n // resolver is available\n this._popupRedirectResolver!._overrideRedirectResult(this, () =>\n Promise.reject(e)\n );\n }\n }\n\n if (futureCurrentUser) {\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n } else {\n return this.directlySetCurrentUser(null);\n }\n }\n\n _assert(this._popupRedirectResolver, this, AuthErrorCode.ARGUMENT_ERROR);\n await this.getOrInitRedirectPersistenceManager();\n\n // If the redirect user's event ID matches the current user's event ID,\n // DO NOT reload the current user, otherwise they'll be cleared from storage.\n // This is important for the reauthenticateWithRedirect() flow.\n if (\n this.redirectUser &&\n this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId\n ) {\n return this.directlySetCurrentUser(futureCurrentUser);\n }\n\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n }\n\n private async tryRedirectSignIn(\n redirectResolver: PopupRedirectResolver\n ): Promise {\n // The redirect user needs to be checked (and signed in if available)\n // during auth initialization. All of the normal sign in and link/reauth\n // flows call back into auth and push things onto the promise queue. We\n // need to await the result of the redirect sign in *inside the promise\n // queue*. This presents a problem: we run into deadlock. See:\n // ┌> [Initialization] ─────┐\n // ┌> [] │\n // └─ [getRedirectResult] <─┘\n // where [] are tasks on the queue and arrows denote awaits\n // Initialization will never complete because it's waiting on something\n // that's waiting for initialization to complete!\n //\n // Instead, this method calls getRedirectResult() (stored in\n // _completeRedirectFn) with an optional parameter that instructs all of\n // the underlying auth operations to skip anything that mutates auth state.\n\n let result: UserCredential | null = null;\n try {\n // We know this._popupRedirectResolver is set since redirectResolver\n // is passed in. The _completeRedirectFn expects the unwrapped extern.\n result = await this._popupRedirectResolver!._completeRedirectFn(\n this,\n redirectResolver,\n true\n );\n } catch (e) {\n // Swallow any errors here; the code can retrieve them in\n // getRedirectResult().\n await this._setRedirectUser(null);\n }\n\n return result;\n }\n\n private async reloadAndSetCurrentUserOrClear(\n user: UserInternal\n ): Promise {\n try {\n await _reloadWithoutSaving(user);\n } catch (e) {\n if (\n (e as FirebaseError)?.code !==\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n // Something's wrong with the user's token. Log them out and remove\n // them from storage\n return this.directlySetCurrentUser(null);\n }\n }\n\n return this.directlySetCurrentUser(user);\n }\n\n useDeviceLanguage(): void {\n this.languageCode = _getUserLanguage();\n }\n\n async _delete(): Promise {\n this._deleted = true;\n }\n\n async updateCurrentUser(userExtern: User | null): Promise {\n // The public updateCurrentUser method needs to make a copy of the user,\n // and also check that the project matches\n const user = userExtern\n ? (getModularInstance(userExtern) as UserInternal)\n : null;\n if (user) {\n _assert(\n user.auth.config.apiKey === this.config.apiKey,\n this,\n AuthErrorCode.INVALID_AUTH\n );\n }\n return this._updateCurrentUser(user && user._clone(this));\n }\n\n async _updateCurrentUser(\n user: User | null,\n skipBeforeStateCallbacks: boolean = false\n ): Promise {\n if (this._deleted) {\n return;\n }\n if (user) {\n _assert(\n this.tenantId === user.tenantId,\n this,\n AuthErrorCode.TENANT_ID_MISMATCH\n );\n }\n\n if (!skipBeforeStateCallbacks) {\n await this.beforeStateQueue.runMiddleware(user);\n }\n\n return this.queue(async () => {\n await this.directlySetCurrentUser(user as UserInternal | null);\n this.notifyAuthListeners();\n });\n }\n\n async signOut(): Promise {\n // Run first, to block _setRedirectUser() if any callbacks fail.\n await this.beforeStateQueue.runMiddleware(null);\n // Clear the redirect user when signOut is called\n if (this.redirectPersistenceManager || this._popupRedirectResolver) {\n await this._setRedirectUser(null);\n }\n\n // Prevent callbacks from being called again in _updateCurrentUser, as\n // they were already called in the first line.\n return this._updateCurrentUser(null, /* skipBeforeStateCallbacks */ true);\n }\n\n setPersistence(persistence: Persistence): Promise {\n return this.queue(async () => {\n await this.assertedPersistence.setPersistence(_getInstance(persistence));\n });\n }\n\n _getPersistence(): string {\n return this.assertedPersistence.persistence.type;\n }\n\n _updateErrorMap(errorMap: AuthErrorMap): void {\n this._errorFactory = new ErrorFactory(\n 'auth',\n 'Firebase',\n (errorMap as ErrorMapRetriever)()\n );\n }\n\n onAuthStateChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.authStateSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n beforeAuthStateChanged(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n return this.beforeStateQueue.pushCallback(callback, onAbort);\n }\n\n onIdTokenChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.idTokenSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n toJSON(): object {\n return {\n apiKey: this.config.apiKey,\n authDomain: this.config.authDomain,\n appName: this.name,\n currentUser: this._currentUser?.toJSON()\n };\n }\n\n async _setRedirectUser(\n user: UserInternal | null,\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n const redirectManager = await this.getOrInitRedirectPersistenceManager(\n popupRedirectResolver\n );\n return user === null\n ? redirectManager.removeCurrentUser()\n : redirectManager.setCurrentUser(user);\n }\n\n private async getOrInitRedirectPersistenceManager(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (!this.redirectPersistenceManager) {\n const resolver: PopupRedirectResolverInternal | null =\n (popupRedirectResolver && _getInstance(popupRedirectResolver)) ||\n this._popupRedirectResolver;\n _assert(resolver, this, AuthErrorCode.ARGUMENT_ERROR);\n this.redirectPersistenceManager = await PersistenceUserManager.create(\n this,\n [_getInstance(resolver._redirectPersistence)],\n KeyName.REDIRECT_USER\n );\n this.redirectUser =\n await this.redirectPersistenceManager.getCurrentUser();\n }\n\n return this.redirectPersistenceManager;\n }\n\n async _redirectUserForId(id: string): Promise {\n // Make sure we've cleared any pending persistence actions if we're not in\n // the initializer\n if (this._isInitialized) {\n await this.queue(async () => {});\n }\n\n if (this._currentUser?._redirectEventId === id) {\n return this._currentUser;\n }\n\n if (this.redirectUser?._redirectEventId === id) {\n return this.redirectUser;\n }\n\n return null;\n }\n\n async _persistUserIfCurrent(user: UserInternal): Promise {\n if (user === this.currentUser) {\n return this.queue(async () => this.directlySetCurrentUser(user));\n }\n }\n\n /** Notifies listeners only if the user is current */\n _notifyListenersIfCurrent(user: UserInternal): void {\n if (user === this.currentUser) {\n this.notifyAuthListeners();\n }\n }\n\n _key(): string {\n return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`;\n }\n\n _startProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = true;\n if (this.currentUser) {\n this._currentUser._startProactiveRefresh();\n }\n }\n\n _stopProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = false;\n if (this.currentUser) {\n this._currentUser._stopProactiveRefresh();\n }\n }\n\n /** Returns the current user cast as the internal type */\n get _currentUser(): UserInternal {\n return this.currentUser as UserInternal;\n }\n\n private notifyAuthListeners(): void {\n if (!this._isInitialized) {\n return;\n }\n\n this.idTokenSubscription.next(this.currentUser);\n\n const currentUid = this.currentUser?.uid ?? null;\n if (this.lastNotifiedUid !== currentUid) {\n this.lastNotifiedUid = currentUid;\n this.authStateSubscription.next(this.currentUser);\n }\n }\n\n private registerStateListener(\n subscription: Subscription,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n if (this._deleted) {\n return () => {};\n }\n\n const cb =\n typeof nextOrObserver === 'function'\n ? nextOrObserver\n : nextOrObserver.next.bind(nextOrObserver);\n\n const promise = this._isInitialized\n ? Promise.resolve()\n : this._initializationPromise;\n _assert(promise, this, AuthErrorCode.INTERNAL_ERROR);\n // The callback needs to be called asynchronously per the spec.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n promise.then(() => cb(this.currentUser));\n\n if (typeof nextOrObserver === 'function') {\n return subscription.addObserver(nextOrObserver, error, completed);\n } else {\n return subscription.addObserver(nextOrObserver);\n }\n }\n\n /**\n * Unprotected (from race conditions) method to set the current user. This\n * should only be called from within a queued callback. This is necessary\n * because the queue shouldn't rely on another queued callback.\n */\n private async directlySetCurrentUser(\n user: UserInternal | null\n ): Promise {\n if (this.currentUser && this.currentUser !== user) {\n this._currentUser._stopProactiveRefresh();\n }\n if (user && this.isProactiveRefreshEnabled) {\n user._startProactiveRefresh();\n }\n\n this.currentUser = user;\n\n if (user) {\n await this.assertedPersistence.setCurrentUser(user);\n } else {\n await this.assertedPersistence.removeCurrentUser();\n }\n }\n\n private queue(action: AsyncAction): Promise {\n // In case something errors, the callback still should be called in order\n // to keep the promise chain alive\n this.operations = this.operations.then(action, action);\n return this.operations;\n }\n\n private get assertedPersistence(): PersistenceUserManager {\n _assert(this.persistenceManager, this, AuthErrorCode.INTERNAL_ERROR);\n return this.persistenceManager;\n }\n\n private frameworks: string[] = [];\n private clientVersion: string;\n _logFramework(framework: string): void {\n if (!framework || this.frameworks.includes(framework)) {\n return;\n }\n this.frameworks.push(framework);\n\n // Sort alphabetically so that \"FirebaseCore-web,FirebaseUI-web\" and\n // \"FirebaseUI-web,FirebaseCore-web\" aren't viewed as different.\n this.frameworks.sort();\n this.clientVersion = _getClientVersion(\n this.config.clientPlatform,\n this._getFrameworks()\n );\n }\n _getFrameworks(): readonly string[] {\n return this.frameworks;\n }\n async _getAdditionalHeaders(): Promise> {\n // Additional headers on every request\n const headers: Record = {\n [HttpHeader.X_CLIENT_VERSION]: this.clientVersion\n };\n\n if (this.app.options.appId) {\n headers[HttpHeader.X_FIREBASE_GMPID] = this.app.options.appId;\n }\n\n // If the heartbeat service exists, add the heartbeat string\n const heartbeatsHeader = await this.heartbeatServiceProvider\n .getImmediate({\n optional: true\n })\n ?.getHeartbeatsHeader();\n if (heartbeatsHeader) {\n headers[HttpHeader.X_FIREBASE_CLIENT] = heartbeatsHeader;\n }\n return headers;\n }\n}\n\n/**\n * Method to be used to cast down to our private implmentation of Auth.\n * It will also handle unwrapping from the compat type if necessary\n *\n * @param auth Auth object passed in from developer\n */\nexport function _castAuth(auth: Auth): AuthInternal {\n return getModularInstance(auth) as AuthInternal;\n}\n\n/** Helper class to wrap subscriber logic */\nclass Subscription {\n private observer: Observer | null = null;\n readonly addObserver: Subscribe = createSubscribe(\n observer => (this.observer = observer)\n );\n\n constructor(readonly auth: AuthInternal) {}\n\n get next(): NextFn {\n _assert(this.observer, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.observer.next.bind(this.observer);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { debugFail } from '../util/assert';\n\n/**\n * Interface that represents the credentials returned by an {@link AuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class AuthCredential {\n /** @internal */\n protected constructor(\n /**\n * The authentication provider ID for the credential.\n *\n * @remarks\n * For example, 'facebook.com', or 'google.com'.\n */\n readonly providerId: string,\n /**\n * The authentication sign in method for the credential.\n *\n * @remarks\n * For example, {@link SignInMethod}.EMAIL_PASSWORD, or\n * {@link SignInMethod}.EMAIL_LINK. This corresponds to the sign-in method\n * identifier as returned in {@link fetchSignInMethodsForEmail}.\n */\n readonly signInMethod: string\n ) {}\n\n /**\n * Returns a JSON-serializable representation of this object.\n *\n * @returns a JSON-serializable representation of this object.\n */\n toJSON(): object {\n return debugFail('not implemented');\n }\n\n /** @internal */\n _getIdTokenResponse(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _linkToIdToken(\n _auth: AuthInternal,\n _idToken: string\n ): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _getReauthenticationResolver(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from './mfa';\n\nexport interface ResetPasswordRequest {\n oobCode: string;\n newPassword?: string;\n tenantId?: string;\n}\n\nexport interface ResetPasswordResponse {\n email: string;\n newEmail?: string;\n requestType?: ActionCodeOperation;\n mfaInfo?: MfaEnrollment;\n}\n\nexport async function resetPassword(\n auth: Auth,\n request: ResetPasswordRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.RESET_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface UpdateEmailPasswordRequest {\n idToken: string;\n returnSecureToken?: boolean;\n email?: string;\n password?: string;\n}\n\nexport interface UpdateEmailPasswordResponse extends IdTokenResponse {}\n\nexport async function updateEmailPassword(\n auth: Auth,\n request: UpdateEmailPasswordRequest\n): Promise {\n return _performApiRequest<\n UpdateEmailPasswordRequest,\n UpdateEmailPasswordResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface ApplyActionCodeRequest {\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface ApplyActionCodeResponse {}\n\nexport async function applyActionCode(\n auth: Auth,\n request: ApplyActionCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SET_ACCOUNT_INFO,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\n\nexport interface SignInWithPasswordRequest {\n returnSecureToken?: boolean;\n email: string;\n password: string;\n tenantId?: string;\n}\n\nexport interface SignInWithPasswordResponse extends IdTokenResponse {\n email: string;\n displayName: string;\n}\n\nexport async function signInWithPassword(\n auth: Auth,\n request: SignInWithPasswordRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPasswordRequest,\n SignInWithPasswordResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface GetOobCodeRequest {\n email?: string; // Everything except VERIFY_AND_CHANGE_EMAIL\n continueUrl?: string;\n iOSBundleId?: string;\n iosAppStoreId?: string;\n androidPackageName?: string;\n androidInstallApp?: boolean;\n androidMinimumVersionCode?: string;\n canHandleCodeInApp?: boolean;\n dynamicLinkDomain?: string;\n tenantId?: string;\n targetProjectid?: string;\n}\n\nexport interface VerifyEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_EMAIL;\n idToken: IdToken;\n}\n\nexport interface PasswordResetRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.PASSWORD_RESET;\n email: string;\n captchaResp?: string;\n}\n\nexport interface EmailSignInRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.EMAIL_SIGNIN;\n email: string;\n}\n\nexport interface VerifyAndChangeEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n idToken: IdToken;\n newEmail: string;\n}\n\ninterface GetOobCodeResponse {\n email: string;\n}\n\nexport interface VerifyEmailResponse extends GetOobCodeResponse {}\nexport interface PasswordResetResponse extends GetOobCodeResponse {}\nexport interface EmailSignInResponse extends GetOobCodeResponse {}\nexport interface VerifyAndChangeEmailResponse extends GetOobCodeRequest {}\n\nasync function sendOobCode(\n auth: Auth,\n request: GetOobCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_OOB_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function sendEmailVerification(\n auth: Auth,\n request: VerifyEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendPasswordResetEmail(\n auth: Auth,\n request: PasswordResetRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendSignInLinkToEmail(\n auth: Auth,\n request: EmailSignInRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function verifyAndChangeEmail(\n auth: Auth,\n request: VerifyAndChangeEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performSignInRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithEmailLinkRequest {\n email: string;\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface SignInWithEmailLinkResponse extends IdTokenResponse {\n email: string;\n isNewUser: boolean;\n}\n\nexport async function signInWithEmailLink(\n auth: Auth,\n request: SignInWithEmailLinkRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface SignInWithEmailLinkForLinkingRequest\n extends SignInWithEmailLinkRequest {\n idToken: string;\n}\n\nexport async function signInWithEmailLinkForLinking(\n auth: Auth,\n request: SignInWithEmailLinkForLinkingRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkForLinkingRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { updateEmailPassword } from '../../api/account_management/email_and_password';\nimport { signInWithPassword } from '../../api/authentication/email_and_password';\nimport {\n signInWithEmailLink,\n signInWithEmailLinkForLinking\n} from '../../api/authentication/email_link';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\n\n/**\n * Interface that represents the credentials returned by {@link EmailAuthProvider} for\n * {@link ProviderId}.PASSWORD\n *\n * @remarks\n * Covers both {@link SignInMethod}.EMAIL_PASSWORD and\n * {@link SignInMethod}.EMAIL_LINK.\n *\n * @public\n */\nexport class EmailAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n /** @internal */\n readonly _email: string,\n /** @internal */\n readonly _password: string,\n signInMethod: SignInMethod,\n /** @internal */\n readonly _tenantId: string | null = null\n ) {\n super(ProviderId.PASSWORD, signInMethod);\n }\n\n /** @internal */\n static _fromEmailAndPassword(\n email: string,\n password: string\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n password,\n SignInMethod.EMAIL_PASSWORD\n );\n }\n\n /** @internal */\n static _fromEmailAndCode(\n email: string,\n oobCode: string,\n tenantId: string | null = null\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n oobCode,\n SignInMethod.EMAIL_LINK,\n tenantId\n );\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n email: this._email,\n password: this._password,\n signInMethod: this.signInMethod,\n tenantId: this._tenantId\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an {@link AuthCredential}.\n *\n * @param json - Either `object` or the stringified representation of the object. When string is\n * provided, `JSON.parse` would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: object | string): EmailAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n if (obj?.email && obj?.password) {\n if (obj.signInMethod === SignInMethod.EMAIL_PASSWORD) {\n return this._fromEmailAndPassword(obj.email, obj.password);\n } else if (obj.signInMethod === SignInMethod.EMAIL_LINK) {\n return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId);\n }\n }\n return null;\n }\n\n /** @internal */\n async _getIdTokenResponse(auth: AuthInternal): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n return signInWithPassword(auth, {\n returnSecureToken: true,\n email: this._email,\n password: this._password\n });\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLink(auth, {\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n async _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n return updateEmailPassword(auth, {\n idToken,\n returnSecureToken: true,\n email: this._email,\n password: this._password\n });\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLinkForLinking(auth, {\n idToken,\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return this._getIdTokenResponse(auth);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithIdpRequest {\n requestUri: string;\n postBody?: string;\n sessionId?: string;\n tenantId?: string;\n returnSecureToken: boolean;\n returnIdpCredential?: boolean;\n idToken?: IdToken;\n autoCreate?: boolean;\n pendingToken?: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithIdpResponse extends IdTokenResponse {\n oauthAccessToken?: string;\n oauthTokenSecret?: string;\n nonce?: string;\n oauthIdToken?: string;\n pendingToken?: string;\n}\n\nexport async function signInWithIdp(\n auth: Auth,\n request: SignInWithIdpRequest\n): Promise {\n return _performSignInRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_IDP,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\nexport interface OAuthCredentialParams {\n // OAuth 2 uses either id token or access token\n idToken?: string | null;\n accessToken?: string | null;\n\n // These fields are used with OAuth 1\n oauthToken?: string;\n secret?: string;\n oauthTokenSecret?: string;\n\n // Nonce is only set if pendingToken is not present\n nonce?: string;\n pendingToken?: string;\n\n // Utilities\n providerId: string;\n signInMethod: string;\n}\n\n/**\n * Represents the OAuth credentials returned by an {@link OAuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class OAuthCredential extends AuthCredential {\n /**\n * The OAuth ID token associated with the credential if it belongs to an OIDC provider,\n * such as `google.com`.\n * @readonly\n */\n idToken?: string;\n /**\n * The OAuth access token associated with the credential if it belongs to an\n * {@link OAuthProvider}, such as `facebook.com`, `twitter.com`, etc.\n * @readonly\n */\n accessToken?: string;\n /**\n * The OAuth access token secret associated with the credential if it belongs to an OAuth 1.0\n * provider, such as `twitter.com`.\n * @readonly\n */\n secret?: string;\n\n private nonce?: string;\n private pendingToken: string | null = null;\n\n /** @internal */\n static _fromParams(params: OAuthCredentialParams): OAuthCredential {\n const cred = new OAuthCredential(params.providerId, params.signInMethod);\n\n if (params.idToken || params.accessToken) {\n // OAuth 2 and either ID token or access token.\n if (params.idToken) {\n cred.idToken = params.idToken;\n }\n\n if (params.accessToken) {\n cred.accessToken = params.accessToken;\n }\n\n // Add nonce if available and no pendingToken is present.\n if (params.nonce && !params.pendingToken) {\n cred.nonce = params.nonce;\n }\n\n if (params.pendingToken) {\n cred.pendingToken = params.pendingToken;\n }\n } else if (params.oauthToken && params.oauthTokenSecret) {\n // OAuth 1 and OAuth token with token secret\n cred.accessToken = params.oauthToken;\n cred.secret = params.oauthTokenSecret;\n } else {\n _fail(AuthErrorCode.ARGUMENT_ERROR);\n }\n\n return cred;\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n idToken: this.idToken,\n accessToken: this.accessToken,\n secret: this.secret,\n nonce: this.nonce,\n pendingToken: this.pendingToken,\n providerId: this.providerId,\n signInMethod: this.signInMethod\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): OAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, ...rest }: OAuthCredentialParams = obj;\n if (!providerId || !signInMethod) {\n return null;\n }\n\n const cred = new OAuthCredential(providerId, signInMethod);\n cred.idToken = rest.idToken || undefined;\n cred.accessToken = rest.accessToken || undefined;\n cred.secret = rest.secret;\n cred.nonce = rest.nonce;\n cred.pendingToken = rest.pendingToken || null;\n return cred;\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true\n };\n\n if (this.pendingToken) {\n request.pendingToken = this.pendingToken;\n } else {\n const postBody: Record = {};\n if (this.idToken) {\n postBody['id_token'] = this.idToken;\n }\n if (this.accessToken) {\n postBody['access_token'] = this.accessToken;\n }\n if (this.secret) {\n postBody['oauth_token_secret'] = this.secret;\n }\n\n postBody['providerId'] = this.providerId;\n if (this.nonce && !this.pendingToken) {\n postBody['nonce'] = this.nonce;\n }\n\n request.postBody = querystring(postBody);\n }\n\n return request;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _makeTaggedError,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { AuthErrorCode } from '../../core/errors';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { ServerError, ServerErrorMap } from '../errors';\nimport { Auth } from '../../model/public_types';\n\nexport interface SendPhoneVerificationCodeRequest {\n phoneNumber: string;\n recaptchaToken: string;\n tenantId?: string;\n}\n\nexport interface SendPhoneVerificationCodeResponse {\n sessionInfo: string;\n}\n\nexport async function sendPhoneVerificationCode(\n auth: Auth,\n request: SendPhoneVerificationCodeRequest\n): Promise {\n return _performApiRequest<\n SendPhoneVerificationCodeRequest,\n SendPhoneVerificationCodeResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_VERIFICATION_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberRequest {\n temporaryProof?: string;\n phoneNumber?: string;\n sessionInfo?: string;\n code?: string;\n tenantId?: string;\n}\n\nexport interface LinkWithPhoneNumberRequest\n extends SignInWithPhoneNumberRequest {\n idToken: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberResponse extends IdTokenResponse {\n temporaryProof?: string;\n phoneNumber?: string;\n}\n\nexport async function signInWithPhoneNumber(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function linkWithPhoneNumber(\n auth: Auth,\n request: LinkWithPhoneNumberRequest\n): Promise {\n const response = await _performSignInRequest<\n LinkWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n if (response.temporaryProof) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, response);\n }\n return response;\n}\n\ninterface VerifyPhoneNumberForExistingRequest\n extends SignInWithPhoneNumberRequest {\n operation: 'REAUTH';\n}\n\nconst VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_: Partial<\n ServerErrorMap\n> = {\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.USER_DELETED\n};\n\nexport async function verifyPhoneNumberForExisting(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n const apiRequest: VerifyPhoneNumberForExistingRequest = {\n ...request,\n operation: 'REAUTH'\n };\n return _performSignInRequest<\n VerifyPhoneNumberForExistingRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, apiRequest),\n VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport {\n linkWithPhoneNumber,\n signInWithPhoneNumber,\n SignInWithPhoneNumberRequest,\n verifyPhoneNumberForExisting\n} from '../../api/authentication/sms';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nexport interface PhoneAuthCredentialParameters {\n verificationId?: string;\n verificationCode?: string;\n phoneNumber?: string;\n temporaryProof?: string;\n}\n\n/**\n * Represents the credentials returned by {@link PhoneAuthProvider}.\n *\n * @public\n */\nexport class PhoneAuthCredential extends AuthCredential {\n private constructor(private readonly params: PhoneAuthCredentialParameters) {\n super(ProviderId.PHONE, SignInMethod.PHONE);\n }\n\n /** @internal */\n static _fromVerification(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ verificationId, verificationCode });\n }\n\n /** @internal */\n static _fromTokenResponse(\n phoneNumber: string,\n temporaryProof: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ phoneNumber, temporaryProof });\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithPhoneNumber(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return linkWithPhoneNumber(auth, {\n idToken,\n ...this._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return verifyPhoneNumberForExisting(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _makeVerificationRequest(): SignInWithPhoneNumberRequest {\n const { temporaryProof, phoneNumber, verificationId, verificationCode } =\n this.params;\n if (temporaryProof && phoneNumber) {\n return { temporaryProof, phoneNumber };\n }\n\n return {\n sessionInfo: verificationId,\n code: verificationCode\n };\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n const obj: Record = {\n providerId: this.providerId\n };\n if (this.params.phoneNumber) {\n obj.phoneNumber = this.params.phoneNumber;\n }\n if (this.params.temporaryProof) {\n obj.temporaryProof = this.params.temporaryProof;\n }\n if (this.params.verificationCode) {\n obj.verificationCode = this.params.verificationCode;\n }\n if (this.params.verificationId) {\n obj.verificationId = this.params.verificationId;\n }\n\n return obj;\n }\n\n /** Generates a phone credential based on a plain object or a JSON string. */\n static fromJSON(json: object | string): PhoneAuthCredential | null {\n if (typeof json === 'string') {\n json = JSON.parse(json);\n }\n\n const { verificationId, verificationCode, phoneNumber, temporaryProof } =\n json as { [key: string]: string };\n if (\n !verificationCode &&\n !verificationId &&\n !phoneNumber &&\n !temporaryProof\n ) {\n return null;\n }\n\n return new PhoneAuthCredential({\n verificationId,\n verificationCode,\n phoneNumber,\n temporaryProof\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { extractQuerystring, querystringDecode } from '@firebase/util';\nimport { ActionCodeOperation } from '../model/public_types';\nimport { AuthErrorCode } from './errors';\nimport { _assert } from './util/assert';\n\n/**\n * Enums for fields in URL query string.\n *\n * @enum {string}\n */\nconst enum QueryField {\n API_KEY = 'apiKey',\n CODE = 'oobCode',\n CONTINUE_URL = 'continueUrl',\n LANGUAGE_CODE = 'languageCode',\n MODE = 'mode',\n TENANT_ID = 'tenantId'\n}\n\n/**\n * Maps the mode string in action code URL to Action Code Info operation.\n *\n * @param mode\n */\nfunction parseMode(mode: string | null): ActionCodeOperation | null {\n switch (mode) {\n case 'recoverEmail':\n return ActionCodeOperation.RECOVER_EMAIL;\n case 'resetPassword':\n return ActionCodeOperation.PASSWORD_RESET;\n case 'signIn':\n return ActionCodeOperation.EMAIL_SIGNIN;\n case 'verifyEmail':\n return ActionCodeOperation.VERIFY_EMAIL;\n case 'verifyAndChangeEmail':\n return ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n case 'revertSecondFactorAddition':\n return ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION;\n default:\n return null;\n }\n}\n\n/**\n * Helper to parse FDL links\n *\n * @param url\n */\nfunction parseDeepLink(url: string): string {\n const link = querystringDecode(extractQuerystring(url))['link'];\n\n // Double link case (automatic redirect).\n const doubleDeepLink = link\n ? querystringDecode(extractQuerystring(link))['deep_link_id']\n : null;\n // iOS custom scheme links.\n const iOSDeepLink = querystringDecode(extractQuerystring(url))[\n 'deep_link_id'\n ];\n const iOSDoubleDeepLink = iOSDeepLink\n ? querystringDecode(extractQuerystring(iOSDeepLink))['link']\n : null;\n return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url;\n}\n\n/**\n * A utility class to parse email action URLs such as password reset, email verification,\n * email link sign in, etc.\n *\n * @public\n */\nexport class ActionCodeURL {\n /**\n * The API key of the email action link.\n */\n readonly apiKey: string;\n /**\n * The action code of the email action link.\n */\n readonly code: string;\n /**\n * The continue URL of the email action link. Null if not provided.\n */\n readonly continueUrl: string | null;\n /**\n * The language code of the email action link. Null if not provided.\n */\n readonly languageCode: string | null;\n /**\n * The action performed by the email action link. It returns from one of the types from\n * {@link ActionCodeInfo}\n */\n readonly operation: string;\n /**\n * The tenant ID of the email action link. Null if the email action is from the parent project.\n */\n readonly tenantId: string | null;\n\n /**\n * @param actionLink - The link from which to extract the URL.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @internal\n */\n constructor(actionLink: string) {\n const searchParams = querystringDecode(extractQuerystring(actionLink));\n const apiKey = searchParams[QueryField.API_KEY] ?? null;\n const code = searchParams[QueryField.CODE] ?? null;\n const operation = parseMode(searchParams[QueryField.MODE] ?? null);\n // Validate API key, code and mode.\n _assert(apiKey && code && operation, AuthErrorCode.ARGUMENT_ERROR);\n this.apiKey = apiKey;\n this.operation = operation;\n this.code = code;\n this.continueUrl = searchParams[QueryField.CONTINUE_URL] ?? null;\n this.languageCode = searchParams[QueryField.LANGUAGE_CODE] ?? null;\n this.tenantId = searchParams[QueryField.TENANT_ID] ?? null;\n }\n\n /**\n * Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,\n * otherwise returns null.\n *\n * @param link - The email action link string.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @public\n */\n static parseLink(link: string): ActionCodeURL | null {\n const actionLink = parseDeepLink(link);\n try {\n return new ActionCodeURL(actionLink);\n } catch {\n return null;\n }\n }\n}\n\n/**\n * Parses the email action link string and returns an {@link ActionCodeURL} if\n * the link is valid, otherwise returns null.\n *\n * @public\n */\nexport function parseActionCodeURL(link: string): ActionCodeURL | null {\n return ActionCodeURL.parseLink(link);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\nimport { AuthProvider } from '../../model/public_types';\n\nimport { ActionCodeURL } from '../action_code_url';\nimport { EmailAuthCredential } from '../credentials/email';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\n\n/**\n * Provider for generating {@link EmailAuthCredential}.\n *\n * @public\n */\nexport class EmailAuthProvider implements AuthProvider {\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n static readonly PROVIDER_ID: 'password' = ProviderId.PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_PASSWORD.\n */\n static readonly EMAIL_PASSWORD_SIGN_IN_METHOD: 'password' =\n SignInMethod.EMAIL_PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_LINK.\n */\n static readonly EMAIL_LINK_SIGN_IN_METHOD: 'emailLink' =\n SignInMethod.EMAIL_LINK;\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n readonly providerId = EmailAuthProvider.PROVIDER_ID;\n\n /**\n * Initialize an {@link AuthCredential} using an email and password.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credential(email, password);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * const userCredential = await signInWithEmailAndPassword(auth, email, password);\n * ```\n *\n * @param email - Email address.\n * @param password - User account password.\n * @returns The auth provider credential.\n */\n static credential(email: string, password: string): EmailAuthCredential {\n return EmailAuthCredential._fromEmailAndPassword(email, password);\n }\n\n /**\n * Initialize an {@link AuthCredential} using an email and an email link after a sign in with\n * email link operation.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credentialWithLink(auth, email, emailLink);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * await sendSignInLinkToEmail(auth, email);\n * // Obtain emailLink from user.\n * const userCredential = await signInWithEmailLink(auth, email, emailLink);\n * ```\n *\n * @param auth - The {@link Auth} instance used to verify the link.\n * @param email - Email address.\n * @param emailLink - Sign-in email link.\n * @returns - The auth provider credential.\n */\n static credentialWithLink(\n email: string,\n emailLink: string\n ): EmailAuthCredential {\n const actionCodeUrl = ActionCodeURL.parseLink(emailLink);\n _assert(actionCodeUrl, AuthErrorCode.ARGUMENT_ERROR);\n\n return EmailAuthCredential._fromEmailAndCode(\n email,\n actionCodeUrl.code,\n actionCodeUrl.tenantId\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider } from '../../model/public_types';\n\n/**\n * Map of OAuth Custom Parameters.\n *\n * @public\n */\nexport type CustomParameters = Record;\n\n/**\n * The base class for all Federated providers (OAuth (including OIDC), SAML).\n *\n * This class is not meant to be instantiated directly.\n *\n * @public\n */\nexport abstract class FederatedAuthProvider implements AuthProvider {\n /** @internal */\n defaultLanguageCode: string | null = null;\n /** @internal */\n private customParameters: CustomParameters = {};\n\n /**\n * Constructor for generic OAuth providers.\n *\n * @param providerId - Provider for which credentials should be generated.\n */\n constructor(readonly providerId: string) {}\n\n /**\n * Set the language gode.\n *\n * @param languageCode - language code\n */\n setDefaultLanguage(languageCode: string | null): void {\n this.defaultLanguageCode = languageCode;\n }\n\n /**\n * Sets the OAuth custom parameters to pass in an OAuth request for popup and redirect sign-in\n * operations.\n *\n * @remarks\n * For a detailed list, check the reserved required OAuth 2.0 parameters such as `client_id`,\n * `redirect_uri`, `scope`, `response_type`, and `state` are not allowed and will be ignored.\n *\n * @param customOAuthParameters - The custom OAuth parameters to pass in the OAuth request.\n */\n setCustomParameters(customOAuthParameters: CustomParameters): AuthProvider {\n this.customParameters = customOAuthParameters;\n return this;\n }\n\n /**\n * Retrieve the current list of {@link CustomParameters}.\n */\n getCustomParameters(): CustomParameters {\n return this.customParameters;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, UserCredential } from '../../model/public_types';\n\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\nimport { OAuthCredential, OAuthCredentialParams } from '../credentials/oauth';\nimport { UserCredentialInternal } from '../../model/user';\nimport { FirebaseError } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { SignInWithIdpResponse } from '../../../internal';\nimport { FederatedAuthProvider } from './federated';\n\n/**\n * Defines the options for initializing an {@link OAuthCredential}.\n *\n * @remarks\n * For ID tokens with nonce claim, the raw nonce has to also be provided.\n *\n * @public\n */\nexport interface OAuthCredentialOptions {\n /**\n * The OAuth ID token used to initialize the {@link OAuthCredential}.\n */\n idToken?: string;\n /**\n * The OAuth access token used to initialize the {@link OAuthCredential}.\n */\n accessToken?: string;\n /**\n * The raw nonce associated with the ID token.\n *\n * @remarks\n * It is required when an ID token with a nonce field is provided. The SHA-256 hash of the\n * raw nonce must match the nonce field in the ID token.\n */\n rawNonce?: string;\n}\n\n/**\n * Common code to all OAuth providers. This is separate from the\n * {@link OAuthProvider} so that child providers (like\n * {@link GoogleAuthProvider}) don't inherit the `credential` instance method.\n * Instead, they rely on a static `credential` method.\n */\nexport abstract class BaseOAuthProvider\n extends FederatedAuthProvider\n implements AuthProvider\n{\n /** @internal */\n private scopes: string[] = [];\n\n /**\n * Add an OAuth scope to the credential.\n *\n * @param scope - Provider OAuth scope to add.\n */\n addScope(scope: string): AuthProvider {\n // If not already added, add scope to list.\n if (!this.scopes.includes(scope)) {\n this.scopes.push(scope);\n }\n return this;\n }\n\n /**\n * Retrieve the current list of OAuth scopes.\n */\n getScopes(): string[] {\n return [...this.scopes];\n }\n}\n\n/**\n * Provider for generating generic {@link OAuthCredential}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new OAuthProvider('google.com');\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new OAuthProvider('google.com');\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class OAuthProvider extends BaseOAuthProvider {\n /**\n * Creates an {@link OAuthCredential} from a JSON string or a plain object.\n * @param json - A plain object or a JSON string\n */\n static credentialFromJSON(json: object | string): OAuthCredential {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n _assert(\n 'providerId' in obj && 'signInMethod' in obj,\n AuthErrorCode.ARGUMENT_ERROR\n );\n return OAuthCredential._fromParams(obj);\n }\n\n /**\n * Creates a {@link OAuthCredential} from a generic OAuth provider's access token or ID token.\n *\n * @remarks\n * The raw nonce is required when an ID token with a nonce field is provided. The SHA-256 hash of\n * the raw nonce must match the nonce field in the ID token.\n *\n * @example\n * ```javascript\n * // `googleUser` from the onsuccess Google Sign In callback.\n * // Initialize a generate OAuth provider with a `google.com` providerId.\n * const provider = new OAuthProvider('google.com');\n * const credential = provider.credential({\n * idToken: googleUser.getAuthResponse().id_token,\n * });\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param params - Either the options object containing the ID token, access token and raw nonce\n * or the ID token string.\n */\n credential(params: OAuthCredentialOptions): OAuthCredential {\n return this._credential({ ...params, nonce: params.rawNonce });\n }\n\n /** An internal credential method that accepts more permissive options */\n private _credential(\n params: Omit\n ): OAuthCredential {\n _assert(params.idToken || params.accessToken, AuthErrorCode.ARGUMENT_ERROR);\n // For OAuthCredential, sign in method is same as providerId.\n return OAuthCredential._fromParams({\n ...params,\n providerId: this.providerId,\n signInMethod: this.providerId\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static oauthCredentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const {\n oauthIdToken,\n oauthAccessToken,\n oauthTokenSecret,\n pendingToken,\n nonce,\n providerId\n } = tokenResponse as SignInWithIdpResponse;\n if (\n !oauthAccessToken &&\n !oauthTokenSecret &&\n !oauthIdToken &&\n !pendingToken\n ) {\n return null;\n }\n\n if (!providerId) {\n return null;\n }\n\n try {\n return new OAuthProvider(providerId)._credential({\n idToken: oauthIdToken,\n accessToken: oauthAccessToken,\n nonce,\n pendingToken\n });\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.FACEBOOK.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('user_birthday');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * provider.addScope('user_birthday');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class FacebookAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.FACEBOOK. */\n static readonly FACEBOOK_SIGN_IN_METHOD: 'facebook.com' =\n SignInMethod.FACEBOOK;\n /** Always set to {@link ProviderId}.FACEBOOK. */\n static readonly PROVIDER_ID: 'facebook.com' = ProviderId.FACEBOOK;\n\n constructor() {\n super(ProviderId.FACEBOOK);\n }\n\n /**\n * Creates a credential for Facebook.\n *\n * @example\n * ```javascript\n * // `event` from the Facebook auth.authResponseChange callback.\n * const credential = FacebookAuthProvider.credential(event.authResponse.accessToken);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param accessToken - Facebook access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: FacebookAuthProvider.PROVIDER_ID,\n signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an an {@link OAuthCredential} for {@link ProviderId}.GOOGLE.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GoogleAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GoogleAuthProvider();\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class GoogleAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GOOGLE. */\n static readonly GOOGLE_SIGN_IN_METHOD: 'google.com' = SignInMethod.GOOGLE;\n /** Always set to {@link ProviderId}.GOOGLE. */\n static readonly PROVIDER_ID: 'google.com' = ProviderId.GOOGLE;\n\n constructor() {\n super(ProviderId.GOOGLE);\n this.addScope('profile');\n }\n\n /**\n * Creates a credential for Google. At least one of ID token and access token is required.\n *\n * @example\n * ```javascript\n * // \\`googleUser\\` from the onsuccess Google Sign In callback.\n * const credential = GoogleAuthProvider.credential(googleUser.getAuthResponse().id_token);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param idToken - Google ID token.\n * @param accessToken - Google access token.\n */\n static credential(\n idToken?: string | null,\n accessToken?: string | null\n ): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GoogleAuthProvider.PROVIDER_ID,\n signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD,\n idToken,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const { oauthIdToken, oauthAccessToken } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthIdToken && !oauthAccessToken) {\n // This could be an oauth 1 credential or a phone credential\n return null;\n }\n\n try {\n return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.GITHUB.\n *\n * @remarks\n * GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect directly, or use\n * the {@link signInWithPopup} handler:\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GithubAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('repo');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Github Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GithubAuthProvider();\n * provider.addScope('repo');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Github Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class GithubAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GITHUB. */\n static readonly GITHUB_SIGN_IN_METHOD: 'github.com' = SignInMethod.GITHUB;\n /** Always set to {@link ProviderId}.GITHUB. */\n static readonly PROVIDER_ID: 'github.com' = ProviderId.GITHUB;\n\n constructor() {\n super(ProviderId.GITHUB);\n }\n\n /**\n * Creates a credential for Github.\n *\n * @param accessToken - Github access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GithubAuthProvider.PROVIDER_ID,\n signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents the SAML credentials returned by an {@link SAMLAuthProvider}.\n *\n * @public\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\n/**\n * @public\n */\nexport class SAMLAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n providerId: string,\n private readonly pendingToken: string\n ) {\n super(providerId, providerId);\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n signInMethod: this.signInMethod,\n providerId: this.providerId,\n pendingToken: this.pendingToken\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): SAMLAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, pendingToken }: Record =\n obj;\n if (\n !providerId ||\n !signInMethod ||\n !pendingToken ||\n providerId !== signInMethod\n ) {\n return null;\n }\n\n return new SAMLAuthCredential(providerId, pendingToken);\n }\n\n /**\n * Helper static method to avoid exposing the constructor to end users.\n *\n * @internal\n */\n static _create(providerId: string, pendingToken: string): SAMLAuthCredential {\n return new SAMLAuthCredential(providerId, pendingToken);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n return {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true,\n pendingToken: this.pendingToken\n };\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * Copyright 2020 Twitter LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.TWITTER.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new TwitterAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new TwitterAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * ```\n *\n * @public\n */\nexport class TwitterAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.TWITTER. */\n static readonly TWITTER_SIGN_IN_METHOD: 'twitter.com' = SignInMethod.TWITTER;\n /** Always set to {@link ProviderId}.TWITTER. */\n static readonly PROVIDER_ID: 'twitter.com' = ProviderId.TWITTER;\n\n constructor() {\n super(ProviderId.TWITTER);\n }\n\n /**\n * Creates a credential for Twitter.\n *\n * @param token - Twitter access token.\n * @param secret - Twitter secret.\n */\n static credential(token: string, secret: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: TwitterAuthProvider.PROVIDER_ID,\n signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD,\n oauthToken: token,\n oauthTokenSecret: secret\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { oauthAccessToken, oauthTokenSecret } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthAccessToken || !oauthTokenSecret) {\n return null;\n }\n\n try {\n return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { UserImpl } from './user_impl';\nimport { AuthInternal } from '../../model/auth';\nimport { OperationType, ProviderId } from '../../model/enums';\n\ninterface UserCredentialParams {\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse?: PhoneOrOauthTokenResponse;\n readonly operationType: OperationType;\n}\n\nexport class UserCredentialImpl\n implements UserCredentialInternal, UserCredentialParams\n{\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse: PhoneOrOauthTokenResponse | undefined;\n readonly operationType: OperationType;\n\n constructor(params: UserCredentialParams) {\n this.user = params.user;\n this.providerId = params.providerId;\n this._tokenResponse = params._tokenResponse;\n this.operationType = params.operationType;\n }\n\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n operationType: OperationType,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const user = await UserImpl._fromIdTokenResponse(\n auth,\n idTokenResponse,\n isAnonymous\n );\n const providerId = providerIdForResponse(idTokenResponse);\n const userCred = new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: idTokenResponse,\n operationType\n });\n return userCred;\n }\n\n static async _forOperation(\n user: UserInternal,\n operationType: OperationType,\n response: PhoneOrOauthTokenResponse\n ): Promise {\n await user._updateTokensIfNecessary(response, /* reload */ true);\n const providerId = providerIdForResponse(response);\n return new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: response,\n operationType\n });\n }\n}\n\nfunction providerIdForResponse(\n response: IdTokenResponse\n): ProviderId | string | null {\n if (response.providerId) {\n return response.providerId;\n }\n\n if ('phoneNumber' in response) {\n return ProviderId.PHONE;\n }\n\n return null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MultiFactorError as MultiFactorErrorPublic } from '../model/public_types';\nimport { FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../model/auth';\nimport { IdTokenResponse } from '../model/id_token';\nimport { AuthErrorCode } from '../core/errors';\nimport { UserInternal } from '../model/user';\nimport { AuthCredential } from '../core/credentials';\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { OperationType } from '../model/enums';\n\nexport type MultiFactorErrorData = MultiFactorErrorPublic['customData'] & {\n _serverResponse: IdTokenMfaResponse;\n};\n\nexport class MultiFactorError\n extends FirebaseError\n implements MultiFactorErrorPublic\n{\n readonly customData: MultiFactorErrorData;\n\n private constructor(\n auth: AuthInternal,\n error: FirebaseError,\n readonly operationType: OperationType,\n readonly user?: UserInternal\n ) {\n super(error.code, error.message);\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, MultiFactorError.prototype);\n this.customData = {\n appName: auth.name,\n tenantId: auth.tenantId ?? undefined,\n _serverResponse: error.customData!._serverResponse as IdTokenMfaResponse,\n operationType\n };\n }\n\n static _fromErrorAndOperation(\n auth: AuthInternal,\n error: FirebaseError,\n operationType: OperationType,\n user?: UserInternal\n ): MultiFactorError {\n return new MultiFactorError(auth, error, operationType, user);\n }\n}\n\nexport function _processCredentialSavingMfaContextIfNecessary(\n auth: AuthInternal,\n operationType: OperationType,\n credential: AuthCredential,\n user?: UserInternal\n): Promise {\n const idTokenProvider =\n operationType === OperationType.REAUTHENTICATE\n ? credential._getReauthenticationResolver(auth)\n : credential._getIdTokenResponse(auth);\n\n return idTokenProvider.catch(error => {\n if (error.code === `auth/${AuthErrorCode.MFA_REQUIRED}`) {\n throw MultiFactorError._fromErrorAndOperation(\n auth,\n error,\n operationType,\n user\n );\n }\n\n throw error;\n });\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User } from '../../model/public_types';\n\nimport { deleteLinkedAccounts } from '../../api/account_management/account';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { providerDataAsNames } from '../util/providers';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { _reloadWithoutSaving } from './reload';\nimport { UserCredentialImpl } from './user_credential_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType, ProviderId } from '../../model/enums';\n\n/**\n * Unlinks a provider from a user account.\n *\n * @param user - The user.\n * @param providerId - The provider to unlink.\n *\n * @public\n */\nexport async function unlink(user: User, providerId: string): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(true, userInternal, providerId);\n const { providerUserInfo } = await deleteLinkedAccounts(userInternal.auth, {\n idToken: await userInternal.getIdToken(),\n deleteProvider: [providerId]\n });\n\n const providersLeft = providerDataAsNames(providerUserInfo || []);\n\n userInternal.providerData = userInternal.providerData.filter(pd =>\n providersLeft.has(pd.providerId)\n );\n if (!providersLeft.has(ProviderId.PHONE)) {\n userInternal.phoneNumber = null;\n }\n\n await userInternal.auth._persistUserIfCurrent(userInternal);\n return userInternal;\n}\n\nexport async function _link(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const response = await _logoutIfInvalidated(\n user,\n credential._linkToIdToken(user.auth, await user.getIdToken()),\n bypassAuthState\n );\n return UserCredentialImpl._forOperation(user, OperationType.LINK, response);\n}\n\nexport async function _assertLinkedStatus(\n expected: boolean,\n user: UserInternal,\n provider: string\n): Promise {\n await _reloadWithoutSaving(user);\n const providerIds = providerDataAsNames(user.providerData);\n\n const code =\n expected === false\n ? AuthErrorCode.PROVIDER_ALREADY_LINKED\n : AuthErrorCode.NO_SUCH_PROVIDER;\n _assert(providerIds.has(provider) === expected, user.auth, code);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { OperationType } from '../../model/enums';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert, _fail } from '../util/assert';\nimport { _parseToken } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserCredentialImpl } from './user_credential_impl';\n\nexport async function _reauthenticate(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const { auth } = user;\n const operationType = OperationType.REAUTHENTICATE;\n\n try {\n const response = await _logoutIfInvalidated(\n user,\n _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential,\n user\n ),\n bypassAuthState\n );\n _assert(response.idToken, auth, AuthErrorCode.INTERNAL_ERROR);\n const parsed = _parseToken(response.idToken);\n _assert(parsed, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const { sub: localId } = parsed;\n _assert(user.uid === localId, auth, AuthErrorCode.USER_MISMATCH);\n\n return UserCredentialImpl._forOperation(user, operationType, response);\n } catch (e) {\n // Convert user deleted error into user mismatch\n if ((e as FirebaseError)?.code === `auth/${AuthErrorCode.USER_DELETED}`) {\n _fail(auth, AuthErrorCode.USER_MISMATCH);\n }\n throw e;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential, Auth, User } from '../../model/public_types';\n\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _assertLinkedStatus, _link } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\n\nexport async function _signInWithCredential(\n auth: AuthInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const operationType = OperationType.SIGN_IN;\n const response = await _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential\n );\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n auth,\n operationType,\n response\n );\n\n if (!bypassAuthState) {\n await auth._updateCurrentUser(userCredential.user);\n }\n return userCredential;\n}\n\n/**\n * Asynchronously signs in with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param auth - The {@link Auth} instance.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function signInWithCredential(\n auth: Auth,\n credential: AuthCredential\n): Promise {\n return _signInWithCredential(_castAuth(auth), credential);\n}\n\n/**\n * Links the user account with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function linkWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n\n await _assertLinkedStatus(false, userInternal, credential.providerId);\n\n return _link(userInternal, credential);\n}\n\n/**\n * Re-authenticates a user using a fresh credential.\n *\n * @remarks\n * Use before operations such as {@link updatePassword} that require tokens from recent sign-in\n * attempts. This method can be used to recover from a `CREDENTIAL_TOO_OLD_LOGIN_AGAIN` error.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function reauthenticateWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n return _reauthenticate(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { SignInWithPhoneNumberRequest } from '../authentication/sms';\nimport { FinalizeMfaResponse } from '../authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\n\n/**\n * MFA Info as returned by the API\n */\ninterface BaseMfaEnrollment {\n mfaEnrollmentId: string;\n enrolledAt: number;\n displayName?: string;\n}\n\n/**\n * An MFA provided by SMS verification\n */\nexport interface PhoneMfaEnrollment extends BaseMfaEnrollment {\n phoneInfo: string;\n}\n\n/**\n * MfaEnrollment can be any subtype of BaseMfaEnrollment, currently only PhoneMfaEnrollment is supported\n */\nexport type MfaEnrollment = PhoneMfaEnrollment;\n\nexport interface StartPhoneMfaEnrollmentRequest {\n idToken: string;\n phoneEnrollmentInfo: {\n phoneNumber: string;\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaEnrollmentResponse {\n phoneSessionInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startEnrollPhoneMfa(\n auth: AuthInternal,\n request: StartPhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaEnrollmentRequest,\n StartPhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaEnrollmentRequest {\n idToken: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizePhoneMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollPhoneMfa(\n auth: AuthInternal,\n request: FinalizePhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaEnrollmentRequest,\n FinalizePhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface WithdrawMfaRequest {\n idToken: string;\n mfaEnrollmentId: string;\n tenantId?: string;\n}\n\nexport interface WithdrawMfaResponse extends FinalizeMfaResponse {}\n\nexport function withdrawMfa(\n auth: AuthInternal,\n request: WithdrawMfaRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.WITHDRAW_MFA,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n MultiFactorAssertion,\n MultiFactorInfo,\n MultiFactorSession,\n MultiFactorUser,\n User\n} from '../model/public_types';\n\nimport { withdrawMfa } from '../api/account_management/mfa';\nimport { AuthErrorCode } from '../core/errors';\nimport { _logoutIfInvalidated } from '../core/user/invalidation';\nimport { UserInternal } from '../model/user';\nimport { MultiFactorAssertionImpl } from './mfa_assertion';\nimport { MultiFactorInfoImpl } from './mfa_info';\nimport { MultiFactorSessionImpl } from './mfa_session';\nimport { FirebaseError, getModularInstance } from '@firebase/util';\n\nexport class MultiFactorUserImpl implements MultiFactorUser {\n enrolledFactors: MultiFactorInfo[] = [];\n\n private constructor(readonly user: UserInternal) {\n user._onReload(userInfo => {\n if (userInfo.mfaInfo) {\n this.enrolledFactors = userInfo.mfaInfo.map(enrollment =>\n MultiFactorInfoImpl._fromServerResponse(user.auth, enrollment)\n );\n }\n });\n }\n\n static _fromUser(user: UserInternal): MultiFactorUserImpl {\n return new MultiFactorUserImpl(user);\n }\n\n async getSession(): Promise {\n return MultiFactorSessionImpl._fromIdtoken(\n await this.user.getIdToken(),\n this.user.auth\n );\n }\n\n async enroll(\n assertionExtern: MultiFactorAssertion,\n displayName?: string | null\n ): Promise {\n const assertion = assertionExtern as MultiFactorAssertionImpl;\n const session = (await this.getSession()) as MultiFactorSessionImpl;\n const finalizeMfaResponse = await _logoutIfInvalidated(\n this.user,\n assertion._process(this.user.auth, session, displayName)\n );\n // New tokens will be issued after enrollment of the new second factors.\n // They need to be updated on the user.\n await this.user._updateTokensIfNecessary(finalizeMfaResponse);\n // The user needs to be reloaded to get the new multi-factor information\n // from server. USER_RELOADED event will be triggered and `enrolledFactors`\n // will be updated.\n return this.user.reload();\n }\n\n async unenroll(infoOrUid: MultiFactorInfo | string): Promise {\n const mfaEnrollmentId =\n typeof infoOrUid === 'string' ? infoOrUid : infoOrUid.uid;\n const idToken = await this.user.getIdToken();\n const idTokenResponse = await _logoutIfInvalidated(\n this.user,\n withdrawMfa(this.user.auth, {\n idToken,\n mfaEnrollmentId\n })\n );\n // Remove the second factor from the user's list.\n this.enrolledFactors = this.enrolledFactors.filter(\n ({ uid }) => uid !== mfaEnrollmentId\n );\n // Depending on whether the backend decided to revoke the user's session,\n // the tokenResponse may be empty. If the tokens were not updated (and they\n // are now invalid), reloading the user will discover this and invalidate\n // the user's state accordingly.\n await this.user._updateTokensIfNecessary(idTokenResponse);\n try {\n await this.user.reload();\n } catch (e) {\n if (\n (e as FirebaseError)?.code !== `auth/${AuthErrorCode.TOKEN_EXPIRED}`\n ) {\n throw e;\n }\n }\n }\n}\n\nconst multiFactorUserCache = new WeakMap();\n\n/**\n * The {@link MultiFactorUser} corresponding to the user.\n *\n * @remarks\n * This is used to access all multi-factor properties and operations related to the user.\n *\n * @param user - The user.\n *\n * @public\n */\nexport function multiFactor(user: User): MultiFactorUser {\n const userModular = getModularInstance(user);\n if (!multiFactorUserCache.has(userModular)) {\n multiFactorUserCache.set(\n userModular,\n MultiFactorUserImpl._fromUser(userModular as UserInternal)\n );\n }\n return multiFactorUserCache.get(userModular)!;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Persistence } from '../../model/public_types';\n\nexport const enum PersistenceType {\n SESSION = 'SESSION',\n LOCAL = 'LOCAL',\n NONE = 'NONE'\n}\n\nexport type PersistedBlob = Record;\n\nexport interface Instantiator {\n (blob: PersistedBlob): T;\n}\n\nexport type PersistenceValue = PersistedBlob | string;\n\nexport const STORAGE_AVAILABLE_KEY = '__sak';\n\nexport interface StorageEventListener {\n (value: PersistenceValue | null): void;\n}\n\nexport interface PersistenceInternal extends Persistence {\n type: PersistenceType;\n _isAvailable(): Promise;\n _set(key: string, value: PersistenceValue): Promise;\n _get(key: string): Promise;\n _remove(key: string): Promise;\n _addListener(key: string, listener: StorageEventListener): void;\n _removeListener(key: string, listener: StorageEventListener): void;\n // Should this persistence allow migration up the chosen hierarchy?\n _shouldAllowMigration?: boolean;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n PersistenceValue,\n STORAGE_AVAILABLE_KEY,\n PersistenceType\n} from '../../core/persistence';\n\n// There are two different browser persistence types: local and session.\n// Both have the same implementation but use a different underlying storage\n// object.\n\nexport abstract class BrowserPersistenceClass {\n protected constructor(\n protected readonly storageRetriever: () => Storage,\n readonly type: PersistenceType\n ) {}\n\n _isAvailable(): Promise {\n try {\n if (!this.storage) {\n return Promise.resolve(false);\n }\n this.storage.setItem(STORAGE_AVAILABLE_KEY, '1');\n this.storage.removeItem(STORAGE_AVAILABLE_KEY);\n return Promise.resolve(true);\n } catch {\n return Promise.resolve(false);\n }\n }\n\n _set(key: string, value: PersistenceValue): Promise {\n this.storage.setItem(key, JSON.stringify(value));\n return Promise.resolve();\n }\n\n _get(key: string): Promise {\n const json = this.storage.getItem(key);\n return Promise.resolve(json ? JSON.parse(json) : null);\n }\n\n _remove(key: string): Promise {\n this.storage.removeItem(key);\n return Promise.resolve();\n }\n\n protected get storage(): Storage {\n return this.storageRetriever();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport { getUA } from '@firebase/util';\nimport {\n _isSafari,\n _isIOS,\n _isIframe,\n _isMobileBrowser,\n _isIE10\n} from '../../core/util/browser';\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nfunction _iframeCannotSyncWebStorage(): boolean {\n const ua = getUA();\n return _isSafari(ua) || _isIOS(ua);\n}\n\n// The polling period in case events are not supported\nexport const _POLLING_INTERVAL_MS = 1000;\n\n// The IE 10 localStorage cross tab synchronization delay in milliseconds\nconst IE10_LOCAL_STORAGE_SYNC_DELAY = 10;\n\nclass BrowserLocalPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'LOCAL' = 'LOCAL';\n\n constructor() {\n super(() => window.localStorage, PersistenceType.LOCAL);\n }\n\n private readonly boundEventHandler = (\n event: StorageEvent,\n poll?: boolean\n ): void => this.onStorageEvent(event, poll);\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n\n // Safari or iOS browser and embedded in an iframe.\n private readonly safariLocalStorageNotSynced =\n _iframeCannotSyncWebStorage() && _isIframe();\n // Whether to use polling instead of depending on window events\n private readonly fallbackToPolling = _isMobileBrowser();\n readonly _shouldAllowMigration = true;\n\n private forAllChangedKeys(\n cb: (key: string, oldValue: string | null, newValue: string | null) => void\n ): void {\n // Check all keys with listeners on them.\n for (const key of Object.keys(this.listeners)) {\n // Get value from localStorage.\n const newValue = this.storage.getItem(key);\n const oldValue = this.localCache[key];\n // If local map value does not match, trigger listener with storage event.\n // Differentiate this simulated event from the real storage event.\n if (newValue !== oldValue) {\n cb(key, oldValue, newValue);\n }\n }\n }\n\n private onStorageEvent(event: StorageEvent, poll = false): void {\n // Key would be null in some situations, like when localStorage is cleared\n if (!event.key) {\n this.forAllChangedKeys(\n (key: string, _oldValue: string | null, newValue: string | null) => {\n this.notifyListeners(key, newValue);\n }\n );\n return;\n }\n\n const key = event.key;\n\n // Check the mechanism how this event was detected.\n // The first event will dictate the mechanism to be used.\n if (poll) {\n // Environment detects storage changes via polling.\n // Remove storage event listener to prevent possible event duplication.\n this.detachListener();\n } else {\n // Environment detects storage changes via storage event listener.\n // Remove polling listener to prevent possible event duplication.\n this.stopPolling();\n }\n\n // Safari embedded iframe. Storage event will trigger with the delta\n // changes but no changes will be applied to the iframe localStorage.\n if (this.safariLocalStorageNotSynced) {\n // Get current iframe page value.\n const storedValue = this.storage.getItem(key);\n // Value not synchronized, synchronize manually.\n if (event.newValue !== storedValue) {\n if (event.newValue !== null) {\n // Value changed from current value.\n this.storage.setItem(key, event.newValue);\n } else {\n // Current value deleted.\n this.storage.removeItem(key);\n }\n } else if (this.localCache[key] === event.newValue && !poll) {\n // Already detected and processed, do not trigger listeners again.\n return;\n }\n }\n\n const triggerListeners = (): void => {\n // Keep local map up to date in case storage event is triggered before\n // poll.\n const storedValue = this.storage.getItem(key);\n if (!poll && this.localCache[key] === storedValue) {\n // Real storage event which has already been detected, do nothing.\n // This seems to trigger in some IE browsers for some reason.\n return;\n }\n this.notifyListeners(key, storedValue);\n };\n\n const storedValue = this.storage.getItem(key);\n if (\n _isIE10() &&\n storedValue !== event.newValue &&\n event.newValue !== event.oldValue\n ) {\n // IE 10 has this weird bug where a storage event would trigger with the\n // correct key, oldValue and newValue but localStorage.getItem(key) does\n // not yield the updated value until a few milliseconds. This ensures\n // this recovers from that situation.\n setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY);\n } else {\n triggerListeners();\n }\n }\n\n private notifyListeners(key: string, value: string | null): void {\n this.localCache[key] = value;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(value ? JSON.parse(value) : value);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(() => {\n this.forAllChangedKeys(\n (key: string, oldValue: string | null, newValue: string | null) => {\n this.onStorageEvent(\n new StorageEvent('storage', {\n key,\n oldValue,\n newValue\n }),\n /* poll */ true\n );\n }\n );\n }, _POLLING_INTERVAL_MS);\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n private attachListener(): void {\n window.addEventListener('storage', this.boundEventHandler);\n }\n\n private detachListener(): void {\n window.removeEventListener('storage', this.boundEventHandler);\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n // Whether browser can detect storage event when it had already been pushed to the background.\n // This may happen in some mobile browsers. A localStorage change in the foreground window\n // will not be detected in the background window via the storage event.\n // This was detected in iOS 7.x mobile browsers\n if (this.fallbackToPolling) {\n this.startPolling();\n } else {\n this.attachListener();\n }\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n this.localCache[key] = this.storage.getItem(key);\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.detachListener();\n this.stopPolling();\n }\n }\n\n // Update local cache on base operations:\n\n async _set(key: string, value: PersistenceValue): Promise {\n await super._set(key, value);\n this.localCache[key] = JSON.stringify(value);\n }\n\n async _get(key: string): Promise {\n const value = await super._get(key);\n this.localCache[key] = JSON.stringify(value);\n return value;\n }\n\n async _remove(key: string): Promise {\n await super._remove(key);\n delete this.localCache[key];\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `localStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserLocalPersistence: Persistence = BrowserLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nclass BrowserSessionPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'SESSION' = 'SESSION';\n\n constructor() {\n super(() => window.sessionStorage, PersistenceType.SESSION);\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of `SESSION` using `sessionStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserSessionPersistence: Persistence = BrowserSessionPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** TODO: remove this once tslib has a polyfill for Promise.allSettled */\ninterface PromiseFulfilledResult {\n fulfilled: true;\n value: T;\n}\n\ninterface PromiseRejectedResult {\n fulfilled: false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reason: any;\n}\n\nexport type PromiseSettledResult =\n | PromiseFulfilledResult\n | PromiseRejectedResult;\n\n/**\n * Shim for Promise.allSettled, note the slightly different format of `fulfilled` vs `status`.\n *\n * @param promises - Array of promises to wait on.\n */\nexport function _allSettled(\n promises: Array>\n): Promise>> {\n return Promise.all(\n promises.map(async promise => {\n try {\n const value = await promise;\n return {\n fulfilled: true,\n value\n } as PromiseFulfilledResult;\n } catch (reason) {\n return {\n fulfilled: false,\n reason\n } as PromiseRejectedResult;\n }\n })\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ReceiverHandler,\n _EventType,\n _ReceiverResponse,\n SenderMessageEvent,\n _Status,\n _SenderRequest\n} from './index';\nimport { _allSettled } from './promise';\n\n/**\n * Interface class for receiving messages.\n *\n */\nexport class Receiver {\n private static readonly receivers: Receiver[] = [];\n private readonly boundEventHandler: EventListener;\n\n private readonly handlersMap: {\n // Typescript doesn't have existential types :(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [eventType: string]: Set>;\n } = {};\n\n constructor(private readonly eventTarget: EventTarget) {\n this.boundEventHandler = this.handleEvent.bind(this);\n }\n\n /**\n * Obtain an instance of a Receiver for a given event target, if none exists it will be created.\n *\n * @param eventTarget - An event target (such as window or self) through which the underlying\n * messages will be received.\n */\n static _getInstance(eventTarget: EventTarget): Receiver {\n // The results are stored in an array since objects can't be keys for other\n // objects. In addition, setting a unique property on an event target as a\n // hash map key may not be allowed due to CORS restrictions.\n const existingInstance = this.receivers.find(receiver =>\n receiver.isListeningto(eventTarget)\n );\n if (existingInstance) {\n return existingInstance;\n }\n const newInstance = new Receiver(eventTarget);\n this.receivers.push(newInstance);\n return newInstance;\n }\n\n private isListeningto(eventTarget: EventTarget): boolean {\n return this.eventTarget === eventTarget;\n }\n\n /**\n * Fans out a MessageEvent to the appropriate listeners.\n *\n * @remarks\n * Sends an {@link Status.ACK} upon receipt and a {@link Status.DONE} once all handlers have\n * finished processing.\n *\n * @param event - The MessageEvent.\n *\n */\n private async handleEvent<\n T extends _ReceiverResponse,\n S extends _SenderRequest\n >(event: Event): Promise {\n const messageEvent = event as MessageEvent>;\n const { eventId, eventType, data } = messageEvent.data;\n\n const handlers: Set> | undefined =\n this.handlersMap[eventType];\n if (!handlers?.size) {\n return;\n }\n\n messageEvent.ports[0].postMessage({\n status: _Status.ACK,\n eventId,\n eventType\n });\n\n const promises = Array.from(handlers).map(async handler =>\n handler(messageEvent.origin, data)\n );\n const response = await _allSettled(promises);\n messageEvent.ports[0].postMessage({\n status: _Status.DONE,\n eventId,\n eventType,\n response\n });\n }\n\n /**\n * Subscribe an event handler for a particular event.\n *\n * @param eventType - Event name to subscribe to.\n * @param eventHandler - The event handler which should receive the events.\n *\n */\n _subscribe(\n eventType: _EventType,\n eventHandler: ReceiverHandler\n ): void {\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.addEventListener('message', this.boundEventHandler);\n }\n\n if (!this.handlersMap[eventType]) {\n this.handlersMap[eventType] = new Set();\n }\n\n this.handlersMap[eventType].add(eventHandler);\n }\n\n /**\n * Unsubscribe an event handler from a particular event.\n *\n * @param eventType - Event name to unsubscribe from.\n * @param eventHandler - Optinoal event handler, if none provided, unsubscribe all handlers on this event.\n *\n */\n _unsubscribe(\n eventType: _EventType,\n eventHandler?: ReceiverHandler\n ): void {\n if (this.handlersMap[eventType] && eventHandler) {\n this.handlersMap[eventType].delete(eventHandler);\n }\n if (!eventHandler || this.handlersMap[eventType].size === 0) {\n delete this.handlersMap[eventType];\n }\n\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.removeEventListener('message', this.boundEventHandler);\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _generateEventId(prefix = '', digits = 10): string {\n let random = '';\n for (let i = 0; i < digits; i++) {\n random += Math.floor(Math.random() * 10);\n }\n return prefix + random;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _generateEventId } from '../../core/util/event_id';\nimport {\n _SenderRequest,\n _EventType,\n ReceiverMessageEvent,\n _MessageError,\n SenderMessageEvent,\n _Status,\n _ReceiverMessageResponse,\n _ReceiverResponse,\n _TimeoutDuration\n} from './index';\n\ninterface MessageHandler {\n messageChannel: MessageChannel;\n onMessage: EventListenerOrEventListenerObject;\n}\n\n/**\n * Interface for sending messages and waiting for a completion response.\n *\n */\nexport class Sender {\n private readonly handlers = new Set();\n\n constructor(private readonly target: ServiceWorker) {}\n\n /**\n * Unsubscribe the handler and remove it from our tracking Set.\n *\n * @param handler - The handler to unsubscribe.\n */\n private removeMessageHandler(handler: MessageHandler): void {\n if (handler.messageChannel) {\n handler.messageChannel.port1.removeEventListener(\n 'message',\n handler.onMessage\n );\n handler.messageChannel.port1.close();\n }\n this.handlers.delete(handler);\n }\n\n /**\n * Send a message to the Receiver located at {@link target}.\n *\n * @remarks\n * We'll first wait a bit for an ACK , if we get one we will wait significantly longer until the\n * receiver has had a chance to fully process the event.\n *\n * @param eventType - Type of event to send.\n * @param data - The payload of the event.\n * @param timeout - Timeout for waiting on an ACK from the receiver.\n *\n * @returns An array of settled promises from all the handlers that were listening on the receiver.\n */\n async _send(\n eventType: _EventType,\n data: S,\n timeout = _TimeoutDuration.ACK\n ): Promise<_ReceiverMessageResponse> {\n const messageChannel =\n typeof MessageChannel !== 'undefined' ? new MessageChannel() : null;\n if (!messageChannel) {\n throw new Error(_MessageError.CONNECTION_UNAVAILABLE);\n }\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let completionTimer: any;\n let handler: MessageHandler;\n return new Promise<_ReceiverMessageResponse>((resolve, reject) => {\n const eventId = _generateEventId('', 20);\n messageChannel.port1.start();\n const ackTimer = setTimeout(() => {\n reject(new Error(_MessageError.UNSUPPORTED_EVENT));\n }, timeout);\n handler = {\n messageChannel,\n onMessage(event: Event): void {\n const messageEvent = event as MessageEvent>;\n if (messageEvent.data.eventId !== eventId) {\n return;\n }\n switch (messageEvent.data.status) {\n case _Status.ACK:\n // The receiver should ACK first.\n clearTimeout(ackTimer);\n completionTimer = setTimeout(() => {\n reject(new Error(_MessageError.TIMEOUT));\n }, _TimeoutDuration.COMPLETION);\n break;\n case _Status.DONE:\n // Once the receiver's handlers are finished we will get the results.\n clearTimeout(completionTimer);\n resolve(messageEvent.data.response);\n break;\n default:\n clearTimeout(ackTimer);\n clearTimeout(completionTimer);\n reject(new Error(_MessageError.INVALID_RESPONSE));\n break;\n }\n }\n };\n this.handlers.add(handler);\n messageChannel.port1.addEventListener('message', handler.onMessage);\n this.target.postMessage(\n {\n eventType,\n eventId,\n data\n } as SenderMessageEvent,\n [messageChannel.port2]\n );\n }).finally(() => {\n if (handler) {\n this.removeMessageHandler(handler);\n }\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Recaptcha } from './recaptcha/recaptcha';\n\n/**\n * A specialized window type that melds the normal window type plus the\n * various bits we need. The three different blocks that are &'d together\n * cant be defined in the same block together.\n */\nexport type AuthWindow = {\n // Standard window types\n [T in keyof Window]: Window[T];\n} & {\n // Any known / named properties we want to add\n grecaptcha?: Recaptcha;\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n ___jsl?: Record;\n gapi?: typeof gapi;\n} & {\n // A final catch-all for callbacks (which will have random names) that\n // we will stick on the window.\n [callback: string]: (...args: unknown[]) => void;\n};\n\n/**\n * Lazy accessor for window, since the compat layer won't tree shake this out,\n * we need to make sure not to mess with window unless we have to\n */\nexport function _window(): AuthWindow {\n return window as unknown as AuthWindow;\n}\n\nexport function _setWindowLocation(url: string): void {\n _window().location.href = url;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _window } from '../auth_window';\n\nexport function _isWorker(): boolean {\n return (\n typeof _window()['WorkerGlobalScope'] !== 'undefined' &&\n typeof _window()['importScripts'] === 'function'\n );\n}\n\nexport async function _getActiveServiceWorker(): Promise {\n if (!navigator?.serviceWorker) {\n return null;\n }\n try {\n const registration = await navigator.serviceWorker.ready;\n return registration.active;\n } catch {\n return null;\n }\n}\n\nexport function _getServiceWorkerController(): ServiceWorker | null {\n return navigator?.serviceWorker?.controller || null;\n}\n\nexport function _getWorkerGlobalScope(): ServiceWorker | null {\n return _isWorker() ? (self as unknown as ServiceWorker) : null;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\nimport {\n PersistedBlob,\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener,\n STORAGE_AVAILABLE_KEY\n} from '../../core/persistence/';\nimport {\n _EventType,\n _PingResponse,\n KeyChangedResponse,\n KeyChangedRequest,\n PingRequest,\n _TimeoutDuration\n} from '../messagechannel/index';\nimport { Receiver } from '../messagechannel/receiver';\nimport { Sender } from '../messagechannel/sender';\nimport {\n _isWorker,\n _getActiveServiceWorker,\n _getServiceWorkerController,\n _getWorkerGlobalScope\n} from '../util/worker';\n\nexport const DB_NAME = 'firebaseLocalStorageDb';\nconst DB_VERSION = 1;\nconst DB_OBJECTSTORE_NAME = 'firebaseLocalStorage';\nconst DB_DATA_KEYPATH = 'fbase_key';\n\ninterface DBObject {\n [DB_DATA_KEYPATH]: string;\n value: PersistedBlob;\n}\n\n/**\n * Promise wrapper for IDBRequest\n *\n * Unfortunately we can't cleanly extend Promise since promises are not callable in ES6\n *\n */\nclass DBPromise {\n constructor(private readonly request: IDBRequest) {}\n\n toPromise(): Promise {\n return new Promise((resolve, reject) => {\n this.request.addEventListener('success', () => {\n resolve(this.request.result);\n });\n this.request.addEventListener('error', () => {\n reject(this.request.error);\n });\n });\n }\n}\n\nfunction getObjectStore(db: IDBDatabase, isReadWrite: boolean): IDBObjectStore {\n return db\n .transaction([DB_OBJECTSTORE_NAME], isReadWrite ? 'readwrite' : 'readonly')\n .objectStore(DB_OBJECTSTORE_NAME);\n}\n\nexport async function _clearDatabase(db: IDBDatabase): Promise {\n const objectStore = getObjectStore(db, true);\n return new DBPromise(objectStore.clear()).toPromise();\n}\n\nexport function _deleteDatabase(): Promise {\n const request = indexedDB.deleteDatabase(DB_NAME);\n return new DBPromise(request).toPromise();\n}\n\nexport function _openDatabase(): Promise {\n const request = indexedDB.open(DB_NAME, DB_VERSION);\n return new Promise((resolve, reject) => {\n request.addEventListener('error', () => {\n reject(request.error);\n });\n\n request.addEventListener('upgradeneeded', () => {\n const db = request.result;\n\n try {\n db.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH });\n } catch (e) {\n reject(e);\n }\n });\n\n request.addEventListener('success', async () => {\n const db: IDBDatabase = request.result;\n // Strange bug that occurs in Firefox when multiple tabs are opened at the\n // same time. The only way to recover seems to be deleting the database\n // and re-initializing it.\n // https://github.com/firebase/firebase-js-sdk/issues/634\n\n if (!db.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) {\n // Need to close the database or else you get a `blocked` event\n db.close();\n await _deleteDatabase();\n resolve(await _openDatabase());\n } else {\n resolve(db);\n }\n });\n });\n}\n\nexport async function _putObject(\n db: IDBDatabase,\n key: string,\n value: PersistenceValue | string\n): Promise {\n const request = getObjectStore(db, true).put({\n [DB_DATA_KEYPATH]: key,\n value\n });\n return new DBPromise(request).toPromise();\n}\n\nasync function getObject(\n db: IDBDatabase,\n key: string\n): Promise {\n const request = getObjectStore(db, false).get(key);\n const data = await new DBPromise(request).toPromise();\n return data === undefined ? null : data.value;\n}\n\nexport function _deleteObject(db: IDBDatabase, key: string): Promise {\n const request = getObjectStore(db, true).delete(key);\n return new DBPromise(request).toPromise();\n}\n\nexport const _POLLING_INTERVAL_MS = 800;\nexport const _TRANSACTION_RETRY_COUNT = 3;\n\nclass IndexedDBLocalPersistence implements InternalPersistence {\n static type: 'LOCAL' = 'LOCAL';\n\n type = PersistenceType.LOCAL;\n db?: IDBDatabase;\n readonly _shouldAllowMigration = true;\n\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n private pendingWrites = 0;\n\n private receiver: Receiver | null = null;\n private sender: Sender | null = null;\n private serviceWorkerReceiverAvailable = false;\n private activeServiceWorker: ServiceWorker | null = null;\n // Visible for testing only\n readonly _workerInitializationPromise: Promise;\n\n constructor() {\n // Fire & forget the service worker registration as it may never resolve\n this._workerInitializationPromise =\n this.initializeServiceWorkerMessaging().then(\n () => {},\n () => {}\n );\n }\n\n async _openDb(): Promise {\n if (this.db) {\n return this.db;\n }\n this.db = await _openDatabase();\n return this.db;\n }\n\n async _withRetries(op: (db: IDBDatabase) => Promise): Promise {\n let numAttempts = 0;\n\n while (true) {\n try {\n const db = await this._openDb();\n return await op(db);\n } catch (e) {\n if (numAttempts++ > _TRANSACTION_RETRY_COUNT) {\n throw e;\n }\n if (this.db) {\n this.db.close();\n this.db = undefined;\n }\n // TODO: consider adding exponential backoff\n }\n }\n }\n\n /**\n * IndexedDB events do not propagate from the main window to the worker context. We rely on a\n * postMessage interface to send these events to the worker ourselves.\n */\n private async initializeServiceWorkerMessaging(): Promise {\n return _isWorker() ? this.initializeReceiver() : this.initializeSender();\n }\n\n /**\n * As the worker we should listen to events from the main window.\n */\n private async initializeReceiver(): Promise {\n this.receiver = Receiver._getInstance(_getWorkerGlobalScope()!);\n // Refresh from persistence if we receive a KeyChanged message.\n this.receiver._subscribe(\n _EventType.KEY_CHANGED,\n async (_origin: string, data: KeyChangedRequest) => {\n const keys = await this._poll();\n return {\n keyProcessed: keys.includes(data.key)\n };\n }\n );\n // Let the sender know that we are listening so they give us more timeout.\n this.receiver._subscribe(\n _EventType.PING,\n async (_origin: string, _data: PingRequest) => {\n return [_EventType.KEY_CHANGED];\n }\n );\n }\n\n /**\n * As the main window, we should let the worker know when keys change (set and remove).\n *\n * @remarks\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/ready | ServiceWorkerContainer.ready}\n * may not resolve.\n */\n private async initializeSender(): Promise {\n // Check to see if there's an active service worker.\n this.activeServiceWorker = await _getActiveServiceWorker();\n if (!this.activeServiceWorker) {\n return;\n }\n this.sender = new Sender(this.activeServiceWorker);\n // Ping the service worker to check what events they can handle.\n const results = await this.sender._send<_PingResponse, PingRequest>(\n _EventType.PING,\n {},\n _TimeoutDuration.LONG_ACK\n );\n if (!results) {\n return;\n }\n if (\n results[0]?.fulfilled &&\n results[0]?.value.includes(_EventType.KEY_CHANGED)\n ) {\n this.serviceWorkerReceiverAvailable = true;\n }\n }\n\n /**\n * Let the worker know about a changed key, the exact key doesn't technically matter since the\n * worker will just trigger a full sync anyway.\n *\n * @remarks\n * For now, we only support one service worker per page.\n *\n * @param key - Storage key which changed.\n */\n private async notifyServiceWorker(key: string): Promise {\n if (\n !this.sender ||\n !this.activeServiceWorker ||\n _getServiceWorkerController() !== this.activeServiceWorker\n ) {\n return;\n }\n try {\n await this.sender._send(\n _EventType.KEY_CHANGED,\n { key },\n // Use long timeout if receiver has previously responded to a ping from us.\n this.serviceWorkerReceiverAvailable\n ? _TimeoutDuration.LONG_ACK\n : _TimeoutDuration.ACK\n );\n } catch {\n // This is a best effort approach. Ignore errors.\n }\n }\n\n async _isAvailable(): Promise {\n try {\n if (!indexedDB) {\n return false;\n }\n const db = await _openDatabase();\n await _putObject(db, STORAGE_AVAILABLE_KEY, '1');\n await _deleteObject(db, STORAGE_AVAILABLE_KEY);\n return true;\n } catch {}\n return false;\n }\n\n private async _withPendingWrite(write: () => Promise): Promise {\n this.pendingWrites++;\n try {\n await write();\n } finally {\n this.pendingWrites--;\n }\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _putObject(db, key, value));\n this.localCache[key] = value;\n return this.notifyServiceWorker(key);\n });\n }\n\n async _get(key: string): Promise {\n const obj = (await this._withRetries((db: IDBDatabase) =>\n getObject(db, key)\n )) as T;\n this.localCache[key] = obj;\n return obj;\n }\n\n async _remove(key: string): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _deleteObject(db, key));\n delete this.localCache[key];\n return this.notifyServiceWorker(key);\n });\n }\n\n private async _poll(): Promise {\n // TODO: check if we need to fallback if getAll is not supported\n const result = await this._withRetries((db: IDBDatabase) => {\n const getAllRequest = getObjectStore(db, false).getAll();\n return new DBPromise(getAllRequest).toPromise();\n });\n\n if (!result) {\n return [];\n }\n\n // If we have pending writes in progress abort, we'll get picked up on the next poll\n if (this.pendingWrites !== 0) {\n return [];\n }\n\n const keys = [];\n const keysInResult = new Set();\n for (const { fbase_key: key, value } of result) {\n keysInResult.add(key);\n if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) {\n this.notifyListeners(key, value as PersistenceValue);\n keys.push(key);\n }\n }\n for (const localKey of Object.keys(this.localCache)) {\n if (this.localCache[localKey] && !keysInResult.has(localKey)) {\n // Deleted\n this.notifyListeners(localKey, null);\n keys.push(localKey);\n }\n }\n return keys;\n }\n\n private notifyListeners(\n key: string,\n newValue: PersistenceValue | null\n ): void {\n this.localCache[key] = newValue;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(newValue);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(\n async () => this._poll(),\n _POLLING_INTERVAL_MS\n );\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n this.startPolling();\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n void this._get(key); // This can happen in the background async and we can return immediately.\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.stopPolling();\n }\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `indexedDB`\n * for the underlying storage.\n *\n * @public\n */\nexport const indexedDBLocalPersistence: Persistence = IndexedDBLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performApiRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from '../account_management/mfa';\nimport { SignInWithIdpResponse } from './idp';\nimport {\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n} from './sms';\n\nexport interface FinalizeMfaResponse {\n idToken: string;\n refreshToken: string;\n}\n\n/**\n * @internal\n */\nexport interface IdTokenMfaResponse extends IdTokenResponse {\n mfaPendingCredential?: string;\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface StartPhoneMfaSignInRequest {\n mfaPendingCredential: string;\n mfaEnrollmentId: string;\n phoneSignInInfo: {\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaSignInResponse {\n phoneResponseInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startSignInPhoneMfa(\n auth: Auth,\n request: StartPhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaSignInRequest,\n StartPhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaSignInRequest {\n mfaPendingCredential: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n tenantId?: string;\n}\n\nexport interface FinalizePhoneMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport function finalizeSignInPhoneMfa(\n auth: Auth,\n request: FinalizePhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaSignInRequest,\n FinalizePhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport type PhoneOrOauthTokenResponse =\n | SignInWithPhoneNumberResponse\n | SignInWithIdpResponse\n | IdTokenResponse;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { Auth } from '../../model/public_types';\n\ninterface GetRecaptchaParamResponse {\n recaptchaSiteKey?: string;\n}\n\nexport async function getRecaptchaParams(auth: Auth): Promise {\n return (\n (\n await _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_PARAM\n )\n ).recaptchaSiteKey || ''\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\nimport { _createError } from '../core/util/assert';\n\nfunction getScriptParentElement(): HTMLDocument | HTMLHeadElement {\n return document.getElementsByTagName('head')?.[0] ?? document;\n}\n\nexport function _loadJS(url: string): Promise {\n // TODO: consider adding timeout support & cancellation\n return new Promise((resolve, reject) => {\n const el = document.createElement('script');\n el.setAttribute('src', url);\n el.onload = resolve;\n el.onerror = e => {\n const error = _createError(AuthErrorCode.INTERNAL_ERROR);\n error.customData = e as unknown as Record;\n reject(error);\n };\n el.type = 'text/javascript';\n el.charset = 'UTF-8';\n getScriptParentElement().appendChild(el);\n });\n}\n\nexport function _generateCallbackName(prefix: string): string {\n return `__${prefix}${Math.floor(Math.random() * 1000000)}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport { RecaptchaParameters } from '../../model/public_types';\nimport { Recaptcha } from './recaptcha';\n\nexport const _SOLVE_TIME_MS = 500;\nexport const _EXPIRATION_TIME_MS = 60_000;\nexport const _WIDGET_ID_START = 1_000_000_000_000;\n\nexport interface Widget {\n getResponse: () => string | null;\n delete: () => void;\n execute: () => void;\n}\n\nexport class MockReCaptcha implements Recaptcha {\n private counter = _WIDGET_ID_START;\n _widgets = new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n render(\n container: string | HTMLElement,\n parameters?: RecaptchaParameters\n ): number {\n const id = this.counter;\n this._widgets.set(\n id,\n new MockWidget(container, this.auth.name, parameters || {})\n );\n this.counter++;\n return id;\n }\n\n reset(optWidgetId?: number): void {\n const id = optWidgetId || _WIDGET_ID_START;\n void this._widgets.get(id)?.delete();\n this._widgets.delete(id);\n }\n\n getResponse(optWidgetId?: number): string {\n const id = optWidgetId || _WIDGET_ID_START;\n return this._widgets.get(id)?.getResponse() || '';\n }\n\n async execute(optWidgetId?: number | string): Promise {\n const id: number = (optWidgetId as number) || _WIDGET_ID_START;\n void this._widgets.get(id)?.execute();\n return '';\n }\n}\n\nexport class MockWidget {\n private readonly container: HTMLElement;\n private readonly isVisible: boolean;\n private timerId: number | null = null;\n private deleted = false;\n private responseToken: string | null = null;\n private readonly clickHandler = (): void => {\n this.execute();\n };\n\n constructor(\n containerOrId: string | HTMLElement,\n appName: string,\n private readonly params: RecaptchaParameters\n ) {\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, AuthErrorCode.ARGUMENT_ERROR, { appName });\n\n this.container = container;\n this.isVisible = this.params.size !== 'invisible';\n if (this.isVisible) {\n this.execute();\n } else {\n this.container.addEventListener('click', this.clickHandler);\n }\n }\n\n getResponse(): string | null {\n this.checkIfDeleted();\n return this.responseToken;\n }\n\n delete(): void {\n this.checkIfDeleted();\n this.deleted = true;\n if (this.timerId) {\n clearTimeout(this.timerId);\n this.timerId = null;\n }\n this.container.removeEventListener('click', this.clickHandler);\n }\n\n execute(): void {\n this.checkIfDeleted();\n if (this.timerId) {\n return;\n }\n\n this.timerId = window.setTimeout(() => {\n this.responseToken = generateRandomAlphaNumericString(50);\n const { callback, 'expired-callback': expiredCallback } = this.params;\n if (callback) {\n try {\n callback(this.responseToken);\n } catch (e) {}\n }\n\n this.timerId = window.setTimeout(() => {\n this.timerId = null;\n this.responseToken = null;\n if (expiredCallback) {\n try {\n expiredCallback();\n } catch (e) {}\n }\n\n if (this.isVisible) {\n this.execute();\n }\n }, _EXPIRATION_TIME_MS);\n }, _SOLVE_TIME_MS);\n }\n\n private checkIfDeleted(): void {\n if (this.deleted) {\n throw new Error('reCAPTCHA mock was already deleted!');\n }\n }\n}\n\nfunction generateRandomAlphaNumericString(len: number): string {\n const chars = [];\n const allowedChars =\n '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (let i = 0; i < len; i++) {\n chars.push(\n allowedChars.charAt(Math.floor(Math.random() * allowedChars.length))\n );\n }\n return chars.join('');\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as jsHelpers from '../load_js';\nimport { Recaptcha } from './recaptcha';\nimport { MockReCaptcha } from './recaptcha_mock';\n\n// ReCaptcha will load using the same callback, so the callback function needs\n// to be kept around\nexport const _JSLOAD_CALLBACK = jsHelpers._generateCallbackName('rcb');\nconst NETWORK_TIMEOUT_DELAY = new Delay(30000, 60000);\nconst RECAPTCHA_BASE = 'https://www.google.com/recaptcha/api.js?';\n\n/**\n * We need to mark this interface as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport interface ReCaptchaLoader {\n load(auth: AuthInternal, hl?: string): Promise;\n clearedOneInstance(): void;\n}\n\n/**\n * Loader for the GReCaptcha library. There should only ever be one of this.\n */\nexport class ReCaptchaLoaderImpl implements ReCaptchaLoader {\n private hostLanguage = '';\n private counter = 0;\n /**\n * Check for `render()` method. `window.grecaptcha` will exist if the Enterprise\n * version of the ReCAPTCHA script was loaded by someone else (e.g. App Check) but\n * `window.grecaptcha.render()` will not. Another load will add it.\n */\n private readonly librarySeparatelyLoaded = !!_window().grecaptcha?.render;\n\n load(auth: AuthInternal, hl = ''): Promise {\n _assert(isHostLanguageValid(hl), auth, AuthErrorCode.ARGUMENT_ERROR);\n\n if (this.shouldResolveImmediately(hl)) {\n return Promise.resolve(_window().grecaptcha!);\n }\n return new Promise((resolve, reject) => {\n const networkTimeout = _window().setTimeout(() => {\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }, NETWORK_TIMEOUT_DELAY.get());\n\n _window()[_JSLOAD_CALLBACK] = () => {\n _window().clearTimeout(networkTimeout);\n delete _window()[_JSLOAD_CALLBACK];\n\n const recaptcha = _window().grecaptcha;\n\n if (!recaptcha) {\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n return;\n }\n\n // Wrap the greptcha render function so that we know if the developer has\n // called it separately\n const render = recaptcha.render;\n recaptcha.render = (container, params) => {\n const widgetId = render(container, params);\n this.counter++;\n return widgetId;\n };\n\n this.hostLanguage = hl;\n resolve(recaptcha);\n };\n\n const url = `${RECAPTCHA_BASE}?${querystring({\n onload: _JSLOAD_CALLBACK,\n render: 'explicit',\n hl\n })}`;\n\n jsHelpers._loadJS(url).catch(() => {\n clearTimeout(networkTimeout);\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n });\n });\n }\n\n clearedOneInstance(): void {\n this.counter--;\n }\n\n private shouldResolveImmediately(hl: string): boolean {\n // We can resolve immediately if:\n // • grecaptcha is already defined AND (\n // 1. the requested language codes are the same OR\n // 2. there exists already a ReCaptcha on the page\n // 3. the library was already loaded by the app\n // In cases (2) and (3), we _can't_ reload as it would break the recaptchas\n // that are already in the page\n return (\n !!_window().grecaptcha?.render &&\n (hl === this.hostLanguage ||\n this.counter > 0 ||\n this.librarySeparatelyLoaded)\n );\n }\n}\n\nfunction isHostLanguageValid(hl: string): boolean {\n return hl.length <= 6 && /^\\s*[a-zA-Z0-9\\-]*\\s*$/.test(hl);\n}\n\nexport class MockReCaptchaLoaderImpl implements ReCaptchaLoader {\n async load(auth: AuthInternal): Promise {\n return new MockReCaptcha(auth);\n }\n\n clearedOneInstance(): void {}\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, RecaptchaParameters } from '../../model/public_types';\nimport { getRecaptchaParams } from '../../api/authentication/recaptcha';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { _isHttpOrHttps } from '../../core/util/location';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport { _isWorker } from '../util/worker';\nimport { Recaptcha } from './recaptcha';\nimport {\n MockReCaptchaLoaderImpl,\n ReCaptchaLoader,\n ReCaptchaLoaderImpl\n} from './recaptcha_loader';\n\nexport const RECAPTCHA_VERIFIER_TYPE = 'recaptcha';\n\nconst DEFAULT_PARAMS: RecaptchaParameters = {\n theme: 'light',\n type: 'image'\n};\n\ntype TokenCallback = (token: string) => void;\n\n/**\n * An {@link https://www.google.com/recaptcha/ | reCAPTCHA}-based application verifier.\n *\n * @public\n */\nexport class RecaptchaVerifier implements ApplicationVerifierInternal {\n /**\n * The application verifier type.\n *\n * @remarks\n * For a reCAPTCHA verifier, this is 'recaptcha'.\n */\n readonly type = RECAPTCHA_VERIFIER_TYPE;\n private destroyed = false;\n private widgetId: number | null = null;\n private readonly container: HTMLElement;\n private readonly isInvisible: boolean;\n private readonly tokenChangeListeners = new Set();\n private renderPromise: Promise | null = null;\n private readonly auth: AuthInternal;\n\n /** @internal */\n readonly _recaptchaLoader: ReCaptchaLoader;\n private recaptcha: Recaptcha | null = null;\n\n /**\n *\n * @param containerOrId - The reCAPTCHA container parameter.\n *\n * @remarks\n * This has different meaning depending on whether the reCAPTCHA is hidden or visible. For a\n * visible reCAPTCHA the container must be empty. If a string is used, it has to correspond to\n * an element ID. The corresponding element must also must be in the DOM at the time of\n * initialization.\n *\n * @param parameters - The optional reCAPTCHA parameters.\n *\n * @remarks\n * Check the reCAPTCHA docs for a comprehensive list. All parameters are accepted except for\n * the sitekey. Firebase Auth backend provisions a reCAPTCHA for each project and will\n * configure this upon rendering. For an invisible reCAPTCHA, a size key must have the value\n * 'invisible'.\n *\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n */\n constructor(\n containerOrId: HTMLElement | string,\n private readonly parameters: RecaptchaParameters = {\n ...DEFAULT_PARAMS\n },\n authExtern: Auth\n ) {\n this.auth = _castAuth(authExtern);\n this.isInvisible = this.parameters.size === 'invisible';\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n\n this.container = container;\n this.parameters.callback = this.makeTokenCallback(this.parameters.callback);\n\n this._recaptchaLoader = this.auth.settings.appVerificationDisabledForTesting\n ? new MockReCaptchaLoaderImpl()\n : new ReCaptchaLoaderImpl();\n\n this.validateStartingState();\n // TODO: Figure out if sdk version is needed\n }\n\n /**\n * Waits for the user to solve the reCAPTCHA and resolves with the reCAPTCHA token.\n *\n * @returns A Promise for the reCAPTCHA token.\n */\n async verify(): Promise {\n this.assertNotDestroyed();\n const id = await this.render();\n const recaptcha = this.getAssertedRecaptcha();\n\n const response = recaptcha.getResponse(id);\n if (response) {\n return response;\n }\n\n return new Promise(resolve => {\n const tokenChange = (token: string): void => {\n if (!token) {\n return; // Ignore token expirations.\n }\n this.tokenChangeListeners.delete(tokenChange);\n resolve(token);\n };\n\n this.tokenChangeListeners.add(tokenChange);\n if (this.isInvisible) {\n recaptcha.execute(id);\n }\n });\n }\n\n /**\n * Renders the reCAPTCHA widget on the page.\n *\n * @returns A Promise that resolves with the reCAPTCHA widget ID.\n */\n render(): Promise {\n try {\n this.assertNotDestroyed();\n } catch (e) {\n // This method returns a promise. Since it's not async (we want to return the\n // _same_ promise if rendering is still occurring), the API surface should\n // reject with the error rather than just throw\n return Promise.reject(e);\n }\n\n if (this.renderPromise) {\n return this.renderPromise;\n }\n\n this.renderPromise = this.makeRenderPromise().catch(e => {\n this.renderPromise = null;\n throw e;\n });\n\n return this.renderPromise;\n }\n\n /** @internal */\n _reset(): void {\n this.assertNotDestroyed();\n if (this.widgetId !== null) {\n this.getAssertedRecaptcha().reset(this.widgetId);\n }\n }\n\n /**\n * Clears the reCAPTCHA widget from the page and destroys the instance.\n */\n clear(): void {\n this.assertNotDestroyed();\n this.destroyed = true;\n this._recaptchaLoader.clearedOneInstance();\n if (!this.isInvisible) {\n this.container.childNodes.forEach(node => {\n this.container.removeChild(node);\n });\n }\n }\n\n private validateStartingState(): void {\n _assert(!this.parameters.sitekey, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n _assert(\n this.isInvisible || !this.container.hasChildNodes(),\n this.auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n }\n\n private makeTokenCallback(\n existing: TokenCallback | string | undefined\n ): TokenCallback {\n return token => {\n this.tokenChangeListeners.forEach(listener => listener(token));\n if (typeof existing === 'function') {\n existing(token);\n } else if (typeof existing === 'string') {\n const globalFunc = _window()[existing];\n if (typeof globalFunc === 'function') {\n globalFunc(token);\n }\n }\n };\n }\n\n private assertNotDestroyed(): void {\n _assert(!this.destroyed, this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n\n private async makeRenderPromise(): Promise {\n await this.init();\n if (!this.widgetId) {\n let container = this.container;\n if (!this.isInvisible) {\n const guaranteedEmpty = document.createElement('div');\n container.appendChild(guaranteedEmpty);\n container = guaranteedEmpty;\n }\n\n this.widgetId = this.getAssertedRecaptcha().render(\n container,\n this.parameters\n );\n }\n\n return this.widgetId;\n }\n\n private async init(): Promise {\n _assert(\n _isHttpOrHttps() && !_isWorker(),\n this.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n\n await domReady();\n this.recaptcha = await this._recaptchaLoader.load(\n this.auth,\n this.auth.languageCode || undefined\n );\n\n const siteKey = await getRecaptchaParams(this.auth);\n _assert(siteKey, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.parameters.sitekey = siteKey;\n }\n\n private getAssertedRecaptcha(): Recaptcha {\n _assert(this.recaptcha, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.recaptcha;\n }\n}\n\nfunction domReady(): Promise {\n let resolver: (() => void) | null = null;\n return new Promise(resolve => {\n if (document.readyState === 'complete') {\n resolve();\n return;\n }\n\n // Document not ready, wait for load before resolving.\n // Save resolver, so we can remove listener in case it was externally\n // cancelled.\n resolver = () => resolve();\n window.addEventListener('load', resolver);\n }).catch(e => {\n if (resolver) {\n window.removeEventListener('load', resolver);\n }\n\n throw e;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ApplicationVerifier,\n Auth,\n ConfirmationResult,\n PhoneInfoOptions,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { startEnrollPhoneMfa } from '../../api/account_management/mfa';\nimport { startSignInPhoneMfa } from '../../api/authentication/mfa';\nimport { sendPhoneVerificationCode } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assertLinkedStatus, _link } from '../../core/user/link_unlink';\nimport { _assert } from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport {\n linkWithCredential,\n reauthenticateWithCredential,\n signInWithCredential\n} from '../../core/strategies/credential';\nimport {\n MultiFactorSessionImpl,\n MultiFactorSessionType\n} from '../../mfa/mfa_session';\nimport { UserInternal } from '../../model/user';\nimport { RECAPTCHA_VERIFIER_TYPE } from '../recaptcha/recaptcha_verifier';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { ProviderId } from '../../model/enums';\n\ninterface OnConfirmationCallback {\n (credential: PhoneAuthCredential): Promise;\n}\n\nclass ConfirmationResultImpl implements ConfirmationResult {\n constructor(\n readonly verificationId: string,\n private readonly onConfirmation: OnConfirmationCallback\n ) {}\n\n confirm(verificationCode: string): Promise {\n const authCredential = PhoneAuthCredential._fromVerification(\n this.verificationId,\n verificationCode\n );\n return this.onConfirmation(authCredential);\n }\n}\n\n/**\n * Asynchronously signs in using a phone number.\n *\n * @remarks\n * This method sends a code via SMS to the given\n * phone number, and returns a {@link ConfirmationResult}. After the user\n * provides the code sent to their phone, call {@link ConfirmationResult.confirm}\n * with the code to sign the user in.\n *\n * For abuse prevention, this method also requires a {@link ApplicationVerifier}.\n * This SDK includes a reCAPTCHA-based implementation, {@link RecaptchaVerifier}.\n * This function can work on other platforms that do not support the\n * {@link RecaptchaVerifier} (like React Native), but you need to use a\n * third-party {@link ApplicationVerifier} implementation.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain a verificationCode from the user.\n * const credential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function signInWithPhoneNumber(\n auth: Auth,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const authInternal = _castAuth(auth);\n const verificationId = await _verifyPhoneNumber(\n authInternal,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n signInWithCredential(authInternal, cred)\n );\n}\n\n/**\n * Links the user account with the given phone number.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function linkWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(false, userInternal, ProviderId.PHONE);\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n linkWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Re-authenticates a user using a fresh phone credential.\n *\n * @remarks Use before operations such as {@link updatePassword} that require tokens from recent sign-in attempts.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function reauthenticateWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n reauthenticateWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Returns a verification ID to be used in conjunction with the SMS code that is sent.\n *\n */\nexport async function _verifyPhoneNumber(\n auth: AuthInternal,\n options: PhoneInfoOptions | string,\n verifier: ApplicationVerifierInternal\n): Promise {\n const recaptchaToken = await verifier.verify();\n\n try {\n _assert(\n typeof recaptchaToken === 'string',\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n verifier.type === RECAPTCHA_VERIFIER_TYPE,\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n\n let phoneInfoOptions: PhoneInfoOptions;\n\n if (typeof options === 'string') {\n phoneInfoOptions = {\n phoneNumber: options\n };\n } else {\n phoneInfoOptions = options;\n }\n\n if ('session' in phoneInfoOptions) {\n const session = phoneInfoOptions.session as MultiFactorSessionImpl;\n\n if ('phoneNumber' in phoneInfoOptions) {\n _assert(\n session.type === MultiFactorSessionType.ENROLL,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const response = await startEnrollPhoneMfa(auth, {\n idToken: session.credential,\n phoneEnrollmentInfo: {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n }\n });\n return response.phoneSessionInfo.sessionInfo;\n } else {\n _assert(\n session.type === MultiFactorSessionType.SIGN_IN,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const mfaEnrollmentId =\n phoneInfoOptions.multiFactorHint?.uid ||\n phoneInfoOptions.multiFactorUid;\n _assert(mfaEnrollmentId, auth, AuthErrorCode.MISSING_MFA_INFO);\n const response = await startSignInPhoneMfa(auth, {\n mfaPendingCredential: session.credential,\n mfaEnrollmentId,\n phoneSignInInfo: {\n recaptchaToken\n }\n });\n return response.phoneResponseInfo.sessionInfo;\n }\n } else {\n const { sessionInfo } = await sendPhoneVerificationCode(auth, {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n });\n return sessionInfo;\n }\n } finally {\n verifier._reset();\n }\n}\n\n/**\n * Updates the user's phone number.\n *\n * @example\n * ```\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * await updatePhoneNumber(user, phoneCredential);\n * ```\n *\n * @param user - The user.\n * @param credential - A credential authenticating the new phone number.\n *\n * @public\n */\nexport async function updatePhoneNumber(\n user: User,\n credential: PhoneAuthCredential\n): Promise {\n await _link(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n PhoneInfoOptions,\n ApplicationVerifier,\n UserCredential\n} from '../../model/public_types';\n\nimport { SignInWithPhoneNumberResponse } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal as ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal as AuthInternal } from '../../model/auth';\nimport { UserCredentialInternal as UserCredentialInternal } from '../../model/user';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { _verifyPhoneNumber } from '../strategies/phone';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthCredential } from '../../core';\nimport { FirebaseError, getModularInstance } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link PhoneAuthCredential}.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, phoneCredential);\n * ```\n *\n * @public\n */\nexport class PhoneAuthProvider {\n /** Always set to {@link ProviderId}.PHONE. */\n static readonly PROVIDER_ID: 'phone' = ProviderId.PHONE;\n /** Always set to {@link SignInMethod}.PHONE. */\n static readonly PHONE_SIGN_IN_METHOD: 'phone' = SignInMethod.PHONE;\n\n /** Always set to {@link ProviderId}.PHONE. */\n readonly providerId = PhoneAuthProvider.PROVIDER_ID;\n private readonly auth: AuthInternal;\n\n /**\n * @param auth - The Firebase {@link Auth} instance in which sign-ins should occur.\n *\n */\n constructor(auth: Auth) {\n this.auth = _castAuth(auth);\n }\n\n /**\n *\n * Starts a phone number authentication flow by sending a verification code to the given phone\n * number.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param phoneInfoOptions - The user's {@link PhoneInfoOptions}. The phone number should be in\n * E.164 format (e.g. +16505550101).\n * @param applicationVerifier - For abuse prevention, this method also requires a\n * {@link ApplicationVerifier}. This SDK includes a reCAPTCHA-based implementation,\n * {@link RecaptchaVerifier}.\n *\n * @returns A Promise for a verification ID that can be passed to\n * {@link PhoneAuthProvider.credential} to identify this flow..\n */\n verifyPhoneNumber(\n phoneOptions: PhoneInfoOptions | string,\n applicationVerifier: ApplicationVerifier\n ): Promise {\n return _verifyPhoneNumber(\n this.auth,\n phoneOptions,\n getModularInstance(applicationVerifier as ApplicationVerifierInternal)\n );\n }\n\n /**\n * Creates a phone auth credential, given the verification ID from\n * {@link PhoneAuthProvider.verifyPhoneNumber} and the code that was sent to the user's\n * mobile device.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param verificationId - The verification ID returned from {@link PhoneAuthProvider.verifyPhoneNumber}.\n * @param verificationCode - The verification code sent to the user's mobile device.\n *\n * @returns The auth provider credential.\n */\n static credential(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return PhoneAuthCredential._fromVerification(\n verificationId,\n verificationCode\n );\n }\n\n /**\n * Generates an {@link AuthCredential} from a {@link UserCredential}.\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): AuthCredential | null {\n const credential = userCredential as UserCredentialInternal;\n return PhoneAuthProvider.credentialFromTaggedObject(credential);\n }\n\n /**\n * Returns an {@link AuthCredential} when passed an error.\n *\n * @remarks\n *\n * This method works for errors like\n * `auth/account-exists-with-different-credentials`. This is useful for\n * recovering when attempting to set a user's phone number but the number\n * in question is already tied to another account. For example, the following\n * code tries to update the current user's phone number, and if that\n * fails, links the user with the account associated with that number:\n *\n * ```js\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(number, verifier);\n * try {\n * const code = ''; // Prompt the user for the verification code\n * await updatePhoneNumber(\n * auth.currentUser,\n * PhoneAuthProvider.credential(verificationId, code));\n * } catch (e) {\n * if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {\n * const cred = PhoneAuthProvider.credentialFromError(e);\n * await linkWithCredential(auth.currentUser, cred);\n * }\n * }\n *\n * // At this point, auth.currentUser.phoneNumber === number.\n * ```\n *\n * @param error - The error to generate a credential from.\n */\n static credentialFromError(error: FirebaseError): AuthCredential | null {\n return PhoneAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): AuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { phoneNumber, temporaryProof } =\n tokenResponse as SignInWithPhoneNumberResponse;\n if (phoneNumber && temporaryProof) {\n return PhoneAuthCredential._fromTokenResponse(\n phoneNumber,\n temporaryProof\n );\n }\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PopupRedirectResolver } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { _getInstance } from './instantiator';\n\n/**\n * Chooses a popup/redirect resolver to use. This prefers the override (which\n * is directly passed in), and falls back to the property set on the auth\n * object. If neither are available, this function errors w/ an argument error.\n */\nexport function _withDefaultResolver(\n auth: AuthInternal,\n resolverOverride: PopupRedirectResolver | undefined\n): PopupRedirectResolverInternal {\n if (resolverOverride) {\n return _getInstance(resolverOverride);\n }\n\n _assert(auth._popupRedirectResolver, auth, AuthErrorCode.ARGUMENT_ERROR);\n\n return auth._popupRedirectResolver;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _link as _linkUser } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { _assert } from '../util/assert';\nimport { _signInWithCredential } from './credential';\nimport { AuthErrorCode } from '../errors';\nimport { ProviderId } from '../../model/enums';\n\nexport interface IdpTaskParams {\n auth: AuthInternal;\n requestUri: string;\n sessionId?: string;\n tenantId?: string;\n postBody?: string;\n pendingToken?: string;\n user?: UserInternal;\n bypassAuthState?: boolean;\n}\n\nexport type IdpTask = (\n params: IdpTaskParams\n) => Promise;\n\nclass IdpCredential extends AuthCredential {\n constructor(readonly params: IdpTaskParams) {\n super(ProviderId.CUSTOM, ProviderId.CUSTOM);\n }\n\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return signInWithIdp(auth, this._buildIdpRequest(idToken));\n }\n\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n private _buildIdpRequest(idToken?: string): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: this.params.requestUri,\n sessionId: this.params.sessionId,\n postBody: this.params.postBody,\n tenantId: this.params.tenantId,\n pendingToken: this.params.pendingToken,\n returnSecureToken: true,\n returnIdpCredential: true\n };\n\n if (idToken) {\n request.idToken = idToken;\n }\n\n return request;\n }\n}\n\nexport function _signIn(\n params: IdpTaskParams\n): Promise {\n return _signInWithCredential(\n params.auth,\n new IdpCredential(params),\n params.bypassAuthState\n ) as Promise;\n}\n\nexport function _reauth(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _reauthenticate(\n user,\n new IdpCredential(params),\n params.bypassAuthState\n );\n}\n\nexport async function _link(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _linkUser(user, new IdpCredential(params), params.bypassAuthState);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { debugAssert, _fail } from '../util/assert';\nimport {\n _link,\n _reauth,\n _signIn,\n IdpTask,\n IdpTaskParams\n} from '../strategies/idp';\nimport { AuthInternal } from '../../model/auth';\n\ninterface PendingPromise {\n resolve: (cred: UserCredentialInternal | null) => void;\n reject: (error: Error) => void;\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n */\nexport abstract class AbstractPopupRedirectOperation\n implements AuthEventConsumer\n{\n private pendingPromise: PendingPromise | null = null;\n private eventManager: EventManager | null = null;\n readonly filter: AuthEventType[];\n\n abstract eventId: string | null;\n\n constructor(\n protected readonly auth: AuthInternal,\n filter: AuthEventType | AuthEventType[],\n protected readonly resolver: PopupRedirectResolverInternal,\n protected user?: UserInternal,\n protected readonly bypassAuthState = false\n ) {\n this.filter = Array.isArray(filter) ? filter : [filter];\n }\n\n abstract onExecution(): Promise;\n\n execute(): Promise {\n return new Promise(\n async (resolve, reject) => {\n this.pendingPromise = { resolve, reject };\n\n try {\n this.eventManager = await this.resolver._initialize(this.auth);\n await this.onExecution();\n this.eventManager.registerConsumer(this);\n } catch (e) {\n this.reject(e);\n }\n }\n );\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n const { urlResponse, sessionId, postBody, tenantId, error, type } = event;\n if (error) {\n this.reject(error);\n return;\n }\n\n const params: IdpTaskParams = {\n auth: this.auth,\n requestUri: urlResponse!,\n sessionId: sessionId!,\n tenantId: tenantId || undefined,\n postBody: postBody || undefined,\n user: this.user,\n bypassAuthState: this.bypassAuthState\n };\n\n try {\n this.resolve(await this.getIdpTask(type)(params));\n } catch (e) {\n this.reject(e);\n }\n }\n\n onError(error: FirebaseError): void {\n this.reject(error);\n }\n\n private getIdpTask(type: AuthEventType): IdpTask {\n switch (type) {\n case AuthEventType.SIGN_IN_VIA_POPUP:\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n return _signIn;\n case AuthEventType.LINK_VIA_POPUP:\n case AuthEventType.LINK_VIA_REDIRECT:\n return _link;\n case AuthEventType.REAUTH_VIA_POPUP:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return _reauth;\n default:\n _fail(this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n protected resolve(cred: UserCredentialInternal | null): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.resolve(cred);\n this.unregisterAndCleanUp();\n }\n\n protected reject(error: Error): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.reject(error);\n this.unregisterAndCleanUp();\n }\n\n private unregisterAndCleanUp(): void {\n if (this.eventManager) {\n this.eventManager.unregisterConsumer(this);\n }\n\n this.pendingPromise = null;\n this.cleanUp();\n }\n\n abstract cleanUp(): void;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport {\n _assert,\n debugAssert,\n _createError,\n _assertInstanceOf\n} from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport { AuthPopup } from '../util/popup';\nimport { AbstractPopupRedirectOperation } from '../../core/strategies/abstract_popup_redirect_operation';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\n\n/*\n * The event timeout is the same on mobile and desktop, no need for Delay.\n */\nexport const enum _Timeout {\n AUTH_EVENT = 2000\n}\nexport const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2000, 10000);\n\n/**\n * Authenticates a Firebase client using a popup-based OAuth authentication flow.\n *\n * @remarks\n * If succeeds, returns the signed in user along with the provider's credential. If sign in was\n * unsuccessful, returns an error object containing additional information about the error.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n *\n * @public\n */\nexport async function signInWithPopup(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n const action = new PopupOperation(\n authInternal,\n AuthEventType.SIGN_IN_VIA_POPUP,\n provider,\n resolverInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a pop-up based\n * OAuth flow.\n *\n * @remarks\n * If the reauthentication is successful, the returned result will contain the user and the\n * provider's credential.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n * // Reauthenticate using a popup.\n * await reauthenticateWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function reauthenticateWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.REAUTH_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Links the authenticated provider to the user account using a pop-up based OAuth flow.\n *\n * @remarks\n * If the linking is successful, the returned result will contain the user and the provider's credential.\n *\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a popup.\n * const provider = new FacebookAuthProvider();\n * await linkWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function linkWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.LINK_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n *\n */\nclass PopupOperation extends AbstractPopupRedirectOperation {\n // Only one popup is ever shown at once. The lifecycle of the current popup\n // can be managed / cancelled by the constructor.\n private static currentPopupAction: PopupOperation | null = null;\n private authWindow: AuthPopup | null = null;\n private pollId: number | null = null;\n\n constructor(\n auth: AuthInternal,\n filter: AuthEventType,\n private readonly provider: AuthProvider,\n resolver: PopupRedirectResolverInternal,\n user?: UserInternal\n ) {\n super(auth, filter, resolver, user);\n if (PopupOperation.currentPopupAction) {\n PopupOperation.currentPopupAction.cancel();\n }\n\n PopupOperation.currentPopupAction = this;\n }\n\n async executeNotNull(): Promise {\n const result = await this.execute();\n _assert(result, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return result;\n }\n\n async onExecution(): Promise {\n debugAssert(\n this.filter.length === 1,\n 'Popup operations only handle one event'\n );\n const eventId = _generateEventId();\n this.authWindow = await this.resolver._openPopup(\n this.auth,\n this.provider,\n this.filter[0], // There's always one, see constructor\n eventId\n );\n this.authWindow.associatedEvent = eventId;\n\n // Check for web storage support and origin validation _after_ the popup is\n // loaded. These operations are slow (~1 second or so) Rather than\n // waiting on them before opening the window, optimistically open the popup\n // and check for storage support at the same time. If storage support is\n // not available, this will cause the whole thing to reject properly. It\n // will also close the popup, but since the promise has already rejected,\n // the popup closed by user poll will reject into the void.\n this.resolver._originValidation(this.auth).catch(e => {\n this.reject(e);\n });\n\n this.resolver._isIframeWebStorageSupported(this.auth, isSupported => {\n if (!isSupported) {\n this.reject(\n _createError(this.auth, AuthErrorCode.WEB_STORAGE_UNSUPPORTED)\n );\n }\n });\n\n // Handle user closure. Notice this does *not* use await\n this.pollUserCancellation();\n }\n\n get eventId(): string | null {\n return this.authWindow?.associatedEvent || null;\n }\n\n cancel(): void {\n this.reject(_createError(this.auth, AuthErrorCode.EXPIRED_POPUP_REQUEST));\n }\n\n cleanUp(): void {\n if (this.authWindow) {\n this.authWindow.close();\n }\n\n if (this.pollId) {\n window.clearTimeout(this.pollId);\n }\n\n this.authWindow = null;\n this.pollId = null;\n PopupOperation.currentPopupAction = null;\n }\n\n private pollUserCancellation(): void {\n const poll = (): void => {\n if (this.authWindow?.window?.closed) {\n // Make sure that there is sufficient time for whatever action to\n // complete. The window could have closed but the sign in network\n // call could still be in flight.\n this.pollId = window.setTimeout(() => {\n this.pollId = null;\n this.reject(\n _createError(this.auth, AuthErrorCode.POPUP_CLOSED_BY_USER)\n );\n }, _Timeout.AUTH_EVENT);\n return;\n }\n\n this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get());\n };\n\n poll();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEvent,\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserCredentialInternal } from '../../model/user';\nimport { PersistenceInternal } from '../persistence';\nimport { _persistenceKeyName } from '../persistence/persistence_user_manager';\nimport { _getInstance } from '../util/instantiator';\nimport { AbstractPopupRedirectOperation } from './abstract_popup_redirect_operation';\n\nconst PENDING_REDIRECT_KEY = 'pendingRedirect';\n\n// We only get one redirect outcome for any one auth, so just store it\n// in here.\nconst redirectOutcomeMap: Map<\n string,\n () => Promise\n> = new Map();\n\nexport class RedirectAction extends AbstractPopupRedirectOperation {\n eventId = null;\n\n constructor(\n auth: AuthInternal,\n resolver: PopupRedirectResolverInternal,\n bypassAuthState = false\n ) {\n super(\n auth,\n [\n AuthEventType.SIGN_IN_VIA_REDIRECT,\n AuthEventType.LINK_VIA_REDIRECT,\n AuthEventType.REAUTH_VIA_REDIRECT,\n AuthEventType.UNKNOWN\n ],\n resolver,\n undefined,\n bypassAuthState\n );\n }\n\n /**\n * Override the execute function; if we already have a redirect result, then\n * just return it.\n */\n async execute(): Promise {\n let readyOutcome = redirectOutcomeMap.get(this.auth._key());\n if (!readyOutcome) {\n try {\n const hasPendingRedirect = await _getAndClearPendingRedirectStatus(\n this.resolver,\n this.auth\n );\n const result = hasPendingRedirect ? await super.execute() : null;\n readyOutcome = () => Promise.resolve(result);\n } catch (e) {\n readyOutcome = () => Promise.reject(e);\n }\n\n redirectOutcomeMap.set(this.auth._key(), readyOutcome);\n }\n\n // If we're not bypassing auth state, the ready outcome should be set to\n // null.\n if (!this.bypassAuthState) {\n redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null));\n }\n\n return readyOutcome();\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n if (event.type === AuthEventType.SIGN_IN_VIA_REDIRECT) {\n return super.onAuthEvent(event);\n } else if (event.type === AuthEventType.UNKNOWN) {\n // This is a sentinel value indicating there's no pending redirect\n this.resolve(null);\n return;\n }\n\n if (event.eventId) {\n const user = await this.auth._redirectUserForId(event.eventId);\n if (user) {\n this.user = user;\n return super.onAuthEvent(event);\n } else {\n this.resolve(null);\n }\n }\n }\n\n async onExecution(): Promise {}\n\n cleanUp(): void {}\n}\n\nexport async function _getAndClearPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n const key = pendingRedirectKey(auth);\n const persistence = resolverPersistence(resolver);\n if (!(await persistence._isAvailable())) {\n return false;\n }\n const hasPendingRedirect = (await persistence._get(key)) === 'true';\n await persistence._remove(key);\n return hasPendingRedirect;\n}\n\nexport async function _setPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n return resolverPersistence(resolver)._set(pendingRedirectKey(auth), 'true');\n}\n\nexport function _clearRedirectOutcomes(): void {\n redirectOutcomeMap.clear();\n}\n\nexport function _overrideRedirectResult(\n auth: AuthInternal,\n result: () => Promise\n): void {\n redirectOutcomeMap.set(auth._key(), result);\n}\n\nfunction resolverPersistence(\n resolver: PopupRedirectResolverInternal\n): PersistenceInternal {\n return _getInstance(resolver._redirectPersistence);\n}\n\nfunction pendingRedirectKey(auth: AuthInternal): string {\n return _persistenceKeyName(\n PENDING_REDIRECT_KEY,\n auth.config.apiKey,\n auth.name\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { _assertLinkedStatus } from '../../core/user/link_unlink';\nimport { _assertInstanceOf } from '../../core/util/assert';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport {\n RedirectAction,\n _setPendingRedirectStatus\n} from '../../core/strategies/redirect';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\n\n/**\n * Authenticates a Firebase client using a full-page redirect flow.\n *\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _signInWithRedirect(auth, provider, resolver) as Promise;\n}\n\nexport async function _signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n await _setPendingRedirectStatus(resolverInternal, authInternal);\n\n return resolverInternal._openRedirect(\n authInternal,\n provider,\n AuthEventType.SIGN_IN_VIA_REDIRECT\n );\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a full-page redirect flow.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * // Link using a redirect.\n * await linkWithRedirect(result.user, provider);\n * // This will again trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _reauthenticateWithRedirect(\n user,\n provider,\n resolver\n ) as Promise;\n}\nexport async function _reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.REAUTH_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Links the {@link OAuthProvider} to the user account using a full-page redirect flow.\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a redirect.\n * const provider = new FacebookAuthProvider();\n * await linkWithRedirect(result.user, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n *\n * @public\n */\nexport function linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _linkWithRedirect(user, provider, resolver) as Promise;\n}\nexport async function _linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _assertLinkedStatus(false, userInternal, provider.providerId);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.LINK_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Returns a {@link UserCredential} from the redirect-based sign-in flow.\n *\n * @remarks\n * If sign-in succeeded, returns the signed in user. If sign-in was unsuccessful, fails with an\n * error. If no redirect operation was called, returns a {@link UserCredential}\n * with a null `user`.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function getRedirectResult(\n auth: Auth,\n resolver?: PopupRedirectResolver\n): Promise {\n await _castAuth(auth)._initializationPromise;\n return _getRedirectResult(auth, resolver, false);\n}\n\nexport async function _getRedirectResult(\n auth: Auth,\n resolverExtern?: PopupRedirectResolver,\n bypassAuthState = false\n): Promise {\n const authInternal = _castAuth(auth);\n const resolver = _withDefaultResolver(authInternal, resolverExtern);\n const action = new RedirectAction(authInternal, resolver, bypassAuthState);\n const result = await action.execute();\n\n if (result && !bypassAuthState) {\n delete result.user._redirectEventId;\n await authInternal._persistUserIfCurrent(result.user as UserInternal);\n await authInternal._setRedirectUser(null, resolverExtern);\n }\n\n return result;\n}\n\nasync function prepareUserForRedirect(user: UserInternal): Promise {\n const eventId = _generateEventId(`${user.uid}:::`);\n user._redirectEventId = eventId;\n await user.auth._setRedirectUser(user);\n await user.auth._persistUserIfCurrent(user);\n return eventId;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager\n} from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { AuthInternal } from '../../model/auth';\nimport { _createError } from '../util/assert';\n\n// The amount of time to store the UIDs of seen events; this is\n// set to 10 min by default\nconst EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1000;\n\nexport class AuthEventManager implements EventManager {\n private readonly cachedEventUids: Set = new Set();\n private readonly consumers: Set = new Set();\n protected queuedRedirectEvent: AuthEvent | null = null;\n protected hasHandledPotentialRedirect = false;\n private lastProcessedEventTime = Date.now();\n\n constructor(private readonly auth: AuthInternal) {}\n\n registerConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.add(authEventConsumer);\n\n if (\n this.queuedRedirectEvent &&\n this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)\n ) {\n this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer);\n this.saveEventToCache(this.queuedRedirectEvent);\n this.queuedRedirectEvent = null;\n }\n }\n\n unregisterConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.delete(authEventConsumer);\n }\n\n onEvent(event: AuthEvent): boolean {\n // Check if the event has already been handled\n if (this.hasEventBeenHandled(event)) {\n return false;\n }\n\n let handled = false;\n this.consumers.forEach(consumer => {\n if (this.isEventForConsumer(event, consumer)) {\n handled = true;\n this.sendToConsumer(event, consumer);\n this.saveEventToCache(event);\n }\n });\n\n if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) {\n // If we've already seen a redirect before, or this is a popup event,\n // bail now\n return handled;\n }\n\n this.hasHandledPotentialRedirect = true;\n\n // If the redirect wasn't handled, hang on to it\n if (!handled) {\n this.queuedRedirectEvent = event;\n handled = true;\n }\n\n return handled;\n }\n\n private sendToConsumer(event: AuthEvent, consumer: AuthEventConsumer): void {\n if (event.error && !isNullRedirectEvent(event)) {\n const code =\n (event.error.code?.split('auth/')[1] as AuthErrorCode) ||\n AuthErrorCode.INTERNAL_ERROR;\n consumer.onError(_createError(this.auth, code));\n } else {\n consumer.onAuthEvent(event);\n }\n }\n\n private isEventForConsumer(\n event: AuthEvent,\n consumer: AuthEventConsumer\n ): boolean {\n const eventIdMatches =\n consumer.eventId === null ||\n (!!event.eventId && event.eventId === consumer.eventId);\n return consumer.filter.includes(event.type) && eventIdMatches;\n }\n\n private hasEventBeenHandled(event: AuthEvent): boolean {\n if (\n Date.now() - this.lastProcessedEventTime >=\n EVENT_DUPLICATION_CACHE_DURATION_MS\n ) {\n this.cachedEventUids.clear();\n }\n\n return this.cachedEventUids.has(eventUid(event));\n }\n\n private saveEventToCache(event: AuthEvent): void {\n this.cachedEventUids.add(eventUid(event));\n this.lastProcessedEventTime = Date.now();\n }\n}\n\nfunction eventUid(e: AuthEvent): string {\n return [e.type, e.eventId, e.sessionId, e.tenantId].filter(v => v).join('-');\n}\n\nfunction isNullRedirectEvent({ type, error }: AuthEvent): boolean {\n return (\n type === AuthEventType.UNKNOWN &&\n error?.code === `auth/${AuthErrorCode.NO_AUTH_EVENT}`\n );\n}\n\nfunction isRedirectEvent(event: AuthEvent): boolean {\n switch (event.type) {\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n case AuthEventType.LINK_VIA_REDIRECT:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return true;\n case AuthEventType.UNKNOWN:\n return isNullRedirectEvent(event);\n default:\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _performApiRequest, Endpoint, HttpMethod } from '../index';\nimport { Auth } from '../../model/public_types';\n\nexport interface GetProjectConfigRequest {\n androidPackageName?: string;\n iosBundleId?: string;\n}\n\nexport interface GetProjectConfigResponse {\n authorizedDomains: string[];\n}\n\nexport async function _getProjectConfig(\n auth: Auth,\n request: GetProjectConfigRequest = {}\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_PROJECT_CONFIG,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProjectConfig } from '../../api/project_config/get_project_config';\nimport { AuthInternal } from '../../model/auth';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from './assert';\nimport { _getCurrentUrl } from './location';\n\nconst IP_ADDRESS_REGEX = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\nconst HTTP_REGEX = /^https?/;\n\nexport async function _validateOrigin(auth: AuthInternal): Promise {\n // Skip origin validation if we are in an emulated environment\n if (auth.config.emulator) {\n return;\n }\n\n const { authorizedDomains } = await _getProjectConfig(auth);\n\n for (const domain of authorizedDomains) {\n try {\n if (matchDomain(domain)) {\n return;\n }\n } catch {\n // Do nothing if there's a URL error; just continue searching\n }\n }\n\n // In the old SDK, this error also provides helpful messages.\n _fail(auth, AuthErrorCode.INVALID_ORIGIN);\n}\n\nfunction matchDomain(expected: string): boolean {\n const currentUrl = _getCurrentUrl();\n const { protocol, hostname } = new URL(currentUrl);\n if (expected.startsWith('chrome-extension://')) {\n const ceUrl = new URL(expected);\n\n if (ceUrl.hostname === '' && hostname === '') {\n // For some reason we're not parsing chrome URLs properly\n return (\n protocol === 'chrome-extension:' &&\n expected.replace('chrome-extension://', '') ===\n currentUrl.replace('chrome-extension://', '')\n );\n }\n\n return protocol === 'chrome-extension:' && ceUrl.hostname === hostname;\n }\n\n if (!HTTP_REGEX.test(protocol)) {\n return false;\n }\n\n if (IP_ADDRESS_REGEX.test(expected)) {\n // The domain has to be exactly equal to the pattern, as an IP domain will\n // only contain the IP, no extra character.\n return hostname === expected;\n }\n\n // Dots in pattern should be escaped.\n const escapedDomainPattern = expected.replace(/\\./g, '\\\\.');\n // Non ip address domains.\n // domain.com = *.domain.com OR domain.com\n const re = new RegExp(\n '^(.+\\\\.' + escapedDomainPattern + '|' + escapedDomainPattern + ')$',\n 'i'\n );\n return re.test(hostname);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as js from '../load_js';\n\nconst NETWORK_TIMEOUT = new Delay(30000, 60000);\n\n/**\n * Reset unlaoded GApi modules. If gapi.load fails due to a network error,\n * it will stop working after a retrial. This is a hack to fix this issue.\n */\nfunction resetUnloadedGapiModules(): void {\n // Clear last failed gapi.load state to force next gapi.load to first\n // load the failed gapi.iframes module.\n // Get gapix.beacon context.\n const beacon = _window().___jsl;\n // Get current hint.\n if (beacon?.H) {\n // Get gapi hint.\n for (const hint of Object.keys(beacon.H)) {\n // Requested modules.\n beacon.H[hint].r = beacon.H[hint].r || [];\n // Loaded modules.\n beacon.H[hint].L = beacon.H[hint].L || [];\n // Set requested modules to a copy of the loaded modules.\n beacon.H[hint].r = [...beacon.H[hint].L];\n // Clear pending callbacks.\n if (beacon.CP) {\n for (let i = 0; i < beacon.CP.length; i++) {\n // Remove all failed pending callbacks.\n beacon.CP[i] = null;\n }\n }\n }\n }\n}\n\nfunction loadGapi(auth: AuthInternal): Promise {\n return new Promise((resolve, reject) => {\n // Function to run when gapi.load is ready.\n function loadGapiIframe(): void {\n // The developer may have tried to previously run gapi.load and failed.\n // Run this to fix that.\n resetUnloadedGapiModules();\n gapi.load('gapi.iframes', {\n callback: () => {\n resolve(gapi.iframes.getContext());\n },\n ontimeout: () => {\n // The above reset may be sufficient, but having this reset after\n // failure ensures that if the developer calls gapi.load after the\n // connection is re-established and before another attempt to embed\n // the iframe, it would work and would not be broken because of our\n // failed attempt.\n // Timeout when gapi.iframes.Iframe not loaded.\n resetUnloadedGapiModules();\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n },\n timeout: NETWORK_TIMEOUT.get()\n });\n }\n\n if (_window().gapi?.iframes?.Iframe) {\n // If gapi.iframes.Iframe available, resolve.\n resolve(gapi.iframes.getContext());\n } else if (!!_window().gapi?.load) {\n // Gapi loader ready, load gapi.iframes.\n loadGapiIframe();\n } else {\n // Create a new iframe callback when this is called so as not to overwrite\n // any previous defined callback. This happens if this method is called\n // multiple times in parallel and could result in the later callback\n // overwriting the previous one. This would end up with a iframe\n // timeout.\n const cbName = js._generateCallbackName('iframefcb');\n // GApi loader not available, dynamically load platform.js.\n _window()[cbName] = () => {\n // GApi loader should be ready.\n if (!!gapi.load) {\n loadGapiIframe();\n } else {\n // Gapi loader failed, throw error.\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }\n };\n // Load GApi loader.\n return js\n ._loadJS(`https://apis.google.com/js/api.js?onload=${cbName}`)\n .catch(e => reject(e));\n }\n }).catch(error => {\n // Reset cached promise to allow for retrial.\n cachedGApiLoader = null;\n throw error;\n });\n}\n\nlet cachedGApiLoader: Promise | null = null;\nexport function _loadGapi(auth: AuthInternal): Promise {\n cachedGApiLoader = cachedGApiLoader || loadGapi(auth);\n return cachedGApiLoader;\n}\n\nexport function _resetLoader(): void {\n cachedGApiLoader = null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { querystring } from '@firebase/util';\nimport { DefaultConfig } from '../../../internal';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _emulatorUrl } from '../../core/util/emulator';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as gapiLoader from './gapi';\n\nconst PING_TIMEOUT = new Delay(5000, 15000);\nconst IFRAME_PATH = '__/auth/iframe';\nconst EMULATED_IFRAME_PATH = 'emulator/auth/iframe';\n\nconst IFRAME_ATTRIBUTES = {\n style: {\n position: 'absolute',\n top: '-100px',\n width: '1px',\n height: '1px'\n },\n 'aria-hidden': 'true',\n tabindex: '-1'\n};\n\n// Map from apiHost to endpoint ID for passing into iframe. In current SDK, apiHost can be set to\n// anything (not from a list of endpoints with IDs as in legacy), so this is the closest we can get.\nconst EID_FROM_APIHOST = new Map([\n [DefaultConfig.API_HOST, 'p'], // production\n ['staging-identitytoolkit.sandbox.googleapis.com', 's'], // staging\n ['test-identitytoolkit.sandbox.googleapis.com', 't'] // test\n]);\n\nfunction getIframeUrl(auth: AuthInternal): string {\n const config = auth.config;\n _assert(config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n const url = config.emulator\n ? _emulatorUrl(config, EMULATED_IFRAME_PATH)\n : `https://${auth.config.authDomain}/${IFRAME_PATH}`;\n\n const params: Record = {\n apiKey: config.apiKey,\n appName: auth.name,\n v: SDK_VERSION\n };\n const eid = EID_FROM_APIHOST.get(auth.config.apiHost);\n if (eid) {\n params.eid = eid;\n }\n const frameworks = auth._getFrameworks();\n if (frameworks.length) {\n params.fw = frameworks.join(',');\n }\n return `${url}?${querystring(params).slice(1)}`;\n}\n\nexport async function _openIframe(\n auth: AuthInternal\n): Promise {\n const context = await gapiLoader._loadGapi(auth);\n const gapi = _window().gapi;\n _assert(gapi, auth, AuthErrorCode.INTERNAL_ERROR);\n return context.open(\n {\n where: document.body,\n url: getIframeUrl(auth),\n messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER,\n attributes: IFRAME_ATTRIBUTES,\n dontclear: true\n },\n (iframe: gapi.iframes.Iframe) =>\n new Promise(async (resolve, reject) => {\n await iframe.restyle({\n // Prevent iframe from closing on mouse out.\n setHideOnLeave: false\n });\n\n const networkError = _createError(\n auth,\n AuthErrorCode.NETWORK_REQUEST_FAILED\n );\n // Confirm iframe is correctly loaded.\n // To fallback on failure, set a timeout.\n const networkErrorTimer = _window().setTimeout(() => {\n reject(networkError);\n }, PING_TIMEOUT.get());\n // Clear timer and resolve pending iframe ready promise.\n function clearTimerAndResolve(): void {\n _window().clearTimeout(networkErrorTimer);\n resolve(iframe);\n }\n // This returns an IThenable. However the reject part does not call\n // when the iframe is not loaded.\n iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => {\n reject(networkError);\n });\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getUA } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport {\n _isChromeIOS,\n _isFirefox,\n _isIOSStandalone\n} from '../../core/util/browser';\nimport { AuthInternal } from '../../model/auth';\n\nconst BASE_POPUP_OPTIONS = {\n location: 'yes',\n resizable: 'yes',\n statusbar: 'yes',\n toolbar: 'no'\n};\n\nconst DEFAULT_WIDTH = 500;\nconst DEFAULT_HEIGHT = 600;\nconst TARGET_BLANK = '_blank';\n\nconst FIREFOX_EMPTY_URL = 'http://localhost';\n\nexport class AuthPopup {\n associatedEvent: string | null = null;\n\n constructor(readonly window: Window | null) {}\n\n close(): void {\n if (this.window) {\n try {\n this.window.close();\n } catch (e) {}\n }\n }\n}\n\nexport function _open(\n auth: AuthInternal,\n url?: string,\n name?: string,\n width = DEFAULT_WIDTH,\n height = DEFAULT_HEIGHT\n): AuthPopup {\n const top = Math.max((window.screen.availHeight - height) / 2, 0).toString();\n const left = Math.max((window.screen.availWidth - width) / 2, 0).toString();\n let target = '';\n\n const options: { [key: string]: string } = {\n ...BASE_POPUP_OPTIONS,\n width: width.toString(),\n height: height.toString(),\n top,\n left\n };\n\n // Chrome iOS 7 and 8 is returning an undefined popup win when target is\n // specified, even though the popup is not necessarily blocked.\n const ua = getUA().toLowerCase();\n\n if (name) {\n target = _isChromeIOS(ua) ? TARGET_BLANK : name;\n }\n\n if (_isFirefox(ua)) {\n // Firefox complains when invalid URLs are popped out. Hacky way to bypass.\n url = url || FIREFOX_EMPTY_URL;\n // Firefox disables by default scrolling on popup windows, which can create\n // issues when the user has many Google accounts, for instance.\n options.scrollbars = 'yes';\n }\n\n const optionsString = Object.entries(options).reduce(\n (accum, [key, value]) => `${accum}${key}=${value},`,\n ''\n );\n\n if (_isIOSStandalone(ua) && target !== '_self') {\n openAsNewWindowIOS(url || '', target);\n return new AuthPopup(null);\n }\n\n // about:blank getting sanitized causing browsers like IE/Edge to display\n // brief error message before redirecting to handler.\n const newWin = window.open(url || '', target, optionsString);\n _assert(newWin, auth, AuthErrorCode.POPUP_BLOCKED);\n\n // Flaky on IE edge, encapsulate with a try and catch.\n try {\n newWin.focus();\n } catch (e) {}\n\n return new AuthPopup(newWin);\n}\n\nfunction openAsNewWindowIOS(url: string, target: string): void {\n const el = document.createElement('a');\n el.href = url;\n el.target = target;\n const click = document.createEvent('MouseEvent');\n click.initMouseEvent(\n 'click',\n true,\n true,\n window,\n 1,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 1,\n null\n );\n el.dispatchEvent(click);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { AuthProvider } from '../../model/public_types';\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { isEmpty, querystring } from '@firebase/util';\nimport { _emulatorUrl } from './emulator';\nimport { FederatedAuthProvider } from '../providers/federated';\nimport { BaseOAuthProvider } from '../providers/oauth';\n\n/**\n * URL for Authentication widget which will initiate the OAuth handshake\n *\n * @internal\n */\nconst WIDGET_PATH = '__/auth/handler';\n\n/**\n * URL for emulated environment\n *\n * @internal\n */\nconst EMULATOR_WIDGET_PATH = 'emulator/auth/handler';\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\ntype WidgetParams = {\n apiKey: ApiKey;\n appName: AppName;\n authType: AuthEventType;\n redirectUrl?: string;\n v: string;\n providerId?: string;\n scopes?: string;\n customParameters?: string;\n eventId?: string;\n tid?: string;\n} & { [key: string]: string | undefined };\n\nexport function _getRedirectUrl(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n redirectUrl?: string,\n eventId?: string,\n additionalParams?: Record\n): string {\n _assert(auth.config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n _assert(auth.config.apiKey, auth, AuthErrorCode.INVALID_API_KEY);\n\n const params: WidgetParams = {\n apiKey: auth.config.apiKey,\n appName: auth.name,\n authType,\n redirectUrl,\n v: SDK_VERSION,\n eventId\n };\n\n if (provider instanceof FederatedAuthProvider) {\n provider.setDefaultLanguage(auth.languageCode);\n params.providerId = provider.providerId || '';\n if (!isEmpty(provider.getCustomParameters())) {\n params.customParameters = JSON.stringify(provider.getCustomParameters());\n }\n\n // TODO set additionalParams from the provider as well?\n for (const [key, value] of Object.entries(additionalParams || {})) {\n params[key] = value;\n }\n }\n\n if (provider instanceof BaseOAuthProvider) {\n const scopes = provider.getScopes().filter(scope => scope !== '');\n if (scopes.length > 0) {\n params.scopes = scopes.join(',');\n }\n }\n\n if (auth.tenantId) {\n params.tid = auth.tenantId;\n }\n\n // TODO: maybe set eid as endipointId\n // TODO: maybe set fw as Frameworks.join(\",\")\n\n const paramsDict = params as Record;\n for (const key of Object.keys(paramsDict)) {\n if (paramsDict[key] === undefined) {\n delete paramsDict[key];\n }\n }\n return `${getHandlerBase(auth)}?${querystring(paramsDict).slice(1)}`;\n}\n\nfunction getHandlerBase({ config }: AuthInternal): string {\n if (!config.emulator) {\n return `https://${config.authDomain}/${WIDGET_PATH}`;\n }\n\n return _emulatorUrl(config, EMULATOR_WIDGET_PATH);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, PopupRedirectResolver } from '../model/public_types';\n\nimport { AuthEventManager } from '../core/auth/auth_event_manager';\nimport { AuthErrorCode } from '../core/errors';\nimport { _assert, debugAssert, _fail } from '../core/util/assert';\nimport { _generateEventId } from '../core/util/event_id';\nimport { _getCurrentUrl } from '../core/util/location';\nimport { _validateOrigin } from '../core/util/validate_origin';\nimport { AuthInternal } from '../model/auth';\nimport {\n AuthEventType,\n EventManager,\n GapiAuthEvent,\n GapiOutcome,\n PopupRedirectResolverInternal\n} from '../model/popup_redirect';\nimport { _setWindowLocation } from './auth_window';\nimport { _openIframe } from './iframe/iframe';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { _open, AuthPopup } from './util/popup';\nimport { _getRedirectResult } from './strategies/redirect';\nimport { _getRedirectUrl } from '../core/util/handler';\nimport { _isIOS, _isMobileBrowser, _isSafari } from '../core/util/browser';\nimport { _overrideRedirectResult } from '../core/strategies/redirect';\n\n/**\n * The special web storage event\n *\n */\nconst WEB_STORAGE_SUPPORT_KEY = 'webStorageSupport';\n\ninterface WebStorageSupportMessage extends gapi.iframes.Message {\n [index: number]: Record;\n}\n\ninterface ManagerOrPromise {\n manager?: EventManager;\n promise?: Promise;\n}\n\nclass BrowserPopupRedirectResolver implements PopupRedirectResolverInternal {\n private readonly eventManagers: Record = {};\n private readonly iframes: Record = {};\n private readonly originValidationPromises: Record> = {};\n\n readonly _redirectPersistence = browserSessionPersistence;\n\n // Wrapping in async even though we don't await anywhere in order\n // to make sure errors are raised as promise rejections\n async _openPopup(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n debugAssert(\n this.eventManagers[auth._key()]?.manager,\n '_initialize() not called before _openPopup()'\n );\n\n const url = _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n return _open(auth, url, _generateEventId());\n }\n\n async _openRedirect(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n await this._originValidation(auth);\n _setWindowLocation(\n _getRedirectUrl(auth, provider, authType, _getCurrentUrl(), eventId)\n );\n return new Promise(() => {});\n }\n\n _initialize(auth: AuthInternal): Promise {\n const key = auth._key();\n if (this.eventManagers[key]) {\n const { manager, promise } = this.eventManagers[key];\n if (manager) {\n return Promise.resolve(manager);\n } else {\n debugAssert(promise, 'If manager is not set, promise should be');\n return promise;\n }\n }\n\n const promise = this.initAndGetManager(auth);\n this.eventManagers[key] = { promise };\n\n // If the promise is rejected, the key should be removed so that the\n // operation can be retried later.\n promise.catch(() => {\n delete this.eventManagers[key];\n });\n\n return promise;\n }\n\n private async initAndGetManager(auth: AuthInternal): Promise {\n const iframe = await _openIframe(auth);\n const manager = new AuthEventManager(auth);\n iframe.register(\n 'authEvent',\n (iframeEvent: GapiAuthEvent | null) => {\n _assert(iframeEvent?.authEvent, auth, AuthErrorCode.INVALID_AUTH_EVENT);\n // TODO: Consider splitting redirect and popup events earlier on\n\n const handled = manager.onEvent(iframeEvent.authEvent);\n return { status: handled ? GapiOutcome.ACK : GapiOutcome.ERROR };\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n\n this.eventManagers[auth._key()] = { manager };\n this.iframes[auth._key()] = iframe;\n return manager;\n }\n\n _isIframeWebStorageSupported(\n auth: AuthInternal,\n cb: (supported: boolean) => unknown\n ): void {\n const iframe = this.iframes[auth._key()];\n iframe.send(\n WEB_STORAGE_SUPPORT_KEY,\n { type: WEB_STORAGE_SUPPORT_KEY },\n result => {\n const isSupported = result?.[0]?.[WEB_STORAGE_SUPPORT_KEY];\n if (isSupported !== undefined) {\n cb(!!isSupported);\n }\n\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n }\n\n _originValidation(auth: AuthInternal): Promise {\n const key = auth._key();\n if (!this.originValidationPromises[key]) {\n this.originValidationPromises[key] = _validateOrigin(auth);\n }\n\n return this.originValidationPromises[key];\n }\n\n get _shouldInitProactively(): boolean {\n // Mobile browsers and Safari need to optimistically initialize\n return _isMobileBrowser() || _isSafari() || _isIOS();\n }\n\n _completeRedirectFn = _getRedirectResult;\n\n _overrideRedirectResult = _overrideRedirectResult;\n}\n\n/**\n * An implementation of {@link PopupRedirectResolver} suitable for browser\n * based applications.\n *\n * @public\n */\nexport const browserPopupRedirectResolver: PopupRedirectResolver =\n BrowserPopupRedirectResolver;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n FactorId,\n PhoneMultiFactorAssertion\n} from '../../../model/public_types';\n\nimport { MultiFactorAssertionImpl } from '../../../mfa/mfa_assertion';\nimport { AuthInternal } from '../../../model/auth';\nimport { finalizeEnrollPhoneMfa } from '../../../api/account_management/mfa';\nimport { PhoneAuthCredential } from '../../../core/credentials/phone';\nimport {\n finalizeSignInPhoneMfa,\n FinalizeMfaResponse\n} from '../../../api/authentication/mfa';\n\n/**\n * {@inheritdoc PhoneMultiFactorAssertion}\n *\n * @public\n */\nexport class PhoneMultiFactorAssertionImpl\n extends MultiFactorAssertionImpl\n implements PhoneMultiFactorAssertion\n{\n private constructor(private readonly credential: PhoneAuthCredential) {\n super(FactorId.PHONE);\n }\n\n /** @internal */\n static _fromCredential(\n credential: PhoneAuthCredential\n ): PhoneMultiFactorAssertionImpl {\n return new PhoneMultiFactorAssertionImpl(credential);\n }\n\n /** @internal */\n _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise {\n return finalizeEnrollPhoneMfa(auth, {\n idToken,\n displayName,\n phoneVerificationInfo: this.credential._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise {\n return finalizeSignInPhoneMfa(auth, {\n mfaPendingCredential,\n phoneVerificationInfo: this.credential._makeVerificationRequest()\n });\n }\n}\n\n/**\n * Provider for generating a {@link PhoneMultiFactorAssertion}.\n *\n * @public\n */\nexport class PhoneMultiFactorGenerator {\n private constructor() {}\n\n /**\n * Provides a {@link PhoneMultiFactorAssertion} to confirm ownership of the phone second factor.\n *\n * @param phoneAuthCredential - A credential provided by {@link PhoneAuthProvider.credential}.\n * @returns A {@link PhoneMultiFactorAssertion} which can be used with\n * {@link MultiFactorResolver.resolveSignIn}\n */\n static assertion(credential: PhoneAuthCredential): PhoneMultiFactorAssertion {\n return PhoneMultiFactorAssertionImpl._fromCredential(credential);\n }\n\n /**\n * The identifier of the phone second factor: `phone`.\n */\n static FACTOR_ID = 'phone';\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { FactorId, MultiFactorAssertion } from '../model/public_types';\nimport { debugFail } from '../core/util/assert';\nimport { MultiFactorSessionImpl, MultiFactorSessionType } from './mfa_session';\nimport { FinalizeMfaResponse } from '../api/authentication/mfa';\nimport { AuthInternal } from '../model/auth';\n\nexport abstract class MultiFactorAssertionImpl implements MultiFactorAssertion {\n protected constructor(readonly factorId: FactorId) {}\n\n _process(\n auth: AuthInternal,\n session: MultiFactorSessionImpl,\n displayName?: string | null\n ): Promise {\n switch (session.type) {\n case MultiFactorSessionType.ENROLL:\n return this._finalizeEnroll(auth, session.credential, displayName);\n case MultiFactorSessionType.SIGN_IN:\n return this._finalizeSignIn(auth, session.credential);\n default:\n return debugFail('unexpected MultiFactorSessionType');\n }\n }\n\n abstract _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise;\n abstract _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _registerComponent, registerVersion } from '@firebase/app';\nimport {\n Component,\n ComponentType,\n InstantiationMode\n} from '@firebase/component';\n\nimport { name, version } from '../../../package.json';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _getClientVersion, ClientPlatform } from '../util/version';\nimport { _castAuth, AuthImpl, DefaultConfig } from './auth_impl';\nimport { AuthInterop } from './firebase_internal';\nimport { ConfigInternal } from '../../model/auth';\nimport { Dependencies } from '../../model/public_types';\nimport { _initializeAuthInstance } from './initialize';\n\nexport const enum _ComponentName {\n AUTH = 'auth',\n AUTH_INTERNAL = 'auth-internal'\n}\n\nfunction getVersionForPlatform(\n clientPlatform: ClientPlatform\n): string | undefined {\n switch (clientPlatform) {\n case ClientPlatform.NODE:\n return 'node';\n case ClientPlatform.REACT_NATIVE:\n return 'rn';\n case ClientPlatform.WORKER:\n return 'webworker';\n case ClientPlatform.CORDOVA:\n return 'cordova';\n default:\n return undefined;\n }\n}\n\n/** @internal */\nexport function registerAuth(clientPlatform: ClientPlatform): void {\n _registerComponent(\n new Component(\n _ComponentName.AUTH,\n (container, { options: deps }: { options?: Dependencies }) => {\n const app = container.getProvider('app').getImmediate()!;\n const heartbeatServiceProvider =\n container.getProvider<'heartbeat'>('heartbeat');\n const { apiKey, authDomain } = app.options;\n return ((app, heartbeatServiceProvider) => {\n _assert(\n apiKey && !apiKey.includes(':'),\n AuthErrorCode.INVALID_API_KEY,\n { appName: app.name }\n );\n // Auth domain is optional if IdP sign in isn't being used\n _assert(!authDomain?.includes(':'), AuthErrorCode.ARGUMENT_ERROR, {\n appName: app.name\n });\n const config: ConfigInternal = {\n apiKey,\n authDomain,\n clientPlatform,\n apiHost: DefaultConfig.API_HOST,\n tokenApiHost: DefaultConfig.TOKEN_API_HOST,\n apiScheme: DefaultConfig.API_SCHEME,\n sdkClientVersion: _getClientVersion(clientPlatform)\n };\n\n const authInstance = new AuthImpl(\n app,\n heartbeatServiceProvider,\n config\n );\n _initializeAuthInstance(authInstance, deps);\n\n return authInstance;\n })(app, heartbeatServiceProvider);\n },\n ComponentType.PUBLIC\n )\n /**\n * Auth can only be initialized by explicitly calling getAuth() or initializeAuth()\n * For why we do this, See go/firebase-next-auth-init\n */\n .setInstantiationMode(InstantiationMode.EXPLICIT)\n /**\n * Because all firebase products that depend on auth depend on auth-internal directly,\n * we need to initialize auth-internal after auth is initialized to make it available to other firebase products.\n */\n .setInstanceCreatedCallback(\n (container, _instanceIdentifier, _instance) => {\n const authInternalProvider = container.getProvider(\n _ComponentName.AUTH_INTERNAL\n );\n authInternalProvider.initialize();\n }\n )\n );\n\n _registerComponent(\n new Component(\n _ComponentName.AUTH_INTERNAL,\n container => {\n const auth = _castAuth(\n container.getProvider(_ComponentName.AUTH).getImmediate()!\n );\n return (auth => new AuthInterop(auth))(auth);\n },\n ComponentType.PRIVATE\n ).setInstantiationMode(InstantiationMode.EXPLICIT)\n );\n\n registerVersion(name, version, getVersionForPlatform(clientPlatform));\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Unsubscribe } from '@firebase/util';\nimport { FirebaseAuthInternal } from '@firebase/auth-interop-types';\n\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\ninterface TokenListener {\n (tok: string | null): unknown;\n}\n\nexport class AuthInterop implements FirebaseAuthInternal {\n private readonly internalListeners: Map =\n new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n getUid(): string | null {\n this.assertAuthConfigured();\n return this.auth.currentUser?.uid || null;\n }\n\n async getToken(\n forceRefresh?: boolean\n ): Promise<{ accessToken: string } | null> {\n this.assertAuthConfigured();\n await this.auth._initializationPromise;\n if (!this.auth.currentUser) {\n return null;\n }\n\n const accessToken = await this.auth.currentUser.getIdToken(forceRefresh);\n return { accessToken };\n }\n\n addAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n if (this.internalListeners.has(listener)) {\n return;\n }\n\n const unsubscribe = this.auth.onIdTokenChanged(user => {\n listener(\n (user as UserInternal | null)?.stsTokenManager.accessToken || null\n );\n });\n this.internalListeners.set(listener, unsubscribe);\n this.updateProactiveRefresh();\n }\n\n removeAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n const unsubscribe = this.internalListeners.get(listener);\n if (!unsubscribe) {\n return;\n }\n\n this.internalListeners.delete(listener);\n unsubscribe();\n this.updateProactiveRefresh();\n }\n\n private assertAuthConfigured(): void {\n _assert(\n this.auth._initializationPromise,\n AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n );\n }\n\n private updateProactiveRefresh(): void {\n if (this.internalListeners.size > 0) {\n this.auth._startProactiveRefresh();\n } else {\n this.auth._stopProactiveRefresh();\n }\n }\n}\n","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, getApp, _getProvider } from '@firebase/app';\n\nimport { initializeAuth } from '..';\nimport { registerAuth } from '../core/auth/register';\nimport { ClientPlatform } from '../core/util/version';\nimport { browserLocalPersistence } from './persistence/local_storage';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { indexedDBLocalPersistence } from './persistence/indexed_db';\nimport { browserPopupRedirectResolver } from './popup_redirect';\nimport { Auth } from '../model/public_types';\n\n/**\n * Returns the Auth instance associated with the provided {@link @firebase/app#FirebaseApp}.\n * If no instance exists, initializes an Auth instance with platform-specific default dependencies.\n *\n * @param app - The Firebase App.\n *\n * @public\n */\nexport function getAuth(app: FirebaseApp = getApp()): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n return provider.getImmediate();\n }\n\n return initializeAuth(app, {\n popupRedirectResolver: browserPopupRedirectResolver,\n persistence: [\n indexedDBLocalPersistence,\n browserLocalPersistence,\n browserSessionPersistence\n ]\n });\n}\n\nregisterAuth(ClientPlatform.BROWSER);\n","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { registerVersion } from '@firebase/app';\nimport { name, version } from '../package.json';\n\nregisterVersion(name, version, 'app');\nexport * from '@firebase/app';\n","import { initializeApp } from \"firebase/app\";\nimport { getAuth } from \"firebase/auth\";\n\nconst firebaseConfig = {\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\n messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n appId: process.env.REACT_APP_FIREBASE_APP_ID,\n measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,\n};\n\nconst app = initializeApp(firebaseConfig);\n\nexport const auth = getAuth(app);\n","function formatFirebaseAuthError(errorMessage: string): string {\n const message = JSON.stringify(errorMessage)\n .replace(\"Firebase: \", \"\")\n .replace(/\\(auth.*\\)\\.?/, \"\");\n\n return JSON.parse(message)?.code;\n}\n\nexport default formatFirebaseAuthError;\n","const getUserRole = (roles?: string[]) => {\n const isOverallAdmin = roles?.includes(\"Flagit Overall Admin\");\n const isAgencyAdmin = roles?.includes(\"Flagit Agency Admin\");\n const isAgencyUser = roles?.includes(\"Flagit Agency User\");\n const isDefaultUser = !roles;\n return { isOverallAdmin, isAgencyAdmin, isAgencyUser, isDefaultUser };\n};\n\nexport default getUserRole;\n","import axiosInstance from \"../helpers/axiosInstance\";\nimport { UserDTO } from \"../interfaces/User\";\n\nconst login = (email: string, password: string) => {\n const url = \"/usersProfile/login\";\n return axiosInstance.post(url, { email, password });\n};\n\nconst register = (user: UserDTO) => {\n const url = \"/usersProfile/register\";\n return axiosInstance.post(url, user);\n};\n\nconst resendEmailVerification = (email: string) => {\n const url = `/usersProfile/email/verification/${email}`;\n return axiosInstance.get(url);\n};\nconst resetPassword = (email: string) => {\n const url = `/usersProfile/password/recover?email=${email}`;\n return axiosInstance.get(url);\n};\n\nconst refreshToken = (token: any) => {\n const url = `/usersProfile/refreshToken`;\n return axiosInstance.post(url, token);\n};\n\nconst logout = () => {\n const url = `/usersProfile/logout`;\n return axiosInstance.get(url);\n};\n\nconst authService = {\n login,\n register,\n resendEmailVerification,\n resetPassword,\n refreshToken,\n logout,\n};\n\nexport default authService;\n","import { createBrowserHistory } from \"history\";\n\nconst history = createBrowserHistory();\n\nexport default history;\n","import axios from \"axios\";\nimport authService from \"../services/authService\";\nimport history from \"./history\";\n\nconst axiosInstance = axios.create({ baseURL: process.env.REACT_APP_API_URL });\n\naxiosInstance.interceptors.request.use(\n req => {\n const token = localStorage.getItem(\"token\");\n if (req.headers && token)\n req.headers.Authorization = `Bearer ${JSON.parse(token).firebaseToken}`;\n return req;\n },\n err => {\n return Promise.reject(err);\n }\n);\n\naxiosInstance.interceptors.response.use(\n res => res,\n async err => {\n const originalConfig = err.config;\n if (originalConfig.url !== \"/usersProfile/login\" && err.response) {\n if (err.response.status === 401 && !originalConfig._retry) {\n originalConfig._retry = true;\n try {\n const token = localStorage.getItem(\"token\");\n const tokenData = JSON.parse(token ?? \"\");\n const response = await authService.refreshToken(tokenData);\n localStorage.setItem(\"token\", JSON.stringify(response.data.body));\n return axiosInstance(originalConfig);\n } catch (_error) {\n history.replace(\"/login\");\n return Promise.reject(_error);\n }\n }\n }\n return Promise.reject(err);\n }\n);\n\nexport default axiosInstance;\n","import axiosInstance from \"../helpers/axiosInstance\";\nimport { AgencyUser, AgencyUserDTO } from \"../interfaces/AgencyUser\";\n\nconst getAgencyUsers = (agencyId: number, page: number, size: number) => {\n const url = `/agencyUsers/all/${agencyId}?page=${page}&pageSize=${size}`;\n return axiosInstance.get(url);\n};\n\nconst getAgencyUsersOverallAdmin = (\n agencyId: number,\n page: number,\n size: number\n) => {\n const url = `/agencyUsers/overallAdmin/all/${agencyId}?page=${page}&pageSize=${size}`;\n return axiosInstance.get(url);\n};\n\nconst getAgencyUser = (userId: number) => {\n const url = `/agencyUsers/${userId}`;\n return axiosInstance.get(url);\n};\n\nconst createAgencyUser = (data: AgencyUserDTO) => {\n const url = `/agencyUsers`;\n return axiosInstance.post(url, data);\n};\n\nconst editAgencyUser = (data: AgencyUserDTO) => {\n const url = `/agencyUsers`;\n return axiosInstance.put(url, data);\n};\n\nconst changeAgencyUserStatus = (\n status: \"disable\" | \"enable\",\n userId: number,\n shortCode: string\n) => {\n const url = `/agencyUsers/lockout?status=${status}&UserId=${userId}&shortCode=${shortCode}`;\n return axiosInstance.put(url);\n};\n\nconst changeUserAdminStatus = (data: AgencyUser) => {\n const url = `/agencyUsers/admin`;\n return axiosInstance.put(url, data);\n};\n\nconst agencyUsersService = {\n getAgencyUsers,\n getAgencyUser,\n getAgencyUsersOverallAdmin,\n createAgencyUser,\n changeUserAdminStatus,\n editAgencyUser,\n changeAgencyUserStatus,\n};\n\nexport default agencyUsersService;\n","import axiosInstance from \"../helpers/axiosInstance\";\nimport { EditUserDTO } from \"../interfaces/User\";\n\nconst getUserInfo = () => {\n const url = \"/usersProfile\";\n return axiosInstance.get(url);\n};\n\nconst getAllUsers = (page: number, size: number) => {\n const url = `/usersProfile/users?page=${page}&pageSize=${size}`;\n return axiosInstance.get(url);\n};\n\nconst exportUsers = (page: number, size: number) => {\n const url = `/usersProfile/export?page=${page}&pageSize=${size}`;\n return axiosInstance.get(url, { responseType: \"blob\" });\n};\n\nconst getUserByEmail = (email: string) => {\n const url = `/usersProfile/${email}`;\n return axiosInstance.get(url);\n};\n\nconst editUser = (body: EditUserDTO) => {\n const url = `/usersProfile`;\n return axiosInstance.put(url, body);\n};\n\nconst deleteProfileImage = (body: EditUserDTO) => {\n const url = `/usersProfile`;\n return axiosInstance.put(url, body);\n};\n\nconst usersService = {\n getUserInfo,\n editUser,\n getUserByEmail,\n deleteProfileImage,\n getAllUsers,\n exportUsers,\n};\n\nexport default usersService;\n","import { useToast } from \"@chakra-ui/react\";\nimport {\n ConfirmationResult,\n RecaptchaVerifier,\n signInWithPhoneNumber\n} from \"firebase/auth\";\nimport jwt_decode from \"jwt-decode\";\nimport React, { useState } from \"react\";\nimport { useQueryClient } from \"react-query\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { auth as firebaseAuth } from \"../firebase\";\nimport formatFirebaseAuthError from \"../helpers/formatFirebaseAuthError\";\nimport getUserRole from \"../helpers/getUserRole\";\nimport { UserDTO, UserProfile } from \"../interfaces/User\";\nimport agencyUsersService from \"../services/agencyUsersService\";\nimport authService from \"../services/authService\";\nimport usersService from \"../services/usersService\";\n\nexport interface IAuthContext {\n loading: boolean;\n user: UserProfile | null;\n userData: UserDTO | null;\n setUserData: React.Dispatch>;\n login: (email: string, password: string) => void;\n register: (data: UserDTO) => void;\n getUserInfo: (redirect: boolean) => void;\n refreshToken: (refreshToken: any) => void;\n confirmPhoneNumber: (code: string) => void;\n verifyPhoneNumber: (userData: UserDTO, verifier: RecaptchaVerifier) => void;\n resendEmailVerification: () => void;\n logout: () => void;\n}\n\nconst AuthContext = React.createContext(null);\nexport const AuthProvider = ({ children }: { children: React.ReactNode }) => {\n const getToken = () => localStorage.getItem(\"token\");\n const getUser = () => {\n const user = localStorage.getItem(\"user\");\n if (!user) return null;\n const userData = JSON.parse(user);\n return userData;\n };\n const [user, setUser] = useState(getUser());\n const [loading, setLoading] = useState(false);\n const [userData, setUserData] = useState(null);\n const [result, setResult] = useState(null);\n const navigate = useNavigate();\n const location = useLocation();\n const state = location.state as { from: string };\n const toast = useToast();\n const queryClient = useQueryClient();\n\n const register = (user: UserDTO) => {\n setLoading(true);\n authService\n .register(user)\n .then(() => {\n setUserData(user);\n navigate(\"/verify-email\");\n setLoading(false);\n })\n .catch(err => {\n console.error(err.response);\n toast({\n title: \"User registration failed\",\n description: err.response?.data?.message,\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setLoading(false);\n });\n };\n\n const verifyPhoneNumber = (\n userData: UserDTO,\n verifier: RecaptchaVerifier\n ) => {\n if (!userData || !verifier) return;\n setLoading(true);\n\n signInWithPhoneNumber(firebaseAuth, userData.phoneNumber, verifier)\n .then(confirmationResult => {\n setUserData(userData);\n navigate(\"/verify\");\n setResult(confirmationResult);\n setLoading(false);\n (verifier as any).recaptcha.reset();\n })\n .catch(err => {\n console.error(err);\n toast({\n title: \"Phone number verification failed\",\n description: formatFirebaseAuthError(err),\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setLoading(false);\n (verifier as any).recaptcha.reset();\n });\n };\n\n const resendEmailVerification = () => {\n if (!userData) return;\n setLoading(true);\n\n authService\n .resendEmailVerification(userData.email)\n .then(() => {\n toast({\n title: \"Email verification sent\",\n description: \"Please check your mail\",\n status: \"success\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setLoading(false);\n })\n .catch(err => {\n console.error(err);\n toast({\n title: \"Failed to send verification email\",\n description: \"Please try again later\",\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setLoading(false);\n });\n };\n\n const confirmPhoneNumber = (code: string) => {\n if (!result) {\n toast({\n title: \"Phone number verification failed\",\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n return;\n }\n setLoading(true);\n\n result\n .confirm(code)\n .then(() => {\n if (userData) register(userData);\n })\n .catch(err => {\n console.error(err);\n toast({\n title: \"Phone number verification failed\",\n description: formatFirebaseAuthError(err),\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setLoading(false);\n });\n };\n\n const login = (email: string, password: string) => {\n setLoading(true);\n\n authService\n .login(email, password)\n .then(res => {\n localStorage.setItem(\"token\", JSON.stringify(res.data.body));\n getUserInfo(true);\n })\n .catch(err => {\n console.error(err.response);\n toast({\n title: \"Login failed\",\n description: err.response?.data?.message,\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n if (err.response?.data?.message === \"Email Not verified\") {\n setUserData({\n firstName: \"\",\n lastName: \"\",\n email: email,\n phoneNumber: \"\",\n password: \"\",\n confirmPassword: \"\",\n });\n navigate(\"/verify-email\");\n }\n localStorage.removeItem(\"token\");\n setLoading(false);\n });\n };\n\n const getUserInfo = (redirect: boolean) => {\n usersService\n .getUserInfo()\n .then(res => {\n const user = getUser();\n const token = getToken();\n if (token) {\n const parsedToken = JSON.parse(token);\n const decodedToken: any = jwt_decode(parsedToken.firebaseToken);\n setUser(prev => ({ ...prev, ...res.data.body, ...decodedToken }));\n localStorage.setItem(\n \"user\",\n JSON.stringify({ ...user, ...res.data.body, ...decodedToken })\n );\n const { isAgencyUser, isAgencyAdmin } = getUserRole(\n decodedToken.roles\n );\n if (!!isAgencyUser || !!isAgencyAdmin) {\n getAgencyUserInfo(res.data.body.id, redirect);\n } else {\n if (redirect) {\n if (state?.from) navigate(state.from, { replace: true });\n else navigate(\"/\", { replace: true });\n }\n setLoading(false);\n }\n }\n })\n .catch(err => {\n console.error(err);\n toast({\n title: \"Login failed\",\n description: err.response?.data?.message,\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setUser(null);\n localStorage.clear();\n setLoading(false);\n });\n };\n\n const getAgencyUserInfo = (userId: number, redirect?: boolean) => {\n agencyUsersService\n .getAgencyUser(userId)\n .then(res => {\n const agency = res.data.body.agency;\n const user = getUser();\n setUser(prev => ({ ...prev, agency }));\n localStorage.setItem(\"user\", JSON.stringify({ ...user, agency }));\n if (redirect) {\n if (state?.from) navigate(state.from, { replace: true });\n else navigate(\"/\", { replace: true });\n }\n setLoading(false);\n })\n .catch(err => {\n console.error(err.response);\n toast({\n title: \"Login failed\",\n description: err.response?.data?.message,\n status: \"error\",\n duration: 5000,\n isClosable: true,\n position: \"top-right\",\n });\n setUser(null);\n localStorage.clear();\n setLoading(false);\n });\n };\n\n const refreshToken = (tokenData: any) => {\n authService\n .refreshToken(tokenData)\n .then(res => {\n localStorage.setItem(\"token\", JSON.stringify(res.data.body));\n getUserInfo(false);\n })\n .catch(() => {\n navigate(\"/login\", { state: { from: location.pathname } });\n localStorage.clear();\n });\n };\n\n const logout = () => {\n navigate(\"/\");\n setUser(null);\n queryClient.clear();\n authService\n .logout()\n .catch(err => console.error(err.response))\n .then(() => localStorage.clear());\n };\n\n const auth: IAuthContext = {\n login,\n register,\n getUserInfo,\n logout,\n user,\n userData,\n setUserData,\n loading,\n refreshToken,\n verifyPhoneNumber,\n confirmPhoneNumber,\n resendEmailVerification,\n };\n\n return {children};\n};\n\nexport const useAuth = () => React.useContext(AuthContext);\n","import { forwardRef, chakra, useStyleConfig, omitThemingProps, useMultiStyleConfig, tokenToCSSVar } from '@chakra-ui/system';\nimport { cx, mapResponsive, __DEV__, filterUndefined, isNull, isNumber } from '@chakra-ui/utils';\nimport * as React from 'react';\nimport { Icon } from '@chakra-ui/icon';\nimport { createContext, getValidChildren } from '@chakra-ui/react-utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded$h = [\"ratio\", \"children\", \"className\"];\n\n/**\n * React component used to cropping media (videos, images and maps)\n * to a desired aspect ratio.\n *\n * @see Docs https://chakra-ui.com/aspectratiobox\n */\nvar AspectRatio = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$ratio = props.ratio,\n ratio = _props$ratio === void 0 ? 4 / 3 : _props$ratio,\n children = props.children,\n className = props.className,\n rest = _objectWithoutPropertiesLoose(props, _excluded$h); // enforce single child\n\n\n var child = React.Children.only(children);\n\n var _className = cx(\"chakra-aspect-ratio\", className);\n\n return /*#__PURE__*/React.createElement(chakra.div, _extends({\n ref: ref,\n position: \"relative\",\n className: _className,\n _before: {\n height: 0,\n content: \"\\\"\\\"\",\n display: \"block\",\n paddingBottom: mapResponsive(ratio, function (r) {\n return 1 / r * 100 + \"%\";\n })\n },\n __css: {\n \"& > *:not(style)\": {\n overflow: \"hidden\",\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\"\n },\n \"& > img, & > video\": {\n objectFit: \"cover\"\n }\n }\n }, rest), child);\n});\n\nif (__DEV__) {\n AspectRatio.displayName = \"AspectRatio\";\n}\n\nvar _excluded$g = [\"className\"];\n\n/**\n * React component used to display notifications, messages, or\n * statuses in different shapes and sizes.\n *\n * @see Docs https://chakra-ui.com/badge\n */\nvar Badge = /*#__PURE__*/forwardRef(function (props, ref) {\n var styles = useStyleConfig(\"Badge\", props);\n\n var _omitThemingProps = omitThemingProps(props);\n _omitThemingProps.className;\n var rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded$g);\n\n return /*#__PURE__*/React.createElement(chakra.span, _extends({\n ref: ref,\n className: cx(\"chakra-badge\", props.className)\n }, rest, {\n __css: _extends({\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"middle\"\n }, styles)\n }));\n});\n\nif (__DEV__) {\n Badge.displayName = \"Badge\";\n}\n\nvar _excluded$f = [\"size\", \"centerContent\"],\n _excluded2$5 = [\"size\"];\n\n/**\n * Box is the most abstract component on top of which other chakra\n * components are built. It renders a `div` element by default.\n *\n * @see Docs https://chakra-ui.com/box\n */\nvar Box = chakra(\"div\");\n\nif (__DEV__) {\n Box.displayName = \"Box\";\n}\n/**\n * As a constraint, you can't pass size related props\n * Only `size` would be allowed\n */\n\n\nvar Square = /*#__PURE__*/forwardRef(function (props, ref) {\n var size = props.size,\n _props$centerContent = props.centerContent,\n centerContent = _props$centerContent === void 0 ? true : _props$centerContent,\n rest = _objectWithoutPropertiesLoose(props, _excluded$f);\n\n var styles = centerContent ? {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n } : {};\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n boxSize: size,\n __css: _extends({}, styles, {\n flexShrink: 0,\n flexGrow: 0\n })\n }, rest));\n});\n\nif (__DEV__) {\n Square.displayName = \"Square\";\n}\n\nvar Circle = /*#__PURE__*/forwardRef(function (props, ref) {\n var size = props.size,\n rest = _objectWithoutPropertiesLoose(props, _excluded2$5);\n\n return /*#__PURE__*/React.createElement(Square, _extends({\n size: size,\n ref: ref,\n borderRadius: \"9999px\"\n }, rest));\n});\n\nif (__DEV__) {\n Circle.displayName = \"Circle\";\n}\n\nvar _excluded$e = [\"axis\"];\n\n/**\n * React component used to horizontally and vertically center its child.\n * It uses the popular `display: flex` centering technique.\n *\n * @see Docs https://chakra-ui.com/center\n */\nvar Center = chakra(\"div\", {\n baseStyle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n});\n\nif (__DEV__) {\n Center.displayName = \"Center\";\n}\n\nvar centerStyles = {\n horizontal: {\n insetStart: \"50%\",\n transform: \"translateX(-50%)\"\n },\n vertical: {\n top: \"50%\",\n transform: \"translateY(-50%)\"\n },\n both: {\n insetStart: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\"\n }\n};\n/**\n * React component used to horizontally and vertically center an element\n * relative to its parent dimensions.\n *\n * It uses the `position: absolute` strategy.\n *\n * @see Docs https://chakra-ui.com/center\n * @see WebDev https://web.dev/centering-in-css/#5.-pop-and-plop\n */\n\nvar AbsoluteCenter = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$axis = props.axis,\n axis = _props$axis === void 0 ? \"both\" : _props$axis,\n rest = _objectWithoutPropertiesLoose(props, _excluded$e);\n\n return /*#__PURE__*/React.createElement(chakra.div, _extends({\n ref: ref,\n __css: centerStyles[axis]\n }, rest, {\n position: \"absolute\"\n }));\n});\n\nvar _excluded$d = [\"className\"];\n\n/**\n * React component to render inline code snippets.\n *\n * @see Docs https://chakra-ui.com/code\n */\nvar Code = /*#__PURE__*/forwardRef(function (props, ref) {\n var styles = useStyleConfig(\"Code\", props);\n\n var _omitThemingProps = omitThemingProps(props);\n _omitThemingProps.className;\n var rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded$d);\n\n return /*#__PURE__*/React.createElement(chakra.code, _extends({\n ref: ref,\n className: cx(\"chakra-code\", props.className)\n }, rest, {\n __css: _extends({\n display: \"inline-block\"\n }, styles)\n }));\n});\n\nif (__DEV__) {\n Code.displayName = \"Code\";\n}\n\nvar _excluded$c = [\"className\", \"centerContent\"];\n\n/**\n * Layout component used to wrap app or website content\n *\n * It sets `margin-left` and `margin-right` to `auto`,\n * to keep its content centered.\n *\n * It also sets a default max-width of `60ch` (60 characters).\n */\nvar Container = /*#__PURE__*/forwardRef(function (props, ref) {\n var _omitThemingProps = omitThemingProps(props),\n className = _omitThemingProps.className,\n centerContent = _omitThemingProps.centerContent,\n rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded$c);\n\n var styles = useStyleConfig(\"Container\", props);\n return /*#__PURE__*/React.createElement(chakra.div, _extends({\n ref: ref,\n className: cx(\"chakra-container\", className)\n }, rest, {\n __css: _extends({}, styles, centerContent && {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\"\n })\n }));\n});\n\nif (__DEV__) {\n Container.displayName = \"Container\";\n}\n\nvar _excluded$b = [\"borderLeftWidth\", \"borderBottomWidth\", \"borderTopWidth\", \"borderRightWidth\", \"borderWidth\", \"borderStyle\", \"borderColor\"],\n _excluded2$4 = [\"className\", \"orientation\", \"__css\"];\n/**\n * Layout component used to visually separate content in a list or group.\n * It displays a thin horizontal or vertical line, and renders a `hr` tag.\n *\n * @see Docs https://chakra-ui.com/divider\n */\n\nvar Divider = /*#__PURE__*/forwardRef(function (props, ref) {\n var _useStyleConfig = useStyleConfig(\"Divider\", props),\n borderLeftWidth = _useStyleConfig.borderLeftWidth,\n borderBottomWidth = _useStyleConfig.borderBottomWidth,\n borderTopWidth = _useStyleConfig.borderTopWidth,\n borderRightWidth = _useStyleConfig.borderRightWidth,\n borderWidth = _useStyleConfig.borderWidth,\n borderStyle = _useStyleConfig.borderStyle,\n borderColor = _useStyleConfig.borderColor,\n styles = _objectWithoutPropertiesLoose(_useStyleConfig, _excluded$b);\n\n var _omitThemingProps = omitThemingProps(props),\n className = _omitThemingProps.className,\n _omitThemingProps$ori = _omitThemingProps.orientation,\n orientation = _omitThemingProps$ori === void 0 ? \"horizontal\" : _omitThemingProps$ori,\n __css = _omitThemingProps.__css,\n rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded2$4);\n\n var dividerStyles = {\n vertical: {\n borderLeftWidth: borderLeftWidth || borderRightWidth || borderWidth || \"1px\",\n height: \"100%\"\n },\n horizontal: {\n borderBottomWidth: borderBottomWidth || borderTopWidth || borderWidth || \"1px\",\n width: \"100%\"\n }\n };\n return /*#__PURE__*/React.createElement(chakra.hr, _extends({\n ref: ref,\n \"aria-orientation\": orientation\n }, rest, {\n __css: _extends({}, styles, {\n border: \"0\",\n borderColor: borderColor,\n borderStyle: borderStyle\n }, dividerStyles[orientation], __css),\n className: cx(\"chakra-divider\", className)\n }));\n});\n\nif (__DEV__) {\n Divider.displayName = \"Divider\";\n}\n\nvar _excluded$a = [\"direction\", \"align\", \"justify\", \"wrap\", \"basis\", \"grow\", \"shrink\"];\n\n/**\n * React component used to create flexbox layouts.\n *\n * It renders a `div` with `display: flex` and\n * comes with helpful style shorthand.\n *\n * @see Docs https://chakra-ui.com/flex\n */\nvar Flex = /*#__PURE__*/forwardRef(function (props, ref) {\n var direction = props.direction,\n align = props.align,\n justify = props.justify,\n wrap = props.wrap,\n basis = props.basis,\n grow = props.grow,\n shrink = props.shrink,\n rest = _objectWithoutPropertiesLoose(props, _excluded$a);\n\n var styles = {\n display: \"flex\",\n flexDirection: direction,\n alignItems: align,\n justifyContent: justify,\n flexWrap: wrap,\n flexBasis: basis,\n flexGrow: grow,\n flexShrink: shrink\n };\n return /*#__PURE__*/React.createElement(chakra.div, _extends({\n ref: ref,\n __css: styles\n }, rest));\n});\n\nif (__DEV__) {\n Flex.displayName = \"Flex\";\n}\n\nvar _excluded$9 = [\"templateAreas\", \"gap\", \"rowGap\", \"columnGap\", \"column\", \"row\", \"autoFlow\", \"autoRows\", \"templateRows\", \"autoColumns\", \"templateColumns\"],\n _excluded2$3 = [\"area\", \"colSpan\", \"colStart\", \"colEnd\", \"rowEnd\", \"rowSpan\", \"rowStart\"];\n\n/**\n * React component used to create grid layouts.\n *\n * It renders a `div` with `display: grid` and\n * comes with helpful style shorthand.\n *\n * @see Docs https://chakra-ui.com/grid\n */\nvar Grid = /*#__PURE__*/forwardRef(function (props, ref) {\n var templateAreas = props.templateAreas,\n gap = props.gap,\n rowGap = props.rowGap,\n columnGap = props.columnGap,\n column = props.column,\n row = props.row,\n autoFlow = props.autoFlow,\n autoRows = props.autoRows,\n templateRows = props.templateRows,\n autoColumns = props.autoColumns,\n templateColumns = props.templateColumns,\n rest = _objectWithoutPropertiesLoose(props, _excluded$9);\n\n var styles = {\n display: \"grid\",\n gridTemplateAreas: templateAreas,\n gridGap: gap,\n gridRowGap: rowGap,\n gridColumnGap: columnGap,\n gridAutoColumns: autoColumns,\n gridColumn: column,\n gridRow: row,\n gridAutoFlow: autoFlow,\n gridAutoRows: autoRows,\n gridTemplateRows: templateRows,\n gridTemplateColumns: templateColumns\n };\n return /*#__PURE__*/React.createElement(chakra.div, _extends({\n ref: ref,\n __css: styles\n }, rest));\n});\n\nif (__DEV__) {\n Grid.displayName = \"Grid\";\n}\n\nfunction spanFn(span) {\n return mapResponsive(span, function (value) {\n return value === \"auto\" ? \"auto\" : \"span \" + value + \"/span \" + value;\n });\n}\n\nvar GridItem = /*#__PURE__*/forwardRef(function (props, ref) {\n var area = props.area,\n colSpan = props.colSpan,\n colStart = props.colStart,\n colEnd = props.colEnd,\n rowEnd = props.rowEnd,\n rowSpan = props.rowSpan,\n rowStart = props.rowStart,\n rest = _objectWithoutPropertiesLoose(props, _excluded2$3);\n\n var styles = filterUndefined({\n gridArea: area,\n gridColumn: spanFn(colSpan),\n gridRow: spanFn(rowSpan),\n gridColumnStart: colStart,\n gridColumnEnd: colEnd,\n gridRowStart: rowStart,\n gridRowEnd: rowEnd\n });\n return /*#__PURE__*/React.createElement(chakra.div, _extends({\n ref: ref,\n __css: styles\n }, rest));\n});\n\nvar _excluded$8 = [\"className\"];\nvar Heading = /*#__PURE__*/forwardRef(function (props, ref) {\n var styles = useStyleConfig(\"Heading\", props);\n\n var _omitThemingProps = omitThemingProps(props);\n _omitThemingProps.className;\n var rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded$8);\n\n return /*#__PURE__*/React.createElement(chakra.h2, _extends({\n ref: ref,\n className: cx(\"chakra-heading\", props.className)\n }, rest, {\n __css: styles\n }));\n});\n\nif (__DEV__) {\n Heading.displayName = \"Heading\";\n}\n\nvar _excluded$7 = [\"className\"];\n\n/**\n * Semantic component to render a keyboard shortcut\n * within an application.\n *\n * @example\n *\n * ```jsx\n * ⌘ + T\n * ```\n *\n * @see Docs https://chakra-ui.com/kbd\n */\nvar Kbd = /*#__PURE__*/forwardRef(function (props, ref) {\n var styles = useStyleConfig(\"Kbd\", props);\n\n var _omitThemingProps = omitThemingProps(props),\n className = _omitThemingProps.className,\n rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded$7);\n\n return /*#__PURE__*/React.createElement(chakra.kbd, _extends({\n ref: ref,\n className: cx(\"chakra-kbd\", className)\n }, rest, {\n __css: _extends({\n fontFamily: \"mono\"\n }, styles)\n }));\n});\n\nif (__DEV__) {\n Kbd.displayName = \"Kbd\";\n}\n\nvar _excluded$6 = [\"className\", \"isExternal\"];\n\n/**\n * Links are accessible elements used primarily for navigation.\n *\n * It integrates well with other routing libraries like\n * React Router, Reach Router and Next.js Link.\n *\n * @example\n *\n * ```jsx\n * Home\n * ```\n *\n * @see Docs https://chakra-ui.com/link\n */\nvar Link = /*#__PURE__*/forwardRef(function (props, ref) {\n var styles = useStyleConfig(\"Link\", props);\n\n var _omitThemingProps = omitThemingProps(props),\n className = _omitThemingProps.className,\n isExternal = _omitThemingProps.isExternal,\n rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded$6);\n\n return /*#__PURE__*/React.createElement(chakra.a, _extends({\n target: isExternal ? \"_blank\" : undefined,\n rel: isExternal ? \"noopener\" : undefined,\n ref: ref,\n className: cx(\"chakra-link\", className)\n }, rest, {\n __css: styles\n }));\n});\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nvar _excluded$5 = [\"children\", \"styleType\", \"stylePosition\", \"spacing\"],\n _excluded2$2 = [\"as\"],\n _excluded3 = [\"as\"];\n\nvar _createContext = createContext({\n name: \"StylesContext\",\n errorMessage: \"useStyles: `styles` is undefined. Seems you forgot to wrap the components in a `<*List />` \"\n}),\n StylesProvider = _createContext[0],\n useStyles = _createContext[1];\n\n/**\n * List is used to display list items, it renders a `