{"version":3,"file":"module.js","mappings":"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","sources":["webpack://grafana-pyroscope-app/../node_modules/@protobufjs/aspromise/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/base64/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/codegen/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/eventemitter/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/fetch/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/float/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/inquire/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/path/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/pool/index.js","webpack://grafana-pyroscope-app/../node_modules/@protobufjs/utf8/index.js","webpack://grafana-pyroscope-app/../node_modules/color-convert/conversions.js","webpack://grafana-pyroscope-app/../node_modules/color-convert/index.js","webpack://grafana-pyroscope-app/../node_modules/color-convert/route.js","webpack://grafana-pyroscope-app/../node_modules/color-name/index.js","webpack://grafana-pyroscope-app/../node_modules/color-string/index.js","webpack://grafana-pyroscope-app/../node_modules/color/index.js","webpack://grafana-pyroscope-app/../node_modules/file-saver/dist/FileSaver.min.js","webpack://grafana-pyroscope-app/../node_modules/lodash.isequal/index.js","webpack://grafana-pyroscope-app/../node_modules/object-assign/index.js","webpack://grafana-pyroscope-app/../node_modules/prop-types/factoryWithThrowingShims.js","webpack://grafana-pyroscope-app/../node_modules/prop-types/index.js","webpack://grafana-pyroscope-app/../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/light.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/converter.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/decoder.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/encoder.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/enum.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/field.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/index-light.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/index-minimal.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/mapfield.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/message.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/method.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/namespace.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/object.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/oneof.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/reader.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/reader_buffer.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/root.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/roots.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/rpc.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/rpc/service.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/service.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/type.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/types.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/util.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/util/longbits.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/util/minimal.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/verifier.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/wrappers.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/writer.js","webpack://grafana-pyroscope-app/../node_modules/protobufjs/src/writer_buffer.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/Draggable.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/DraggableCore.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/cjs.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/utils/domFns.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/utils/getPrefix.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/utils/log.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/utils/positionFns.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/build/cjs/utils/shims.js","webpack://grafana-pyroscope-app/../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js","webpack://grafana-pyroscope-app/../node_modules/react-fast-compare/index.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/GridItem.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/ReactGridLayout.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/calculateUtils.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/components/WidthProvider.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/fastRGLPropsEqual.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/responsiveUtils.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/build/utils.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/index.js","webpack://grafana-pyroscope-app/../node_modules/react-grid-layout/node_modules/clsx/dist/clsx.m.js","webpack://grafana-pyroscope-app/../node_modules/react-resizable/build/Resizable.js","webpack://grafana-pyroscope-app/../node_modules/react-resizable/build/ResizableBox.js","webpack://grafana-pyroscope-app/../node_modules/react-resizable/build/propTypes.js","webpack://grafana-pyroscope-app/../node_modules/react-resizable/build/utils.js","webpack://grafana-pyroscope-app/../node_modules/react-resizable/index.js","webpack://grafana-pyroscope-app/../node_modules/react-side-effect/lib/index.js","webpack://grafana-pyroscope-app/../node_modules/react-use/lib/useDebounce.js","webpack://grafana-pyroscope-app/../node_modules/react-use/lib/usePrevious.js","webpack://grafana-pyroscope-app/../node_modules/react-use/lib/useTimeoutFn.js","webpack://grafana-pyroscope-app/../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://grafana-pyroscope-app/../node_modules/react/jsx-runtime.js","webpack://grafana-pyroscope-app/../node_modules/semver/classes/comparator.js","webpack://grafana-pyroscope-app/../node_modules/semver/classes/range.js","webpack://grafana-pyroscope-app/../node_modules/semver/classes/semver.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/clean.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/cmp.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/coerce.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/compare-build.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/compare-loose.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/compare.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/diff.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/eq.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/gt.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/gte.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/inc.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/lt.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/lte.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/major.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/minor.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/neq.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/parse.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/patch.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/prerelease.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/rcompare.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/rsort.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/satisfies.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/sort.js","webpack://grafana-pyroscope-app/../node_modules/semver/functions/valid.js","webpack://grafana-pyroscope-app/../node_modules/semver/index.js","webpack://grafana-pyroscope-app/../node_modules/semver/internal/constants.js","webpack://grafana-pyroscope-app/../node_modules/semver/internal/debug.js","webpack://grafana-pyroscope-app/../node_modules/semver/internal/identifiers.js","webpack://grafana-pyroscope-app/../node_modules/semver/internal/lrucache.js","webpack://grafana-pyroscope-app/../node_modules/semver/internal/parse-options.js","webpack://grafana-pyroscope-app/../node_modules/semver/internal/re.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/gtr.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/intersects.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/ltr.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/max-satisfying.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/min-satisfying.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/min-version.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/outside.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/simplify.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/subset.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/to-comparators.js","webpack://grafana-pyroscope-app/../node_modules/semver/ranges/valid.js","webpack://grafana-pyroscope-app/../node_modules/simple-swizzle/index.js","webpack://grafana-pyroscope-app/../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","webpack://grafana-pyroscope-app/../node_modules/ua-parser-js/src/ua-parser.js","webpack://grafana-pyroscope-app/external amd \"@emotion/css\"","webpack://grafana-pyroscope-app/external amd \"@grafana/data\"","webpack://grafana-pyroscope-app/external amd \"@grafana/runtime\"","webpack://grafana-pyroscope-app/external amd \"@grafana/ui\"","webpack://grafana-pyroscope-app/external amd \"d3\"","webpack://grafana-pyroscope-app/external amd \"lodash\"","webpack://grafana-pyroscope-app/external amd \"module\"","webpack://grafana-pyroscope-app/external amd \"react\"","webpack://grafana-pyroscope-app/external amd \"react-dom\"","webpack://grafana-pyroscope-app/external amd \"react-router\"","webpack://grafana-pyroscope-app/external amd \"rxjs\"","webpack://grafana-pyroscope-app/../node_modules/react-use/node_modules/tslib/tslib.es6.mjs","webpack://grafana-pyroscope-app/webpack/bootstrap","webpack://grafana-pyroscope-app/webpack/runtime/amd options","webpack://grafana-pyroscope-app/webpack/runtime/compat get default export","webpack://grafana-pyroscope-app/webpack/runtime/define property getters","webpack://grafana-pyroscope-app/webpack/runtime/global","webpack://grafana-pyroscope-app/webpack/runtime/hasOwnProperty shorthand","webpack://grafana-pyroscope-app/webpack/runtime/make namespace object","webpack://grafana-pyroscope-app/webpack/runtime/node module decorator","webpack://grafana-pyroscope-app/webpack/runtime/publicPath","webpack://grafana-pyroscope-app/./node_modules/grafana-public-path.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/utils.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/notifyManager.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/subscribable.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/focusManager.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/onlineManager.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/retryer.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/removable.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/query.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/queryCache.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/mutation.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/mutationCache.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","webpack://grafana-pyroscope-app/./shared/infrastructure/react-query/queryClient.ts","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/queryClient.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/transports/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/date.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/is.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/deepEqual.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/exceptions/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/exceptions/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/logLevels.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/logs/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/traces/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/meta/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/logs/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/measurements/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/api/events/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/noop.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/internalLogger/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/unpatchedConsole/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/internalLogger/createInternalLogger.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/internalLogger/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/globalObject/globalObject.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/version.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/sdk/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/sdk/registerFaro.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/sdk/internalFaroGlobalObject.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/sdk/faroGlobalObject.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/transports/batchExecutor.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/transports/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/unpatchedConsole/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/metas/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/instrumentations/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/metas/registerInitial.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/sourceMaps.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/transports/registerInitial.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/instrumentations/registerInitial.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/config/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/consts.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/buildStackFrame.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/getStackFramesFromError.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/parseStacktrace.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sessionConstants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/consts.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/browser/meta.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/page/meta.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/k6/meta.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/extensions/baseExtension.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/transports/base.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/transports/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/utils/throttle.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/utils/webStorage.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sampling.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/shortId.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sessionManagerUtils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/PersistentSessionsManager.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/VolatileSessionManager.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/getSessionManagerByConfig.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/transports/fetch/transport.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/utils/promiseBuffer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/instrumentations/base.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/const.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/getErrorDetails.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/registerOnerror.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/getValueAndTypeFromMessage.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/registerOnunhandledrejection.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/instrumentation.js","webpack://grafana-pyroscope-app/../node_modules/web-vitals/dist/web-vitals.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/webVitalsBasic.js","webpack://grafana-pyroscope-app/../node_modules/web-vitals/dist/web-vitals.attribution.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/instrumentationConstants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/webVitalsWithAttribution.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/instrumentation.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-core/dist/esm/semantic.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/instrumentation.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/metas/session/createSession.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/view/instrumentation.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/performanceConstants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/performanceUtils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/resource.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/instrumentation.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/navigation.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/console/instrumentation.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/config/getWebInstrumentations.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/initialize.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/faro-web-sdk/dist/esm/config/makeCoreConfig.js","webpack://grafana-pyroscope-app/./constants.ts","webpack://grafana-pyroscope-app/./version.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/tracking/getEnvironment.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/tracking/faro/faro-environments.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/tracking/faro/faro.ts","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","webpack://grafana-pyroscope-app/./shared/infrastructure/tracking/logger.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/userStorage.ts","webpack://grafana-pyroscope-app/./shared/domain/noOp.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/http/HttpClientError.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/http/HttpClient.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/http/ApiClient.ts","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/queryObserver.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/isRestoring.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/utils.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/suspense.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/useQuery.js","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","webpack://grafana-pyroscope-app/./app/components/Onboarding/infrastructure/statsApiClient.ts","webpack://grafana-pyroscope-app/./app/components/Onboarding/domain/useOnboarding.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/infrastructure/useFetchTenantStats.ts","webpack://grafana-pyroscope-app/./shared/components/QueryAnalysisTooltip/QueryAnalysisTooltip.tsx","webpack://grafana-pyroscope-app/../node_modules/react-helmet/es/Helmet.js","webpack://grafana-pyroscope-app/./shared/ui/PyroscopeLogo.tsx","webpack://grafana-pyroscope-app/./shared/ui/PluginInfo.tsx","webpack://grafana-pyroscope-app/./shared/ui/PageTitle.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/ui/EmptyLoadingPage.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/ui/StyledLink.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/ui/NoDataSourcePage.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/domain/useOnboardingModal.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/infrastructure/useFetchInstances.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/ui/OnboardingModal.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/ui/OnboardingPage.tsx","webpack://grafana-pyroscope-app/./app/components/Onboarding/Onboarding.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/AdHocColums.tsx","webpack://grafana-pyroscope-app/./shared/domain/displayStatus.ts","webpack://grafana-pyroscope-app/./pages/AdHocView/infrastructure/adHocProfileClient.ts","webpack://grafana-pyroscope-app/./pages/AdHocView/infrastructure/helpers/stripBase64Prefix.ts","webpack://grafana-pyroscope-app/./pages/AdHocView/domain/useUploadFile.ts","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/AdHocFileDropZone.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/domain/accepted-file-types.ts","webpack://grafana-pyroscope-app/../node_modules/@leeoniya/ufuzzy/dist/uFuzzy.esm.js","webpack://grafana-pyroscope-app/../node_modules/react-use/esm/misc/util.js","webpack://grafana-pyroscope-app/../node_modules/react-use/esm/useIsomorphicLayoutEffect.js","webpack://grafana-pyroscope-app/../node_modules/react-use/esm/useMeasure.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/constants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/FlameGraphContextMenu.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/FlameGraphTooltip.js","webpack://grafana-pyroscope-app/../node_modules/tinycolor2/esm/tinycolor.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/types.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/colors.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/murmur3.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/rendering.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/FlameGraphCanvas.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/FlameGraphMetadata.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/FlameGraph.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/treeTransforms.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraph/dataTransform.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraphHeader.js","webpack://grafana-pyroscope-app/../node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/TopTable/FlameGraphTopTableContainer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/flamegraph/dist/esm/FlameGraphContainer.js","webpack://grafana-pyroscope-app/./shared/domain/reportInteraction.ts","webpack://grafana-pyroscope-app/../node_modules/fflate/esm/browser.js","webpack://grafana-pyroscope-app/../node_modules/compression-streams-polyfill/esm/ponyfill.mjs","webpack://grafana-pyroscope-app/../node_modules/compression-streams-polyfill/esm/index.mjs","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/components/infrastructure/flamegraphDotComApiClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/domain/types.ts","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/components/domain/getExportFilename.ts","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/components/domain/useExportMenu.ts","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/components/ExportMenu.tsx","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/components/ExportData.tsx","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/domain/flamebearerToDataFrameDTO.ts","webpack://grafana-pyroscope-app/./shared/components/FlameGraph/FlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/AdHocFlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/AdHocProfileTypeSelector.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/AdHocSpinner.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/tabs/AdHocSingle.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/tabs/AdHocComparison.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/ui/AdHocTabs.tsx","webpack://grafana-pyroscope-app/./pages/AdHocView/AdHocView.tsx","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneApp/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js","webpack://grafana-pyroscope-app/../node_modules/uuid/dist/esm-browser/native.js","webpack://grafana-pyroscope-app/../node_modules/uuid/dist/esm-browser/rng.js","webpack://grafana-pyroscope-app/../node_modules/uuid/dist/esm-browser/stringify.js","webpack://grafana-pyroscope-app/../node_modules/uuid/dist/esm-browser/v4.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/SceneComponentWrapper.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/events.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/SceneObjectRef.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/SceneObjectBase.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/sceneGraph/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/RuntimeDataSource.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/services/UniqueUrlKeyMapper.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/services/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/common/common.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/veneer/common.types.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/SceneDataNode.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/services/SceneObjectUrlSyncConfig.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/parseUrlParam.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/evaluateTimeRange.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/SceneTimeRange.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/interpolation/defaults.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/sceneGraph/getTimeRange.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/types.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/interpolation/fieldAccessorCache.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/interpolation/ScopedVarsVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/interpolation/formatRegistry.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/constants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/lookupVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/interpolation/sceneInterpolator.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/types.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/behaviors/SceneQueryController.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/sceneGraph/sceneGraph.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/types.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/timeMacros.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/AllVariablesMacro.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/templateProxies.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/dataMacros.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/urlMacros.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/macros/contextMacros.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/sceneGraph/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/getDataSource.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/writeSceneLog.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/VariableDependencyConfig.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/VariableValueRecorder.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/ExtraQueryProvider.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/extraQueryProcessingOperator.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/annotations/filterAnnotations.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/getEnrichedDataRequest.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/adhoc/patchGetAdhocFilters.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/registerQueryWithController.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/MultiValueVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/@grafana/e2e-selectors/dist/esm/selectors/components.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/@grafana/e2e-selectors/dist/esm/selectors/pages.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/@grafana/e2e-selectors/dist/esm/selectors/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/@leeoniya/ufuzzy/dist/uFuzzy.esm.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/components/getOptionSearcher.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/components/VariableValueSelect.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/getEnrichedFiltersRequest.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/groupby/GroupByVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/LoadingIndicator.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/ControlsLabel.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/adhoc/AdHocFilterRenderer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/adhoc/AdHocFilterBuilder.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/adhoc/AdHocFiltersVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/DataLayersMerger.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/SceneQueryRunner.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/dashboard/x/dashboard_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/behaviors/CursorSync.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/react-use/esm/misc/util.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/react-use/esm/useIsomorphicLayoutEffect.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/react-use/esm/useMeasure.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/VizPanel/VizPanelRenderer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/VizPanel/colorSeriesConfigFactory.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/VizPanel/VizPanel.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/behaviors/LiveNowTimer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/getMessageFromError.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/SceneDataLayerBase.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/SceneDataLayerControls.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/node_modules/tslib/tslib.es6.mjs","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/config.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/annotations/standardAnnotationQuery.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/annotations/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/SceneTimeZoneOverride.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/SceneDataLayerSet.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/querying/SceneDataTransformer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/components/VariableValueSelectors.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/components/VariableValueControl.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/sets/SceneVariableSet.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/ConstantVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/CustomVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/DataSourceVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/query/guards.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/query/createQueryVariableRunner.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/query/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/query/toMetricFindValues.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/query/QueryVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/metricTree.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/TestVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/components/VariableValueInput.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/TextBoxVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/LocalValueVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/IntervalVariable.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/services/UrlSyncManager.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/EmbeddedScene.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/VizPanel/VizPanelMenu.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/grid/SceneGridItem.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/react-virtualized-auto-sizer/dist/index.esm.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/node_modules/react-use/esm/useEffectOnce.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/LazyLoader.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/grid/utils.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/grid/SceneGridLayout.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/grid/constants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/grid/SceneGridRow.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/NestedScene.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneCanvasText.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneToolbarButton.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneTimePicker.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneRefreshPicker.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/utils/getCompareSeriesRefId.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneTimeRangeCompare.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneByFrameRepeater.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneByVariableRepeater.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneControlsSpacer.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/SceneFlexLayout.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/split/Splitter.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/split/SplitLayout.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/layout/split/SplitLayoutRenderer.js","webpack://grafana-pyroscope-app/../node_modules/react-router-dom/dist/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneApp/SceneApp.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneReactObject.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneDebugger/DebugDetails.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneDebugger/DebugTreeNode.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneDebugger/SceneDebugger.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneApp/SceneAppPageView.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/components/SceneApp/SceneAppPage.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/common.gen-CZ1M9G8L.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/bargauge/panelcfg/x/BarGaugePanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/datagrid/panelcfg/x/DatagridPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/gauge/panelcfg/x/GaugePanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/geomap/panelcfg/x/GeomapPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/news/panelcfg/x/NewsPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/stat/panelcfg/x/StatPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/table/panelcfg/x/TablePanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/text/panelcfg/x/TextPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/StandardFieldConfigBuilders.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/FieldConfigOverridesBuilder.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/FieldConfigBuilder.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/VizPanelBuilder.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/core/PanelBuilders/VizConfigBuilders.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/scenes/dist/esm/variables/variants/guards.js","webpack://grafana-pyroscope-app/./shared/domain/prepareHistoryEntry.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventTimeseriesDataReceived.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/types.ts","webpack://grafana-pyroscope-app/../node_modules/xstate/es/_virtual/_tslib.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/types.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/actionTypes.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/utils.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/constants.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/environment.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/stateUtils.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/actions.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/State.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/serviceScope.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/Actor.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/invokeUtils.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/StateNode.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/Machine.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/scheduler.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/registry.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/devTools.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/behaviors.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/interpreter.js","webpack://grafana-pyroscope-app/../node_modules/nanoid/index.browser.js","webpack://grafana-pyroscope-app/../node_modules/nanoid/url-alphabet/index.js","webpack://grafana-pyroscope-app/../node_modules/xstate/es/index.js","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/http/DataSourceProxyClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/labels/http/LabelsApiClient.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/MemoryCacheClient.ts","webpack://grafana-pyroscope-app/./shared/types/helpers/invariant.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/AbstractRepository.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/labels/LabelsApiClient.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/labels/labelsRepository.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/areFiltersEqual.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/buildIsEmptyFilter.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/filtersToQuery.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/getLastFilter.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/isMultipleValuesOperator.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/isPartialFilter.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/isSwitchingOperatorMode.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/queryToFilters.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/toggleCompleteFilters.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/actions.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/getFilterUnderEdition.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/guards.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/infrastructure/operatorsRepository.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/isPrivateLabel.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/services.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/states/autoSuggestProxy.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/constants.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/helpers/isRegexOperator.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/states/idle.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/states/loadLabels.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/states/loadLabelValues.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/states/loadOperators.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/stateMachine.ts","webpack://grafana-pyroscope-app/./shared/domain/localeCompare.ts","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/selects/MultipleEditionSelect.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/inputs/SingleEditionInput.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/selects/SingleEditionSelect.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/chiclets/ChicletAttributeOperator.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/chiclets/ChicletAttributeOperatorValue.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/chiclets/PartialChiclet.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/chiclets/Chiclet.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/chiclets/ChicletsList.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/selects/SingleSelect.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/selects/DisabledSelect.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/selects/MultipleSelect.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/QueryBuilder.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/domain/useStateMachine.tsx","webpack://grafana-pyroscope-app/./shared/components/QueryBuilder/ui/hooks.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/profile-metrics/getProfileMetric.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/pyroscope-data-sources.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/ProfileMetricVariable.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/ServiceNameVariable/ServiceNameVariable.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/ServiceNameVariable/domain/useBuildServiceNameOptions.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/useBuildPyroscopeQuery.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/ProfilesDataSourceVariable.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/FiltersVariable/filters-ops.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/FiltersVariable/FiltersVariable.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/helpers/getSceneVariableValue.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/ScenePanelTypeSwitcher.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/helpers/getColorByIndex.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/helpers/getSeriesLabelFieldName.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/helpers/getSeriesStatsValue.ts","webpack://grafana-pyroscope-app/./shared/domain/url-params/parseQuery.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/withPreventInvalidQuery.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/timeseries/buildTimeSeriesQueryRunner.ts","webpack://grafana-pyroscope-app/../node_modules/p-limit/node_modules/yocto-queue/index.js","webpack://grafana-pyroscope-app/../node_modules/p-limit/index.js","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/helpers/computeRoundedTimeRange.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/labels/LabelsDataSource.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/infrastructure/data-transformations.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneLabelValuesBarGauge.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneLabelValuesHistogram.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/helpers/getProfileMetricLabel.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneLabelValuesTimeseries/SceneTimeseriesMenu.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/helpers/getExploreUrl.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/useGetPluginExtensionLink.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneLabelValuesTimeseries/SceneLabelValuesTimeseries.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/helpers/vizPanelBuilder.ts","webpack://grafana-pyroscope-app/../node_modules/react-inlinesvg/node_modules/react-from-dom/dist/index.mjs","webpack://grafana-pyroscope-app/../node_modules/react-inlinesvg/dist/index.mjs","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/useMousePosition.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/GrotNotFound.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/EmptyState.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/SceneEmptyState.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneErrorState/SceneErrorState.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneLayoutSwitcher.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneNoDataSwitcher.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneQuickFilter.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/favorites/FavoritesDataSource.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/helpers/interpolateQueryRunnerVariables.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/actions/FavAction.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/domain/sortFavGridItems.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/SceneByVariableRepeaterGrid.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventExpandPanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventSelectLabel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventViewServiceFlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventViewServiceLabels.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventViewServiceProfiles.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/actions/SelectAction.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreAllServices/SceneExploreAllServices.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneDrawer.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/FavoriteVariable.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreFavorites/SceneExploreFavorites.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneMainServiceTimeseries.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/events/EventViewDiffFlameGraph.tsx","webpack://grafana-pyroscope-app/../node_modules/@react-aria/utils/dist/useResizeObserver.mjs","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/GroupByVariable/GroupBySelector.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/variables/GroupByVariable/GroupByVariable.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/domain/events/EventSelectForCompare.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/components/SceneLabelValuesGrid/components/SceneStatsPanel/ui/CompareAction.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/components/SceneLabelValuesGrid/components/SceneStatsPanel/ui/StatsPanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/components/SceneLabelValuesGrid/components/SceneStatsPanel/SceneStatsPanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/components/SceneLabelValuesGrid/components/SceneLabelValuePanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/components/SceneLabelValuesGrid/infrastructure/buildLabelValuesGridQueryRunner.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/components/SceneLabelValuesGrid/SceneLabelValuesGrid.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/domain/events/EventClearLabelFromFilters.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/domain/events/EventExcludeLabelFromFilters.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/domain/events/EventIncludeLabelInFilters.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/domain/actions/IncludeExcludeAction/ui/FilterButtons.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/domain/actions/IncludeExcludeAction/IncludeExcludeAction.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/ui/CompareControls.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/components/SceneGroupByLabels/SceneGroupByLabels.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceLabels/SceneExploreServiceLabels.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceProfileTypes/SceneExploreServiceProfileTypes.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/domain/buildTimeRange.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/formatSeriesToProfileMetrics.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/formatSeriesToServices.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/http/DataSourceProxyClientBuilder.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/http/formatSeriesResponse.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/http/SeriesApiClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/http/seriesRepository.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/series/SeriesDataSource.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/events/EventEnableSyncTimeRanges.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/events/EventSyncRefresh.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/events/EventSyncTimeRanges.ts","webpack://grafana-pyroscope-app/./shared/components/SceneTimePickerWithoutSync/SceneTimePickerWithoutSync.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/parseUrlParam.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/RangeAnnotation.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/components/SceneTimeRangeWithAnnotations.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/evaluateTimeRange.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/events/EventSwitchTimerangeSelectionMode.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/domain/actions/SwitchTimeRangeSelectionModeAction.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/infrastructure/buildCompareTimeSeriesQueryRunner.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/ui/colors.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneComparePanel/SceneComparePanel.tsx","webpack://grafana-pyroscope-app/./shared/domain/useToggleSidePanel.ts","webpack://grafana-pyroscope-app/../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","webpack://grafana-pyroscope-app/./shared/infrastructure/settings/PluginSettings.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/settings/settingsApiClient.ts","webpack://grafana-pyroscope-app/./shared/infrastructure/settings/useFetchPluginSettings.ts","webpack://grafana-pyroscope-app/../node_modules/@tanstack/react-query/build/modern/useMutation.js","webpack://grafana-pyroscope-app/./shared/ui/InlineBanner.tsx","webpack://grafana-pyroscope-app/../node_modules/@grafana/e2e-selectors/dist/esm/selectors/components.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/e2e-selectors/dist/esm/selectors/index.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/e2e-selectors/dist/esm/selectors/pages.js","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/DelayRender.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/PanelMenu.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/HoverWidget.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/TitleItem.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/PanelDescription.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/PanelStatus.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/GrafanaPanelBox/GrafanaPanelBox.tsx","webpack://grafana-pyroscope-app/./shared/ui/Panel/Panel.tsx","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/scan.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/scanInternals.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/llm/node_modules/uuid/dist/esm-browser/native.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/llm/node_modules/uuid/dist/esm-browser/rng.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/llm/node_modules/uuid/dist/esm-browser/stringify.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/llm/node_modules/uuid/dist/esm-browser/v4.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/llm/dist/esm/constants.js","webpack://grafana-pyroscope-app/../node_modules/@grafana/llm/dist/esm/openai.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/tap.js","webpack://grafana-pyroscope-app/../node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/components/AiButton/AIButton.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/components/AiButton/infrastructure/useFetchLlmPluginStatus.ts","webpack://grafana-pyroscope-app/../node_modules/markdown-to-jsx/dist/index.modern.js","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/components/AiReply.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/components/FollowUpForm.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/domain/buildLlmPrompts.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/profiles/ProfileApiClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/SceneAiPanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/infrastructure/useFetchDotProfiles.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/infrastructure/cleanupDotResponse.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneAiPanel/domain/useOpenAiChatCompletions.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/domain/events/EventDiffAutoSelect.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/domain/events/EventDiffChoosePreset.tsx","webpack://grafana-pyroscope-app/./shared/domain/url-params/useMaxNodesFromUrl.ts","webpack://grafana-pyroscope-app/./shared/domain/url-params/useUrlSearchParams.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneDiffFlameGraph/infrastructure/DiffProfileApiClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneDiffFlameGraph/infrastructure/useFetchDiffProfile.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneDiffFlameGraph/ui/MissingSelectionsBanner.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/SceneDiffFlameGraph/SceneDiffFlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/GiveFeedbackButton.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/components/ScenePresetsPicker/ScenePresetsPicker.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/domain/behaviours/syncYAxis.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/SceneExploreDiffFlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/infrastructure/VcsClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/infrastructure/GitSessionCookie.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/infrastructure/GitSessionCookieManager.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/domain/openLoginPopup.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/domain/githubLogin.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/domain/authFromUrl.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/domain/usePollGitHubPopup.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/GitHubContext.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/infrastructure/PrivateVcsClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/GitHubContextProvider.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/domain/generateNonce.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/domain/useGithubSessionCookie.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/infrastructure/flame-graph/buildFlameGraphQueryRunner.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/infrastructure/PprofRequest.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/infrastructure/PprofApiClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneExportMenu/domain/getExportFilename.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneExportMenu/infrastructure/flamegraphDotComApiClient.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneExportMenu/SceneExportMenu.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubContextProvider/useGitHubContext.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/useGitHubIntegration.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/buildStackTrace.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/AiSuggestionsPanel/domain/buildLlmSuggestionPrompts.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/AiSuggestionsPanel/domain/useAiSuggestionsPanel.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/AiSuggestionsPanel/domain/useOpenAiSuggestions.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/AiSuggestionsPanel/AiSuggestionsPanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/CodeContainer/domain/buildGithubUrlForFunction.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/CodeContainer/domain/buildLineProfiles.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/CodeContainer/domain/useCodeContainer.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/CodeContainer/infrastructure/useFetchVCSFile.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/buildUnitFormatter.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/CodeContainer/ui/Code.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/CodeContainer/CodeContainer.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/components/GitHubRepository.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/getCommitsWithSamples.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/isGitHubRepository.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/getRepositoryDetails.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/convertPprofToFunctionDetails.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/infrastructure/fetchCommitsInfo.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/infrastructure/helpers/getTotalSum.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/infrastructure/helpers/sortByTotal.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/infrastructure/useFetchFunctionsDetails.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/getRelativeTimeString.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/formatCommitDate.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/ui/CommitOption.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/ui/CommitOptionSelected.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/ui/CommitSelect.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/ui/GitHubIntegrationBanner.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/ui/InlineSpinner.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/SceneFunctionDetailsPanel.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/components/SceneFunctionDetailsPanel/domain/formatFileName.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/SceneFlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneExploreServiceFlameGraph/SceneExploreServiceFlameGraph.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneProfilesExplorer/components/domain/useHeader.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneProfilesExplorer/components/domain/builsShareableUrl.ts","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneProfilesExplorer/components/ui/ExplorationTypeSelector.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneProfilesExplorer/components/Header.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/components/SceneProfilesExplorer/SceneProfilesExplorer.tsx","webpack://grafana-pyroscope-app/./pages/ProfilesExplorerView/ProfilesExplorerView.tsx","webpack://grafana-pyroscope-app/./pages/SettingsView/domain/useSettingsView.ts","webpack://grafana-pyroscope-app/./pages/SettingsView/SettingsView.tsx","webpack://grafana-pyroscope-app/./app/components/Routes/domain/useNavigationLinksUpdate.ts","webpack://grafana-pyroscope-app/./app/components/Routes/Routes.tsx","webpack://grafana-pyroscope-app/./app/ui/ErrorPage.tsx","webpack://grafana-pyroscope-app/./shared/infrastructure/tracking/faro/getFaroEnvironment.ts","webpack://grafana-pyroscope-app/./app/App.tsx","webpack://grafana-pyroscope-app/./links.ts","webpack://grafana-pyroscope-app/./module.ts"],"sourcesContent":["\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(\"@protobufjs/aspromise\"),\r\n inquire = require(\"@protobufjs/inquire\");\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS 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 compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\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 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 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\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\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\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 * 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\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 * 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\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/**\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\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 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 propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\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/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\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 *\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/**\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\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\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\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 * 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 `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\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 `_.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\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\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 `_.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\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 // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\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\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\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 // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\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\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\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 * 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\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\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 length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\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 * 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 * 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 * 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 * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\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 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 * 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\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\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 = isEqual;\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","// light library entry point.\r\n\r\n\"use strict\";\r\nmodule.exports = require(\"./src/index-light\");","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(\"./enum\"),\r\n util = require(\"./util\");\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n var defaultAlreadyEmitted = false;\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(d%s){\", prop);\r\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\r\n // enum unknown values passthrough\r\n if (values[keys[i]] === field.typeDefault && !defaultAlreadyEmitted) { gen\r\n (\"default:\")\r\n (\"if(typeof(d%s)===\\\"number\\\"){m%s=d%s;break}\", prop, prop, prop);\r\n if (!field.repeated) gen // fallback to default value only for\r\n // arrays, to avoid leaving holes.\r\n (\"break\"); // for non-repeated fields, just ignore\r\n defaultAlreadyEmitted = true;\r\n }\r\n gen\r\n (\"case%j:\", keys[i])\r\n (\"case %i:\", values[keys[i]])\r\n (\"m%s=%j\", prop, values[keys[i]])\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%i].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\": gen\r\n (\"m%s=Number(d%s)\", prop, prop); // also catches \"NaN\", \"Infinity\"\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-next-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length >= 0)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\r\n break;\r\n case \"bytes\": gen\r\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\r\n break;\r\n default: gen\r\n (\"d%s=m%s\", prop, prop);\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a runtime message to plain object converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.toObject = function toObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\r\n if (!fields.length)\r\n return util.codegen()(\"return {}\");\r\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\r\n (\"if(!o)\")\r\n (\"o={}\")\r\n (\"var d={}\");\r\n\r\n var repeatedFields = [],\r\n mapFields = [],\r\n normalFields = [],\r\n i = 0;\r\n for (; i < fields.length; ++i)\r\n if (!fields[i].partOf)\r\n ( fields[i].resolve().repeated ? repeatedFields\r\n : fields[i].map ? mapFields\r\n : normalFields).push(fields[i]);\r\n\r\n if (repeatedFields.length) { gen\r\n (\"if(o.arrays||o.defaults){\");\r\n for (i = 0; i < repeatedFields.length; ++i) gen\r\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\r\n gen\r\n (\"}\");\r\n }\r\n\r\n if (mapFields.length) { gen\r\n (\"if(o.objects||o.defaults){\");\r\n for (i = 0; i < mapFields.length; ++i) gen\r\n (\"d%s={}\", util.safeProp(mapFields[i].name));\r\n gen\r\n (\"}\");\r\n }\r\n\r\n if (normalFields.length) { gen\r\n (\"if(o.defaults){\");\r\n for (i = 0; i < normalFields.length; ++i) {\r\n var field = normalFields[i],\r\n prop = util.safeProp(field.name);\r\n if (field.resolvedType instanceof Enum) gen\r\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\r\n else if (field.long) gen\r\n (\"if(util.Long){\")\r\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\r\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\r\n (\"}else\")\r\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\r\n else if (field.bytes) {\r\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\r\n gen\r\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\r\n (\"else{\")\r\n (\"d%s=%s\", prop, arrayDefault)\r\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\r\n (\"}\");\r\n } else gen\r\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\r\n } gen\r\n (\"}\");\r\n }\r\n var hasKs2 = false;\r\n for (i = 0; i < fields.length; ++i) {\r\n var field = fields[i],\r\n index = mtype._fieldsArray.indexOf(field),\r\n prop = util.safeProp(field.name);\r\n if (field.map) {\r\n if (!hasKs2) { hasKs2 = true; gen\r\n (\"var ks2\");\r\n } gen\r\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\r\n (\"d%s={}\", prop)\r\n (\"for(var j=0;j>>3){\");\r\n\r\n var i = 0;\r\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\r\n var field = mtype._fieldsArray[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %i: {\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var c2 = r.uint32()+r.pos\");\r\n\r\n if (types.defaults[field.keyType] !== undefined) gen\r\n (\"k=%j\", types.defaults[field.keyType]);\r\n else gen\r\n (\"k=null\");\r\n\r\n if (types.defaults[type] !== undefined) gen\r\n (\"value=%j\", types.defaults[type]);\r\n else gen\r\n (\"value=null\");\r\n\r\n gen\r\n (\"while(r.pos>>3){\")\r\n (\"case 1: k=r.%s(); break\", field.keyType)\r\n (\"case 2:\");\r\n\r\n if (types.basic[type] === undefined) gen\r\n (\"value=types[%i].decode(r,r.uint32())\", i); // can't be groups\r\n else gen\r\n (\"value=r.%s()\", type);\r\n\r\n gen\r\n (\"break\")\r\n (\"default:\")\r\n (\"r.skipType(tag2&7)\")\r\n (\"break\")\r\n (\"}\")\r\n (\"}\");\r\n\r\n if (types.long[field.keyType] !== undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=value\", ref);\r\n else gen\r\n (\"%s[k]=value\", ref);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if (types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n\r\n // \"when a message is serialized its known fields should be written sequentially by field number\"\r\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n index = mtype._fieldsArray.indexOf(field),\r\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\r\n else gen\r\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n (\"if(%s!=null&&%s.length){\", ref, ref); // !== undefined && !== null\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, index, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n } gen\r\n (\"}\");\r\n\r\n // Non-repeated\r\n } else {\r\n if (field.optional) gen\r\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, index, ref);\r\n else gen\r\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(\"./object\");\r\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\r\n\r\nvar Namespace = require(\"./namespace\"),\r\n util = require(\"./util\");\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n * @param {string} [comment] The comment for this enum\r\n * @param {Object.} [comments] The value comments for this enum\r\n * @param {Object.>|undefined} [valuesOptions] The value options for this enum\r\n */\r\nfunction Enum(name, values, options, comment, comments, valuesOptions) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (values && typeof values !== \"object\")\r\n throw TypeError(\"values must be an object\");\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Enum comment text.\r\n * @type {string|null}\r\n */\r\n this.comment = comment;\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = comments || {};\r\n\r\n /**\r\n * Values options, if any\r\n * @type {Object>|undefined}\r\n */\r\n this.valuesOptions = valuesOptions;\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {Array.}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n if (values)\r\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\r\n if (typeof values[keys[i]] === \"number\") // use forward entries only\r\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\r\n}\r\n\r\n/**\r\n * Enum descriptor.\r\n * @interface IEnum\r\n * @property {Object.} values Enum values\r\n * @property {Object.} [options] Enum options\r\n */\r\n\r\n/**\r\n * Constructs an enum from an enum descriptor.\r\n * @param {string} name Enum name\r\n * @param {IEnum} json Enum descriptor\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\r\n enm.reserved = json.reserved;\r\n return enm;\r\n};\r\n\r\n/**\r\n * Converts this enum to an enum descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IEnum} Enum descriptor\r\n */\r\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"options\" , this.options,\r\n \"valuesOptions\" , this.valuesOptions,\r\n \"values\" , this.values,\r\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\r\n \"comment\" , keepComments ? this.comment : undefined,\r\n \"comments\" , keepComments ? this.comments : undefined\r\n ]);\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {string} [comment] Comment, if any\r\n * @param {Object.|undefined} [options] Options, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnum.prototype.add = function add(name, id, comment, options) {\r\n // utilized by the parser but not by .fromJSON\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\r\n\r\n if (this.isReservedId(id))\r\n throw Error(\"id \" + id + \" is reserved in \" + this);\r\n\r\n if (this.isReservedName(name))\r\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\r\n\r\n if (this.valuesById[id] !== undefined) {\r\n if (!(this.options && this.options.allow_alias))\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this.values[name] = id;\r\n } else\r\n this.valuesById[this.values[name] = id] = name;\r\n\r\n if (options) {\r\n if (this.valuesOptions === undefined)\r\n this.valuesOptions = {};\r\n this.valuesOptions[name] = options || null;\r\n }\r\n\r\n this.comments[name] = comment || null;\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnum.prototype.remove = function remove(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val == null)\r\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n if (this.valuesOptions)\r\n delete this.valuesOptions[name];\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Tests if the specified id is reserved.\r\n * @param {number} id Id to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nEnum.prototype.isReservedId = function isReservedId(id) {\r\n return Namespace.isReservedId(this.reserved, id);\r\n};\r\n\r\n/**\r\n * Tests if the specified name is reserved.\r\n * @param {string} name Name to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nEnum.prototype.isReservedName = function isReservedName(name) {\r\n return Namespace.isReservedName(this.reserved, name);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(\"./object\");\r\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\r\n\r\nvar Enum = require(\"./enum\"),\r\n types = require(\"./types\"),\r\n util = require(\"./util\");\r\n\r\nvar Type; // cyclic\r\n\r\nvar ruleRe = /^required|optional|repeated$/;\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @name Field\r\n * @classdesc Reflected message field.\r\n * @extends FieldBase\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Constructs a field from a field descriptor.\r\n * @param {string} name Field name\r\n * @param {IField} json Field descriptor\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\r\n};\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Field} instead.\r\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports FieldBase\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n * @param {string} [comment] Comment associated with this field\r\n */\r\nfunction Field(name, id, type, rule, extend, options, comment) {\r\n\r\n if (util.isObject(rule)) {\r\n comment = extend;\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n comment = options;\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n if (rule === \"proto3_optional\") {\r\n rule = \"optional\";\r\n }\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {Type|null}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {OneOf|null}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {Type|Enum|null}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {Field|null}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {Field|null}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {boolean|null}\r\n * @private\r\n */\r\n this._packed = null;\r\n\r\n /**\r\n * Comment for this field.\r\n * @type {string|null}\r\n */\r\n this.comment = comment;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(Field.prototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\") // clear cached before setting\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Field descriptor.\r\n * @interface IField\r\n * @property {string} [rule=\"optional\"] Field rule\r\n * @property {string} type Field type\r\n * @property {number} id Field id\r\n * @property {Object.} [options] Field options\r\n */\r\n\r\n/**\r\n * Extension field descriptor.\r\n * @interface IExtensionField\r\n * @extends IField\r\n * @property {string} extend Extended type\r\n */\r\n\r\n/**\r\n * Converts this field to a field descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IField} Field descriptor\r\n */\r\nField.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\r\n \"type\" , this.type,\r\n \"id\" , this.id,\r\n \"extend\" , this.extend,\r\n \"options\" , this.options,\r\n \"comment\" , keepComments ? this.comment : undefined\r\n ]);\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nField.prototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\r\n if (this.resolvedType instanceof Type)\r\n this.typeDefault = null;\r\n else // instanceof Enum\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n } else if (this.options && this.options.proto3_optional) {\r\n // proto3 scalar value marked optional; should default to null\r\n this.typeDefault = null;\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] != null) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // remove unnecessary options\r\n if (this.options) {\r\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\r\n delete this.options.packed;\r\n if (!Object.keys(this.options).length)\r\n this.options = undefined;\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n // ensure proper value on prototype\r\n if (this.parent instanceof Type)\r\n this.parent.ctor.prototype[this.name] = this.defaultValue;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\r\n * @typedef FieldDecorator\r\n * @type {function}\r\n * @param {Object} prototype Target prototype\r\n * @param {string} fieldName Field name\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Field decorator (TypeScript).\r\n * @name Field.d\r\n * @function\r\n * @param {number} fieldId Field id\r\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\r\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\r\n * @param {T} [defaultValue] Default value\r\n * @returns {FieldDecorator} Decorator function\r\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\r\n */\r\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\r\n\r\n // submessage: decorate the submessage and use its name as the type\r\n if (typeof fieldType === \"function\")\r\n fieldType = util.decorateType(fieldType).name;\r\n\r\n // enum reference: create a reflected copy of the enum and keep reuseing it\r\n else if (fieldType && typeof fieldType === \"object\")\r\n fieldType = util.decorateEnum(fieldType).name;\r\n\r\n return function fieldDecorator(prototype, fieldName) {\r\n util.decorateType(prototype.constructor)\r\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\r\n };\r\n};\r\n\r\n/**\r\n * Field decorator (TypeScript).\r\n * @name Field.d\r\n * @function\r\n * @param {number} fieldId Field id\r\n * @param {Constructor|string} fieldType Field type\r\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\r\n * @returns {FieldDecorator} Decorator function\r\n * @template T extends Message\r\n * @variation 2\r\n */\r\n// like Field.d but without a default value\r\n\r\n// Sets up cyclic dependencies (called in index-light)\r\nField._configure = function configure(Type_) {\r\n Type = Type_;\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(\"./index-minimal\");\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(\"./encoder\");\r\nprotobuf.decoder = require(\"./decoder\");\r\nprotobuf.verifier = require(\"./verifier\");\r\nprotobuf.converter = require(\"./converter\");\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(\"./object\");\r\nprotobuf.Namespace = require(\"./namespace\");\r\nprotobuf.Root = require(\"./root\");\r\nprotobuf.Enum = require(\"./enum\");\r\nprotobuf.Type = require(\"./type\");\r\nprotobuf.Field = require(\"./field\");\r\nprotobuf.OneOf = require(\"./oneof\");\r\nprotobuf.MapField = require(\"./mapfield\");\r\nprotobuf.Service = require(\"./service\");\r\nprotobuf.Method = require(\"./method\");\r\n\r\n// Runtime\r\nprotobuf.Message = require(\"./message\");\r\nprotobuf.wrappers = require(\"./wrappers\");\r\n\r\n// Utility\r\nprotobuf.types = require(\"./types\");\r\nprotobuf.util = require(\"./util\");\r\n\r\n// Set up possibly cyclic reflection dependencies\r\nprotobuf.ReflectionObject._configure(protobuf.Root);\r\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\r\nprotobuf.Root._configure(protobuf.Type);\r\nprotobuf.Field._configure(protobuf.Type);\r\n","\"use strict\";\r\nvar protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n * @const\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n// Serialization\r\nprotobuf.Writer = require(\"./writer\");\r\nprotobuf.BufferWriter = require(\"./writer_buffer\");\r\nprotobuf.Reader = require(\"./reader\");\r\nprotobuf.BufferReader = require(\"./reader_buffer\");\r\n\r\n// Utility\r\nprotobuf.util = require(\"./util/minimal\");\r\nprotobuf.rpc = require(\"./rpc\");\r\nprotobuf.roots = require(\"./roots\");\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.util._configure();\r\n protobuf.Writer._configure(protobuf.BufferWriter);\r\n protobuf.Reader._configure(protobuf.BufferReader);\r\n}\r\n\r\n// Set up buffer utility according to the environment\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(\"./field\");\r\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\r\n\r\nvar types = require(\"./types\"),\r\n util = require(\"./util\");\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends FieldBase\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n * @param {string} [comment] Comment associated with this field\r\n */\r\nfunction MapField(name, id, keyType, type, options, comment) {\r\n Field.call(this, name, id, type, undefined, undefined, options, comment);\r\n\r\n /* istanbul ignore if */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {ReflectionObject|null}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Map field descriptor.\r\n * @interface IMapField\r\n * @extends {IField}\r\n * @property {string} keyType Key type\r\n */\r\n\r\n/**\r\n * Extension map field descriptor.\r\n * @interface IExtensionMapField\r\n * @extends IMapField\r\n * @property {string} extend Extended type\r\n */\r\n\r\n/**\r\n * Constructs a map field from a map field descriptor.\r\n * @param {string} name Field name\r\n * @param {IMapField} json Map field descriptor\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\r\n};\r\n\r\n/**\r\n * Converts this map field to a map field descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IMapField} Map field descriptor\r\n */\r\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"keyType\" , this.keyType,\r\n \"type\" , this.type,\r\n \"id\" , this.id,\r\n \"extend\" , this.extend,\r\n \"options\" , this.options,\r\n \"comment\" , keepComments ? this.comment : undefined\r\n ]);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return Field.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Map field decorator (TypeScript).\r\n * @name MapField.d\r\n * @function\r\n * @param {number} fieldId Field id\r\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\r\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\r\n * @returns {FieldDecorator} Decorator function\r\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\r\n */\r\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\r\n\r\n // submessage value: decorate the submessage and use its name as the type\r\n if (typeof fieldValueType === \"function\")\r\n fieldValueType = util.decorateType(fieldValueType).name;\r\n\r\n // enum reference value: create a reflected copy of the enum and keep reuseing it\r\n else if (fieldValueType && typeof fieldValueType === \"object\")\r\n fieldValueType = util.decorateEnum(fieldValueType).name;\r\n\r\n return function mapFieldDecorator(prototype, fieldName) {\r\n util.decorateType(prototype.constructor)\r\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\r\n };\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(\"./util/minimal\");\r\n\r\n/**\r\n * Constructs a new message instance.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Properties} [properties] Properties to set\r\n * @template T extends object = object\r\n */\r\nfunction Message(properties) {\r\n // not used internally\r\n if (properties)\r\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/*eslint-disable valid-jsdoc*/\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Message instance\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.create = function create(properties) {\r\n return this.$type.create(properties);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {T|Object.} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {T|Object.} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {T} Decoded message\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {T} Decoded message\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Object.} message Plain object to verify\r\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {T} Message instance\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {T} message Message instance\r\n * @param {IConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n * @template T extends Message\r\n * @this Constructor\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n\r\n/*eslint-enable valid-jsdoc*/","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(\"./object\");\r\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\r\n\r\nvar util = require(\"./util\");\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n * @param {string} [comment] The comment for this method\r\n * @param {Object.} [parsedOptions] Declared options, properly parsed into an object\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment, parsedOptions) {\r\n\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore if */\r\n if (!(type === undefined || util.isString(type)))\r\n throw TypeError(\"type must be a string\");\r\n\r\n /* istanbul ignore if */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n\r\n /* istanbul ignore if */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {Type|null}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {Type|null}\r\n */\r\n this.resolvedResponseType = null;\r\n\r\n /**\r\n * Comment for this method\r\n * @type {string|null}\r\n */\r\n this.comment = comment;\r\n\r\n /**\r\n * Options properly parsed into an object\r\n */\r\n this.parsedOptions = parsedOptions;\r\n}\r\n\r\n/**\r\n * Method descriptor.\r\n * @interface IMethod\r\n * @property {string} [type=\"rpc\"] Method type\r\n * @property {string} requestType Request type\r\n * @property {string} responseType Response type\r\n * @property {boolean} [requestStream=false] Whether requests are streamed\r\n * @property {boolean} [responseStream=false] Whether responses are streamed\r\n * @property {Object.} [options] Method options\r\n * @property {string} comment Method comments\r\n * @property {Object.} [parsedOptions] Method options properly parsed into an object\r\n */\r\n\r\n/**\r\n * Constructs a method from a method descriptor.\r\n * @param {string} name Method name\r\n * @param {IMethod} json Method descriptor\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment, json.parsedOptions);\r\n};\r\n\r\n/**\r\n * Converts this method to a method descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IMethod} Method descriptor\r\n */\r\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n \"requestType\" , this.requestType,\r\n \"requestStream\" , this.requestStream,\r\n \"responseType\" , this.responseType,\r\n \"responseStream\" , this.responseStream,\r\n \"options\" , this.options,\r\n \"comment\" , keepComments ? this.comment : undefined,\r\n \"parsedOptions\" , this.parsedOptions,\r\n ]);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n\r\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\r\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(\"./object\");\r\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\r\n\r\nvar Field = require(\"./field\"),\r\n util = require(\"./util\"),\r\n OneOf = require(\"./oneof\");\r\n\r\nvar Type, // cyclic\r\n Service,\r\n Enum;\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array, toJSONOptions) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Tests if the specified id is reserved.\r\n * @param {Array.|undefined} reserved Array of reserved ranges and names\r\n * @param {number} id Id to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nNamespace.isReservedId = function isReservedId(reserved, id) {\r\n if (reserved)\r\n for (var i = 0; i < reserved.length; ++i)\r\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\r\n return true;\r\n return false;\r\n};\r\n\r\n/**\r\n * Tests if the specified name is reserved.\r\n * @param {Array.|undefined} reserved Array of reserved ranges and names\r\n * @param {string} name Name to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nNamespace.isReservedName = function isReservedName(reserved, name) {\r\n if (reserved)\r\n for (var i = 0; i < reserved.length; ++i)\r\n if (reserved[i] === name)\r\n return true;\r\n return false;\r\n};\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {ReflectionObject[]|null}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * Namespace descriptor.\r\n * @interface INamespace\r\n * @property {Object.} [options] Namespace options\r\n * @property {Object.} [nested] Nested object descriptors\r\n */\r\n\r\n/**\r\n * Any extension field descriptor.\r\n * @typedef AnyExtensionField\r\n * @type {IExtensionField|IExtensionMapField}\r\n */\r\n\r\n/**\r\n * Any nested object descriptor.\r\n * @typedef AnyNestedObject\r\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace|IOneOf}\r\n */\r\n\r\n/**\r\n * Converts this namespace to a namespace descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {INamespace} Namespace descriptor\r\n */\r\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\r\n return util.toObject([\r\n \"options\" , this.options,\r\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\r\n ]);\r\n};\r\n\r\n/**\r\n * Adds nested objects to this namespace from nested object descriptors.\r\n * @param {Object.} nestedJson Any nested object descriptors\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\r\n nested = nestedJson[names[i]];\r\n ns.add( // most to least likely\r\n ( nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : nested.id !== undefined\r\n ? Field.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespace.prototype.get = function get(name) {\r\n return this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespace.prototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum: \" + name);\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespace.prototype.add = function add(object) {\r\n\r\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof OneOf || object instanceof Enum || object instanceof Service || object instanceof Namespace))\r\n throw TypeError(\"object must be a valid nested object\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespace.prototype.remove = function remove(object) {\r\n\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n if (object.parent !== this)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespace.prototype.define = function define(path, json) {\r\n\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return this.resolve();\r\n};\r\n\r\n/**\r\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\r\n */\r\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterTypes === \"boolean\") {\r\n parentAlreadyChecked = filterTypes;\r\n filterTypes = undefined;\r\n } else if (filterTypes && !Array.isArray(filterTypes))\r\n filterTypes = [ filterTypes ];\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterTypes);\r\n\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\r\n return found;\r\n\r\n // Otherwise try each nested namespace\r\n } else\r\n for (var i = 0; i < this.nestedArray.length; ++i)\r\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\r\n return found;\r\n\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterTypes);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespace.prototype.lookupType = function lookupType(path) {\r\n var found = this.lookup(path, [ Type ]);\r\n if (!found)\r\n throw Error(\"no such type: \" + path);\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Enum} Looked up enum\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, [ Enum ]);\r\n if (!found)\r\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type or enum\r\n * @throws {Error} If `path` does not point to a type or enum\r\n */\r\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\r\n var found = this.lookup(path, [ Type, Enum ]);\r\n if (!found)\r\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespace.prototype.lookupService = function lookupService(path) {\r\n var found = this.lookup(path, [ Service ]);\r\n if (!found)\r\n throw Error(\"no such Service '\" + path + \"' in \" + this);\r\n return found;\r\n};\r\n\r\n// Sets up cyclic dependencies (called in index-light)\r\nNamespace._configure = function(Type_, Service_, Enum_) {\r\n Type = Type_;\r\n Service = Service_;\r\n Enum = Enum_;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\n\r\nvar util = require(\"./util\");\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Parsed Options.\r\n * @type {Array.>|undefined}\r\n */\r\n this.parsedOptions = null;\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {Namespace|null}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {string|null}\r\n */\r\n this.comment = null;\r\n\r\n /**\r\n * Defining file name.\r\n * @type {string|null}\r\n */\r\n this.filename = null;\r\n}\r\n\r\nObject.defineProperties(ReflectionObject.prototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its descriptor representation.\r\n * @returns {Object.} Descriptor\r\n * @abstract\r\n */\r\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onRemove = function onRemove(parent) {\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObject.prototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets a parsed option.\r\n * @param {string} name parsed Option name\r\n * @param {*} value Option value\r\n * @param {string} propName dot '.' delimited full path of property within the option to set. if undefined\\empty, will add a new option with that value\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setParsedOption = function setParsedOption(name, value, propName) {\r\n if (!this.parsedOptions) {\r\n this.parsedOptions = [];\r\n }\r\n var parsedOptions = this.parsedOptions;\r\n if (propName) {\r\n // If setting a sub property of an option then try to merge it\r\n // with an existing option\r\n var opt = parsedOptions.find(function (opt) {\r\n return Object.prototype.hasOwnProperty.call(opt, name);\r\n });\r\n if (opt) {\r\n // If we found an existing option - just merge the property value\r\n var newValue = opt[name];\r\n util.setProperty(newValue, propName, value);\r\n } else {\r\n // otherwise, create a new option, set it's property and add it to the list\r\n opt = {};\r\n opt[name] = util.setProperty({}, propName, value);\r\n parsedOptions.push(opt);\r\n }\r\n } else {\r\n // Always create a new option when setting the value of the option itself\r\n var newOpt = {};\r\n newOpt[name] = value;\r\n parsedOptions.push(newOpt);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\r\n this.setOption(keys[i], options[keys[i]], ifNotSet);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObject.prototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n\r\n// Sets up cyclic dependencies (called in index-light)\r\nReflectionObject._configure = function(Root_) {\r\n Root = Root_;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(\"./object\");\r\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\r\n\r\nvar Field = require(\"./field\"),\r\n util = require(\"./util\");\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object.} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n * @param {string} [comment] Comment associated with this field\r\n */\r\nfunction OneOf(name, fieldNames, options, comment) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore if */\r\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\r\n\r\n /**\r\n * Comment for this field.\r\n * @type {string|null}\r\n */\r\n this.comment = comment;\r\n}\r\n\r\n/**\r\n * Oneof descriptor.\r\n * @interface IOneOf\r\n * @property {Array.} oneof Oneof field names\r\n * @property {Object.} [options] Oneof options\r\n */\r\n\r\n/**\r\n * Constructs a oneof from a oneof descriptor.\r\n * @param {string} name Oneof name\r\n * @param {IOneOf} json Oneof descriptor\r\n * @returns {OneOf} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options, json.comment);\r\n};\r\n\r\n/**\r\n * Converts this oneof to a oneof descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IOneOf} Oneof descriptor\r\n */\r\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"options\" , this.options,\r\n \"oneof\" , this.oneof,\r\n \"comment\" , keepComments ? this.comment : undefined\r\n ]);\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\r\n if (!oneof.fieldsArray[i].parent)\r\n oneof.parent.add(oneof.fieldsArray[i]);\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.add = function add(field) {\r\n\r\n /* istanbul ignore if */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this.fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore if */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this.fieldsArray.indexOf(field);\r\n\r\n /* istanbul ignore if */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this.fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n for (var i = 0; i < this.oneof.length; ++i) {\r\n var field = parent.get(this.oneof[i]);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self.fieldsArray.push(field);\r\n }\r\n }\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onRemove = function onRemove(parent) {\r\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\r\n if ((field = this.fieldsArray[i]).parent)\r\n field.parent.remove(field);\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n\r\n/**\r\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\r\n * @typedef OneOfDecorator\r\n * @type {function}\r\n * @param {Object} prototype Target prototype\r\n * @param {string} oneofName OneOf name\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * OneOf decorator (TypeScript).\r\n * @function\r\n * @param {...string} fieldNames Field names\r\n * @returns {OneOfDecorator} Decorator function\r\n * @template T extends string\r\n */\r\nOneOf.d = function decorateOneOf() {\r\n var fieldNames = new Array(arguments.length),\r\n index = 0;\r\n while (index < arguments.length)\r\n fieldNames[index] = arguments[index++];\r\n return function oneOfDecorator(prototype, oneofName) {\r\n util.decorateType(prototype.constructor)\r\n .add(new OneOf(oneofName, fieldNames));\r\n Object.defineProperty(prototype, oneofName, {\r\n get: util.oneOfGetter(fieldNames),\r\n set: util.oneOfSetter(fieldNames)\r\n });\r\n };\r\n};\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(\"./util/minimal\");\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\nvar create_array = typeof Uint8Array !== \"undefined\"\r\n ? function create_typed_array(buffer) {\r\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\r\n return new Reader(buffer);\r\n throw Error(\"illegal buffer\");\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n if (Array.isArray(buffer))\r\n return new Reader(buffer);\r\n throw Error(\"illegal buffer\");\r\n };\r\n\r\nvar create = function create() {\r\n return util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n /* istanbul ignore next */\r\n : create_array(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : create_array;\r\n};\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array|Buffer} buffer Buffer to read from\r\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n * @throws {Error} If `buffer` is not a valid buffer\r\n */\r\nReader.create = create();\r\n\r\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore if */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore if */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore if */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReader.prototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as an unsigned 32 bit integer.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore if */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32_end(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads fixed 32 bits as a signed 32 bit integer.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sfixed32 = function read_sfixed32() {\r\n\r\n /* istanbul ignore if */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32_end(this.buf, this.pos += 4) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore if */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long} Value read\r\n */\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.float = function read_float() {\r\n\r\n /* istanbul ignore if */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = util.float.readFloatLE(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.double = function read_double() {\r\n\r\n /* istanbul ignore if */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = util.float.readDoubleLE(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReader.prototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore if */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n if (Array.isArray(this.buf)) // plain array\r\n return this.buf.slice(start, end);\r\n\r\n if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n var nativeBuffer = util.Buffer;\r\n return nativeBuffer\r\n ? nativeBuffer.alloc(0)\r\n : new this.buf.constructor(0);\r\n }\r\n return this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReader.prototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore if */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n do {\r\n /* istanbul ignore if */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n while ((wireType = this.uint32() & 7) !== 4) {\r\n this.skipType(wireType);\r\n }\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nReader._configure = function(BufferReader_) {\r\n BufferReader = BufferReader_;\r\n Reader.create = create();\r\n BufferReader._configure();\r\n\r\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\r\n util.merge(Reader.prototype, {\r\n\r\n int64: function read_int64() {\r\n return readLongVarint.call(this)[fn](false);\r\n },\r\n\r\n uint64: function read_uint64() {\r\n return readLongVarint.call(this)[fn](true);\r\n },\r\n\r\n sint64: function read_sint64() {\r\n return readLongVarint.call(this).zzDecode()[fn](false);\r\n },\r\n\r\n fixed64: function read_fixed64() {\r\n return readFixed64.call(this)[fn](true);\r\n },\r\n\r\n sfixed64: function read_sfixed64() {\r\n return readFixed64.call(this)[fn](false);\r\n }\r\n\r\n });\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(\"./reader\");\r\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\r\n\r\nvar util = require(\"./util/minimal\");\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n\r\n /**\r\n * Read buffer.\r\n * @name BufferReader#buf\r\n * @type {Buffer}\r\n */\r\n}\r\n\r\nBufferReader._configure = function () {\r\n /* istanbul ignore else */\r\n if (util.Buffer)\r\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\r\n};\r\n\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReader.prototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice\r\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\r\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @name BufferReader#bytes\r\n * @function\r\n * @returns {Buffer} Value read\r\n */\r\n\r\nBufferReader._configure();\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(\"./namespace\");\r\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\r\n\r\nvar Field = require(\"./field\"),\r\n Enum = require(\"./enum\"),\r\n OneOf = require(\"./oneof\"),\r\n util = require(\"./util\");\r\n\r\nvar Type, // cyclic\r\n parse, // might be excluded\r\n common; // \"\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a namespace descriptor into a root namespace.\r\n * @param {INamespace} json Nameespace descriptor\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n if (json.options)\r\n root.setOptions(json.options);\r\n return root.addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\r\n */\r\nRoot.prototype.resolvePath = util.path.resolve;\r\n\r\n/**\r\n * Fetch content from file path or url\r\n * This method exists so you can override it with your own logic.\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRoot.prototype.fetch = util.fetch;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {IParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRoot.prototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename, options);\r\n\r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore if */\r\n if (!callback)\r\n return;\r\n if (sync)\r\n throw err;\r\n var cb = callback;\r\n callback = null;\r\n cb(err, root);\r\n }\r\n\r\n // Bundled definition existence checking\r\n function getBundledFileName(filename) {\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common) return altname;\r\n }\r\n return null;\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options),\r\n resolved,\r\n i = 0;\r\n if (parsed.imports)\r\n for (; i < parsed.imports.length; ++i)\r\n if (resolved = getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))\r\n fetch(resolved);\r\n if (parsed.weakImports)\r\n for (i = 0; i < parsed.weakImports.length; ++i)\r\n if (resolved = getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))\r\n fetch(resolved, true);\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n filename = getBundledFileName(filename) || filename;\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n self.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore if */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n /* istanbul ignore else */\r\n if (!weak)\r\n finish(err);\r\n else if (!queued) // can't be covered reliably\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n for (var i = 0, resolved; i < filename.length; ++i)\r\n if (resolved = self.resolvePath(\"\", filename[i]))\r\n fetch(resolved);\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @function Root#load\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @function Root#load\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:IParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @function Root#loadSync\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRoot.prototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRoot.prototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Root} root Root instance\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction tryHandleExtension(root, field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n //do not allow to extend same field twice to prevent the error\r\n if (extendedType.get(sisterField.name)) {\r\n return true;\r\n }\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleAdd = function _handleAdd(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\r\n if (!tryHandleExtension(this, object))\r\n this.deferred.push(object);\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\r\n\r\n if (object instanceof Type) // Try to handle any deferred extensions\r\n for (var i = 0; i < this.deferred.length;)\r\n if (tryHandleExtension(this, this.deferred[i]))\r\n this.deferred.splice(i, 1);\r\n else\r\n ++i;\r\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\r\n this._handleAdd(object._nestedArray[j]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n }\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleRemove = function _handleRemove(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field */ object.extend !== undefined) {\r\n if (/* already handled */ object.extensionField) { // remove its sister field\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n } else { // cancel the extension\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n }\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n\r\n } else if (object instanceof Namespace) {\r\n\r\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\r\n this._handleRemove(object._nestedArray[i]);\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n\r\n }\r\n};\r\n\r\n// Sets up cyclic dependencies (called in index-light)\r\nRoot._configure = function(Type_, parse_, common_) {\r\n Type = Type_;\r\n parse = parse_;\r\n common = common_;\r\n};\r\n","\"use strict\";\r\nmodule.exports = {};\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available across modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n *\r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n *\r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any, otherwise `null`\r\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(\"./rpc/service\");\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(\"../util/minimal\");\r\n\r\n// Extends EventEmitter\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n *\r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @template TRes extends Message\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {TRes} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @template TReq extends Message\r\n * @template TRes extends Message\r\n * @type {function}\r\n * @param {TReq|Properties} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {RPCImpl|null}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {Constructor} requestCtor Request constructor\r\n * @param {Constructor} responseCtor Response constructor\r\n * @param {TReq|Properties} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n * @template TReq extends Message\r\n * @template TRes extends Message\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(\"./namespace\");\r\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\r\n\r\nvar Method = require(\"./method\"),\r\n util = require(\"./util\"),\r\n rpc = require(\"./rpc\");\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {Method[]|null}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Service descriptor.\r\n * @interface IService\r\n * @extends INamespace\r\n * @property {Object.} methods Method descriptors\r\n */\r\n\r\n/**\r\n * Constructs a service from a service descriptor.\r\n * @param {string} name Service name\r\n * @param {IService} json Service descriptor\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\r\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\r\n if (json.nested)\r\n service.addJSON(json.nested);\r\n service.comment = json.comment;\r\n return service;\r\n};\r\n\r\n/**\r\n * Converts this service to a service descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IService} Service descriptor\r\n */\r\nService.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"options\" , inherited && inherited.options || undefined,\r\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\r\n \"nested\" , inherited && inherited.nested || undefined,\r\n \"comment\" , keepComments ? this.comment : undefined\r\n ]);\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Service.prototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.get = function get(name) {\r\n return this.methods[name]\r\n || Namespace.prototype.get.call(this, name);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.add = function add(object) {\r\n\r\n /* istanbul ignore if */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore if */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\r\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\r\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\r\n m: method,\r\n q: method.resolvedRequestType.ctor,\r\n s: method.resolvedResponseType.ctor\r\n });\r\n }\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(\"./namespace\");\r\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\r\n\r\nvar Enum = require(\"./enum\"),\r\n OneOf = require(\"./oneof\"),\r\n Field = require(\"./field\"),\r\n MapField = require(\"./mapfield\"),\r\n Service = require(\"./service\"),\r\n Message = require(\"./message\"),\r\n Reader = require(\"./reader\"),\r\n Writer = require(\"./writer\"),\r\n util = require(\"./util\"),\r\n encoder = require(\"./encoder\"),\r\n decoder = require(\"./decoder\"),\r\n verifier = require(\"./verifier\"),\r\n converter = require(\"./converter\"),\r\n wrappers = require(\"./wrappers\");\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {Array.}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {Object.|null}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {Field[]|null}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {OneOf[]|null}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {Constructor<{}>}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(Type.prototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n\r\n /* istanbul ignore if */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n\r\n this._fieldsById = {};\r\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore if */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\r\n * @name Type#ctor\r\n * @type {Constructor<{}>}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\r\n },\r\n set: function(ctor) {\r\n\r\n // Ensure proper prototype\r\n var prototype = ctor.prototype;\r\n if (!(prototype instanceof Message)) {\r\n (ctor.prototype = new Message()).constructor = ctor;\r\n util.merge(ctor.prototype, prototype);\r\n }\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = ctor.prototype.$type = this;\r\n\r\n // Mix in static methods\r\n util.merge(ctor, Message, true);\r\n\r\n this._ctor = ctor;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n var i = 0;\r\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\r\n this._fieldsArray[i].resolve(); // ensures a proper value\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n var ctorProperties = {};\r\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\r\n ctorProperties[this._oneofsArray[i].resolve().name] = {\r\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\r\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\r\n };\r\n if (i)\r\n Object.defineProperties(ctor.prototype, ctorProperties);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Generates a constructor function for the specified type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nType.generateConstructor = function generateConstructor(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var gen = util.codegen([\"p\"], mtype.name);\r\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\r\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\r\n if ((field = mtype._fieldsArray[i]).map) gen\r\n (\"this%s={}\", util.safeProp(field.name));\r\n else if (field.repeated) gen\r\n (\"this%s=[]\", util.safeProp(field.name));\r\n return gen\r\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\r\n * @property {Object.} fields Field descriptors\r\n * @property {number[][]} [extensions] Extension ranges\r\n * @property {Array.} [reserved] Reserved ranges\r\n * @property {boolean} [group=false] Whether a legacy group or not\r\n */\r\n\r\n/**\r\n * Creates a message type from a message type descriptor.\r\n * @param {string} name Message name\r\n * @param {IType} json Message type descriptor\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n var names = Object.keys(json.fields),\r\n i = 0;\r\n for (; i < names.length; ++i)\r\n type.add(\r\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\r\n ? MapField.fromJSON\r\n : Field.fromJSON )(names[i], json.fields[names[i]])\r\n );\r\n if (json.oneofs)\r\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\r\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\r\n if (json.nested)\r\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\r\n var nested = json.nested[names[i]];\r\n type.add( // most to least likely\r\n ( nested.id !== undefined\r\n ? Field.fromJSON\r\n : nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n if (json.comment)\r\n type.comment = json.comment;\r\n return type;\r\n};\r\n\r\n/**\r\n * Converts this message type to a message type descriptor.\r\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\r\n * @returns {IType} Message type descriptor\r\n */\r\nType.prototype.toJSON = function toJSON(toJSONOptions) {\r\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\r\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\r\n return util.toObject([\r\n \"options\" , inherited && inherited.options || undefined,\r\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\r\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\r\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\r\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\r\n \"group\" , this.group || undefined,\r\n \"nested\" , inherited && inherited.nested || undefined,\r\n \"comment\" , keepComments ? this.comment : undefined\r\n ]);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.get = function get(name) {\r\n return this.fields[name]\r\n || this.oneofs && this.oneofs[name]\r\n || this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nType.prototype.add = function add(object) {\r\n\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n\r\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\r\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (this.isReservedId(object.id))\r\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\r\n if (this.isReservedName(object.name))\r\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\r\n\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nType.prototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n\r\n /* istanbul ignore if */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n\r\n /* istanbul ignore if */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Tests if the specified id is reserved.\r\n * @param {number} id Id to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nType.prototype.isReservedId = function isReservedId(id) {\r\n return Namespace.isReservedId(this.reserved, id);\r\n};\r\n\r\n/**\r\n * Tests if the specified name is reserved.\r\n * @param {string} name Name to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nType.prototype.isReservedName = function isReservedName(name) {\r\n return Namespace.isReservedName(this.reserved, name);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message<{}>} Message instance\r\n */\r\nType.prototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nType.prototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n\r\n var fullName = this.fullName,\r\n types = [];\r\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\r\n types.push(this._fieldsArray[i].resolve().resolvedType);\r\n\r\n // Replace setup methods with type-specific generated functions\r\n this.encode = encoder(this)({\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this)({\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this)({\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = converter.fromObject(this)({\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this)({\r\n types : types,\r\n util : util\r\n });\r\n\r\n // Inject custom wrappers for common types\r\n var wrapper = wrappers[fullName];\r\n if (wrapper) {\r\n var originalThis = Object.create(this);\r\n // if (wrapper.fromObject) {\r\n originalThis.fromObject = this.fromObject;\r\n this.fromObject = wrapper.fromObject.bind(originalThis);\r\n // }\r\n // if (wrapper.toObject) {\r\n originalThis.toObject = this.toObject;\r\n this.toObject = wrapper.toObject.bind(originalThis);\r\n // }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\r\n * @param {Message<{}>|Object.} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\r\n * @param {Message<{}>|Object.} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message<{}>} Decoded message\r\n * @throws {Error} If the payload is not a reader or valid buffer\r\n * @throws {util.ProtocolError<{}>} If required fields are missing\r\n */\r\nType.prototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message<{}>} Decoded message\r\n * @throws {Error} If the payload is not a reader or valid buffer\r\n * @throws {util.ProtocolError} If required fields are missing\r\n */\r\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Object.} message Plain object to verify\r\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\r\n */\r\nType.prototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object to convert\r\n * @returns {Message<{}>} Message instance\r\n */\r\nType.prototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @interface IConversionOptions\r\n * @property {Function} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {Function} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {Function} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\r\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message<{}>} message Message instance\r\n * @param {IConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nType.prototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n\r\n/**\r\n * Decorator function as returned by {@link Type.d} (TypeScript).\r\n * @typedef TypeDecorator\r\n * @type {function}\r\n * @param {Constructor} target Target constructor\r\n * @returns {undefined}\r\n * @template T extends Message\r\n */\r\n\r\n/**\r\n * Type decorator (TypeScript).\r\n * @param {string} [typeName] Type name, defaults to the constructor's name\r\n * @returns {TypeDecorator} Decorator function\r\n * @template T extends Message\r\n */\r\nType.d = function decorateType(typeName) {\r\n return function typeDecorator(target) {\r\n util.decorateType(target, typeName);\r\n };\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(\"./util\");\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @const\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @const\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {null} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @const\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @const\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @const\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(\"./util/minimal\");\r\n\r\nvar roots = require(\"./roots\");\r\n\r\nvar Type, // cyclic\r\n Enum;\r\n\r\nutil.codegen = require(\"@protobufjs/codegen\");\r\nutil.fetch = require(\"@protobufjs/fetch\");\r\nutil.path = require(\"@protobufjs/path\");\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n if (object) {\r\n var keys = Object.keys(object),\r\n array = new Array(keys.length),\r\n index = 0;\r\n while (index < keys.length)\r\n array[index] = object[keys[index++]];\r\n return array;\r\n }\r\n return [];\r\n};\r\n\r\n/**\r\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\r\n * @param {Array.<*>} array Array to convert\r\n * @returns {Object.} Converted object\r\n */\r\nutil.toObject = function toObject(array) {\r\n var object = {},\r\n index = 0;\r\n while (index < array.length) {\r\n var key = array[index++],\r\n val = array[index++];\r\n if (val !== undefined)\r\n object[key] = val;\r\n }\r\n return object;\r\n};\r\n\r\nvar safePropBackslashRe = /\\\\/g,\r\n safePropQuoteRe = /\"/g;\r\n\r\n/**\r\n * Tests whether the specified name is a reserved word in JS.\r\n * @param {string} name Name to test\r\n * @returns {boolean} `true` if reserved, otherwise `false`\r\n */\r\nutil.isReserved = function isReserved(name) {\r\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified property name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\r\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\r\n return \".\" + prop;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n\r\nvar camelCaseRe = /_([a-z])/g;\r\n\r\n/**\r\n * Converts a string to camel case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.camelCase = function camelCase(str) {\r\n return str.substring(0, 1)\r\n + str.substring(1)\r\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\r\n};\r\n\r\n/**\r\n * Compares reflected fields by id.\r\n * @param {Field} a First field\r\n * @param {Field} b Second field\r\n * @returns {number} Comparison value\r\n */\r\nutil.compareFieldsById = function compareFieldsById(a, b) {\r\n return a.id - b.id;\r\n};\r\n\r\n/**\r\n * Decorator helper for types (TypeScript).\r\n * @param {Constructor} ctor Constructor function\r\n * @param {string} [typeName] Type name, defaults to the constructor's name\r\n * @returns {Type} Reflected type\r\n * @template T extends Message\r\n * @property {Root} root Decorators root\r\n */\r\nutil.decorateType = function decorateType(ctor, typeName) {\r\n\r\n /* istanbul ignore if */\r\n if (ctor.$type) {\r\n if (typeName && ctor.$type.name !== typeName) {\r\n util.decorateRoot.remove(ctor.$type);\r\n ctor.$type.name = typeName;\r\n util.decorateRoot.add(ctor.$type);\r\n }\r\n return ctor.$type;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(\"./type\");\r\n\r\n var type = new Type(typeName || ctor.name);\r\n util.decorateRoot.add(type);\r\n type.ctor = ctor; // sets up .encode, .decode etc.\r\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\r\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\r\n return type;\r\n};\r\n\r\nvar decorateEnumIndex = 0;\r\n\r\n/**\r\n * Decorator helper for enums (TypeScript).\r\n * @param {Object} object Enum object\r\n * @returns {Enum} Reflected enum\r\n */\r\nutil.decorateEnum = function decorateEnum(object) {\r\n\r\n /* istanbul ignore if */\r\n if (object.$type)\r\n return object.$type;\r\n\r\n /* istanbul ignore next */\r\n if (!Enum)\r\n Enum = require(\"./enum\");\r\n\r\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\r\n util.decorateRoot.add(enm);\r\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\r\n return enm;\r\n};\r\n\r\n\r\n/**\r\n * Sets the value of a property by property path. If a value already exists, it is turned to an array\r\n * @param {Object.} dst Destination object\r\n * @param {string} path dot '.' delimited path of the property to set\r\n * @param {Object} value the value to set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.setProperty = function setProperty(dst, path, value) {\r\n function setProp(dst, path, value) {\r\n var part = path.shift();\r\n if (part === \"__proto__\" || part === \"prototype\") {\r\n return dst;\r\n }\r\n if (path.length > 0) {\r\n dst[part] = setProp(dst[part] || {}, path, value);\r\n } else {\r\n var prevValue = dst[part];\r\n if (prevValue)\r\n value = [].concat(prevValue).concat(value);\r\n dst[part] = value;\r\n }\r\n return dst;\r\n }\r\n\r\n if (typeof dst !== \"object\")\r\n throw TypeError(\"dst must be an object\");\r\n if (!path)\r\n throw TypeError(\"path must be specified\");\r\n\r\n path = path.split(\".\");\r\n return setProp(dst, path, value);\r\n};\r\n\r\n/**\r\n * Decorator root (TypeScript).\r\n * @name util.decorateRoot\r\n * @type {Root}\r\n * @readonly\r\n */\r\nObject.defineProperty(util, \"decorateRoot\", {\r\n get: function() {\r\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(\"./root\"))());\r\n }\r\n});\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(\"../util/minimal\");\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low 32 bits, unsigned\r\n * @param {number} hi High 32 bits, unsigned\r\n */\r\nfunction LongBits(lo, hi) {\r\n\r\n // note that the casts below are theoretically unnecessary as of today, but older statically\r\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo >>> 0;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi >>> 0;\r\n}\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (util.isString(value)) {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBits.prototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBits.prototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBits.prototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBits.prototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\n// used to return a Promise where callback is omitted\r\nutil.asPromise = require(\"@protobufjs/aspromise\");\r\n\r\n// converts to / from base64 encoded strings\r\nutil.base64 = require(\"@protobufjs/base64\");\r\n\r\n// base class of rpc.Service\r\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\r\n\r\n// float handling accross browsers\r\nutil.float = require(\"@protobufjs/float\");\r\n\r\n// requires modules optionally and hides the call from bundlers\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\n\r\n// converts to / from utf8 encoded strings\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\n\r\n// provides a node-like buffer pool in the browser\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n// utility to work with the low and high bits of a 64 bit value\r\nutil.LongBits = require(\"./longbits\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(typeof global !== \"undefined\"\r\n && global\r\n && global.process\r\n && global.process.versions\r\n && global.process.versions.node);\r\n\r\n/**\r\n * Global object reference.\r\n * @memberof util\r\n * @type {Object}\r\n */\r\nutil.global = util.isNode && global\r\n || typeof window !== \"undefined\" && window\r\n || typeof self !== \"undefined\" && self\r\n || this; // eslint-disable-line no-invalid-this\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n * @const\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n * @const\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Checks if a property on a message is considered to be present.\r\n * This is an alias of {@link util.isSet}.\r\n * @function\r\n * @param {Object} obj Plain object or message instance\r\n * @param {string} prop Property name\r\n * @returns {boolean} `true` if considered to be present, otherwise `false`\r\n */\r\nutil.isset =\r\n\r\n/**\r\n * Checks if a property on a message is considered to be present.\r\n * @param {Object} obj Plain object or message instance\r\n * @param {string} prop Property name\r\n * @returns {boolean} `true` if considered to be present, otherwise `false`\r\n */\r\nutil.isSet = function isSet(obj, prop) {\r\n var value = obj[prop];\r\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\r\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\r\n return false;\r\n};\r\n\r\n/**\r\n * Any compatible Buffer instance.\r\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\r\n * @interface Buffer\r\n * @extends Uint8Array\r\n */\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {Constructor}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\r\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n// Internal alias of or polyfull for Buffer.from.\r\nutil._Buffer_from = null;\r\n\r\n// Internal alias of or polyfill for Buffer.allocUnsafe.\r\nutil._Buffer_allocUnsafe = null;\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array|Buffer} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util._Buffer_allocUnsafe(sizeOrArray)\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util._Buffer_from(sizeOrArray)\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {Constructor}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @interface Long\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {Constructor}\r\n */\r\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\r\n || /* istanbul ignore next */ util.global.Long\r\n || util.inquire(\"long\");\r\n\r\n/**\r\n * Regular expression used to verify 2 bit (`bool`) map keys.\r\n * @type {RegExp}\r\n * @const\r\n */\r\nutil.key2Re = /^true|false|0|1$/;\r\n\r\n/**\r\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\r\n * @type {RegExp}\r\n * @const\r\n */\r\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\r\n\r\n/**\r\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\r\n * @type {RegExp}\r\n * @const\r\n */\r\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @memberof util\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nfunction merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n}\r\n\r\nutil.merge = merge;\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Creates a custom error constructor.\r\n * @memberof util\r\n * @param {string} name Error name\r\n * @returns {Constructor} Custom error constructor\r\n */\r\nfunction newError(name) {\r\n\r\n function CustomError(message, properties) {\r\n\r\n if (!(this instanceof CustomError))\r\n return new CustomError(message, properties);\r\n\r\n // Error.call(this, message);\r\n // ^ just returns a new error instance because the ctor can be called as a function\r\n\r\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\r\n\r\n /* istanbul ignore next */\r\n if (Error.captureStackTrace) // node\r\n Error.captureStackTrace(this, CustomError);\r\n else\r\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\r\n\r\n if (properties)\r\n merge(this, properties);\r\n }\r\n\r\n CustomError.prototype = Object.create(Error.prototype, {\r\n constructor: {\r\n value: CustomError,\r\n writable: true,\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n name: {\r\n get: function get() { return name; },\r\n set: undefined,\r\n enumerable: false,\r\n // configurable: false would accurately preserve the behavior of\r\n // the original, but I'm guessing that was not intentional.\r\n // For an actual error subclass, this property would\r\n // be configurable.\r\n configurable: true,\r\n },\r\n toString: {\r\n value: function value() { return this.name + \": \" + this.message; },\r\n writable: true,\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n });\r\n\r\n return CustomError;\r\n}\r\n\r\nutil.newError = newError;\r\n\r\n/**\r\n * Constructs a new protocol error.\r\n * @classdesc Error subclass indicating a protocol specifc error.\r\n * @memberof util\r\n * @extends Error\r\n * @template T extends Message\r\n * @constructor\r\n * @param {string} message Error message\r\n * @param {Object.} [properties] Additional properties\r\n * @example\r\n * try {\r\n * MyMessage.decode(someBuffer); // throws if required fields are missing\r\n * } catch (e) {\r\n * if (e instanceof ProtocolError && e.instance)\r\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\r\n * }\r\n */\r\nutil.ProtocolError = newError(\"ProtocolError\");\r\n\r\n/**\r\n * So far decoded message instance.\r\n * @name util.ProtocolError#instance\r\n * @type {Message}\r\n */\r\n\r\n/**\r\n * A OneOf getter as returned by {@link util.oneOfGetter}.\r\n * @typedef OneOfGetter\r\n * @type {function}\r\n * @returns {string|undefined} Set field name, if any\r\n */\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {OneOfGetter} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n fieldMap[fieldNames[i]] = 1;\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * A OneOf setter as returned by {@link util.oneOfSetter}.\r\n * @typedef OneOfSetter\r\n * @type {function}\r\n * @param {string|undefined} value Field name\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {OneOfSetter} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Default conversion options used for {@link Message#toJSON} implementations.\r\n *\r\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\r\n *\r\n * - Longs become strings\r\n * - Enums become string keys\r\n * - Bytes become base64 encoded strings\r\n * - (Sub-)Messages become plain objects\r\n * - Maps become plain objects with all string keys\r\n * - Repeated fields become arrays\r\n * - NaN and Infinity for float and double fields become strings\r\n *\r\n * @type {IConversionOptions}\r\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String,\r\n json: true\r\n};\r\n\r\n// Sets up buffer utility according to the environment (called in index-minimal)\r\nutil._configure = function() {\r\n var Buffer = util.Buffer;\r\n /* istanbul ignore if */\r\n if (!Buffer) {\r\n util._Buffer_from = util._Buffer_allocUnsafe = null;\r\n return;\r\n }\r\n // because node 4.x buffers are incompatible & immutable\r\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\r\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\r\n /* istanbul ignore next */\r\n function Buffer_from(value, encoding) {\r\n return new Buffer(value, encoding);\r\n };\r\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\r\n /* istanbul ignore next */\r\n function Buffer_allocUnsafe(size) {\r\n return new Buffer(size);\r\n };\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(\"./enum\"),\r\n util = require(\"./util\");\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\r\n (\"case %i:\", field.resolvedType.values[keys[j]]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else {\r\n gen\r\n (\"{\")\r\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\")\r\n (\"}\");\r\n }\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.key32Re.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!util.key2Re.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n\r\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\r\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\r\n (\"return%j\", \"object expected\");\r\n var oneofs = mtype.oneofsArray,\r\n seenFirstField = {};\r\n if (oneofs.length) gen\r\n (\"var p={}\");\r\n\r\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\r\n var field = mtype._fieldsArray[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n if (field.optional) gen\r\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i}\r\n * @const\r\n */\r\nvar wrappers = exports;\r\n\r\nvar Message = require(\"./message\");\r\n\r\n/**\r\n * From object converter part of an {@link IWrapper}.\r\n * @typedef WrapperFromObjectConverter\r\n * @type {function}\r\n * @param {Object.} object Plain object\r\n * @returns {Message<{}>} Message instance\r\n * @this Type\r\n */\r\n\r\n/**\r\n * To object converter part of an {@link IWrapper}.\r\n * @typedef WrapperToObjectConverter\r\n * @type {function}\r\n * @param {Message<{}>} message Message instance\r\n * @param {IConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n * @this Type\r\n */\r\n\r\n/**\r\n * Common type wrapper part of {@link wrappers}.\r\n * @interface IWrapper\r\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\r\n * @property {WrapperToObjectConverter} [toObject] To object converter\r\n */\r\n\r\n// Custom wrapper for Any\r\nwrappers[\".google.protobuf.Any\"] = {\r\n\r\n fromObject: function(object) {\r\n\r\n // unwrap value type if mapped\r\n if (object && object[\"@type\"]) {\r\n // Only use fully qualified type name after the last '/'\r\n var name = object[\"@type\"].substring(object[\"@type\"].lastIndexOf(\"/\") + 1);\r\n var type = this.lookup(name);\r\n /* istanbul ignore else */\r\n if (type) {\r\n // type_url does not accept leading \".\"\r\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\r\n object[\"@type\"].slice(1) : object[\"@type\"];\r\n // type_url prefix is optional, but path seperator is required\r\n if (type_url.indexOf(\"/\") === -1) {\r\n type_url = \"/\" + type_url;\r\n }\r\n return this.create({\r\n type_url: type_url,\r\n value: type.encode(type.fromObject(object)).finish()\r\n });\r\n }\r\n }\r\n\r\n return this.fromObject(object);\r\n },\r\n\r\n toObject: function(message, options) {\r\n\r\n // Default prefix\r\n var googleApi = \"type.googleapis.com/\";\r\n var prefix = \"\";\r\n var name = \"\";\r\n\r\n // decode value if requested and unmapped\r\n if (options && options.json && message.type_url && message.value) {\r\n // Only use fully qualified type name after the last '/'\r\n name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\r\n // Separate the prefix used\r\n prefix = message.type_url.substring(0, message.type_url.lastIndexOf(\"/\") + 1);\r\n var type = this.lookup(name);\r\n /* istanbul ignore else */\r\n if (type)\r\n message = type.decode(message.value);\r\n }\r\n\r\n // wrap value if unmapped\r\n if (!(message instanceof this.ctor) && message instanceof Message) {\r\n var object = message.$type.toObject(message, options);\r\n var messageName = message.$type.fullName[0] === \".\" ?\r\n message.$type.fullName.slice(1) : message.$type.fullName;\r\n // Default to type.googleapis.com prefix if no prefix is used\r\n if (prefix === \"\") {\r\n prefix = googleApi;\r\n }\r\n name = prefix + messageName;\r\n object[\"@type\"] = name;\r\n return object;\r\n }\r\n\r\n return this.toObject(message, options);\r\n }\r\n};\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nvar util = require(\"./util/minimal\");\r\n\r\nvar BufferWriter; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {*} val Value to write\r\n * @ignore\r\n */\r\nfunction Op(fn, len, val) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {Writer.Op|undefined}\r\n */\r\n this.next = undefined;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val; // type varies\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @ignore\r\n */\r\nfunction State(writer) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {State|null}\r\n */\r\n this.next = writer.states;\r\n}\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {Object|null}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling operations with already prepared values.\r\n}\r\n\r\nvar create = function create() {\r\n return util.Buffer\r\n ? function create_buffer_setup() {\r\n return (Writer.create = function create_buffer() {\r\n return new BufferWriter();\r\n })();\r\n }\r\n /* istanbul ignore next */\r\n : function create_array() {\r\n return new Writer();\r\n };\r\n};\r\n\r\n/**\r\n * Creates a new writer.\r\n * @function\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = create();\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nWriter.alloc = function alloc(size) {\r\n return new util.Array(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\n/* istanbul ignore else */\r\nif (util.Array !== Array)\r\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n * @private\r\n */\r\nWriter.prototype._push = function push(fn, len, val) {\r\n this.tail = this.tail.next = new Op(fn, len, val);\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this._push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.int64 = Writer.prototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this._push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bool = function write_bool(value) {\r\n return this._push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fixed32 = function write_fixed32(value) {\r\n return this._push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as fixed 32 bits.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as fixed 64 bits.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.float = function write_float(value) {\r\n return this._push(util.float.writeFloatLE, 4, value);\r\n};\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.double = function write_double(value) {\r\n return this._push(util.float.writeDoubleLE, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this._push(writeByte, 1, 0);\r\n if (util.isString(value)) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len)._push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len)._push(utf8.write, len, value)\r\n : this._push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriter.prototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n\r\nWriter._configure = function(BufferWriter_) {\r\n BufferWriter = BufferWriter_;\r\n Writer.create = create();\r\n BufferWriter._configure();\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(\"./writer\");\r\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\r\n\r\nvar util = require(\"./util/minimal\");\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\nBufferWriter._configure = function () {\r\n /**\r\n * Allocates a buffer of the specified size.\r\n * @function\r\n * @param {number} size Buffer size\r\n * @returns {Buffer} Buffer\r\n */\r\n BufferWriter.alloc = util._Buffer_allocUnsafe;\r\n\r\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n};\r\n\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\r\n if (util.isString(value))\r\n value = util._Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this._push(BufferWriter.writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else if (buf.utf8Write)\r\n buf.utf8Write(val, pos);\r\n else\r\n buf.write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.string = function write_string_buffer(value) {\r\n var len = util.Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this._push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @name BufferWriter#finish\r\n * @function\r\n * @returns {Buffer} Finished buffer\r\n */\r\n\r\nBufferWriter._configure();\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function () {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); } /*:: import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore';*/\n/*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n/*:: type DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean,\n prevPropsPosition: ?ControlPosition,\n};*/\n/*:: export type DraggableDefaultProps = {\n ...DraggableCoreDefaultProps,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: Bounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n scale: number,\n};*/\n/*:: export type DraggableProps = {\n ...DraggableCoreProps,\n ...DraggableDefaultProps,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n};*/\n//\n// Define \n//\nclass Draggable extends React.Component /*:: */{\n // React 16.3+\n // Arity (props, state)\n static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial*/{\n let {\n position\n } /*: DraggableProps*/ = _ref /*: DraggableProps*/;\n let {\n prevPropsPosition\n } /*: DraggableState*/ = _ref2 /*: DraggableState*/;\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position,\n prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: {\n ...position\n }\n };\n }\n return null;\n }\n constructor(props /*: DraggableProps*/) {\n super(props);\n _defineProperty(this, \"onDragStart\", (e, coreData) => {\n (0, _log.default)('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n this.setState({\n dragging: true,\n dragged: true\n });\n });\n _defineProperty(this, \"onDrag\", (e, coreData) => {\n if (!this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n const uiData = (0, _positionFns.createDraggableData)(this, coreData);\n const newState = {\n x: uiData.x,\n y: uiData.y,\n slackX: 0,\n slackY: 0\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {\n x,\n y\n } = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n this.setState(newState);\n });\n _defineProperty(this, \"onDragStop\", (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n const newState /*: Partial*/ = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {\n x,\n y\n } = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n this.setState(newState);\n });\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: {\n ...props.position\n },\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n }\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n var _this$props$nodeRef$c, _this$props;\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 || (_this$props = _this$props.nodeRef) === null || _this$props === void 0 ? void 0 : _this$props.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n render() /*: ReactElement*/{\n const {\n axis,\n bounds,\n children,\n defaultPosition,\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged,\n position,\n positionOffset,\n scale,\n ...draggableCoreProps\n } = this.props;\n let style = {};\n let svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(position);\n const draggable = !controlled || this.state.dragging;\n const validPosition = position || defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n }\n\n // Mark with class while dragging\n const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: {\n ...children.props.style,\n ...style\n },\n transform: svgTransform\n }));\n }\n}\nexports.default = Draggable;\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n_defineProperty(Draggable, \"propTypes\", {\n // Accepts all props accepts.\n ..._DraggableCore.default.propTypes,\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(Draggable, \"defaultProps\", {\n ..._DraggableCore.default.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n/*:: export type ControlPosition = {x: number, y: number};*/\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nclass DraggableCore extends React.Component /*:: */{\n constructor() {\n super(...arguments);\n _defineProperty(this, \"dragging\", false);\n // Used while dragging to determine deltas.\n _defineProperty(this, \"lastX\", NaN);\n _defineProperty(this, \"lastY\", NaN);\n _defineProperty(this, \"touchIdentifier\", null);\n _defineProperty(this, \"mounted\", false);\n _defineProperty(this, \"handleDragStart\", e => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = this.findDOMNode();\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {\n ownerDocument\n } = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {\n return;\n }\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n if (e.type === 'touchstart') e.preventDefault();\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n this.touchIdentifier = touchIdentifier;\n\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {\n x,\n y\n } = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n (0, _log.default)('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.dragging = true;\n this.lastX = x;\n this.lastY = y;\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);\n });\n _defineProperty(this, \"handleDrag\", e => {\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX,\n deltaY = y - this.lastY;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n this.lastX = x;\n this.lastY = y;\n });\n _defineProperty(this, \"handleDragStop\", e => {\n if (!this.dragging) return;\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX || 0;\n let deltaY = y - this.lastY || 0;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n\n // Call event handler\n const shouldContinue = this.props.onStop(e, coreEvent);\n if (shouldContinue === false || this.mounted === false) return false;\n const thisNode = this.findDOMNode();\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.dragging = false;\n this.lastX = NaN;\n this.lastY = NaN;\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n });\n _defineProperty(this, \"onMouseDown\", e => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onMouseUp\", e => {\n dragEventFor = eventsFor.mouse;\n return this.handleDragStop(e);\n });\n // Same as onMouseDown (start drag), but now consider this a touch device.\n _defineProperty(this, \"onTouchStart\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onTouchEnd\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStop(e);\n });\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n const thisNode = this.findDOMNode();\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const {\n ownerDocument\n } = thisNode;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n var _this$props, _this$props2;\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 || (_this$props2 = _this$props2.nodeRef) === null || _this$props2 === void 0 ? void 0 : _this$props2.current : _reactDom.default.findDOMNode(this);\n }\n render() /*: React.Element*/{\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n}\nexports.default = DraggableCore;\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n children: _propTypes.default.node.isRequired,\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys*/) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function () {},\n onDrag: function () {},\n onStop: function () {},\n onMouseDown: function () {},\n scale: 1\n});","\"use strict\";\n\nconst {\n default: Draggable,\n DraggableCore\n} = require('./Draggable');\n\n// Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nvar _shims = require(\"./shims\");\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/\nlet matchesSelectorFunc = '';\nfunction matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nfunction matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n // $FlowIgnore[incompatible-type]\n node = node.parentNode;\n } while (node);\n return false;\n}\nfunction addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nfunction removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nfunction outerHeight(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\nfunction outerWidth(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node /*: HTMLElement*/) /*: number*/{\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\nfunction innerWidth(node /*: HTMLElement*/) /*: number*/{\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n// Get from offsetParent\nfunction offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x,\n y\n };\n}\nfunction createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {\n [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation\n };\n}\nfunction createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nfunction getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{\n let {\n x,\n y\n } /*: ControlPosition*/ = _ref /*: ControlPosition*/;\n let translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n if (positionOffset) {\n const defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n const defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n return translation;\n}\nfunction getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);\n}\nfunction getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nfunction addUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\nfunction removeUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n const selection = (doc.defaultView || window).getSelection();\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {\n // probably IE\n }\n}\nfunction addClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\nfunction removeClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nfunction getPrefix() /*: string*/{\n var _window$document;\n let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return '';\n\n // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n const style = (_window$document = window.document) === null || _window$document === void 0 || (_window$document = _window$document.documentElement) === null || _window$document === void 0 ? void 0 : _window$document.style;\n if (!style) return '';\n if (prop in style) return '';\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n return '';\n}\nfunction browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\nfunction browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\nfunction kebabToTitleCase(str /*: string*/) /*: string*/{\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nvar _default = exports.default = (getPrefix() /*: string*/);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n/*eslint no-console:0*/\nfunction log() {\n if (undefined) console.log(...arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\nvar _shims = require(\"./shims\");\nvar _domFns = require(\"./domFns\");\n/*:: import type Draggable from '../Draggable';*/\n/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/\n/*:: import type DraggableCore from '../DraggableCore';*/\nfunction getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {\n bounds\n } = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n if (typeof bounds === 'string') {\n const {\n ownerDocument\n } = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\nfunction snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\nfunction canDragX(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\nfunction canDragY(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nfunction getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{\n const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n}\n\n// Create an data object exposed by 's events\nfunction createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{\n const isStart = !(0, _shims.isNum)(draggable.lastX);\n const node = findDOMNode(draggable);\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - draggable.lastX,\n deltaY: y - draggable.lastY,\n lastX: draggable.lastX,\n lastY: draggable.lastY,\n x,\n y\n };\n }\n}\n\n// Create an data exposed by 's events\nfunction createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\nfunction findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{\n const node = draggable.findDOMNode();\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/{\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\nfunction isFunction(func /*: any*/) /*: boolean %checks*/{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\nfunction isNum(num /*: any*/) /*: boolean %checks*/{\n return typeof num === 'number' && !isNaN(num);\n}\nfunction int(a /*: string*/) /*: number*/{\n return parseInt(a, 10);\n}\nfunction dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t &&` 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 // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\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 _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 _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDraggable = require(\"react-draggable\");\n\nvar _reactResizable = require(\"react-resizable\");\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _ReactGridLayoutPropTypes = require(\"./ReactGridLayoutPropTypes\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\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 _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\n/**\n * An individual item within a ReactGridLayout.\n */\nvar GridItem = /*#__PURE__*/function (_React$Component) {\n _inherits(GridItem, _React$Component);\n\n var _super = _createSuper(GridItem);\n\n function GridItem() {\n var _this;\n\n _classCallCheck(this, GridItem);\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), \"state\", {\n resizing: null,\n dragging: null,\n className: \"\"\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/_react.default.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, _ref) {\n var node = _ref.node;\n var _this$props = _this.props,\n onDragStart = _this$props.onDragStart,\n transformScale = _this$props.transformScale;\n if (!onDragStart) return;\n var newPosition\n /*: PartialPosition*/\n = {\n top: 0,\n left: 0\n }; // TODO: this wont work on nested parents\n\n var offsetParent = node.offsetParent;\n if (!offsetParent) return;\n var parentRect = offsetParent.getBoundingClientRect();\n var clientRect = node.getBoundingClientRect();\n var cLeft = clientRect.left / transformScale;\n var pLeft = parentRect.left / transformScale;\n var cTop = clientRect.top / transformScale;\n var pTop = parentRect.top / transformScale;\n newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;\n newPosition.top = cTop - pTop + offsetParent.scrollTop;\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY = (0, _calculateUtils.calcXY)(_this.getPositionParams(), newPosition.top, newPosition.left, _this.props.w, _this.props.h),\n x = _calcXY.x,\n y = _calcXY.y;\n\n return onDragStart.call(_assertThisInitialized(_this), _this.props.i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n var onDrag = _this.props.onDrag;\n if (!onDrag) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDrag called before onDragStart.\");\n }\n\n var top = _this.state.dragging.top + deltaY;\n var left = _this.state.dragging.left + deltaX;\n var _this$props2 = _this.props,\n isBounded = _this$props2.isBounded,\n i = _this$props2.i,\n w = _this$props2.w,\n h = _this$props2.h,\n containerWidth = _this$props2.containerWidth;\n\n var positionParams = _this.getPositionParams(); // Boundary calculations; keeps items within the grid\n\n\n if (isBounded) {\n var offsetParent = node.offsetParent;\n\n if (offsetParent) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n rowHeight = _this$props3.rowHeight;\n var bottomBoundary = offsetParent.clientHeight - (0, _calculateUtils.calcGridItemWHPx)(h, rowHeight, margin[1]);\n top = (0, _calculateUtils.clamp)(top, 0, bottomBoundary);\n var colWidth = (0, _calculateUtils.calcGridColWidth)(positionParams);\n var rightBoundary = containerWidth - (0, _calculateUtils.calcGridItemWHPx)(w, colWidth, margin[0]);\n left = (0, _calculateUtils.clamp)(left, 0, rightBoundary);\n }\n }\n\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY2 = (0, _calculateUtils.calcXY)(positionParams, top, left, w, h),\n x = _calcXY2.x,\n y = _calcXY2.y;\n\n return onDrag.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, _ref3) {\n var node = _ref3.node;\n var onDragStop = _this.props.onDragStop;\n if (!onDragStop) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDragEnd called before onDragStart.\");\n }\n\n var _this$props4 = _this.props,\n w = _this$props4.w,\n h = _this$props4.h,\n i = _this$props4.i;\n var _this$state$dragging = _this.state.dragging,\n left = _this$state$dragging.left,\n top = _this$state$dragging.top;\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: null\n });\n\n var _calcXY3 = (0, _calculateUtils.calcXY)(_this.getPositionParams(), top, left, w, h),\n x = _calcXY3.x,\n y = _calcXY3.y;\n\n return onDragStop.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStop\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStart\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResize\");\n });\n\n return _this;\n }\n\n _createClass(GridItem, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n // We can't deeply compare children. If the developer memoizes them, we can\n // use this optimization.\n if (this.props.children !== nextProps.children) return true;\n if (this.props.droppingPosition !== nextProps.droppingPosition) return true; // TODO memoize these calculations so they don't take so long?\n\n var oldPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(this.props), this.props.x, this.props.y, this.props.w, this.props.h, this.state);\n var newPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(nextProps), nextProps.x, nextProps.y, nextProps.w, nextProps.h, nextState);\n return !(0, _utils.fastPositionEqual)(oldPosition, newPosition) || this.props.useCSSTransforms !== nextProps.useCSSTransforms;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.moveDroppingItem({});\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n ) {\n this.moveDroppingItem(prevProps);\n } // When a droppingPosition is present, this means we should fire a move event, as if we had moved\n // this element by `x, y` pixels.\n\n }, {\n key: \"moveDroppingItem\",\n value: function moveDroppingItem(prevProps\n /*: Props*/\n ) {\n var droppingPosition = this.props.droppingPosition;\n if (!droppingPosition) return;\n var node = this.elementRef.current; // Can't find DOM node (are we unmounted?)\n\n if (!node) return;\n var prevDroppingPosition = prevProps.droppingPosition || {\n left: 0,\n top: 0\n };\n var dragging = this.state.dragging;\n var shouldDrag = dragging && droppingPosition.left !== prevDroppingPosition.left || droppingPosition.top !== prevDroppingPosition.top;\n\n if (!dragging) {\n this.onDragStart(droppingPosition.e, {\n node: node,\n deltaX: droppingPosition.left,\n deltaY: droppingPosition.top\n });\n } else if (shouldDrag) {\n var deltaX = droppingPosition.left - dragging.left;\n var deltaY = droppingPosition.top - dragging.top;\n this.onDrag(droppingPosition.e, {\n node: node,\n deltaX: deltaX,\n deltaY: deltaY\n });\n }\n }\n }, {\n key: \"getPositionParams\",\n value: function getPositionParams()\n /*: PositionParams*/\n {\n var props\n /*: Props*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n return {\n cols: props.cols,\n containerPadding: props.containerPadding,\n containerWidth: props.containerWidth,\n margin: props.margin,\n maxRows: props.maxRows,\n rowHeight: props.rowHeight\n };\n }\n /**\n * This is where we set the grid item's absolute placement. It gets a little tricky because we want to do it\n * well when server rendering, and the only way to do that properly is to use percentage width/left because\n * we don't know exactly what the browser viewport is.\n * Unfortunately, CSS Transforms, which are great for performance, break in this instance because a percentage\n * left is relative to the item itself, not its container! So we cannot use them on the server rendering pass.\n *\n * @param {Object} pos Position object with width, height, left, top.\n * @return {Object} Style object.\n */\n\n }, {\n key: \"createStyle\",\n value: function createStyle(pos\n /*: Position*/\n )\n /*: { [key: string]: ?string }*/\n {\n var _this$props5 = this.props,\n usePercentages = _this$props5.usePercentages,\n containerWidth = _this$props5.containerWidth,\n useCSSTransforms = _this$props5.useCSSTransforms;\n var style; // CSS Transforms support (default)\n\n if (useCSSTransforms) {\n style = (0, _utils.setTransform)(pos);\n } else {\n // top,left (slow)\n style = (0, _utils.setTopLeft)(pos); // This is used for server rendering.\n\n if (usePercentages) {\n style.left = (0, _utils.perc)(pos.left / containerWidth);\n style.width = (0, _utils.perc)(pos.width / containerWidth);\n }\n }\n\n return style;\n }\n /**\n * Mix a Draggable instance into a child.\n * @param {Element} child Child element.\n * @return {Element} Child wrapped in Draggable.\n */\n\n }, {\n key: \"mixinDraggable\",\n value: function mixinDraggable(child\n /*: ReactElement*/\n , isDraggable\n /*: boolean*/\n )\n /*: ReactElement*/\n {\n return /*#__PURE__*/_react.default.createElement(_reactDraggable.DraggableCore, {\n disabled: !isDraggable,\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop,\n handle: this.props.handle,\n cancel: \".react-resizable-handle\" + (this.props.cancel ? \",\" + this.props.cancel : \"\"),\n scale: this.props.transformScale,\n nodeRef: this.elementRef\n }, child);\n }\n /**\n * Mix a Resizable instance into a child.\n * @param {Element} child Child element.\n * @param {Object} position Position object (pixel values)\n * @return {Element} Child wrapped in Resizable.\n */\n\n }, {\n key: \"mixinResizable\",\n value: function mixinResizable(child\n /*: ReactElement*/\n , position\n /*: Position*/\n , isResizable\n /*: boolean*/\n )\n /*: ReactElement*/\n {\n var _this$props6 = this.props,\n cols = _this$props6.cols,\n x = _this$props6.x,\n minW = _this$props6.minW,\n minH = _this$props6.minH,\n maxW = _this$props6.maxW,\n maxH = _this$props6.maxH,\n transformScale = _this$props6.transformScale,\n resizeHandles = _this$props6.resizeHandles,\n resizeHandle = _this$props6.resizeHandle;\n var positionParams = this.getPositionParams(); // This is the max possible width - doesn't go to infinity because of the width of the window\n\n var maxWidth = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, cols - x, 0).width; // Calculate min/max constraints using our min & maxes\n\n var mins = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, minW, minH);\n var maxes = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, maxW, maxH);\n var minConstraints = [mins.width, mins.height];\n var maxConstraints = [Math.min(maxes.width, maxWidth), Math.min(maxes.height, Infinity)];\n return /*#__PURE__*/_react.default.createElement(_reactResizable.Resizable // These are opts for the resize handle itself\n , {\n draggableOpts: {\n disabled: !isResizable\n },\n className: isResizable ? undefined : \"react-resizable-hide\",\n width: position.width,\n height: position.height,\n minConstraints: minConstraints,\n maxConstraints: maxConstraints,\n onResizeStop: this.onResizeStop,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n transformScale: transformScale,\n resizeHandles: resizeHandles,\n handle: resizeHandle\n }, child);\n }\n /**\n * onDragStart event handler\n * @param {Event} e event data\n * @param {Object} callbackData an object with node, delta and position information\n */\n\n }, {\n key: \"onResizeHandler\",\n value:\n /**\n * Wrapper around drag events to provide more useful data.\n * All drag events call the function with the given handler name,\n * with the signature (index, x, y).\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */\n function onResizeHandler(e\n /*: Event*/\n , _ref4, handlerName\n /*: string*/\n )\n /*: void*/\n {\n var node = _ref4.node,\n size = _ref4.size;\n var handler = this.props[handlerName];\n if (!handler) return;\n var _this$props7 = this.props,\n cols = _this$props7.cols,\n x = _this$props7.x,\n y = _this$props7.y,\n i = _this$props7.i,\n maxH = _this$props7.maxH,\n minH = _this$props7.minH;\n var _this$props8 = this.props,\n minW = _this$props8.minW,\n maxW = _this$props8.maxW; // Get new XY\n\n var _calcWH = (0, _calculateUtils.calcWH)(this.getPositionParams(), size.width, size.height, x, y),\n w = _calcWH.w,\n h = _calcWH.h; // minW should be at least 1 (TODO propTypes validation?)\n\n\n minW = Math.max(minW, 1); // maxW should be at most (cols - x)\n\n maxW = Math.min(maxW, cols - x); // Min/max capping\n\n w = (0, _calculateUtils.clamp)(w, minW, maxW);\n h = (0, _calculateUtils.clamp)(h, minH, maxH);\n this.setState({\n resizing: handlerName === \"onResizeStop\" ? null : size\n });\n handler.call(this, i, w, h, {\n e: e,\n node: node,\n size: size\n });\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactNode*/\n {\n var _this$props9 = this.props,\n x = _this$props9.x,\n y = _this$props9.y,\n w = _this$props9.w,\n h = _this$props9.h,\n isDraggable = _this$props9.isDraggable,\n isResizable = _this$props9.isResizable,\n droppingPosition = _this$props9.droppingPosition,\n useCSSTransforms = _this$props9.useCSSTransforms;\n var pos = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(), x, y, w, h, this.state);\n\n var child = _react.default.Children.only(this.props.children); // Create the child element. We clone the existing element but modify its className and style.\n\n\n var newChild = /*#__PURE__*/_react.default.cloneElement(child, {\n ref: this.elementRef,\n className: (0, _clsx.default)(\"react-grid-item\", child.props.className, this.props.className, {\n static: this.props.static,\n resizing: Boolean(this.state.resizing),\n \"react-draggable\": isDraggable,\n \"react-draggable-dragging\": Boolean(this.state.dragging),\n dropping: Boolean(droppingPosition),\n cssTransforms: useCSSTransforms\n }),\n // We can set the width and height on the child, but unfortunately we can't set the position.\n style: _objectSpread(_objectSpread(_objectSpread({}, this.props.style), child.props.style), this.createStyle(pos))\n }); // Resizable support. This is usually on but the user can toggle it off.\n\n\n newChild = this.mixinResizable(newChild, pos, isResizable); // Draggable support. This is always on, except for with placeholders.\n\n newChild = this.mixinDraggable(newChild, isDraggable);\n return newChild;\n }\n }]);\n\n return GridItem;\n}(_react.default.Component);\n\nexports.default = GridItem;\n\n_defineProperty(GridItem, \"propTypes\", {\n // Children must be only a single element\n children: _propTypes.default.element,\n // General grid attributes\n cols: _propTypes.default.number.isRequired,\n containerWidth: _propTypes.default.number.isRequired,\n rowHeight: _propTypes.default.number.isRequired,\n margin: _propTypes.default.array.isRequired,\n maxRows: _propTypes.default.number.isRequired,\n containerPadding: _propTypes.default.array.isRequired,\n // These are all in grid units\n x: _propTypes.default.number.isRequired,\n y: _propTypes.default.number.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired,\n // All optional\n minW: function minW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minWidth not Number\");\n if (value > props.w || value > props.maxW) return new Error(\"minWidth larger than item width/maxWidth\");\n },\n maxW: function maxW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxWidth not Number\");\n if (value < props.w || value < props.minW) return new Error(\"maxWidth smaller than item width/minWidth\");\n },\n minH: function minH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minHeight not Number\");\n if (value > props.h || value > props.maxH) return new Error(\"minHeight larger than item height/maxHeight\");\n },\n maxH: function maxH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxHeight not Number\");\n if (value < props.h || value < props.minH) return new Error(\"maxHeight smaller than item height/minHeight\");\n },\n // ID is nice to have for callbacks\n i: _propTypes.default.string.isRequired,\n // Resize handle options\n resizeHandles: _ReactGridLayoutPropTypes.resizeHandleAxesType,\n resizeHandle: _ReactGridLayoutPropTypes.resizeHandleType,\n // Functions\n onDragStop: _propTypes.default.func,\n onDragStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onResizeStop: _propTypes.default.func,\n onResizeStart: _propTypes.default.func,\n onResize: _propTypes.default.func,\n // Flags\n isDraggable: _propTypes.default.bool.isRequired,\n isResizable: _propTypes.default.bool.isRequired,\n isBounded: _propTypes.default.bool.isRequired,\n static: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool.isRequired,\n transformScale: _propTypes.default.number,\n // Others\n className: _propTypes.default.string,\n // Selector for draggable handle\n handle: _propTypes.default.string,\n // Selector for draggable cancel (see react-draggable)\n cancel: _propTypes.default.string,\n // Current position of a dropping element\n droppingPosition: _propTypes.default.shape({\n e: _propTypes.default.object.isRequired,\n left: _propTypes.default.number.isRequired,\n top: _propTypes.default.number.isRequired\n })\n});\n\n_defineProperty(GridItem, \"defaultProps\", {\n className: \"\",\n cancel: \"\",\n handle: \"\",\n minH: 1,\n minW: 1,\n maxH: Infinity,\n maxW: Infinity,\n transformScale: 1\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.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _GridItem = _interopRequireDefault(require(\"./GridItem\"));\n\nvar _ReactGridLayoutPropTypes = _interopRequireDefault(require(\"./ReactGridLayoutPropTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _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\nfunction _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\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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\n// End Types\nvar layoutClassName = \"react-grid-layout\";\nvar isFirefox = false; // Try...catch will protect from navigator not existing (e.g. node) or a bad implementation of navigator\n\ntry {\n isFirefox = /firefox/i.test(navigator.userAgent);\n} catch (e) {\n /* Ignore */\n}\n/**\n * A reactive, fluid grid layout with draggable, resizable components.\n */\n\n\nvar ReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactGridLayout, _React$Component);\n\n var _super = _createSuper(ReactGridLayout);\n\n function ReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ReactGridLayout);\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), \"state\", {\n activeDrag: null,\n layout: (0, _utils.synchronizeLayoutWithChildren)(_this.props.layout, _this.props.children, _this.props.cols, // Legacy support for verticalCompact: false\n (0, _utils.compactType)(_this.props), _this.props.allowOverlap),\n mounted: false,\n oldDragItem: null,\n oldLayout: null,\n oldResizeItem: null,\n droppingDOMNode: null,\n children: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"dragEnterCounter\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (i\n /*: string*/\n , x\n /*: number*/\n , y\n /*: number*/\n , _ref) {\n var e = _ref.e,\n node = _ref.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldDragItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: layout\n });\n\n return _this.props.onDragStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (i, x, y, _ref2) {\n var e = _ref2.e,\n node = _ref2.node;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props = _this.props,\n cols = _this$props.cols,\n allowOverlap = _this$props.allowOverlap,\n preventCollision = _this$props.preventCollision;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Create placeholder (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n placeholder: true,\n i: i\n }; // Move the element to the dragged location.\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDrag(layout, oldDragItem, l, placeholder, e, node);\n\n _this.setState({\n layout: allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (i, x, y, _ref3) {\n var e = _ref3.e,\n node = _ref3.node;\n if (!_this.state.activeDrag) return;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props2 = _this.props,\n cols = _this$props2.cols,\n preventCollision = _this$props2.preventCollision,\n allowOverlap = _this$props2.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Move the element here\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDragStop(layout, oldDragItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldDragItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (i, w, h, _ref4) {\n var e = _ref4.e,\n node = _ref4.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldResizeItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: _this.state.layout\n });\n\n _this.props.onResizeStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (i, w, h, _ref5) {\n var e = _ref5.e,\n node = _ref5.node;\n var _this$state = _this.state,\n layout = _this$state.layout,\n oldResizeItem = _this$state.oldResizeItem;\n var _this$props3 = _this.props,\n cols = _this$props3.cols,\n preventCollision = _this$props3.preventCollision,\n allowOverlap = _this$props3.allowOverlap;\n\n var _withLayoutItem = (0, _utils.withLayoutItem)(layout, i, function (l) {\n // Something like quad tree should be used\n // to find collisions faster\n var hasCollisions;\n\n if (preventCollision && !allowOverlap) {\n var collisions = (0, _utils.getAllCollisions)(layout, _objectSpread(_objectSpread({}, l), {}, {\n w: w,\n h: h\n })).filter(function (layoutItem) {\n return layoutItem.i !== l.i;\n });\n hasCollisions = collisions.length > 0; // If we're colliding, we need adjust the placeholder.\n\n // If we're colliding, we need adjust the placeholder.\n if (hasCollisions) {\n // adjust w && h to maximum allowed space\n var leastX = Infinity,\n leastY = Infinity;\n collisions.forEach(function (layoutItem) {\n if (layoutItem.x > l.x) leastX = Math.min(leastX, layoutItem.x);\n if (layoutItem.y > l.y) leastY = Math.min(leastY, layoutItem.y);\n });\n if (Number.isFinite(leastX)) l.w = leastX - l.x;\n if (Number.isFinite(leastY)) l.h = leastY - l.y;\n }\n }\n\n if (!hasCollisions) {\n // Set new width and height.\n l.w = w;\n l.h = h;\n }\n\n return l;\n }),\n _withLayoutItem2 = _slicedToArray(_withLayoutItem, 2),\n newLayout = _withLayoutItem2[0],\n l = _withLayoutItem2[1]; // Shouldn't ever happen, but typechecking makes it necessary\n\n\n if (!l) return; // Create placeholder element (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n static: true,\n i: i\n };\n\n _this.props.onResize(newLayout, oldResizeItem, l, placeholder, e, node); // Re-compact the newLayout and set the drag placeholder.\n\n\n _this.setState({\n layout: allowOverlap ? newLayout : (0, _utils.compact)(newLayout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (i, w, h, _ref6) {\n var e = _ref6.e,\n node = _ref6.node;\n var _this$state2 = _this.state,\n layout = _this$state2.layout,\n oldResizeItem = _this$state2.oldResizeItem;\n var _this$props4 = _this.props,\n cols = _this$props4.cols,\n allowOverlap = _this$props4.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n\n _this.props.onResizeStop(layout, oldResizeItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldResizeItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragOver\", function (e) {\n var _e$nativeEvent$target;\n\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation(); // we should ignore events from layout's children in Firefox\n // to avoid unpredictable jumping of a dropping placeholder\n // FIXME remove this hack\n\n if (isFirefox && // $FlowIgnore can't figure this out\n !((_e$nativeEvent$target = e.nativeEvent.target) !== null && _e$nativeEvent$target !== void 0 && _e$nativeEvent$target.classList.contains(layoutClassName))) {\n return false;\n }\n\n var _this$props5 = _this.props,\n droppingItem = _this$props5.droppingItem,\n onDropDragOver = _this$props5.onDropDragOver,\n margin = _this$props5.margin,\n cols = _this$props5.cols,\n rowHeight = _this$props5.rowHeight,\n maxRows = _this$props5.maxRows,\n width = _this$props5.width,\n containerPadding = _this$props5.containerPadding,\n transformScale = _this$props5.transformScale; // Allow user to customize the dropping item or short-circuit the drop based on the results\n // of the `onDragOver(e: Event)` callback.\n\n var onDragOverResult = onDropDragOver === null || onDropDragOver === void 0 ? void 0 : onDropDragOver(e);\n\n if (onDragOverResult === false) {\n if (_this.state.droppingDOMNode) {\n _this.removeDroppingPlaceholder();\n }\n\n return false;\n }\n\n var finalDroppingItem = _objectSpread(_objectSpread({}, droppingItem), onDragOverResult);\n\n var layout = _this.state.layout; // This is relative to the DOM element that this event fired for.\n\n var _e$nativeEvent = e.nativeEvent,\n layerX = _e$nativeEvent.layerX,\n layerY = _e$nativeEvent.layerY;\n var droppingPosition = {\n left: layerX / transformScale,\n top: layerY / transformScale,\n e: e\n };\n\n if (!_this.state.droppingDOMNode) {\n var positionParams\n /*: PositionParams*/\n = {\n cols: cols,\n margin: margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n containerWidth: width,\n containerPadding: containerPadding || margin\n };\n var calculatedPosition = (0, _calculateUtils.calcXY)(positionParams, layerY, layerX, finalDroppingItem.w, finalDroppingItem.h);\n\n _this.setState({\n droppingDOMNode: /*#__PURE__*/React.createElement(\"div\", {\n key: finalDroppingItem.i\n }),\n droppingPosition: droppingPosition,\n layout: [].concat(_toConsumableArray(layout), [_objectSpread(_objectSpread({}, finalDroppingItem), {}, {\n x: calculatedPosition.x,\n y: calculatedPosition.y,\n static: false,\n isDraggable: true\n })])\n });\n } else if (_this.state.droppingPosition) {\n var _this$state$droppingP = _this.state.droppingPosition,\n left = _this$state$droppingP.left,\n top = _this$state$droppingP.top;\n var shouldUpdatePosition = left != layerX || top != layerY;\n\n if (shouldUpdatePosition) {\n _this.setState({\n droppingPosition: droppingPosition\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeDroppingPlaceholder\", function () {\n var _this$props6 = _this.props,\n droppingItem = _this$props6.droppingItem,\n cols = _this$props6.cols;\n var layout = _this.state.layout;\n var newLayout = (0, _utils.compact)(layout.filter(function (l) {\n return l.i !== droppingItem.i;\n }), (0, _utils.compactType)(_this.props), cols);\n\n _this.setState({\n layout: newLayout,\n droppingDOMNode: null,\n activeDrag: null,\n droppingPosition: undefined\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter--; // onDragLeave can be triggered on each layout's child.\n // But we know that count of dragEnter and dragLeave events\n // will be balanced after leaving the layout's container\n // so we can increase and decrease count of dragEnter and\n // when it'll be equal to 0 we'll remove the placeholder\n\n if (_this.dragEnterCounter === 0) {\n _this.removeDroppingPlaceholder();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter++;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrop\", function (e\n /*: Event*/\n ) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n var droppingItem = _this.props.droppingItem;\n var layout = _this.state.layout;\n var item = layout.find(function (l) {\n return l.i === droppingItem.i;\n }); // reset dragEnter counter on drop\n\n _this.dragEnterCounter = 0;\n\n _this.removeDroppingPlaceholder();\n\n _this.props.onDrop(layout, item, e);\n });\n\n return _this;\n }\n\n _createClass(ReactGridLayout, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n mounted: true\n }); // Possibly call back with layout on mount. This should be done after correcting the layout width\n // to ensure we don't rerender with the wrong width.\n\n this.onLayoutMaybeChanged(this.state.layout, this.props.layout);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n return (// NOTE: this is almost always unequal. Therefore the only way to get better performance\n // from SCU is if the user intentionally memoizes children. If they do, and they can\n // handle changes properly, performance will increase.\n this.props.children !== nextProps.children || !(0, _utils.fastRGLPropsEqual)(this.props, nextProps, _lodash.default) || this.state.activeDrag !== nextState.activeDrag || this.state.mounted !== nextState.mounted || this.state.droppingPosition !== nextState.droppingPosition\n );\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n , prevState\n /*: State*/\n ) {\n if (!this.state.activeDrag) {\n var newLayout = this.state.layout;\n var oldLayout = prevState.layout;\n this.onLayoutMaybeChanged(newLayout, oldLayout);\n }\n }\n /**\n * Calculates a pixel value for the container.\n * @return {String} Container height in pixels.\n */\n\n }, {\n key: \"containerHeight\",\n value: function containerHeight()\n /*: ?string*/\n {\n if (!this.props.autoSize) return;\n var nbRow = (0, _utils.bottom)(this.state.layout);\n var containerPaddingY = this.props.containerPadding ? this.props.containerPadding[1] : this.props.margin[1];\n return nbRow * this.props.rowHeight + (nbRow - 1) * this.props.margin[1] + containerPaddingY * 2 + \"px\";\n }\n /**\n * When dragging starts\n * @param {String} i Id of the child\n * @param {Number} x X position of the move\n * @param {Number} y Y position of the move\n * @param {Event} e The mousedown event\n * @param {Element} node The current dragging DOM element\n */\n\n }, {\n key: \"onLayoutMaybeChanged\",\n value: function onLayoutMaybeChanged(newLayout\n /*: Layout*/\n , oldLayout\n /*: ?Layout*/\n ) {\n if (!oldLayout) oldLayout = this.state.layout;\n\n if (!(0, _lodash.default)(oldLayout, newLayout)) {\n this.props.onLayoutChange(newLayout);\n }\n }\n }, {\n key: \"placeholder\",\n value:\n /**\n * Create a placeholder object.\n * @return {Element} Placeholder div.\n */\n function placeholder()\n /*: ?ReactElement*/\n {\n var activeDrag = this.state.activeDrag;\n if (!activeDrag) return null;\n var _this$props7 = this.props,\n width = _this$props7.width,\n cols = _this$props7.cols,\n margin = _this$props7.margin,\n containerPadding = _this$props7.containerPadding,\n rowHeight = _this$props7.rowHeight,\n maxRows = _this$props7.maxRows,\n useCSSTransforms = _this$props7.useCSSTransforms,\n transformScale = _this$props7.transformScale; // {...this.state.activeDrag} is pretty slow, actually\n\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n w: activeDrag.w,\n h: activeDrag.h,\n x: activeDrag.x,\n y: activeDrag.y,\n i: activeDrag.i,\n className: \"react-grid-placeholder\",\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n isDraggable: false,\n isResizable: false,\n isBounded: false,\n useCSSTransforms: useCSSTransforms,\n transformScale: transformScale\n }, /*#__PURE__*/React.createElement(\"div\", null));\n }\n /**\n * Given a grid item, set its style attributes & surround in a .\n * @param {Element} child React element.\n * @return {Element} Element wrapped in draggable and properly placed.\n */\n\n }, {\n key: \"processGridItem\",\n value: function processGridItem(child\n /*: ReactElement*/\n , isDroppingItem\n /*: boolean*/\n )\n /*: ?ReactElement*/\n {\n if (!child || !child.key) return;\n var l = (0, _utils.getLayoutItem)(this.state.layout, String(child.key));\n if (!l) return null;\n var _this$props8 = this.props,\n width = _this$props8.width,\n cols = _this$props8.cols,\n margin = _this$props8.margin,\n containerPadding = _this$props8.containerPadding,\n rowHeight = _this$props8.rowHeight,\n maxRows = _this$props8.maxRows,\n isDraggable = _this$props8.isDraggable,\n isResizable = _this$props8.isResizable,\n isBounded = _this$props8.isBounded,\n useCSSTransforms = _this$props8.useCSSTransforms,\n transformScale = _this$props8.transformScale,\n draggableCancel = _this$props8.draggableCancel,\n draggableHandle = _this$props8.draggableHandle,\n resizeHandles = _this$props8.resizeHandles,\n resizeHandle = _this$props8.resizeHandle;\n var _this$state3 = this.state,\n mounted = _this$state3.mounted,\n droppingPosition = _this$state3.droppingPosition; // Determine user manipulations possible.\n // If an item is static, it can't be manipulated by default.\n // Any properties defined directly on the grid item will take precedence.\n\n var draggable = typeof l.isDraggable === \"boolean\" ? l.isDraggable : !l.static && isDraggable;\n var resizable = typeof l.isResizable === \"boolean\" ? l.isResizable : !l.static && isResizable;\n var resizeHandlesOptions = l.resizeHandles || resizeHandles; // isBounded set on child if set on parent, and child is not explicitly false\n\n var bounded = draggable && isBounded && l.isBounded !== false;\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n cancel: draggableCancel,\n handle: draggableHandle,\n onDragStop: this.onDragStop,\n onDragStart: this.onDragStart,\n onDrag: this.onDrag,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n onResizeStop: this.onResizeStop,\n isDraggable: draggable,\n isResizable: resizable,\n isBounded: bounded,\n useCSSTransforms: useCSSTransforms && mounted,\n usePercentages: !mounted,\n transformScale: transformScale,\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n i: l.i,\n minH: l.minH,\n minW: l.minW,\n maxH: l.maxH,\n maxW: l.maxW,\n static: l.static,\n droppingPosition: isDroppingItem ? droppingPosition : undefined,\n resizeHandles: resizeHandlesOptions,\n resizeHandle: resizeHandle\n }, child);\n } // Called while dragging an element. Part of browser native drag/drop API.\n // Native event target might be the layout itself, or an element within the layout.\n\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element<\"div\">*/\n {\n var _this2 = this;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n style = _this$props9.style,\n isDroppable = _this$props9.isDroppable,\n innerRef = _this$props9.innerRef;\n var mergedClassName = (0, _clsx.default)(layoutClassName, className);\n\n var mergedStyle = _objectSpread({\n height: this.containerHeight()\n }, style);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: innerRef,\n className: mergedClassName,\n style: mergedStyle,\n onDrop: isDroppable ? this.onDrop : _utils.noop,\n onDragLeave: isDroppable ? this.onDragLeave : _utils.noop,\n onDragEnter: isDroppable ? this.onDragEnter : _utils.noop,\n onDragOver: isDroppable ? this.onDragOver : _utils.noop\n }, React.Children.map(this.props.children, function (child) {\n return _this2.processGridItem(child);\n }), isDroppable && this.state.droppingDOMNode && this.processGridItem(this.state.droppingDOMNode, true), this.placeholder());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props*/\n , prevState\n /*: State*/\n )\n /*: $Shape | null*/\n {\n var newLayoutBase;\n\n if (prevState.activeDrag) {\n return null;\n } // Legacy support for compactType\n // Allow parent to set layout directly.\n\n\n if (!(0, _lodash.default)(nextProps.layout, prevState.propsLayout) || nextProps.compactType !== prevState.compactType) {\n newLayoutBase = nextProps.layout;\n } else if (!(0, _utils.childrenEqual)(nextProps.children, prevState.children)) {\n // If children change, also regenerate the layout. Use our state\n // as the base in case because it may be more up to date than\n // what is in props.\n newLayoutBase = prevState.layout;\n } // We need to regenerate the layout.\n\n\n if (newLayoutBase) {\n var newLayout = (0, _utils.synchronizeLayoutWithChildren)(newLayoutBase, nextProps.children, nextProps.cols, (0, _utils.compactType)(nextProps), nextProps.allowOverlap);\n return {\n layout: newLayout,\n // We need to save these props to state for using\n // getDerivedStateFromProps instead of componentDidMount (in which we would get extra rerender)\n compactType: nextProps.compactType,\n children: nextProps.children,\n propsLayout: nextProps.layout\n };\n }\n\n return null;\n }\n }]);\n\n return ReactGridLayout;\n}(React.Component);\n\nexports.default = ReactGridLayout;\n\n_defineProperty(ReactGridLayout, \"displayName\", \"ReactGridLayout\");\n\n_defineProperty(ReactGridLayout, \"propTypes\", _ReactGridLayoutPropTypes.default);\n\n_defineProperty(ReactGridLayout, \"defaultProps\", {\n autoSize: true,\n cols: 12,\n className: \"\",\n style: {},\n draggableHandle: \"\",\n draggableCancel: \"\",\n containerPadding: null,\n rowHeight: 150,\n maxRows: Infinity,\n // infinite vertical growth\n layout: [],\n margin: [10, 10],\n isBounded: false,\n isDraggable: true,\n isResizable: true,\n allowOverlap: false,\n isDroppable: false,\n useCSSTransforms: true,\n transformScale: 1,\n verticalCompact: true,\n compactType: \"vertical\",\n preventCollision: false,\n droppingItem: {\n i: \"__dropping-elem__\",\n h: 1,\n w: 1\n },\n resizeHandles: [\"se\"],\n onLayoutChange: _utils.noop,\n onDragStart: _utils.noop,\n onDrag: _utils.noop,\n onDragStop: _utils.noop,\n onResizeStart: _utils.noop,\n onResize: _utils.noop,\n onResizeStop: _utils.noop,\n onDrop: _utils.noop,\n onDropDragOver: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resizeHandleType = exports.resizeHandleAxesType = exports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Defines which resize handles should be rendered (default: 'se')\n// Allows for any combination of:\n// 's' - South handle (bottom-center)\n// 'w' - West handle (left-center)\n// 'e' - East handle (right-center)\n// 'n' - North handle (top-center)\n// 'sw' - Southwest handle (bottom-left)\n// 'nw' - Northwest handle (top-left)\n// 'se' - Southeast handle (bottom-right)\n// 'ne' - Northeast handle (top-right)\nvar resizeHandleAxesType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.arrayOf(_propTypes.default.oneOf([\"s\", \"w\", \"e\", \"n\", \"sw\", \"nw\", \"se\", \"ne\"])); // Custom component for resize handles\n\n\nexports.resizeHandleAxesType = resizeHandleAxesType;\n\nvar resizeHandleType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]);\n/*:: export type Props = {|\n className: string,\n style: Object,\n width: number,\n autoSize: boolean,\n cols: number,\n draggableCancel: string,\n draggableHandle: string,\n verticalCompact: boolean,\n compactType: CompactType,\n layout: Layout,\n margin: [number, number],\n containerPadding: ?[number, number],\n rowHeight: number,\n maxRows: number,\n isBounded: boolean,\n isDraggable: boolean,\n isResizable: boolean,\n isDroppable: boolean,\n preventCollision: boolean,\n useCSSTransforms: boolean,\n transformScale: number,\n droppingItem: $Shape,\n resizeHandles: ResizeHandleAxis[],\n resizeHandle?: ResizeHandle,\n allowOverlap: boolean,\n\n // Callbacks\n onLayoutChange: Layout => void,\n onDrag: EventCallback,\n onDragStart: EventCallback,\n onDragStop: EventCallback,\n onResize: EventCallback,\n onResizeStart: EventCallback,\n onResizeStop: EventCallback,\n onDropDragOver: (e: DragOverEvent) => ?({| w?: number, h?: number |} | false),\n onDrop: (layout: Layout, item: ?LayoutItem, e: Event) => void,\n children: ReactChildrenArray>,\n innerRef?: Ref<\"div\">\n|};*/\n\n/*:: export type DefaultProps = $Diff<\n Props,\n {\n children: ReactChildrenArray>,\n width: number\n }\n>;*/\n\n\nexports.resizeHandleType = resizeHandleType;\nvar _default = {\n //\n // Basic props\n //\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n // This can be set explicitly. If it is not set, it will automatically\n // be set to the container width. Note that resizes will *not* cause this to adjust.\n // If you need that behavior, use WidthProvider.\n width: _propTypes.default.number,\n // If true, the container height swells and contracts to fit contents\n autoSize: _propTypes.default.bool,\n // # of cols.\n cols: _propTypes.default.number,\n // A selector that will not be draggable.\n draggableCancel: _propTypes.default.string,\n // A selector for the draggable handler\n draggableHandle: _propTypes.default.string,\n // Deprecated\n verticalCompact: function verticalCompact(props\n /*: Props*/\n ) {\n if (props.verticalCompact === false && process.env.NODE_ENV !== \"production\") {\n console.warn( // eslint-disable-line no-console\n \"`verticalCompact` on is deprecated and will be removed soon. \" + 'Use `compactType`: \"horizontal\" | \"vertical\" | null.');\n }\n },\n // Choose vertical or hotizontal compaction\n compactType: (_propTypes.default.oneOf([\"vertical\", \"horizontal\"])\n /*: ReactPropsChainableTypeChecker*/\n ),\n // layout is an array of object with the format:\n // {x: Number, y: Number, w: Number, h: Number, i: String}\n layout: function layout(props\n /*: Props*/\n ) {\n var layout = props.layout; // I hope you're setting the data-grid property on the grid items\n\n if (layout === undefined) return;\n\n require(\"./utils\").validateLayout(layout, \"layout\");\n },\n //\n // Grid Dimensions\n //\n // Margin between items [x, y] in px\n margin: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Padding inside the container [x, y] in px\n containerPadding: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Rows have a static height, but you can change this based on breakpoints if you like\n rowHeight: _propTypes.default.number,\n // Default Infinity, but you can specify a max here if you like.\n // Note that this isn't fully fleshed out and won't error if you specify a layout that\n // extends beyond the row capacity. It will, however, not allow users to drag/resize\n // an item past the barrier. They can push items beyond the barrier, though.\n // Intentionally not documented for this reason.\n maxRows: _propTypes.default.number,\n //\n // Flags\n //\n isBounded: _propTypes.default.bool,\n isDraggable: _propTypes.default.bool,\n isResizable: _propTypes.default.bool,\n // If true, grid can be placed one over the other.\n allowOverlap: _propTypes.default.bool,\n // If true, grid items won't change position when being dragged over.\n preventCollision: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool,\n // parent layout transform scale\n transformScale: _propTypes.default.number,\n // If true, an external element can trigger onDrop callback with a specific grid position as a parameter\n isDroppable: _propTypes.default.bool,\n // Resize handle options\n resizeHandles: resizeHandleAxesType,\n resizeHandle: resizeHandleType,\n //\n // Callbacks\n //\n // Callback so you can save the layout. Calls after each drag & resize stops.\n onLayoutChange: _propTypes.default.func,\n // Calls when drag starts. Callback is of the signature (layout, oldItem, newItem, placeholder, e, ?node).\n // All callbacks below have the same signature. 'start' and 'stop' callbacks omit the 'placeholder'.\n onDragStart: _propTypes.default.func,\n // Calls on each drag movement.\n onDrag: _propTypes.default.func,\n // Calls when drag is complete.\n onDragStop: _propTypes.default.func,\n //Calls when resize starts.\n onResizeStart: _propTypes.default.func,\n // Calls when resize movement happens.\n onResize: _propTypes.default.func,\n // Calls when resize is complete.\n onResizeStop: _propTypes.default.func,\n // Calls when some element is dropped.\n onDrop: _propTypes.default.func,\n //\n // Other validations\n //\n droppingItem: (_propTypes.default.shape({\n i: _propTypes.default.string.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired\n })\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Children must not have duplicate keys.\n children: function children(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var children = props[propName]; // Check children keys for duplicates. Throw if found.\n\n var keys = {};\n\n _react.default.Children.forEach(children, function (child) {\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return;\n\n if (keys[child.key]) {\n throw new Error('Duplicate child key \"' + child.key + '\" found! This will cause problems in ReactGridLayout.');\n }\n\n keys[child.key] = true;\n });\n },\n // Optional ref for getting a reference for the wrapping div.\n innerRef: _propTypes.default.any\n};\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.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _utils = require(\"./utils\");\n\nvar _responsiveUtils = require(\"./responsiveUtils\");\n\nvar _ReactGridLayout = _interopRequireDefault(require(\"./ReactGridLayout\"));\n\nvar _excluded = [\"breakpoint\", \"breakpoints\", \"cols\", \"layouts\", \"margin\", \"containerPadding\", \"onBreakpointChange\", \"onLayoutChange\", \"onWidthChange\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\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\n// $FlowFixMe[method-unbinding]\nvar type = function type(obj) {\n return Object.prototype.toString.call(obj);\n};\n/**\n * Get a value of margin or containerPadding.\n *\n * @param {Array | Object} param Margin | containerPadding, e.g. [10, 10] | {lg: [10, 10], ...}.\n * @param {String} breakpoint Breakpoint: lg, md, sm, xs and etc.\n * @return {Array}\n */\n\n\nfunction getIndentationValue\n/*:: */\n(param\n/*: { [key: string]: T } | T*/\n, breakpoint\n/*: string*/\n)\n/*: T*/\n{\n // $FlowIgnore TODO fix this typedef\n if (param == null) return null; // $FlowIgnore TODO fix this typedef\n\n return Array.isArray(param) ? param : param[breakpoint];\n}\n/*:: type State = {\n layout: Layout,\n breakpoint: string,\n cols: number,\n layouts?: ResponsiveLayout\n};*/\n\n/*:: type Props = {|\n ...React.ElementConfig,\n\n // Responsive config\n breakpoint?: ?Breakpoint,\n breakpoints: Breakpoints,\n cols: { [key: Breakpoint]: number },\n layouts: ResponsiveLayout,\n width: number,\n margin: { [key: Breakpoint]: [number, number] } | [number, number],\n /* prettier-ignore *-/\n containerPadding: { [key: Breakpoint]: ?[number, number] } | ?[number, number],\n\n // Callbacks\n onBreakpointChange: (Breakpoint, cols: number) => void,\n onLayoutChange: OnLayoutChangeCallback,\n onWidthChange: (\n containerWidth: number,\n margin: [number, number],\n cols: number,\n containerPadding: ?[number, number]\n ) => void\n|};*/\n\n/*:: type DefaultProps = Pick<\n Props<>,\n {|\n allowOverlap: 0,\n breakpoints: 0,\n cols: 0,\n containerPadding: 0,\n layouts: 0,\n margin: 0,\n onBreakpointChange: 0,\n onLayoutChange: 0,\n onWidthChange: 0\n |}\n>;*/\n\n\nvar ResponsiveReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ResponsiveReactGridLayout, _React$Component);\n\n var _super = _createSuper(ResponsiveReactGridLayout);\n\n function ResponsiveReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ResponsiveReactGridLayout);\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), \"state\", _this.generateInitialState());\n\n _defineProperty(_assertThisInitialized(_this), \"onLayoutChange\", function (layout\n /*: Layout*/\n ) {\n _this.props.onLayoutChange(layout, _objectSpread(_objectSpread({}, _this.props.layouts), {}, _defineProperty({}, _this.state.breakpoint, layout)));\n });\n\n return _this;\n }\n\n _createClass(ResponsiveReactGridLayout, [{\n key: \"generateInitialState\",\n value: function generateInitialState()\n /*: State*/\n {\n var _this$props = this.props,\n width = _this$props.width,\n breakpoints = _this$props.breakpoints,\n layouts = _this$props.layouts,\n cols = _this$props.cols;\n var breakpoint = (0, _responsiveUtils.getBreakpointFromWidth)(breakpoints, width);\n var colNo = (0, _responsiveUtils.getColsFromBreakpoint)(breakpoint, cols); // verticalCompact compatibility, now deprecated\n\n var compactType = this.props.verticalCompact === false ? null : this.props.compactType; // Get the initial layout. This can tricky; we try to generate one however possible if one doesn't exist\n // for this layout.\n\n var initialLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(layouts, breakpoints, breakpoint, breakpoint, colNo, compactType);\n return {\n layout: initialLayout,\n breakpoint: breakpoint,\n cols: colNo\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props<*>*/\n ) {\n // Allow parent to set width or breakpoint directly.\n if (this.props.width != prevProps.width || this.props.breakpoint !== prevProps.breakpoint || !(0, _lodash.default)(this.props.breakpoints, prevProps.breakpoints) || !(0, _lodash.default)(this.props.cols, prevProps.cols)) {\n this.onWidthChange(prevProps);\n }\n } // wrap layouts so we do not need to pass layouts to child\n\n }, {\n key: \"onWidthChange\",\n value:\n /**\n * When the width changes work through breakpoints and reset state with the new width & breakpoint.\n * Width changes are necessary to figure out the widget widths.\n */\n function onWidthChange(prevProps\n /*: Props<*>*/\n ) {\n var _this$props2 = this.props,\n breakpoints = _this$props2.breakpoints,\n cols = _this$props2.cols,\n layouts = _this$props2.layouts,\n compactType = _this$props2.compactType;\n var newBreakpoint = this.props.breakpoint || (0, _responsiveUtils.getBreakpointFromWidth)(this.props.breakpoints, this.props.width);\n var lastBreakpoint = this.state.breakpoint;\n var newCols\n /*: number*/\n = (0, _responsiveUtils.getColsFromBreakpoint)(newBreakpoint, cols);\n\n var newLayouts = _objectSpread({}, layouts); // Breakpoint change\n\n\n if (lastBreakpoint !== newBreakpoint || prevProps.breakpoints !== breakpoints || prevProps.cols !== cols) {\n // Preserve the current layout if the current breakpoint is not present in the next layouts.\n if (!(lastBreakpoint in newLayouts)) newLayouts[lastBreakpoint] = (0, _utils.cloneLayout)(this.state.layout); // Find or generate a new layout.\n\n var layout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(newLayouts, breakpoints, newBreakpoint, lastBreakpoint, newCols, compactType); // This adds missing items.\n\n layout = (0, _utils.synchronizeLayoutWithChildren)(layout, this.props.children, newCols, compactType, this.props.allowOverlap); // Store the new layout.\n\n newLayouts[newBreakpoint] = layout; // callbacks\n\n this.props.onLayoutChange(layout, newLayouts);\n this.props.onBreakpointChange(newBreakpoint, newCols);\n this.setState({\n breakpoint: newBreakpoint,\n layout: layout,\n cols: newCols\n });\n }\n\n var margin = getIndentationValue(this.props.margin, newBreakpoint);\n var containerPadding = getIndentationValue(this.props.containerPadding, newBreakpoint); //call onWidthChange on every change of width, not only on breakpoint changes\n\n this.props.onWidthChange(this.props.width, margin, newCols, containerPadding);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n /* eslint-disable no-unused-vars */\n var _this$props3 = this.props,\n breakpoint = _this$props3.breakpoint,\n breakpoints = _this$props3.breakpoints,\n cols = _this$props3.cols,\n layouts = _this$props3.layouts,\n margin = _this$props3.margin,\n containerPadding = _this$props3.containerPadding,\n onBreakpointChange = _this$props3.onBreakpointChange,\n onLayoutChange = _this$props3.onLayoutChange,\n onWidthChange = _this$props3.onWidthChange,\n other = _objectWithoutProperties(_this$props3, _excluded);\n /* eslint-enable no-unused-vars */\n\n\n return /*#__PURE__*/React.createElement(_ReactGridLayout.default, _extends({}, other, {\n // $FlowIgnore should allow nullable here due to DefaultProps\n margin: getIndentationValue(margin, this.state.breakpoint),\n containerPadding: getIndentationValue(containerPadding, this.state.breakpoint),\n onLayoutChange: this.onLayoutChange,\n layout: this.state.layout,\n cols: this.state.cols\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props<*>*/\n , prevState\n /*: State*/\n )\n /*: ?$Shape*/\n {\n if (!(0, _lodash.default)(nextProps.layouts, prevState.layouts)) {\n // Allow parent to set layouts directly.\n var breakpoint = prevState.breakpoint,\n _cols = prevState.cols; // Since we're setting an entirely new layout object, we must generate a new responsive layout\n // if one does not exist.\n\n var newLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(nextProps.layouts, nextProps.breakpoints, breakpoint, breakpoint, _cols, nextProps.compactType);\n return {\n layout: newLayout,\n layouts: nextProps.layouts\n };\n }\n\n return null;\n }\n }]);\n\n return ResponsiveReactGridLayout;\n}(React.Component);\n\nexports.default = ResponsiveReactGridLayout;\n\n_defineProperty(ResponsiveReactGridLayout, \"propTypes\", {\n //\n // Basic props\n //\n // Optional, but if you are managing width yourself you may want to set the breakpoint\n // yourself as well.\n breakpoint: _propTypes.default.string,\n // {name: pxVal}, e.g. {lg: 1200, md: 996, sm: 768, xs: 480}\n breakpoints: _propTypes.default.object,\n allowOverlap: _propTypes.default.bool,\n // # of cols. This is a breakpoint -> cols map\n cols: _propTypes.default.object,\n // # of margin. This is a breakpoint -> margin map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Margin between items [x, y] in px\n // e.g. [10, 10]\n margin: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // # of containerPadding. This is a breakpoint -> containerPadding map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Padding inside the container [x, y] in px\n // e.g. [10, 10]\n containerPadding: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // layouts is an object mapping breakpoints to layouts.\n // e.g. {lg: Layout, md: Layout, ...}\n layouts: function layouts(props\n /*: Props<>*/\n , propName\n /*: string*/\n ) {\n if (type(props[propName]) !== \"[object Object]\") {\n throw new Error(\"Layout property must be an object. Received: \" + type(props[propName]));\n }\n\n Object.keys(props[propName]).forEach(function (key) {\n if (!(key in props.breakpoints)) {\n throw new Error(\"Each key in layouts must align with a key in breakpoints.\");\n }\n\n (0, _utils.validateLayout)(props.layouts[key], \"layouts.\" + key);\n });\n },\n // The width of this component.\n // Required in this propTypes stanza because generateInitialState() will fail without it.\n width: _propTypes.default.number.isRequired,\n //\n // Callbacks\n //\n // Calls back with breakpoint and new # cols\n onBreakpointChange: _propTypes.default.func,\n // Callback so you can save the layout.\n // Calls back with (currentLayout, allLayouts). allLayouts are keyed by breakpoint.\n onLayoutChange: _propTypes.default.func,\n // Calls back with (containerWidth, margin, cols, containerPadding)\n onWidthChange: _propTypes.default.func\n});\n\n_defineProperty(ResponsiveReactGridLayout, \"defaultProps\", {\n breakpoints: {\n lg: 1200,\n md: 996,\n sm: 768,\n xs: 480,\n xxs: 0\n },\n cols: {\n lg: 12,\n md: 10,\n sm: 6,\n xs: 4,\n xxs: 2\n },\n containerPadding: {\n lg: null,\n md: null,\n sm: null,\n xs: null,\n xxs: null\n },\n layouts: {},\n margin: [10, 10],\n allowOverlap: false,\n onBreakpointChange: _utils.noop,\n onLayoutChange: _utils.noop,\n onWidthChange: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcGridColWidth = calcGridColWidth;\nexports.calcGridItemPosition = calcGridItemPosition;\nexports.calcGridItemWHPx = calcGridItemWHPx;\nexports.calcWH = calcWH;\nexports.calcXY = calcXY;\nexports.clamp = clamp;\n\n/*:: import type { Position } from \"./utils\";*/\n\n/*:: export type PositionParams = {\n margin: [number, number],\n containerPadding: [number, number],\n containerWidth: number,\n cols: number,\n rowHeight: number,\n maxRows: number\n};*/\n// Helper for generating column width\nfunction calcGridColWidth(positionParams\n/*: PositionParams*/\n)\n/*: number*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n containerWidth = positionParams.containerWidth,\n cols = positionParams.cols;\n return (containerWidth - margin[0] * (cols - 1) - containerPadding[0] * 2) / cols;\n} // This can either be called:\n// calcGridItemWHPx(w, colWidth, margin[0])\n// or\n// calcGridItemWHPx(h, rowHeight, margin[1])\n\n\nfunction calcGridItemWHPx(gridUnits\n/*: number*/\n, colOrRowSize\n/*: number*/\n, marginPx\n/*: number*/\n)\n/*: number*/\n{\n // 0 * Infinity === NaN, which causes problems with resize contraints\n if (!Number.isFinite(gridUnits)) return gridUnits;\n return Math.round(colOrRowSize * gridUnits + Math.max(0, gridUnits - 1) * marginPx);\n}\n/**\n * Return position on the page given an x, y, w, h.\n * left, top, width, height are all in pixels.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Position} Object containing coords.\n */\n\n\nfunction calcGridItemPosition(positionParams\n/*: PositionParams*/\n, x\n/*: number*/\n, y\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n, state\n/*: ?Object*/\n)\n/*: Position*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams);\n var out = {}; // If resizing, use the exact width and height as returned from resizing callbacks.\n\n if (state && state.resizing) {\n out.width = Math.round(state.resizing.width);\n out.height = Math.round(state.resizing.height);\n } // Otherwise, calculate from grid units.\n else {\n out.width = calcGridItemWHPx(w, colWidth, margin[0]);\n out.height = calcGridItemWHPx(h, rowHeight, margin[1]);\n } // If dragging, use the exact width and height as returned from dragging callbacks.\n\n\n if (state && state.dragging) {\n out.top = Math.round(state.dragging.top);\n out.left = Math.round(state.dragging.left);\n } // Otherwise, calculate from grid units.\n else {\n out.top = Math.round((rowHeight + margin[1]) * y + containerPadding[1]);\n out.left = Math.round((colWidth + margin[0]) * x + containerPadding[0]);\n }\n\n return out;\n}\n/**\n * Translate x and y coordinates from pixels to grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} top Top position (relative to parent) in pixels.\n * @param {Number} left Left position (relative to parent) in pixels.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Object} x and y in grid units.\n */\n\n\nfunction calcXY(positionParams\n/*: PositionParams*/\n, top\n/*: number*/\n, left\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n)\n/*: { x: number, y: number }*/\n{\n var margin = positionParams.margin,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight,\n maxRows = positionParams.maxRows;\n var colWidth = calcGridColWidth(positionParams); // left = colWidth * x + margin * (x + 1)\n // l = cx + m(x+1)\n // l = cx + mx + m\n // l - m = cx + mx\n // l - m = x(c + m)\n // (l - m) / (c + m) = x\n // x = (left - margin) / (coldWidth + margin)\n\n var x = Math.round((left - margin[0]) / (colWidth + margin[0]));\n var y = Math.round((top - margin[1]) / (rowHeight + margin[1])); // Capping\n\n x = clamp(x, 0, cols - w);\n y = clamp(y, 0, maxRows - h);\n return {\n x: x,\n y: y\n };\n}\n/**\n * Given a height and width in pixel values, calculate grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calcluations.\n * @param {Number} height Height in pixels.\n * @param {Number} width Width in pixels.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @return {Object} w, h as grid units.\n */\n\n\nfunction calcWH(positionParams\n/*: PositionParams*/\n, width\n/*: number*/\n, height\n/*: number*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: { w: number, h: number }*/\n{\n var margin = positionParams.margin,\n maxRows = positionParams.maxRows,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams); // width = colWidth * w - (margin * (w - 1))\n // ...\n // w = (width + margin) / (colWidth + margin)\n\n var w = Math.round((width + margin[0]) / (colWidth + margin[0]));\n var h = Math.round((height + margin[1]) / (rowHeight + margin[1])); // Capping\n\n w = clamp(w, 0, cols - x);\n h = clamp(h, 0, maxRows - y);\n return {\n w: w,\n h: h\n };\n} // Similar to _.clamp\n\n\nfunction clamp(num\n/*: number*/\n, lowerBound\n/*: number*/\n, upperBound\n/*: number*/\n)\n/*: number*/\n{\n return Math.max(Math.min(num, upperBound), lowerBound);\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.default = WidthProvideRGL;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _excluded = [\"measureBeforeMount\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\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 _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 layoutClassName = \"react-grid-layout\";\n/*\n * A simple HOC that provides facility for listening to container resizes.\n *\n * The Flow type is pretty janky here. I can't just spread `WPProps` into this returned object - I wish I could - but it triggers\n * a flow bug of some sort that causes it to stop typechecking.\n */\n\nfunction WidthProvideRGL\n/*:: */\n(ComposedComponent\n/*: React.AbstractComponent*/\n)\n/*: React.AbstractComponent>*/\n{\n var _class;\n\n return _class = /*#__PURE__*/function (_React$Component) {\n _inherits(WidthProvider, _React$Component);\n\n var _super = _createSuper(WidthProvider);\n\n function WidthProvider() {\n var _this;\n\n _classCallCheck(this, WidthProvider);\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), \"state\", {\n width: 1280\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResize\", function () {\n if (!_this.mounted) return;\n var node = _this.elementRef.current; // Flow casts this to Text | Element\n // fix: grid position error when node or parentNode display is none by window resize\n // #924 #1084\n\n if (node instanceof HTMLElement && node.offsetWidth) {\n _this.setState({\n width: node.offsetWidth\n });\n }\n });\n\n return _this;\n }\n\n _createClass(WidthProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n window.addEventListener(\"resize\", this.onWindowResize); // Call to properly set the breakpoint and resize the elements.\n // Note that if you're doing a full-width element, this can get a little wonky if a scrollbar\n // appears because of the grid. In that case, fire your own resize event, or set `overflow: scroll` on your body.\n\n this.onWindowResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n window.removeEventListener(\"resize\", this.onWindowResize);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n measureBeforeMount = _this$props.measureBeforeMount,\n rest = _objectWithoutProperties(_this$props, _excluded);\n\n if (measureBeforeMount && !this.mounted) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _clsx.default)(this.props.className, layoutClassName),\n style: this.props.style // $FlowIgnore ref types\n ,\n ref: this.elementRef\n });\n }\n\n return /*#__PURE__*/React.createElement(ComposedComponent, _extends({\n innerRef: this.elementRef\n }, rest, this.state));\n }\n }]);\n\n return WidthProvider;\n }(React.Component), _defineProperty(_class, \"defaultProps\", {\n measureBeforeMount: false\n }), _defineProperty(_class, \"propTypes\", {\n // If true, will not render children until mounted. Useful for getting the exact width before\n // rendering, to prevent any unsightly resizing.\n measureBeforeMount: _propTypes.default.bool\n }), _class;\n}","// this file was prevaled\nmodule.exports = function fastRGLPropsEqual(a, b, isEqualImpl) {\n if (a === b) return true;\n return a.className === b.className && isEqualImpl(a.style, b.style) && a.width === b.width && a.autoSize === b.autoSize && a.cols === b.cols && a.draggableCancel === b.draggableCancel && a.draggableHandle === b.draggableHandle && isEqualImpl(a.verticalCompact, b.verticalCompact) && isEqualImpl(a.compactType, b.compactType) && isEqualImpl(a.layout, b.layout) && isEqualImpl(a.margin, b.margin) && isEqualImpl(a.containerPadding, b.containerPadding) && a.rowHeight === b.rowHeight && a.maxRows === b.maxRows && a.isBounded === b.isBounded && a.isDraggable === b.isDraggable && a.isResizable === b.isResizable && a.allowOverlap === b.allowOverlap && a.preventCollision === b.preventCollision && a.useCSSTransforms === b.useCSSTransforms && a.transformScale === b.transformScale && a.isDroppable === b.isDroppable && isEqualImpl(a.resizeHandles, b.resizeHandles) && isEqualImpl(a.resizeHandle, b.resizeHandle) && a.onLayoutChange === b.onLayoutChange && a.onDragStart === b.onDragStart && a.onDrag === b.onDrag && a.onDragStop === b.onDragStop && a.onResizeStart === b.onResizeStart && a.onResize === b.onResize && a.onResizeStop === b.onResizeStop && a.onDrop === b.onDrop && isEqualImpl(a.droppingItem, b.droppingItem) && isEqualImpl(a.innerRef, b.innerRef);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findOrGenerateResponsiveLayout = findOrGenerateResponsiveLayout;\nexports.getBreakpointFromWidth = getBreakpointFromWidth;\nexports.getColsFromBreakpoint = getColsFromBreakpoint;\nexports.sortBreakpoints = sortBreakpoints;\n\nvar _utils = require(\"./utils\");\n\n/**\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\n *\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\n * @param {Number} width Screen width.\n * @return {String} Highest breakpoint that is less than width.\n */\nfunction getBreakpointFromWidth(breakpoints\n/*: Breakpoints*/\n, width\n/*: number*/\n)\n/*: Breakpoint*/\n{\n var sorted = sortBreakpoints(breakpoints);\n var matching = sorted[0];\n\n for (var i = 1, len = sorted.length; i < len; i++) {\n var breakpointName = sorted[i];\n if (width > breakpoints[breakpointName]) matching = breakpointName;\n }\n\n return matching;\n}\n/**\n * Given a breakpoint, get the # of cols set for it.\n * @param {String} breakpoint Breakpoint name.\n * @param {Object} cols Map of breakpoints to cols.\n * @return {Number} Number of cols.\n */\n\n\nfunction getColsFromBreakpoint(breakpoint\n/*: Breakpoint*/\n, cols\n/*: Breakpoints*/\n)\n/*: number*/\n{\n if (!cols[breakpoint]) {\n throw new Error(\"ResponsiveReactGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\n }\n\n return cols[breakpoint];\n}\n/**\n * Given existing layouts and a new breakpoint, find or generate a new layout.\n *\n * This finds the layout above the new one and generates from it, if it exists.\n *\n * @param {Object} layouts Existing layouts.\n * @param {Array} breakpoints All breakpoints.\n * @param {String} breakpoint New breakpoint.\n * @param {String} breakpoint Last breakpoint (for fallback).\n * @param {Number} cols Column count at new breakpoint.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} New layout.\n */\n\n\nfunction findOrGenerateResponsiveLayout(layouts\n/*: ResponsiveLayout*/\n, breakpoints\n/*: Breakpoints*/\n, breakpoint\n/*: Breakpoint*/\n, lastBreakpoint\n/*: Breakpoint*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n // If it already exists, just return it.\n if (layouts[breakpoint]) return (0, _utils.cloneLayout)(layouts[breakpoint]); // Find or generate the next layout\n\n var layout = layouts[lastBreakpoint];\n var breakpointsSorted = sortBreakpoints(breakpoints);\n var breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\n\n for (var i = 0, len = breakpointsAbove.length; i < len; i++) {\n var b = breakpointsAbove[i];\n\n if (layouts[b]) {\n layout = layouts[b];\n break;\n }\n }\n\n layout = (0, _utils.cloneLayout)(layout || []); // clone layout so we don't modify existing items\n\n return (0, _utils.compact)((0, _utils.correctBounds)(layout, {\n cols: cols\n }), compactType, cols);\n}\n/**\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\n * e.g. ['xxs', 'xs', 'sm', ...]\n *\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\n * @return {Array} Sorted breakpoints.\n */\n\n\nfunction sortBreakpoints(breakpoints\n/*: Breakpoints*/\n)\n/*: Array*/\n{\n var keys\n /*: Array*/\n = Object.keys(breakpoints);\n return keys.sort(function (a, b) {\n return breakpoints[a] - breakpoints[b];\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bottom = bottom;\nexports.childrenEqual = childrenEqual;\nexports.cloneLayout = cloneLayout;\nexports.cloneLayoutItem = cloneLayoutItem;\nexports.collides = collides;\nexports.compact = compact;\nexports.compactItem = compactItem;\nexports.compactType = compactType;\nexports.correctBounds = correctBounds;\nexports.fastPositionEqual = fastPositionEqual;\nexports.fastRGLPropsEqual = void 0;\nexports.getAllCollisions = getAllCollisions;\nexports.getFirstCollision = getFirstCollision;\nexports.getLayoutItem = getLayoutItem;\nexports.getStatics = getStatics;\nexports.modifyLayout = modifyLayout;\nexports.moveElement = moveElement;\nexports.moveElementAwayFromCollision = moveElementAwayFromCollision;\nexports.noop = void 0;\nexports.perc = perc;\nexports.setTopLeft = setTopLeft;\nexports.setTransform = setTransform;\nexports.sortLayoutItems = sortLayoutItems;\nexports.sortLayoutItemsByColRow = sortLayoutItemsByColRow;\nexports.sortLayoutItemsByRowCol = sortLayoutItemsByRowCol;\nexports.synchronizeLayoutWithChildren = synchronizeLayoutWithChildren;\nexports.validateLayout = validateLayout;\nexports.withLayoutItem = withLayoutItem;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\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\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar DEBUG = false;\n/**\n * Return the bottom coordinate of the layout.\n *\n * @param {Array} layout Layout array.\n * @return {Number} Bottom coordinate.\n */\n\nfunction bottom(layout\n/*: Layout*/\n)\n/*: number*/\n{\n var max = 0,\n bottomY;\n\n for (var i = 0, len = layout.length; i < len; i++) {\n bottomY = layout[i].y + layout[i].h;\n if (bottomY > max) max = bottomY;\n }\n\n return max;\n}\n\nfunction cloneLayout(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n newLayout[i] = cloneLayoutItem(layout[i]);\n }\n\n return newLayout;\n} // Modify a layoutItem inside a layout. Returns a new Layout,\n// does not mutate. Carries over all other LayoutItems unmodified.\n\n\nfunction modifyLayout(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layoutItem.i === layout[i].i) {\n newLayout[i] = layoutItem;\n } else {\n newLayout[i] = layout[i];\n }\n }\n\n return newLayout;\n} // Function to be called to modify a layout item.\n// Does defensive clones to ensure the layout is not modified.\n\n\nfunction withLayoutItem(layout\n/*: Layout*/\n, itemKey\n/*: string*/\n, cb\n/*: LayoutItem => LayoutItem*/\n)\n/*: [Layout, ?LayoutItem]*/\n{\n var item = getLayoutItem(layout, itemKey);\n if (!item) return [layout, null];\n item = cb(cloneLayoutItem(item)); // defensive clone then modify\n // FIXME could do this faster if we already knew the index\n\n layout = modifyLayout(layout, item);\n return [layout, item];\n} // Fast path to cloning, since this is monomorphic\n\n\nfunction cloneLayoutItem(layoutItem\n/*: LayoutItem*/\n)\n/*: LayoutItem*/\n{\n return {\n w: layoutItem.w,\n h: layoutItem.h,\n x: layoutItem.x,\n y: layoutItem.y,\n i: layoutItem.i,\n minW: layoutItem.minW,\n maxW: layoutItem.maxW,\n minH: layoutItem.minH,\n maxH: layoutItem.maxH,\n moved: Boolean(layoutItem.moved),\n static: Boolean(layoutItem.static),\n // These can be null/undefined\n isDraggable: layoutItem.isDraggable,\n isResizable: layoutItem.isResizable,\n resizeHandles: layoutItem.resizeHandles,\n isBounded: layoutItem.isBounded\n };\n}\n/**\n * Comparing React `children` is a bit difficult. This is a good way to compare them.\n * This will catch differences in keys, order, and length.\n */\n\n\nfunction childrenEqual(a\n/*: ReactChildren*/\n, b\n/*: ReactChildren*/\n)\n/*: boolean*/\n{\n return (0, _lodash.default)(_react.default.Children.map(a, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }), _react.default.Children.map(b, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }));\n}\n/**\n * See `fastRGLPropsEqual.js`.\n * We want this to run as fast as possible - it is called often - and to be\n * resilient to new props that we add. So rather than call lodash.isEqual,\n * which isn't suited to comparing props very well, we use this specialized\n * function in conjunction with preval to generate the fastest possible comparison\n * function, tuned for exactly our props.\n */\n\n/*:: type FastRGLPropsEqual = (Object, Object, Function) => boolean;*/\n\n\nvar fastRGLPropsEqual\n/*: FastRGLPropsEqual*/\n= require(\"./fastRGLPropsEqual\"); // Like the above, but a lot simpler.\n\n\nexports.fastRGLPropsEqual = fastRGLPropsEqual;\n\nfunction fastPositionEqual(a\n/*: Position*/\n, b\n/*: Position*/\n)\n/*: boolean*/\n{\n return a.left === b.left && a.top === b.top && a.width === b.width && a.height === b.height;\n}\n/**\n * Given two layoutitems, check if they collide.\n */\n\n\nfunction collides(l1\n/*: LayoutItem*/\n, l2\n/*: LayoutItem*/\n)\n/*: boolean*/\n{\n if (l1.i === l2.i) return false; // same element\n\n if (l1.x + l1.w <= l2.x) return false; // l1 is left of l2\n\n if (l1.x >= l2.x + l2.w) return false; // l1 is right of l2\n\n if (l1.y + l1.h <= l2.y) return false; // l1 is above l2\n\n if (l1.y >= l2.y + l2.h) return false; // l1 is below l2\n\n return true; // boxes overlap\n}\n/**\n * Given a layout, compact it. This involves going down each y coordinate and removing gaps\n * between items.\n *\n * Does not modify layout items (clones). Creates a new layout array.\n *\n * @param {Array} layout Layout.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} Compacted Layout.\n */\n\n\nfunction compact(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // Statics go in the compareWith array right away so items flow around them.\n var compareWith = getStatics(layout); // We go through the items by row and column.\n\n var sorted = sortLayoutItems(layout, compactType); // Holding for new items.\n\n var out = Array(layout.length);\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n var l = cloneLayoutItem(sorted[i]); // Don't move static elements\n\n if (!l.static) {\n l = compactItem(compareWith, l, compactType, cols, sorted); // Add to comparison array. We only collide with items before this one.\n // Statics are already in this array.\n\n compareWith.push(l);\n } // Add to output array to make sure they still come out in the right order.\n\n\n out[layout.indexOf(sorted[i])] = l; // Clear moved flag, if it exists.\n\n l.moved = false;\n }\n\n return out;\n}\n\nvar heightWidth = {\n x: \"w\",\n y: \"h\"\n};\n/**\n * Before moving item down, it will check if the movement will cause collisions and move those items down before.\n */\n\nfunction resolveCompactionCollision(layout\n/*: Layout*/\n, item\n/*: LayoutItem*/\n, moveToCoord\n/*: number*/\n, axis\n/*: \"x\" | \"y\"*/\n) {\n var sizeProp = heightWidth[axis];\n item[axis] += 1;\n var itemIndex = layout.map(function (layoutItem) {\n return layoutItem.i;\n }).indexOf(item.i); // Go through each item we collide with.\n\n for (var i = itemIndex + 1; i < layout.length; i++) {\n var otherItem = layout[i]; // Ignore static items\n\n if (otherItem.static) continue; // Optimization: we can break early if we know we're past this el\n // We can do this b/c it's a sorted layout\n\n if (otherItem.y > item.y + item.h) break;\n\n if (collides(item, otherItem)) {\n resolveCompactionCollision(layout, otherItem, moveToCoord + item[sizeProp], axis);\n }\n }\n\n item[axis] = moveToCoord;\n}\n/**\n * Compact an item in the layout.\n *\n * Modifies item.\n *\n */\n\n\nfunction compactItem(compareWith\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, fullLayout\n/*: Layout*/\n)\n/*: LayoutItem*/\n{\n var compactV = compactType === \"vertical\";\n var compactH = compactType === \"horizontal\";\n\n if (compactV) {\n // Bottom 'y' possible is the bottom of the layout.\n // This allows you to do nice stuff like specify {y: Infinity}\n // This is here because the layout must be sorted in order to get the correct bottom `y`.\n l.y = Math.min(bottom(compareWith), l.y); // Move the element up as far as it can go without colliding.\n\n while (l.y > 0 && !getFirstCollision(compareWith, l)) {\n l.y--;\n }\n } else if (compactH) {\n // Move the element left as far as it can go without colliding.\n while (l.x > 0 && !getFirstCollision(compareWith, l)) {\n l.x--;\n }\n } // Move it down, and keep moving it down if it's colliding.\n\n\n var collides;\n\n while (collides = getFirstCollision(compareWith, l)) {\n if (compactH) {\n resolveCompactionCollision(fullLayout, l, collides.x + collides.w, \"x\");\n } else {\n resolveCompactionCollision(fullLayout, l, collides.y + collides.h, \"y\");\n } // Since we can't grow without bounds horizontally, if we've overflown, let's move it down and try again.\n\n\n if (compactH && l.x + l.w > cols) {\n l.x = cols - l.w;\n l.y++;\n }\n } // Ensure that there are no negative positions\n\n\n l.y = Math.max(l.y, 0);\n l.x = Math.max(l.x, 0);\n return l;\n}\n/**\n * Given a layout, make sure all elements fit within its bounds.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Layout array.\n * @param {Number} bounds Number of columns.\n */\n\n\nfunction correctBounds(layout\n/*: Layout*/\n, bounds\n/*: { cols: number }*/\n)\n/*: Layout*/\n{\n var collidesWith = getStatics(layout);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var l = layout[i]; // Overflows right\n\n if (l.x + l.w > bounds.cols) l.x = bounds.cols - l.w; // Overflows left\n\n if (l.x < 0) {\n l.x = 0;\n l.w = bounds.cols;\n }\n\n if (!l.static) collidesWith.push(l);else {\n // If this is static and collides with other statics, we must move it down.\n // We have to do something nicer than just letting them overlap.\n while (getFirstCollision(collidesWith, l)) {\n l.y++;\n }\n }\n }\n\n return layout;\n}\n/**\n * Get a layout item by ID. Used so we can override later on if necessary.\n *\n * @param {Array} layout Layout array.\n * @param {String} id ID\n * @return {LayoutItem} Item at ID.\n */\n\n\nfunction getLayoutItem(layout\n/*: Layout*/\n, id\n/*: string*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layout[i].i === id) return layout[i];\n }\n}\n/**\n * Returns the first item this layout collides with.\n * It doesn't appear to matter which order we approach this from, although\n * perhaps that is the wrong thing to do.\n *\n * @param {Object} layoutItem Layout item.\n * @return {Object|undefined} A colliding layout item, or undefined.\n */\n\n\nfunction getFirstCollision(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (collides(layout[i], layoutItem)) return layout[i];\n }\n}\n\nfunction getAllCollisions(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return collides(l, layoutItem);\n });\n}\n/**\n * Get all static elements.\n * @param {Array} layout Array of layout objects.\n * @return {Array} Array of static layout items..\n */\n\n\nfunction getStatics(layout\n/*: Layout*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return l.static;\n });\n}\n/**\n * Move an element. Responsible for doing cascading movements of other elements.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} l element to move.\n * @param {Number} [x] X position in grid units.\n * @param {Number} [y] Y position in grid units.\n */\n\n\nfunction moveElement(layout\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, x\n/*: ?number*/\n, y\n/*: ?number*/\n, isUserAction\n/*: ?boolean*/\n, preventCollision\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n // If this is static and not explicitly enabled as draggable,\n // no move is possible, so we can short-circuit this immediately.\n if (l.static && l.isDraggable !== true) return layout; // Short-circuit if nothing to do.\n\n if (l.y === y && l.x === x) return layout;\n log(\"Moving element \".concat(l.i, \" to [\").concat(String(x), \",\").concat(String(y), \"] from [\").concat(l.x, \",\").concat(l.y, \"]\"));\n var oldX = l.x;\n var oldY = l.y; // This is quite a bit faster than extending the object\n\n if (typeof x === \"number\") l.x = x;\n if (typeof y === \"number\") l.y = y;\n l.moved = true; // If this collides with anything, move it.\n // When doing this comparison, we have to sort the items we compare with\n // to ensure, in the case of multiple collisions, that we're getting the\n // nearest collision.\n\n var sorted = sortLayoutItems(layout, compactType);\n var movingUp = compactType === \"vertical\" && typeof y === \"number\" ? oldY >= y : compactType === \"horizontal\" && typeof x === \"number\" ? oldX >= x : false; // $FlowIgnore acceptable modification of read-only array as it was recently cloned\n\n if (movingUp) sorted = sorted.reverse();\n var collisions = getAllCollisions(sorted, l);\n var hasCollisions = collisions.length > 0; // We may have collisions. We can short-circuit if we've turned off collisions or\n // allowed overlap.\n\n if (hasCollisions && allowOverlap) {\n // Easy, we don't need to resolve collisions. But we *did* change the layout,\n // so clone it on the way out.\n return cloneLayout(layout);\n } else if (hasCollisions && preventCollision) {\n // If we are preventing collision but not allowing overlap, we need to\n // revert the position of this element so it goes to where it came from, rather\n // than the user's desired location.\n log(\"Collision prevented on \".concat(l.i, \", reverting.\"));\n l.x = oldX;\n l.y = oldY;\n l.moved = false;\n return layout; // did not change so don't clone\n } // Move each item that collides away from this element.\n\n\n for (var i = 0, len = collisions.length; i < len; i++) {\n var collision = collisions[i];\n log(\"Resolving collision between \".concat(l.i, \" at [\").concat(l.x, \",\").concat(l.y, \"] and \").concat(collision.i, \" at [\").concat(collision.x, \",\").concat(collision.y, \"]\")); // Short circuit so we can't infinite loop\n\n if (collision.moved) continue; // Don't move static items - we have to move *this* element away\n\n if (collision.static) {\n layout = moveElementAwayFromCollision(layout, collision, l, isUserAction, compactType, cols);\n } else {\n layout = moveElementAwayFromCollision(layout, l, collision, isUserAction, compactType, cols);\n }\n }\n\n return layout;\n}\n/**\n * This is where the magic needs to happen - given a collision, move an element away from the collision.\n * We attempt to move it up if there's room, otherwise it goes below.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} collidesWith Layout item we're colliding with.\n * @param {LayoutItem} itemToMove Layout item we're moving.\n */\n\n\nfunction moveElementAwayFromCollision(layout\n/*: Layout*/\n, collidesWith\n/*: LayoutItem*/\n, itemToMove\n/*: LayoutItem*/\n, isUserAction\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n var compactH = compactType === \"horizontal\"; // Compact vertically if not set to horizontal\n\n var compactV = compactType !== \"horizontal\";\n var preventCollision = collidesWith.static; // we're already colliding (not for static items)\n // If there is enough space above the collision to put this element, move it there.\n // We only do this on the main collision as this can get funky in cascades and cause\n // unwanted swapping behavior.\n\n if (isUserAction) {\n // Reset isUserAction flag because we're not in the main collision anymore.\n isUserAction = false; // Make a mock item so we don't modify the item here, only modify in moveElement.\n\n var fakeItem\n /*: LayoutItem*/\n = {\n x: compactH ? Math.max(collidesWith.x - itemToMove.w, 0) : itemToMove.x,\n y: compactV ? Math.max(collidesWith.y - itemToMove.h, 0) : itemToMove.y,\n w: itemToMove.w,\n h: itemToMove.h,\n i: \"-1\"\n }; // No collision? If so, we can go up there; otherwise, we'll end up moving down as normal\n\n if (!getFirstCollision(layout, fakeItem)) {\n log(\"Doing reverse collision on \".concat(itemToMove.i, \" up to [\").concat(fakeItem.x, \",\").concat(fakeItem.y, \"].\"));\n return moveElement(layout, itemToMove, compactH ? fakeItem.x : undefined, compactV ? fakeItem.y : undefined, isUserAction, preventCollision, compactType, cols);\n }\n }\n\n return moveElement(layout, itemToMove, compactH ? itemToMove.x + 1 : undefined, compactV ? itemToMove.y + 1 : undefined, isUserAction, preventCollision, compactType, cols);\n}\n/**\n * Helper to convert a number to a percentage string.\n *\n * @param {Number} num Any number\n * @return {String} That number as a percentage.\n */\n\n\nfunction perc(num\n/*: number*/\n)\n/*: string*/\n{\n return num * 100 + \"%\";\n}\n\nfunction setTransform(_ref)\n/*: Object*/\n{\n var top = _ref.top,\n left = _ref.left,\n width = _ref.width,\n height = _ref.height;\n // Replace unitless items with px\n var translate = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\n return {\n transform: translate,\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n\nfunction setTopLeft(_ref2)\n/*: Object*/\n{\n var top = _ref2.top,\n left = _ref2.left,\n width = _ref2.width,\n height = _ref2.height;\n return {\n top: \"\".concat(top, \"px\"),\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n/**\n * Get layout items sorted from top left to right and down.\n *\n * @return {Array} Array of layout objects.\n * @return {Array} Layout, sorted static items first.\n */\n\n\nfunction sortLayoutItems(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n if (compactType === \"horizontal\") return sortLayoutItemsByColRow(layout);\n if (compactType === \"vertical\") return sortLayoutItemsByRowCol(layout);else return layout;\n}\n/**\n * Sort layout items by row ascending and column ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByRowCol(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n // Slice to clone array as sort modifies\n return layout.slice(0).sort(function (a, b) {\n if (a.y > b.y || a.y === b.y && a.x > b.x) {\n return 1;\n } else if (a.y === b.y && a.x === b.x) {\n // Without this, we can get different sort results in IE vs. Chrome/FF\n return 0;\n }\n\n return -1;\n });\n}\n/**\n * Sort layout items by column ascending then row ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByColRow(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n return layout.slice(0).sort(function (a, b) {\n if (a.x > b.x || a.x === b.x && a.y > b.y) {\n return 1;\n }\n\n return -1;\n });\n}\n/**\n * Generate a layout using the initialLayout and children as a template.\n * Missing entries will be added, extraneous ones will be truncated.\n *\n * Does not modify initialLayout.\n *\n * @param {Array} initialLayout Layout passed in through props.\n * @param {String} breakpoint Current responsive breakpoint.\n * @param {?String} compact Compaction option.\n * @return {Array} Working layout.\n */\n\n\nfunction synchronizeLayoutWithChildren(initialLayout\n/*: Layout*/\n, children\n/*: ReactChildren*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n initialLayout = initialLayout || []; // Generate one layout item per child.\n\n var layout\n /*: LayoutItem[]*/\n = [];\n\n _react.default.Children.forEach(children, function (child\n /*: ReactElement*/\n ) {\n // Child may not exist\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return; // Don't overwrite if it already exists.\n\n var exists = getLayoutItem(initialLayout, String(child.key));\n\n if (exists) {\n layout.push(cloneLayoutItem(exists));\n } else {\n if (!isProduction && child.props._grid) {\n console.warn(\"`_grid` properties on children have been deprecated as of React 15.2. \" + \"Please use `data-grid` or add your properties directly to the `layout`.\");\n }\n\n var g = child.props[\"data-grid\"] || child.props._grid; // Hey, this item has a data-grid property, use it.\n\n if (g) {\n if (!isProduction) {\n validateLayout([g], \"ReactGridLayout.children\");\n } // FIXME clone not really necessary here\n\n\n layout.push(cloneLayoutItem(_objectSpread(_objectSpread({}, g), {}, {\n i: child.key\n })));\n } else {\n // Nothing provided: ensure this is added to the bottom\n // FIXME clone not really necessary here\n layout.push(cloneLayoutItem({\n w: 1,\n h: 1,\n x: 0,\n y: bottom(layout),\n i: String(child.key)\n }));\n }\n }\n }); // Correct the layout.\n\n\n var correctedLayout = correctBounds(layout, {\n cols: cols\n });\n return allowOverlap ? correctedLayout : compact(correctedLayout, compactType, cols);\n}\n/**\n * Validate a layout. Throws errors.\n *\n * @param {Array} layout Array of layout items.\n * @param {String} [contextName] Context name for errors.\n * @throw {Error} Validation error.\n */\n\n\nfunction validateLayout(layout\n/*: Layout*/\n)\n/*: void*/\n{\n var contextName\n /*: string*/\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Layout\";\n var subProps = [\"x\", \"y\", \"w\", \"h\"];\n if (!Array.isArray(layout)) throw new Error(contextName + \" must be an array!\");\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var item = layout[i];\n\n for (var j = 0; j < subProps.length; j++) {\n if (typeof item[subProps[j]] !== \"number\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].\" + subProps[j] + \" must be a number!\");\n }\n }\n }\n} // Legacy support for verticalCompact: false\n\n\nfunction compactType(props\n/*: ?{ verticalCompact: boolean, compactType: CompactType }*/\n)\n/*: CompactType*/\n{\n var _ref3 = props || {},\n verticalCompact = _ref3.verticalCompact,\n compactType = _ref3.compactType;\n\n return verticalCompact === false ? null : compactType;\n}\n\nfunction log() {\n var _console;\n\n if (!DEBUG) return; // eslint-disable-next-line no-console\n\n (_console = console).log.apply(_console, arguments);\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","module.exports = require(\"./build/ReactGridLayout\").default;\nmodule.exports.utils = require(\"./build/utils\");\nmodule.exports.Responsive =\n require(\"./build/ResponsiveReactGridLayout\").default;\nmodule.exports.Responsive.utils = require(\"./build/responsiveUtils\");\nmodule.exports.WidthProvider =\n require(\"./build/components/WidthProvider\").default;\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t= 0) continue; target[key] = source[key]; } return target; }\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; }\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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n// The base component.\n// This component does not have state and relies on the parent to set its props based on callback data.\nvar Resizable = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Resizable, _React$Component);\n function Resizable() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleRefs = {};\n _this.lastHandleRect = null;\n _this.slack = null;\n return _this;\n }\n var _proto = Resizable.prototype;\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.resetData();\n };\n _proto.resetData = function resetData() {\n this.lastHandleRect = this.slack = null;\n }\n\n // Clamp width and height within provided constraints\n ;\n _proto.runConstraints = function runConstraints(width, height) {\n var _this$props = this.props,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio;\n // short circuit\n if (!minConstraints && !maxConstraints && !lockAspectRatio) return [width, height];\n\n // If constraining to min and max, we need to also fit width and height to aspect ratio.\n if (lockAspectRatio) {\n var ratio = this.props.width / this.props.height;\n var deltaW = width - this.props.width;\n var deltaH = height - this.props.height;\n\n // Find which coordinate was greater and should push the other toward it.\n // E.g.:\n // ratio = 1, deltaW = 10, deltaH = 5, deltaH should become 10.\n // ratio = 2, deltaW = 10, deltaH = 6, deltaW should become 12.\n if (Math.abs(deltaW) > Math.abs(deltaH * ratio)) {\n height = width / ratio;\n } else {\n width = height * ratio;\n }\n }\n var oldW = width,\n oldH = height;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n var _ref = this.slack || [0, 0],\n slackW = _ref[0],\n slackH = _ref[1];\n width += slackW;\n height += slackH;\n if (minConstraints) {\n width = Math.max(minConstraints[0], width);\n height = Math.max(minConstraints[1], height);\n }\n if (maxConstraints) {\n width = Math.min(maxConstraints[0], width);\n height = Math.min(maxConstraints[1], height);\n }\n\n // If the width or height changed, we must have introduced some slack. Record it for the next iteration.\n this.slack = [slackW + (oldW - width), slackH + (oldH - height)];\n return [width, height];\n }\n\n /**\n * Wrapper around drag events to provide more useful data.\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */;\n _proto.resizeHandler = function resizeHandler(handlerName, axis) {\n var _this2 = this;\n return function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n // Reset data in case it was left over somehow (should not be possible)\n if (handlerName === 'onResizeStart') _this2.resetData();\n\n // Axis restrictions\n var canDragX = (_this2.props.axis === 'both' || _this2.props.axis === 'x') && axis !== 'n' && axis !== 's';\n var canDragY = (_this2.props.axis === 'both' || _this2.props.axis === 'y') && axis !== 'e' && axis !== 'w';\n // No dragging possible.\n if (!canDragX && !canDragY) return;\n\n // Decompose axis for later use\n var axisV = axis[0];\n var axisH = axis[axis.length - 1]; // intentionally not axis[1], so that this catches axis === 'w' for example\n\n // Track the element being dragged to account for changes in position.\n // If a handle's position is changed between callbacks, we need to factor this in to the next callback.\n // Failure to do so will cause the element to \"skip\" when resized upwards or leftwards.\n var handleRect = node.getBoundingClientRect();\n if (_this2.lastHandleRect != null) {\n // If the handle has repositioned on either axis since last render,\n // we need to increase our callback values by this much.\n // Only checking 'n', 'w' since resizing by 's', 'w' won't affect the overall position on page,\n if (axisH === 'w') {\n var deltaLeftSinceLast = handleRect.left - _this2.lastHandleRect.left;\n deltaX += deltaLeftSinceLast;\n }\n if (axisV === 'n') {\n var deltaTopSinceLast = handleRect.top - _this2.lastHandleRect.top;\n deltaY += deltaTopSinceLast;\n }\n }\n // Storage of last rect so we know how much it has really moved.\n _this2.lastHandleRect = handleRect;\n\n // Reverse delta if using top or left drag handles.\n if (axisH === 'w') deltaX = -deltaX;\n if (axisV === 'n') deltaY = -deltaY;\n\n // Update w/h by the deltas. Also factor in transformScale.\n var width = _this2.props.width + (canDragX ? deltaX / _this2.props.transformScale : 0);\n var height = _this2.props.height + (canDragY ? deltaY / _this2.props.transformScale : 0);\n\n // Run user-provided constraints.\n var _this2$runConstraints = _this2.runConstraints(width, height);\n width = _this2$runConstraints[0];\n height = _this2$runConstraints[1];\n var dimensionsChanged = width !== _this2.props.width || height !== _this2.props.height;\n\n // Call user-supplied callback if present.\n var cb = typeof _this2.props[handlerName] === 'function' ? _this2.props[handlerName] : null;\n // Don't call 'onResize' if dimensions haven't changed.\n var shouldSkipCb = handlerName === 'onResize' && !dimensionsChanged;\n if (cb && !shouldSkipCb) {\n e.persist == null ? void 0 : e.persist();\n cb(e, {\n node: node,\n size: {\n width: width,\n height: height\n },\n handle: axis\n });\n }\n\n // Reset internal data\n if (handlerName === 'onResizeStop') _this2.resetData();\n };\n }\n\n // Render a resize handle given an axis & DOM ref. Ref *must* be attached for\n // the underlying draggable library to work properly.\n ;\n _proto.renderResizeHandle = function renderResizeHandle(handleAxis, ref) {\n var handle = this.props.handle;\n // No handle provided, make the default\n if (!handle) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"react-resizable-handle react-resizable-handle-\" + handleAxis,\n ref: ref\n });\n }\n // Handle is a function, such as:\n // `handle={(handleAxis) => }`\n if (typeof handle === 'function') {\n return handle(handleAxis, ref);\n }\n // Handle is a React component (composite or DOM).\n var isDOMElement = typeof handle.type === 'string';\n var props = _objectSpread({\n ref: ref\n }, isDOMElement ? {} : {\n handleAxis: handleAxis\n });\n return /*#__PURE__*/React.cloneElement(handle, props);\n };\n _proto.render = function render() {\n var _this3 = this;\n // Pass along only props not meant for the ``.`\n // eslint-disable-next-line no-unused-vars\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n draggableOpts = _this$props2.draggableOpts,\n width = _this$props2.width,\n height = _this$props2.height,\n handle = _this$props2.handle,\n handleSize = _this$props2.handleSize,\n lockAspectRatio = _this$props2.lockAspectRatio,\n axis = _this$props2.axis,\n minConstraints = _this$props2.minConstraints,\n maxConstraints = _this$props2.maxConstraints,\n onResize = _this$props2.onResize,\n onResizeStop = _this$props2.onResizeStop,\n onResizeStart = _this$props2.onResizeStart,\n resizeHandles = _this$props2.resizeHandles,\n transformScale = _this$props2.transformScale,\n p = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n\n // What we're doing here is getting the child of this element, and cloning it with this element's props.\n // We are then defining its children as:\n // 1. Its original children (resizable's child's children), and\n // 2. One or more draggable handles.\n return (0, _utils.cloneElement)(children, _objectSpread(_objectSpread({}, p), {}, {\n className: (className ? className + \" \" : '') + \"react-resizable\",\n children: [].concat(children.props.children, resizeHandles.map(function (handleAxis) {\n var _this3$handleRefs$han;\n // Create a ref to the handle so that `` doesn't have to use ReactDOM.findDOMNode().\n var ref = (_this3$handleRefs$han = _this3.handleRefs[handleAxis]) != null ? _this3$handleRefs$han : _this3.handleRefs[handleAxis] = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(_reactDraggable.DraggableCore, _extends({}, draggableOpts, {\n nodeRef: ref,\n key: \"resizableHandle-\" + handleAxis,\n onStop: _this3.resizeHandler('onResizeStop', handleAxis),\n onStart: _this3.resizeHandler('onResizeStart', handleAxis),\n onDrag: _this3.resizeHandler('onResize', handleAxis)\n }), _this3.renderResizeHandle(handleAxis, ref));\n }))\n }));\n };\n return Resizable;\n}(React.Component);\nexports.default = Resizable;\nResizable.propTypes = _propTypes.resizableProps;\nResizable.defaultProps = {\n axis: 'both',\n handleSize: [20, 20],\n lockAspectRatio: false,\n minConstraints: [20, 20],\n maxConstraints: [Infinity, Infinity],\n resizeHandles: ['se'],\n transformScale: 1\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Resizable = _interopRequireDefault(require(\"./Resizable\"));\nvar _propTypes2 = require(\"./propTypes\");\nvar _excluded = [\"handle\", \"handleSize\", \"onResize\", \"onResizeStart\", \"onResizeStop\", \"draggableOpts\", \"minConstraints\", \"maxConstraints\", \"lockAspectRatio\", \"axis\", \"width\", \"height\", \"resizeHandles\", \"style\", \"transformScale\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\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; }\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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ResizableBox = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ResizableBox, _React$Component);\n function ResizableBox() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n width: _this.props.width,\n height: _this.props.height,\n propsWidth: _this.props.width,\n propsHeight: _this.props.height\n };\n _this.onResize = function (e, data) {\n var size = data.size;\n if (_this.props.onResize) {\n e.persist == null ? void 0 : e.persist();\n _this.setState(size, function () {\n return _this.props.onResize && _this.props.onResize(e, data);\n });\n } else {\n _this.setState(size);\n }\n };\n return _this;\n }\n ResizableBox.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n // If parent changes height/width, set that in our state.\n if (state.propsWidth !== props.width || state.propsHeight !== props.height) {\n return {\n width: props.width,\n height: props.height,\n propsWidth: props.width,\n propsHeight: props.height\n };\n }\n return null;\n };\n var _proto = ResizableBox.prototype;\n _proto.render = function render() {\n // Basic wrapper around a Resizable instance.\n // If you use Resizable directly, you are responsible for updating the child component\n // with a new width and height.\n var _this$props = this.props,\n handle = _this$props.handle,\n handleSize = _this$props.handleSize,\n onResize = _this$props.onResize,\n onResizeStart = _this$props.onResizeStart,\n onResizeStop = _this$props.onResizeStop,\n draggableOpts = _this$props.draggableOpts,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio,\n axis = _this$props.axis,\n width = _this$props.width,\n height = _this$props.height,\n resizeHandles = _this$props.resizeHandles,\n style = _this$props.style,\n transformScale = _this$props.transformScale,\n props = _objectWithoutPropertiesLoose(_this$props, _excluded);\n return /*#__PURE__*/React.createElement(_Resizable.default, {\n axis: axis,\n draggableOpts: draggableOpts,\n handle: handle,\n handleSize: handleSize,\n height: this.state.height,\n lockAspectRatio: lockAspectRatio,\n maxConstraints: maxConstraints,\n minConstraints: minConstraints,\n onResizeStart: onResizeStart,\n onResize: this.onResize,\n onResizeStop: onResizeStop,\n resizeHandles: resizeHandles,\n transformScale: transformScale,\n width: this.state.width\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: this.state.width + 'px',\n height: this.state.height + 'px'\n })\n })));\n };\n return ResizableBox;\n}(React.Component);\nexports.default = ResizableBox;\n// PropTypes are identical to , except that children are not strictly required to be present.\nResizableBox.propTypes = _objectSpread(_objectSpread({}, _propTypes2.resizableProps), {}, {\n children: _propTypes.default.element\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.resizableProps = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDraggable = require(\"react-draggable\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar resizableProps = {\n /*\n * Restricts resizing to a particular axis (default: 'both')\n * 'both' - allows resizing by width or height\n * 'x' - only allows the width to be changed\n * 'y' - only allows the height to be changed\n * 'none' - disables resizing altogether\n * */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n className: _propTypes.default.string,\n /*\n * Require that one and only one child be present.\n * */\n children: _propTypes.default.element.isRequired,\n /*\n * These will be passed wholesale to react-draggable's DraggableCore\n * */\n draggableOpts: _propTypes.default.shape({\n allowAnyClick: _propTypes.default.bool,\n cancel: _propTypes.default.string,\n children: _propTypes.default.node,\n disabled: _propTypes.default.bool,\n enableUserSelectHack: _propTypes.default.bool,\n offsetParent: _propTypes.default.node,\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n handle: _propTypes.default.string,\n nodeRef: _propTypes.default.object,\n onStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onStop: _propTypes.default.func,\n onMouseDown: _propTypes.default.func,\n scale: _propTypes.default.number\n }),\n /*\n * Initial height\n * */\n height: function height() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var props = args[0];\n // Required if resizing height or both\n if (props.axis === 'both' || props.axis === 'y') {\n var _PropTypes$number;\n return (_PropTypes$number = _propTypes.default.number).isRequired.apply(_PropTypes$number, args);\n }\n return _propTypes.default.number.apply(_propTypes.default, args);\n },\n /*\n * Customize cursor resize handle\n * */\n handle: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),\n /*\n * If you change this, be sure to update your css\n * */\n handleSize: _propTypes.default.arrayOf(_propTypes.default.number),\n lockAspectRatio: _propTypes.default.bool,\n /*\n * Max X & Y measure\n * */\n maxConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n /*\n * Min X & Y measure\n * */\n minConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n /*\n * Called on stop resize event\n * */\n onResizeStop: _propTypes.default.func,\n /*\n * Called on start resize event\n * */\n onResizeStart: _propTypes.default.func,\n /*\n * Called on resize event\n * */\n onResize: _propTypes.default.func,\n /*\n * Defines which resize handles should be rendered (default: 'se')\n * 's' - South handle (bottom-center)\n * 'w' - West handle (left-center)\n * 'e' - East handle (right-center)\n * 'n' - North handle (top-center)\n * 'sw' - Southwest handle (bottom-left)\n * 'nw' - Northwest handle (top-left)\n * 'se' - Southeast handle (bottom-right)\n * 'ne' - Northeast handle (top-center)\n * */\n resizeHandles: _propTypes.default.arrayOf(_propTypes.default.oneOf(['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'])),\n /*\n * If `transform: scale(n)` is set on the parent, this should be set to `n`.\n * */\n transformScale: _propTypes.default.number,\n /*\n * Initial width\n */\n width: function width() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var props = args[0];\n // Required if resizing width or both\n if (props.axis === 'both' || props.axis === 'x') {\n var _PropTypes$number2;\n return (_PropTypes$number2 = _propTypes.default.number).isRequired.apply(_PropTypes$number2, args);\n }\n return _propTypes.default.number.apply(_propTypes.default, args);\n }\n};\nexports.resizableProps = resizableProps;","\"use strict\";\n\nexports.__esModule = true;\nexports.cloneElement = cloneElement;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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; }\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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// React.addons.cloneWithProps look-alike that merges style & className.\nfunction cloneElement(element, props) {\n if (props.style && element.props.style) {\n props.style = _objectSpread(_objectSpread({}, element.props.style), props.style);\n }\n if (props.className && element.props.className) {\n props.className = element.props.className + \" \" + props.className;\n }\n return /*#__PURE__*/_react.default.cloneElement(element, props);\n}","'use strict';\nmodule.exports = function() {\n throw new Error(\"Don't instantiate Resizable directly! Use require('react-resizable').Resizable\");\n};\n\nmodule.exports.Resizable = require('./build/Resizable').default;\nmodule.exports.ResizableBox = require('./build/ResizableBox').default;\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 =\n /*#__PURE__*/\n 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 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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar react_1 = require(\"react\");\nvar useTimeoutFn_1 = tslib_1.__importDefault(require(\"./useTimeoutFn\"));\nfunction useDebounce(fn, ms, deps) {\n if (ms === void 0) { ms = 0; }\n if (deps === void 0) { deps = []; }\n var _a = useTimeoutFn_1.default(fn, ms), isReady = _a[0], cancel = _a[1], reset = _a[2];\n react_1.useEffect(reset, deps);\n return [isReady, cancel];\n}\nexports.default = useDebounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nfunction usePrevious(state) {\n var ref = react_1.useRef();\n react_1.useEffect(function () {\n ref.current = state;\n });\n return ref.current;\n}\nexports.default = usePrevious;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nfunction useTimeoutFn(fn, ms) {\n if (ms === void 0) { ms = 0; }\n var ready = react_1.useRef(false);\n var timeout = react_1.useRef();\n var callback = react_1.useRef(fn);\n var isReady = react_1.useCallback(function () { return ready.current; }, []);\n var set = react_1.useCallback(function () {\n ready.current = false;\n timeout.current && clearTimeout(timeout.current);\n timeout.current = setTimeout(function () {\n ready.current = true;\n callback.current();\n }, ms);\n }, [ms]);\n var clear = react_1.useCallback(function () {\n ready.current = null;\n timeout.current && clearTimeout(timeout.current);\n }, []);\n // update ref when function changes\n react_1.useEffect(function () {\n callback.current = fn;\n }, [fn]);\n // set on mount, clear on unmount\n react_1.useEffect(function () {\n set();\n return clear;\n }, [ms]);\n return [isReady, clear, set];\n}\nexports.default = useTimeoutFn;\n","/**\n * @license React\n * react-jsx-runtime.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';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => comps.join(' ').trim())\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","class LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.38\n Copyright © 2012-2021 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.38',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 ' + BROWSER]], [\n /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/2345 Browser\n ], [NAME, VERSION], [\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6089__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7781__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8531__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2007__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4201__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3241__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1308__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5959__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8398__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1159__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1269__;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n 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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"public/plugins/grafana-pyroscope-app/\";","\nimport amdMetaModule from 'amd-module';\n\n__webpack_public_path__ =\n amdMetaModule && amdMetaModule.uri\n ? amdMetaModule.uri.slice(0, amdMetaModule.uri.lastIndexOf('/') + 1)\n : 'public/plugins/grafana-pyroscope-app/';\n","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n return void 0;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (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 if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(ms) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nvar ensureQueryFn = (options, fetchOptions) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n};\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/notifyManager.ts\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const setScheduler = (fn) => {\n scheduleFn = fn;\n };\n const batch = (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n };\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const batchCalls = (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n const setNotifyFunction = (fn) => {\n notifyFn = fn;\n };\n const setBatchNotifyFunction = (fn) => {\n batchNotifyFn = fn;\n };\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n setScheduler\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class {\n constructor(options) {\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n promiseResolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n promiseReject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise,\n cancel,\n continue: () => {\n continueFn?.();\n return promise;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return promise;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = 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 || getDefaultState(this.options);\n this.state = this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (!restored) {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Map();\n this.#mutationId = Date.now();\n }\n #mutations;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n const scope = scopeFor(mutation);\n const mutations = this.#mutations.get(scope) ?? [];\n mutations.push(mutation);\n this.#mutations.set(scope, mutations);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n const scope = scopeFor(mutation);\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation);\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope);\n } else {\n this.#mutations.set(scope, mutations);\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === \"pending\");\n return !firstPendingMutation || firstPendingMutation === mutation;\n }\n runNext(mutation) {\n const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return [...this.#mutations.values()].flat();\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id ?? String(mutation.mutationId);\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const fetchFn = async () => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n const empty = { pages: [], pageParams: [] };\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n let result;\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n result = await fetchPage(\n empty,\n oldPageParams[0] ?? options.initialPageParam\n );\n const remainingPages = pages ?? oldPages.length;\n for (let i = 1; i < remainingPages; i++) {\n const param = getNextPageParam(options, result);\n result = await fetchPage(result, param);\n }\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n );\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams\n );\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","import { QueryClient } from '@tanstack/react-query';\n\nexport const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n networkMode: 'always',\n retry: false,\n refetchOnWindowFocus: false,\n },\n },\n});\n","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n if (cachedData === void 0)\n return this.fetchQuery(options);\n else {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters = {}, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters = {}, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters = {}, options) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.enabled !== true && defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","export var TransportItemType;\n(function (TransportItemType) {\n TransportItemType[\"EXCEPTION\"] = \"exception\";\n TransportItemType[\"LOG\"] = \"log\";\n TransportItemType[\"MEASUREMENT\"] = \"measurement\";\n TransportItemType[\"TRACE\"] = \"trace\";\n TransportItemType[\"EVENT\"] = \"event\";\n})(TransportItemType || (TransportItemType = {}));\nexport const transportItemTypeToBodyKey = {\n [TransportItemType.EXCEPTION]: 'exceptions',\n [TransportItemType.LOG]: 'logs',\n [TransportItemType.MEASUREMENT]: 'measurements',\n [TransportItemType.TRACE]: 'traces',\n [TransportItemType.EVENT]: 'events',\n};\n//# sourceMappingURL=const.js.map","export function dateNow() {\n return Date.now();\n}\nexport function getCurrentTimestamp() {\n return new Date().toISOString();\n}\nexport function timestampToIsoString(value) {\n return new Date(value).toISOString();\n}\n//# sourceMappingURL=date.js.map","export function isTypeof(value, type) {\n return typeof value === type;\n}\nexport function isToString(value, type) {\n return Object.prototype.toString.call(value) === `[object ${type}]`;\n}\nexport function isInstanceOf(value, reference) {\n try {\n return value instanceof reference;\n }\n catch (err) {\n return false;\n }\n}\nexport const isUndefined = ((value) => isTypeof(value, 'undefined'));\nexport const isNull = ((value) => isTypeof(value, 'null'));\nexport const isString = ((value) => isTypeof(value, 'string'));\nexport const isNumber = ((value) => (isTypeof(value, 'number') && !isNaN(value)) || isTypeof(value, 'bigint'));\nexport const isInt = ((value) => isNumber(value) && Number.isInteger(value));\nexport const isBoolean = ((value) => isTypeof(value, 'boolean'));\nexport const isSymbol = ((value) => isTypeof(value, 'symbol'));\nexport const isObject = ((value) => !isNull(value) && isTypeof(value, 'object'));\nexport const isFunction = ((value) => isTypeof(value, 'function'));\nexport const isArray = ((value) => isToString(value, 'Array'));\nexport const isRegExp = ((value) => isToString(value, 'RegExp'));\nexport const isThenable = ((value) => isFunction(value === null || value === void 0 ? void 0 : value.then));\nexport const isPrimitive = ((value) => !isObject(value) && !isFunction(value));\nexport const isEventDefined = typeof Event !== 'undefined';\nexport const isEvent = ((value) => isEventDefined && isInstanceOf(value, Event));\nexport const isErrorDefined = typeof Error !== 'undefined';\nexport const isError = ((value) => isErrorDefined && isInstanceOf(value, Error));\nexport const isErrorEvent = ((value) => isToString(value, 'ErrorEvent'));\nexport const isDomError = ((value) => isToString(value, 'DOMError'));\nexport const isDomException = ((value) => isToString(value, 'DOMException'));\nexport const isElementDefined = typeof Element !== 'undefined';\nexport const isElement = ((value) => isElementDefined && isInstanceOf(value, Element));\nexport const isMapDefined = typeof Map !== 'undefined';\nexport const isMap = ((value) => isMapDefined && isInstanceOf(value, Map));\nexport const isSyntheticEvent = ((value) => isObject(value) &&\n 'nativeEvent' in value &&\n 'preventDefault' in value &&\n 'stopPropagation' in value);\n//# sourceMappingURL=is.js.map","import { isArray, isObject, isTypeof } from './is';\n// This function was inspired by fast-deep-equal\n// fast-deep-equal has issues with Rollup and also it checks for some edge cases that we don't need\nexport function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n // Using isTypeOf instead of isNumber as isNumber also checks against NaN\n if (isTypeof(a, 'number') && isNaN(a)) {\n return isTypeof(b, 'number') && isNaN(b);\n }\n const aIsArray = isArray(a);\n const bIsArray = isArray(b);\n if (aIsArray !== bIsArray) {\n return false;\n }\n if (aIsArray && bIsArray) {\n const length = a.length;\n if (length !== b.length) {\n return false;\n }\n for (let idx = length; idx-- !== 0;) {\n if (!deepEqual(a[idx], b[idx])) {\n return false;\n }\n }\n return true;\n }\n const aIsObject = isObject(a);\n const bIsObject = isObject(b);\n if (aIsObject !== bIsObject) {\n return false;\n }\n if (a && b && aIsObject && bIsObject) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const aLength = aKeys.length;\n const bLength = bKeys.length;\n if (aLength !== bLength) {\n return false;\n }\n for (let aKey of aKeys) {\n if (!bKeys.includes(aKey)) {\n return false;\n }\n }\n for (let aKey of aKeys) {\n if (!deepEqual(a[aKey], b[aKey])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=deepEqual.js.map","export const defaultExceptionType = 'Error';\n//# sourceMappingURL=const.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { defaultExceptionType } from './const';\nlet stacktraceParser;\nexport function initializeExceptionsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n var _a;\n internalLogger.debug('Initializing exceptions API');\n let lastPayload = null;\n stacktraceParser = (_a = config.parseStacktrace) !== null && _a !== void 0 ? _a : stacktraceParser;\n const changeStacktraceParser = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n stacktraceParser = newStacktraceParser !== null && newStacktraceParser !== void 0 ? newStacktraceParser : stacktraceParser;\n };\n const getStacktraceParser = () => stacktraceParser;\n const pushError = (error, { skipDedupe, stackFrames, type, context, spanContext, timestampOverwriteMs } = {}) => {\n type = type || error.name || defaultExceptionType;\n const item = {\n meta: metas.value,\n payload: {\n type,\n value: error.message,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n context: context !== null && context !== void 0 ? context : {},\n },\n type: TransportItemType.EXCEPTION,\n };\n stackFrames = stackFrames !== null && stackFrames !== void 0 ? stackFrames : (error.stack ? stacktraceParser === null || stacktraceParser === void 0 ? void 0 : stacktraceParser(error).frames : undefined);\n if (stackFrames === null || stackFrames === void 0 ? void 0 : stackFrames.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing exception\\n', item);\n transports.execute(item);\n };\n changeStacktraceParser(config.parseStacktrace);\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\n//# sourceMappingURL=initialize.js.map","export var LogLevel;\n(function (LogLevel) {\n LogLevel[\"TRACE\"] = \"trace\";\n LogLevel[\"DEBUG\"] = \"debug\";\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"LOG\"] = \"log\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n})(LogLevel || (LogLevel = {}));\nexport const defaultLogLevel = LogLevel.LOG;\nexport const allLogLevels = [\n LogLevel.TRACE,\n LogLevel.DEBUG,\n LogLevel.INFO,\n LogLevel.LOG,\n LogLevel.WARN,\n LogLevel.ERROR,\n];\n//# sourceMappingURL=logLevels.js.map","export const defaultLogArgsSerializer = (args) => args\n .map((arg) => {\n try {\n return String(arg);\n }\n catch (err) {\n return '';\n }\n})\n .join(' ');\n//# sourceMappingURL=const.js.map","import { initializeEventsAPI } from './events';\nimport { initializeExceptionsAPI } from './exceptions';\nimport { initializeLogsAPI } from './logs';\nimport { initializeMeasurementsAPI } from './measurements';\nimport { initializeMetaAPI } from './meta';\nimport { initializeTracesAPI } from './traces';\nexport function initializeAPI(unpatchedConsole, internalLogger, config, metas, transports) {\n internalLogger.debug('Initializing API');\n const tracesApi = initializeTracesAPI(unpatchedConsole, internalLogger, config, metas, transports);\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, tracesApi), initializeExceptionsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi)), initializeMetaAPI(unpatchedConsole, internalLogger, config, metas, transports)), initializeLogsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi)), initializeMeasurementsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi)), initializeEventsAPI(unpatchedConsole, internalLogger, config, metas, transports, tracesApi));\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nexport function initializeTracesAPI(_unpatchedConsole, internalLogger, _config, metas, transports) {\n internalLogger.debug('Initializing traces API');\n let otel = undefined;\n const initOTEL = (trace, context) => {\n internalLogger.debug('Initializing OpenTelemetry');\n otel = {\n trace,\n context,\n };\n };\n const getTraceContext = () => {\n const ctx = otel === null || otel === void 0 ? void 0 : otel.trace.getSpanContext(otel.context.active());\n return !ctx\n ? undefined\n : {\n trace_id: ctx.traceId,\n span_id: ctx.spanId,\n };\n };\n const pushTraces = (payload) => {\n try {\n const item = {\n type: TransportItemType.TRACE,\n payload,\n meta: metas.value,\n };\n internalLogger.debug('Pushing trace\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing trace\\n', err);\n }\n };\n const getOTEL = () => otel;\n const isOTELInitialized = () => !!otel;\n return {\n getOTEL,\n getTraceContext,\n initOTEL,\n isOTELInitialized,\n pushTraces,\n };\n}\n//# sourceMappingURL=initialize.js.map","export function initializeMetaAPI(_unpatchedConsole, internalLogger, _config, metas, _transports) {\n internalLogger.debug('Initializing meta API');\n let metaSession = undefined;\n let metaUser = undefined;\n let metaView = undefined;\n const setUser = (user) => {\n if (metaUser) {\n metas.remove(metaUser);\n }\n metaUser = {\n user,\n };\n metas.add(metaUser);\n };\n const setSession = (session) => {\n if (metaSession) {\n metas.remove(metaSession);\n }\n metaSession = {\n session,\n };\n metas.add(metaSession);\n };\n const getSession = () => metas.value.session;\n const setView = (view) => {\n var _a;\n if (((_a = metaView === null || metaView === void 0 ? void 0 : metaView.view) === null || _a === void 0 ? void 0 : _a.name) === (view === null || view === void 0 ? void 0 : view.name)) {\n return;\n }\n const previousView = metaView;\n metaView = {\n view,\n };\n metas.add(metaView);\n if (previousView) {\n metas.remove(previousView);\n }\n };\n const getView = () => metas.value.view;\n return {\n setUser,\n resetUser: setUser,\n setSession,\n resetSession: setSession,\n getSession,\n setView,\n getView,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, defaultLogLevel, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { defaultLogArgsSerializer } from './const';\nexport function initializeLogsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n var _a;\n internalLogger.debug('Initializing logs API');\n let lastPayload = null;\n const logArgsSerializer = (_a = config.logArgsSerializer) !== null && _a !== void 0 ? _a : defaultLogArgsSerializer;\n const pushLog = (args, { context, level, skipDedupe, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const item = {\n type: TransportItemType.LOG,\n payload: {\n message: logArgsSerializer(args),\n level: level !== null && level !== void 0 ? level : defaultLogLevel,\n context: context !== null && context !== void 0 ? context : {},\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n },\n meta: metas.value,\n };\n const testingPayload = {\n message: item.payload.message,\n level: item.payload.level,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping log push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing log\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing log\\n', err);\n }\n };\n return {\n pushLog,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nexport function initializeMeasurementsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n internalLogger.debug('Initializing measurements API');\n let lastPayload = null;\n const pushMeasurement = (payload, { skipDedupe, context, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const item = {\n type: TransportItemType.MEASUREMENT,\n payload: Object.assign(Object.assign({}, payload), { trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(), timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(), context: context !== null && context !== void 0 ? context : {} }),\n meta: metas.value,\n };\n const testingPayload = {\n type: item.payload.type,\n values: item.payload.values,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping measurement push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing measurement\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing measurement\\n', err);\n }\n };\n return {\n pushMeasurement,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nexport function initializeEventsAPI(_unpatchedConsole, internalLogger, config, metas, transports, tracesApi) {\n let lastPayload = null;\n const pushEvent = (name, attributes, domain, { skipDedupe, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const item = {\n meta: metas.value,\n payload: {\n name,\n domain: domain !== null && domain !== void 0 ? domain : config.eventDomain,\n attributes,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n },\n type: TransportItemType.EVENT,\n };\n const testingPayload = {\n name: item.payload.name,\n attributes: item.payload.attributes,\n domain: item.payload.domain,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping event push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing event\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n return {\n pushEvent,\n };\n}\n//# sourceMappingURL=initialize.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { noop } from '../utils';\nexport var InternalLoggerLevel;\n(function (InternalLoggerLevel) {\n InternalLoggerLevel[InternalLoggerLevel[\"OFF\"] = 0] = \"OFF\";\n InternalLoggerLevel[InternalLoggerLevel[\"ERROR\"] = 1] = \"ERROR\";\n InternalLoggerLevel[InternalLoggerLevel[\"WARN\"] = 2] = \"WARN\";\n InternalLoggerLevel[InternalLoggerLevel[\"INFO\"] = 3] = \"INFO\";\n InternalLoggerLevel[InternalLoggerLevel[\"VERBOSE\"] = 4] = \"VERBOSE\";\n})(InternalLoggerLevel || (InternalLoggerLevel = {}));\nexport const defaultInternalLoggerPrefix = 'Faro';\nexport const defaultInternalLogger = {\n debug: noop,\n error: noop,\n info: noop,\n prefix: defaultInternalLoggerPrefix,\n warn: noop,\n};\nexport const defaultInternalLoggerLevel = InternalLoggerLevel.ERROR;\n//# sourceMappingURL=const.js.map","export const defaultUnpatchedConsole = Object.assign({}, console);\n//# sourceMappingURL=const.js.map","import { defaultUnpatchedConsole } from '../unpatchedConsole';\nimport { noop } from '../utils';\nimport { defaultInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './const';\nexport function createInternalLogger(unpatchedConsole = defaultUnpatchedConsole, internalLoggerLevel = defaultInternalLoggerLevel) {\n const internalLogger = defaultInternalLogger;\n if (internalLoggerLevel > InternalLoggerLevel.OFF) {\n internalLogger.error =\n internalLoggerLevel >= InternalLoggerLevel.ERROR\n ? function (...args) {\n unpatchedConsole.error(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.warn =\n internalLoggerLevel >= InternalLoggerLevel.WARN\n ? function (...args) {\n unpatchedConsole.warn(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.info =\n internalLoggerLevel >= InternalLoggerLevel.INFO\n ? function (...args) {\n unpatchedConsole.info(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.debug =\n internalLoggerLevel >= InternalLoggerLevel.VERBOSE\n ? function (...args) {\n unpatchedConsole.debug(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n }\n return internalLogger;\n}\n//# sourceMappingURL=createInternalLogger.js.map","import { defaultInternalLogger } from './const';\nimport { createInternalLogger } from './createInternalLogger';\nexport let internalLogger = defaultInternalLogger;\nexport function initializeInternalLogger(unpatchedConsole, config) {\n internalLogger = createInternalLogger(unpatchedConsole, config.internalLoggerLevel);\n return internalLogger;\n}\n//# sourceMappingURL=initialize.js.map","// This does not uses isUndefined method because it will throw an error in non-browser environments\nexport const globalObject = (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof global !== 'undefined'\n ? global\n : typeof self !== 'undefined'\n ? self\n : undefined);\n//# sourceMappingURL=globalObject.js.map","// auto-generated by bin/genVersion.ts\nexport const VERSION = '1.10.0';\n//# sourceMappingURL=version.js.map","export const internalGlobalObjectKey = '_faroInternal';\n//# sourceMappingURL=const.js.map","import { setFaroOnGlobalObject } from './faroGlobalObject';\nimport { setInternalFaroOnGlobalObject } from './internalFaroGlobalObject';\nexport let faro = {};\nexport function registerFaro(unpatchedConsole, internalLogger, config, metas, transports, api, instrumentations) {\n internalLogger.debug('Initializing Faro');\n faro = {\n api,\n config,\n instrumentations,\n internalLogger,\n metas,\n pause: transports.pause,\n transports,\n unpatchedConsole,\n unpause: transports.unpause,\n };\n setInternalFaroOnGlobalObject(faro);\n setFaroOnGlobalObject(faro);\n return faro;\n}\n//# sourceMappingURL=registerFaro.js.map","import { globalObject } from '../globalObject';\nimport { internalGlobalObjectKey } from './const';\nexport function getInternalFromGlobalObject() {\n return globalObject[internalGlobalObjectKey];\n}\nexport function setInternalFaroOnGlobalObject(faro) {\n if (!faro.config.isolate) {\n faro.internalLogger.debug('Registering internal Faro instance on global object');\n Object.defineProperty(globalObject, internalGlobalObjectKey, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: faro,\n });\n }\n else {\n faro.internalLogger.debug('Skipping registering internal Faro instance on global object');\n }\n}\nexport function isInternalFaroOnGlobalObject() {\n return internalGlobalObjectKey in globalObject;\n}\n//# sourceMappingURL=internalFaroGlobalObject.js.map","import { globalObject } from '../globalObject';\nexport function setFaroOnGlobalObject(faro) {\n if (!faro.config.preventGlobalExposure) {\n faro.internalLogger.debug(`Registering public faro reference in the global scope using \"${faro.config.globalObjectKey}\" key`);\n if (faro.config.globalObjectKey in globalObject) {\n faro.internalLogger.warn(`Skipping global registration due to key \"${faro.config.globalObjectKey}\" being used already. Please set \"globalObjectKey\" to something else or set \"preventGlobalExposure\" to \"true\"`);\n return;\n }\n Object.defineProperty(globalObject, faro.config.globalObjectKey, {\n configurable: false,\n writable: false,\n value: faro,\n });\n }\n else {\n faro.internalLogger.debug('Skipping registering public Faro instance in the global scope');\n }\n}\n//# sourceMappingURL=faroGlobalObject.js.map","const DEFAULT_SEND_TIMEOUT_MS = 250;\nconst DEFAULT_BATCH_ITEM_LIMIT = 50;\nexport class BatchExecutor {\n constructor(sendFn, options) {\n var _a, _b;\n this.signalBuffer = [];\n this.itemLimit = (_a = options === null || options === void 0 ? void 0 : options.itemLimit) !== null && _a !== void 0 ? _a : DEFAULT_BATCH_ITEM_LIMIT;\n this.sendTimeout = (_b = options === null || options === void 0 ? void 0 : options.sendTimeout) !== null && _b !== void 0 ? _b : DEFAULT_SEND_TIMEOUT_MS;\n this.paused = (options === null || options === void 0 ? void 0 : options.paused) || false;\n this.sendFn = sendFn;\n this.flushInterval = -1;\n if (!this.paused) {\n this.start();\n }\n // Send batched/buffered data when user navigates to new page, switches or closes the tab, minimizes or closes the browser.\n // If on mobile, it also sends data if user switches from the browser to a different app.\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') {\n this.flush();\n }\n });\n }\n addItem(item) {\n if (this.paused) {\n return;\n }\n this.signalBuffer.push(item);\n if (this.signalBuffer.length >= this.itemLimit) {\n this.flush();\n }\n }\n start() {\n this.paused = false;\n if (this.sendTimeout > 0) {\n this.flushInterval = window.setInterval(() => this.flush(), this.sendTimeout);\n }\n }\n pause() {\n this.paused = true;\n clearInterval(this.flushInterval);\n }\n groupItems(items) {\n const itemMap = new Map();\n items.forEach((item) => {\n const metaKey = JSON.stringify(item.meta);\n let currentItems = itemMap.get(metaKey);\n if (currentItems === undefined) {\n currentItems = [item];\n }\n else {\n currentItems = [...currentItems, item];\n }\n itemMap.set(metaKey, currentItems);\n });\n return Array.from(itemMap.values());\n }\n flush() {\n if (this.paused || this.signalBuffer.length === 0) {\n return;\n }\n const itemGroups = this.groupItems(this.signalBuffer);\n itemGroups.forEach(this.sendFn);\n this.signalBuffer = [];\n }\n}\n//# sourceMappingURL=batchExecutor.js.map","import { isString } from '../utils';\nimport { BatchExecutor } from './batchExecutor';\nimport { TransportItemType } from './const';\nexport function shouldIgnoreEvent(patterns, msg) {\n return patterns.some((pattern) => {\n return isString(pattern) ? msg.includes(pattern) : !!msg.match(pattern);\n });\n}\nexport function createBeforeSendHookFromIgnorePatterns(patterns) {\n return (item) => {\n if (item.type === TransportItemType.EXCEPTION && item.payload) {\n const evt = item.payload;\n const msg = `${evt.type}: ${evt.value}`;\n if (shouldIgnoreEvent(patterns, msg)) {\n return null;\n }\n }\n return item;\n };\n}\nexport function initializeTransports(unpatchedConsole, internalLogger, config, metas) {\n var _a;\n internalLogger.debug('Initializing transports');\n const transports = [];\n let paused = config.paused;\n let beforeSendHooks = [];\n const add = (...newTransports) => {\n internalLogger.debug('Adding transports');\n newTransports.forEach((newTransport) => {\n internalLogger.debug(`Adding \"${newTransport.name}\" transport`);\n const exists = transports.some((existingTransport) => existingTransport === newTransport);\n if (exists) {\n internalLogger.warn(`Transport ${newTransport.name} is already added`);\n return;\n }\n newTransport.unpatchedConsole = unpatchedConsole;\n newTransport.internalLogger = internalLogger;\n newTransport.config = config;\n newTransport.metas = metas;\n transports.push(newTransport);\n });\n };\n const addBeforeSendHooks = (...newBeforeSendHooks) => {\n internalLogger.debug('Adding beforeSendHooks\\n', beforeSendHooks);\n newBeforeSendHooks.forEach((beforeSendHook) => {\n if (beforeSendHook) {\n beforeSendHooks.push(beforeSendHook);\n }\n });\n };\n const addIgnoreErrorsPatterns = (...ignoreErrorsPatterns) => {\n internalLogger.debug('Adding ignoreErrorsPatterns\\n', ignoreErrorsPatterns);\n ignoreErrorsPatterns.forEach((ignoreErrorsPattern) => {\n if (ignoreErrorsPattern) {\n beforeSendHooks.push(createBeforeSendHookFromIgnorePatterns(ignoreErrorsPattern));\n }\n });\n };\n const applyBeforeSendHooks = (items) => {\n let filteredItems = items;\n for (const hook of beforeSendHooks) {\n const modified = filteredItems.map(hook).filter(Boolean);\n if (modified.length === 0) {\n return [];\n }\n filteredItems = modified;\n }\n return filteredItems;\n };\n const batchedSend = (items) => {\n const filteredItems = applyBeforeSendHooks(items);\n if (filteredItems.length === 0) {\n return;\n }\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, filteredItems);\n if (transport.isBatched()) {\n transport.send(filteredItems);\n }\n }\n };\n const instantSend = (item) => {\n var _a, _b;\n // prevent all beforeSend hooks being executed twice if batching is enabled.\n if (((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) && transports.every((transport) => transport.isBatched())) {\n return;\n }\n const [filteredItem] = applyBeforeSendHooks([item]);\n if (filteredItem === undefined) {\n return;\n }\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, filteredItem);\n if (!transport.isBatched()) {\n transport.send(filteredItem);\n }\n else if (!((_b = config.batching) === null || _b === void 0 ? void 0 : _b.enabled)) {\n transport.send([filteredItem]);\n }\n }\n };\n let batchExecutor;\n if ((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) {\n batchExecutor = new BatchExecutor(batchedSend, {\n sendTimeout: config.batching.sendTimeout,\n itemLimit: config.batching.itemLimit,\n paused,\n });\n }\n // Send a signal to the appropriate transports\n //\n // 1. If SDK is paused, early return\n // 2. If batching is not enabled send the signal to all transports\n // instantly.\n // 3i. If batching is enabled, enqueue the signal\n // 3ii. Send the signal instantly to all un-batched transports\n const execute = (item) => {\n var _a;\n if (paused) {\n return;\n }\n if ((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) {\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.addItem(item);\n }\n instantSend(item);\n };\n const getBeforeSendHooks = () => [...beforeSendHooks];\n const isPaused = () => paused;\n const pause = () => {\n internalLogger.debug('Pausing transports');\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.pause();\n paused = true;\n };\n const remove = (...transportsToRemove) => {\n internalLogger.debug('Removing transports');\n transportsToRemove.forEach((transportToRemove) => {\n internalLogger.debug(`Removing \"${transportToRemove.name}\" transport`);\n const existingTransportIndex = transports.indexOf(transportToRemove);\n if (existingTransportIndex === -1) {\n internalLogger.warn(`Transport \"${transportToRemove.name}\" is not added`);\n return;\n }\n transports.splice(existingTransportIndex, 1);\n });\n };\n const removeBeforeSendHooks = (...beforeSendHooksToRemove) => {\n beforeSendHooks.filter((beforeSendHook) => !beforeSendHooksToRemove.includes(beforeSendHook));\n };\n const unpause = () => {\n internalLogger.debug('Unpausing transports');\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.start();\n paused = false;\n };\n return {\n add,\n addBeforeSendHooks,\n addIgnoreErrorsPatterns,\n getBeforeSendHooks,\n execute,\n isPaused,\n pause,\n remove,\n removeBeforeSendHooks,\n get transports() {\n return [...transports];\n },\n unpause,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { defaultUnpatchedConsole } from './const';\nexport let unpatchedConsole = defaultUnpatchedConsole;\nexport function initializeUnpatchedConsole(config) {\n var _a;\n unpatchedConsole = (_a = config.unpatchedConsole) !== null && _a !== void 0 ? _a : unpatchedConsole;\n return unpatchedConsole;\n}\n//# sourceMappingURL=initialize.js.map","import { initializeAPI } from './api';\nimport { initializeInstrumentations, registerInitialInstrumentations } from './instrumentations';\nimport { initializeInternalLogger } from './internalLogger';\nimport { initializeMetas, registerInitialMetas } from './metas';\nimport { isInternalFaroOnGlobalObject, registerFaro } from './sdk';\nimport { initializeTransports, registerInitialTransports } from './transports';\nimport { initializeUnpatchedConsole } from './unpatchedConsole';\nexport function initializeFaro(config) {\n const unpatchedConsole = initializeUnpatchedConsole(config);\n const internalLogger = initializeInternalLogger(unpatchedConsole, config);\n if (isInternalFaroOnGlobalObject() && !config.isolate) {\n internalLogger.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the \"isolate\" property');\n return undefined;\n }\n internalLogger.debug('Initializing');\n // Initializing the APIs\n const metas = initializeMetas(unpatchedConsole, internalLogger, config);\n const transports = initializeTransports(unpatchedConsole, internalLogger, config, metas);\n const api = initializeAPI(unpatchedConsole, internalLogger, config, metas, transports);\n const instrumentations = initializeInstrumentations(unpatchedConsole, internalLogger, config, metas, transports, api);\n const faro = registerFaro(unpatchedConsole, internalLogger, config, metas, transports, api, instrumentations);\n // make sure Faro is initialized before registering default metas, instrumentations, transports etc.\n registerInitialMetas(faro);\n registerInitialTransports(faro);\n registerInitialInstrumentations(faro);\n return faro;\n}\n//# sourceMappingURL=initialize.js.map","import { isFunction } from '../utils';\nexport function initializeMetas(_unpatchedConsole, internalLogger, _config) {\n let items = [];\n let listeners = [];\n const getValue = () => items.reduce((acc, item) => Object.assign(acc, isFunction(item) ? item() : item), {});\n const notifyListeners = () => {\n if (listeners.length) {\n const value = getValue();\n listeners.forEach((listener) => listener(value));\n }\n };\n const add = (...newItems) => {\n internalLogger.debug('Adding metas\\n', newItems);\n items.push(...newItems);\n notifyListeners();\n };\n const remove = (...itemsToRemove) => {\n internalLogger.debug('Removing metas\\n', itemsToRemove);\n items = items.filter((currentItem) => !itemsToRemove.includes(currentItem));\n notifyListeners();\n };\n const addListener = (listener) => {\n internalLogger.debug('Adding metas listener\\n', listener);\n listeners.push(listener);\n };\n const removeListener = (listener) => {\n internalLogger.debug('Removing metas listener\\n', listener);\n listeners = listeners.filter((currentListener) => currentListener !== listener);\n };\n return {\n add,\n remove,\n addListener,\n removeListener,\n get value() {\n return getValue();\n },\n };\n}\n//# sourceMappingURL=initialize.js.map","export function initializeInstrumentations(unpatchedConsole, internalLogger, config, metas, transports, api) {\n internalLogger.debug('Initializing instrumentations');\n const instrumentations = [];\n const add = (...newInstrumentations) => {\n internalLogger.debug('Adding instrumentations');\n newInstrumentations.forEach((newInstrumentation) => {\n internalLogger.debug(`Adding \"${newInstrumentation.name}\" instrumentation`);\n const exists = instrumentations.some((existingInstrumentation) => existingInstrumentation.name === newInstrumentation.name);\n if (exists) {\n internalLogger.warn(`Instrumentation ${newInstrumentation.name} is already added`);\n return;\n }\n newInstrumentation.unpatchedConsole = unpatchedConsole;\n newInstrumentation.internalLogger = internalLogger;\n newInstrumentation.config = config;\n newInstrumentation.metas = metas;\n newInstrumentation.transports = transports;\n newInstrumentation.api = api;\n instrumentations.push(newInstrumentation);\n newInstrumentation.initialize();\n });\n };\n const remove = (...instrumentationsToRemove) => {\n internalLogger.debug('Removing instrumentations');\n instrumentationsToRemove.forEach((instrumentationToRemove) => {\n var _a, _b;\n internalLogger.debug(`Removing \"${instrumentationToRemove.name}\" instrumentation`);\n const existingInstrumentationIndex = instrumentations.reduce((acc, existingInstrumentation, existingTransportIndex) => {\n if (acc === null && existingInstrumentation.name === instrumentationToRemove.name) {\n return existingTransportIndex;\n }\n return null;\n }, null);\n if (!existingInstrumentationIndex) {\n internalLogger.warn(`Instrumentation \"${instrumentationToRemove.name}\" is not added`);\n return;\n }\n (_b = (_a = instrumentations[existingInstrumentationIndex]).destroy) === null || _b === void 0 ? void 0 : _b.call(_a);\n instrumentations.splice(existingInstrumentationIndex, 1);\n });\n };\n return {\n add,\n get instrumentations() {\n return [...instrumentations];\n },\n remove,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { getBundleId } from '../utils/sourceMaps';\nimport { VERSION } from '../version';\nexport function registerInitialMetas(faro) {\n var _a, _b;\n const initial = {\n sdk: {\n version: VERSION,\n },\n app: {\n bundleId: faro.config.app.name && getBundleId(faro.config.app.name),\n },\n };\n const session = (_a = faro.config.sessionTracking) === null || _a === void 0 ? void 0 : _a.session;\n if (session) {\n faro.api.setSession(session);\n }\n if (faro.config.app) {\n initial.app = Object.assign(Object.assign({}, faro.config.app), initial.app);\n }\n if (faro.config.user) {\n initial.user = faro.config.user;\n }\n if (faro.config.view) {\n initial.view = faro.config.view;\n }\n faro.metas.add(initial, ...((_b = faro.config.metas) !== null && _b !== void 0 ? _b : []));\n}\n//# sourceMappingURL=registerInitial.js.map","import { globalObject } from '../globalObject';\nexport function getBundleId(appName) {\n return globalObject === null || globalObject === void 0 ? void 0 : globalObject[`__faroBundleId_${appName}`];\n}\n//# sourceMappingURL=sourceMaps.js.map","export function registerInitialTransports(faro) {\n faro.transports.add(...faro.config.transports);\n faro.transports.addBeforeSendHooks(faro.config.beforeSend);\n faro.transports.addIgnoreErrorsPatterns(faro.config.ignoreErrors);\n}\n//# sourceMappingURL=registerInitial.js.map","export function registerInitialInstrumentations(faro) {\n faro.instrumentations.add(...faro.config.instrumentations);\n}\n//# sourceMappingURL=registerInitial.js.map","export const defaultGlobalObjectKey = 'faro';\nexport const defaultBatchingConfig = {\n enabled: true,\n sendTimeout: 250,\n itemLimit: 50,\n};\n//# sourceMappingURL=const.js.map","export const defaultEventDomain = 'browser';\n//# sourceMappingURL=consts.js.map","export const newLineString = '\\n';\nexport const evalString = 'eval';\nexport const unknownSymbolString = '?';\nexport const atString = '@';\nexport const webkitLineRegex = /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nexport const webkitEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nexport const webkitEvalString = 'eval';\nexport const webkitAddressAtString = 'address at ';\nexport const webkitAddressAtStringLength = webkitAddressAtString.length;\nexport const firefoxLineRegex = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nexport const firefoxEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nexport const firefoxEvalString = ' > eval';\nexport const safariExtensionString = 'safari-extension';\nexport const safariWebExtensionString = 'safari-web-extension';\nexport const reactMinifiedRegex = /Minified React error #\\d+;/i;\n//# sourceMappingURL=const.js.map","import { unknownSymbolString } from './const';\nexport function buildStackFrame(filename, func, lineno, colno) {\n const stackFrame = {\n filename: filename || document.location.href,\n function: func || unknownSymbolString,\n };\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n return stackFrame;\n}\n//# sourceMappingURL=buildStackFrame.js.map","import { atString, safariExtensionString, safariWebExtensionString } from './const';\nexport function getDataFromSafariExtensions(func, filename) {\n const isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && (func === null || func === void 0 ? void 0 : func.includes(safariWebExtensionString));\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n return [\n (func === null || func === void 0 ? void 0 : func.includes(atString)) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n//# sourceMappingURL=getDataFromSafariExtensions.js.map","import { isNumber } from '@grafana/faro-core';\nimport { buildStackFrame } from './buildStackFrame';\nimport { evalString, firefoxEvalRegex, firefoxEvalString, firefoxLineRegex, newLineString, reactMinifiedRegex, webkitAddressAtString, webkitAddressAtStringLength, webkitEvalRegex, webkitEvalString, webkitLineRegex, } from './const';\nimport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\nexport function getStackFramesFromError(error) {\n let lines = [];\n if (error.stacktrace) {\n lines = error.stacktrace.split(newLineString).filter((_line, idx) => idx % 2 === 0);\n }\n else if (error.stack) {\n lines = error.stack.split(newLineString);\n }\n const stackFrames = lines.reduce((acc, line, idx) => {\n let parts;\n let func;\n let filename;\n let lineno;\n let colno;\n if ((parts = webkitLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[2];\n lineno = parts[3];\n colno = parts[4];\n if (filename === null || filename === void 0 ? void 0 : filename.startsWith(webkitEvalString)) {\n const submatch = webkitEvalRegex.exec(filename);\n if (submatch) {\n filename = submatch[1];\n lineno = submatch[2];\n colno = submatch[3];\n }\n }\n filename = (filename === null || filename === void 0 ? void 0 : filename.startsWith(webkitAddressAtString))\n ? filename.substring(webkitAddressAtStringLength)\n : filename;\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n else if ((parts = firefoxLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[3];\n lineno = parts[4];\n colno = parts[5];\n if (!!filename && filename.includes(firefoxEvalString)) {\n const submatch = firefoxEvalRegex.exec(filename);\n if (submatch) {\n func = func || evalString;\n filename = submatch[1];\n lineno = submatch[2];\n }\n }\n else if (idx === 0 && !colno && isNumber(error.columnNumber)) {\n colno = String(error.columnNumber + 1);\n }\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n if (filename || func) {\n acc.push(buildStackFrame(filename, func, lineno ? Number(lineno) : undefined, colno ? Number(colno) : undefined));\n }\n return acc;\n }, []);\n if (reactMinifiedRegex.test(error.message)) {\n return stackFrames.slice(1);\n }\n return stackFrames;\n}\n//# sourceMappingURL=getStackFramesFromError.js.map","import { getStackFramesFromError } from './getStackFramesFromError';\nexport function parseStacktrace(error) {\n return {\n frames: getStackFramesFromError(error),\n };\n}\n//# sourceMappingURL=parseStacktrace.js.map","export const STORAGE_KEY = 'com.grafana.faro.session';\nexport const SESSION_EXPIRATION_TIME = 4 * 60 * 60 * 1000; // hrs\nexport const SESSION_INACTIVITY_TIME = 15 * 60 * 1000; // minutes\nexport const STORAGE_UPDATE_DELAY = 1 * 1000; // seconds\n/**\n * @deprecated MAX_SESSION_PERSISTENCE_TIME_BUFFER is not used anymore. The constant will be removed in the future\n */\nexport const MAX_SESSION_PERSISTENCE_TIME_BUFFER = 1 * 60 * 1000;\nexport const MAX_SESSION_PERSISTENCE_TIME = SESSION_INACTIVITY_TIME;\nexport const defaultSessionTrackingConfig = {\n enabled: true,\n persistent: false,\n maxSessionPersistenceTime: MAX_SESSION_PERSISTENCE_TIME,\n};\n//# sourceMappingURL=sessionConstants.js.map","export const unknownString = 'unknown';\n//# sourceMappingURL=consts.js.map","import { browserMeta } from './browser';\nimport { pageMeta } from './page';\nexport const defaultMetas = [browserMeta, pageMeta];\n//# sourceMappingURL=const.js.map","import { UAParser } from 'ua-parser-js';\nimport { unknownString } from '@grafana/faro-core';\nexport const browserMeta = () => {\n const parser = new UAParser();\n const { name, version } = parser.getBrowser();\n const { name: osName, version: osVersion } = parser.getOS();\n const userAgent = parser.getUA();\n const language = navigator.language;\n const mobile = navigator.userAgent.includes('Mobi');\n const brands = getBrands();\n return {\n browser: {\n name: name !== null && name !== void 0 ? name : unknownString,\n version: version !== null && version !== void 0 ? version : unknownString,\n os: `${osName !== null && osName !== void 0 ? osName : unknownString} ${osVersion !== null && osVersion !== void 0 ? osVersion : unknownString}`,\n userAgent: userAgent !== null && userAgent !== void 0 ? userAgent : unknownString,\n language: language !== null && language !== void 0 ? language : unknownString,\n mobile,\n brands: brands !== null && brands !== void 0 ? brands : unknownString,\n viewportWidth: `${window.innerWidth}`,\n viewportHeight: `${window.innerHeight}`,\n },\n };\n function getBrands() {\n if (!name || !version) {\n return undefined;\n }\n if ('userAgentData' in navigator && navigator.userAgentData) {\n // userAgentData in experimental (only Chrome supports it) thus TS does not ship the respective type declarations\n return navigator.userAgentData.brands;\n }\n return undefined;\n }\n};\n//# sourceMappingURL=meta.js.map","export const pageMeta = () => ({\n page: {\n url: location.href,\n },\n});\n//# sourceMappingURL=meta.js.map","export const k6Meta = () => {\n const k6Properties = window.k6;\n return {\n k6: Object.assign({ \n // we only add the k6 meta if Faro is running inside a k6 environment, so this is always true\n isK6Browser: true }, ((k6Properties === null || k6Properties === void 0 ? void 0 : k6Properties.testRunId) && { testRunId: k6Properties === null || k6Properties === void 0 ? void 0 : k6Properties.testRunId })),\n };\n};\n//# sourceMappingURL=meta.js.map","import { defaultInternalLogger } from '../internalLogger';\nimport { defaultUnpatchedConsole } from '../unpatchedConsole';\nexport class BaseExtension {\n constructor() {\n this.unpatchedConsole = defaultUnpatchedConsole;\n this.internalLogger = defaultInternalLogger;\n this.config = {};\n this.metas = {};\n }\n logDebug(...args) {\n this.internalLogger.debug(`${this.name}\\n`, ...args);\n }\n logInfo(...args) {\n this.internalLogger.info(`${this.name}\\n`, ...args);\n }\n logWarn(...args) {\n this.internalLogger.warn(`${this.name}\\n`, ...args);\n }\n logError(...args) {\n this.internalLogger.error(`${this.name}\\n`, ...args);\n }\n}\n//# sourceMappingURL=baseExtension.js.map","import { BaseExtension } from '../extensions';\nexport class BaseTransport extends BaseExtension {\n isBatched() {\n return false;\n }\n getIgnoreUrls() {\n return [];\n }\n}\n//# sourceMappingURL=base.js.map","import { TransportItemType, transportItemTypeToBodyKey } from './const';\nexport function mergeResourceSpans(traces, resourceSpans) {\n var _a, _b;\n if (resourceSpans === undefined) {\n return traces;\n }\n if (traces === undefined) {\n return {\n resourceSpans,\n };\n }\n const currentResource = (_a = traces.resourceSpans) === null || _a === void 0 ? void 0 : _a[0];\n if (currentResource === undefined) {\n return traces;\n }\n const currentSpans = (currentResource === null || currentResource === void 0 ? void 0 : currentResource.scopeSpans) || [];\n const newSpans = ((_b = resourceSpans === null || resourceSpans === void 0 ? void 0 : resourceSpans[0]) === null || _b === void 0 ? void 0 : _b.scopeSpans) || [];\n return Object.assign(Object.assign({}, traces), { resourceSpans: [\n Object.assign(Object.assign({}, currentResource), { scopeSpans: [...currentSpans, ...newSpans] }),\n ] });\n}\nexport function getTransportBody(item) {\n let body = {\n meta: {},\n };\n if (item[0] !== undefined) {\n body.meta = item[0].meta;\n }\n item.forEach((currentItem) => {\n switch (currentItem.type) {\n case TransportItemType.LOG:\n case TransportItemType.EVENT:\n case TransportItemType.EXCEPTION:\n case TransportItemType.MEASUREMENT:\n const bk = transportItemTypeToBodyKey[currentItem.type];\n const signals = body[bk];\n body = Object.assign(Object.assign({}, body), { [bk]: signals === undefined ? [currentItem.payload] : [...signals, currentItem.payload] });\n break;\n case TransportItemType.TRACE:\n body = Object.assign(Object.assign({}, body), { traces: mergeResourceSpans(body.traces, currentItem.payload.resourceSpans) });\n break;\n }\n });\n return body;\n}\n//# sourceMappingURL=utils.js.map","/**\n * Tail based throttle which caches the args of the last call and updates\n */\nexport function throttle(callback, delay) {\n let pause = false;\n let lastPending;\n const timeoutBehavior = () => {\n if (lastPending == null) {\n pause = false;\n return;\n }\n callback(...lastPending);\n lastPending = null;\n setTimeout(timeoutBehavior, delay);\n };\n return (...args) => {\n if (pause) {\n lastPending = args;\n return;\n }\n callback(...args);\n pause = true;\n setTimeout(timeoutBehavior, delay);\n };\n}\n//# sourceMappingURL=throttle.js.map","import { faro } from '@grafana/faro-core';\nexport const webStorageType = {\n session: 'sessionStorage',\n local: 'localStorage',\n};\n// TODO: remove default storage type from all function\n/**\n * Check if selected web storage mechanism is available.\n * @param type storage mechanism to test availability for.\n * @returns\n */\nexport function isWebStorageAvailable(type) {\n var _a;\n try {\n let storage;\n storage = window[type];\n const testItem = '__faro_storage_test__';\n storage.setItem(testItem, testItem);\n storage.removeItem(testItem);\n return true;\n }\n catch (error) {\n // the above can throw\n (_a = faro.internalLogger) === null || _a === void 0 ? void 0 : _a.info(`Web storage of type ${type} is not available. Reason: ${error}`);\n return false;\n }\n}\n/**\n * Get item from SessionStorage or LocalStorage.\n * @param key: the item key.\n * @param webStorageMechanism: wether the item shall be received form local storage or session storage. Defaults to local storage.\n */\nexport function getItem(key, webStorageMechanism) {\n if (isWebStorageTypeAvailable(webStorageMechanism)) {\n return window[webStorageMechanism].getItem(key);\n }\n return null;\n}\n/**\n * Store item in SessionStorage or LocalStorage.\n * @param key: the item key.\n * @param value: the item data.\n * @param webStorageMechanism: wether the item shall be received form local storage or session storage. Defaults to local storage.\n */\nexport function setItem(key, value, webStorageMechanism) {\n if (isWebStorageTypeAvailable(webStorageMechanism)) {\n try {\n window[webStorageMechanism].setItem(key, value);\n }\n catch (error) {\n // do nothing\n }\n }\n}\n/**\n * Remove item from SessionStorage or LocalStorage.\n * @param key: the item key.\n * @param webStorageMechanism: wether the item shall be received form local storage or session storage. Defaults to local storage.\n */\nexport function removeItem(key, webStorageMechanism) {\n if (isWebStorageTypeAvailable(webStorageMechanism)) {\n window[webStorageMechanism].removeItem(key);\n }\n}\nexport const isLocalStorageAvailable = isWebStorageAvailable(webStorageType.local);\nexport const isSessionStorageAvailable = isWebStorageAvailable(webStorageType.session);\nfunction isWebStorageTypeAvailable(webStorageMechanism) {\n if (webStorageMechanism === webStorageType.local) {\n return isLocalStorageAvailable;\n }\n if (webStorageMechanism === webStorageType.session) {\n return isSessionStorageAvailable;\n }\n return false;\n}\n//# sourceMappingURL=webStorage.js.map","import { faro } from '@grafana/faro-core';\nexport function isSampled() {\n var _a, _b, _c;\n const sendAllSignals = 1;\n const sessionTracking = faro.config.sessionTracking;\n let samplingRate = (_c = (_b = (_a = sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.sampler) === null || _a === void 0 ? void 0 : _a.call(sessionTracking, { metas: faro.metas.value })) !== null && _b !== void 0 ? _b : sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.samplingRate) !== null && _c !== void 0 ? _c : sendAllSignals;\n if (typeof samplingRate !== 'number') {\n const sendNoSignals = 0;\n samplingRate = sendNoSignals;\n }\n return Math.random() < samplingRate;\n}\n//# sourceMappingURL=sampling.js.map","const alphabet = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789';\nexport function genShortID(length = 10) {\n return Array.from(Array(length))\n .map(() => alphabet[Math.floor(Math.random() * alphabet.length)])\n .join('');\n}\n//# sourceMappingURL=shortId.js.map","import { dateNow, faro, genShortID } from '@grafana/faro-core';\nimport { isLocalStorageAvailable, isSessionStorageAvailable } from '../../../utils';\nimport { isSampled } from './sampling';\nimport { SESSION_EXPIRATION_TIME, SESSION_INACTIVITY_TIME } from './sessionConstants';\nexport function createUserSessionObject({ sessionId, started, lastActivity, isSampled = true, } = {}) {\n var _a, _b;\n const now = dateNow();\n const generateSessionId = (_b = (_a = faro.config) === null || _a === void 0 ? void 0 : _a.sessionTracking) === null || _b === void 0 ? void 0 : _b.generateSessionId;\n if (sessionId == null) {\n sessionId = typeof generateSessionId === 'function' ? generateSessionId() : genShortID();\n }\n return {\n sessionId,\n lastActivity: lastActivity !== null && lastActivity !== void 0 ? lastActivity : now,\n started: started !== null && started !== void 0 ? started : now,\n isSampled: isSampled,\n };\n}\nexport function isUserSessionValid(session) {\n if (session == null) {\n return false;\n }\n const now = dateNow();\n const lifetimeValid = now - session.started < SESSION_EXPIRATION_TIME;\n if (!lifetimeValid) {\n return false;\n }\n const inactivityPeriodValid = now - session.lastActivity < SESSION_INACTIVITY_TIME;\n return inactivityPeriodValid;\n}\nexport function getUserSessionUpdater({ fetchUserSession, storeUserSession, }) {\n return function updateSession({ forceSessionExtend } = { forceSessionExtend: false }) {\n var _a, _b, _c;\n if (!fetchUserSession || !storeUserSession) {\n return;\n }\n const sessionTrackingConfig = faro.config.sessionTracking;\n const isPersistentSessions = sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.persistent;\n if ((isPersistentSessions && !isLocalStorageAvailable) || (!isPersistentSessions && !isSessionStorageAvailable)) {\n return;\n }\n const sessionFromStorage = fetchUserSession();\n if (forceSessionExtend === false && isUserSessionValid(sessionFromStorage)) {\n storeUserSession(Object.assign(Object.assign({}, sessionFromStorage), { lastActivity: dateNow() }));\n }\n else {\n let newSession = addSessionMetadataToNextSession(createUserSessionObject({ isSampled: isSampled() }), sessionFromStorage);\n storeUserSession(newSession);\n (_a = faro.api) === null || _a === void 0 ? void 0 : _a.setSession(newSession.sessionMeta);\n (_b = sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.onSessionChange) === null || _b === void 0 ? void 0 : _b.call(sessionTrackingConfig, (_c = sessionFromStorage === null || sessionFromStorage === void 0 ? void 0 : sessionFromStorage.sessionMeta) !== null && _c !== void 0 ? _c : null, newSession.sessionMeta);\n }\n };\n}\nexport function addSessionMetadataToNextSession(newSession, previousSession) {\n var _a, _b, _c, _d;\n const sessionWithMeta = Object.assign(Object.assign({}, newSession), { sessionMeta: {\n id: newSession.sessionId,\n attributes: Object.assign(Object.assign(Object.assign(Object.assign({}, (_b = (_a = faro.config.sessionTracking) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.attributes), ((_d = (_c = faro.metas.value.session) === null || _c === void 0 ? void 0 : _c.attributes) !== null && _d !== void 0 ? _d : {})), (previousSession != null ? { previousSession: previousSession.sessionId } : {})), { isSampled: newSession.isSampled.toString() }),\n } });\n return sessionWithMeta;\n}\n//# sourceMappingURL=sessionManagerUtils.js.map","import { faro } from '@grafana/faro-core';\nimport { throttle } from '../../../utils';\nimport { getItem, removeItem, setItem, webStorageType } from '../../../utils/webStorage';\nimport { isSampled } from './sampling';\nimport { STORAGE_KEY, STORAGE_UPDATE_DELAY } from './sessionConstants';\nimport { addSessionMetadataToNextSession, createUserSessionObject, getUserSessionUpdater } from './sessionManagerUtils';\nexport class PersistentSessionsManager {\n constructor() {\n this.updateSession = throttle(() => this.updateUserSession(), STORAGE_UPDATE_DELAY);\n this.updateUserSession = getUserSessionUpdater({\n fetchUserSession: PersistentSessionsManager.fetchUserSession,\n storeUserSession: PersistentSessionsManager.storeUserSession,\n });\n this.init();\n }\n static removeUserSession() {\n removeItem(STORAGE_KEY, PersistentSessionsManager.storageTypeLocal);\n }\n static storeUserSession(session) {\n setItem(STORAGE_KEY, JSON.stringify(session), PersistentSessionsManager.storageTypeLocal);\n }\n static fetchUserSession() {\n const storedSession = getItem(STORAGE_KEY, PersistentSessionsManager.storageTypeLocal);\n if (storedSession) {\n return JSON.parse(storedSession);\n }\n return null;\n }\n init() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.updateSession();\n }\n });\n // Users can call the setSession() method, so we need to sync this with the local storage session\n faro.metas.addListener(function syncSessionIfChangedExternally(meta) {\n const session = meta.session;\n const sessionFromLocalStorage = PersistentSessionsManager.fetchUserSession();\n if (session && session.id !== (sessionFromLocalStorage === null || sessionFromLocalStorage === void 0 ? void 0 : sessionFromLocalStorage.sessionId)) {\n const userSession = addSessionMetadataToNextSession(createUserSessionObject({ sessionId: session.id, isSampled: isSampled() }), sessionFromLocalStorage);\n PersistentSessionsManager.storeUserSession(userSession);\n faro.api.setSession(userSession.sessionMeta);\n }\n });\n }\n}\nPersistentSessionsManager.storageTypeLocal = webStorageType.local;\n//# sourceMappingURL=PersistentSessionsManager.js.map","import { faro } from '@grafana/faro-core';\nimport { throttle } from '../../../utils';\nimport { getItem, removeItem, setItem, webStorageType } from '../../../utils/webStorage';\nimport { isSampled } from './sampling';\nimport { STORAGE_KEY, STORAGE_UPDATE_DELAY } from './sessionConstants';\nimport { addSessionMetadataToNextSession, createUserSessionObject, getUserSessionUpdater } from './sessionManagerUtils';\nexport class VolatileSessionsManager {\n constructor() {\n this.updateSession = throttle(() => this.updateUserSession(), STORAGE_UPDATE_DELAY);\n this.updateUserSession = getUserSessionUpdater({\n fetchUserSession: VolatileSessionsManager.fetchUserSession,\n storeUserSession: VolatileSessionsManager.storeUserSession,\n });\n this.init();\n }\n static removeUserSession() {\n removeItem(STORAGE_KEY, VolatileSessionsManager.storageTypeSession);\n }\n static storeUserSession(session) {\n setItem(STORAGE_KEY, JSON.stringify(session), VolatileSessionsManager.storageTypeSession);\n }\n static fetchUserSession() {\n const storedSession = getItem(STORAGE_KEY, VolatileSessionsManager.storageTypeSession);\n if (storedSession) {\n return JSON.parse(storedSession);\n }\n return null;\n }\n init() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.updateSession();\n }\n });\n // Users can call the setSession() method, so we need to sync this with the local storage session\n faro.metas.addListener(function syncSessionIfChangedExternally(meta) {\n const session = meta.session;\n const sessionFromSessionStorage = VolatileSessionsManager.fetchUserSession();\n if (session && session.id !== (sessionFromSessionStorage === null || sessionFromSessionStorage === void 0 ? void 0 : sessionFromSessionStorage.sessionId)) {\n const userSession = addSessionMetadataToNextSession(createUserSessionObject({ sessionId: session.id, isSampled: isSampled() }), sessionFromSessionStorage);\n VolatileSessionsManager.storeUserSession(userSession);\n faro.api.setSession(userSession.sessionMeta);\n }\n });\n }\n}\nVolatileSessionsManager.storageTypeSession = webStorageType.session;\n//# sourceMappingURL=VolatileSessionManager.js.map","import { PersistentSessionsManager } from './PersistentSessionsManager';\nimport { VolatileSessionsManager } from './VolatileSessionManager';\nexport function getSessionManagerByConfig(sessionTrackingConfig) {\n return (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.persistent) ? PersistentSessionsManager : VolatileSessionsManager;\n}\n//# sourceMappingURL=getSessionManagerByConfig.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { BaseTransport, createPromiseBuffer, getTransportBody, noop, VERSION, } from '@grafana/faro-core';\nimport { getSessionManagerByConfig } from '../../instrumentations/session/sessionManager';\nimport { getUserSessionUpdater } from '../../instrumentations/session/sessionManager/sessionManagerUtils';\nconst DEFAULT_BUFFER_SIZE = 30;\nconst DEFAULT_CONCURRENCY = 5; // chrome supports 10 total, firefox 17\nconst DEFAULT_RATE_LIMIT_BACKOFF_MS = 5000;\nconst BEACON_BODY_SIZE_LIMIT = 60000;\nconst TOO_MANY_REQUESTS = 429;\nconst ACCEPTED = 202;\nexport class FetchTransport extends BaseTransport {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n this.options = options;\n this.name = '@grafana/faro-web-sdk:transport-fetch';\n this.version = VERSION;\n this.disabledUntil = new Date();\n this.rateLimitBackoffMs = (_a = options.defaultRateLimitBackoffMs) !== null && _a !== void 0 ? _a : DEFAULT_RATE_LIMIT_BACKOFF_MS;\n this.getNow = (_b = options.getNow) !== null && _b !== void 0 ? _b : (() => Date.now());\n this.promiseBuffer = createPromiseBuffer({\n size: (_c = options.bufferSize) !== null && _c !== void 0 ? _c : DEFAULT_BUFFER_SIZE,\n concurrency: (_d = options.concurrency) !== null && _d !== void 0 ? _d : DEFAULT_CONCURRENCY,\n });\n }\n send(items) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (this.disabledUntil > new Date(this.getNow())) {\n this.logWarn(`Dropping transport item due to too many requests. Backoff until ${this.disabledUntil}`);\n return Promise.resolve();\n }\n yield this.promiseBuffer.add(() => {\n const body = JSON.stringify(getTransportBody(items));\n const { url, requestOptions, apiKey } = this.options;\n const _a = requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}, { headers } = _a, restOfRequestOptions = __rest(_a, [\"headers\"]);\n let sessionId;\n const sessionMeta = this.metas.value.session;\n if (sessionMeta != null) {\n sessionId = sessionMeta.id;\n }\n return fetch(url, Object.assign({ method: 'POST', headers: Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (headers !== null && headers !== void 0 ? headers : {})), (apiKey ? { 'x-api-key': apiKey } : {})), (sessionId ? { 'x-faro-session-id': sessionId } : {})), body, keepalive: body.length <= BEACON_BODY_SIZE_LIMIT }, (restOfRequestOptions !== null && restOfRequestOptions !== void 0 ? restOfRequestOptions : {})))\n .then((response) => __awaiter(this, void 0, void 0, function* () {\n if (response.status === ACCEPTED) {\n const sessionExpired = response.headers.get('X-Faro-Session-Status') === 'invalid';\n if (sessionExpired) {\n this.extendFaroSession(this.config, this.logDebug);\n }\n }\n if (response.status === TOO_MANY_REQUESTS) {\n this.disabledUntil = this.getRetryAfterDate(response);\n this.logWarn(`Too many requests, backing off until ${this.disabledUntil}`);\n }\n // read the body so the connection can be closed\n response.text().catch(noop);\n return response;\n }))\n .catch((err) => {\n this.logError('Failed sending payload to the receiver\\n', JSON.parse(body), err);\n });\n });\n }\n catch (err) {\n this.logError(err);\n }\n });\n }\n getIgnoreUrls() {\n var _a;\n return [this.options.url].concat((_a = this.config.ignoreUrls) !== null && _a !== void 0 ? _a : []);\n }\n isBatched() {\n return true;\n }\n getRetryAfterDate(response) {\n const now = this.getNow();\n const retryAfterHeader = response.headers.get('Retry-After');\n if (retryAfterHeader) {\n const delay = Number(retryAfterHeader);\n if (!isNaN(delay)) {\n return new Date(delay * 1000 + now);\n }\n const date = Date.parse(retryAfterHeader);\n if (!isNaN(date)) {\n return new Date(date);\n }\n }\n return new Date(now + this.rateLimitBackoffMs);\n }\n extendFaroSession(config, logDebug) {\n const SessionExpiredString = `Session expired`;\n const sessionTrackingConfig = config.sessionTracking;\n if (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.enabled) {\n const { fetchUserSession, storeUserSession } = getSessionManagerByConfig(sessionTrackingConfig);\n getUserSessionUpdater({ fetchUserSession, storeUserSession })({ forceSessionExtend: true });\n logDebug(`${SessionExpiredString} created new session.`);\n }\n else {\n logDebug(`${SessionExpiredString}.`);\n }\n }\n}\n//# sourceMappingURL=transport.js.map","export function createPromiseBuffer(options) {\n const { size, concurrency } = options;\n const buffer = []; // pending, not-yet-started tasks\n let inProgress = 0; // counter for tasks currently in progress\n const work = () => {\n // if there's space for a task and buffer is not empty,\n // take one task from buffer and run it\n if (inProgress < concurrency && buffer.length) {\n const { producer, resolve, reject } = buffer.shift();\n inProgress++;\n producer().then((result) => {\n inProgress--;\n work();\n resolve(result);\n }, (reason) => {\n inProgress--;\n work();\n reject(reason);\n });\n }\n };\n const add = (promiseProducer) => {\n if (buffer.length + inProgress >= size) {\n throw new Error('Task buffer full');\n }\n return new Promise((resolve, reject) => {\n buffer.push({\n producer: promiseProducer,\n resolve,\n reject,\n });\n work();\n });\n };\n return {\n add,\n };\n}\n//# sourceMappingURL=promiseBuffer.js.map","import { BaseExtension } from '../extensions';\nexport class BaseInstrumentation extends BaseExtension {\n constructor() {\n super(...arguments);\n this.api = {};\n this.transports = {};\n }\n}\n//# sourceMappingURL=base.js.map","export const primitiveUnhandledValue = 'Non-Error promise rejection captured with value:';\nexport const primitiveUnhandledType = 'UnhandledRejection';\nexport const domErrorType = 'DOMError';\nexport const domExceptionType = 'DOMException';\nexport const objectEventValue = 'Non-Error exception captured with keys:';\nexport const unknownSymbolString = '?';\nexport const valueTypeRegex = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n//# sourceMappingURL=const.js.map","import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject } from '@grafana/faro-core';\nimport { domErrorType, domExceptionType, objectEventValue } from './const';\nimport { getStackFramesFromError } from './stackFrames';\nexport function getErrorDetails(evt) {\n let value;\n let type;\n let stackFrames = [];\n let isDomErrorRes;\n let isEventRes;\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n }\n else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n type = name !== null && name !== void 0 ? name : (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n }\n else if (isError(evt)) {\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n }\n else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n return [value, type, stackFrames];\n}\n//# sourceMappingURL=getErrorDetails.js.map","import { isString } from '@grafana/faro-core';\nimport { unknownSymbolString } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame } from './stackFrames';\nexport function registerOnerror(api) {\n const oldOnerror = window.onerror;\n window.onerror = (...args) => {\n try {\n const [evt, source, lineno, colno, error] = args;\n let value;\n let type;\n let stackFrames = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownSymbolString, lineno, colno);\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error !== null && error !== void 0 ? error : evt));\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n }\n else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n }\n finally {\n oldOnerror === null || oldOnerror === void 0 ? void 0 : oldOnerror.apply(window, args);\n }\n };\n}\n//# sourceMappingURL=registerOnerror.js.map","import { defaultExceptionType } from '@grafana/faro-core';\nimport { valueTypeRegex } from './const';\nexport function getValueAndTypeFromMessage(message) {\n var _a, _b;\n const groups = message.match(valueTypeRegex);\n const type = (_a = groups === null || groups === void 0 ? void 0 : groups[1]) !== null && _a !== void 0 ? _a : defaultExceptionType;\n const value = (_b = groups === null || groups === void 0 ? void 0 : groups[2]) !== null && _b !== void 0 ? _b : message;\n return [value, type];\n}\n//# sourceMappingURL=getValueAndTypeFromMessage.js.map","import { isPrimitive } from '@grafana/faro-core';\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nexport function registerOnunhandledrejection(api) {\n window.addEventListener('unhandledrejection', (evt) => {\n var _a, _b;\n let error = evt;\n if (error.reason) {\n error = evt.reason;\n }\n else if ((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.reason) {\n error = (_b = evt.detail) === null || _b === void 0 ? void 0 : _b.reason;\n }\n let value;\n let type;\n let stackFrames = [];\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n }\n else {\n [value, type, stackFrames] = getErrorDetails(error);\n }\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n });\n}\n//# sourceMappingURL=registerOnunhandledrejection.js.map","import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-errors';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing');\n registerOnerror(this.api);\n registerOnunhandledrejection(this.api);\n }\n}\n//# sourceMappingURL=instrumentation.js.map","var e,n,t,r,i,o=-1,a=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(o=n.timeStamp,e(n))}),!0)},c=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTimer.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},F=[],D=new Map,x=0,R=function(){return(e?A:performance.interactionCount||0)-x},B=[],H=function(e){if(B.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=F[F.length-1],t=D.get(e.interactionId);if(t||F.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};D.set(r.id,r),F.push(r)}F.sort((function(e,n){return n.latency-e.latency})),F.length>10&&F.splice(10).forEach((function(e){return D.delete(e.id)}))}}},q=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},O=[200,500],N=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;k();var r,i=f(\"INP\"),o=function(e){q((function(){e.forEach(H);var n,t=(n=Math.min(F.length-1,Math.floor(R()/50)),F[n]);t&&t.latency!==i.value&&(i.value=t.latency,i.entries=t.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,O,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){x=0,F.length=0,D.clear(),i=f(\"INP\"),r=d(e,i,O,n.reportAllChanges)})))})))},j=[2500,4e3],_={},z=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){V(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,Q),removeEventListener(\"pointercancel\",r,Q)};addEventListener(\"pointerup\",t,Q),addEventListener(\"pointercancel\",r,Q)}(n,e):V(n,e)}},Y=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,X,Q)}))},Z=[100,300],$=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime {\n executor((metric) => {\n this.pushMeasurement({\n type: 'web-vitals',\n values: {\n [indicator]: metric.value,\n },\n });\n });\n });\n }\n}\nWebVitalsBasic.mapping = {\n cls: onCLS,\n fcp: onFCP,\n fid: onFID,\n inp: onINP,\n lcp: onLCP,\n ttfb: onTTFB,\n};\n//# sourceMappingURL=webVitalsBasic.js.map","var t,e,n,r=function(){var t=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(t&&t.responseStart>0&&t.responseStart(e||100)-1)return n||i;if(n=n?i+\">\"+n:i,r.id)break;t=r.parentNode}}catch(t){}return n},c=-1,u=function(){return c},s=function(t){addEventListener(\"pageshow\",(function(e){e.persisted&&(c=e.timeStamp,t(e))}),!0)},f=function(){var t=r();return t&&t.activationStart||0},d=function(t,e){var n=r(),i=\"navigate\";u()>=0?i=\"back-forward-cache\":n&&(document.prerendering||f()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":n.type&&(i=n.type.replace(/_/g,\"-\")));return{name:t,value:void 0===e?-1:e,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},l=function(t,e,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var r=new PerformanceObserver((function(t){Promise.resolve().then((function(){e(t.getEntries())}))}));return r.observe(Object.assign({type:t,buffered:!0},n||{})),r}}catch(t){}},m=function(t,e,n,r){var i,a;return function(o){e.value>=0&&(o||r)&&((a=e.value-(i||0))||void 0===i)&&(i=e.value,e.delta=a,e.rating=function(t,e){return t>e[1]?\"poor\":t>e[0]?\"needs-improvement\":\"good\"}(e.value,n),t(e))}},p=function(t){requestAnimationFrame((function(){return requestAnimationFrame((function(){return t()}))}))},v=function(t){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&t()}))},g=function(t){var e=!1;return function(){e||(t(),e=!0)}},h=-1,T=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},y=function(t){\"hidden\"===document.visibilityState&&h>-1&&(h=\"visibilitychange\"===t.type?t.timeStamp:0,S())},E=function(){addEventListener(\"visibilitychange\",y,!0),addEventListener(\"prerenderingchange\",y,!0)},S=function(){removeEventListener(\"visibilitychange\",y,!0),removeEventListener(\"prerenderingchange\",y,!0)},b=function(){return h<0&&(h=T(),E(),s((function(){setTimeout((function(){h=T(),E()}),0)}))),{get firstHiddenTime(){return h}}},L=function(t){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return t()}),!0):t()},C=[1800,3e3],M=function(t,e){e=e||{},L((function(){var n,r=b(),i=d(\"FCP\"),a=l(\"paint\",(function(t){t.forEach((function(t){\"first-contentful-paint\"===t.name&&(a.disconnect(),t.startTimer.value&&(r.value=i,r.entries=a,n())},c=l(\"layout-shift\",o);c&&(n=m(t,r,D,e.reportAllChanges),v((function(){o(c.takeRecords()),n(!0)})),s((function(){i=0,r=d(\"CLS\",0),n=m(t,r,D,e.reportAllChanges),p((function(){return n()}))})),setTimeout(n,0))})))}((function(e){var n=function(t){var e,n={};if(t.entries.length){var r=t.entries.reduce((function(t,e){return t&&t.value>e.value?t:e}));if(r&&r.sources&&r.sources.length){var a=(e=r.sources).find((function(t){return t.node&&1===t.node.nodeType}))||e[0];a&&(n={largestShiftTarget:o(a.node),largestShiftTime:r.startTime,largestShiftValue:r.value,largestShiftSource:a,largestShiftEntry:r,loadState:i(r.startTime)})}}return Object.assign(t,{attribution:n})}(e);t(n)}),e)},x=function(t,e){M((function(e){var n=function(t){var e={timeToFirstByte:0,firstByteToFCP:t.value,loadState:i(u())};if(t.entries.length){var n=r(),a=t.entries[t.entries.length-1];if(n){var o=n.activationStart||0,c=Math.max(0,n.responseStart-o);e={timeToFirstByte:c,firstByteToFCP:t.value-c,loadState:i(t.entries[0].startTime),navigationEntry:n,fcpEntry:a}}}return Object.assign(t,{attribution:e})}(e);t(n)}),e)},I=0,k=1/0,A=0,F=function(t){t.forEach((function(t){t.interactionId&&(k=Math.min(k,t.interactionId),A=Math.max(A,t.interactionId),I=A?(A-k)/7+1:0)}))},P=function(){\"interactionCount\"in performance||t||(t=l(\"event\",F,{type:\"event\",buffered:!0,durationThreshold:0}))},B=[],O=new Map,R=0,j=function(){return(t?I:performance.interactionCount||0)-R},q=[],H=function(t){if(q.forEach((function(e){return e(t)})),t.interactionId||\"first-input\"===t.entryType){var e=B[B.length-1],n=O.get(t.interactionId);if(n||B.length<10||t.duration>e.latency){if(n)t.duration>n.latency?(n.entries=[t],n.latency=t.duration):t.duration===n.latency&&t.startTime===n.entries[0].startTime&&n.entries.push(t);else{var r={id:t.interactionId,latency:t.duration,entries:[t]};O.set(r.id,r),B.push(r)}B.sort((function(t,e){return e.latency-t.latency})),B.length>10&&B.splice(10).forEach((function(t){return O.delete(t.id)}))}}},N=function(t){var e=self.requestIdleCallback||self.setTimeout,n=-1;return t=g(t),\"hidden\"===document.visibilityState?t():(n=e(t),v(t)),n},W=[200,500],z=function(t,e){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(e=e||{},L((function(){var n;P();var r,i=d(\"INP\"),a=function(t){N((function(){t.forEach(H);var e,n=(e=Math.min(B.length-1,Math.floor(j()/50)),B[e]);n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},o=l(\"event\",a,{durationThreshold:null!==(n=e.durationThreshold)&&void 0!==n?n:40});r=m(t,i,W,e.reportAllChanges),o&&(o.observe({type:\"first-input\",buffered:!0}),v((function(){a(o.takeRecords()),r(!0)})),s((function(){R=0,B.length=0,O.clear(),i=d(\"INP\"),r=m(t,i,W,e.reportAllChanges)})))})))},U=[],V=[],_=new WeakMap,G=new Map,J=-1,K=function(t){U=U.concat(t),Q()},Q=function(){J<0&&(J=N(X))},X=function(){G.size>10&&G.forEach((function(t,e){O.has(e)||G.delete(e)}));var t=B.map((function(t){return _.get(t.entries[0])})),e=V.length-50;V=V.filter((function(n,r){return r>=e||t.includes(n)}));for(var r=new Set,i=0;i=0;i--){var a=V[i];if(Math.abs(r-a.renderTime)<=8){(e=a).startTime=Math.min(t.startTime,e.startTime),e.processingStart=Math.min(t.processingStart,e.processingStart),e.processingEnd=Math.max(t.processingEnd,e.processingEnd),e.entries.push(t);break}}e||(e={startTime:t.startTime,processingStart:t.processingStart,processingEnd:t.processingEnd,renderTime:r,entries:[t]},V.push(e)),(t.interactionId||\"first-input\"===t.entryType)&&_.set(t,e),Q()}));var Y,Z,$,tt,et=function(t,e){for(var n,r=[],i=0;n=U[i];i++)if(!(n.startTime+n.duratione)break;r.push(n)}return r},nt=function(t,n){e||(e=l(\"long-animation-frame\",K)),z((function(e){var n=function(t){var e=t.entries[0],n=_.get(e),r=e.processingStart,a=n.processingEnd,c=n.entries.sort((function(t,e){return t.processingStart-e.processingStart})),u=et(e.startTime,a),s=t.entries.find((function(t){return t.target})),f=s&&s.target||G.get(e.interactionId),d=[e.startTime+e.duration,a].concat(u.map((function(t){return t.startTime+t.duration}))),l=Math.max.apply(Math,d),m={interactionTarget:o(f),interactionTargetElement:f,interactionType:e.name.startsWith(\"key\")?\"keyboard\":\"pointer\",interactionTime:e.startTime,nextPaintTime:l,processedEventEntries:c,longAnimationFrameEntries:u,inputDelay:r-e.startTime,processingDuration:a-r,presentationDelay:Math.max(l-a,0),loadState:i(e.startTime)};return Object.assign(t,{attribution:m})}(e);t(n)}),n)},rt=[2500,4e3],it={},at=function(t,e){!function(t,e){e=e||{},L((function(){var n,r=b(),i=d(\"LCP\"),a=function(t){e.reportAllChanges||(t=t.slice(-1)),t.forEach((function(t){t.startTime=0&&Z<$-dt){var t={entryType:\"first-input\",name:Y.type,target:Y.target,cancelable:Y.cancelable,startTime:Y.timeStamp,processingStart:Y.timeStamp+Z};tt.forEach((function(e){e(t)})),tt=[]}},pt=function(t){if(t.cancelable){var e=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;\"pointerdown\"==t.type?function(t,e){var n=function(){lt(t,e),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",n,ft),removeEventListener(\"pointercancel\",r,ft)};addEventListener(\"pointerup\",n,ft),addEventListener(\"pointercancel\",r,ft)}(e,t):lt(e,t)}},vt=function(t){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(e){return t(e,pt,ft)}))},gt=[100,300],ht=function(t,e){e=e||{},L((function(){var n,r=b(),i=d(\"FID\"),a=function(t){t.startTime {\n const { loadState, largestShiftValue, largestShiftTime, largestShiftTarget } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'largest_shift_value', largestShiftValue);\n this.addIfPresent(values, 'largest_shift_time', largestShiftTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.addIfPresent(context, 'largest_shift_target', largestShiftTarget);\n this.pushMeasurement(values, context);\n });\n }\n measureFCP() {\n onFCP((metric) => {\n const { firstByteToFCP, timeToFirstByte, loadState } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'first_byte_to_fcp', firstByteToFCP);\n this.addIfPresent(values, timeToFirstByteKey, timeToFirstByte);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.pushMeasurement(values, context);\n });\n }\n measureFID() {\n onFID((metric) => {\n const { eventTime, eventTarget, eventType, loadState } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'event_time', eventTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, 'event_target', eventTarget);\n this.addIfPresent(context, 'event_type', eventType);\n this.addIfPresent(context, loadStateKey, loadState);\n this.pushMeasurement(values, context);\n });\n }\n measureINP() {\n onINP((metric) => {\n const { interactionTime, presentationDelay, inputDelay, processingDuration, nextPaintTime, loadState, interactionTarget, interactionType, } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'interaction_time', interactionTime);\n this.addIfPresent(values, 'presentation_delay', presentationDelay);\n this.addIfPresent(values, 'input_delay', inputDelay);\n this.addIfPresent(values, 'processing_duration', processingDuration);\n this.addIfPresent(values, 'next_paint_time', nextPaintTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.addIfPresent(context, 'interaction_target', interactionTarget);\n this.addIfPresent(context, 'interaction_type', interactionType);\n this.pushMeasurement(values, context);\n });\n }\n measureLCP() {\n onLCP((metric) => {\n const { elementRenderDelay, resourceLoadDelay, resourceLoadDuration, timeToFirstByte, element } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'element_render_delay', elementRenderDelay);\n this.addIfPresent(values, 'resource_load_delay', resourceLoadDelay);\n this.addIfPresent(values, 'resource_load_duration', resourceLoadDuration);\n this.addIfPresent(values, timeToFirstByteKey, timeToFirstByte);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, 'element', element);\n this.pushMeasurement(values, context);\n });\n }\n measureTTFB() {\n onTTFB((metric) => {\n const { dnsDuration, connectionDuration, requestDuration, waitingDuration, cacheDuration } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'dns_duration', dnsDuration);\n this.addIfPresent(values, 'connection_duration', connectionDuration);\n this.addIfPresent(values, 'request_duration', requestDuration);\n this.addIfPresent(values, 'waiting_duration', waitingDuration);\n this.addIfPresent(values, 'cache_duration', cacheDuration);\n const context = this.buildInitialContext(metric);\n this.pushMeasurement(values, context);\n });\n }\n buildInitialValues(metric) {\n const indicator = metric.name.toLowerCase();\n return {\n [indicator]: metric.value,\n delta: metric.delta,\n };\n }\n buildInitialContext(metric) {\n var _a;\n const navigationEntryId = (_a = getItem(NAVIGATION_ID_STORAGE_KEY, webStorageType.session)) !== null && _a !== void 0 ? _a : unknownString;\n return {\n id: metric.id,\n rating: metric.rating,\n navigation_type: metric.navigationType,\n navigation_entry_id: navigationEntryId,\n };\n }\n pushMeasurement(values, context) {\n const type = 'web-vitals';\n this.corePushMeasurement({ type, values }, { context });\n }\n addIfPresent(source, key, metric) {\n if (metric) {\n source[key] = metric;\n }\n }\n}\n//# sourceMappingURL=webVitalsWithAttribution.js.map","import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { WebVitalsBasic } from './webVitalsBasic';\nimport { WebVitalsWithAttribution } from './webVitalsWithAttribution';\nexport class WebVitalsInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-web-vitals';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing');\n const webVitals = this.intializeWebVitalsInstrumentation();\n webVitals.initialize();\n }\n intializeWebVitalsInstrumentation() {\n if (this.config.trackWebVitalsAttribution) {\n return new WebVitalsWithAttribution(this.api.pushMeasurement);\n }\n return new WebVitalsBasic(this.api.pushMeasurement);\n }\n}\n//# sourceMappingURL=instrumentation.js.map","/**\n * @deprecated The conventions object will be removed in a future version\n */\nexport const Conventions = {\n /**\n * @deprecated The event names object will be removed in a future version\n */\n EventNames: {\n CLICK: 'click',\n NAVIGATION: 'navigation',\n SESSION_START: 'session_start',\n VIEW_CHANGED: 'view_changed',\n },\n};\nexport const EVENT_CLICK = 'click';\nexport const EVENT_NAVIGATION = 'navigation';\nexport const EVENT_VIEW_CHANGED = 'view_changed';\nexport const EVENT_SESSION_START = 'session_start';\nexport const EVENT_SESSION_RESUME = 'session_resume';\nexport const EVENT_SESSION_EXTEND = 'session_extend';\nexport const EVENT_ROUTE_CHANGE = 'route_change';\n//# sourceMappingURL=semantic.js.map","import { BaseInstrumentation, dateNow, EVENT_SESSION_EXTEND, EVENT_SESSION_RESUME, EVENT_SESSION_START, VERSION, } from '@grafana/faro-core';\nimport { createSession } from '../../metas';\nimport { getSessionManagerByConfig, isSampled } from './sessionManager';\nimport { PersistentSessionsManager } from './sessionManager/PersistentSessionsManager';\nimport { createUserSessionObject, isUserSessionValid } from './sessionManager/sessionManagerUtils';\nexport class SessionInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-session';\n this.version = VERSION;\n }\n sendSessionStartEvent(meta) {\n var _a, _b;\n const session = meta.session;\n if (session && session.id !== ((_a = this.notifiedSession) === null || _a === void 0 ? void 0 : _a.id)) {\n if (this.notifiedSession && this.notifiedSession.id === ((_b = session.attributes) === null || _b === void 0 ? void 0 : _b['previousSession'])) {\n this.api.pushEvent(EVENT_SESSION_EXTEND, {}, undefined, { skipDedupe: true });\n this.notifiedSession = session;\n return;\n }\n this.notifiedSession = session;\n // no need to add attributes and session id, they are included as part of meta\n // automatically\n this.api.pushEvent(EVENT_SESSION_START, {}, undefined, { skipDedupe: true });\n }\n }\n createInitialSession(SessionManager, sessionsConfig) {\n var _a, _b, _c, _d, _e;\n let userSession = SessionManager.fetchUserSession();\n if (sessionsConfig.persistent && sessionsConfig.maxSessionPersistenceTime && userSession) {\n const now = dateNow();\n const shouldClearPersistentSession = userSession.lastActivity < now - sessionsConfig.maxSessionPersistenceTime;\n if (shouldClearPersistentSession) {\n PersistentSessionsManager.removeUserSession();\n userSession = null;\n }\n }\n let lifecycleType;\n let initialSession;\n if (isUserSessionValid(userSession)) {\n const sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;\n initialSession = createUserSessionObject({\n sessionId,\n isSampled: userSession.isSampled || false,\n started: userSession === null || userSession === void 0 ? void 0 : userSession.started,\n });\n initialSession.sessionMeta = {\n id: sessionId,\n attributes: Object.assign(Object.assign(Object.assign({}, (_a = sessionsConfig.session) === null || _a === void 0 ? void 0 : _a.attributes), (_b = userSession === null || userSession === void 0 ? void 0 : userSession.sessionMeta) === null || _b === void 0 ? void 0 : _b.attributes), { \n // For valid resumed sessions we do not want to recalculate the sampling decision on each init phase.\n isSampled: initialSession.isSampled.toString() }),\n };\n lifecycleType = EVENT_SESSION_RESUME;\n }\n else {\n const sessionId = (_d = (_c = sessionsConfig.session) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : createSession().id;\n initialSession = createUserSessionObject({\n sessionId,\n isSampled: isSampled(),\n });\n initialSession.sessionMeta = {\n id: sessionId,\n attributes: Object.assign({ isSampled: initialSession.isSampled.toString() }, (_e = sessionsConfig.session) === null || _e === void 0 ? void 0 : _e.attributes),\n };\n lifecycleType = EVENT_SESSION_START;\n }\n return { initialSession, lifecycleType };\n }\n registerBeforeSendHook(SessionManager) {\n var _a;\n const { updateSession } = new SessionManager();\n (_a = this.transports) === null || _a === void 0 ? void 0 : _a.addBeforeSendHooks((item) => {\n var _a, _b, _c;\n updateSession();\n const attributes = (_a = item.meta.session) === null || _a === void 0 ? void 0 : _a.attributes;\n if (attributes && (attributes === null || attributes === void 0 ? void 0 : attributes['isSampled']) === 'true') {\n let newItem = JSON.parse(JSON.stringify(item));\n const newAttributes = (_b = newItem.meta.session) === null || _b === void 0 ? void 0 : _b.attributes;\n newAttributes === null || newAttributes === void 0 ? true : delete newAttributes['isSampled'];\n if (Object.keys(newAttributes !== null && newAttributes !== void 0 ? newAttributes : {}).length === 0) {\n (_c = newItem.meta.session) === null || _c === void 0 ? true : delete _c.attributes;\n }\n return newItem;\n }\n return null;\n });\n }\n initialize() {\n this.logDebug('init session instrumentation');\n const sessionTrackingConfig = this.config.sessionTracking;\n if (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.enabled) {\n const SessionManager = getSessionManagerByConfig(sessionTrackingConfig);\n this.registerBeforeSendHook(SessionManager);\n const { initialSession, lifecycleType } = this.createInitialSession(SessionManager, sessionTrackingConfig);\n SessionManager.storeUserSession(initialSession);\n const initialSessionMeta = initialSession.sessionMeta;\n this.notifiedSession = initialSessionMeta;\n this.api.setSession(initialSessionMeta);\n if (lifecycleType === EVENT_SESSION_START) {\n this.api.pushEvent(EVENT_SESSION_START, {}, undefined, { skipDedupe: true });\n }\n if (lifecycleType === EVENT_SESSION_RESUME) {\n this.api.pushEvent(EVENT_SESSION_RESUME, {}, undefined, { skipDedupe: true });\n }\n }\n this.metas.addListener(this.sendSessionStartEvent.bind(this));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { faro, genShortID } from '@grafana/faro-core';\nexport function createSession(attributes) {\n var _a, _b, _c, _d;\n return {\n id: (_d = (_c = (_b = (_a = faro.config) === null || _a === void 0 ? void 0 : _a.sessionTracking) === null || _b === void 0 ? void 0 : _b.generateSessionId) === null || _c === void 0 ? void 0 : _c.call(_b)) !== null && _d !== void 0 ? _d : genShortID(),\n attributes,\n };\n}\n//# sourceMappingURL=createSession.js.map","import { BaseInstrumentation, EVENT_VIEW_CHANGED, unknownString, VERSION } from '@grafana/faro-core';\n// all this does is send VIEW_CHANGED event\nexport class ViewInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-view';\n this.version = VERSION;\n }\n sendViewChangedEvent(meta) {\n var _a, _b, _c, _d;\n const view = meta.view;\n if (view && view.name !== ((_a = this.notifiedView) === null || _a === void 0 ? void 0 : _a.name)) {\n this.api.pushEvent(EVENT_VIEW_CHANGED, {\n fromView: (_c = (_b = this.notifiedView) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : unknownString,\n toView: (_d = view.name) !== null && _d !== void 0 ? _d : unknownString,\n }, undefined, { skipDedupe: true });\n this.notifiedView = view;\n }\n }\n initialize() {\n this.metas.addListener(this.sendViewChangedEvent.bind(this));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","export const NAVIGATION_ENTRY = 'navigation';\nexport const RESOURCE_ENTRY = 'resource';\n//# sourceMappingURL=performanceConstants.js.map","import { isArray, unknownString } from '@grafana/faro-core';\nconst w3cTraceparentFormat = /^00-[a-f0-9]{32}-[a-f0-9]{16}-[0-9]{1,2}$/;\n// Extract traceparent from serverTiming, if present\nexport function getSpanContextFromServerTiming(serverTimings = []) {\n for (const serverEntry of serverTimings) {\n if (serverEntry.name === 'traceparent') {\n if (!w3cTraceparentFormat.test(serverEntry.description)) {\n continue;\n }\n const [, traceId, spanId] = serverEntry.description.split('-');\n if (traceId != null && spanId != null) {\n return { traceId, spanId };\n }\n break;\n }\n }\n return undefined;\n}\nexport function performanceObserverSupported() {\n return 'PerformanceObserver' in window;\n}\nexport function entryUrlIsIgnored(ignoredUrls = [], entryName) {\n return ignoredUrls.some((url) => url && entryName.match(url) != null);\n}\nexport function onDocumentReady(handleReady) {\n if (document.readyState === 'complete') {\n handleReady();\n }\n else {\n const readyStateCompleteHandler = () => {\n if (document.readyState === 'complete') {\n handleReady();\n document.removeEventListener('readystatechange', readyStateCompleteHandler);\n }\n };\n document.addEventListener('readystatechange', readyStateCompleteHandler);\n }\n}\nexport function includePerformanceEntry(performanceEntryJSON, allowProps = {}) {\n for (const [allowPropKey, allowPropValue] of Object.entries(allowProps)) {\n const perfEntryPropVal = performanceEntryJSON[allowPropKey];\n if (perfEntryPropVal == null) {\n return false;\n }\n if (isArray(allowPropValue)) {\n return allowPropValue.includes(perfEntryPropVal);\n }\n return perfEntryPropVal === allowPropValue;\n }\n // empty object allows all\n return true;\n}\nexport function createFaroResourceTiming(resourceEntryRaw) {\n const { connectEnd, connectStart, decodedBodySize, domainLookupEnd, domainLookupStart, duration, encodedBodySize, fetchStart, initiatorType, name, nextHopProtocol, redirectEnd, redirectStart, \n // @ts-expect-error the renderBlockingStatus property is not available in all browsers\n renderBlockingStatus: rbs, requestStart, responseEnd, responseStart, \n // @ts-expect-error the renderBlockingStatus property is not available in all browsers\n responseStatus, secureConnectionStart, transferSize, workerStart, } = resourceEntryRaw;\n return {\n name: name,\n duration: toFaroPerformanceTimingString(duration),\n tcpHandshakeTime: toFaroPerformanceTimingString(connectEnd - connectStart),\n dnsLookupTime: toFaroPerformanceTimingString(domainLookupEnd - domainLookupStart),\n tlsNegotiationTime: toFaroPerformanceTimingString(requestStart - secureConnectionStart),\n responseStatus: toFaroPerformanceTimingString(responseStatus),\n redirectTime: toFaroPerformanceTimingString(redirectEnd - redirectStart),\n requestTime: toFaroPerformanceTimingString(responseStart - requestStart),\n responseTime: toFaroPerformanceTimingString(responseEnd - responseStart),\n fetchTime: toFaroPerformanceTimingString(responseEnd - fetchStart),\n serviceWorkerTime: toFaroPerformanceTimingString(fetchStart - workerStart),\n decodedBodySize: toFaroPerformanceTimingString(decodedBodySize),\n encodedBodySize: toFaroPerformanceTimingString(encodedBodySize),\n cacheHitStatus: getCacheType(),\n renderBlockingStatus: toFaroPerformanceTimingString(rbs),\n protocol: nextHopProtocol,\n initiatorType: initiatorType,\n // TODO: add in future iteration, ideally after nested objects are supported by the collector.\n // serverTiming: resourceEntryRaw.serverTiming,\n };\n function getCacheType() {\n let cacheType = 'fullLoad';\n if (transferSize === 0) {\n if (decodedBodySize > 0) {\n cacheType = 'cache';\n }\n }\n else {\n if (responseStatus != null) {\n if (responseStatus === 304) {\n cacheType = 'conditionalFetch';\n }\n }\n else if (encodedBodySize > 0 && transferSize < encodedBodySize) {\n cacheType = 'conditionalFetch';\n }\n }\n return cacheType;\n }\n}\nexport function createFaroNavigationTiming(navigationEntryRaw) {\n const { activationStart, domComplete, domContentLoadedEventEnd, domContentLoadedEventStart, domInteractive, fetchStart, loadEventEnd, loadEventStart, responseStart, type, } = navigationEntryRaw;\n const parserStart = getDocumentParsingTime();\n return Object.assign({ visibilityState: document.visibilityState, pageLoadTime: toFaroPerformanceTimingString(domComplete - fetchStart), documentParsingTime: toFaroPerformanceTimingString(parserStart ? domInteractive - parserStart : null), domProcessingTime: toFaroPerformanceTimingString(domComplete - domInteractive), domContentLoadHandlerTime: toFaroPerformanceTimingString(domContentLoadedEventEnd - domContentLoadedEventStart), onLoadTime: toFaroPerformanceTimingString(loadEventEnd - loadEventStart), \n // For more accuracy on prerendered pages page we calculate relative top the activationStart instead of the start of the navigation.\n // clamp to 0 if activationStart occurs after first byte is received.\n ttfb: toFaroPerformanceTimingString(Math.max(responseStart - (activationStart !== null && activationStart !== void 0 ? activationStart : 0), 0)), type: type }, createFaroResourceTiming(navigationEntryRaw));\n}\nfunction getDocumentParsingTime() {\n var _a;\n if (((_a = performance.timing) === null || _a === void 0 ? void 0 : _a.domLoading) != null) {\n // the browser is about to start parsing the first received bytes of the HTML document.\n // This property is deprecated but there isn't a really good alternative atm.\n // For now we stick with domLoading and keep researching a better alternative.\n return performance.timing.domLoading - performance.timeOrigin;\n }\n return null;\n}\nfunction toFaroPerformanceTimingString(v) {\n if (v == null) {\n return unknownString;\n }\n if (typeof v === 'number') {\n return Math.round(v).toString();\n }\n return v.toString();\n}\n//# sourceMappingURL=performanceUtils.js.map","import { faro, genShortID } from '@grafana/faro-core';\nimport { RESOURCE_ENTRY } from './performanceConstants';\nimport { createFaroResourceTiming, entryUrlIsIgnored, getSpanContextFromServerTiming, includePerformanceEntry, } from './performanceUtils';\nconst DEFAULT_TRACK_RESOURCES = { initiatorType: ['xmlhttprequest', 'fetch'] };\nexport function observeResourceTimings(faroNavigationId, pushEvent, ignoredUrls) {\n const trackResources = faro.config.trackResources;\n const observer = new PerformanceObserver((observedEntries) => {\n const entries = observedEntries.getEntries();\n for (const resourceEntryRaw of entries) {\n if (entryUrlIsIgnored(ignoredUrls, resourceEntryRaw.name)) {\n return;\n }\n const resourceEntryJson = resourceEntryRaw.toJSON();\n let spanContext = getSpanContextFromServerTiming(resourceEntryJson === null || resourceEntryJson === void 0 ? void 0 : resourceEntryJson.serverTiming);\n if ((trackResources == null && includePerformanceEntry(resourceEntryJson, DEFAULT_TRACK_RESOURCES)) ||\n trackResources) {\n const faroResourceEntry = Object.assign(Object.assign({}, createFaroResourceTiming(resourceEntryJson)), { faroNavigationId, faroResourceId: genShortID() });\n pushEvent('faro.performance.resource', faroResourceEntry, undefined, {\n spanContext,\n timestampOverwriteMs: performance.timeOrigin + resourceEntryJson.startTime,\n });\n }\n }\n });\n observer.observe({\n type: RESOURCE_ENTRY,\n buffered: true,\n });\n}\n//# sourceMappingURL=resource.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { getNavigationTimings } from './navigation';\nimport { onDocumentReady, performanceObserverSupported } from './performanceUtils';\nimport { observeResourceTimings } from './resource';\nexport class PerformanceInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-performance';\n this.version = VERSION;\n }\n initialize() {\n if (!performanceObserverSupported()) {\n this.logDebug('performance observer not supported. Disable performance instrumentation.');\n return;\n }\n onDocumentReady(() => __awaiter(this, void 0, void 0, function* () {\n const pushEvent = this.api.pushEvent;\n const ignoredUrls = this.getIgnoreUrls();\n const { faroNavigationId } = yield getNavigationTimings(pushEvent, ignoredUrls);\n if (faroNavigationId != null) {\n observeResourceTimings(faroNavigationId, pushEvent, ignoredUrls);\n }\n }));\n }\n getIgnoreUrls() {\n var _a;\n return (_a = this.transports.transports) === null || _a === void 0 ? void 0 : _a.flatMap((transport) => transport.getIgnoreUrls());\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { genShortID, unknownString } from '@grafana/faro-core';\nimport { getItem, setItem, webStorageType } from '../../utils';\nimport { NAVIGATION_ID_STORAGE_KEY } from '../instrumentationConstants';\nimport { NAVIGATION_ENTRY } from './performanceConstants';\nimport { createFaroNavigationTiming, entryUrlIsIgnored, getSpanContextFromServerTiming } from './performanceUtils';\nexport function getNavigationTimings(pushEvent, ignoredUrls) {\n let faroNavigationEntryResolve;\n const faroNavigationEntryPromise = new Promise((resolve) => {\n faroNavigationEntryResolve = resolve;\n });\n const observer = new PerformanceObserver((observedEntries) => {\n var _a;\n const [navigationEntryRaw] = observedEntries.getEntries();\n if (navigationEntryRaw == null || entryUrlIsIgnored(ignoredUrls, navigationEntryRaw.name)) {\n return;\n }\n const navEntryJson = navigationEntryRaw.toJSON();\n let spanContext = getSpanContextFromServerTiming(navEntryJson === null || navEntryJson === void 0 ? void 0 : navEntryJson.serverTiming);\n const faroPreviousNavigationId = (_a = getItem(NAVIGATION_ID_STORAGE_KEY, webStorageType.session)) !== null && _a !== void 0 ? _a : unknownString;\n const faroNavigationEntry = Object.assign(Object.assign({}, createFaroNavigationTiming(navEntryJson)), { faroNavigationId: genShortID(), faroPreviousNavigationId });\n setItem(NAVIGATION_ID_STORAGE_KEY, faroNavigationEntry.faroNavigationId, webStorageType.session);\n pushEvent('faro.performance.navigation', faroNavigationEntry, undefined, {\n spanContext,\n timestampOverwriteMs: performance.timeOrigin + navEntryJson.startTime,\n });\n faroNavigationEntryResolve(faroNavigationEntry);\n });\n observer.observe({\n type: NAVIGATION_ENTRY,\n buffered: true,\n });\n return faroNavigationEntryPromise;\n}\n//# sourceMappingURL=navigation.js.map","import { allLogLevels, BaseInstrumentation, LogLevel, VERSION } from '@grafana/faro-core';\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n constructor(options = {}) {\n super();\n this.options = options;\n this.name = '@grafana/faro-web-sdk:instrumentation-console';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing\\n', this.options);\n allLogLevels\n .filter((level) => { var _a; return !((_a = this.options.disabledLevels) !== null && _a !== void 0 ? _a : ConsoleInstrumentation.defaultDisabledLevels).includes(level); })\n .forEach((level) => {\n /* eslint-disable-next-line no-console */\n console[level] = (...args) => {\n try {\n this.api.pushLog(args, { level });\n }\n catch (err) {\n this.logError(err);\n }\n finally {\n this.unpatchedConsole[level](...args);\n }\n };\n });\n }\n}\nConsoleInstrumentation.defaultDisabledLevels = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\n//# sourceMappingURL=instrumentation.js.map","import { ConsoleInstrumentation, ErrorsInstrumentation, PerformanceInstrumentation, SessionInstrumentation, ViewInstrumentation, WebVitalsInstrumentation, } from '../instrumentations';\nexport function getWebInstrumentations(options = {}) {\n const instrumentations = [\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n new ViewInstrumentation(),\n ];\n if (options.enablePerformanceInstrumentation !== false) {\n // unshift to ensure that initialization starts before the other instrumentations\n instrumentations.unshift(new PerformanceInstrumentation());\n }\n if (options.captureConsole !== false) {\n instrumentations.push(new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n }));\n }\n return instrumentations;\n}\n//# sourceMappingURL=getWebInstrumentations.js.map","import { initializeFaro as coreInit } from '@grafana/faro-core';\nimport { makeCoreConfig } from './config';\nexport function initializeFaro(config) {\n const coreConfig = makeCoreConfig(config);\n if (!coreConfig) {\n return undefined;\n }\n return coreInit(coreConfig);\n}\n//# sourceMappingURL=initialize.js.map","import { createInternalLogger, defaultBatchingConfig, defaultGlobalObjectKey, defaultInternalLoggerLevel, defaultLogArgsSerializer, defaultUnpatchedConsole, isObject, } from '@grafana/faro-core';\nimport { defaultEventDomain } from '../consts';\nimport { parseStacktrace } from '../instrumentations';\nimport { defaultSessionTrackingConfig } from '../instrumentations/session';\nimport { defaultMetas } from '../metas';\nimport { k6Meta } from '../metas/k6';\nimport { FetchTransport } from '../transports';\nimport { getWebInstrumentations } from './getWebInstrumentations';\nexport function makeCoreConfig(browserConfig) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const transports = [];\n const internalLogger = createInternalLogger(browserConfig.unpatchedConsole, browserConfig.internalLoggerLevel);\n if (browserConfig.transports) {\n if (browserConfig.url || browserConfig.apiKey) {\n internalLogger.error('if \"transports\" is defined, \"url\" and \"apiKey\" should not be defined');\n }\n transports.push(...browserConfig.transports);\n }\n else if (browserConfig.url) {\n transports.push(new FetchTransport({\n url: browserConfig.url,\n apiKey: browserConfig.apiKey,\n }));\n }\n else {\n internalLogger.error('either \"url\" or \"transports\" must be defined');\n }\n function createMetas() {\n const initialMetas = defaultMetas;\n if (browserConfig.metas) {\n initialMetas.push(...browserConfig.metas);\n }\n const isK6BrowserSession = isObject(window.k6);\n if (isK6BrowserSession) {\n return [...initialMetas, k6Meta];\n }\n return initialMetas;\n }\n const config = {\n app: browserConfig.app,\n batching: Object.assign(Object.assign({}, defaultBatchingConfig), browserConfig.batching),\n dedupe: (_a = browserConfig.dedupe) !== null && _a !== void 0 ? _a : true,\n globalObjectKey: browserConfig.globalObjectKey || defaultGlobalObjectKey,\n instrumentations: (_b = browserConfig.instrumentations) !== null && _b !== void 0 ? _b : getWebInstrumentations(),\n internalLoggerLevel: (_c = browserConfig.internalLoggerLevel) !== null && _c !== void 0 ? _c : defaultInternalLoggerLevel,\n isolate: (_d = browserConfig.isolate) !== null && _d !== void 0 ? _d : false,\n logArgsSerializer: (_e = browserConfig.logArgsSerializer) !== null && _e !== void 0 ? _e : defaultLogArgsSerializer,\n metas: createMetas(),\n parseStacktrace,\n paused: (_f = browserConfig.paused) !== null && _f !== void 0 ? _f : false,\n preventGlobalExposure: (_g = browserConfig.preventGlobalExposure) !== null && _g !== void 0 ? _g : false,\n transports,\n unpatchedConsole: (_h = browserConfig.unpatchedConsole) !== null && _h !== void 0 ? _h : defaultUnpatchedConsole,\n beforeSend: browserConfig.beforeSend,\n eventDomain: (_j = browserConfig.eventDomain) !== null && _j !== void 0 ? _j : defaultEventDomain,\n ignoreErrors: browserConfig.ignoreErrors,\n ignoreUrls: browserConfig.ignoreUrls,\n sessionTracking: Object.assign(Object.assign({}, defaultSessionTrackingConfig), browserConfig.sessionTracking),\n user: browserConfig.user,\n view: browserConfig.view,\n trackResources: browserConfig.trackResources,\n trackWebVitalsAttribution: browserConfig.trackWebVitalsAttribution,\n };\n return config;\n}\n//# sourceMappingURL=makeCoreConfig.js.map","import plugin from './plugin.json';\n\nexport const PYROSCOPE_APP_ID = plugin.id;\n\nexport const PLUGIN_BASE_URL = `/a/${PYROSCOPE_APP_ID}`;\n\nexport enum ROUTES {\n PROFILES_EXPLORER_VIEW = '/profiles-explorer',\n ADHOC_VIEW = '/ad-hoc',\n SETTINGS = '/settings',\n}\n","export const GIT_COMMIT = '362e02b6a8356dd9366259a56d4d1c56b3b522a0';\n","export type Environment = 'local' | 'dev' | 'ops' | 'prod';\n\nconst MATCHERS: Array<{ regExp: RegExp; environment: Environment }> = [\n {\n regExp: /localhost/,\n environment: 'local',\n },\n {\n regExp: /grafana-dev\\.net/,\n environment: 'dev',\n },\n {\n regExp: /grafana-ops\\.net/,\n environment: 'ops',\n },\n {\n regExp: /grafana\\.net/,\n environment: 'prod',\n },\n];\n\nexport function getEnvironment(): Environment | null {\n if (!window?.location?.host) {\n return null;\n }\n\n const found = MATCHERS.find(({ regExp }) => regExp.test(window.location.host));\n\n return found ? found.environment : null;\n}\n","import { Environment } from '../getEnvironment';\nimport { FaroEnvironment } from './getFaroEnvironment';\n\nexport const FARO_ENVIRONMENTS = new Map([\n // Uncomment this map entry to test from your local machine\n // [\n // 'local',\n // {\n // environment: 'local',\n // appName: 'grafana-pyroscope-local',\n // faroUrl: 'https://faro-collector-ops-eu-south-0.grafana-ops.net/collect/d6ca259b3387e6ddd641973d0fad3ed0',\n // },\n // ],\n // Always keep the options below\n [\n 'dev',\n {\n environment: 'dev',\n appName: 'grafana-pyroscope-dev',\n faroUrl: 'https://faro-collector-ops-eu-south-0.grafana-ops.net/collect/48e03a2647389f2f6494af7f975b4084',\n },\n ],\n [\n 'ops',\n {\n environment: 'ops',\n appName: 'grafana-pyroscope-ops',\n faroUrl: 'https://faro-collector-ops-eu-south-0.grafana-ops.net/collect/b5cfd5eeb412cf5e74bd828b4ddd17ff',\n },\n ],\n [\n 'prod',\n {\n environment: 'prod',\n appName: 'grafana-pyroscope-prod',\n faroUrl: 'https://faro-collector-ops-eu-south-0.grafana-ops.net/collect/6cbe17b3af4b72ce5936bf4d15a5c393',\n },\n ],\n]);\n","import { Faro, getWebInstrumentations, initializeFaro } from '@grafana/faro-web-sdk';\nimport { config } from '@grafana/runtime';\n\nimport { PYROSCOPE_APP_ID } from '../../../../constants';\nimport { GIT_COMMIT } from '../../../../version';\nimport { getFaroEnvironment } from './getFaroEnvironment';\n\nlet faro: Faro | null = null;\n\nexport const getFaro = () => faro;\nexport const setFaro = (instance: Faro | null) => (faro = instance);\n\nexport function initFaro() {\n if (getFaro()) {\n return;\n }\n\n const faroEnvironment = getFaroEnvironment();\n if (!faroEnvironment) {\n return;\n }\n\n const { environment, faroUrl, appName } = faroEnvironment;\n\n const { apps, bootData, buildInfo } = config;\n\n const appRelease = apps[PYROSCOPE_APP_ID].version;\n const userEmail = bootData.user.email;\n const grafanaVersion = `v${buildInfo.version} (${buildInfo.edition})`;\n\n setFaro(\n initializeFaro({\n url: faroUrl,\n app: {\n name: appName,\n release: appRelease,\n version: GIT_COMMIT,\n environment,\n namespace: grafanaVersion, // :man_shrug:\n },\n user: {\n email: userEmail,\n },\n instrumentations: [\n ...getWebInstrumentations({\n captureConsole: false,\n }),\n ],\n isolate: true,\n beforeSend: (event) => {\n if ((event.meta.page?.url ?? '').includes(PYROSCOPE_APP_ID)) {\n event.meta.view = {\n name: new URLSearchParams(event.meta.page?.url).get('explorationType') || '',\n };\n\n return event;\n }\n\n return null;\n },\n })\n );\n}\n","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","import { LogLevel } from '@grafana/faro-web-sdk';\nimport { getFaro } from '@shared/infrastructure/tracking/faro/faro';\n\nimport { Environment, getEnvironment } from './getEnvironment';\n\nexport type ErrorContext = Record;\n\nexport class Logger {\n #environment: Environment | null;\n\n constructor() {\n this.#environment = getEnvironment();\n }\n\n #callConsole(methodName: 'trace' | 'debug' | 'info' | 'log' | 'warn' | 'error', args: any[]) {\n // silence console in production\n if (this.#environment !== 'prod') {\n console[methodName](...args); // eslint-disable-line no-console\n }\n }\n\n trace() {\n this.#callConsole('trace', []);\n\n getFaro()?.api.pushLog([], {\n level: LogLevel.TRACE,\n });\n }\n\n debug(...args: any) {\n this.#callConsole('debug', args);\n\n getFaro()?.api.pushLog(args, {\n level: LogLevel.DEBUG,\n });\n }\n\n info(...args: any) {\n this.#callConsole('info', args);\n\n getFaro()?.api.pushLog(args, {\n level: LogLevel.INFO,\n });\n }\n\n log(...args: any) {\n this.#callConsole('log', args);\n\n getFaro()?.api.pushLog(args, {\n level: LogLevel.LOG,\n });\n }\n\n warn(...args: any) {\n this.#callConsole('warn', args);\n\n getFaro()?.api.pushLog(args, {\n level: LogLevel.WARN,\n });\n }\n\n error(error: Error, context?: ErrorContext) {\n this.#callConsole('error', [error]);\n\n if (context) {\n this.#callConsole('error', ['Error context', context]);\n }\n\n // does not report an error, but an exception ;)\n getFaro()?.api.pushError(error, {\n context,\n });\n }\n}\n\nexport const logger = new Logger();\n","import { logger } from '@shared/infrastructure/tracking/logger';\n\nimport plugin from '../../plugin.json';\n\nclass UserStorage {\n #storage: Storage = window.localStorage;\n\n KEYS = {\n SETTINGS: `${plugin.id}.userSettings`,\n GITHUB_INTEGRATION: `${plugin.id}.gitHubIntegration`,\n PROFILES_EXPLORER: `${plugin.id}.profilesExplorer`,\n };\n\n has(itemName: string): boolean {\n return this.#storage.hasOwnProperty(itemName);\n }\n\n get(itemName: string): null | any {\n if (!this.has(itemName)) {\n return null;\n }\n\n try {\n return JSON.parse(this.#storage.getItem(itemName) as string);\n } catch (error) {\n logger.error(error as Error, { info: `Error parsing JSON for storage item \"${itemName}\"!` });\n return null;\n }\n }\n\n set(itemName: string, value: any): void {\n try {\n this.#storage.setItem(itemName, JSON.stringify(value));\n } catch (error) {\n logger.error(error as Error, { info: `Error setting storage item \"${itemName}\"!` });\n }\n }\n}\n\nexport const userStorage = new UserStorage();\n","export const noOp = () => {};\n","export class HttpClientError extends Error {\n response: Response;\n reason?: any;\n\n constructor(response: Response, responseJson?: Record) {\n let message = `HTTP ${response.status} (${response.statusText || '?'})`;\n\n if (responseJson?.message) {\n message = `${message} → ${responseJson.message}`;\n }\n\n super(message);\n\n this.response = response;\n }\n}\n","import { noOp } from '@shared/domain/noOp';\n\nimport { HttpClientError } from './HttpClientError';\n\nexport class HttpClient {\n baseUrl = '';\n defaultHeaders = {};\n abortController?: AbortController | null = null;\n\n constructor(baseUrl: string, defaultHeaders: Record = {}) {\n this.baseUrl = baseUrl;\n this.defaultHeaders = Object.freeze(defaultHeaders);\n }\n\n async fetch(pathname: string, options?: RequestInit) {\n this.abortController = new AbortController();\n const { signal } = this.abortController;\n\n const fullUrl = `${this.baseUrl}${pathname}`;\n const headers = { ...this.defaultHeaders, ...options?.headers };\n const fullOptions = {\n signal, // we allow signal to be passed as an option\n ...options,\n headers,\n };\n\n let response;\n\n try {\n response = await fetch(fullUrl, fullOptions);\n\n if (!response.ok) {\n throw new HttpClientError(response, await response.json().catch(noOp));\n }\n } catch (error) {\n if (this.isAbortError(error)) {\n (error as any).reason = options?.signal?.reason || signal.reason;\n }\n\n throw error;\n } finally {\n this.abortController = null;\n }\n\n return response;\n }\n\n abort(reason?: any) {\n if (this.abortController) {\n this.abortController.abort(reason);\n }\n }\n\n isAbortError(error: unknown) {\n return error instanceof DOMException && error.name === 'AbortError';\n }\n}\n","import { DataSourceInstanceSettings, DataSourceJsonData } from '@grafana/data';\nimport { config } from '@grafana/runtime';\n\nimport { logger } from '../tracking/logger';\nimport { userStorage } from '../userStorage';\nimport { HttpClient } from './HttpClient';\n\nconst PYROSCOPE_DATA_SOURCES_TYPE = 'grafana-pyroscope-datasource';\nconst PYROSCOPE_URL_SEARCH_PARAM_NAME = 'var-dataSource'; // matches with the Scenes library\n\ntype CustomDataSourceJsonData = { overridesDefault: boolean };\ntype CustomDataSourceInstanceSettings = DataSourceInstanceSettings;\n\n/**\n * An HTTP client ready to fetch data from the plugin's backend\n */\nexport class ApiClient extends HttpClient {\n static getPyroscopeDataSources() {\n return Object.values(config.datasources).filter((ds) => ds.type === PYROSCOPE_DATA_SOURCES_TYPE);\n }\n\n static selectDefaultDataSource() {\n const pyroscopeDataSources = ApiClient.getPyroscopeDataSources() as CustomDataSourceInstanceSettings[];\n\n const uidFromUrl = new URL(window.location.href).searchParams.get(PYROSCOPE_URL_SEARCH_PARAM_NAME);\n const uidFromLocalStorage = userStorage.get(userStorage.KEYS.PROFILES_EXPLORER)?.dataSource;\n\n const defaultDataSource =\n pyroscopeDataSources.find((ds) => ds.uid === uidFromUrl) ||\n pyroscopeDataSources.find((ds) => ds.uid === uidFromLocalStorage) ||\n pyroscopeDataSources.find((ds) => ds.jsonData.overridesDefault) ||\n pyroscopeDataSources.find((ds) => ds.isDefault) ||\n pyroscopeDataSources[0];\n\n if (!defaultDataSource) {\n logger.warn(\n 'Cannot find any Pyroscope data source! Please add and configure a Pyroscope data source to your Grafana instance.'\n );\n\n // because we instantiate most of our API clients before exporting them,\n // we have to return a dummy data source to prevent the whole app to fail\n return { uid: 'no-data-source-configured' };\n }\n\n return defaultDataSource;\n }\n\n static getBaseUrl() {\n const pyroscopeDataSource = ApiClient.selectDefaultDataSource();\n\n let appSubUrl = config.appSubUrl || '';\n if (appSubUrl.at(-1) !== '/') {\n // ensures that the API pathname is appended correctly (appUrl seems to always have it but better to be extra careful)\n appSubUrl += '/';\n }\n\n return `${appSubUrl}api/datasources/proxy/uid/${pyroscopeDataSource.uid}`;\n }\n\n constructor() {\n super(ApiClient.getBaseUrl().toString(), {\n 'content-type': 'application/json',\n 'X-Grafana-Org-Id': String(config.bootData?.user?.orgId || ''),\n });\n }\n}\n","// src/queryObserver.ts\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { fetchState } from \"./query.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch\n };\n return result;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && shouldThrowError(throwOnError, [result.error, query]);\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureStaleTime = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureStaleTime,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { notifyManager } from \"@tanstack/query-core\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { ensureStaleTime, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange));\n observer.updateResult();\n return unsubscribe;\n },\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash)\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","import { ApiClient } from '@shared/infrastructure/http/ApiClient';\n\nexport type Stats = {\n hasIngestedData: boolean;\n oldestProfileTime: number;\n newestProfileTime: number;\n};\n\nclass StatsApiClient extends ApiClient {\n async get(): Promise {\n const response = await this.fetch('/querier.v1.QuerierService/GetProfileStats', {\n method: 'POST',\n body: JSON.stringify({}),\n });\n\n const json = await response.json();\n\n return {\n hasIngestedData: json.dataIngested,\n oldestProfileTime: Number(json.oldestProfileTime),\n newestProfileTime: Number(json.newestProfileTime),\n };\n }\n}\n\nexport const statsApiClient = new StatsApiClient();\n","import { ApiClient } from '@shared/infrastructure/http/ApiClient';\nimport { DomainHookReturnValue } from '@shared/types/DomainHookReturnValue';\nimport { useState } from 'react';\n\nimport { useFetchTenantStats } from '../infrastructure/useFetchTenantStats';\n\nexport function useOnboarding(): DomainHookReturnValue {\n const [isModalClosed, setIsModalClosed] = useState(false);\n\n const pyroscopeDataSourcesCount = ApiClient.getPyroscopeDataSources().length;\n const { isFetching, error, stats } = useFetchTenantStats({ enabled: pyroscopeDataSourcesCount > 0 });\n const hasNoUserData = !isFetching && !stats?.hasIngestedData;\n\n return {\n data: {\n shouldShowLoadingPage: !error && isFetching,\n shouldShowOnboardingPage: (error || !pyroscopeDataSourcesCount || hasNoUserData) && !isModalClosed,\n shouldShowNoDataSourceBanner: !pyroscopeDataSourcesCount,\n },\n actions: {\n closeModal() {\n setIsModalClosed(true);\n },\n },\n };\n}\n","import { useQuery } from '@tanstack/react-query';\n\nimport { Stats, statsApiClient } from './statsApiClient';\n\ntype FetchResponse = {\n isFetching: boolean;\n error: Error | null;\n stats?: Stats;\n refetch: () => void;\n};\n\nexport function useFetchTenantStats({ enabled }: { enabled: boolean }): FetchResponse {\n const { isFetching, error, data, refetch } = useQuery({\n enabled,\n placeholderData: () => ({ hasIngestedData: true, oldestProfileTime: 0, newestProfileTime: 0 }),\n queryKey: ['tenant-stats'],\n queryFn: () => {\n statsApiClient.abort();\n\n return statsApiClient.get();\n },\n });\n\n return {\n isFetching,\n error: statsApiClient.isAbortError(error) ? null : error,\n stats: data,\n refetch,\n };\n}\n","import { css } from '@emotion/css';\nimport { formattedValueToString, getValueFormat, GrafanaTheme2 } from '@grafana/data';\nimport { Divider, IconButton, styleMixins, Toggletip, useStyles2 } from '@grafana/ui';\nimport React, { useMemo } from 'react';\n\nimport { QueryAnalysisResult } from './domain/QueryAnalysis';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n row: css({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n }),\n headerColumn: css({\n display: 'flex',\n flexDirection: 'column',\n minWidth: '120px',\n alignItems: 'start',\n }),\n column: css({\n display: 'flex',\n flexDirection: 'column',\n minWidth: '120px',\n alignItems: 'end',\n }),\n tooltip: css({\n display: 'flex',\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n }),\n contentWithIcon: css({\n display: 'none',\n\n [`@media ${styleMixins.mediaUp(theme.v1.breakpoints.sm)}`]: {\n display: 'block',\n },\n }),\n});\n\ntype QueryAnalysisTooltipProps = {\n data: QueryAnalysisResult;\n};\n\nconst formatSize = (size: number) => formattedValueToString(getValueFormat('decbytes')(size));\n\nconst formatCount = (count: number) => formattedValueToString(getValueFormat('short')(count));\n\nexport function QueryAnalysisTooltip(props: QueryAnalysisTooltipProps) {\n const styles = useStyles2(getStyles);\n const { data } = props;\n const totalBytesInTimeRange = formatSize(data.queryImpact.totalBytesInTimeRange);\n\n const queryAnalysisTooltip = useMemo(() => {\n return (\n
\n
\n
Data in time range
\n
{totalBytesInTimeRange}
\n
 
\n
\n {data.queryImpact.totalQueriedSeries !== undefined && (\n
\n
Series in query
\n
{formatCount(data.queryImpact.totalQueriedSeries)}
\n
 
\n
\n )}\n
\n
Deduplication
\n
{data.queryImpact.deduplicationNeeded ? 'yes' : 'no'}
\n
 
\n
\n \n
\n
 
\n {data.queryScopes.map((s, i) => (\n
\n {s.componentType}\n
\n ))}\n
\n
\n
Replicas
\n {data.queryScopes.map((s, i) => (\n
\n {s.componentCount || '/'}\n
\n ))}\n
\n
\n
Blocks
\n {data.queryScopes.map((s, i) => (\n
\n {formatCount(s.blockCount) || '/'}\n
\n ))}\n
\n
\n
Series
\n {data.queryScopes.map((s, i) => (\n
\n {formatCount(s.seriesCount) || '/'}\n
\n ))}\n
\n
\n
Profiles
\n {data.queryScopes.map((s, i) => (\n
\n {formatCount(s.profileCount) || '/'}\n
\n ))}\n
\n
\n
Samples
\n {data.queryScopes.map((s, i) => (\n
\n {formatCount(s.sampleCount) || '/'}\n
\n ))}\n
\n
\n
 
\n
 
\n
 
\n
\n
\n
Index Store
\n {data.queryScopes.map((s, i) => (\n
\n {formatSize(s.indexBytes) || '/'}\n
\n ))}\n
\n
\n
Profiles Store
\n {data.queryScopes.map((s, i) => (\n
\n {formatSize(s.profileBytes) || '/'}\n
\n ))}\n
\n
\n
Symbols Store
\n {data.queryScopes.map((s, i) => (\n
\n {formatSize(s.symbolBytes) || '/'}\n
\n ))}\n
\n
\n );\n }, [data, styles, totalBytesInTimeRange]);\n\n return (\n <>\n {data.queryImpact.totalBytesInTimeRange !== undefined ? (\n \n
\n Stored data in time range: {totalBytesInTimeRange}\n  \n \n
\n
\n ) : null}\n \n );\n}\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import { css, cx } from '@emotion/css';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\n\ntype PyroscopeLogoProps = {\n size: 'small' | 'large';\n};\n\nfunction PyroscopeLogoComponent({ size }: PyroscopeLogoProps) {\n const styles = useStyles2(getStyles);\n return ;\n}\n\nexport const PyroscopeLogo = React.memo(PyroscopeLogoComponent);\n\nconst getStyles = () => ({\n logo: css`\n &.small {\n width: 16px;\n height: 16px;\n margin-right: 4px;\n position: relative;\n top: -2px;\n }\n\n &.large {\n width: 40px;\n height: 40px;\n }\n `,\n});\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2, usePluginContext } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { Dropdown, IconButton, Menu, useStyles2 } from '@grafana/ui';\nimport React from 'react';\n\nimport { GIT_COMMIT } from '../../version';\nimport { PyroscopeLogo } from './PyroscopeLogo';\n\nconst pluginCommitSha: string = GIT_COMMIT;\nconst pluginCommitURL = `https://github.com/grafana/explore-profiles/commit/${pluginCommitSha}`;\n\nconst { buildInfo: grafanaBuildInfo } = config;\n\nfunction InfoMenuHeader() {\n const styles = useStyles2(getStyles);\n\n const {\n meta: {\n info: { version, updated },\n },\n } = usePluginContext() || { meta: { info: { version: '?.?.?', updated: '?' } } };\n\n return (\n
\n
\n \n Explore profiles v{version}\n
\n
Last update: {updated}
\n
\n );\n}\n\nfunction InfoMenu() {\n const isDev = pluginCommitSha === 'dev';\n const shortCommitSha = isDev ? pluginCommitSha : pluginCommitSha.slice(0, 8);\n\n return (\n }>\n window.open(pluginCommitURL)}\n disabled={isDev}\n />\n window.open('https://github.com/grafana/explore-profiles/blob/main/CHANGELOG.md')}\n />\n window.open('https://github.com/grafana/explore-profiles/blob/main/docs/CONTRIBUTING.md')}\n />\n window.open('https://grafana.com/docs/grafana/latest/explore/simplified-exploration/profiles')}\n />\n window.open('https://github.com/grafana/explore-profiles/issues/new?template=bug_report.md')}\n />\n \n window.open(`https://github.com/grafana/grafana/commit/${grafanaBuildInfo.commit}`)}\n />\n \n );\n}\n\nexport function PluginInfo() {\n return (\n } placement=\"bottom-end\">\n \n \n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n menuHeader: css`\n padding: ${theme.spacing(0.5, 1)};\n white-space: nowrap;\n `,\n subTitle: css`\n color: ${theme.colors.text.secondary};\n font-size: ${theme.typography.bodySmall.fontSize};\n `,\n});\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Stack, useStyles2 } from '@grafana/ui';\nimport { QueryAnalysisResult } from '@shared/components/QueryAnalysisTooltip/domain/QueryAnalysis';\nimport { QueryAnalysisTooltip } from '@shared/components/QueryAnalysisTooltip/QueryAnalysisTooltip';\nimport React, { memo, ReactNode } from 'react';\nimport { Helmet } from 'react-helmet';\n\nimport { PluginInfo } from './PluginInfo';\nimport { PyroscopeLogo } from './PyroscopeLogo';\n\ntype PageTitleProps = {\n title: ReactNode;\n queryAnalysis?: QueryAnalysisResult;\n};\n\nfunction PageTitleComponent({ title, queryAnalysis }: PageTitleProps) {\n const styles = useStyles2(getStyles);\n const fullTitle = typeof title === 'string' ? `${title} | Pyroscope` : 'Pyroscope';\n\n return (\n <>\n \n {fullTitle}\n \n
\n \n
\n \n

\n {title}\n

\n
\n
\n \n {queryAnalysis ? : null}\n
\n
\n
\n \n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n titleContainer: css`\n height: ${theme.spacing(5)};\n line-height: ${theme.spacing(5)};\n margin-bottom: ${theme.spacing(3)};\n `,\n title: css`\n font-size: ${theme.typography.h2.fontSize};\n display: inline-block;\n margin: 0;\n position: relative;\n top: 10px;\n left: ${theme.spacing(1)};\n `,\n infoArea: css`\n align-self: end;\n margin-bottom: 0;\n line-height: 20px;\n text-align: right;\n `,\n});\n\nexport const PageTitle = memo(PageTitleComponent);\n","import { PageLayoutType } from '@grafana/data';\nimport { PluginPage } from '@grafana/runtime';\nimport { Icon } from '@grafana/ui';\nimport { PageTitle } from '@shared/ui/PageTitle';\nimport React from 'react';\n\nexport function EmptyLoadingPage() {\n return (\n \n \n Loading... \n
\n }\n />\n \n );\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n link: css`\n color: ${theme.colors.text.link};\n &:hover {\n text-decoration: underline;\n }\n `,\n});\n\nexport function StyledLink({ href, children }: { href: string; children: React.ReactNode }) {\n const styles = useStyles2(getStyles);\n\n return (\n \n {children} {}\n \n );\n}\n","import { PageLayoutType } from '@grafana/data';\nimport { PluginPage } from '@grafana/runtime';\nimport { Alert } from '@grafana/ui';\nimport { PageTitle } from '@shared/ui/PageTitle';\nimport React from 'react';\n\nimport { StyledLink } from './StyledLink';\n\nexport function NoDataSourcePage() {\n return (\n \n \n\n \n This plugin requires a Pyroscope data source. Please{' '}\n add and configure a Pyroscope data source to your\n Grafana instance.\n \n \n );\n}\n","import { DomainHookReturnValue } from '@shared/types/DomainHookReturnValue';\nimport { useState } from 'react';\n\nimport { useFetchInstances } from '../infrastructure/useFetchInstances';\n\nexport function useOnboardingModal(): DomainHookReturnValue {\n const { instances } = useFetchInstances();\n\n const [settingsUrl, setSettingsUrl] = useState('https://grafana.com/auth/sign-in/');\n const isCloud = /grafana(-dev|-ops)?\\.net/.test(window.location.host);\n\n if (instances && instances.orgSlug && instances.hpInstanceId) {\n const newSettingsUrl = `https://grafana.com/orgs/${instances.orgSlug}/hosted-profiles/${instances.hpInstanceId}`;\n\n if (settingsUrl !== newSettingsUrl) {\n setSettingsUrl(newSettingsUrl);\n }\n }\n\n return {\n data: {\n settingsUrl,\n isCloud,\n },\n actions: {},\n };\n}\n","import { useQuery } from '@tanstack/react-query';\n\nexport function useFetchInstances() {\n const { isFetching, error, data } = useQuery({\n queryKey: ['instances'],\n queryFn: () =>\n fetch('/api/plugin-proxy/cloud-home-app/grafanacom-api/instances').then((response) => response.json()),\n });\n\n return {\n isFetching,\n error,\n instances: data,\n };\n}\n","import { css, cx } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport DecreaseLatency from '@img/decrease-latency.png';\nimport HeroImageExploreProfiles from '@img/hero-image-explore-profiles.png';\nimport HeroImage from '@img/hero-image.png';\nimport ReduceCosts from '@img/reduce-costs.png';\nimport ResolveIncidents from '@img/resolve-incidents.png';\nimport React from 'react';\n\nimport { useOnboardingModal } from '../domain/useOnboardingModal';\nimport { StyledLink } from './StyledLink';\n\n/** This was extracted from the former `styles.module.scss` */\n// TODO Use more spacial and color parameters from `theme`\nconst getStyles = (theme: GrafanaTheme2) => ({\n onboardingRow: css`\n background: ${theme.colors.background.secondary};\n display: flex;\n margin-top: 16px;\n gap: 20px;\n padding: 20px;\n margin-bottom: 2.5rem;\n `,\n onboardingParagraph: css`\n padding: 20px 64px;\n text-align: center;\n line-height: 2;\n flex: 1;\n margin: 0;\n `,\n onboardingPanel: css`\n flex: 1;\n display: flex;\n flex-flow: column wrap;\n -webkit-box-align: center;\n align-items: center;\n margin-top: 16px;\n text-align: center;\n `,\n onboardingPanelHeader: css`\n line-height: 1.5;\n margin-bottom: 1em;\n `,\n onboardingPanelImage: css`\n width: 5rem;\n margin-bottom: 1em;\n `,\n hero: css`\n display: flex;\n flex-direction: row;\n `,\n heroTitles: css`\n flex: 1;\n `,\n heroImage: css`\n width: 40%;\n margin-left: 16px;\n margin-top: 16px;\n margin-bottom: 16px;\n border-radius: 3px;\n `,\n onboardingPanelNumber: css`\n color: rgb(236, 109, 19);\n text-align: center;\n display: grid;\n place-items: center;\n background-image: linear-gradient(135deg, currentcolor, 75%, rgb(204, 204, 220));\n border-radius: 100%;\n font-size: 2.5rem;\n line-height: 5rem;\n height: 5rem;\n width: 5rem;\n margin-bottom: 1em;\n `,\n // TODO use theme.colors\n color2: css`\n color: rgb(190, 85, 190);\n `,\n // TODO use theme.colors\n color3: css`\n color: rgb(126, 108, 218);\n `,\n // FIXME use theme.colors\n onboardingPanelNumberSpan: css`\n color: rgb(220, 220, 220);\n `,\n onboardingPanelDescription: css`\n text-align: justify;\n text-align: center;\n line-height: 1.66;\n margin-top: 0;\n `,\n title: css`\n margin-bottom: 0.5em;\n line-height: 1.5;\n `,\n subtitle: css`\n margin-bottom: 1em;\n line-height: 1.5;\n font-size: 1.25rem;\n `,\n});\n\nexport function OnboardingModal() {\n const styles = useStyles2(getStyles);\n const { data } = useOnboardingModal();\n\n return (\n
\n
\n
\n

Welcome to {data.isCloud ? 'Grafana Cloud Profiles' : 'Explore Profiles'}

\n

\n Optimize infrastructure spend, simplify debugging, and enhance application performance\n

\n {/* */}\n
\n \n
\n\n
\n

What You Can Do

\n
\n
\n \n

Reduce Costs

\n

\n Spot CPU spikes, memory leaks, and other inefficiencies with code-level visibility into resource usage.\n Teams can then optimize their code and lower infrastructure costs.\n

\n
\n
\n \n

Decrease Latency

\n

\n Maintain high speed and efficiency and improve application performance. In a competitive digital world,\n decreasing latency translates to increasing revenue.\n

\n
\n
\n \n

Resolve Incidents Faster

\n

\n Cut down the mean time to resolution (MTTR) by correlating continuous profiling data with metrics, logs,\n and traces to quickly identify the root cause of any issue.\n

\n
\n
\n
\n\n
\n

How to Get Started

\n
\n {data.isCloud ? (\n <>\n
\n
\n 1\n
\n

Add Profiling to Your Application

\n

\n Use{' '}\n \n Grafana Alloy\n {' '}\n or{' '}\n \n Pyroscope SDKs\n {' '}\n to push profiles from your applications to Grafana Cloud.\n

\n
\n
\n
\n 2\n
\n

Configure Your Applications

\n

\n Go to Grafana Cloud Stack settings to find your\n Grafana Cloud Credentials.\n

\n
\n
\n
\n 3\n
\n

Start Getting Performance Insights

\n

\n Once you're done with initial setup, refresh this page to see your profiling data.\n

\n
\n \n ) : (\n <>\n
\n
\n 1\n
\n

Set Up Your Pyroscope Server

\n

\n Install Pyroscope Server on\n your infrastructure. Or if you want to use a hosted service, go to{' '}\n Grafana Cloud Stack settings to find your Grafana\n Cloud Credentials.\n

\n
\n
\n
\n 2\n
\n

Configure Grafana

\n

\n Add a new Pyroscope datasource. Use your\n Pyroscope server URL and appropriate security credentials if you use Grafana Cloud Profiles.\n

\n
\n
\n
\n 3\n
\n

Add Profiling to Your Application

\n

\n Use{' '}\n \n Grafana Alloy\n {' '}\n or{' '}\n \n Pyroscope SDKs\n {' '}\n to push profiles from your applications to Grafana Cloud.\n

\n
\n \n )}\n
\n
\n\n {data.isCloud && (\n
\n

How Billing Works

\n
\n

\n Usage of Grafana Cloud Profiles is subject to{' '}\n Grafana Cloud Pricing for Profiles.\n

\n For additional information, read the announcement \n \n blog post\n \n .\n

\n
\n
\n )}\n
\n );\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2, PageLayoutType } from '@grafana/data';\nimport { PluginPage } from '@grafana/runtime';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\n\nimport { OnboardingModal } from './OnboardingModal';\n\ntype OnboardingPageProps = {\n onCloseModal: () => void;\n};\n\n/** This was extracted from the former `styles.module.scss` */\n// TODO Use more spacial and color parameters from `theme`\nconst getStyles = (theme: GrafanaTheme2) => ({\n onboardingPage: css`\n padding: 16px;\n margin: 64px;\n position: relative;\n background-color: ${theme.colors.background.primary};\n `,\n closeButton: css`\n position: absolute;\n top: -30px;\n opacity: 0.8;\n right: -32px;\n border: none;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n line-height: 40px;\n display: block;\n padding: 0;\n margin: 0;\n font-size: 22px;\n `,\n});\n\nconst pageNav = { text: 'Onboarding' };\n\nexport function OnboardingPage({ onCloseModal }: OnboardingPageProps) {\n const styles = useStyles2(getStyles);\n\n return (\n // The use of `PluginPage` is to set a clear \"Onboarding\" breadcrumb\n // Using `Custom` ensures that it takes up the whole page (and doesn't conflict with the other `PluginPage`)\n \n
\n \n ×\n \n \n
\n
\n );\n}\n","import React from 'react';\n\nimport { useOnboarding } from './domain/useOnboarding';\nimport { EmptyLoadingPage } from './ui/EmptyLoadingPage';\nimport { NoDataSourcePage } from './ui/NoDataSourcePage';\nimport { OnboardingPage } from './ui/OnboardingPage';\n\ntype OnboardingProps = {\n children: React.ReactNode;\n};\n\n/**\n * Displays an onboarding dialog instructing how to push data only when data is not present\n */\nexport function Onboarding({ children }: OnboardingProps) {\n const { data, actions } = useOnboarding();\n\n if (data.shouldShowLoadingPage) {\n return ;\n }\n\n if (data.shouldShowOnboardingPage) {\n return ;\n }\n\n if (data.shouldShowNoDataSourceBanner) {\n return ;\n }\n\n return <>{children};\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n container: css`\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: ${theme.spacing(1)};\n width: 100%;\n `,\n column: css`\n width: 50%;\n `,\n});\n\ntype AdHocColumnsProps = {\n left: React.ReactNode;\n right: React.ReactNode;\n};\n\nexport function AdHocColumns({ left, right }: AdHocColumnsProps) {\n const styles = useStyles2(getStyles);\n\n return (\n
\n
{left}
\n
{right}
\n
\n );\n}\n","import { AppEvents } from '@grafana/data';\nimport { getAppEvents } from '@grafana/runtime';\nimport { logger } from '@shared/infrastructure/tracking/logger';\n\nexport function displayError(error: Error, msgs: string[]) {\n const context = msgs.reduce((acc, msg, i) => ({ ...acc, [`info${i + 1}`]: msg }), { handheldBy: 'displayError' });\n\n logger.error(error, context);\n\n getAppEvents().publish({\n type: AppEvents.alertError.name,\n payload: msgs,\n });\n}\n\nexport function displayWarning(msgs: string[]) {\n logger.warn(msgs);\n\n getAppEvents().publish({\n type: AppEvents.alertWarning.name,\n payload: msgs,\n });\n}\n\nexport function displaySuccess(msgs: string[]) {\n getAppEvents().publish({\n type: AppEvents.alertSuccess.name,\n payload: msgs,\n });\n}\n","import { ApiClient } from '@shared/infrastructure/http/ApiClient';\n\nimport { AdHocProfile } from '../domain/AdHocProfile';\nimport { stripBase64Prefix } from './helpers/stripBase64Prefix';\n\nclass AdHocProfileClient extends ApiClient {\n async get(profileId: string, profileType: string): Promise {\n const response = await this.fetch('/adhocprofiles.v1.AdHocProfileService/Get', {\n method: 'POST',\n body: JSON.stringify({\n id: profileId,\n profile_type: profileType,\n }),\n });\n\n const json = await response.json();\n\n return {\n id: json.id,\n name: json.name,\n profileTypes: json.profileTypes,\n profile: JSON.parse(json.flamebearerProfile),\n };\n }\n\n async uploadSingle(file: File): Promise {\n const profile = await this._readProfileFile(file);\n\n const response = await this.fetch('/adhocprofiles.v1.AdHocProfileService/Upload', {\n method: 'POST',\n body: JSON.stringify({\n name: file.name,\n profile,\n }),\n });\n\n const json = await response.json();\n\n return {\n id: json.id,\n name: file.name,\n profileTypes: json.profileTypes,\n // when the uploaded file contains multiple sample types, the 1st is always returned by the API\n profile: JSON.parse(json.flamebearerProfile),\n };\n }\n\n // TODO\n async uploadDiff() {\n return {\n id: '?',\n name: '??',\n profileTypes: [],\n profile: null,\n };\n }\n\n async _readProfileFile(file: File): Promise {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n\n fileReader.addEventListener('load', () => {\n try {\n resolve(stripBase64Prefix(fileReader.result as string));\n } catch (error) {\n reject(error);\n }\n });\n\n fileReader.addEventListener('error', (/*event: ProgressEvent*/) => {\n // TODO: upgrade TS lib compiler option to support latest JS features\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause\n reject(new Error(`Error while reading file \"${file.name}\"!` /*, { cause: event }*/));\n });\n\n fileReader.readAsDataURL(file);\n });\n }\n}\n\nexport const adHocProfileClient = new AdHocProfileClient();\n","export function stripBase64Prefix(fileContent: string): string {\n const [, base64Content] = fileContent.split(';base64,');\n\n if (!base64Content) {\n throw new Error('No content after stripping the base64 prefix.');\n }\n\n if (fileContent === base64Content) {\n throw new Error('No base64 prefix?!');\n }\n\n return base64Content;\n}\n","import { SelectableValue } from '@grafana/data';\nimport { displayError } from '@shared/domain/displayStatus';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { adHocProfileClient } from '../infrastructure/adHocProfileClient';\nimport { AdHocProfile } from './AdHocProfile';\n\nconst DEFAULT_PROFILE_DATA: AdHocProfile = {\n id: '',\n name: '',\n profileTypes: [],\n profile: null,\n};\n\nexport function useUploadFile() {\n const [isLoading, setIsLoading] = useState(false);\n const [profileData, setProfileData] = useState(DEFAULT_PROFILE_DATA);\n\n useEffect(() => {\n return () => {\n adHocProfileClient.abort();\n };\n }, []);\n\n const removeFile = useCallback(() => {\n adHocProfileClient.abort();\n\n setIsLoading(false);\n setProfileData(DEFAULT_PROFILE_DATA);\n }, []);\n\n const processFile = useCallback(\n async (file: File) => {\n removeFile();\n\n try {\n setIsLoading(true);\n\n const data = await adHocProfileClient.uploadSingle(file);\n\n setProfileData(data);\n } catch (error) {\n setProfileData(DEFAULT_PROFILE_DATA);\n\n if (!adHocProfileClient.isAbortError(error)) {\n displayError(error as Error, ['Error while uploading profile!', (error as Error).message]);\n }\n }\n\n setIsLoading(false);\n },\n [removeFile]\n );\n\n const removeProfile = () => {\n adHocProfileClient.abort();\n\n setIsLoading(false);\n setProfileData((prevData) => ({ ...prevData, profile: null }));\n };\n\n const selectProfileType = useCallback(\n async (option: SelectableValue) => {\n const profileType = option.value;\n\n if (!profileType || !profileData.id || !profileData.profileTypes.includes(profileType)) {\n return;\n }\n\n removeProfile();\n\n setIsLoading(true);\n\n try {\n const data = await adHocProfileClient.get(profileData.id, profileType);\n\n setProfileData((prevData) => ({\n ...prevData,\n profile: data.profile,\n }));\n } catch (error) {\n if (!adHocProfileClient.isAbortError(error)) {\n displayError(error as Error, ['Error while fetching profile!', (error as Error).message]);\n }\n }\n\n setIsLoading(false);\n },\n [profileData.id, profileData.profileTypes]\n );\n\n return {\n processFile,\n profileTypes: profileData.profileTypes,\n selectProfileType,\n profile: profileData.profile,\n removeFile,\n isLoading,\n };\n}\n","import { DropzoneFile, FileDropzone } from '@grafana/ui';\nimport { displayError } from '@shared/domain/displayStatus';\nimport React, { useCallback } from 'react';\n\nimport { ACCEPTED_FILE_TYPES } from '../domain/accepted-file-types';\n\nconst options = {\n accept: ACCEPTED_FILE_TYPES,\n multiple: false,\n // maxSize: 42, // TODO?\n onError(error: Error) {\n displayError(error, ['Error while uploading file!', error.toString()]);\n },\n};\n\ntype AdHocFileDropZoneProps = {\n onFileDropped: (file: File) => void;\n onFileRemove: (file: DropzoneFile) => void;\n};\n\nexport function AdHocFileDropZone({ onFileDropped, onFileRemove }: AdHocFileDropZoneProps) {\n const onDropAccepted = useCallback(\n function (files: File[]) {\n onFileDropped(files[0]);\n },\n [onFileDropped]\n );\n\n return (\n \n );\n}\n","export const ACCEPTED_FILE_TYPES = {\n 'application/gzip': ['.gz'],\n 'application/json': ['.json'],\n 'application/proto': ['.pb', '.pprof'],\n};\n","/**\n* Copyright (c) 2023, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uFuzzy.js (μFuzzy)\n* A tiny, efficient fuzzy matcher that doesn't suck\n* https://github.com/leeoniya/uFuzzy (v1.0.14)\n*/\n\nconst cmp = new Intl.Collator('en', { numeric: true, sensitivity: 'base' }).compare;\n\nconst inf = Infinity;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping\nconst escapeRegExp = str => str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n// meh, magic tmp placeholder, must be tolerant to toLocaleLowerCase(), interSplit, and intraSplit\nconst EXACT_HERE = 'eexxaacctt';\n\nconst LATIN_UPPER = 'A-Z';\nconst LATIN_LOWER = 'a-z';\n\nconst swapAlpha = (str, upper, lower) => str.replace(LATIN_UPPER, upper).replace(LATIN_LOWER, lower);\n\nconst OPTS = {\n\t// whether regexps use a /u unicode flag\n\tunicode: false,\n\n\talpha: null,\n\n\t// term segmentation & punct/whitespace merging\n\tinterSplit: \"[^A-Za-z\\\\d']+\",\n\tintraSplit: \"[a-z][A-Z]\",\n\n\t// intra bounds that will be used to increase lft1/rgt1 info counters\n\tintraBound: \"[A-Za-z]\\\\d|\\\\d[A-Za-z]|[a-z][A-Z]\",\n\n\t// inter-bounds mode\n\t// 2 = strict (will only match 'man' on whitepace and punct boundaries: Mega Man, Mega_Man, mega.man)\n\t// 1 = loose (plus allowance for alpha-num and case-change boundaries: MegaMan, 0007man)\n\t// 0 = any (will match 'man' as any substring: megamaniac)\n\tinterLft: 0,\n\tinterRgt: 0,\n\n\t// allowance between terms\n\tinterChars: '.',\n\tinterIns: inf,\n\n\t// allowance between chars in terms\n\tintraChars: \"[a-z\\\\d']\", // internally case-insensitive\n\tintraIns: null,\n\n\tintraContr: \"'[a-z]{1,2}\\\\b\",\n\n\t// multi-insert or single-error mode\n\tintraMode: 0,\n\n\t// single-error bounds for errors within terms, default requires exact first char\n\tintraSlice: [1, inf],\n\n\t// single-error tolerance toggles\n\tintraSub: null,\n\tintraTrn: null,\n\tintraDel: null,\n\n\t// can post-filter matches that are too far apart in distance or length\n\t// (since intraIns is between each char, it can accum to nonsense matches)\n\tintraFilt: (term, match, index) => true, // should this also accept WIP info?\n\n\t// final sorting fn\n\tsort: (info, haystack, needle) => {\n\t\tlet {\n\t\t\tidx,\n\t\t\tchars,\n\t\t\tterms,\n\t\t\tinterLft2,\n\t\t\tinterLft1,\n\t\t//\tinterRgt2,\n\t\t//\tinterRgt1,\n\t\t\tstart,\n\t\t\tintraIns,\n\t\t\tinterIns,\n\t\t} = info;\n\n\t\treturn idx.map((v, i) => i).sort((ia, ib) => (\n\t\t\t// most contig chars matched\n\t\t\tchars[ib] - chars[ia] ||\n\t\t\t// least char intra-fuzz (most contiguous)\n\t\t\tintraIns[ia] - intraIns[ib] ||\n\t\t\t// most prefix bounds, boosted by full term matches\n\t\t\t(\n\t\t\t\t(terms[ib] + interLft2[ib] + 0.5 * interLft1[ib]) -\n\t\t\t\t(terms[ia] + interLft2[ia] + 0.5 * interLft1[ia])\n\t\t\t) ||\n\t\t\t// highest density of match (least span)\n\t\t//\tspan[ia] - span[ib] ||\n\t\t\t// highest density of match (least term inter-fuzz)\n\t\t\tinterIns[ia] - interIns[ib] ||\n\t\t\t// earliest start of match\n\t\t\tstart[ia] - start[ib] ||\n\t\t\t// alphabetic\n\t\t\tcmp(haystack[idx[ia]], haystack[idx[ib]])\n\t\t));\n\t},\n};\n\nconst lazyRepeat = (chars, limit) => (\n\tlimit == 0 ? '' :\n\tlimit == 1 ? chars + '??' :\n\tlimit == inf ? chars + '*?' :\n\t chars + `{0,${limit}}?`\n);\n\nconst mode2Tpl = '(?:\\\\b|_)';\n\nfunction uFuzzy(opts) {\n\topts = Object.assign({}, OPTS, opts);\n\n\tlet {\n\t\tunicode,\n\t\tinterLft,\n\t\tinterRgt,\n\t\tintraMode,\n\t\tintraSlice,\n\t\tintraIns,\n\t\tintraSub,\n\t\tintraTrn,\n\t\tintraDel,\n\t\tintraContr,\n\t\tintraSplit: _intraSplit,\n\t\tinterSplit: _interSplit,\n\t\tintraBound: _intraBound,\n\t\tintraChars,\n\t} = opts;\n\n\tintraIns ??= intraMode;\n\tintraSub ??= intraMode;\n\tintraTrn ??= intraMode;\n\tintraDel ??= intraMode;\n\n\tlet alpha = opts.letters ?? opts.alpha;\n\n\tif (alpha != null) {\n\t\tlet upper = alpha.toLocaleUpperCase();\n\t\tlet lower = alpha.toLocaleLowerCase();\n\n\t\t_interSplit = swapAlpha(_interSplit, upper, lower);\n\t\t_intraSplit = swapAlpha(_intraSplit, upper, lower);\n\t\t_intraBound = swapAlpha(_intraBound, upper, lower);\n\t\tintraChars = swapAlpha(intraChars, upper, lower);\n\t\tintraContr = swapAlpha(intraContr, upper, lower);\n\t}\n\n\tlet uFlag = unicode ? 'u' : '';\n\n\tconst quotedAny = '\".+?\"';\n\tconst EXACTS_RE = new RegExp(quotedAny, 'gi' + uFlag);\n\tconst NEGS_RE = new RegExp(`(?:\\\\s+|^)-(?:${intraChars}+|${quotedAny})`, 'gi' + uFlag);\n\n\tlet { intraRules } = opts;\n\n\tif (intraRules == null) {\n\t\tintraRules = p => {\n\t\t\t// default is exact term matches only\n\t\t\tlet _intraSlice = OPTS.intraSlice, // requires first char\n\t\t\t\t_intraIns = 0,\n\t\t\t\t_intraSub = 0,\n\t\t\t\t_intraTrn = 0,\n\t\t\t\t_intraDel = 0;\n\n\t\t\t// only-digits strings should match exactly, else special rules for short strings\n\t\t\tif (/[^\\d]/.test(p)) {\n\t\t\t\tlet plen = p.length;\n\n\t\t\t\t// prevent junk matches by requiring stricter rules for short terms\n\t\t\t\tif (plen <= 4) {\n\t\t\t\t\tif (plen >= 3) {\n\t\t\t\t\t\t// one swap in non-first char when 3-4 chars\n\t\t\t\t\t\t_intraTrn = Math.min(intraTrn, 1);\n\n\t\t\t\t\t\t// or one insertion when 4 chars\n\t\t\t\t\t\tif (plen == 4)\n\t\t\t\t\t\t\t_intraIns = Math.min(intraIns, 1);\n\t\t\t\t\t}\n\t\t\t\t\t// else exact match when 1-2 chars\n\t\t\t\t}\n\t\t\t\t// use supplied opts\n\t\t\t\telse {\n\t\t\t\t\t_intraSlice = intraSlice;\n\t\t\t\t\t_intraIns = intraIns,\n\t\t\t\t\t_intraSub = intraSub,\n\t\t\t\t\t_intraTrn = intraTrn,\n\t\t\t\t\t_intraDel = intraDel;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tintraSlice: _intraSlice,\n\t\t\t\tintraIns: _intraIns,\n\t\t\t\tintraSub: _intraSub,\n\t\t\t\tintraTrn: _intraTrn,\n\t\t\t\tintraDel: _intraDel,\n\t\t\t};\n\t\t};\n\t}\n\n\tlet withIntraSplit = !!_intraSplit;\n\n\tlet intraSplit = new RegExp(_intraSplit, 'g' + uFlag);\n\tlet interSplit = new RegExp(_interSplit, 'g' + uFlag);\n\n\tlet trimRe = new RegExp('^' + _interSplit + '|' + _interSplit + '$', 'g' + uFlag);\n\tlet contrsRe = new RegExp(intraContr, 'gi' + uFlag);\n\n\tconst split = needle => {\n\t\tlet exacts = [];\n\n\t\tneedle = needle.replace(EXACTS_RE, m => {\n\t\t\texacts.push(m);\n\t\t\treturn EXACT_HERE;\n\t\t});\n\n\t\tneedle = needle.replace(trimRe, '').toLocaleLowerCase();\n\n\t\tif (withIntraSplit)\n\t\t\tneedle = needle.replace(intraSplit, m => m[0] + ' ' + m[1]);\n\n\t\tlet j = 0;\n\t\treturn needle.split(interSplit).filter(t => t != '').map(v => v === EXACT_HERE ? exacts[j++] : v);\n\t};\n\n\tconst NUM_OR_ALPHA_RE = /[^\\d]+|\\d+/g;\n\n\tconst prepQuery = (needle, capt = 0, interOR = false) => {\n\t\t// split on punct, whitespace, num-alpha, and upper-lower boundaries\n\t\tlet parts = split(needle);\n\n\t\tif (parts.length == 0)\n\t\t\treturn [];\n\n\t\t// split out any detected contractions for each term that become required suffixes\n\t\tlet contrs = Array(parts.length).fill('');\n\t\tparts = parts.map((p, pi) => p.replace(contrsRe, m => {\n\t\t\tcontrs[pi] = m;\n\t\t\treturn '';\n\t\t}));\n\n\t\t// array of regexp tpls for each term\n\t\tlet reTpl;\n\n\t\t// allows single mutations within each term\n\t\tif (intraMode == 1) {\n\t\t\treTpl = parts.map((p, pi) => {\n\t\t\t\tif (p[0] === '\"')\n\t\t\t\t\treturn escapeRegExp(p.slice(1, -1));\n\n\t\t\t\tlet reTpl = '';\n\n\t\t\t\t// split into numeric and alpha parts, so numbers are only matched as following punct or alpha boundaries, without swaps or insertions\n\t\t\t\tfor (let m of p.matchAll(NUM_OR_ALPHA_RE)) {\n\t\t\t\t\tlet p = m[0];\n\n\t\t\t\t\tlet {\n\t\t\t\t\t\tintraSlice,\n\t\t\t\t\t\tintraIns,\n\t\t\t\t\t\tintraSub,\n\t\t\t\t\t\tintraTrn,\n\t\t\t\t\t\tintraDel,\n\t\t\t\t\t} = intraRules(p);\n\n\t\t\t\t\tif (intraIns + intraSub + intraTrn + intraDel == 0)\n\t\t\t\t\t\treTpl += p + contrs[pi];\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet [lftIdx, rgtIdx] = intraSlice;\n\t\t\t\t\t\tlet lftChar = p.slice(0, lftIdx); // prefix\n\t\t\t\t\t\tlet rgtChar = p.slice(rgtIdx); // suffix\n\n\t\t\t\t\t\tlet chars = p.slice(lftIdx, rgtIdx);\n\n\t\t\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\t\t\tif (intraIns == 1 && lftChar.length == 1 && lftChar != chars[0])\n\t\t\t\t\t\t\tlftChar += '(?!' + lftChar + ')';\n\n\t\t\t\t\t\tlet numChars = chars.length;\n\n\t\t\t\t\t\tlet variants = [p];\n\n\t\t\t\t\t\t// variants with single char substitutions\n\t\t\t\t\t\tif (intraSub) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraChars + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single transpositions\n\t\t\t\t\t\tif (intraTrn) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars - 1; i++) {\n\t\t\t\t\t\t\t\tif (chars[i] != chars[i+1])\n\t\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + chars[i+1] + chars[i] + chars.slice(i + 2) + rgtChar);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char omissions\n\t\t\t\t\t\tif (intraDel) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i + 1) + '?' + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char insertions\n\t\t\t\t\t\tif (intraIns) {\n\t\t\t\t\t\t\tlet intraInsTpl = lazyRepeat(intraChars, 1);\n\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraInsTpl + chars.slice(i) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treTpl += '(?:' + variants.join('|') + ')' + contrs[pi];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t//\tconsole.log(reTpl);\n\n\t\t\t\treturn reTpl;\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet intraInsTpl = lazyRepeat(intraChars, intraIns);\n\n\t\t\t// capture at char level\n\t\t\tif (capt == 2 && intraIns > 0) {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\tintraInsTpl = ')(' + intraInsTpl + ')(';\n\t\t\t}\n\n\t\t\treTpl = parts.map((p, pi) => p[0] === '\"' ? escapeRegExp(p.slice(1, -1)) : p.split('').map((c, i, chars) => {\n\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\tif (intraIns == 1 && i == 0 && chars.length > 1 && c != chars[i+1])\n\t\t\t\t\tc += '(?!' + c + ')';\n\n\t\t\t\treturn c;\n\t\t\t}).join(intraInsTpl) + contrs[pi]);\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\t// this only helps to reduce initial matches early when they can be detected\n\t\t// TODO: might want a mode 3 that excludes _\n\t\tlet preTpl = interLft == 2 ? mode2Tpl : '';\n\t\tlet sufTpl = interRgt == 2 ? mode2Tpl : '';\n\n\t\tlet interCharsTpl = sufTpl + lazyRepeat(opts.interChars, opts.interIns) + preTpl;\n\n\t\t// capture at word level\n\t\tif (capt > 0) {\n\t\t\tif (interOR) {\n\t\t\t\t// this is basically for doing .matchAll() occurence counting and highlighting without needing permuted ooo needles\n\t\t\t\treTpl = preTpl + '(' + reTpl.join(')' + sufTpl + '|' + preTpl + '(') + ')' + sufTpl;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\treTpl = '(' + reTpl.join(')(' + interCharsTpl + ')(') + ')';\n\t\t\t\treTpl = '(.??' + preTpl + ')' + reTpl + '(' + sufTpl + '.*)'; // nit: trailing capture here assumes interIns = Inf\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treTpl = reTpl.join(interCharsTpl);\n\t\t\treTpl = preTpl + reTpl + sufTpl;\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\treturn [new RegExp(reTpl, 'i' + uFlag), parts, contrs];\n\t};\n\n\tconst filter = (haystack, needle, idxs) => {\n\n\t\tlet [query] = prepQuery(needle);\n\n\t\tif (query == null)\n\t\t\treturn null;\n\n\t\tlet out = [];\n\n\t\tif (idxs != null) {\n\t\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\t\tlet idx = idxs[i];\n\t\t\t\tquery.test(haystack[idx]) && out.push(idx);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor (let i = 0; i < haystack.length; i++)\n\t\t\t\tquery.test(haystack[i]) && out.push(i);\n\t\t}\n\n\t\treturn out;\n\t};\n\n\tlet withIntraBound = !!_intraBound;\n\n\tlet interBound = new RegExp(_interSplit, uFlag);\n\tlet intraBound = new RegExp(_intraBound, uFlag);\n\n\tconst info = (idxs, haystack, needle) => {\n\n\t\tlet [query, parts, contrs] = prepQuery(needle, 1);\n\t\tlet [queryR] = prepQuery(needle, 2);\n\t\tlet partsLen = parts.length;\n\n\t\tlet len = idxs.length;\n\n\t\tlet field = Array(len).fill(0);\n\n\t\tlet info = {\n\t\t\t// idx in haystack\n\t\t\tidx: Array(len),\n\n\t\t\t// start of match\n\t\t\tstart: field.slice(),\n\t\t\t// length of match\n\t\t//\tspan: field.slice(),\n\n\t\t\t// contiguous chars matched\n\t\t\tchars: field.slice(),\n\n\t\t\t// contiguous (no fuzz) and bounded terms (intra=0, lft2/1, rgt2/1)\n\t\t\t// excludes terms that are contiguous but have < 2 bounds (substrings)\n\t\t\tterms: field.slice(),\n\n\t\t\t// cumulative length of unmatched chars (fuzz) within span\n\t\t\tinterIns: field.slice(), // between terms\n\t\t\tintraIns: field.slice(), // within terms\n\n\t\t\t// interLft/interRgt counters\n\t\t\tinterLft2: field.slice(),\n\t\t\tinterRgt2: field.slice(),\n\t\t\tinterLft1: field.slice(),\n\t\t\tinterRgt1: field.slice(),\n\n\t\t\tranges: Array(len),\n\t\t};\n\n\t\t// might discard idxs based on bounds checks\n\t\tlet mayDiscard = interLft == 1 || interRgt == 1;\n\n\t\tlet ii = 0;\n\n\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\tlet mhstr = haystack[idxs[i]];\n\n\t\t\t// the matched parts are [full, junk, term, junk, term, junk]\n\t\t\tlet m = mhstr.match(query);\n\n\t\t\t// leading junk\n\t\t\tlet start = m.index + m[1].length;\n\n\t\t\tlet idxAcc = start;\n\t\t//\tlet span = m[0].length;\n\n\t\t\tlet disc = false;\n\t\t\tlet lft2 = 0;\n\t\t\tlet lft1 = 0;\n\t\t\tlet rgt2 = 0;\n\t\t\tlet rgt1 = 0;\n\t\t\tlet chars = 0;\n\t\t\tlet terms = 0;\n\t\t\tlet inter = 0;\n\t\t\tlet intra = 0;\n\n\t\t\tlet refine = [];\n\n\t\t\tfor (let j = 0, k = 2; j < partsLen; j++, k+=2) {\n\t\t\t\tlet group = m[k].toLocaleLowerCase();\n\t\t\t\tlet part = parts[j];\n\t\t\t\tlet term = part[0] == '\"' ? part.slice(1, -1) : part + contrs[j];\n\t\t\t\tlet termLen = term.length;\n\t\t\t\tlet groupLen = group.length;\n\t\t\t\tlet fullMatch = group == term;\n\n\t\t\t\t// this won't handle the case when an exact match exists across the boundary of the current group and the next junk\n\t\t\t\t// e.g. blob,ob when searching for 'bob' but finding the earlier `blob` (with extra insertion)\n\t\t\t\tif (!fullMatch && m[k+1].length >= termLen) {\n\t\t\t\t\t// probe for exact match in inter junk (TODO: maybe even in this matched part?)\n\t\t\t\t\tlet idxOf = m[k+1].toLocaleLowerCase().indexOf(term);\n\n\t\t\t\t\tif (idxOf > -1) {\n\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (mayDiscard || fullMatch) {\n\t\t\t\t\t// does group's left and/or right land on \\b\n\t\t\t\t\tlet lftCharIdx = idxAcc - 1;\n\t\t\t\t\tlet rgtCharIdx = idxAcc + groupLen;\n\n\t\t\t\t\tlet isPre = false;\n\t\t\t\t\tlet isSuf = false;\n\n\t\t\t\t\t// prefix info\n\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\tfullMatch && lft2++;\n\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interLft == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[lftCharIdx] + mhstr[lftCharIdx + 1])) {\n\t\t\t\t\t\t\tfullMatch && lft1++;\n\t\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interLft == 1) {\n\t\t\t\t\t\t\t\t// regexps are eager, so try to improve the match by probing forward inter junk for exact match at a boundary\n\t\t\t\t\t\t\t\tlet junk = m[k+1];\n\t\t\t\t\t\t\t\tlet junkIdx = idxAcc + groupLen;\n\n\t\t\t\t\t\t\t\tif (junk.length >= termLen) {\n\t\t\t\t\t\t\t\t\tlet idxOf = 0;\n\t\t\t\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\t\t\t\tlet re = new RegExp(term, 'ig' + uFlag);\n\n\t\t\t\t\t\t\t\t\tlet m2;\n\t\t\t\t\t\t\t\t\twhile (m2 = re.exec(junk)) {\n\t\t\t\t\t\t\t\t\t\tidxOf = m2.index;\n\n\t\t\t\t\t\t\t\t\t\tlet charIdx = junkIdx + idxOf;\n\t\t\t\t\t\t\t\t\t\tlet lftCharIdx = charIdx - 1;\n\n\t\t\t\t\t\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft2++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (intraBound.test(mhstr[lftCharIdx] + mhstr[charIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft1++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (found) {\n\t\t\t\t\t\t\t\t\t\tisPre = true;\n\n\t\t\t\t\t\t\t\t\t\t// identical to exact term refinement pass above\n\t\t\t\t\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!isPre) {\n\t\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// suffix info\n\t\t\t\t\tif (rgtCharIdx == mhstr.length || interBound.test(mhstr[rgtCharIdx])) {\n\t\t\t\t\t\tfullMatch && rgt2++;\n\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interRgt == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[rgtCharIdx - 1] + mhstr[rgtCharIdx])) {\n\t\t\t\t\t\t\tfullMatch && rgt1++;\n\t\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interRgt == 1) {\n\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fullMatch) {\n\t\t\t\t\t\tchars += termLen;\n\n\t\t\t\t\t\tif (isPre && isSuf)\n\t\t\t\t\t\t\tterms++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (groupLen > termLen)\n\t\t\t\t\tintra += groupLen - termLen; // intraFuzz\n\n\t\t\t\tif (j > 0)\n\t\t\t\t\tinter += m[k-1].length; // interFuzz\n\n\t\t\t\t// TODO: group here is lowercased, which is okay for length cmp, but not more case-sensitive filts\n\t\t\t\tif (!opts.intraFilt(term, group, idxAcc)) {\n\t\t\t\t\tdisc = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (j < partsLen - 1)\n\t\t\t\t\tidxAcc += groupLen + m[k+1].length;\n\t\t\t}\n\n\t\t\tif (!disc) {\n\t\t\t\tinfo.idx[ii] = idxs[i];\n\t\t\t\tinfo.interLft2[ii] = lft2;\n\t\t\t\tinfo.interLft1[ii] = lft1;\n\t\t\t\tinfo.interRgt2[ii] = rgt2;\n\t\t\t\tinfo.interRgt1[ii] = rgt1;\n\t\t\t\tinfo.chars[ii] = chars;\n\t\t\t\tinfo.terms[ii] = terms;\n\t\t\t\tinfo.interIns[ii] = inter;\n\t\t\t\tinfo.intraIns[ii] = intra;\n\n\t\t\t\tinfo.start[ii] = start;\n\t\t\t//\tinfo.span[ii] = span;\n\n\t\t\t\t// ranges\n\t\t\t\tlet m = mhstr.match(queryR);\n\n\t\t\t\tlet idxAcc = m.index + m[1].length;\n\n\t\t\t\tlet refLen = refine.length;\n\t\t\t\tlet ri = refLen > 0 ? 0 : Infinity;\n\t\t\t\tlet lastRi = refLen - 4;\n\n\t\t\t\tfor (let i = 2; i < m.length;) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tif (ri <= lastRi && refine[ri] == idxAcc) {\n\t\t\t\t\t\tlet groupLen = refine[ri+1];\n\t\t\t\t\t\tlet idxOf = refine[ri+2];\n\t\t\t\t\t\tlet termLen = refine[ri+3];\n\n\t\t\t\t\t\t// advance to end of original (full) group match that includes intra-junk\n\t\t\t\t\t\tlet j = i;\n\t\t\t\t\t\tlet v = '';\n\t\t\t\t\t\tfor (let _len = 0; _len < groupLen; j++) {\n\t\t\t\t\t\t\tv += m[j];\n\t\t\t\t\t\t\t_len += m[j].length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tm.splice(i, j - i, v);\n\n\t\t\t\t\t\tidxAcc += refineMatch(m, i, idxOf, termLen);\n\n\t\t\t\t\t\tri += 4;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tidxAcc += len;\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tidxAcc = m.index + m[1].length;\n\n\t\t\t\tlet ranges = info.ranges[ii] = [];\n\t\t\t\tlet from = idxAcc;\n\t\t\t\tlet to = idxAcc;\n\n\t\t\t\tfor (let i = 2; i < m.length; i++) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tidxAcc += len;\n\n\t\t\t\t\tif (i % 2 == 0)\n\t\t\t\t\t\tto = idxAcc;\n\t\t\t\t\telse if (len > 0) {\n\t\t\t\t\t\tranges.push(from, to);\n\t\t\t\t\t\tfrom = to = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (to > from)\n\t\t\t\t\tranges.push(from, to);\n\n\t\t\t\tii++;\n\t\t\t}\n\t\t}\n\n\t\t// trim arrays\n\t\tif (ii < idxs.length) {\n\t\t\tfor (let k in info)\n\t\t\t\tinfo[k] = info[k].slice(0, ii);\n\t\t}\n\n\t\treturn info;\n\t};\n\n\tconst refineMatch = (m, k, idxInNext, termLen) => {\n\t\t// shift the current group into the prior junk\n\t\tlet prepend = m[k] + m[k+1].slice(0, idxInNext);\n\t\tm[k-1] += prepend;\n\t\tm[k] = m[k+1].slice(idxInNext, idxInNext + termLen);\n\t\tm[k+1] = m[k+1].slice(idxInNext + termLen);\n\t\treturn prepend.length;\n\t};\n\n\tconst OOO_TERMS_LIMIT = 5;\n\n\t// returns [idxs, info, order]\n\tconst _search = (haystack, needle, outOfOrder, infoThresh = 1e3, preFiltered) => {\n\t\toutOfOrder = !outOfOrder ? 0 : outOfOrder === true ? OOO_TERMS_LIMIT : outOfOrder;\n\n\t\tlet needles = null;\n\t\tlet matches = null;\n\n\t\tlet negs = [];\n\n\t\tneedle = needle.replace(NEGS_RE, m => {\n\t\t\tlet neg = m.trim().slice(1);\n\n\t\t\tif (neg[0] === '\"')\n\t\t\t\tneg = escapeRegExp(neg.slice(1,-1));\n\n\t\t\tnegs.push(neg);\n\t\t\treturn '';\n\t\t});\n\n\t\tlet terms = split(needle);\n\n\t\tlet negsRe;\n\n\t\tif (negs.length > 0) {\n\t\t\tnegsRe = new RegExp(negs.join('|'), 'i' + uFlag);\n\n\t\t\tif (terms.length == 0) {\n\t\t\t\tlet idxs = [];\n\n\t\t\t\tfor (let i = 0; i < haystack.length; i++) {\n\t\t\t\t\tif (!negsRe.test(haystack[i]))\n\t\t\t\t\t\tidxs.push(i);\n\t\t\t\t}\n\n\t\t\t\treturn [idxs, null, null];\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// abort search (needle is empty after pre-processing, e.g. no alpha-numeric chars)\n\t\t\tif (terms.length == 0)\n\t\t\t\treturn [null, null, null];\n\t\t}\n\n\t//\tconsole.log(negs);\n\t//\tconsole.log(needle);\n\n\t\tif (outOfOrder > 0) {\n\t\t\t// since uFuzzy is an AND-based search, we can iteratively pre-reduce the haystack by searching\n\t\t\t// for each term in isolation before running permutations on what's left.\n\t\t\t// this is a major perf win. e.g. searching \"test man ger pp a\" goes from 570ms -> 14ms\n\t\t\tlet terms = split(needle);\n\n\t\t\tif (terms.length > 1) {\n\t\t\t\t// longest -> shortest\n\t\t\t\tlet terms2 = terms.slice().sort((a, b) => b.length - a.length);\n\n\t\t\t\tfor (let ti = 0; ti < terms2.length; ti++) {\n\t\t\t\t\t// no haystack item contained all terms\n\t\t\t\t\tif (preFiltered?.length == 0)\n\t\t\t\t\t\treturn [[], null, null];\n\n\t\t\t\t\tpreFiltered = filter(haystack, terms2[ti], preFiltered);\n\t\t\t\t}\n\n\t\t\t\t// avoid combinatorial explosion by limiting outOfOrder to 5 terms (120 max searches)\n\t\t\t\t// fall back to just filter() otherwise\n\t\t\t\tif (terms.length > outOfOrder)\n\t\t\t\t\treturn [preFiltered, null, null];\n\n\t\t\t\tneedles = permute(terms).map(perm => perm.join(' '));\n\n\t\t\t\t// filtered matches for each needle excluding same matches for prior needles\n\t\t\t\tmatches = [];\n\n\t\t\t\t// keeps track of already-matched idxs to skip in follow-up permutations\n\t\t\t\tlet matchedIdxs = new Set();\n\n\t\t\t\tfor (let ni = 0; ni < needles.length; ni++) {\n\t\t\t\t\tif (matchedIdxs.size < preFiltered.length) {\n\t\t\t\t\t\t// filter further for this needle, exclude already-matched\n\t\t\t\t\t\tlet preFiltered2 = preFiltered.filter(idx => !matchedIdxs.has(idx));\n\n\t\t\t\t\t\tlet matched = filter(haystack, needles[ni], preFiltered2);\n\n\t\t\t\t\t\tfor (let j = 0; j < matched.length; j++)\n\t\t\t\t\t\t\tmatchedIdxs.add(matched[j]);\n\n\t\t\t\t\t\tmatches.push(matched);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tmatches.push([]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// interOR\n\t//\tconsole.log(prepQuery(needle, 1, null, true));\n\n\t\t// non-ooo or ooo w/single term\n\t\tif (needles == null) {\n\t\t\tneedles = [needle];\n\t\t\tmatches = [preFiltered?.length > 0 ? preFiltered : filter(haystack, needle)];\n\t\t}\n\n\t\tlet retInfo = null;\n\t\tlet retOrder = null;\n\n\t\tif (negs.length > 0)\n\t\t\tmatches = matches.map(idxs => idxs.filter(idx => !negsRe.test(haystack[idx])));\n\n\t\tlet matchCount = matches.reduce((acc, idxs) => acc + idxs.length, 0);\n\n\t\t// rank, sort, concat\n\t\tif (matchCount <= infoThresh) {\n\t\t\tretInfo = {};\n\t\t\tretOrder = [];\n\n\t\t\tfor (let ni = 0; ni < matches.length; ni++) {\n\t\t\t\tlet idxs = matches[ni];\n\n\t\t\t\tif (idxs == null || idxs.length == 0)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tlet needle = needles[ni];\n\t\t\t\tlet _info = info(idxs, haystack, needle);\n\t\t\t\tlet order = opts.sort(_info, haystack, needle);\n\n\t\t\t\t// offset idxs for concat'ing infos\n\t\t\t\tif (ni > 0) {\n\t\t\t\t\tfor (let i = 0; i < order.length; i++)\n\t\t\t\t\t\torder[i] += retOrder.length;\n\t\t\t\t}\n\n\t\t\t\tfor (let k in _info)\n\t\t\t\t\tretInfo[k] = (retInfo[k] ?? []).concat(_info[k]);\n\n\t\t\t\tretOrder = retOrder.concat(order);\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t[].concat(...matches),\n\t\t\tretInfo,\n\t\t\tretOrder,\n\t\t];\n\t};\n\n\treturn {\n\t\tsearch: (...args) => {\n\t\t\tlet out = _search(...args);\n\t\t\treturn out;\n\t\t},\n\t\tsplit,\n\t\tfilter,\n\t\tinfo,\n\t\tsort: opts.sort,\n\t};\n}\n\nconst latinize = (() => {\n\tlet accents = {\n\t\tA: 'ÁÀÃÂÄĄ',\n\t\ta: 'áàãâäą',\n\t\tE: 'ÉÈÊËĖ',\n\t\te: 'éèêëę',\n\t\tI: 'ÍÌÎÏĮ',\n\t\ti: 'íìîïį',\n\t\tO: 'ÓÒÔÕÖ',\n\t\to: 'óòôõö',\n\t\tU: 'ÚÙÛÜŪŲ',\n\t\tu: 'úùûüūų',\n\t\tC: 'ÇČĆ',\n\t\tc: 'çčć',\n\t\tL: 'Ł',\n\t\tl: 'ł',\n\t\tN: 'ÑŃ',\n\t\tn: 'ñń',\n\t\tS: 'ŠŚ',\n\t\ts: 'šś',\n\t\tZ: 'ŻŹ',\n\t\tz: 'żź'\n\t};\n\n\tlet accentsMap = new Map();\n\tlet accentsTpl = '';\n\n\tfor (let r in accents) {\n\t\taccents[r].split('').forEach(a => {\n\t\t\taccentsTpl += a;\n\t\t\taccentsMap.set(a, r);\n\t\t});\n\t}\n\n\tlet accentsRe = new RegExp(`[${accentsTpl}]`, 'g');\n\tlet replacer = m => accentsMap.get(m);\n\n\treturn strings => {\n\t\tif (typeof strings == 'string')\n\t\t\treturn strings.replace(accentsRe, replacer);\n\n\t\tlet out = Array(strings.length);\n\t\tfor (let i = 0; i < strings.length; i++)\n\t\t\tout[i] = strings[i].replace(accentsRe, replacer);\n\t\treturn out;\n\t};\n})();\n\n// https://stackoverflow.com/questions/9960908/permutations-in-javascript/37580979#37580979\nfunction permute(arr) {\n\tarr = arr.slice();\n\n\tlet length = arr.length,\n\t\tresult = [arr.slice()],\n\t\tc = new Array(length).fill(0),\n\t\ti = 1, k, p;\n\n\twhile (i < length) {\n\t\tif (c[i] < i) {\n\t\t\tk = i % 2 && c[i];\n\t\t\tp = arr[i];\n\t\t\tarr[i] = arr[k];\n\t\t\tarr[k] = p;\n\t\t\t++c[i];\n\t\t\ti = 1;\n\t\t\tresult.push(arr.slice());\n\t\t} else {\n\t\t\tc[i] = 0;\n\t\t\t++i;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst _mark = (part, matched) => matched ? `${part}` : part;\nconst _append = (acc, part) => acc + part;\n\nfunction highlight(str, ranges, mark = _mark, accum = '', append = _append) {\n\taccum = append(accum, mark(str.substring(0, ranges[0]), false)) ?? accum;\n\n\tfor (let i = 0; i < ranges.length; i+=2) {\n\t\tlet fr = ranges[i];\n\t\tlet to = ranges[i+1];\n\n\t\taccum = append(accum, mark(str.substring(fr, to), true)) ?? accum;\n\n\t\tif (i < ranges.length - 3)\n\t\t\taccum = append(accum, mark(str.substring(ranges[i+1], ranges[i+2]), false)) ?? accum;\n\t}\n\n\taccum = append(accum, mark(str.substring(ranges[ranges.length - 1]), false)) ?? accum;\n\n\treturn accum;\n}\n\nuFuzzy.latinize = latinize;\nuFuzzy.permute = arr => {\n\tlet idxs = permute([...Array(arr.length).keys()]).sort((a,b) => {\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] != b[i])\n\t\t\t\treturn a[i] - b[i];\n\t\t}\n\t\treturn 0;\n\t});\n\n\treturn idxs.map(pi => pi.map(i => arr[i]));\n};\nuFuzzy.highlight = highlight;\n\nexport { uFuzzy as default };\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { useEffect, useLayoutEffect } from 'react';\nimport { isBrowser } from './misc/util';\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n","import { useMemo, useState } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport { isBrowser, noop } from './misc/util';\nvar defaultState = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\nfunction useMeasure() {\n var _a = useState(null), element = _a[0], ref = _a[1];\n var _b = useState(defaultState), rect = _b[0], setRect = _b[1];\n var observer = useMemo(function () {\n return new window.ResizeObserver(function (entries) {\n if (entries[0]) {\n var _a = entries[0].contentRect, x = _a.x, y = _a.y, width = _a.width, height = _a.height, top_1 = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n setRect({ x: x, y: y, width: width, height: height, top: top_1, left: left, bottom: bottom, right: right });\n }\n });\n }, []);\n useIsomorphicLayoutEffect(function () {\n if (!element)\n return;\n observer.observe(element);\n return function () {\n observer.disconnect();\n };\n }, [element]);\n return [ref, rect];\n}\nexport default isBrowser && typeof window.ResizeObserver !== 'undefined'\n ? useMeasure\n : (function () { return [noop, defaultState]; });\n","const PIXELS_PER_LEVEL = 22 * window.devicePixelRatio;\nconst MUTE_THRESHOLD = 10 * window.devicePixelRatio;\nconst HIDE_THRESHOLD = 0.5 * window.devicePixelRatio;\nconst LABEL_THRESHOLD = 20 * window.devicePixelRatio;\nconst BAR_BORDER_WIDTH = 0.5 * window.devicePixelRatio;\nconst BAR_TEXT_PADDING_LEFT = 4 * window.devicePixelRatio;\nconst GROUP_STRIP_WIDTH = 3 * window.devicePixelRatio;\nconst GROUP_STRIP_PADDING = 3 * window.devicePixelRatio;\nconst GROUP_STRIP_MARGIN_LEFT = 4 * window.devicePixelRatio;\nconst GROUP_TEXT_OFFSET = 2 * window.devicePixelRatio;\nconst MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH = 800;\nconst TOP_TABLE_COLUMN_WIDTH = 120;\n\nexport { BAR_BORDER_WIDTH, BAR_TEXT_PADDING_LEFT, GROUP_STRIP_MARGIN_LEFT, GROUP_STRIP_PADDING, GROUP_STRIP_WIDTH, GROUP_TEXT_OFFSET, HIDE_THRESHOLD, LABEL_THRESHOLD, MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH, MUTE_THRESHOLD, PIXELS_PER_LEVEL, TOP_TABLE_COLUMN_WIDTH };\n//# sourceMappingURL=constants.js.map\n","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { ContextMenu, MenuItem, MenuGroup } from '@grafana/ui';\n\nconst FlameGraphContextMenu = ({\n data,\n itemData,\n onMenuItemClick,\n onItemFocus,\n onSandwich,\n collapseConfig,\n onExpandGroup,\n onCollapseGroup,\n onExpandAllGroups,\n onCollapseAllGroups,\n getExtraContextMenuButtons,\n collapsing,\n allGroupsExpanded,\n allGroupsCollapsed,\n selectedView,\n search\n}) => {\n function renderItems() {\n const extraButtons = (getExtraContextMenuButtons == null ? void 0 : getExtraContextMenuButtons(itemData, data.data, {\n selectedView,\n isDiff: data.isDiffFlamegraph(),\n search,\n collapseConfig\n })) || [];\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Focus block\",\n icon: \"eye\",\n onClick: () => {\n onItemFocus();\n onMenuItemClick();\n }\n }\n ),\n /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Copy function name\",\n icon: \"copy\",\n onClick: () => {\n navigator.clipboard.writeText(itemData.label).then(() => {\n onMenuItemClick();\n });\n }\n }\n ),\n /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Sandwich view\",\n icon: \"gf-show-context\",\n onClick: () => {\n onSandwich();\n onMenuItemClick();\n }\n }\n ),\n extraButtons.map(({ label, icon, onClick }) => {\n return /* @__PURE__ */ jsx(MenuItem, { label, icon, onClick: () => onClick() }, label);\n }),\n collapsing && /* @__PURE__ */ jsxs(MenuGroup, { label: \"Grouping\", children: [\n collapseConfig ? collapseConfig.collapsed ? /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Expand group\",\n icon: \"angle-double-down\",\n onClick: () => {\n onExpandGroup();\n onMenuItemClick();\n }\n }\n ) : /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Collapse group\",\n icon: \"angle-double-up\",\n onClick: () => {\n onCollapseGroup();\n onMenuItemClick();\n }\n }\n ) : null,\n !allGroupsExpanded && /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Expand all groups\",\n icon: \"angle-double-down\",\n onClick: () => {\n onExpandAllGroups();\n onMenuItemClick();\n }\n }\n ),\n !allGroupsCollapsed && /* @__PURE__ */ jsx(\n MenuItem,\n {\n label: \"Collapse all groups\",\n icon: \"angle-double-up\",\n onClick: () => {\n onCollapseAllGroups();\n onMenuItemClick();\n }\n }\n )\n ] })\n ] });\n }\n return /* @__PURE__ */ jsx(\"div\", { \"data-testid\": \"contextMenu\", children: /* @__PURE__ */ jsx(\n ContextMenu,\n {\n renderMenuItems: renderItems,\n x: itemData.posX + 10,\n y: itemData.posY,\n focusOnOpen: false\n }\n ) });\n};\n\nexport { FlameGraphContextMenu as default };\n//# sourceMappingURL=FlameGraphContextMenu.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { css } from '@emotion/css';\nimport { getValueFormat } from '@grafana/data';\nimport { useStyles2, InteractiveTable, Portal, VizTooltipContainer } from '@grafana/ui';\n\nconst FlameGraphTooltip = ({ data, item, totalTicks, position, collapseConfig }) => {\n const styles = useStyles2(getStyles);\n if (!(item && position)) {\n return null;\n }\n let content;\n if (data.isDiffFlamegraph()) {\n const tableData = getDiffTooltipData(data, item, totalTicks);\n content = /* @__PURE__ */ jsx(\n InteractiveTable,\n {\n className: styles.tooltipTable,\n columns: [\n { id: \"label\", header: \"\" },\n { id: \"baseline\", header: \"Baseline\" },\n { id: \"comparison\", header: \"Comparison\" },\n { id: \"diff\", header: \"Diff\" }\n ],\n data: tableData,\n getRowId: (originalRow) => originalRow.rowId\n }\n );\n } else {\n const tooltipData = getTooltipData(data, item, totalTicks);\n content = /* @__PURE__ */ jsxs(\"p\", { className: styles.lastParagraph, children: [\n tooltipData.unitTitle,\n /* @__PURE__ */ jsx(\"br\", {}),\n \"Total: \",\n /* @__PURE__ */ jsx(\"b\", { children: tooltipData.unitValue }),\n \" (\",\n tooltipData.percentValue,\n \"%)\",\n /* @__PURE__ */ jsx(\"br\", {}),\n \"Self: \",\n /* @__PURE__ */ jsx(\"b\", { children: tooltipData.unitSelf }),\n \" (\",\n tooltipData.percentSelf,\n \"%)\",\n /* @__PURE__ */ jsx(\"br\", {}),\n \"Samples: \",\n /* @__PURE__ */ jsx(\"b\", { children: tooltipData.samples })\n ] });\n }\n return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(VizTooltipContainer, { className: styles.tooltipContainer, position, offset: { x: 15, y: 0 }, children: /* @__PURE__ */ jsxs(\"div\", { className: styles.tooltipContent, children: [\n /* @__PURE__ */ jsxs(\"p\", { className: styles.tooltipName, children: [\n data.getLabel(item.itemIndexes[0]),\n collapseConfig && collapseConfig.collapsed ? /* @__PURE__ */ jsxs(\"span\", { children: [\n /* @__PURE__ */ jsx(\"br\", {}),\n \"and \",\n collapseConfig.items.length,\n \" similar items\"\n ] }) : \"\"\n ] }),\n content\n ] }) }) });\n};\nconst getTooltipData = (data, item, totalTicks) => {\n const displayValue = data.valueDisplayProcessor(item.value);\n const displaySelf = data.getSelfDisplay(item.itemIndexes);\n const percentValue = Math.round(1e4 * (displayValue.numeric / totalTicks)) / 100;\n const percentSelf = Math.round(1e4 * (displaySelf.numeric / totalTicks)) / 100;\n let unitValue = displayValue.text + displayValue.suffix;\n let unitSelf = displaySelf.text + displaySelf.suffix;\n const unitTitle = data.getUnitTitle();\n if (unitTitle === \"Count\") {\n if (!displayValue.suffix) {\n unitValue = displayValue.text;\n }\n if (!displaySelf.suffix) {\n unitSelf = displaySelf.text;\n }\n }\n return {\n percentValue,\n percentSelf,\n unitTitle,\n unitValue,\n unitSelf,\n samples: displayValue.numeric.toLocaleString()\n };\n};\nconst getDiffTooltipData = (data, item, totalTicks) => {\n const levels = data.getLevels();\n const totalTicksRight = levels[0][0].valueRight;\n const totalTicksLeft = totalTicks - totalTicksRight;\n const valueLeft = item.value - item.valueRight;\n const percentageLeft = Math.round(1e4 * valueLeft / totalTicksLeft) / 100;\n const percentageRight = Math.round(1e4 * item.valueRight / totalTicksRight) / 100;\n const diff = (percentageRight - percentageLeft) / percentageLeft * 100;\n const displayValueLeft = getValueWithUnit(data, data.valueDisplayProcessor(valueLeft));\n const displayValueRight = getValueWithUnit(data, data.valueDisplayProcessor(item.valueRight));\n const shortValFormat = getValueFormat(\"short\");\n return [\n {\n rowId: \"1\",\n label: \"% of total\",\n baseline: percentageLeft + \"%\",\n comparison: percentageRight + \"%\",\n diff: shortValFormat(diff).text + \"%\"\n },\n {\n rowId: \"2\",\n label: \"Value\",\n baseline: displayValueLeft,\n comparison: displayValueRight,\n diff: getValueWithUnit(data, data.valueDisplayProcessor(item.valueRight - valueLeft))\n },\n {\n rowId: \"3\",\n label: \"Samples\",\n baseline: shortValFormat(valueLeft).text,\n comparison: shortValFormat(item.valueRight).text,\n diff: shortValFormat(item.valueRight - valueLeft).text\n }\n ];\n};\nfunction getValueWithUnit(data, displayValue) {\n let unitValue = displayValue.text + displayValue.suffix;\n const unitTitle = data.getUnitTitle();\n if (unitTitle === \"Count\") {\n if (!displayValue.suffix) {\n unitValue = displayValue.text;\n }\n }\n return unitValue;\n}\nconst getStyles = (theme) => ({\n tooltipContainer: css({\n title: \"tooltipContainer\",\n overflow: \"hidden\"\n }),\n tooltipContent: css({\n title: \"tooltipContent\",\n fontSize: theme.typography.bodySmall.fontSize,\n width: \"100%\"\n }),\n tooltipName: css({\n title: \"tooltipName\",\n marginTop: 0,\n wordBreak: \"break-all\"\n }),\n lastParagraph: css({\n title: \"lastParagraph\",\n marginBottom: 0\n }),\n name: css({\n title: \"name\",\n marginBottom: \"10px\"\n }),\n tooltipTable: css({\n title: \"tooltipTable\",\n maxWidth: \"400px\"\n })\n});\n\nexport { FlameGraphTooltip as default, getDiffTooltipData, getTooltipData };\n//# sourceMappingURL=FlameGraphTooltip.js.map\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _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}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","var SampleUnit = /* @__PURE__ */ ((SampleUnit2) => {\n SampleUnit2[\"Bytes\"] = \"bytes\";\n SampleUnit2[\"Short\"] = \"short\";\n SampleUnit2[\"Nanoseconds\"] = \"ns\";\n return SampleUnit2;\n})(SampleUnit || {});\nvar SelectedView = /* @__PURE__ */ ((SelectedView2) => {\n SelectedView2[\"TopTable\"] = \"topTable\";\n SelectedView2[\"FlameGraph\"] = \"flameGraph\";\n SelectedView2[\"Both\"] = \"both\";\n return SelectedView2;\n})(SelectedView || {});\nvar ColorScheme = /* @__PURE__ */ ((ColorScheme2) => {\n ColorScheme2[\"ValueBased\"] = \"valueBased\";\n ColorScheme2[\"PackageBased\"] = \"packageBased\";\n return ColorScheme2;\n})(ColorScheme || {});\nvar ColorSchemeDiff = /* @__PURE__ */ ((ColorSchemeDiff2) => {\n ColorSchemeDiff2[\"Default\"] = \"default\";\n ColorSchemeDiff2[\"DiffColorBlind\"] = \"diffColorBlind\";\n return ColorSchemeDiff2;\n})(ColorSchemeDiff || {});\n\nexport { ColorScheme, ColorSchemeDiff, SampleUnit, SelectedView };\n//# sourceMappingURL=types.js.map\n","import { scaleLinear } from 'd3';\nimport color from 'tinycolor2';\nimport { ColorSchemeDiff } from '../types.js';\nimport murmurhash3_32_gc from './murmur3.js';\n\nconst packageColors = [\n color({ h: 24, s: 69, l: 60 }),\n color({ h: 34, s: 65, l: 65 }),\n color({ h: 194, s: 52, l: 61 }),\n color({ h: 163, s: 45, l: 55 }),\n color({ h: 211, s: 48, l: 60 }),\n color({ h: 246, s: 40, l: 65 }),\n color({ h: 305, s: 63, l: 79 }),\n color({ h: 47, s: 100, l: 73 }),\n color({ r: 183, g: 219, b: 171 }),\n color({ r: 244, g: 213, b: 152 }),\n color({ r: 78, g: 146, b: 249 }),\n color({ r: 249, g: 186, b: 143 }),\n color({ r: 242, g: 145, b: 145 }),\n color({ r: 130, g: 181, b: 216 }),\n color({ r: 229, g: 168, b: 226 }),\n color({ r: 174, g: 162, b: 224 }),\n color({ r: 154, g: 196, b: 138 }),\n color({ r: 242, g: 201, b: 109 }),\n color({ r: 101, g: 197, b: 219 }),\n color({ r: 249, g: 147, b: 78 }),\n color({ r: 234, g: 100, b: 96 }),\n color({ r: 81, g: 149, b: 206 }),\n color({ r: 214, g: 131, b: 206 }),\n color({ r: 128, g: 110, b: 183 })\n];\nconst byValueMinColor = getBarColorByValue(1, 100, 0, 1);\nconst byValueMaxColor = getBarColorByValue(100, 100, 0, 1);\nconst byValueGradient = `linear-gradient(90deg, ${byValueMinColor} 0%, ${byValueMaxColor} 100%)`;\nconst byPackageGradient = `linear-gradient(90deg, ${packageColors[0]} 0%, ${packageColors[2]} 30%, ${packageColors[6]} 50%, ${packageColors[7]} 70%, ${packageColors[8]} 100%)`;\nfunction getBarColorByValue(value, totalTicks, rangeMin, rangeMax) {\n const intensity = Math.min(1, value / totalTicks / (rangeMax - rangeMin));\n const h = 50 - 50 * intensity;\n const l = 65 + 7 * intensity;\n return color({ h, s: 100, l });\n}\nfunction getBarColorByPackage(label, theme) {\n const packageName = getPackageName(label);\n const hash = murmurhash3_32_gc(packageName || \"\", 0);\n const colorIndex = hash % packageColors.length;\n let packageColor = packageColors[colorIndex].clone();\n if (theme.isLight) {\n packageColor = packageColor.brighten(15);\n }\n return packageColor;\n}\nconst diffDefaultColors = [\"rgb(0, 170, 0)\", \"rgb(148, 142, 142)\", \"rgb(200, 0, 0)\"];\nconst diffDefaultGradient = `linear-gradient(90deg, ${diffDefaultColors[0]} 0%, ${diffDefaultColors[1]} 50%, ${diffDefaultColors[2]} 100%)`;\nconst diffColorBlindColors = [\"rgb(26, 133, 255)\", \"rgb(148, 142, 142)\", \"rgb(220, 50, 32)\"];\nconst diffColorBlindGradient = `linear-gradient(90deg, ${diffColorBlindColors[0]} 0%, ${diffColorBlindColors[1]} 50%, ${diffColorBlindColors[2]} 100%)`;\nfunction getBarColorByDiff(ticks, ticksRight, totalTicks, totalTicksRight, colorScheme) {\n const range = colorScheme === ColorSchemeDiff.Default ? diffDefaultColors : diffColorBlindColors;\n const colorScale = scaleLinear().domain([-100, 0, 100]).range(range);\n const ticksLeft = ticks - ticksRight;\n const totalTicksLeft = totalTicks - totalTicksRight;\n if (totalTicksRight === 0 || totalTicksLeft === 0) {\n const rgbString2 = colorScale(0);\n return color(rgbString2);\n }\n const percentageLeft = Math.round(1e4 * ticksLeft / totalTicksLeft) / 100;\n const percentageRight = Math.round(1e4 * ticksRight / totalTicksRight) / 100;\n const diff = (percentageRight - percentageLeft) / percentageLeft * 100;\n const rgbString = colorScale(diff);\n return color(rgbString);\n}\nconst matchers = [\n [\"phpspy\", /^(?([^\\/]*\\/)*)(?.*\\.php+)(?.*)$/],\n [\"pyspy\", /^(?([^\\/]*\\/)*)(?.*\\.py+)(?.*)$/],\n [\"rbspy\", /^(?([^\\/]*\\/)*)(?.*\\.rb+)(?.*)$/],\n [\n \"nodespy\",\n /^(\\.\\/node_modules\\/)?(?[^/]*)(?.*\\.?(jsx?|tsx?)?):(?.*):(?.*)$/\n ],\n [\"gospy\", /^(?.*?\\/.*?\\.|.*?\\.|.+)(?.*)$/],\n // also 'scrape'\n [\"javaspy\", /^(?.+\\/)(?.+\\.)(?.+)$/],\n [\"dotnetspy\", /^(?.+)\\.(.+)\\.(.+)\\(.*\\)$/],\n [\"tracing\", /^(?.+?):.*$/],\n [\"pyroscope-rs\", /^(?[^::]+)/],\n [\"ebpfspy\", /^(?.+)$/],\n [\"unknown\", /^(?.+)$/]\n];\nfunction getPackageName(name) {\n var _a;\n for (const [_, matcher] of matchers) {\n const match = name.match(matcher);\n if (match) {\n return ((_a = match.groups) == null ? void 0 : _a.packageName) || \"\";\n }\n }\n return void 0;\n}\n\nexport { byPackageGradient, byValueGradient, diffColorBlindColors, diffColorBlindGradient, diffDefaultColors, diffDefaultGradient, getBarColorByDiff, getBarColorByPackage, getBarColorByValue };\n//# sourceMappingURL=colors.js.map\n","function murmurhash3_32_gc(key, seed = 0) {\n let remainder;\n let bytes;\n let h1;\n let h1b;\n let c1;\n let c2;\n let k1;\n let i;\n remainder = key.length & 3;\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 3432918353;\n c2 = 461845907;\n i = 0;\n while (i < bytes) {\n k1 = key.charCodeAt(i) & 255 | (key.charCodeAt(++i) & 255) << 8 | (key.charCodeAt(++i) & 255) << 16 | (key.charCodeAt(++i) & 255) << 24;\n ++i;\n k1 = (k1 & 65535) * c1 + (((k1 >>> 16) * c1 & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 65535) * c2 + (((k1 >>> 16) * c2 & 65535) << 16) & 4294967295;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1b = (h1 & 65535) * 5 + (((h1 >>> 16) * 5 & 65535) << 16) & 4294967295;\n h1 = (h1b & 65535) + 27492 + (((h1b >>> 16) + 58964 & 65535) << 16);\n }\n k1 = 0;\n switch (remainder) {\n case 3:\n k1 ^= (key.charCodeAt(i + 2) & 255) << 16;\n // fall through\n case 2:\n k1 ^= (key.charCodeAt(i + 1) & 255) << 8;\n // fall through\n case 1:\n k1 ^= key.charCodeAt(i) & 255;\n // fall through\n default:\n k1 = (k1 & 65535) * c1 + (((k1 >>> 16) * c1 & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 65535) * c2 + (((k1 >>> 16) * c2 & 65535) << 16) & 4294967295;\n h1 ^= k1;\n }\n h1 ^= key.length;\n h1 ^= h1 >>> 16;\n h1 = (h1 & 65535) * 2246822507 + (((h1 >>> 16) * 2246822507 & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 13;\n h1 = (h1 & 65535) * 3266489909 + (((h1 >>> 16) * 3266489909 & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 16;\n return h1 >>> 0;\n}\n\nexport { murmurhash3_32_gc as default };\n//# sourceMappingURL=murmur3.js.map\n","import { useMemo, useEffect, useCallback, useState } from 'react';\nimport color from 'tinycolor2';\nimport { useTheme2 } from '@grafana/ui';\nimport { HIDE_THRESHOLD, PIXELS_PER_LEVEL, BAR_BORDER_WIDTH, LABEL_THRESHOLD, GROUP_STRIP_WIDTH, GROUP_STRIP_PADDING, MUTE_THRESHOLD, GROUP_STRIP_MARGIN_LEFT, GROUP_TEXT_OFFSET, BAR_TEXT_PADDING_LEFT } from '../constants.js';\nimport { ColorSchemeDiff, ColorScheme } from '../types.js';\nimport { getBarColorByDiff, getBarColorByValue, getBarColorByPackage } from './colors.js';\n\nfunction useFlameRender(options) {\n const {\n canvasRef,\n data,\n root,\n depth,\n direction,\n wrapperWidth,\n rangeMin,\n rangeMax,\n matchedLabels,\n textAlign,\n totalViewTicks,\n totalColorTicks,\n totalTicksRight,\n colorScheme,\n focusedItemData,\n collapsedMap\n } = options;\n const ctx = useSetupCanvas(canvasRef, wrapperWidth, depth);\n const theme = useTheme2();\n const mutedColor = useMemo(() => {\n const barMutedColor = color(theme.colors.background.secondary);\n return theme.isLight ? barMutedColor.darken(10).toHexString() : barMutedColor.lighten(10).toHexString();\n }, [theme]);\n const getBarColor = useColorFunction(\n totalColorTicks,\n totalTicksRight,\n colorScheme,\n theme,\n mutedColor,\n rangeMin,\n rangeMax,\n matchedLabels,\n focusedItemData ? focusedItemData.item.level : 0\n );\n const renderFunc = useRenderFunc(ctx, data, getBarColor, textAlign, collapsedMap);\n useEffect(() => {\n if (!ctx) {\n return;\n }\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n const mutedPath2D = new Path2D();\n walkTree(\n root,\n direction,\n data,\n totalViewTicks,\n rangeMin,\n rangeMax,\n wrapperWidth,\n collapsedMap,\n (item, x, y, width, height, label, muted) => {\n if (muted) {\n mutedPath2D.rect(x, y, width, height);\n } else {\n renderFunc(item, x, y, width, height, label);\n }\n }\n );\n ctx.fillStyle = mutedColor;\n ctx.fill(mutedPath2D);\n }, [\n ctx,\n data,\n root,\n wrapperWidth,\n rangeMin,\n rangeMax,\n totalViewTicks,\n direction,\n renderFunc,\n collapsedMap,\n mutedColor\n ]);\n}\nfunction useRenderFunc(ctx, data, getBarColor, textAlign, collapsedMap) {\n return useMemo(() => {\n if (!ctx) {\n return () => {\n };\n }\n const renderFunc = (item, x, y, width, height, label) => {\n ctx.beginPath();\n ctx.rect(x + BAR_BORDER_WIDTH, y, width, height);\n ctx.fillStyle = getBarColor(item, label, false);\n ctx.stroke();\n ctx.fill();\n const collapsedItemConfig = collapsedMap.get(item);\n let finalLabel = label;\n if (collapsedItemConfig && collapsedItemConfig.collapsed) {\n const numberOfCollapsedItems = collapsedItemConfig.items.length;\n finalLabel = `(${numberOfCollapsedItems}) ` + label;\n }\n if (width >= LABEL_THRESHOLD) {\n if (collapsedItemConfig) {\n renderLabel(\n ctx,\n data,\n finalLabel,\n item,\n width,\n textAlign === \"left\" ? x + GROUP_STRIP_MARGIN_LEFT + GROUP_TEXT_OFFSET : x,\n y,\n textAlign\n );\n renderGroupingStrip(ctx, x, y, height, item, collapsedItemConfig);\n } else {\n renderLabel(ctx, data, finalLabel, item, width, x, y, textAlign);\n }\n }\n };\n return renderFunc;\n }, [ctx, getBarColor, textAlign, data, collapsedMap]);\n}\nfunction renderGroupingStrip(ctx, x, y, height, item, collapsedItemConfig) {\n const groupStripX = x + GROUP_STRIP_MARGIN_LEFT;\n ctx.beginPath();\n ctx.rect(x, y, groupStripX - x + GROUP_STRIP_WIDTH + GROUP_STRIP_PADDING, height);\n ctx.fill();\n ctx.beginPath();\n if (collapsedItemConfig.collapsed) {\n ctx.rect(groupStripX, y + height / 4, GROUP_STRIP_WIDTH, height / 2);\n } else {\n if (collapsedItemConfig.items[0] === item) {\n ctx.rect(groupStripX, y + height / 2, GROUP_STRIP_WIDTH, height / 2);\n } else if (collapsedItemConfig.items[collapsedItemConfig.items.length - 1] === item) {\n ctx.rect(groupStripX, y, GROUP_STRIP_WIDTH, height / 2);\n } else {\n ctx.rect(groupStripX, y, GROUP_STRIP_WIDTH, height);\n }\n }\n ctx.fillStyle = \"#666\";\n ctx.fill();\n}\nfunction walkTree(root, direction, data, totalViewTicks, rangeMin, rangeMax, wrapperWidth, collapsedMap, renderFunc) {\n const stack = [];\n stack.push({ item: root, levelOffset: 0 });\n const pixelsPerTick = wrapperWidth * window.devicePixelRatio / totalViewTicks / (rangeMax - rangeMin);\n let collapsedItemRendered = void 0;\n while (stack.length > 0) {\n const { item, levelOffset } = stack.shift();\n let curBarTicks = item.value;\n const muted = curBarTicks * pixelsPerTick <= MUTE_THRESHOLD;\n const width = curBarTicks * pixelsPerTick - (muted ? 0 : BAR_BORDER_WIDTH * 2);\n const height = PIXELS_PER_LEVEL;\n if (width < HIDE_THRESHOLD) {\n continue;\n }\n let offsetModifier = 0;\n let skipRender = false;\n const collapsedItemConfig = collapsedMap.get(item);\n const isCollapsedItem = collapsedItemConfig && collapsedItemConfig.collapsed;\n if (isCollapsedItem) {\n if (collapsedItemRendered === collapsedItemConfig.items[0]) {\n offsetModifier = direction === \"children\" ? -1 : 1;\n skipRender = true;\n } else {\n collapsedItemRendered = void 0;\n }\n } else {\n collapsedItemRendered = void 0;\n }\n if (!skipRender) {\n const barX = getBarX(item.start, totalViewTicks, rangeMin, pixelsPerTick);\n const barY = (item.level + levelOffset) * PIXELS_PER_LEVEL;\n let label = data.getLabel(item.itemIndexes[0]);\n if (isCollapsedItem) {\n collapsedItemRendered = item;\n }\n renderFunc(item, barX, barY, width, height, label, muted);\n }\n const nextList = direction === \"children\" ? item.children : item.parents;\n if (nextList) {\n stack.unshift(...nextList.map((c) => ({ item: c, levelOffset: levelOffset + offsetModifier })));\n }\n }\n}\nfunction useColorFunction(totalTicks, totalTicksRight, colorScheme, theme, mutedColor, rangeMin, rangeMax, matchedLabels, topLevel) {\n return useCallback(\n function getColor(item, label, muted) {\n if (muted && !matchedLabels) {\n return mutedColor;\n }\n const barColor = item.valueRight !== void 0 && (colorScheme === ColorSchemeDiff.Default || colorScheme === ColorSchemeDiff.DiffColorBlind) ? getBarColorByDiff(item.value, item.valueRight, totalTicks, totalTicksRight, colorScheme) : colorScheme === ColorScheme.ValueBased ? getBarColorByValue(item.value, totalTicks, rangeMin, rangeMax) : getBarColorByPackage(label, theme);\n if (matchedLabels) {\n return matchedLabels.has(label) ? barColor.toHslString() : mutedColor;\n }\n return item.level > topLevel - 1 ? barColor.toHslString() : barColor.lighten(15).toHslString();\n },\n [totalTicks, totalTicksRight, colorScheme, theme, rangeMin, rangeMax, matchedLabels, topLevel, mutedColor]\n );\n}\nfunction useSetupCanvas(canvasRef, wrapperWidth, numberOfLevels) {\n const [ctx, setCtx] = useState();\n useEffect(() => {\n if (!(numberOfLevels && canvasRef.current)) {\n return;\n }\n const ctx2 = canvasRef.current.getContext(\"2d\");\n const height = PIXELS_PER_LEVEL * numberOfLevels;\n canvasRef.current.width = Math.round(wrapperWidth * window.devicePixelRatio);\n canvasRef.current.height = Math.round(height);\n canvasRef.current.style.width = `${wrapperWidth}px`;\n canvasRef.current.style.height = `${height / window.devicePixelRatio}px`;\n ctx2.textBaseline = \"middle\";\n ctx2.font = 12 * window.devicePixelRatio + \"px monospace\";\n ctx2.strokeStyle = \"white\";\n setCtx(ctx2);\n }, [canvasRef, setCtx, wrapperWidth, numberOfLevels]);\n return ctx;\n}\nfunction renderLabel(ctx, data, label, item, width, x, y, textAlign) {\n ctx.save();\n ctx.clip();\n ctx.fillStyle = \"#222\";\n const displayValue = data.valueDisplayProcessor(item.value);\n const unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text;\n const measure = ctx.measureText(label);\n const spaceForTextInRect = width - BAR_TEXT_PADDING_LEFT;\n let fullLabel = `${label} (${unit})`;\n let labelX = Math.max(x, 0) + BAR_TEXT_PADDING_LEFT;\n if (measure.width > spaceForTextInRect) {\n ctx.textAlign = textAlign;\n if (textAlign === \"right\") {\n fullLabel = label;\n labelX = x + width - BAR_TEXT_PADDING_LEFT;\n }\n }\n ctx.fillText(fullLabel, labelX, y + PIXELS_PER_LEVEL / 2 + 2);\n ctx.restore();\n}\nfunction getBarX(offset, totalTicks, rangeMin, pixelsPerTick) {\n return (offset - totalTicks * rangeMin) * pixelsPerTick;\n}\n\nexport { getBarX, useFlameRender, walkTree };\n//# sourceMappingURL=rendering.js.map\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { css } from '@emotion/css';\nimport { useRef, useState, useCallback, useEffect } from 'react';\nimport { useMeasure } from 'react-use';\nimport { PIXELS_PER_LEVEL } from '../constants.js';\nimport FlameGraphContextMenu from './FlameGraphContextMenu.js';\nimport FlameGraphTooltip from './FlameGraphTooltip.js';\nimport { useFlameRender, getBarX } from './rendering.js';\n\nconst FlameGraphCanvas = ({\n data,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused,\n focusedItemData,\n textAlign,\n onSandwich,\n colorScheme,\n totalProfileTicks,\n totalProfileTicksRight,\n totalViewTicks,\n root,\n direction,\n depth,\n showFlameGraphOnly,\n collapsedMap,\n setCollapsedMap,\n collapsing,\n getExtraContextMenuButtons,\n selectedView,\n search\n}) => {\n const styles = getStyles();\n const [sizeRef, { width: wrapperWidth }] = useMeasure();\n const graphRef = useRef(null);\n const [tooltipItem, setTooltipItem] = useState();\n const [clickedItemData, setClickedItemData] = useState();\n useFlameRender({\n canvasRef: graphRef,\n colorScheme,\n data,\n focusedItemData,\n root,\n direction,\n depth,\n rangeMax,\n rangeMin,\n matchedLabels,\n textAlign,\n totalViewTicks,\n // We need this so that if we have a diff profile and are in sandwich view we still show the same diff colors.\n totalColorTicks: data.isDiffFlamegraph() ? totalProfileTicks : totalViewTicks,\n totalTicksRight: totalProfileTicksRight,\n wrapperWidth,\n collapsedMap\n });\n const onGraphClick = useCallback(\n (e) => {\n setTooltipItem(void 0);\n const pixelsPerTick = graphRef.current.clientWidth / totalViewTicks / (rangeMax - rangeMin);\n const item = convertPixelCoordinatesToBarCoordinates(\n { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY },\n root,\n direction,\n depth,\n pixelsPerTick,\n totalViewTicks,\n rangeMin,\n collapsedMap\n );\n if (item) {\n setClickedItemData({\n posY: e.clientY,\n posX: e.clientX,\n item,\n label: data.getLabel(item.itemIndexes[0])\n });\n } else {\n setClickedItemData(void 0);\n }\n },\n [data, rangeMin, rangeMax, totalViewTicks, root, direction, depth, collapsedMap]\n );\n const [mousePosition, setMousePosition] = useState();\n const onGraphMouseMove = useCallback(\n (e) => {\n if (clickedItemData === void 0) {\n setTooltipItem(void 0);\n setMousePosition(void 0);\n const pixelsPerTick = graphRef.current.clientWidth / totalViewTicks / (rangeMax - rangeMin);\n const item = convertPixelCoordinatesToBarCoordinates(\n { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY },\n root,\n direction,\n depth,\n pixelsPerTick,\n totalViewTicks,\n rangeMin,\n collapsedMap\n );\n if (item) {\n setMousePosition({ x: e.clientX, y: e.clientY });\n setTooltipItem(item);\n }\n }\n },\n [rangeMin, rangeMax, totalViewTicks, clickedItemData, setMousePosition, root, direction, depth, collapsedMap]\n );\n const onGraphMouseLeave = useCallback(() => {\n setTooltipItem(void 0);\n }, []);\n useEffect(() => {\n const handleOnClick = (e) => {\n var _a;\n if (e.target instanceof HTMLElement && ((_a = e.target.parentElement) == null ? void 0 : _a.id) !== \"flameGraphCanvasContainer_clickOutsideCheck\") {\n setClickedItemData(void 0);\n }\n };\n window.addEventListener(\"click\", handleOnClick);\n return () => window.removeEventListener(\"click\", handleOnClick);\n }, [setClickedItemData]);\n return /* @__PURE__ */ jsxs(\"div\", { className: styles.graph, children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles.canvasWrapper, id: \"flameGraphCanvasContainer_clickOutsideCheck\", ref: sizeRef, children: /* @__PURE__ */ jsx(\n \"canvas\",\n {\n ref: graphRef,\n \"data-testid\": \"flameGraph\",\n onClick: onGraphClick,\n onMouseMove: onGraphMouseMove,\n onMouseLeave: onGraphMouseLeave\n }\n ) }),\n /* @__PURE__ */ jsx(\n FlameGraphTooltip,\n {\n position: mousePosition,\n item: tooltipItem,\n data,\n totalTicks: totalViewTicks,\n collapseConfig: tooltipItem ? collapsedMap.get(tooltipItem) : void 0\n }\n ),\n !showFlameGraphOnly && clickedItemData && /* @__PURE__ */ jsx(\n FlameGraphContextMenu,\n {\n data,\n itemData: clickedItemData,\n collapsing,\n collapseConfig: collapsedMap.get(clickedItemData.item),\n onMenuItemClick: () => {\n setClickedItemData(void 0);\n },\n onItemFocus: () => {\n setRangeMin(clickedItemData.item.start / totalViewTicks);\n setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalViewTicks);\n onItemFocused(clickedItemData);\n },\n onSandwich: () => {\n onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0]));\n },\n onExpandGroup: () => {\n setCollapsedMap(collapsedMap.setCollapsedStatus(clickedItemData.item, false));\n },\n onCollapseGroup: () => {\n setCollapsedMap(collapsedMap.setCollapsedStatus(clickedItemData.item, true));\n },\n onExpandAllGroups: () => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(false));\n },\n onCollapseAllGroups: () => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(true));\n },\n allGroupsCollapsed: Array.from(collapsedMap.values()).every((i) => i.collapsed),\n allGroupsExpanded: Array.from(collapsedMap.values()).every((i) => !i.collapsed),\n getExtraContextMenuButtons,\n selectedView,\n search\n }\n )\n ] });\n};\nconst getStyles = () => ({\n graph: css({\n label: \"graph\",\n overflow: \"auto\",\n flexGrow: 1,\n flexBasis: \"50%\"\n }),\n canvasContainer: css({\n label: \"canvasContainer\",\n display: \"flex\"\n }),\n canvasWrapper: css({\n label: \"canvasWrapper\",\n cursor: \"pointer\",\n flex: 1,\n overflow: \"hidden\"\n }),\n sandwichMarker: css({\n label: \"sandwichMarker\",\n writingMode: \"vertical-lr\",\n transform: \"rotate(180deg)\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\"\n }),\n sandwichMarkerIcon: css({\n label: \"sandwichMarkerIcon\",\n verticalAlign: \"baseline\"\n })\n});\nconst convertPixelCoordinatesToBarCoordinates = (pos, root, direction, depth, pixelsPerTick, totalTicks, rangeMin, collapsedMap) => {\n let next = root;\n let currentLevel = direction === \"children\" ? 0 : depth - 1;\n const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio));\n let found = void 0;\n while (next) {\n const node = next;\n next = void 0;\n if (currentLevel === levelIndex) {\n found = node;\n break;\n }\n const nextList = direction === \"children\" ? node.children : node.parents || [];\n for (const child of nextList) {\n const xStart = getBarX(child.start, totalTicks, rangeMin, pixelsPerTick);\n const xEnd = getBarX(child.start + child.value, totalTicks, rangeMin, pixelsPerTick);\n if (xStart <= pos.x && pos.x < xEnd) {\n next = child;\n const collapsedConfig = collapsedMap.get(child);\n if (!collapsedConfig || !collapsedConfig.collapsed || collapsedConfig.items[0] === child) {\n currentLevel = currentLevel + (direction === \"children\" ? 1 : -1);\n }\n break;\n }\n }\n }\n return found;\n};\n\nexport { convertPixelCoordinatesToBarCoordinates, FlameGraphCanvas as default };\n//# sourceMappingURL=FlameGraphCanvas.js.map\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { css } from '@emotion/css';\nimport { memo } from 'react';\nimport { getValueFormat } from '@grafana/data';\nimport { useStyles2, Icon, IconButton } from '@grafana/ui';\n\nconst FlameGraphMetadata = memo(\n ({ data, focusedItem, totalTicks, sandwichedLabel, onFocusPillClick, onSandwichPillClick }) => {\n const styles = useStyles2(getStyles);\n const parts = [];\n const ticksVal = getValueFormat(\"short\")(totalTicks);\n const displayValue = data.valueDisplayProcessor(totalTicks);\n let unitValue = displayValue.text + displayValue.suffix;\n const unitTitle = data.getUnitTitle();\n if (unitTitle === \"Count\") {\n if (!displayValue.suffix) {\n unitValue = displayValue.text;\n }\n }\n parts.push(\n /* @__PURE__ */ jsxs(\"div\", { className: styles.metadataPill, children: [\n unitValue,\n \" | \",\n ticksVal.text,\n ticksVal.suffix,\n \" samples (\",\n unitTitle,\n \")\"\n ] }, \"default\")\n );\n if (sandwichedLabel) {\n parts.push(\n /* @__PURE__ */ jsxs(\"span\", { children: [\n /* @__PURE__ */ jsx(Icon, { size: \"sm\", name: \"angle-right\" }),\n /* @__PURE__ */ jsxs(\"div\", { className: styles.metadataPill, children: [\n /* @__PURE__ */ jsx(Icon, { size: \"sm\", name: \"gf-show-context\" }),\n \" \",\n /* @__PURE__ */ jsx(\"span\", { className: styles.metadataPillName, children: sandwichedLabel.substring(sandwichedLabel.lastIndexOf(\"/\") + 1) }),\n /* @__PURE__ */ jsx(\n IconButton,\n {\n className: styles.pillCloseButton,\n name: \"times\",\n size: \"sm\",\n onClick: onSandwichPillClick,\n tooltip: \"Remove sandwich view\",\n \"aria-label\": \"Remove sandwich view\"\n }\n )\n ] })\n ] }, \"sandwich\")\n );\n }\n if (focusedItem) {\n const percentValue = Math.round(1e4 * (focusedItem.item.value / totalTicks)) / 100;\n parts.push(\n /* @__PURE__ */ jsxs(\"span\", { children: [\n /* @__PURE__ */ jsx(Icon, { size: \"sm\", name: \"angle-right\" }),\n /* @__PURE__ */ jsxs(\"div\", { className: styles.metadataPill, children: [\n /* @__PURE__ */ jsx(Icon, { size: \"sm\", name: \"eye\" }),\n \" \",\n percentValue,\n \"% of total\",\n /* @__PURE__ */ jsx(\n IconButton,\n {\n className: styles.pillCloseButton,\n name: \"times\",\n size: \"sm\",\n onClick: onFocusPillClick,\n tooltip: \"Remove focus\",\n \"aria-label\": \"Remove focus\"\n }\n )\n ] })\n ] }, \"focus\")\n );\n }\n return /* @__PURE__ */ jsx(\"div\", { className: styles.metadata, children: parts });\n }\n);\nFlameGraphMetadata.displayName = \"FlameGraphMetadata\";\nconst getStyles = (theme) => ({\n metadataPill: css({\n label: \"metadataPill\",\n display: \"inline-flex\",\n alignItems: \"center\",\n background: theme.colors.background.secondary,\n borderRadius: theme.shape.borderRadius(8),\n padding: theme.spacing(0.5, 1),\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n lineHeight: theme.typography.bodySmall.lineHeight,\n color: theme.colors.text.secondary\n }),\n pillCloseButton: css({\n label: \"pillCloseButton\",\n verticalAlign: \"text-bottom\",\n margin: theme.spacing(0, 0.5)\n }),\n metadata: css({\n margin: \"8px 0\",\n textAlign: \"center\"\n }),\n metadataPillName: css({\n label: \"metadataPillName\",\n maxWidth: \"200px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n marginLeft: theme.spacing(0.5)\n })\n});\n\nexport { FlameGraphMetadata as default };\n//# sourceMappingURL=FlameGraphMetadata.js.map\n","import { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nimport { cx, css } from '@emotion/css';\nimport { useState, useEffect } from 'react';\nimport { Icon } from '@grafana/ui';\nimport { PIXELS_PER_LEVEL } from '../constants.js';\nimport FlameGraphCanvas from './FlameGraphCanvas.js';\nimport FlameGraphMetadata from './FlameGraphMetadata.js';\n\nconst FlameGraph = ({\n data,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused,\n focusedItemData,\n textAlign,\n onSandwich,\n sandwichItem,\n onFocusPillClick,\n onSandwichPillClick,\n colorScheme,\n showFlameGraphOnly,\n getExtraContextMenuButtons,\n collapsing,\n selectedView,\n search,\n collapsedMap,\n setCollapsedMap\n}) => {\n const styles = getStyles();\n const [levels, setLevels] = useState();\n const [levelsCallers, setLevelsCallers] = useState();\n const [totalProfileTicks, setTotalProfileTicks] = useState(0);\n const [totalProfileTicksRight, setTotalProfileTicksRight] = useState();\n const [totalViewTicks, setTotalViewTicks] = useState(0);\n useEffect(() => {\n var _a, _b, _c;\n if (data) {\n let levels2 = data.getLevels();\n let totalProfileTicks2 = levels2.length ? levels2[0][0].value : 0;\n let totalProfileTicksRight2 = levels2.length ? levels2[0][0].valueRight : void 0;\n let totalViewTicks2 = totalProfileTicks2;\n let levelsCallers2 = void 0;\n if (sandwichItem) {\n const [callers, callees] = data.getSandwichLevels(sandwichItem);\n levels2 = callees;\n levelsCallers2 = callers;\n totalViewTicks2 = (_c = (_b = (_a = callees[0]) == null ? void 0 : _a[0]) == null ? void 0 : _b.value) != null ? _c : 0;\n }\n setLevels(levels2);\n setLevelsCallers(levelsCallers2);\n setTotalProfileTicks(totalProfileTicks2);\n setTotalProfileTicksRight(totalProfileTicksRight2);\n setTotalViewTicks(totalViewTicks2);\n }\n }, [data, sandwichItem]);\n if (!levels) {\n return null;\n }\n const commonCanvasProps = {\n data,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused,\n focusedItemData,\n textAlign,\n onSandwich,\n colorScheme,\n totalProfileTicks,\n totalProfileTicksRight,\n totalViewTicks,\n showFlameGraphOnly,\n collapsedMap,\n setCollapsedMap,\n getExtraContextMenuButtons,\n collapsing,\n search,\n selectedView\n };\n const canvas = levelsCallers ? /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsxs(\"div\", { className: styles.sandwichCanvasWrapper, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: styles.sandwichMarker, children: [\n \"Callers\",\n /* @__PURE__ */ jsx(Icon, { className: styles.sandwichMarkerIcon, name: \"arrow-down\" })\n ] }),\n /* @__PURE__ */ jsx(\n FlameGraphCanvas,\n {\n ...commonCanvasProps,\n root: levelsCallers[levelsCallers.length - 1][0],\n depth: levelsCallers.length,\n direction: \"parents\",\n collapsing: false\n }\n )\n ] }),\n /* @__PURE__ */ jsxs(\"div\", { className: styles.sandwichCanvasWrapper, children: [\n /* @__PURE__ */ jsxs(\"div\", { className: cx(styles.sandwichMarker, styles.sandwichMarkerCalees), children: [\n /* @__PURE__ */ jsx(Icon, { className: styles.sandwichMarkerIcon, name: \"arrow-up\" }),\n \"Callees\"\n ] }),\n /* @__PURE__ */ jsx(\n FlameGraphCanvas,\n {\n ...commonCanvasProps,\n root: levels[0][0],\n depth: levels.length,\n direction: \"children\",\n collapsing: false\n }\n )\n ] })\n ] }) : /* @__PURE__ */ jsx(FlameGraphCanvas, { ...commonCanvasProps, root: levels[0][0], depth: levels.length, direction: \"children\" });\n return /* @__PURE__ */ jsxs(\"div\", { className: styles.graph, children: [\n /* @__PURE__ */ jsx(\n FlameGraphMetadata,\n {\n data,\n focusedItem: focusedItemData,\n sandwichedLabel: sandwichItem,\n totalTicks: totalViewTicks,\n onFocusPillClick,\n onSandwichPillClick\n }\n ),\n canvas\n ] });\n};\nconst getStyles = () => ({\n graph: css({\n label: \"graph\",\n overflow: \"auto\",\n flexGrow: 1,\n flexBasis: \"50%\"\n }),\n sandwichCanvasWrapper: css({\n label: \"sandwichCanvasWrapper\",\n display: \"flex\",\n marginBottom: `${PIXELS_PER_LEVEL / window.devicePixelRatio}px`\n }),\n sandwichMarker: css({\n label: \"sandwichMarker\",\n writingMode: \"vertical-lr\",\n transform: \"rotate(180deg)\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\"\n }),\n sandwichMarkerCalees: css({\n label: \"sandwichMarkerCalees\",\n textAlign: \"right\"\n }),\n sandwichMarkerIcon: css({\n label: \"sandwichMarkerIcon\",\n verticalAlign: \"baseline\"\n })\n});\n\nexport { FlameGraph as default };\n//# sourceMappingURL=FlameGraph.js.map\n","import { groupBy } from 'lodash';\n\nfunction mergeParentSubtrees(roots, data) {\n const newRoots = getParentSubtrees(roots);\n return mergeSubtrees(newRoots, data, \"parents\");\n}\nfunction getParentSubtrees(roots) {\n return roots.map((r) => {\n var _a, _b;\n if (!((_a = r.parents) == null ? void 0 : _a.length)) {\n return r;\n }\n const newRoot = {\n ...r,\n children: []\n };\n const stack = [\n { child: newRoot, parent: r.parents[0] }\n ];\n while (stack.length) {\n const args = stack.shift();\n const newNode = {\n ...args.parent,\n children: args.child ? [args.child] : [],\n parents: []\n };\n if (args.child) {\n newNode.value = args.child.value;\n args.child.parents = [newNode];\n }\n if ((_b = args.parent.parents) == null ? void 0 : _b.length) {\n stack.push({ child: newNode, parent: args.parent.parents[0] });\n }\n }\n return newRoot;\n });\n}\nfunction mergeSubtrees(roots, data, direction = \"children\") {\n var _a;\n const oppositeDirection = direction === \"parents\" ? \"children\" : \"parents\";\n const levels = [];\n const stack = [\n { previous: void 0, items: roots, level: 0 }\n ];\n while (stack.length) {\n const args = stack.shift();\n const indexes = args.items.flatMap((i) => i.itemIndexes);\n const newItem = {\n // We use the items value instead of value from the data frame, cause we could have changed it in the process\n value: args.items.reduce((acc, i) => acc + i.value, 0),\n itemIndexes: indexes,\n // these will change later\n children: [],\n parents: [],\n start: 0,\n level: args.level\n };\n levels[args.level] = levels[args.level] || [];\n levels[args.level].push(newItem);\n if (args.previous) {\n newItem[oppositeDirection] = [args.previous];\n const prevSiblingsVal = ((_a = args.previous[direction]) == null ? void 0 : _a.reduce((acc, node) => {\n return acc + node.value;\n }, 0)) || 0;\n newItem.start = args.previous.start + prevSiblingsVal;\n args.previous[direction].push(newItem);\n }\n const nextItems = args.items.flatMap((i) => i[direction] || []);\n const nextGroups = groupBy(nextItems, (c) => data.getLabel(c.itemIndexes[0]));\n for (const g of Object.values(nextGroups)) {\n stack.push({ previous: newItem, items: g, level: args.level + 1 });\n }\n }\n if (direction === \"parents\") {\n levels.reverse();\n levels.forEach((level, index) => {\n level.forEach((item) => {\n item.level = index;\n });\n });\n }\n return levels;\n}\n\nexport { mergeParentSubtrees, mergeSubtrees };\n//# sourceMappingURL=treeTransforms.js.map\n","import { FieldType, getDisplayProcessor, createTheme } from '@grafana/data';\nimport { SampleUnit } from '../types.js';\nimport { mergeParentSubtrees, mergeSubtrees } from './treeTransforms.js';\n\nfunction nestedSetToLevels(container, options) {\n const levels = [];\n let offset = 0;\n let parent = void 0;\n const uniqueLabels = {};\n for (let i = 0; i < container.data.length; i++) {\n const currentLevel = container.getLevel(i);\n const prevLevel = i > 0 ? container.getLevel(i - 1) : void 0;\n levels[currentLevel] = levels[currentLevel] || [];\n if (prevLevel && prevLevel >= currentLevel) {\n const lastSibling = levels[currentLevel][levels[currentLevel].length - 1];\n offset = lastSibling.start + container.getValue(lastSibling.itemIndexes[0]) + container.getValueRight(lastSibling.itemIndexes[0]);\n parent = lastSibling.parents[0];\n }\n const newItem = {\n itemIndexes: [i],\n value: container.getValue(i) + container.getValueRight(i),\n valueRight: container.isDiffFlamegraph() ? container.getValueRight(i) : void 0,\n start: offset,\n parents: parent && [parent],\n children: [],\n level: currentLevel\n };\n if (uniqueLabels[container.getLabel(i)]) {\n uniqueLabels[container.getLabel(i)].push(newItem);\n } else {\n uniqueLabels[container.getLabel(i)] = [newItem];\n }\n if (parent) {\n parent.children.push(newItem);\n }\n parent = newItem;\n levels[currentLevel].push(newItem);\n }\n const collapsedMapContainer = new CollapsedMapBuilder(options == null ? void 0 : options.collapsingThreshold);\n if (options == null ? void 0 : options.collapsing) {\n collapsedMapContainer.addTree(levels[0][0]);\n }\n return [levels, uniqueLabels, collapsedMapContainer.getCollapsedMap()];\n}\nclass CollapsedMap {\n constructor(map) {\n // The levelItem used as a key is the item that will always be rendered in the flame graph. The config.items are all\n // the items that are in the group and if the config.collapsed is true they will be hidden.\n this.map = /* @__PURE__ */ new Map();\n this.map = map || /* @__PURE__ */ new Map();\n }\n get(item) {\n return this.map.get(item);\n }\n keys() {\n return this.map.keys();\n }\n values() {\n return this.map.values();\n }\n size() {\n return this.map.size;\n }\n setCollapsedStatus(item, collapsed) {\n const newMap = new Map(this.map);\n const collapsedConfig = this.map.get(item);\n const newConfig = { ...collapsedConfig, collapsed };\n for (const item2 of collapsedConfig.items) {\n newMap.set(item2, newConfig);\n }\n return new CollapsedMap(newMap);\n }\n setAllCollapsedStatus(collapsed) {\n const newMap = new Map(this.map);\n for (const item of this.map.keys()) {\n const collapsedConfig = this.map.get(item);\n const newConfig = { ...collapsedConfig, collapsed };\n newMap.set(item, newConfig);\n }\n return new CollapsedMap(newMap);\n }\n}\nclass CollapsedMapBuilder {\n constructor(threshold) {\n this.map = /* @__PURE__ */ new Map();\n this.threshold = 0.99;\n if (threshold !== void 0) {\n this.threshold = threshold;\n }\n }\n addTree(root) {\n var _a;\n const stack = [root];\n while (stack.length) {\n const current = stack.shift();\n if ((_a = current.parents) == null ? void 0 : _a.length) {\n this.addItem(current, current.parents[0]);\n }\n if (current.children.length) {\n stack.unshift(...current.children);\n }\n }\n }\n // The heuristics here is pretty simple right now. Just check if it's single child and if we are within threshold.\n // We assume items with small self just aren't too important while we cannot really collapse items with siblings\n // as it's not clear what to do with said sibling.\n addItem(item, parent) {\n if (parent && item.value > parent.value * this.threshold && parent.children.length === 1) {\n if (this.map.has(parent)) {\n const config = this.map.get(parent);\n this.map.set(item, config);\n config.items.push(item);\n } else {\n const config = { items: [parent, item], collapsed: true };\n this.map.set(parent, config);\n this.map.set(item, config);\n }\n }\n }\n getCollapsedMap() {\n return new CollapsedMap(this.map);\n }\n}\nfunction getMessageCheckFieldsResult(wrongFields) {\n if (wrongFields.missingFields.length) {\n return `Data is missing fields: ${wrongFields.missingFields.join(\", \")}`;\n }\n if (wrongFields.wrongTypeFields.length) {\n return `Data has fields of wrong type: ${wrongFields.wrongTypeFields.map((f) => `${f.name} has type ${f.type} but should be ${f.expectedTypes.join(\" or \")}`).join(\", \")}`;\n }\n return \"\";\n}\nfunction checkFields(data) {\n const fields = [\n [\"label\", [FieldType.string, FieldType.enum]],\n [\"level\", [FieldType.number]],\n [\"value\", [FieldType.number]],\n [\"self\", [FieldType.number]]\n ];\n const missingFields = [];\n const wrongTypeFields = [];\n for (const field of fields) {\n const [name, types] = field;\n const frameField = data == null ? void 0 : data.fields.find((f) => f.name === name);\n if (!frameField) {\n missingFields.push(name);\n continue;\n }\n if (!types.includes(frameField.type)) {\n wrongTypeFields.push({ name, expectedTypes: types, type: frameField.type });\n }\n }\n if (missingFields.length > 0 || wrongTypeFields.length > 0) {\n return {\n wrongTypeFields,\n missingFields\n };\n }\n return void 0;\n}\nclass FlameGraphDataContainer {\n constructor(data, options, theme = createTheme()) {\n var _a, _b, _c;\n this.data = data;\n this.options = options;\n const wrongFields = checkFields(data);\n if (wrongFields) {\n throw new Error(getMessageCheckFieldsResult(wrongFields));\n }\n this.labelField = data.fields.find((f) => f.name === \"label\");\n this.levelField = data.fields.find((f) => f.name === \"level\");\n this.valueField = data.fields.find((f) => f.name === \"value\");\n this.selfField = data.fields.find((f) => f.name === \"self\");\n this.valueRightField = data.fields.find((f) => f.name === \"valueRight\");\n this.selfRightField = data.fields.find((f) => f.name === \"selfRight\");\n if ((this.valueField || this.selfField) && !(this.valueField && this.selfField)) {\n throw new Error(\n \"Malformed dataFrame: both valueRight and selfRight has to be present if one of them is present.\"\n );\n }\n const enumConfig = (_c = (_b = (_a = this.labelField) == null ? void 0 : _a.config) == null ? void 0 : _b.type) == null ? void 0 : _c.enum;\n if (enumConfig) {\n this.labelDisplayProcessor = getDisplayProcessor({ field: this.labelField, theme });\n this.uniqueLabels = enumConfig.text || [];\n } else {\n this.labelDisplayProcessor = (value) => ({\n text: value + \"\",\n numeric: 0\n });\n this.uniqueLabels = [...new Set(this.labelField.values)];\n }\n this.valueDisplayProcessor = getDisplayProcessor({\n field: this.valueField,\n theme\n });\n }\n isDiffFlamegraph() {\n return Boolean(this.valueRightField && this.selfRightField);\n }\n getLabel(index) {\n return this.labelDisplayProcessor(this.labelField.values[index]).text;\n }\n getLevel(index) {\n return this.levelField.values[index];\n }\n getValue(index) {\n return fieldAccessor(this.valueField, index);\n }\n getValueRight(index) {\n return fieldAccessor(this.valueRightField, index);\n }\n getSelf(index) {\n return fieldAccessor(this.selfField, index);\n }\n getSelfRight(index) {\n return fieldAccessor(this.selfRightField, index);\n }\n getSelfDisplay(index) {\n return this.valueDisplayProcessor(this.getSelf(index));\n }\n getUniqueLabels() {\n return this.uniqueLabels;\n }\n getUnitTitle() {\n switch (this.valueField.config.unit) {\n case SampleUnit.Bytes:\n return \"RAM\";\n case SampleUnit.Nanoseconds:\n return \"Time\";\n }\n return \"Count\";\n }\n getLevels() {\n this.initLevels();\n return this.levels;\n }\n getSandwichLevels(label) {\n const nodes = this.getNodesWithLabel(label);\n if (!(nodes == null ? void 0 : nodes.length)) {\n return [[], []];\n }\n const callers = mergeParentSubtrees(nodes, this);\n const callees = mergeSubtrees(nodes, this);\n return [callers, callees];\n }\n getNodesWithLabel(label) {\n this.initLevels();\n return this.uniqueLabelsMap[label];\n }\n getCollapsedMap() {\n this.initLevels();\n return this.collapsedMap;\n }\n initLevels() {\n if (!this.levels) {\n const [levels, uniqueLabelsMap, collapsedMap] = nestedSetToLevels(this, this.options);\n this.levels = levels;\n this.uniqueLabelsMap = uniqueLabelsMap;\n this.collapsedMap = collapsedMap;\n }\n }\n}\nfunction fieldAccessor(field, index) {\n if (!field) {\n return 0;\n }\n let indexArray = typeof index === \"number\" ? [index] : index;\n return indexArray.reduce((acc, index2) => {\n return acc + field.values[index2];\n }, 0);\n}\n\nexport { CollapsedMap, CollapsedMapBuilder, FlameGraphDataContainer, checkFields, getMessageCheckFieldsResult, nestedSetToLevels };\n//# sourceMappingURL=dataTransform.js.map\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { cx, css } from '@emotion/css';\nimport { useState, useEffect } from 'react';\nimport useDebounce from 'react-use/lib/useDebounce';\nimport usePrevious from 'react-use/lib/usePrevious';\nimport { useStyles2, Input, Button, ButtonGroup, RadioButtonGroup, Menu, Dropdown } from '@grafana/ui';\nimport { byValueGradient, byPackageGradient, diffDefaultGradient, diffColorBlindGradient } from './FlameGraph/colors.js';\nimport { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants.js';\nimport { SelectedView, ColorScheme, ColorSchemeDiff } from './types.js';\n\nconst FlameGraphHeader = ({\n search,\n setSearch,\n selectedView,\n setSelectedView,\n containerWidth,\n onReset,\n textAlign,\n onTextAlignChange,\n showResetButton,\n colorScheme,\n onColorSchemeChange,\n stickyHeader,\n extraHeaderElements,\n vertical,\n isDiffMode,\n setCollapsedMap,\n collapsedMap\n}) => {\n const styles = useStyles2(getStyles);\n const [localSearch, setLocalSearch] = useSearchInput(search, setSearch);\n const suffix = localSearch !== \"\" ? /* @__PURE__ */ jsx(\n Button,\n {\n icon: \"times\",\n fill: \"text\",\n size: \"sm\",\n onClick: () => {\n setSearch(\"\");\n setLocalSearch(\"\");\n },\n children: \"Clear\"\n }\n ) : null;\n return /* @__PURE__ */ jsxs(\"div\", { className: cx(styles.header, { [styles.stickyHeader]: stickyHeader }), children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles.inputContainer, children: /* @__PURE__ */ jsx(\n Input,\n {\n value: localSearch || \"\",\n onChange: (v) => {\n setLocalSearch(v.currentTarget.value);\n },\n placeholder: \"Search...\",\n suffix\n }\n ) }),\n /* @__PURE__ */ jsxs(\"div\", { className: styles.rightContainer, children: [\n showResetButton && /* @__PURE__ */ jsx(\n Button,\n {\n variant: \"secondary\",\n fill: \"outline\",\n size: \"sm\",\n icon: \"history-alt\",\n tooltip: \"Reset focus and sandwich state\",\n onClick: () => {\n onReset();\n },\n className: styles.buttonSpacing,\n \"aria-label\": \"Reset focus and sandwich state\"\n }\n ),\n /* @__PURE__ */ jsx(ColorSchemeButton, { value: colorScheme, onChange: onColorSchemeChange, isDiffMode }),\n /* @__PURE__ */ jsxs(ButtonGroup, { className: styles.buttonSpacing, children: [\n /* @__PURE__ */ jsx(\n Button,\n {\n variant: \"secondary\",\n fill: \"outline\",\n size: \"sm\",\n tooltip: \"Expand all groups\",\n onClick: () => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(false));\n },\n \"aria-label\": \"Expand all groups\",\n icon: \"angle-double-down\",\n disabled: selectedView === SelectedView.TopTable\n }\n ),\n /* @__PURE__ */ jsx(\n Button,\n {\n variant: \"secondary\",\n fill: \"outline\",\n size: \"sm\",\n tooltip: \"Collapse all groups\",\n onClick: () => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(true));\n },\n \"aria-label\": \"Collapse all groups\",\n icon: \"angle-double-up\",\n disabled: selectedView === SelectedView.TopTable\n }\n )\n ] }),\n /* @__PURE__ */ jsx(\n RadioButtonGroup,\n {\n size: \"sm\",\n disabled: selectedView === SelectedView.TopTable,\n options: alignOptions,\n value: textAlign,\n onChange: onTextAlignChange,\n className: styles.buttonSpacing\n }\n ),\n /* @__PURE__ */ jsx(\n RadioButtonGroup,\n {\n size: \"sm\",\n options: getViewOptions(containerWidth, vertical),\n value: selectedView,\n onChange: setSelectedView\n }\n ),\n extraHeaderElements && /* @__PURE__ */ jsx(\"div\", { className: styles.extraElements, children: extraHeaderElements })\n ] })\n ] });\n};\nfunction ColorSchemeButton(props) {\n const styles = useStyles2(getStyles);\n let menu = /* @__PURE__ */ jsxs(Menu, { children: [\n /* @__PURE__ */ jsx(Menu.Item, { label: \"By package name\", onClick: () => props.onChange(ColorScheme.PackageBased) }),\n /* @__PURE__ */ jsx(Menu.Item, { label: \"By value\", onClick: () => props.onChange(ColorScheme.ValueBased) })\n ] });\n const colorDotStyle = {\n [ColorScheme.ValueBased]: styles.colorDotByValue,\n [ColorScheme.PackageBased]: styles.colorDotByPackage,\n [ColorSchemeDiff.DiffColorBlind]: styles.colorDotDiffColorBlind,\n [ColorSchemeDiff.Default]: styles.colorDotDiffDefault\n }[props.value] || styles.colorDotByValue;\n let contents = /* @__PURE__ */ jsx(\"span\", { className: cx(styles.colorDot, colorDotStyle) });\n if (props.isDiffMode) {\n menu = /* @__PURE__ */ jsxs(Menu, { children: [\n /* @__PURE__ */ jsx(Menu.Item, { label: \"Default (green to red)\", onClick: () => props.onChange(ColorSchemeDiff.Default) }),\n /* @__PURE__ */ jsx(Menu.Item, { label: \"Color blind (blue to red)\", onClick: () => props.onChange(ColorSchemeDiff.DiffColorBlind) })\n ] });\n contents = /* @__PURE__ */ jsxs(\"div\", { className: cx(styles.colorDotDiff, colorDotStyle), children: [\n /* @__PURE__ */ jsx(\"div\", { children: \"-100% (removed)\" }),\n /* @__PURE__ */ jsx(\"div\", { children: \"0%\" }),\n /* @__PURE__ */ jsx(\"div\", { children: \"+100% (added)\" })\n ] });\n }\n return /* @__PURE__ */ jsx(Dropdown, { overlay: menu, children: /* @__PURE__ */ jsx(\n Button,\n {\n variant: \"secondary\",\n fill: \"outline\",\n size: \"sm\",\n tooltip: \"Change color scheme\",\n onClick: () => {\n },\n className: styles.buttonSpacing,\n \"aria-label\": \"Change color scheme\",\n children: contents\n }\n ) });\n}\nconst alignOptions = [\n { value: \"left\", description: \"Align text left\", icon: \"align-left\" },\n { value: \"right\", description: \"Align text right\", icon: \"align-right\" }\n];\nfunction getViewOptions(width, vertical) {\n let viewOptions = [\n { value: SelectedView.TopTable, label: \"Top Table\", description: \"Only show top table\" },\n { value: SelectedView.FlameGraph, label: \"Flame Graph\", description: \"Only show flame graph\" }\n ];\n if (width >= MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH || vertical) {\n viewOptions.push({\n value: SelectedView.Both,\n label: \"Both\",\n description: \"Show both the top table and flame graph\"\n });\n }\n return viewOptions;\n}\nfunction useSearchInput(search, setSearch) {\n const [localSearchState, setLocalSearchState] = useState(search);\n const prevSearch = usePrevious(search);\n useDebounce(\n () => {\n setSearch(localSearchState);\n },\n 250,\n [localSearchState]\n );\n useEffect(() => {\n if (prevSearch !== search && search !== localSearchState) {\n setLocalSearchState(search);\n }\n }, [search, prevSearch, localSearchState]);\n return [localSearchState, setLocalSearchState];\n}\nconst getStyles = (theme) => ({\n header: css({\n label: \"header\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n width: \"100%\",\n top: 0,\n gap: theme.spacing(1),\n marginTop: theme.spacing(1)\n }),\n stickyHeader: css({\n zIndex: theme.zIndex.navbarFixed,\n position: \"sticky\",\n background: theme.colors.background.primary\n }),\n inputContainer: css({\n label: \"inputContainer\",\n flexGrow: 1,\n minWidth: \"150px\",\n maxWidth: \"350px\"\n }),\n rightContainer: css({\n label: \"rightContainer\",\n display: \"flex\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\"\n }),\n buttonSpacing: css({\n label: \"buttonSpacing\",\n marginRight: theme.spacing(1)\n }),\n resetButton: css({\n label: \"resetButton\",\n display: \"flex\",\n marginRight: theme.spacing(2)\n }),\n resetButtonIconWrapper: css({\n label: \"resetButtonIcon\",\n padding: \"0 5px\",\n color: theme.colors.text.disabled\n }),\n colorDot: css({\n label: \"colorDot\",\n display: \"inline-block\",\n width: \"10px\",\n height: \"10px\",\n // eslint-disable-next-line @grafana/no-border-radius-literal\n borderRadius: \"50%\"\n }),\n colorDotDiff: css({\n label: \"colorDotDiff\",\n display: \"flex\",\n width: \"200px\",\n height: \"12px\",\n color: \"white\",\n fontSize: 9,\n lineHeight: 1.3,\n fontWeight: 300,\n justifyContent: \"space-between\",\n padding: \"0 2px\",\n // We have a specific sizing for this so probably makes sense to use hardcoded value here\n // eslint-disable-next-line @grafana/no-border-radius-literal\n borderRadius: \"2px\"\n }),\n colorDotByValue: css({\n label: \"colorDotByValue\",\n background: byValueGradient\n }),\n colorDotByPackage: css({\n label: \"colorDotByPackage\",\n background: byPackageGradient\n }),\n colorDotDiffDefault: css({\n label: \"colorDotDiffDefault\",\n background: diffDefaultGradient\n }),\n colorDotDiffColorBlind: css({\n label: \"colorDotDiffColorBlind\",\n background: diffColorBlindGradient\n }),\n extraElements: css({\n label: \"extraElements\",\n marginLeft: theme.spacing(1)\n })\n});\n\nexport { FlameGraphHeader as default };\n//# sourceMappingURL=FlameGraphHeader.js.map\n","import { Component, createElement } from 'react';\n\n/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n * 5) Use 'export' statement over 'module.exports' assignment\n **/\n\n// Check `document` and `window` in case of server-side rendering\nlet windowObject;\nif (typeof window !== \"undefined\") {\n windowObject = window;\n\n // eslint-disable-next-line no-restricted-globals\n} else if (typeof self !== \"undefined\") {\n // eslint-disable-next-line no-restricted-globals\n windowObject = self;\n} else {\n windowObject = global;\n}\nlet cancelFrame = null;\nlet requestFrame = null;\nconst TIMEOUT_DURATION = 20;\nconst clearTimeoutFn = windowObject.clearTimeout;\nconst setTimeoutFn = windowObject.setTimeout;\nconst cancelAnimationFrameFn = windowObject.cancelAnimationFrame || windowObject.mozCancelAnimationFrame || windowObject.webkitCancelAnimationFrame;\nconst requestAnimationFrameFn = windowObject.requestAnimationFrame || windowObject.mozRequestAnimationFrame || windowObject.webkitRequestAnimationFrame;\nif (cancelAnimationFrameFn == null || requestAnimationFrameFn == null) {\n // For environments that don't support animation frame,\n // fallback to a setTimeout based approach.\n cancelFrame = clearTimeoutFn;\n requestFrame = function requestAnimationFrameViaSetTimeout(callback) {\n return setTimeoutFn(callback, TIMEOUT_DURATION);\n };\n} else {\n // Counter intuitively, environments that support animation frames can be trickier.\n // Chrome's \"Throttle non-visible cross-origin iframes\" flag can prevent rAFs from being called.\n // In this case, we should fallback to a setTimeout() implementation.\n cancelFrame = function cancelFrame([animationFrameID, timeoutID]) {\n cancelAnimationFrameFn(animationFrameID);\n clearTimeoutFn(timeoutID);\n };\n requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) {\n const animationFrameID = requestAnimationFrameFn(function animationFrameCallback() {\n clearTimeoutFn(timeoutID);\n callback();\n });\n const timeoutID = setTimeoutFn(function timeoutCallback() {\n cancelAnimationFrameFn(animationFrameID);\n callback();\n }, TIMEOUT_DURATION);\n return [animationFrameID, timeoutID];\n };\n}\nfunction createDetectElementResize(nonce) {\n let animationKeyframes;\n let animationName;\n let animationStartEvent;\n let animationStyle;\n let checkTriggers;\n let resetTriggers;\n let scrollListener;\n const attachEvent = typeof document !== \"undefined\" && document.attachEvent;\n if (!attachEvent) {\n resetTriggers = function (element) {\n const triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + \"px\";\n expandChild.style.height = expand.offsetHeight + 1 + \"px\";\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n checkTriggers = function (element) {\n return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;\n };\n scrollListener = function (e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === \"function\" && e.target.className.indexOf(\"contract-trigger\") < 0 && e.target.className.indexOf(\"expand-trigger\") < 0) {\n return;\n }\n const element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function animationFrame() {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function forEachResizeListener(fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n let animation = false;\n let keyframeprefix = \"\";\n animationStartEvent = \"animationstart\";\n const domPrefixes = \"Webkit Moz O ms\".split(\" \");\n let startEvents = \"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \");\n let pfx = \"\";\n {\n const elm = document.createElement(\"fakeelement\");\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n if (animation === false) {\n for (let i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + \"AnimationName\"] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = \"-\" + pfx.toLowerCase() + \"-\";\n animationStartEvent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n animationName = \"resizeanim\";\n animationKeyframes = \"@\" + keyframeprefix + \"keyframes \" + animationName + \" { from { opacity: 0; } to { opacity: 0; } } \";\n animationStyle = keyframeprefix + \"animation: 1ms \" + animationName + \"; \";\n }\n const createStyles = function (doc) {\n if (!doc.getElementById(\"detectElementResize\")) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n const css = (animationKeyframes ? animationKeyframes : \"\") + \".resize-triggers { \" + (animationStyle ? animationStyle : \"\") + \"visibility: hidden; opacity: 0; } \" + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName(\"head\")[0],\n style = doc.createElement(\"style\");\n style.id = \"detectElementResize\";\n style.type = \"text/css\";\n if (nonce != null) {\n style.setAttribute(\"nonce\", nonce);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n head.appendChild(style);\n }\n };\n const addResizeListener = function (element, fn) {\n if (attachEvent) {\n element.attachEvent(\"onresize\", fn);\n } else {\n if (!element.__resizeTriggers__) {\n const doc = element.ownerDocument;\n const elementStyle = windowObject.getComputedStyle(element);\n if (elementStyle && elementStyle.position === \"static\") {\n element.style.position = \"relative\";\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement(\"div\")).className = \"resize-triggers\";\n const expandTrigger = doc.createElement(\"div\");\n expandTrigger.className = \"expand-trigger\";\n expandTrigger.appendChild(doc.createElement(\"div\"));\n const contractTrigger = doc.createElement(\"div\");\n contractTrigger.className = \"contract-trigger\";\n element.__resizeTriggers__.appendChild(expandTrigger);\n element.__resizeTriggers__.appendChild(contractTrigger);\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener(\"scroll\", scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationStartEvent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName === animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n const removeResizeListener = function (element, fn) {\n if (attachEvent) {\n element.detachEvent(\"onresize\", fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener(\"scroll\", scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {\n // Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n return {\n addResizeListener,\n removeResizeListener\n };\n}\n\nclass AutoSizer extends Component {\n constructor(...args) {\n super(...args);\n this.state = {\n height: this.props.defaultHeight || 0,\n scaledHeight: this.props.defaultHeight || 0,\n scaledWidth: this.props.defaultWidth || 0,\n width: this.props.defaultWidth || 0\n };\n this._autoSizer = null;\n this._detectElementResize = null;\n this._parentNode = null;\n this._resizeObserver = null;\n this._timeoutId = null;\n this._onResize = () => {\n this._timeoutId = null;\n const {\n disableHeight,\n disableWidth,\n onResize\n } = this.props;\n if (this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n const style = window.getComputedStyle(this._parentNode) || {};\n const paddingLeft = parseFloat(style.paddingLeft || \"0\");\n const paddingRight = parseFloat(style.paddingRight || \"0\");\n const paddingTop = parseFloat(style.paddingTop || \"0\");\n const paddingBottom = parseFloat(style.paddingBottom || \"0\");\n const rect = this._parentNode.getBoundingClientRect();\n const scaledHeight = rect.height - paddingTop - paddingBottom;\n const scaledWidth = rect.width - paddingLeft - paddingRight;\n const height = this._parentNode.offsetHeight - paddingTop - paddingBottom;\n const width = this._parentNode.offsetWidth - paddingLeft - paddingRight;\n if (!disableHeight && (this.state.height !== height || this.state.scaledHeight !== scaledHeight) || !disableWidth && (this.state.width !== width || this.state.scaledWidth !== scaledWidth)) {\n this.setState({\n height,\n width,\n scaledHeight,\n scaledWidth\n });\n if (typeof onResize === \"function\") {\n onResize({\n height,\n scaledHeight,\n scaledWidth,\n width\n });\n }\n }\n }\n };\n this._setRef = autoSizer => {\n this._autoSizer = autoSizer;\n };\n }\n componentDidMount() {\n const {\n nonce\n } = this.props;\n const parentNode = this._autoSizer ? this._autoSizer.parentNode : null;\n if (parentNode != null && parentNode.ownerDocument && parentNode.ownerDocument.defaultView && parentNode instanceof parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = parentNode;\n\n // Use ResizeObserver from the same context where parentNode (which we will observe) was defined\n // Using just global can result into onResize events not being emitted in cases with multiple realms\n const ResizeObserverInstance = parentNode.ownerDocument.defaultView.ResizeObserver;\n if (ResizeObserverInstance != null) {\n this._resizeObserver = new ResizeObserverInstance(() => {\n // Guard against \"ResizeObserver loop limit exceeded\" error;\n // could be triggered if the state update causes the ResizeObserver handler to run long.\n // See https://github.com/bvaughn/react-virtualized-auto-sizer/issues/55\n this._timeoutId = setTimeout(this._onResize, 0);\n });\n this._resizeObserver.observe(parentNode);\n } else {\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(nonce);\n this._detectElementResize.addResizeListener(parentNode, this._onResize);\n }\n this._onResize();\n }\n }\n componentWillUnmount() {\n if (this._parentNode) {\n if (this._detectElementResize) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n if (this._timeoutId !== null) {\n clearTimeout(this._timeoutId);\n }\n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n }\n }\n }\n render() {\n const {\n children,\n defaultHeight,\n defaultWidth,\n disableHeight = false,\n disableWidth = false,\n doNotBailOutOnEmptyChildren = false,\n nonce,\n onResize,\n style = {},\n tagName = \"div\",\n ...rest\n } = this.props;\n const {\n height,\n scaledHeight,\n scaledWidth,\n width\n } = this.state;\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n const outerStyle = {\n overflow: \"visible\"\n };\n const childParams = {};\n\n // Avoid rendering children before the initial measurements have been collected.\n // At best this would just be wasting cycles.\n let bailoutOnChildren = false;\n if (!disableHeight) {\n if (height === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.height = 0;\n childParams.height = height;\n childParams.scaledHeight = scaledHeight;\n }\n if (!disableWidth) {\n if (width === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.width = 0;\n childParams.width = width;\n childParams.scaledWidth = scaledWidth;\n }\n if (doNotBailOutOnEmptyChildren) {\n bailoutOnChildren = false;\n }\n return createElement(tagName, {\n ref: this._setRef,\n style: {\n ...outerStyle,\n ...style\n },\n ...rest\n }, !bailoutOnChildren && children(childParams));\n }\n}\n\nfunction isHeightAndWidthProps(props) {\n return props && props.disableHeight !== true && props.disableWidth !== true;\n}\nfunction isHeightOnlyProps(props) {\n return props && props.disableHeight !== true && props.disableWidth === true;\n}\nfunction isWidthOnlyProps(props) {\n return props && props.disableHeight === true && props.disableWidth !== true;\n}\n\nexport { AutoSizer as default, isHeightAndWidthProps, isHeightOnlyProps, isWidthOnlyProps };\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { css } from '@emotion/css';\nimport { memo, useMemo, useState } from 'react';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { FieldType, MappingType, applyFieldOverrides } from '@grafana/data';\nimport { useStyles2, useTheme2, Table, TableCellDisplayMode, IconButton } from '@grafana/ui';\nimport { diffColorBlindColors, diffDefaultColors } from '../FlameGraph/colors.js';\nimport { TOP_TABLE_COLUMN_WIDTH } from '../constants.js';\nimport { ColorSchemeDiff } from '../types.js';\n\nconst FlameGraphTopTableContainer = memo(\n ({\n data,\n onSymbolClick,\n search,\n matchedLabels,\n onSearch,\n sandwichItem,\n onSandwich,\n onTableSort,\n colorScheme\n }) => {\n const table = useMemo(() => {\n let filteredTable = {};\n for (let i = 0; i < data.data.length; i++) {\n const value = data.getValue(i);\n const valueRight = data.getValueRight(i);\n const self = data.getSelf(i);\n const label = data.getLabel(i);\n if (!matchedLabels || matchedLabels.has(label)) {\n filteredTable[label] = filteredTable[label] || {};\n filteredTable[label].self = filteredTable[label].self ? filteredTable[label].self + self : self;\n filteredTable[label].total = filteredTable[label].total ? filteredTable[label].total + value : value;\n filteredTable[label].totalRight = filteredTable[label].totalRight ? filteredTable[label].totalRight + valueRight : valueRight;\n }\n }\n return filteredTable;\n }, [data, matchedLabels]);\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const [sort, setSort] = useState([{ displayName: \"Self\", desc: true }]);\n return /* @__PURE__ */ jsx(\"div\", { className: styles.topTableContainer, \"data-testid\": \"topTable\", children: /* @__PURE__ */ jsx(AutoSizer, { style: { width: \"100%\" }, children: ({ width, height }) => {\n if (width < 3 || height < 3) {\n return null;\n }\n const frame = buildTableDataFrame(\n data,\n table,\n width,\n onSymbolClick,\n onSearch,\n onSandwich,\n theme,\n colorScheme,\n search,\n sandwichItem\n );\n return /* @__PURE__ */ jsx(\n Table,\n {\n initialSortBy: sort,\n onSortByChange: (s) => {\n if (s && s.length) {\n onTableSort == null ? void 0 : onTableSort(s[0].displayName + \"_\" + (s[0].desc ? \"desc\" : \"asc\"));\n }\n setSort(s);\n },\n data: frame,\n width,\n height\n }\n );\n } }) });\n }\n);\nFlameGraphTopTableContainer.displayName = \"FlameGraphTopTableContainer\";\nfunction buildTableDataFrame(data, table, width, onSymbolClick, onSearch, onSandwich, theme, colorScheme, search, sandwichItem) {\n const actionField = createActionField(onSandwich, onSearch, search, sandwichItem);\n const symbolField = {\n type: FieldType.string,\n name: \"Symbol\",\n values: [],\n config: {\n custom: { width: width - actionColumnWidth - TOP_TABLE_COLUMN_WIDTH * 2 },\n links: [\n {\n title: \"Highlight symbol\",\n url: \"\",\n onClick: (e) => {\n const field = e.origin.field;\n const value = field.values[e.origin.rowIndex];\n onSymbolClick(value);\n }\n }\n ]\n }\n };\n let frame;\n if (data.isDiffFlamegraph()) {\n symbolField.config.custom.width = width - actionColumnWidth - TOP_TABLE_COLUMN_WIDTH * 3;\n const baselineField = createNumberField(\"Baseline\", \"percent\");\n const comparisonField = createNumberField(\"Comparison\", \"percent\");\n const diffField = createNumberField(\"Diff\", \"percent\");\n diffField.config.custom.cellOptions.type = TableCellDisplayMode.ColorText;\n const [removeColor, addColor] = colorScheme === ColorSchemeDiff.DiffColorBlind ? [diffColorBlindColors[0], diffColorBlindColors[2]] : [diffDefaultColors[0], diffDefaultColors[2]];\n diffField.config.mappings = [\n { type: MappingType.ValueToText, options: { [Infinity]: { text: \"new\", color: addColor } } },\n { type: MappingType.ValueToText, options: { [-100]: { text: \"removed\", color: removeColor } } },\n { type: MappingType.RangeToText, options: { from: 0, to: Infinity, result: { color: addColor } } },\n { type: MappingType.RangeToText, options: { from: -Infinity, to: 0, result: { color: removeColor } } }\n ];\n const levels = data.getLevels();\n const totalTicks = levels.length ? levels[0][0].value : 0;\n const totalTicksRight = levels.length ? levels[0][0].valueRight : void 0;\n for (let key in table) {\n actionField.values.push(null);\n symbolField.values.push(key);\n const ticksLeft = table[key].total;\n const ticksRight = table[key].totalRight;\n const totalTicksLeft = totalTicks - totalTicksRight;\n const percentageLeft = Math.round(1e4 * ticksLeft / totalTicksLeft) / 100;\n const percentageRight = Math.round(1e4 * ticksRight / totalTicksRight) / 100;\n const diff = (percentageRight - percentageLeft) / percentageLeft * 100;\n diffField.values.push(diff);\n baselineField.values.push(percentageLeft);\n comparisonField.values.push(percentageRight);\n }\n frame = {\n fields: [actionField, symbolField, baselineField, comparisonField, diffField],\n length: symbolField.values.length\n };\n } else {\n const selfField = createNumberField(\"Self\", data.selfField.config.unit);\n const totalField = createNumberField(\"Total\", data.valueField.config.unit);\n for (let key in table) {\n actionField.values.push(null);\n symbolField.values.push(key);\n selfField.values.push(table[key].self);\n totalField.values.push(table[key].total);\n }\n frame = { fields: [actionField, symbolField, selfField, totalField], length: symbolField.values.length };\n }\n const dataFrames = applyFieldOverrides({\n data: [frame],\n fieldConfig: {\n defaults: {},\n overrides: []\n },\n replaceVariables: (value) => value,\n theme\n });\n return dataFrames[0];\n}\nfunction createNumberField(name, unit) {\n const tableFieldOptions = {\n width: TOP_TABLE_COLUMN_WIDTH,\n align: \"auto\",\n inspect: false,\n cellOptions: { type: TableCellDisplayMode.Auto }\n };\n return {\n type: FieldType.number,\n name,\n values: [],\n config: {\n unit,\n custom: tableFieldOptions\n }\n };\n}\nconst actionColumnWidth = 61;\nfunction createActionField(onSandwich, onSearch, search, sandwichItem) {\n const options = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n return /* @__PURE__ */ jsx(\n ActionCell,\n {\n frame: props.frame,\n onSandwich,\n onSearch,\n search,\n sandwichItem,\n rowIndex: props.rowIndex\n }\n );\n }\n };\n const actionFieldTableConfig = {\n filterable: false,\n width: actionColumnWidth,\n hideHeader: true,\n inspect: false,\n align: \"auto\",\n cellOptions: options\n };\n return {\n type: FieldType.number,\n name: \"actions\",\n values: [],\n config: {\n custom: actionFieldTableConfig\n }\n };\n}\nfunction ActionCell(props) {\n var _a;\n const styles = getStylesActionCell();\n const symbol = (_a = props.frame.fields.find((f) => f.name === \"Symbol\")) == null ? void 0 : _a.values[props.rowIndex];\n const isSearched = props.search === symbol;\n const isSandwiched = props.sandwichItem === symbol;\n return /* @__PURE__ */ jsxs(\"div\", { className: styles.actionCellWrapper, children: [\n /* @__PURE__ */ jsx(\n IconButton,\n {\n className: styles.actionCellButton,\n name: \"search\",\n variant: isSearched ? \"primary\" : \"secondary\",\n tooltip: isSearched ? \"Clear from search\" : \"Search for symbol\",\n \"aria-label\": isSearched ? \"Clear from search\" : \"Search for symbol\",\n onClick: () => {\n props.onSearch(isSearched ? \"\" : symbol);\n }\n }\n ),\n /* @__PURE__ */ jsx(\n IconButton,\n {\n className: styles.actionCellButton,\n name: \"gf-show-context\",\n tooltip: isSandwiched ? \"Remove from sandwich view\" : \"Show in sandwich view\",\n variant: isSandwiched ? \"primary\" : \"secondary\",\n \"aria-label\": isSandwiched ? \"Remove from sandwich view\" : \"Show in sandwich view\",\n onClick: () => {\n props.onSandwich(isSandwiched ? void 0 : symbol);\n }\n }\n )\n ] });\n}\nconst getStyles = (theme) => {\n return {\n topTableContainer: css({\n label: \"topTableContainer\",\n padding: theme.spacing(1),\n backgroundColor: theme.colors.background.secondary,\n height: \"100%\"\n })\n };\n};\nconst getStylesActionCell = () => {\n return {\n actionCellWrapper: css({\n label: \"actionCellWrapper\",\n display: \"flex\",\n height: \"24px\"\n }),\n actionCellButton: css({\n label: \"actionCellButton\",\n marginRight: 0,\n width: \"24px\"\n })\n };\n};\n\nexport { FlameGraphTopTableContainer as default };\n//# sourceMappingURL=FlameGraphTopTableContainer.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { css } from '@emotion/css';\nimport uFuzzy from '@leeoniya/ufuzzy';\nimport { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useMeasure } from 'react-use';\nimport { ThemeContext } from '@grafana/ui';\nimport FlameGraph from './FlameGraph/FlameGraph.js';\nimport { CollapsedMap, FlameGraphDataContainer } from './FlameGraph/dataTransform.js';\nimport FlameGraphHeader from './FlameGraphHeader.js';\nimport FlameGraphTopTableContainer from './TopTable/FlameGraphTopTableContainer.js';\nimport { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants.js';\nimport { SelectedView, ColorSchemeDiff, ColorScheme } from './types.js';\n\nconst ufuzzy = new uFuzzy();\nconst FlameGraphContainer = ({\n data,\n onTableSymbolClick,\n onViewSelected,\n onTextAlignSelected,\n onTableSort,\n getTheme,\n stickyHeader,\n extraHeaderElements,\n vertical,\n showFlameGraphOnly,\n disableCollapsing,\n getExtraContextMenuButtons\n}) => {\n const [focusedItemData, setFocusedItemData] = useState();\n const [rangeMin, setRangeMin] = useState(0);\n const [rangeMax, setRangeMax] = useState(1);\n const [search, setSearch] = useState(\"\");\n const [selectedView, setSelectedView] = useState(SelectedView.Both);\n const [sizeRef, { width: containerWidth }] = useMeasure();\n const [textAlign, setTextAlign] = useState(\"left\");\n const [sandwichItem, setSandwichItem] = useState();\n const [collapsedMap, setCollapsedMap] = useState(new CollapsedMap());\n const theme = useMemo(() => getTheme(), [getTheme]);\n const dataContainer = useMemo(() => {\n if (!data) {\n return;\n }\n const container = new FlameGraphDataContainer(data, { collapsing: !disableCollapsing }, theme);\n setCollapsedMap(container.getCollapsedMap());\n return container;\n }, [data, theme, disableCollapsing]);\n const [colorScheme, setColorScheme] = useColorScheme(dataContainer);\n const styles = getStyles(theme);\n const matchedLabels = useLabelSearch(search, dataContainer);\n useEffect(() => {\n if (containerWidth > 0 && containerWidth < MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH && selectedView === SelectedView.Both && !vertical) {\n setSelectedView(SelectedView.FlameGraph);\n }\n }, [selectedView, setSelectedView, containerWidth, vertical]);\n const resetFocus = useCallback(() => {\n setFocusedItemData(void 0);\n setRangeMin(0);\n setRangeMax(1);\n }, [setFocusedItemData, setRangeMax, setRangeMin]);\n function resetSandwich() {\n setSandwichItem(void 0);\n }\n useEffect(() => {\n resetFocus();\n resetSandwich();\n }, [data, resetFocus]);\n const onSymbolClick = useCallback(\n (symbol) => {\n if (search === symbol) {\n setSearch(\"\");\n } else {\n onTableSymbolClick == null ? void 0 : onTableSymbolClick(symbol);\n setSearch(symbol);\n resetFocus();\n }\n },\n [setSearch, resetFocus, onTableSymbolClick, search]\n );\n if (!dataContainer) {\n return null;\n }\n const flameGraph = /* @__PURE__ */ jsx(\n FlameGraph,\n {\n data: dataContainer,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused: (data2) => setFocusedItemData(data2),\n focusedItemData,\n textAlign,\n sandwichItem,\n onSandwich: (label) => {\n resetFocus();\n setSandwichItem(label);\n },\n onFocusPillClick: resetFocus,\n onSandwichPillClick: resetSandwich,\n colorScheme,\n showFlameGraphOnly,\n collapsing: !disableCollapsing,\n getExtraContextMenuButtons,\n selectedView,\n search,\n collapsedMap,\n setCollapsedMap\n }\n );\n const table = /* @__PURE__ */ jsx(\n FlameGraphTopTableContainer,\n {\n data: dataContainer,\n onSymbolClick,\n search,\n matchedLabels,\n sandwichItem,\n onSandwich: setSandwichItem,\n onSearch: setSearch,\n onTableSort,\n colorScheme\n }\n );\n let body;\n if (showFlameGraphOnly || selectedView === SelectedView.FlameGraph) {\n body = flameGraph;\n } else if (selectedView === SelectedView.TopTable) {\n body = /* @__PURE__ */ jsx(\"div\", { className: styles.tableContainer, children: table });\n } else if (selectedView === SelectedView.Both) {\n if (vertical) {\n body = /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles.verticalGraphContainer, children: flameGraph }),\n /* @__PURE__ */ jsx(\"div\", { className: styles.verticalTableContainer, children: table })\n ] });\n } else {\n body = /* @__PURE__ */ jsxs(\"div\", { className: styles.horizontalContainer, children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles.horizontalTableContainer, children: table }),\n /* @__PURE__ */ jsx(\"div\", { className: styles.horizontalGraphContainer, children: flameGraph })\n ] });\n }\n }\n return (\n // We add the theme context to bridge the gap if this is rendered in non grafana environment where the context\n // isn't already provided.\n /* @__PURE__ */ jsx(ThemeContext.Provider, { value: theme, children: /* @__PURE__ */ jsxs(\"div\", { ref: sizeRef, className: styles.container, children: [\n !showFlameGraphOnly && /* @__PURE__ */ jsx(\n FlameGraphHeader,\n {\n search,\n setSearch,\n selectedView,\n setSelectedView: (view) => {\n setSelectedView(view);\n onViewSelected == null ? void 0 : onViewSelected(view);\n },\n containerWidth,\n onReset: () => {\n resetFocus();\n resetSandwich();\n },\n textAlign,\n onTextAlignChange: (align) => {\n setTextAlign(align);\n onTextAlignSelected == null ? void 0 : onTextAlignSelected(align);\n },\n showResetButton: Boolean(focusedItemData || sandwichItem),\n colorScheme,\n onColorSchemeChange: setColorScheme,\n stickyHeader: Boolean(stickyHeader),\n extraHeaderElements,\n vertical,\n isDiffMode: dataContainer.isDiffFlamegraph(),\n setCollapsedMap,\n collapsedMap\n }\n ),\n /* @__PURE__ */ jsx(\"div\", { className: styles.body, children: body })\n ] }) })\n );\n};\nfunction useColorScheme(dataContainer) {\n const defaultColorScheme = (dataContainer == null ? void 0 : dataContainer.isDiffFlamegraph()) ? ColorSchemeDiff.Default : ColorScheme.PackageBased;\n const [colorScheme, setColorScheme] = useState(defaultColorScheme);\n useEffect(() => {\n setColorScheme(defaultColorScheme);\n }, [defaultColorScheme]);\n return [colorScheme, setColorScheme];\n}\nfunction useLabelSearch(search, data) {\n return useMemo(() => {\n if (search && data) {\n const foundLabels = /* @__PURE__ */ new Set();\n let idxs = ufuzzy.filter(data.getUniqueLabels(), search);\n if (idxs) {\n for (let idx of idxs) {\n foundLabels.add(data.getUniqueLabels()[idx]);\n }\n }\n return foundLabels;\n }\n return void 0;\n }, [search, data]);\n}\nfunction getStyles(theme) {\n return {\n container: css({\n label: \"container\",\n overflow: \"auto\",\n height: \"100%\",\n display: \"flex\",\n flex: \"1 1 0\",\n flexDirection: \"column\",\n minHeight: 0,\n gap: theme.spacing(1)\n }),\n body: css({\n label: \"body\",\n flexGrow: 1\n }),\n tableContainer: css({\n // This is not ideal for dashboard panel where it creates a double scroll. In a panel it should be 100% but then\n // in explore we need a specific height.\n height: 800\n }),\n horizontalContainer: css({\n label: \"horizontalContainer\",\n display: \"flex\",\n minHeight: 0,\n flexDirection: \"row\",\n columnGap: theme.spacing(1),\n width: \"100%\"\n }),\n horizontalGraphContainer: css({\n flexBasis: \"50%\"\n }),\n horizontalTableContainer: css({\n flexBasis: \"50%\",\n maxHeight: 800\n }),\n verticalGraphContainer: css({\n marginBottom: theme.spacing(1)\n }),\n verticalTableContainer: css({\n height: 800\n })\n };\n}\n\nexport { FlameGraphContainer as default };\n//# sourceMappingURL=FlameGraphContainer.js.map\n","import { config, reportInteraction as grafanaReportInteraction } from '@grafana/runtime';\n\nimport { PYROSCOPE_APP_ID, ROUTES } from '../../constants';\nimport { LayoutType } from '../../pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneLayoutSwitcher';\nimport { PanelType } from '../../pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/ScenePanelTypeSwitcher';\nimport { GIT_COMMIT } from '../../version';\n\n// hey future dev: don't forget to add any new value to our features tracking dashboard!\nexport type InteractionName =\n | 'g_pyroscope_app_compare_link_clicked'\n | 'g_pyroscope_app_diff_auto_select_clicked'\n | 'g_pyroscope_app_diff_choose_preset_clicked'\n | 'g_pyroscope_app_diff_learn_how_clicked'\n | 'g_pyroscope_app_diff_preset_save_clicked'\n | 'g_pyroscope_app_diff_preset_selected'\n | 'g_pyroscope_app_exclude_action_clicked'\n | 'g_pyroscope_app_explain_flamegraph_clicked'\n | 'g_pyroscope_app_exploration_type_clicked'\n | 'g_pyroscope_app_export_profile'\n | 'g_pyroscope_app_fav_action_clicked'\n | 'g_pyroscope_app_filters_changed'\n | 'g_pyroscope_app_function_details_clicked'\n | 'g_pyroscope_app_group_by_label_clicked'\n | 'g_pyroscope_app_hide_no_data_changed'\n | 'g_pyroscope_app_include_action_clicked'\n | 'g_pyroscope_app_layout_changed'\n | 'g_pyroscope_app_open_in_explore_clicked'\n | 'g_pyroscope_app_optimize_code_clicked'\n | 'g_pyroscope_app_panel_type_changed'\n | 'g_pyroscope_app_profile_metric_selected'\n | 'g_pyroscope_app_quick_filter_focused'\n | 'g_pyroscope_app_select_action_clicked'\n | 'g_pyroscope_app_service_name_selected'\n | 'g_pyroscope_app_share_link_clicked'\n | 'g_pyroscope_app_timeseries_scale_changed'\n | 'g_pyroscope_app_user_settings_clicked';\n\ntype InteractionProperties =\n // g_pyroscope_app_diff_preset_changed\n | { value: string }\n // g_pyroscope_app_exploration_type_clicked\n | { explorationType: string }\n // g_pyroscope_app_export_profile\n | { format: 'png' | 'json' | 'pprof' | 'flamegraph.com' }\n // g_pyroscope_app_fav_action_clicked\n | { favAfterClick: boolean }\n // g_pyroscope_app_filters_changed\n | { name: string; count: number; operators: string[] }\n // g_pyroscope_app_hide_no_data_changed\n | { hideNoData: 'on' | 'off' }\n // g_pyroscope_app_layout_changed\n | { layout: LayoutType }\n // g_pyroscope_app_panel_type_changed\n | { panelType: PanelType }\n // g_pyroscope_app_select_action_clicked\n | { type: string }\n // g_pyroscope_app_timeseries_scale_change\n | { scale: string };\n\nconst PROFILES_EXPLORER_PAGE_NAME = ROUTES.PROFILES_EXPLORER_VIEW.slice(1);\n\nfunction getCurrentPage(): string {\n const { pathname } = new URL(window.location.toString());\n return pathname.split('/').pop() || '';\n}\n\nfunction getMetaProperties() {\n const meta: Record = {\n // same naming as Faro (see src/shared/infrastructure/tracking/faro/faro.ts)\n appRelease: config.apps[PYROSCOPE_APP_ID].version,\n appVersion: GIT_COMMIT,\n page: getCurrentPage(),\n };\n\n if (meta.page === PROFILES_EXPLORER_PAGE_NAME) {\n // same naming as Faro (see src/shared/infrastructure/tracking/faro/faro.ts)\n meta.view = new URLSearchParams(window.location.search).get('explorationType') || '';\n }\n\n return meta;\n}\n\nexport function reportInteraction(interactionName: InteractionName, props?: InteractionProperties) {\n grafanaReportInteraction(interactionName, {\n props,\n meta: getMetaProperties(),\n });\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { AsyncDeflate, Deflate, AsyncGzip, AsyncZlib, AsyncInflate, AsyncGunzip, AsyncUnzlib, Gzip, Zlib, Gunzip, Unzlib, Inflate } from 'fflate';\nconst wrapSync = (Stream) => {\n class AsyncWrappedStream {\n constructor() {\n this.i = new Stream();\n this.i.ondata = (data, final) => {\n this.ondata(null, data, final);\n };\n }\n push(data, final) {\n try {\n this.queuedSize += data.length;\n this.i.push(data, final);\n this.queuedSize -= data.length;\n if (this.ondrain)\n this.ondrain(data.length);\n }\n catch (err) {\n this.ondata(err, null, final || false);\n }\n }\n }\n return AsyncWrappedStream;\n};\n// Safari fix\nlet hasWorker = 1;\ntry {\n const test = new AsyncDeflate();\n test.terminate();\n}\ncatch (err) {\n hasWorker = 0;\n}\nconst compressors = hasWorker ? {\n 'gzip': AsyncGzip,\n 'deflate': AsyncZlib,\n 'deflate-raw': AsyncDeflate\n} : {\n 'gzip': wrapSync(Gzip),\n 'deflate': wrapSync(Zlib),\n 'deflate-raw': wrapSync(Deflate)\n};\nconst decompressors = hasWorker ? {\n 'gzip': AsyncGunzip,\n 'deflate': AsyncUnzlib,\n 'deflate-raw': AsyncInflate\n} : {\n 'gzip': wrapSync(Gunzip),\n 'deflate': wrapSync(Unzlib),\n 'deflate-raw': wrapSync(Inflate)\n};\nconst makeMulti = (TransformStreamBase, processors, name) => {\n class BaseCompressionStream extends TransformStreamBase {\n constructor(format) {\n if (!arguments.length) {\n throw new TypeError(`Failed to construct '${name}': 1 argument required, but only 0 present.`);\n }\n const Processor = processors[format];\n if (!Processor) {\n throw new TypeError(`Failed to construct '${name}': Unsupported compression format: '${format}'`);\n }\n let compressor = new Processor();\n let endCb;\n super({\n start: controller => {\n compressor.ondata = (err, dat, final) => {\n if (err)\n controller.error(err);\n else if (dat) {\n controller.enqueue(dat);\n if (final) {\n if (endCb)\n endCb();\n else\n controller.terminate();\n }\n }\n };\n },\n transform: chunk => {\n if (chunk instanceof ArrayBuffer)\n chunk = new Uint8Array(chunk);\n else if (ArrayBuffer.isView(chunk)) {\n chunk = new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n }\n else {\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n compressor.push(chunk);\n // use fflate internal buffering to keep worker message channel fed\n if (compressor.queuedSize >= 32768) {\n return new Promise(resolve => {\n compressor.ondrain = () => {\n if (compressor.queuedSize < 32768)\n resolve();\n };\n });\n }\n },\n flush: () => new Promise(resolve => {\n endCb = resolve;\n compressor.push(new Uint8Array(0), true);\n })\n }, {\n size: chunk => chunk.byteLength | 0,\n highWaterMark: 65536\n }, {\n size: chunk => chunk.byteLength | 0,\n highWaterMark: 65536\n });\n }\n }\n return BaseCompressionStream;\n};\nexport function makeCompressionStream(TransformStreamBase) {\n return makeMulti(TransformStreamBase, compressors, 'CompressionStream');\n}\nexport function makeDecompressionStream(TransformStreamBase) {\n return makeMulti(TransformStreamBase, decompressors, 'DecompressionStream');\n}\n","import { makeCompressionStream, makeDecompressionStream } from './ponyfill.mjs';\nconst globals = typeof globalThis == 'undefined'\n ? typeof self == 'undefined'\n ? typeof global == 'undefined'\n ? {}\n : global\n : self\n : globalThis;\nif (typeof globals.CompressionStream == 'undefined') {\n globals.CompressionStream = makeCompressionStream(TransformStream);\n}\nif (typeof globals.DecompressionStream == 'undefined') {\n globals.DecompressionStream = makeDecompressionStream(TransformStream);\n}\n","import { HttpClient } from '@shared/infrastructure/http/HttpClient';\nimport { FlamebearerProfile } from '@shared/types/FlamebearerProfile';\n\ntype UploadResponse = {\n key: string;\n url: string;\n subProfiles: any[]; // TODO: define them, what are they?\n};\n\nclass FlamegraphDotComApiClient extends HttpClient {\n constructor() {\n super('https://flamegraph.com/api', {\n 'content-type': 'application/json',\n });\n }\n\n async upload(name: string, profile: FlamebearerProfile): Promise {\n const response = await this.fetch('/upload/v1', {\n method: 'POST',\n body: JSON.stringify({\n name,\n profile: btoa(JSON.stringify(profile)),\n fileTypeData: {\n units: profile.metadata.units,\n spyName: profile.metadata.spyName,\n },\n type: 'json',\n }),\n });\n\n const json = await response.json();\n\n return json;\n }\n}\n\nexport const flamegraphDotComApiClient = new FlamegraphDotComApiClient();\n","export enum CompareTarget {\n BASELINE = 'baseline',\n COMPARISON = 'comparison',\n}\n","import { dateTimeParse, TimeRange } from '@grafana/data';\n\nimport { CompareTarget } from '../../../../../pages/ProfilesExplorerView/components/SceneExploreDiffFlameGraph/domain/types';\n\ntype DateParts = {\n year: string;\n month: string;\n day: string;\n hour: string;\n minute: string;\n second: string;\n};\n\nconst DATETIME_FORMATTER = new Intl.DateTimeFormat('fr-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour12: false,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n});\n\nfunction format(date: Date): string {\n const parts = DATETIME_FORMATTER.formatToParts(date).reduce((acc, { type, value }) => {\n acc[type as keyof DateParts] = value;\n return acc;\n }, {} as DateParts);\n\n return `${parts.year}-${parts.month}-${parts.day}_${parts.hour}${parts.minute}`;\n}\n\nfunction dateForExportFilename(timeRange: TimeRange) {\n const from = new Date(Math.round(timeRange.from.unix() * 1000));\n const to = new Date(Math.round(timeRange.to.unix() * 1000));\n\n return `${format(from)}-to-${format(to)}`;\n}\n\nfunction getTimeRange(target: CompareTarget) {\n const [fromKey, toKey] = target === CompareTarget.BASELINE ? ['diffFrom', 'diffTo'] : ['diffFrom-2', 'diffTo-2'];\n\n const searchParams = new URLSearchParams(window.location.search);\n const from = searchParams.get(fromKey) as string;\n const to = searchParams.get(toKey) as string;\n\n return {\n raw: { from, to },\n from: dateTimeParse(from),\n to: dateTimeParse(to),\n };\n}\n\nexport function getExportFilename(appName?: string) {\n const timeRanges = [\n 'baseline',\n dateForExportFilename(getTimeRange(CompareTarget.BASELINE)),\n 'comparison',\n dateForExportFilename(getTimeRange(CompareTarget.COMPARISON)),\n ];\n\n return appName ? [appName, ...timeRanges].join('_') : ['flamegraph', ...timeRanges].join('_');\n}\n","import { displayError } from '@shared/domain/displayStatus';\nimport { reportInteraction } from '@shared/domain/reportInteraction';\nimport 'compression-streams-polyfill';\nimport saveAs from 'file-saver';\n\nimport { ExportDataProps } from '../ExportData';\nimport { flamegraphDotComApiClient } from '../infrastructure/flamegraphDotComApiClient';\nimport { getExportFilename } from './getExportFilename';\n\n/* Note: no pprof export, as the underlying API only accepts a single query (see PprofApiClient) */\nexport function useExportMenu({ profile, enableFlameGraphDotComExport }: ExportDataProps) {\n const downloadPng = () => {\n reportInteraction('g_pyroscope_app_export_profile', { format: 'png' });\n\n const customExportName = getExportFilename(profile.metadata.appName);\n const filename = `${customExportName}.png`;\n\n // TODO use ref, this won't work for comparison side by side (??!)\n const canvasElement = document.querySelector('canvas[data-testid=\"flameGraph\"]') as HTMLCanvasElement;\n\n canvasElement.toBlob((blob) => {\n if (!blob) {\n const error = new Error('No Blob, the image cannot be created.');\n displayError(error, ['Failed to export to png!', error.message]);\n return;\n }\n\n saveAs(blob, filename);\n }, 'image/png');\n };\n\n const downloadJson = () => {\n reportInteraction('g_pyroscope_app_export_profile', { format: 'json' });\n\n const customExportName = getExportFilename(profile.metadata.appName);\n const filename = `${customExportName}.json`;\n const dataStr = `data:text/json;charset=utf-8,${encodeURIComponent(JSON.stringify(profile))}`;\n\n try {\n saveAs(dataStr, filename);\n } catch (error) {\n displayError(error as Error, ['Failed to export to JSON!', (error as Error).message]);\n return;\n }\n };\n\n const uploadToFlamegraphDotCom = async () => {\n reportInteraction('g_pyroscope_app_export_profile', { format: 'flamegraph.com' });\n\n const customExportName = getExportFilename(profile.metadata.appName);\n\n let response;\n\n try {\n response = await flamegraphDotComApiClient.upload(customExportName, profile);\n } catch (error) {\n displayError(error as Error, ['Failed to export to flamegraph.com!', (error as Error).message]);\n return;\n }\n\n const dlLink = document.createElement('a');\n dlLink.target = '_blank';\n dlLink.href = response.url;\n document.body.appendChild(dlLink);\n dlLink.click();\n document.body.removeChild(dlLink);\n };\n\n return {\n data: {\n shouldDisplayFlamegraphDotCom: Boolean(enableFlameGraphDotComExport),\n },\n actions: {\n downloadPng,\n downloadJson,\n uploadToFlamegraphDotCom,\n },\n };\n}\n","import { Menu } from '@grafana/ui';\nimport React from 'react';\n\nimport { useExportMenu } from './domain/useExportMenu';\nimport { ExportDataProps } from './ExportData';\n\nexport function ExportMenu(props: ExportDataProps) {\n const { actions } = useExportMenu(props);\n\n return (\n \n \n \n \n );\n}\n","import { Button, Dropdown } from '@grafana/ui';\nimport { FlamebearerProfile } from '@shared/types/FlamebearerProfile';\nimport React, { memo } from 'react';\n\nimport { ExportMenu } from './ExportMenu';\n\nexport type ExportDataProps = {\n profile: FlamebearerProfile;\n enableFlameGraphDotComExport?: boolean;\n};\n\nfunction ExportDataComponent(props: ExportDataProps) {\n const { profile, enableFlameGraphDotComExport } = props;\n\n return (\n }>\n \n \n );\n}\n\nexport const ExportData = memo(ExportDataComponent);\n","import { createDataFrame, DataFrameDTO, FieldType } from '@grafana/data';\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nfunction getNodes(level: number[], names: string[], diff: boolean) {\n const nodes = [];\n const itemOffset = diff ? 7 : 4;\n\n for (let i = 0; i < level.length; i += itemOffset) {\n nodes.push({\n level: 0,\n label: diff ? names[level[i + 6]] : names[level[i + 3]],\n offset: level[i],\n val: level[i + 1],\n self: level[i + 2],\n selfRight: diff ? level[i + 5] : 0,\n valRight: diff ? level[i + 4] : 0,\n valTotal: diff ? level[i + 1] + level[i + 4] : level[i + 1],\n offsetRight: diff ? level[i + 3] : 0,\n offsetTotal: diff ? level[i] + level[i + 3] : level[i],\n children: [],\n });\n }\n\n return nodes;\n}\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nexport function flamebearerToDataFrameDTO(levels: number[][], names: string[], unit: string, diff: boolean) {\n if (!levels.length) {\n return;\n }\n\n const nodeLevels: any[][] = [];\n\n for (let i = 0; i < levels.length; i++) {\n nodeLevels[i] = [];\n\n for (const node of getNodes(levels[i], names, diff)) {\n node.level = i;\n nodeLevels[i].push(node);\n\n if (i > 0) {\n const prevNodesInLevel = nodeLevels[i].slice(0, -1);\n const currentNodeStart =\n prevNodesInLevel.reduce((acc, n) => n.offsetTotal + n.valTotal + acc, 0) + node.offsetTotal;\n\n const prevLevel = nodeLevels[i - 1];\n let prevLevelOffset = 0;\n\n for (const prevLevelNode of prevLevel) {\n const parentNodeStart = prevLevelOffset + prevLevelNode.offsetTotal;\n const parentNodeEnd = parentNodeStart + prevLevelNode.valTotal;\n\n if (parentNodeStart <= currentNodeStart && parentNodeEnd > currentNodeStart) {\n prevLevelNode.children.push(node);\n break;\n } else {\n prevLevelOffset += prevLevelNode.offsetTotal + prevLevelNode.valTotal;\n }\n }\n }\n }\n }\n\n const root = nodeLevels[0][0];\n const stack = [root];\n\n const labelValues = [];\n const levelValues = [];\n const selfValues = [];\n const valueValues = [];\n const selfRightValues = [];\n const valueRightValues = [];\n\n while (stack.length) {\n const node = stack.shift();\n labelValues.push(node.label);\n levelValues.push(node.level);\n selfValues.push(node.self);\n valueValues.push(node.val);\n selfRightValues.push(node.selfRight);\n valueRightValues.push(node.valRight);\n stack.unshift(...node.children);\n }\n\n let valueUnit = 'short';\n\n // See format.ts#getFormatter. We have to use Grafana unit string here though.\n switch (unit) {\n case 'samples':\n case 'trace_samples':\n case 'lock_nanoseconds':\n case 'nanoseconds':\n valueUnit = 'ns';\n break;\n case 'bytes':\n valueUnit = 'bytes';\n break;\n }\n\n const fields = [\n { name: 'level', values: levelValues },\n { name: 'label', values: labelValues, type: FieldType.string },\n { name: 'self', values: selfValues, config: { unit: valueUnit } },\n { name: 'value', values: valueValues, config: { unit: valueUnit } },\n ];\n\n if (diff) {\n fields.push(\n ...[\n {\n name: 'selfRight',\n values: selfRightValues,\n config: { unit: valueUnit },\n },\n {\n name: 'valueRight',\n values: valueRightValues,\n config: { unit: valueUnit },\n },\n ]\n );\n }\n\n const frame: DataFrameDTO = {\n name: 'response',\n meta: { preferredVisualisationType: 'flamegraph' },\n fields,\n };\n\n return createDataFrame(frame);\n}\n","import { createTheme } from '@grafana/data';\nimport { FlameGraph as GrafanaFlameGraph, Props } from '@grafana/flamegraph';\nimport { useTheme2 } from '@grafana/ui';\nimport React, { memo, useMemo } from 'react';\n\nimport type { FlamebearerProfile } from '../../types/FlamebearerProfile';\nimport { ExportData } from './components/ExportData';\nimport { flamebearerToDataFrameDTO } from './domain/flamebearerToDataFrameDTO';\n\ntype FlameGraphProps = {\n profile: FlamebearerProfile;\n diff?: boolean;\n vertical?: boolean;\n enableFlameGraphDotComExport?: boolean;\n collapsedFlamegraphs?: boolean;\n getExtraContextMenuButtons?: Props['getExtraContextMenuButtons'];\n};\n\nfunction FlameGraphComponent({\n profile,\n diff,\n vertical,\n enableFlameGraphDotComExport,\n collapsedFlamegraphs,\n getExtraContextMenuButtons,\n}: FlameGraphProps) {\n const { isLight } = useTheme2();\n const getTheme = () => createTheme({ colors: { mode: isLight ? 'light' : 'dark' } });\n\n const dataFrame = useMemo(\n () =>\n flamebearerToDataFrameDTO(\n profile.flamebearer.levels,\n profile.flamebearer.names,\n profile.metadata.units,\n Boolean(diff)\n ),\n [profile, diff]\n );\n\n return (\n }\n vertical={vertical}\n getTheme={getTheme as any}\n getExtraContextMenuButtons={getExtraContextMenuButtons}\n />\n );\n}\n\nexport const FlameGraph = memo(FlameGraphComponent);\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { FlameGraph } from '@shared/components/FlameGraph/FlameGraph';\nimport { FlamebearerProfile } from '@shared/types/FlamebearerProfile';\nimport React from 'react';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n flamegraph: css`\n margin-top: ${theme.spacing(2)};\n `,\n});\n\nexport function AdHocFlameGraph({ profile, diff }: { profile: FlamebearerProfile; diff?: boolean }) {\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n
\n );\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { InlineField, InlineFieldRow, Select, useStyles2 } from '@grafana/ui';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\ntype ProfileSelectorProps = {\n profileTypes: string[];\n onChange: (options: SelectableValue) => void;\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n selectorContainer: css`\n display: flex;\n justify-content: center;\n margin-bottom: ${theme.spacing(2)};\n `,\n});\n\nexport function AdHocProfileTypeSelector({ profileTypes, onChange }: ProfileSelectorProps) {\n const styles = useStyles2(getStyles);\n\n const options = useMemo(() => profileTypes.map((type) => ({ value: type, label: type })), [profileTypes]);\n const [option, setOption] = useState>();\n\n const _onChange = useCallback(\n (o: SelectableValue) => {\n setOption(o);\n onChange(o);\n },\n [onChange]\n );\n\n useEffect(() => {\n // when the uploaded file contains multiple sample types, the 1st is always returned by the API\n // so, we select it automatically\n setOption(options[0]);\n }, [options]);\n\n return (\n
\n \n \n {/* added a key to ensure the dropdown is properly reset */}\n without a
\");\n }\n //