@perses-dev/scatter-chart-plugin 0.11.0-beta.0 → 0.11.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/__mf/js/{ScatterChart.7ec4d004.js → ScatterChart.fe45b695.js} +2 -2
  2. package/__mf/js/async/181.c7d3eed2.js +2 -0
  3. package/__mf/js/async/181.c7d3eed2.js.LICENSE.txt +9 -0
  4. package/__mf/js/async/236.56a42fac.js +7 -0
  5. package/__mf/js/async/357.9293af22.js +147 -0
  6. package/__mf/js/async/{301.643f002b.js.LICENSE.txt → 357.9293af22.js.LICENSE.txt} +26 -2
  7. package/__mf/js/async/386.c425d184.js +2 -0
  8. package/__mf/js/async/386.c425d184.js.LICENSE.txt +9 -0
  9. package/__mf/js/async/568.3fc50d63.js +24 -0
  10. package/__mf/js/async/{986.287d4ccd.js.LICENSE.txt → 568.3fc50d63.js.LICENSE.txt} +5 -3
  11. package/__mf/js/async/__federation_expose_ScatterChart.0112e08c.js +2 -0
  12. package/__mf/js/async/__federation_expose_ScatterChart.0112e08c.js.LICENSE.txt +9 -0
  13. package/__mf/js/{main.9cf99f7c.js → main.97fd01ad.js} +2 -2
  14. package/lib/ScatterChartPanel.d.ts +1 -1
  15. package/lib/ScatterChartPanel.d.ts.map +1 -1
  16. package/lib/ScatterChartPanel.js.map +1 -1
  17. package/lib/Scatterplot.d.ts.map +1 -1
  18. package/lib/Scatterplot.js +1 -2
  19. package/lib/Scatterplot.js.map +1 -1
  20. package/lib/cjs/Scatterplot.js +2 -3
  21. package/lib/mock-trace-data.d.ts +1 -1
  22. package/lib/mock-trace-data.js.map +1 -1
  23. package/lib/scatter-chart-model.d.ts +1 -1
  24. package/lib/scatter-chart-model.d.ts.map +1 -1
  25. package/lib/scatter-chart-model.js.map +1 -1
  26. package/mf-manifest.json +12 -14
  27. package/mf-stats.json +12 -14
  28. package/package.json +4 -4
  29. package/__mf/js/async/282.ec0a0600.js +0 -1
  30. package/__mf/js/async/301.643f002b.js +0 -2
  31. package/__mf/js/async/366.421872cb.js +0 -24
  32. package/__mf/js/async/366.421872cb.js.LICENSE.txt +0 -35
  33. package/__mf/js/async/558.54cf316c.js +0 -1
  34. package/__mf/js/async/755.e44e74f9.js +0 -7
  35. package/__mf/js/async/986.287d4ccd.js +0 -147
  36. package/__mf/js/async/__federation_expose_ScatterChart.e6e00868.js +0 -1
  37. /package/__mf/css/async/{755.85c2cbf6.css → 236.85c2cbf6.css} +0 -0
  38. /package/__mf/js/async/{755.e44e74f9.js.LICENSE.txt → 236.56a42fac.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ScatterChartPanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelProps } from '@perses-dev/plugin-system';\nimport { ReactElement, useMemo } from 'react';\nimport { TraceData, TraceSearchResult } from '@perses-dev/core';\nimport { EChartsOption, SeriesOption } from 'echarts';\nimport { NoDataOverlay, useChartsTheme } from '@perses-dev/components';\nimport { Scatterplot } from './Scatterplot';\nimport { ScatterChartOptions } from './scatter-chart-model';\n\nexport interface EChartTraceValue extends Omit<TraceSearchResult, 'startTimeUnixMs' | 'serviceStats'> {\n name: string;\n linkVariables: Record<string, string>;\n startTime: Date;\n spanCount: number;\n errorCount: number;\n}\n\nexport type ScatterChartPanelProps = PanelProps<ScatterChartOptions, TraceData>;\n\n/** default size range of the circles diameter */\nconst DEFAULT_SIZE_RANGE: [number, number] = [6, 20];\n\n/**\n * ScatterChartPanel receives data from the DataQueriesProvider and transforms it\n * into a `dataset` object that Apache ECharts can consume. Additionally,\n * data formatting is also dictated in this component. Formatting includes\n * datapoint size and color.\n *\n * Documentation for data structures accepted by Apache ECharts:\n * https://echarts.apache.org/handbook/en/concepts/dataset\n *\n * Examples for scatter chart formatting in Apache ECharts:\n * https://echarts.apache.org/examples/en/index.html#chart-type-scatter\n *\n * @returns a `ScatterPlot` component that contains an EChart which will handle\n * visualization of the data.\n */\nexport function ScatterChartPanel(props: ScatterChartPanelProps): ReactElement | null {\n const { spec, contentDimensions, queryResults: traceResults } = props;\n const chartsTheme = useChartsTheme();\n const defaultColor = chartsTheme.thresholds.defaultColor || 'blue';\n const sizeRange = spec.sizeRange || DEFAULT_SIZE_RANGE;\n\n // Generate dataset\n // Transform Tempo API response to fit 'dataset' structure from Apache ECharts\n // https://echarts.apache.org/handbook/en/concepts/dataset\n const { dataset, minSpanCount, maxSpanCount } = useMemo(() => {\n const dataset = [];\n let minSpanCount: number | undefined;\n let maxSpanCount: number | undefined;\n for (const result of traceResults) {\n if (result.data.searchResult === undefined) continue;\n const dataSeries = result.data.searchResult.map((trace) => {\n let spanCount = 0;\n let errorCount = 0;\n for (const stats of Object.values(trace.serviceStats)) {\n spanCount += stats.spanCount;\n errorCount += stats.errorCount ?? 0;\n }\n\n if (minSpanCount === undefined || spanCount < minSpanCount) {\n minSpanCount = spanCount;\n }\n if (maxSpanCount === undefined || spanCount > maxSpanCount) {\n maxSpanCount = spanCount;\n }\n\n const pluginSpec = result.definition.spec.plugin.spec as { datasource?: { name?: string } } | undefined;\n const newTraceValue: EChartTraceValue = {\n ...trace,\n linkVariables: {\n datasourceName: pluginSpec?.datasource?.name ?? '',\n traceId: trace.traceId,\n },\n name: `${trace.rootServiceName}: ${trace.rootTraceName}`,\n startTime: new Date(trace.startTimeUnixMs), // convert unix epoch time to Date\n spanCount,\n errorCount,\n };\n return newTraceValue;\n });\n dataset.push({\n source: dataSeries,\n });\n }\n return { dataset, minSpanCount: minSpanCount ?? 0, maxSpanCount: maxSpanCount ?? 0 };\n }, [traceResults]);\n\n // Formatting for the dataset\n // 1. Map x,y coordinates\n // 2. Datapoint size corresponds to the number of spans in a trace\n // 3. Color datapoint red if the trace contains an error\n const series = useMemo(() => {\n const seriesTemplate2: SeriesOption = {\n type: 'scatter',\n encode: {\n // Map to x-axis.\n x: 'startTime',\n // Map to y-axis.\n y: 'durationMs',\n },\n symbolSize: function (data) {\n // returns the diameter of the circles\n return getSymbolSize(data.spanCount, [minSpanCount, maxSpanCount], sizeRange);\n },\n itemStyle: {\n color: function (params) {\n const traceData: EChartTraceValue = params.data as EChartTraceValue;\n // If the trace contains an error, color the datapoint in red\n if (traceData.errorCount > 0) {\n return 'red';\n }\n // Else return default color\n return defaultColor;\n },\n },\n };\n\n // Each data set needs to have a corresponding series formatting object\n const series = [];\n for (let i = 0; i < dataset.length; i++) {\n series.push({ ...seriesTemplate2, datasetIndex: i });\n }\n return series;\n }, [dataset, defaultColor, minSpanCount, maxSpanCount, sizeRange]);\n\n const tracesFound = traceResults.some((traceData) => (traceData.data?.searchResult ?? []).length > 0);\n if (!tracesFound) {\n return <NoDataOverlay resource=\"traces\" />;\n }\n\n const options: EChartsOption = {\n dataset: dataset,\n series: series,\n };\n\n if (contentDimensions === undefined) return null;\n\n return (\n <div data-testid=\"ScatterChartPanel_ScatterPlot\">\n <Scatterplot\n width={contentDimensions.width}\n height={contentDimensions.height}\n options={options}\n link={spec.link}\n />\n </div>\n );\n}\n\n// exported for tests\nexport function getSymbolSize(\n spanCount: number,\n spanCountRange: [number, number],\n sizeRange: [number, number]\n): number {\n const [minSize, maxSize] = sizeRange;\n const [minSpanCount, maxSpanCount] = spanCountRange;\n\n // catch divison by zero\n if (maxSpanCount - minSpanCount === 0) {\n return maxSize;\n }\n\n // apply linear scale of spanCount from range [minSpanCount,maxSpanCount] to a value from range [minSize,maxSize]\n const rel = (spanCount - minSpanCount) / (maxSpanCount - minSpanCount);\n return minSize + (maxSize - minSize) * rel;\n}\n"],"names":["useMemo","NoDataOverlay","useChartsTheme","Scatterplot","DEFAULT_SIZE_RANGE","ScatterChartPanel","props","spec","contentDimensions","queryResults","traceResults","chartsTheme","defaultColor","thresholds","sizeRange","dataset","minSpanCount","maxSpanCount","result","data","searchResult","undefined","dataSeries","map","trace","spanCount","errorCount","stats","Object","values","serviceStats","pluginSpec","definition","plugin","newTraceValue","linkVariables","datasourceName","datasource","name","traceId","rootServiceName","rootTraceName","startTime","Date","startTimeUnixMs","push","source","series","seriesTemplate2","type","encode","x","y","symbolSize","getSymbolSize","itemStyle","color","params","traceData","i","length","datasetIndex","tracesFound","some","resource","options","div","data-testid","width","height","link","spanCountRange","minSize","maxSize","rel"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/ScatterChartPanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelProps } from '@perses-dev/plugin-system';\nimport { ReactElement, useMemo } from 'react';\nimport { EChartsOption, SeriesOption } from 'echarts';\nimport { NoDataOverlay, useChartsTheme } from '@perses-dev/components';\nimport { TraceData, TraceSearchResult } from '@perses-dev/spec';\nimport { Scatterplot } from './Scatterplot';\nimport { ScatterChartOptions } from './scatter-chart-model';\n\nexport interface EChartTraceValue extends Omit<TraceSearchResult, 'startTimeUnixMs' | 'serviceStats'> {\n name: string;\n linkVariables: Record<string, string>;\n startTime: Date;\n spanCount: number;\n errorCount: number;\n}\n\nexport type ScatterChartPanelProps = PanelProps<ScatterChartOptions, TraceData>;\n\n/** default size range of the circles diameter */\nconst DEFAULT_SIZE_RANGE: [number, number] = [6, 20];\n\n/**\n * ScatterChartPanel receives data from the DataQueriesProvider and transforms it\n * into a `dataset` object that Apache ECharts can consume. Additionally,\n * data formatting is also dictated in this component. Formatting includes\n * datapoint size and color.\n *\n * Documentation for data structures accepted by Apache ECharts:\n * https://echarts.apache.org/handbook/en/concepts/dataset\n *\n * Examples for scatter chart formatting in Apache ECharts:\n * https://echarts.apache.org/examples/en/index.html#chart-type-scatter\n *\n * @returns a `ScatterPlot` component that contains an EChart which will handle\n * visualization of the data.\n */\nexport function ScatterChartPanel(props: ScatterChartPanelProps): ReactElement | null {\n const { spec, contentDimensions, queryResults: traceResults } = props;\n const chartsTheme = useChartsTheme();\n const defaultColor = chartsTheme.thresholds.defaultColor || 'blue';\n const sizeRange = spec.sizeRange || DEFAULT_SIZE_RANGE;\n\n // Generate dataset\n // Transform Tempo API response to fit 'dataset' structure from Apache ECharts\n // https://echarts.apache.org/handbook/en/concepts/dataset\n const { dataset, minSpanCount, maxSpanCount } = useMemo(() => {\n const dataset = [];\n let minSpanCount: number | undefined;\n let maxSpanCount: number | undefined;\n for (const result of traceResults) {\n if (result.data.searchResult === undefined) continue;\n const dataSeries = result.data.searchResult.map((trace) => {\n let spanCount = 0;\n let errorCount = 0;\n for (const stats of Object.values(trace.serviceStats)) {\n spanCount += stats.spanCount;\n errorCount += stats.errorCount ?? 0;\n }\n\n if (minSpanCount === undefined || spanCount < minSpanCount) {\n minSpanCount = spanCount;\n }\n if (maxSpanCount === undefined || spanCount > maxSpanCount) {\n maxSpanCount = spanCount;\n }\n\n const pluginSpec = result.definition.spec.plugin.spec as { datasource?: { name?: string } } | undefined;\n const newTraceValue: EChartTraceValue = {\n ...trace,\n linkVariables: {\n datasourceName: pluginSpec?.datasource?.name ?? '',\n traceId: trace.traceId,\n },\n name: `${trace.rootServiceName}: ${trace.rootTraceName}`,\n startTime: new Date(trace.startTimeUnixMs), // convert unix epoch time to Date\n spanCount,\n errorCount,\n };\n return newTraceValue;\n });\n dataset.push({\n source: dataSeries,\n });\n }\n return { dataset, minSpanCount: minSpanCount ?? 0, maxSpanCount: maxSpanCount ?? 0 };\n }, [traceResults]);\n\n // Formatting for the dataset\n // 1. Map x,y coordinates\n // 2. Datapoint size corresponds to the number of spans in a trace\n // 3. Color datapoint red if the trace contains an error\n const series = useMemo(() => {\n const seriesTemplate2: SeriesOption = {\n type: 'scatter',\n encode: {\n // Map to x-axis.\n x: 'startTime',\n // Map to y-axis.\n y: 'durationMs',\n },\n symbolSize: function (data) {\n // returns the diameter of the circles\n return getSymbolSize(data.spanCount, [minSpanCount, maxSpanCount], sizeRange);\n },\n itemStyle: {\n color: function (params) {\n const traceData: EChartTraceValue = params.data as EChartTraceValue;\n // If the trace contains an error, color the datapoint in red\n if (traceData.errorCount > 0) {\n return 'red';\n }\n // Else return default color\n return defaultColor;\n },\n },\n };\n\n // Each data set needs to have a corresponding series formatting object\n const series = [];\n for (let i = 0; i < dataset.length; i++) {\n series.push({ ...seriesTemplate2, datasetIndex: i });\n }\n return series;\n }, [dataset, defaultColor, minSpanCount, maxSpanCount, sizeRange]);\n\n const tracesFound = traceResults.some((traceData) => (traceData.data?.searchResult ?? []).length > 0);\n if (!tracesFound) {\n return <NoDataOverlay resource=\"traces\" />;\n }\n\n const options: EChartsOption = {\n dataset: dataset,\n series: series,\n };\n\n if (contentDimensions === undefined) return null;\n\n return (\n <div data-testid=\"ScatterChartPanel_ScatterPlot\">\n <Scatterplot\n width={contentDimensions.width}\n height={contentDimensions.height}\n options={options}\n link={spec.link}\n />\n </div>\n );\n}\n\n// exported for tests\nexport function getSymbolSize(\n spanCount: number,\n spanCountRange: [number, number],\n sizeRange: [number, number]\n): number {\n const [minSize, maxSize] = sizeRange;\n const [minSpanCount, maxSpanCount] = spanCountRange;\n\n // catch divison by zero\n if (maxSpanCount - minSpanCount === 0) {\n return maxSize;\n }\n\n // apply linear scale of spanCount from range [minSpanCount,maxSpanCount] to a value from range [minSize,maxSize]\n const rel = (spanCount - minSpanCount) / (maxSpanCount - minSpanCount);\n return minSize + (maxSize - minSize) * rel;\n}\n"],"names":["useMemo","NoDataOverlay","useChartsTheme","Scatterplot","DEFAULT_SIZE_RANGE","ScatterChartPanel","props","spec","contentDimensions","queryResults","traceResults","chartsTheme","defaultColor","thresholds","sizeRange","dataset","minSpanCount","maxSpanCount","result","data","searchResult","undefined","dataSeries","map","trace","spanCount","errorCount","stats","Object","values","serviceStats","pluginSpec","definition","plugin","newTraceValue","linkVariables","datasourceName","datasource","name","traceId","rootServiceName","rootTraceName","startTime","Date","startTimeUnixMs","push","source","series","seriesTemplate2","type","encode","x","y","symbolSize","getSymbolSize","itemStyle","color","params","traceData","i","length","datasetIndex","tracesFound","some","resource","options","div","data-testid","width","height","link","spanCountRange","minSize","maxSize","rel"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Scatterplot.d.ts","sourceRoot":"","sources":["../../src/Scatterplot.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAa9C,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AAqB7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAoFjE"}
1
+ {"version":3,"file":"Scatterplot.d.ts","sourceRoot":"","sources":["../../src/Scatterplot.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAa9C,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AAoB7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAoFjE"}
@@ -12,12 +12,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  import { useMemo } from 'react';
15
- import { EChart, useChartsTheme } from '@perses-dev/components';
15
+ import { EChart, formatValue, useChartsTheme } from '@perses-dev/components';
16
16
  import { use } from 'echarts/core';
17
17
  import { ScatterChart as EChartsScatterChart } from 'echarts/charts';
18
18
  import { DatasetComponent, DataZoomComponent, LegendComponent, GridComponent, TitleComponent, TooltipComponent } from 'echarts/components';
19
19
  import { CanvasRenderer } from 'echarts/renderers';
20
- import { formatValue } from '@perses-dev/core';
21
20
  import { replaceVariablesInString, useAllVariableValues, useRouterContext, useTimeRange } from '@perses-dev/plugin-system';
22
21
  use([
23
22
  DatasetComponent,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Scatterplot.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement, useMemo } from 'react';\nimport { EChart, OnEventsType, useChartsTheme } from '@perses-dev/components';\nimport { use, EChartsCoreOption } from 'echarts/core';\nimport { ScatterChart as EChartsScatterChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { EChartsOption, ScatterSeriesOption } from 'echarts';\nimport { formatValue } from '@perses-dev/core';\nimport {\n replaceVariablesInString,\n useAllVariableValues,\n useRouterContext,\n useTimeRange,\n} from '@perses-dev/plugin-system';\nimport { EChartTraceValue } from './ScatterChartPanel';\n\nuse([\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n EChartsScatterChart,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n CanvasRenderer,\n]);\n\nexport interface ScatterplotProps {\n width: number;\n height: number;\n options: EChartsOption;\n link?: string;\n}\n\nconst DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {\n dateStyle: 'long',\n timeStyle: 'medium',\n}).format;\n\nexport function Scatterplot(props: ScatterplotProps): ReactElement {\n const { width, height, options, link: linkTemplate } = props;\n const chartsTheme = useChartsTheme();\n const { absoluteTimeRange } = useTimeRange();\n const variableValues = useAllVariableValues();\n const { navigate } = useRouterContext();\n\n // Apache EChart Options Docs: https://echarts.apache.org/en/option.html\n const eChartOptions: EChartsCoreOption = {\n dataset: options.dataset,\n series: options.series,\n dataZoom: options.dataZoom,\n grid: {\n top: 45,\n bottom: 20,\n left: 30,\n right: 20,\n },\n xAxis: {\n type: 'time',\n min: absoluteTimeRange.start,\n max: absoluteTimeRange.end,\n },\n yAxis: {\n scale: true,\n type: 'value',\n name: 'Duration',\n splitNumber: 4,\n axisLabel: {\n formatter: (durationMs: number) => formatValue(durationMs, { unit: 'milliseconds' }),\n },\n },\n animation: false,\n tooltip: {\n padding: 5,\n borderWidth: 1,\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formatter: function (params: any) {\n // TODO: import type from ECharts instead of using any\n const data = params[0].data as EChartTraceValue;\n return [\n `<b>Service name</b>: ${data.rootServiceName}<br/>`,\n `<b>Span name</b>: ${data.rootTraceName}<br/>`,\n `<b>Time</b>: ${DATE_FORMATTER(data.startTime)}<br/>`,\n `<b>Duration</b>: ${formatValue(data.durationMs, { unit: 'milliseconds' })}<br/>`,\n `<b>Span count</b>: ${data.spanCount} (${data.errorCount} errors)<br/>`,\n ].join('');\n },\n },\n legend: {\n show: true,\n type: 'scroll',\n orient: 'horizontal',\n bottom: 0,\n },\n };\n\n const handleEvents: OnEventsType<ScatterSeriesOption['data'] | unknown> = useMemo(() => {\n const handlers: OnEventsType<ScatterSeriesOption['data'] | unknown> = {};\n if (navigate && linkTemplate) {\n handlers.click = (params): void => {\n const linkVariables = params.data.linkVariables as Record<string, string> | undefined;\n const link = replaceVariablesInString(linkTemplate, variableValues, linkVariables);\n navigate(link);\n };\n }\n return handlers;\n }, [linkTemplate, navigate, variableValues]);\n\n return (\n <EChart\n style={{\n width: width,\n height: height,\n }}\n option={eChartOptions}\n theme={chartsTheme.echartsTheme}\n onEvents={handleEvents}\n />\n );\n}\n"],"names":["useMemo","EChart","useChartsTheme","use","ScatterChart","EChartsScatterChart","DatasetComponent","DataZoomComponent","LegendComponent","GridComponent","TitleComponent","TooltipComponent","CanvasRenderer","formatValue","replaceVariablesInString","useAllVariableValues","useRouterContext","useTimeRange","DATE_FORMATTER","Intl","DateTimeFormat","undefined","dateStyle","timeStyle","format","Scatterplot","props","width","height","options","link","linkTemplate","chartsTheme","absoluteTimeRange","variableValues","navigate","eChartOptions","dataset","series","dataZoom","grid","top","bottom","left","right","xAxis","type","min","start","max","end","yAxis","scale","name","splitNumber","axisLabel","formatter","durationMs","unit","animation","tooltip","padding","borderWidth","trigger","axisPointer","params","data","rootServiceName","rootTraceName","startTime","spanCount","errorCount","join","legend","show","orient","handleEvents","handlers","click","linkVariables","style","option","theme","echartsTheme","onEvents"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/Scatterplot.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement, useMemo } from 'react';\nimport { EChart, formatValue, OnEventsType, useChartsTheme } from '@perses-dev/components';\nimport { use, EChartsCoreOption } from 'echarts/core';\nimport { ScatterChart as EChartsScatterChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { EChartsOption, ScatterSeriesOption } from 'echarts';\nimport {\n replaceVariablesInString,\n useAllVariableValues,\n useRouterContext,\n useTimeRange,\n} from '@perses-dev/plugin-system';\nimport { EChartTraceValue } from './ScatterChartPanel';\n\nuse([\n DatasetComponent,\n DataZoomComponent,\n LegendComponent,\n EChartsScatterChart,\n GridComponent,\n TitleComponent,\n TooltipComponent,\n CanvasRenderer,\n]);\n\nexport interface ScatterplotProps {\n width: number;\n height: number;\n options: EChartsOption;\n link?: string;\n}\n\nconst DATE_FORMATTER = new Intl.DateTimeFormat(undefined, {\n dateStyle: 'long',\n timeStyle: 'medium',\n}).format;\n\nexport function Scatterplot(props: ScatterplotProps): ReactElement {\n const { width, height, options, link: linkTemplate } = props;\n const chartsTheme = useChartsTheme();\n const { absoluteTimeRange } = useTimeRange();\n const variableValues = useAllVariableValues();\n const { navigate } = useRouterContext();\n\n // Apache EChart Options Docs: https://echarts.apache.org/en/option.html\n const eChartOptions: EChartsCoreOption = {\n dataset: options.dataset,\n series: options.series,\n dataZoom: options.dataZoom,\n grid: {\n top: 45,\n bottom: 20,\n left: 30,\n right: 20,\n },\n xAxis: {\n type: 'time',\n min: absoluteTimeRange.start,\n max: absoluteTimeRange.end,\n },\n yAxis: {\n scale: true,\n type: 'value',\n name: 'Duration',\n splitNumber: 4,\n axisLabel: {\n formatter: (durationMs: number) => formatValue(durationMs, { unit: 'milliseconds' }),\n },\n },\n animation: false,\n tooltip: {\n padding: 5,\n borderWidth: 1,\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formatter: function (params: any) {\n // TODO: import type from ECharts instead of using any\n const data = params[0].data as EChartTraceValue;\n return [\n `<b>Service name</b>: ${data.rootServiceName}<br/>`,\n `<b>Span name</b>: ${data.rootTraceName}<br/>`,\n `<b>Time</b>: ${DATE_FORMATTER(data.startTime)}<br/>`,\n `<b>Duration</b>: ${formatValue(data.durationMs, { unit: 'milliseconds' })}<br/>`,\n `<b>Span count</b>: ${data.spanCount} (${data.errorCount} errors)<br/>`,\n ].join('');\n },\n },\n legend: {\n show: true,\n type: 'scroll',\n orient: 'horizontal',\n bottom: 0,\n },\n };\n\n const handleEvents: OnEventsType<ScatterSeriesOption['data'] | unknown> = useMemo(() => {\n const handlers: OnEventsType<ScatterSeriesOption['data'] | unknown> = {};\n if (navigate && linkTemplate) {\n handlers.click = (params): void => {\n const linkVariables = params.data.linkVariables as Record<string, string> | undefined;\n const link = replaceVariablesInString(linkTemplate, variableValues, linkVariables);\n navigate(link);\n };\n }\n return handlers;\n }, [linkTemplate, navigate, variableValues]);\n\n return (\n <EChart\n style={{\n width: width,\n height: height,\n }}\n option={eChartOptions}\n theme={chartsTheme.echartsTheme}\n onEvents={handleEvents}\n />\n );\n}\n"],"names":["useMemo","EChart","formatValue","useChartsTheme","use","ScatterChart","EChartsScatterChart","DatasetComponent","DataZoomComponent","LegendComponent","GridComponent","TitleComponent","TooltipComponent","CanvasRenderer","replaceVariablesInString","useAllVariableValues","useRouterContext","useTimeRange","DATE_FORMATTER","Intl","DateTimeFormat","undefined","dateStyle","timeStyle","format","Scatterplot","props","width","height","options","link","linkTemplate","chartsTheme","absoluteTimeRange","variableValues","navigate","eChartOptions","dataset","series","dataZoom","grid","top","bottom","left","right","xAxis","type","min","start","max","end","yAxis","scale","name","splitNumber","axisLabel","formatter","durationMs","unit","animation","tooltip","padding","borderWidth","trigger","axisPointer","params","data","rootServiceName","rootTraceName","startTime","spanCount","errorCount","join","legend","show","orient","handleEvents","handlers","click","linkVariables","style","option","theme","echartsTheme","onEvents"],"mappings":"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"}
@@ -27,7 +27,6 @@ const _core = require("echarts/core");
27
27
  const _charts = require("echarts/charts");
28
28
  const _components1 = require("echarts/components");
29
29
  const _renderers = require("echarts/renderers");
30
- const _core1 = require("@perses-dev/core");
31
30
  const _pluginsystem = require("@perses-dev/plugin-system");
32
31
  (0, _core.use)([
33
32
  _components1.DatasetComponent,
@@ -71,7 +70,7 @@ function Scatterplot(props) {
71
70
  name: 'Duration',
72
71
  splitNumber: 4,
73
72
  axisLabel: {
74
- formatter: (durationMs)=>(0, _core1.formatValue)(durationMs, {
73
+ formatter: (durationMs)=>(0, _components.formatValue)(durationMs, {
75
74
  unit: 'milliseconds'
76
75
  })
77
76
  }
@@ -92,7 +91,7 @@ function Scatterplot(props) {
92
91
  `<b>Service name</b>: ${data.rootServiceName}<br/>`,
93
92
  `<b>Span name</b>: ${data.rootTraceName}<br/>`,
94
93
  `<b>Time</b>: ${DATE_FORMATTER(data.startTime)}<br/>`,
95
- `<b>Duration</b>: ${(0, _core1.formatValue)(data.durationMs, {
94
+ `<b>Duration</b>: ${(0, _components.formatValue)(data.durationMs, {
96
95
  unit: 'milliseconds'
97
96
  })}<br/>`,
98
97
  `<b>Span count</b>: ${data.spanCount} (${data.errorCount} errors)<br/>`
@@ -1,4 +1,4 @@
1
- import { TraceData } from '@perses-dev/core';
1
+ import { TraceData } from '@perses-dev/spec';
2
2
  /**
3
3
  * Mock data we get from getTraceData() in @perses/tempo-plugin.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mock-trace-data.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TraceData } from '@perses-dev/core';\n\n/**\n * Mock data we get from getTraceData() in @perses/tempo-plugin.\n */\nexport const MOCK_TRACE_SEARCH_RESULT: TraceData = {\n searchResult: [\n {\n startTimeUnixMs: 1702915645000, // unix epoch time in milliseconds\n durationMs: 100,\n serviceStats: {\n 'service-name': {\n spanCount: 10,\n },\n 'second-service-name': {\n spanCount: 3,\n errorCount: 2,\n },\n },\n traceId: '123',\n rootServiceName: 'service-name',\n rootTraceName: 'span-name',\n },\n ],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\nexport const MOCK_TRACE_SEARCH_RESULT_EMPTY: TraceData = {\n searchResult: [],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\n/**\n * Mocks results obtained from useTraceQueries() in @perses/plugin-system/runtime.\n * This function uses then React TanStack function useQueries(fooQuery) to\n * handle fetching.\n */\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT_EMPTY,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n"],"names":["MOCK_TRACE_SEARCH_RESULT","searchResult","startTimeUnixMs","durationMs","serviceStats","spanCount","errorCount","traceId","rootServiceName","rootTraceName","metadata","executedQueryString","MOCK_TRACE_SEARCH_RESULT_EMPTY","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT","status","fetchStatus","isLoading","isSuccess","isError","data","dataUpdatedAt","definition","kind","spec","plugin","query","datasource","name","error","errorUpdatedAt","failureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isFetching","isRefetching","isLoadingError","isPaused","isPlaceholderData","isPreviousData","isRefetchError","isStale","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;CAEC,GACD,OAAO,MAAMA,2BAAsC;IACjDC,cAAc;QACZ;YACEC,iBAAiB;YACjBC,YAAY;YACZC,cAAc;gBACZ,gBAAgB;oBACdC,WAAW;gBACb;gBACA,uBAAuB;oBACrBA,WAAW;oBACXC,YAAY;gBACd;YACF;YACAC,SAAS;YACTC,iBAAiB;YACjBC,eAAe;QACjB;KACD;IACDC,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF,OAAO,MAAMC,iCAA4C;IACvDX,cAAc,EAAE;IAChBS,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF;;;;CAIC,GACD,OAAO,MAAME,wCAAwC;IACnD;QACEC,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMnB;QACNoB,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC;AAEF,OAAO,MAAMC,8CAA8C;IACzD;QACE5B,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMP;QACNQ,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC"}
1
+ {"version":3,"sources":["../../src/mock-trace-data.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TraceData } from '@perses-dev/spec';\n\n/**\n * Mock data we get from getTraceData() in @perses/tempo-plugin.\n */\nexport const MOCK_TRACE_SEARCH_RESULT: TraceData = {\n searchResult: [\n {\n startTimeUnixMs: 1702915645000, // unix epoch time in milliseconds\n durationMs: 100,\n serviceStats: {\n 'service-name': {\n spanCount: 10,\n },\n 'second-service-name': {\n spanCount: 3,\n errorCount: 2,\n },\n },\n traceId: '123',\n rootServiceName: 'service-name',\n rootTraceName: 'span-name',\n },\n ],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\nexport const MOCK_TRACE_SEARCH_RESULT_EMPTY: TraceData = {\n searchResult: [],\n metadata: {\n executedQueryString: '{duration > 500ms}',\n },\n};\n\n/**\n * Mocks results obtained from useTraceQueries() in @perses/plugin-system/runtime.\n * This function uses then React TanStack function useQueries(fooQuery) to\n * handle fetching.\n */\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n\nexport const MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY = [\n {\n status: 'success',\n fetchStatus: 'idle',\n isLoading: false,\n isSuccess: true,\n isError: false,\n data: MOCK_TRACE_SEARCH_RESULT_EMPTY,\n dataUpdatedAt: 1666500979895,\n definition: {\n kind: 'TraceQuery',\n spec: {\n plugin: {\n kind: 'TempoTraceQuery',\n spec: {\n query: '{}',\n datasource: {\n kind: 'TempoDatasource',\n name: 'tempolocal',\n },\n },\n },\n },\n },\n error: null,\n errorUpdatedAt: 0,\n failureCount: 0,\n errorUpdateCount: 0,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isRefetching: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isStale: true,\n },\n];\n"],"names":["MOCK_TRACE_SEARCH_RESULT","searchResult","startTimeUnixMs","durationMs","serviceStats","spanCount","errorCount","traceId","rootServiceName","rootTraceName","metadata","executedQueryString","MOCK_TRACE_SEARCH_RESULT_EMPTY","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT","status","fetchStatus","isLoading","isSuccess","isError","data","dataUpdatedAt","definition","kind","spec","plugin","query","datasource","name","error","errorUpdatedAt","failureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isFetching","isRefetching","isLoadingError","isPaused","isPlaceholderData","isPreviousData","isRefetchError","isStale","MOCK_TRACE_SEARCH_RESULT_QUERY_RESULT_EMPTY"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;CAEC,GACD,OAAO,MAAMA,2BAAsC;IACjDC,cAAc;QACZ;YACEC,iBAAiB;YACjBC,YAAY;YACZC,cAAc;gBACZ,gBAAgB;oBACdC,WAAW;gBACb;gBACA,uBAAuB;oBACrBA,WAAW;oBACXC,YAAY;gBACd;YACF;YACAC,SAAS;YACTC,iBAAiB;YACjBC,eAAe;QACjB;KACD;IACDC,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF,OAAO,MAAMC,iCAA4C;IACvDX,cAAc,EAAE;IAChBS,UAAU;QACRC,qBAAqB;IACvB;AACF,EAAE;AAEF;;;;CAIC,GACD,OAAO,MAAME,wCAAwC;IACnD;QACEC,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMnB;QACNoB,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC;AAEF,OAAO,MAAMC,8CAA8C;IACzD;QACE5B,QAAQ;QACRC,aAAa;QACbC,WAAW;QACXC,WAAW;QACXC,SAAS;QACTC,MAAMP;QACNQ,eAAe;QACfC,YAAY;YACVC,MAAM;YACNC,MAAM;gBACJC,QAAQ;oBACNF,MAAM;oBACNC,MAAM;wBACJE,OAAO;wBACPC,YAAY;4BACVJ,MAAM;4BACNK,MAAM;wBACR;oBACF;gBACF;YACF;QACF;QACAC,OAAO;QACPC,gBAAgB;QAChBC,cAAc;QACdC,kBAAkB;QAClBC,WAAW;QACXC,qBAAqB;QACrBC,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,UAAU;QACVC,mBAAmB;QACnBC,gBAAgB;QAChBC,gBAAgB;QAChBC,SAAS;IACX;CACD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { UnknownSpec, QueryDefinition } from '@perses-dev/core';
1
+ import { QueryDefinition, UnknownSpec } from '@perses-dev/spec';
2
2
  export type TraceQueryDefinition<PluginSpec = UnknownSpec> = QueryDefinition<'TraceQuery', PluginSpec>;
3
3
  /**
4
4
  * The Options object type supported by the ScatterChart panel plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"scatter-chart-model.d.ts","sourceRoot":"","sources":["../../src/scatter-chart-model.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,WAAW,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAEvG;;GAEG;AAKH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
1
+ {"version":3,"file":"scatter-chart-model.d.ts","sourceRoot":"","sources":["../../src/scatter-chart-model.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,WAAW,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAEvG;;GAEG;AAKH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/scatter-chart-model.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { UnknownSpec, QueryDefinition } from '@perses-dev/core';\n\nexport type TraceQueryDefinition<PluginSpec = UnknownSpec> = QueryDefinition<'TraceQuery', PluginSpec>;\n\n/**\n * The Options object type supported by the ScatterChart panel plugin.\n */\n// TODO: Add support for scatter chart formatting options.\n// Some scaffolding has been done to support formatting options.\n// This includes the interface below which still needs implementation.\n// Note: The interface attributes must match schemas/scatter.cue\nexport interface ScatterChartOptions {\n /** range of the circles diameter */\n sizeRange?: [number, number];\n\n /**\n * Where to navigate after clicking on a bubble.\n * Supported variables: datasourceName, traceId\n */\n link?: string;\n}\n\n/**\n * Creates the initial/empty options for a ScatterChart panel.\n */\nexport function createInitialScatterChartOptions(): Record<string, unknown> {\n return {};\n}\n"],"names":["createInitialScatterChartOptions"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAwBjC;;CAEC,GACD,OAAO,SAASA;IACd,OAAO,CAAC;AACV"}
1
+ {"version":3,"sources":["../../src/scatter-chart-model.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { QueryDefinition, UnknownSpec } from '@perses-dev/spec';\n\nexport type TraceQueryDefinition<PluginSpec = UnknownSpec> = QueryDefinition<'TraceQuery', PluginSpec>;\n\n/**\n * The Options object type supported by the ScatterChart panel plugin.\n */\n// TODO: Add support for scatter chart formatting options.\n// Some scaffolding has been done to support formatting options.\n// This includes the interface below which still needs implementation.\n// Note: The interface attributes must match schemas/scatter.cue\nexport interface ScatterChartOptions {\n /** range of the circles diameter */\n sizeRange?: [number, number];\n\n /**\n * Where to navigate after clicking on a bubble.\n * Supported variables: datasourceName, traceId\n */\n link?: string;\n}\n\n/**\n * Creates the initial/empty options for a ScatterChart panel.\n */\nexport function createInitialScatterChartOptions(): Record<string, unknown> {\n return {};\n}\n"],"names":["createInitialScatterChartOptions"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAwBjC;;CAEC,GACD,OAAO,SAASA;IACd,OAAO,CAAC;AACV"}
package/mf-manifest.json CHANGED
@@ -5,11 +5,11 @@
5
5
  "name": "ScatterChart",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "0.11.0-beta.0",
8
+ "buildVersion": "0.11.0-beta.1",
9
9
  "buildName": "@perses-dev/scatter-chart-plugin"
10
10
  },
11
11
  "remoteEntry": {
12
- "name": "__mf/js/ScatterChart.7ec4d004.js",
12
+ "name": "__mf/js/ScatterChart.fe45b695.js",
13
13
  "path": "",
14
14
  "type": "global"
15
15
  },
@@ -89,20 +89,20 @@
89
89
  {
90
90
  "id": "ScatterChart:@perses-dev/components",
91
91
  "name": "@perses-dev/components",
92
- "version": "0.54.0-beta.1",
92
+ "version": "0.54.0-beta.3",
93
93
  "singleton": true,
94
- "requiredVersion": "^0.54.0-beta.1",
94
+ "requiredVersion": "^0.54.0-beta.3",
95
95
  "assets": {
96
96
  "js": {
97
97
  "async": [],
98
98
  "sync": [
99
- "__mf/js/async/755.e44e74f9.js"
99
+ "__mf/js/async/236.56a42fac.js"
100
100
  ]
101
101
  },
102
102
  "css": {
103
103
  "async": [],
104
104
  "sync": [
105
- "__mf/css/async/755.85c2cbf6.css"
105
+ "__mf/css/async/236.85c2cbf6.css"
106
106
  ]
107
107
  }
108
108
  },
@@ -111,14 +111,14 @@
111
111
  {
112
112
  "id": "ScatterChart:@perses-dev/plugin-system",
113
113
  "name": "@perses-dev/plugin-system",
114
- "version": "0.54.0-beta.1",
114
+ "version": "0.54.0-beta.3",
115
115
  "singleton": true,
116
- "requiredVersion": "^0.54.0-beta.1",
116
+ "requiredVersion": "^0.54.0-beta.3",
117
117
  "assets": {
118
118
  "js": {
119
119
  "async": [],
120
120
  "sync": [
121
- "__mf/js/async/366.421872cb.js"
121
+ "__mf/js/async/568.3fc50d63.js"
122
122
  ]
123
123
  },
124
124
  "css": {
@@ -258,15 +258,13 @@
258
258
  "js": {
259
259
  "sync": [
260
260
  "__mf/js/async/110.34eff628.js",
261
- "__mf/js/async/301.643f002b.js",
262
- "__mf/js/async/282.ec0a0600.js",
263
- "__mf/js/async/__federation_expose_ScatterChart.e6e00868.js"
261
+ "__mf/js/async/__federation_expose_ScatterChart.0112e08c.js"
264
262
  ],
265
263
  "async": [
266
264
  "__mf/js/async/588.4db1394c.js",
267
265
  "__mf/js/async/356.49c9bfe6.js",
268
266
  "__mf/js/async/71.ae02ccc1.js",
269
- "__mf/js/async/986.287d4ccd.js",
267
+ "__mf/js/async/357.9293af22.js",
270
268
  "__mf/js/async/659.9db1a9e6.js",
271
269
  "__mf/js/async/lib-router.3e810b61.js",
272
270
  "__mf/js/async/177.c9e9e666.js"
@@ -275,7 +273,7 @@
275
273
  "css": {
276
274
  "sync": [],
277
275
  "async": [
278
- "__mf/css/async/755.85c2cbf6.css"
276
+ "__mf/css/async/236.85c2cbf6.css"
279
277
  ]
280
278
  }
281
279
  },
package/mf-stats.json CHANGED
@@ -5,11 +5,11 @@
5
5
  "name": "ScatterChart",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "0.11.0-beta.0",
8
+ "buildVersion": "0.11.0-beta.1",
9
9
  "buildName": "@perses-dev/scatter-chart-plugin"
10
10
  },
11
11
  "remoteEntry": {
12
- "name": "__mf/js/ScatterChart.7ec4d004.js",
12
+ "name": "__mf/js/ScatterChart.fe45b695.js",
13
13
  "path": "",
14
14
  "type": "global"
15
15
  },
@@ -100,23 +100,23 @@
100
100
  },
101
101
  {
102
102
  "singleton": true,
103
- "requiredVersion": "^0.54.0-beta.1",
103
+ "requiredVersion": "^0.54.0-beta.3",
104
104
  "shareScope": "default",
105
105
  "name": "@perses-dev/components",
106
- "version": "0.54.0-beta.1",
106
+ "version": "0.54.0-beta.3",
107
107
  "eager": false,
108
108
  "id": "ScatterChart:@perses-dev/components",
109
109
  "assets": {
110
110
  "js": {
111
111
  "async": [],
112
112
  "sync": [
113
- "__mf/js/async/755.e44e74f9.js"
113
+ "__mf/js/async/236.56a42fac.js"
114
114
  ]
115
115
  },
116
116
  "css": {
117
117
  "async": [],
118
118
  "sync": [
119
- "__mf/css/async/755.85c2cbf6.css"
119
+ "__mf/css/async/236.85c2cbf6.css"
120
120
  ]
121
121
  }
122
122
  },
@@ -128,17 +128,17 @@
128
128
  },
129
129
  {
130
130
  "singleton": true,
131
- "requiredVersion": "^0.54.0-beta.1",
131
+ "requiredVersion": "^0.54.0-beta.3",
132
132
  "shareScope": "default",
133
133
  "name": "@perses-dev/plugin-system",
134
- "version": "0.54.0-beta.1",
134
+ "version": "0.54.0-beta.3",
135
135
  "eager": false,
136
136
  "id": "ScatterChart:@perses-dev/plugin-system",
137
137
  "assets": {
138
138
  "js": {
139
139
  "async": [],
140
140
  "sync": [
141
- "__mf/js/async/366.421872cb.js"
141
+ "__mf/js/async/568.3fc50d63.js"
142
142
  ]
143
143
  },
144
144
  "css": {
@@ -315,15 +315,13 @@
315
315
  "js": {
316
316
  "sync": [
317
317
  "__mf/js/async/110.34eff628.js",
318
- "__mf/js/async/301.643f002b.js",
319
- "__mf/js/async/282.ec0a0600.js",
320
- "__mf/js/async/__federation_expose_ScatterChart.e6e00868.js"
318
+ "__mf/js/async/__federation_expose_ScatterChart.0112e08c.js"
321
319
  ],
322
320
  "async": [
323
321
  "__mf/js/async/588.4db1394c.js",
324
322
  "__mf/js/async/356.49c9bfe6.js",
325
323
  "__mf/js/async/71.ae02ccc1.js",
326
- "__mf/js/async/986.287d4ccd.js",
324
+ "__mf/js/async/357.9293af22.js",
327
325
  "__mf/js/async/659.9db1a9e6.js",
328
326
  "__mf/js/async/lib-router.3e810b61.js",
329
327
  "__mf/js/async/177.c9e9e666.js"
@@ -332,7 +330,7 @@
332
330
  "css": {
333
331
  "sync": [],
334
332
  "async": [
335
- "__mf/css/async/755.85c2cbf6.css"
333
+ "__mf/css/async/236.85c2cbf6.css"
336
334
  ]
337
335
  }
338
336
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perses-dev/scatter-chart-plugin",
3
- "version": "0.11.0-beta.0",
3
+ "version": "0.11.0-beta.1",
4
4
  "homepage": "https://github.com/perses/plugins/blob/main/README.md",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,9 +30,9 @@
30
30
  "@emotion/react": "^11.7.1",
31
31
  "@emotion/styled": "^11.6.0",
32
32
  "@hookform/resolvers": "^3.2.0",
33
- "@perses-dev/components": "^0.54.0-beta.1",
34
- "@perses-dev/core": "^0.53.0",
35
- "@perses-dev/plugin-system": "^0.54.0-beta.1",
33
+ "@perses-dev/components": "^0.54.0-beta.3",
34
+ "@perses-dev/plugin-system": "^0.54.0-beta.3",
35
+ "@perses-dev/spec": "^0.2.0-beta.2",
36
36
  "date-fns": "^4.1.0",
37
37
  "date-fns-tz": "^3.2.0",
38
38
  "echarts": "5.5.0",
@@ -1 +0,0 @@
1
- "use strict";(self["chunk_ScatterChart "]=self["chunk_ScatterChart "]||[]).push([["282"],{47465(e,t,i){i.d(t,{Fl:()=>T});var a,n=i(20009);function r(e){return!1!==e}function s(e){return"number"==typeof e}function u(e){return e&&(e<0?e=0:e>20&&(e=20)),e}let o=new Map([["time",new Map],["decimal",new Map],["bits",new Map],["bytes",new Map],["currency",new Map],["percent",new Map],["temperature",new Map],["throughput",new Map]]);function l(e,t,i,a="en-US"){let n=`${e.filter(e=>![void 0,null,"",NaN].includes(e)).join("|")}|${a}`,r=o.get(t);if(!r)throw Error("No formatter found for the input type");let s=r.get(n);if(s)return s.format;let u=Intl.NumberFormat(a,i);return r?.set(`${n}`,u),u.format}function m(e,{unit:t="bytes",shortValues:i,decimalPlaces:a}){let o="decbytes"===t;if(!r(i)||Math.abs(e)<(o?1e3:1024)){let n={style:"unit",unit:"byte",unitDisplay:"long",useGrouping:!0};return s(a)?(n.minimumFractionDigits=u(a),n.maximumFractionDigits=u(a)):r(i)&&(n.maximumSignificantDigits=3),l([n.style,n.unit,n.unitDisplay,n.useGrouping,n.maximumSignificantDigits,a,i,t],"bytes",n,"en-US")(e)}return(0,n.A)(e).format({output:"byte",base:o?"decimal":"binary",spaceSeparated:!0,mantissa:s(a)?a:2,trimMantissa:!s(a),optionalMantissa:!s(a)})}function c(e,{unit:t="bits",shortValues:i,decimalPlaces:a}){let o="decbits"===t;if(!r(i)||Math.abs(e)<(o?1e3:1024)){let n={style:"decimal",useGrouping:!0};s(a)?(n.minimumFractionDigits=u(a),n.maximumFractionDigits=u(a)):r(i)&&(n.maximumSignificantDigits=3);let o=[n.style,n.useGrouping,n.maximumSignificantDigits,a,i,t];return`${l(o,"bits",n,"en-US")(e)} bits`}return(0,n.A)(e).format({output:"byte",base:o?"decimal":"binary",spaceSeparated:!0,mantissa:s(a)?a:2,trimMantissa:!s(a),optionalMantissa:!s(a)}).replace(/KB/g,"Kb").replace(/MB/g,"Mb").replace(/GB/g,"Gb").replace(/TB/g,"Tb").replace(/PB/g,"Pb").replace(/EB/g,"Eb").replace(/KiB/g,"Kib").replace(/MiB/g,"Mib").replace(/GiB/g,"Gib").replace(/TiB/g,"Tib").replace(/PiB/g,"Pib").replace(/EiB/g,"Eib")}let g="Percent",p="Temperature",b="Time";var d=((a={}).nanoseconds="nanosecond",a.microseconds="microsecond",a.milliseconds="millisecond",a.seconds="second",a.minutes="minute",a.hours="hour",a.days="day",a.weeks="week",a.months="month",a.years="year",a);let f={years:31536e3,months:2592e3,weeks:604800,days:86400,hours:3600,minutes:60,seconds:1,milliseconds:.001,microseconds:1e-6,nanoseconds:1e-9},y=["years","months","weeks","days","hours","minutes","seconds","milliseconds","microseconds","nanoseconds"],D="Throughput";var h=i(40224);let S="Currency",w="Date",M={nanoseconds:{group:b,label:"Nanoseconds"},microseconds:{group:b,label:"Microseconds"},milliseconds:{group:b,label:"Milliseconds"},seconds:{group:b,label:"Seconds"},minutes:{group:b,label:"Minutes"},hours:{group:b,label:"Hours"},days:{group:b,label:"Days"},weeks:{group:b,label:"Weeks"},months:{group:b,label:"Months"},years:{group:b,label:"Years"},percent:{group:g,label:"Percent (0-100)"},"percent-decimal":{group:g,label:"Percent (0.0-1.0)"},"%":{disableSelectorOption:!0,group:g,label:"%"},decimal:{group:"Decimal",label:"Decimal"},bytes:{group:"Bytes",label:"Bytes (IEC)"},decbytes:{group:"Bytes",label:"Bytes (SI)"},bits:{group:"Bits",label:"Bits (IEC)"},decbits:{group:"Bits",label:"Bits (SI)"},"bits/sec":{group:D,label:"Bits/sec (IEC)"},"decbits/sec":{group:D,label:"Bits/sec (SI)"},"bytes/sec":{group:D,label:"Bytes/sec (IEC)"},"decbytes/sec":{group:D,label:"Bytes/sec (SI)"},"counts/sec":{group:D,label:"Counts/sec"},"events/sec":{group:D,label:"Events/sec"},"messages/sec":{group:D,label:"Messages/sec"},"ops/sec":{group:D,label:"Ops/sec"},"packets/sec":{group:D,label:"Packets/sec"},"reads/sec":{group:D,label:"Reads/sec"},"requests/sec":{group:D,label:"Requests/sec"},"records/sec":{group:D,label:"Records/sec"},"rows/sec":{group:D,label:"Rows/sec"},"writes/sec":{group:D,label:"Writes/sec"},aud:{group:S,label:"Australian Dollar (A$)"},cad:{group:S,label:"Canadian Dollar (CA$)"},chf:{group:S,label:"Swiss Franc (CHF)"},cny:{group:S,label:"Renminbi (CN\xa5)"},eur:{group:S,label:"Euro (€)"},gbp:{group:S,label:"Pound (\xa3)"},hkd:{group:S,label:"Hong Kong Dollar (HK$)"},inr:{group:S,label:"Indian Rupee (₹)"},jpy:{group:S,label:"Yen (\xa5)"},krw:{group:S,label:"South Korean Won (₩)"},nok:{group:S,label:"Norwegian Krone (NOK)"},nzd:{group:S,label:"New Zealand Dollar (NZ$)"},sek:{group:S,label:"Swedish Krona (SEK)"},sgd:{group:S,label:"Singapore Dollar (S$)"},usd:{group:S,label:"US Dollar ($)"},celsius:{group:p,label:"Celsius (\xb0C)"},fahrenheit:{group:p,label:"Fahrenheit (\xb0F)"},"datetime-iso":{group:w,label:"DateTime (GMT)"},"datetime-us":{group:w,label:"DateTime (US-East)"},"datetime-local":{group:w,label:"DateTime (Browser Local)"},"date-iso":{group:w,label:"Date (GMT)"},"date-us":{group:w,label:"Date (US-East)"},"date-local":{group:w,label:"Date (Browser Local)"},"time-local":{group:w,label:"Time (Browser Local)"},"time-iso":{group:w,label:"Time (GMT)"},"time-us":{group:w,label:"Time (US-East)"},"relative-time":{group:w,label:"Relative Time"},"unix-timestamp":{group:w,label:"Unix Timestamp (s)"},"unix-timestamp-ms":{group:w,label:"Unix Timestamp (ms)"}};function T(e,t){if(!t)return e.toString();if("Bytes"===F(t))return m(e,t);if("Bits"===F(t))return c(e,t);if("Decimal"===F(t))return function(e,{shortValues:t,decimalPlaces:i}){let a={style:"decimal",useGrouping:!0};return r(t)&&(a.notation="compact"),s(i)?(a.minimumFractionDigits=u(i),a.maximumFractionDigits=u(i)):r(t)&&(a.maximumSignificantDigits=3),l([a.style,a.useGrouping,a.notation,a.maximumSignificantDigits,i],"decimal",a,"en-US")(e)}(e,t);if("Percent"===F(t))return function(e,{unit:t,decimalPlaces:i}){let a={style:"percent",useGrouping:!0};return s(i)?(a.minimumFractionDigits=u(i),a.maximumFractionDigits=u(i)):a.maximumSignificantDigits=3,"percent"===t&&(e/=100),l([a.style,a.useGrouping,a.maximumSignificantDigits,i,t],"percent",a,"en-US")(e)}(e,t);if("Time"===F(t))return function(e,{unit:t,decimalPlaces:i}){var a;if(0===e)return"0s";let n=function(e,t){let i=e*f[t],a=y[0]||"years",n=a,r=i/f[a];for(n of y)if((r=i/f[n])>=1)break;return{value:r,unit:n}}(e,t??"seconds"),r={style:"unit",unit:d[n.unit],unitDisplay:"months"===(a=n.unit)||"years"===a?"long":"narrow"};return s(i)?(r.minimumFractionDigits=u(i),r.maximumFractionDigits=u(i)):r.maximumSignificantDigits=3,l([r.style,r.unit,r.unitDisplay,r.maximumSignificantDigits,i,t??"seconds"],"time",r,"en-US")(n.value)}(e,t);if("Throughput"===F(t))return function(e,{unit:t,shortValues:i,decimalPlaces:a}){if("bits/sec"===t){let t=1024>Math.abs(e)?"sec":"s";return c(e,{unit:"bits",shortValues:i,decimalPlaces:a})+"/"+t}if("decbits/sec"===t){let t=1e3>Math.abs(e)?"sec":"s";return c(e,{unit:"decbits",shortValues:i,decimalPlaces:a})+"/"+t}if("decbytes/sec"===t){let t=1e3>Math.abs(e)?"sec":"s";return m(e,{unit:"decbytes",shortValues:i,decimalPlaces:a})+"/"+t}if("bytes/sec"===t){let t=1024>Math.abs(e)?"sec":"s";return m(e,{unit:"bytes",shortValues:i,decimalPlaces:a})+"/"+t}let n={style:"decimal",useGrouping:!0};r(i)&&(n.notation="compact"),s(a)?(n.minimumFractionDigits=u(a),n.maximumFractionDigits=u(a)):r(i)&&(n.maximumSignificantDigits=3);let o=[n.style,n.useGrouping,n.notation,n.maximumSignificantDigits,a,i,t];return`${l(o,"throughput",n,"en-US")(e)} ${t}`}(e,t);if("Currency"===F(t))return function(e,{unit:t,decimalPlaces:i}){let a={style:"currency",currency:(0,h.toUpper)(t),currencyDisplay:"symbol"};return s(i)?(a.minimumFractionDigits=u(i),a.maximumFractionDigits=u(i)):a.maximumSignificantDigits=3,l([a.style,a.currency,a.currencyDisplay,a.maximumSignificantDigits,i,t],"currency",a,"en-US")(e)}(e,t);if("Date"===F(t))return function(e,t={}){let i=Intl.DateTimeFormat().resolvedOptions().timeZone,{unit:a="datetime-local",locale:n=(()=>{if("u">typeof navigator){if(navigator.language)return navigator.language;if(navigator.languages&&navigator.languages.length>0){let e=navigator.languages[0];if(e)return e}let e=navigator;if(e.userLanguage)return e.userLanguage;if(e.browserLanguage)return e.browserLanguage;if(e.systemLanguage)return e.systemLanguage}return Intl.DateTimeFormat().resolvedOptions().locale||"en-US"})(),timeZone:r=i,referenceTime:s=Date.now()}=t;if("unix-timestamp"===a)return(e>1e12?Math.floor(e/1e3):e).toString();if("unix-timestamp-ms"===a)return Math.floor(e<1e11?1e3*e:e).toString();let u=function(e){if(e<0)if(Math.abs(e)>1e10)return new Date(e);else return new Date(1e3*e);if(e>=25e10&&e<=26e10){let t=new Date(1e3*e);if(t.getUTCFullYear()>=9999)return t}return new Date(e<1e10?1e3*e:e)}(e);if("relative-time"===a){let e=new Date(s),t=u.getTime()-e.getTime();for(let{unit:e,ms:i}of[{unit:"year",ms:31536e6},{unit:"month",ms:2592e6},{unit:"week",ms:6048e5},{unit:"day",ms:864e5},{unit:"hour",ms:36e5},{unit:"minute",ms:6e4},{unit:"second",ms:1e3}]){let a=Math.round(t/i);if(Math.abs(a)>=1)return new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(a,e)}return new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(0,"second")}let o={timeZone:r};switch(a){case"datetime-iso":return u.toISOString();case"datetime-us":return o.timeZone="America/New_York",o.year="numeric",o.month="2-digit",o.day="2-digit",o.hour="2-digit",o.minute="2-digit",o.second="2-digit",o.hour12=!0,new Intl.DateTimeFormat("en-US",o).format(u);case"datetime-local":o.year="numeric",o.month="2-digit",o.day="2-digit",o.hour="2-digit",o.minute="2-digit",o.second="2-digit",o.hour12=!1;break;case"date-iso":return u.toISOString().split("T")[0];case"date-us":return o.timeZone="America/New_York",o.year="numeric",o.month="2-digit",o.day="2-digit",new Intl.DateTimeFormat("en-US",o).format(u);case"date-local":o.year="numeric",o.month="2-digit",o.day="2-digit";break;case"time-local":o.hour="2-digit",o.minute="2-digit",o.second="2-digit",o.hour12=!1;break;case"time-iso":return u.toISOString().split("T")[1].replace("Z","");case"time-us":return o.timeZone="America/New_York",o.hour="2-digit",o.minute="2-digit",o.second="2-digit",o.hour12=!0,new Intl.DateTimeFormat("en-US",o).format(u);default:throw Error(`Unknown date unit: ${a}`)}return new Intl.DateTimeFormat(n,o).format(u)}(e,t);if("Temperature"===F(t))return((e,{unit:t,decimalPlaces:i})=>{let a={unit:t,style:"unit"};s(i)?(a.minimumFractionDigits=u(i),a.maximumFractionDigits=u(i)):a.maximumSignificantDigits=3;let n="celsius"===t?"en-GB":"en-US";return l([a.style,a.unit,a.maximumSignificantDigits,i,n],"temperature",a,n)(e)})(e,t);throw Error(`Unknown unit options ${t}`)}function F(e){return M[e.unit??"decimal"].group??"Decimal"}}}]);
@@ -1,2 +0,0 @@
1
- /*! For license information please see 301.643f002b.js.LICENSE.txt */
2
- "use strict";(self["chunk_ScatterChart "]=self["chunk_ScatterChart "]||[]).push([["301"],{20009(e,t,r){r.d(t,{A:()=>I});var n,i,a,o,s,l,u,c,f="u">typeof globalThis?globalThis:"u">typeof window?window:void 0!==r.g?r.g:"u">typeof self?self:{};function h(){if(o)return a;o=1;let e=[{key:"ZiB",factor:11805916207174113e5},{key:"ZB",factor:1e21},{key:"YiB",factor:12089258196146292e8},{key:"YB",factor:1e24},{key:"TiB",factor:0x10000000000},{key:"TB",factor:1e12},{key:"PiB",factor:0x4000000000000},{key:"PB",factor:1e15},{key:"MiB",factor:1048576},{key:"MB",factor:1e6},{key:"KiB",factor:1024},{key:"KB",factor:1e3},{key:"GiB",factor:0x40000000},{key:"GB",factor:1e9},{key:"EiB",factor:0x1000000000000000},{key:"EB",factor:1e18},{key:"B",factor:1}];function t(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}return a={unformat:function(r,n){let i,a=d(),o=a.currentDelimiters(),s=a.currentCurrency().symbol,l=a.currentOrdinal(),u=a.getZeroFormat(),c=a.currentAbbreviations();if("string"==typeof r)if(function(e,t){if(!(e.indexOf(":")&&":"!==t.thousands))return!1;let r=e.split(":");if(3!==r.length)return!1;let n=+r[0],i=+r[1],a=+r[2];return!isNaN(n)&&!isNaN(i)&&!isNaN(a)}(r,o)){let e,t,n;t=+(e=r.split(":"))[0],n=+e[1],i=+e[2]+60*n+3600*t}else i=function(r,n,i="",a,o,s){if(""!==r)return r===o?0:function r(n,i,a,o,s,l,u){if(!isNaN(+n))return+n;let c="",f=n.replace(/(^[^(]*)\((.*)\)([^)]*$)/,"$1$2$3");if(f!==n)return -1*r(f,i,a,o,s,l);for(let t=0;t<e.length;t++){let u=e[t];if((c=n.replace(RegExp(`([0-9 ])(${u.key})$`),"$1"))!==n)return r(c,i,a,o,s,l)*u.factor}if((c=n.replace("%",""))!==n)return r(c,i,a,o,s,l)/100;let h=parseFloat(n);if(isNaN(h))return;let g=o(h);if(g&&"."!==g&&(c=n.replace(RegExp(`${t(g)}$`),""))!==n)return r(c,i,a,o,s,l);let p={};Object.keys(l).forEach(e=>{p[l[e]]=e});let d=Object.keys(p).sort().reverse(),m=d.length;for(let e=0;e<m;e++){let t=d[e],u=p[t];if((c=n.replace(t,""))!==n){let e;switch(u){case"thousand":e=1e3;break;case"million":e=1e6;break;case"billion":e=1e9;break;case"trillion":e=1e12}return r(c,i,a,o,s,l)*e}}}(r.replace(i,"").replace(RegExp(`([0-9])${t(n.thousands)}([0-9])`,"g"),"$1$2").replace(n.decimal,"."),n,i,a,o,s)}(r,o,s,l,u,c);else{if("number"!=typeof r)return;i=r}if(void 0!==i)return i}}}function g(){if(l)return s;l=1;let e=h(),t=/^[a-z]{2,3}(-[a-zA-Z]{4})?(-([A-Z]{2}|[0-9]{3}))?$/,r={output:{type:"string",validValues:["currency","percent","byte","time","ordinal","number"]},base:{type:"string",validValues:["decimal","binary","general"],restriction:(e,t)=>"byte"===t.output,message:"`base` must be provided only when the output is `byte`",mandatory:e=>"byte"===e.output},characteristic:{type:"number",restriction:e=>e>=0,message:"value must be positive"},prefix:"string",postfix:"string",forceAverage:{type:"string",validValues:["trillion","billion","million","thousand"]},average:"boolean",lowPrecision:{type:"boolean",restriction:(e,t)=>!0===t.average,message:"`lowPrecision` must be provided only when the option `average` is set"},currencyPosition:{type:"string",validValues:["prefix","infix","postfix"]},currencySymbol:"string",totalLength:{type:"number",restrictions:[{restriction:e=>e>=0,message:"value must be positive"},{restriction:(e,t)=>!t.exponential,message:"`totalLength` is incompatible with `exponential`"}]},mantissa:{type:"number",restriction:e=>e>=0,message:"value must be positive"},optionalMantissa:"boolean",trimMantissa:"boolean",roundingFunction:"function",optionalCharacteristic:"boolean",thousandSeparated:"boolean",spaceSeparated:"boolean",spaceSeparatedCurrency:"boolean",spaceSeparatedAbbreviation:"boolean",abbreviations:{type:"object",children:{thousand:"string",million:"string",billion:"string",trillion:"string"}},negative:{type:"string",validValues:["sign","parenthesis"]},forceSign:"boolean",exponential:{type:"boolean"},prefixSymbol:{type:"boolean",restriction:(e,t)=>"percent"===t.output,message:"`prefixSymbol` can be provided only when the output is `percent`"}},n={languageTag:{type:"string",mandatory:!0,restriction:e=>e.match(t),message:"the language tag must follow the BCP 47 specification (see https://tools.ieft.org/html/bcp47)"},delimiters:{type:"object",children:{thousands:"string",decimal:"string",thousandsSize:"number"},mandatory:!0},abbreviations:{type:"object",children:{thousand:{type:"string",mandatory:!0},million:{type:"string",mandatory:!0},billion:{type:"string",mandatory:!0},trillion:{type:"string",mandatory:!0}},mandatory:!0},spaceSeparated:"boolean",spaceSeparatedCurrency:"boolean",ordinal:{type:"function",mandatory:!0},bytes:{type:"object",children:{binarySuffixes:"object",decimalSuffixes:"object"}},currency:{type:"object",children:{symbol:"string",position:"string",code:"string"},mandatory:!0},defaults:"format",ordinalFormat:"format",byteFormat:"format",percentageFormat:"format",currencyFormat:"format",timeDefaults:"format",formats:{type:"object",children:{fourDigits:{type:"format",mandatory:!0},fullWithTwoDecimals:{type:"format",mandatory:!0},fullWithTwoDecimalsNoCurrency:{type:"format",mandatory:!0},fullWithNoDecimals:{type:"format",mandatory:!0}}}};function i(t){return void 0!==e.unformat(t)}function a(e,t,n,i=!1){let o=Object.keys(e).map(i=>{if(!t[i])return console.error(`${n} Invalid key: ${i}`),!1;let o=e[i],s=t[i];if("string"==typeof s&&(s={type:s}),"format"===s.type){if(!a(o,r,`[Validate ${i}]`,!0))return!1}else if(typeof o!==s.type)return console.error(`${n} ${i} type mismatched: "${s.type}" expected, "${typeof o}" provided`),!1;if(s.restrictions&&s.restrictions.length){let t=s.restrictions.length;for(let r=0;r<t;r++){let{restriction:t,message:a}=s.restrictions[r];if(!t(o,e))return console.error(`${n} ${i} invalid value: ${a}`),!1}}return s.restriction&&!s.restriction(o,e)?(console.error(`${n} ${i} invalid value: ${s.message}`),!1):s.validValues&&-1===s.validValues.indexOf(o)?(console.error(`${n} ${i} invalid value: must be among ${JSON.stringify(s.validValues)}, "${o}" provided`),!1):(!s.children||!!a(o,s.children,`[Validate ${i}]`))&&!0});return i||o.push(...Object.keys(t).map(r=>{let i=t[r];if("string"==typeof i&&(i={type:i}),i.mandatory){let t=i.mandatory;if("function"==typeof t&&(t=t(e)),t&&void 0===e[r])return console.error(`${n} Missing mandatory key "${r}"`),!1}return!0})),o.reduce((e,t)=>e&&t,!0)}function o(e){return a(e,r,"[Validate format]")}return s={validate:function(e,t){let r=i(e),n=o(t);return r&&n},validateFormat:o,validateInput:i,validateLanguage:function(e){return a(e,n,"[Validate language]")}}}var p=function(e,t={}){var r,n,i,a,o,s;let l,u,c,f,h;if("string"!=typeof e)return e;n=e=(l=(r=e).match(/^{([^}]*)}/))?(t.prefix=l[1],r.slice(l[0].length)):r,function(e,t){if(-1!==e.indexOf("$")){t.output="currency";return}if(-1!==e.indexOf("%")){t.output="percent";return}if(-1!==e.indexOf("bd")){t.output="byte",t.base="general";return}if(-1!==e.indexOf("b")){t.output="byte",t.base="binary";return}if(-1!==e.indexOf("d")){t.output="byte",t.base="decimal";return}if(-1!==e.indexOf(":")){t.output="time";return}-1!==e.indexOf("o")&&(t.output="ordinal")}(e=(u=n.match(/{([^}]*)}$/))?(t.postfix=u[1],n.slice(0,-u[0].length)):n,t),(c=e.match(/[1-9]+[0-9]*/))&&(t.totalLength=+c[0]),(f=e.split(".")[0].match(/0+/))&&(t.characteristic=f[0].length),-1!==(i=e).indexOf(".")&&(t.optionalCharacteristic=-1===i.split(".")[0].indexOf("0")),-1!==e.indexOf("a")&&(t.average=!0),-1!==(a=e).indexOf("K")?t.forceAverage="thousand":-1!==a.indexOf("M")?t.forceAverage="million":-1!==a.indexOf("B")?t.forceAverage="billion":-1!==a.indexOf("T")&&(t.forceAverage="trillion");let g=e.split(".")[1];if(g){let e=g.match(/0+/);e&&(t.mantissa=e[0].length)}return(o=e).match(/\[\.]/)?t.optionalMantissa=!0:o.match(/\./)&&(t.optionalMantissa=!1),(h=e.split(".")[1])&&(t.trimMantissa=-1!==h.indexOf("[")),-1!==e.indexOf(",")&&(t.thousandSeparated=!0),-1!==e.indexOf(" ")&&(t.spaceSeparated=!0,t.spaceSeparatedCurrency=!0,(t.average||t.forceAverage)&&(t.spaceSeparatedAbbreviation=!0)),(s=e).match(/^\+?\([^)]*\)$/)&&(t.negative="parenthesis"),s.match(/^\+?-/)&&(t.negative="sign"),e.match(/^\+/)&&(t.forceSign=!0),t};function d(){let e;if(c)return u;c=1;let t=i?n:(i=1,n={languageTag:"en-US",delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},spaceSeparated:!1,ordinal:function(e){let t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},bytes:{binarySuffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],decimalSuffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},currency:{symbol:"$",position:"prefix",code:"USD"},currencyFormat:{thousandSeparated:!0,totalLength:4,spaceSeparated:!0,spaceSeparatedCurrency:!0},formats:{fourDigits:{totalLength:4,spaceSeparated:!0},fullWithTwoDecimals:{output:"currency",thousandSeparated:!0,mantissa:2},fullWithTwoDecimalsNoCurrency:{thousandSeparated:!0,mantissa:2},fullWithNoDecimals:{output:"currency",thousandSeparated:!0,mantissa:0}}}),r=g(),a={},o={},s=null,l={};function f(){return o[e]}return a.languages=()=>Object.assign({},o),a.currentLanguage=()=>e,a.currentBytes=()=>f().bytes||{},a.currentCurrency=()=>f().currency,a.currentAbbreviations=()=>f().abbreviations,a.currentDelimiters=()=>f().delimiters,a.currentOrdinal=()=>f().ordinal,a.currentDefaults=()=>Object.assign({},f().defaults,l),a.currentOrdinalDefaultFormat=()=>Object.assign({},a.currentDefaults(),f().ordinalFormat),a.currentByteDefaultFormat=()=>Object.assign({},a.currentDefaults(),f().byteFormat),a.currentPercentageDefaultFormat=()=>Object.assign({},a.currentDefaults(),f().percentageFormat),a.currentCurrencyDefaultFormat=()=>Object.assign({},a.currentDefaults(),f().currencyFormat),a.currentTimeDefaultFormat=()=>Object.assign({},a.currentDefaults(),f().timeFormat),a.setDefaults=e=>{e=p(e),r.validateFormat(e)&&(l=e)},a.getZeroFormat=()=>s,a.setZeroFormat=e=>s="string"==typeof e?e:null,a.hasZeroFormat=()=>null!==s,a.languageData=e=>{if(e){if(o[e])return o[e];throw Error(`Unknown tag "${e}"`)}return f()},a.registerLanguage=(t,n=!1)=>{if(!r.validateLanguage(t))throw Error("Invalid language data");o[t.languageTag]=t,n&&(e=t.languageTag)},a.setLanguage=(r,n=t.languageTag)=>{if(!o[r]){let t=r.split("-")[0],i=Object.keys(o).find(e=>e.split("-")[0]===t);return o[i]?void(e=i):void(e=n)}e=r},a.registerLanguage(t),e=t.languageTag,u=a}var m={exports:{}};(function(e){var t,r=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,n=Math.ceil,i=Math.floor,a="[BigNumber Error] ",o=a+"Number primitive has more than 15 significant digits: ",s=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13];function l(e){var t=0|e;return e>0||e===t?t:t-1}function u(e){for(var t,r,n=1,i=e.length,a=e[0]+"";n<i;){for(r=14-(t=e[n++]+"").length;r--;t="0"+t);a+=t}for(i=a.length;48===a.charCodeAt(--i););return a.slice(0,i+1||1)}function c(e,t){var r,n,i=e.c,a=t.c,o=e.s,s=t.s,l=e.e,u=t.e;if(!o||!s)return null;if(r=i&&!i[0],n=a&&!a[0],r||n)return r?n?0:-s:o;if(o!=s)return o;if(r=o<0,n=l==u,!i||!a)return n?0:!i^r?1:-1;if(!n)return l>u^r?1:-1;for(o=0,s=(l=i.length)<(u=a.length)?l:u;o<s;o++)if(i[o]!=a[o])return i[o]>a[o]^r?1:-1;return l==u?0:l>u^r?1:-1}function f(e,t,r,n){if(e<t||e>r||e!==i(e))throw Error(a+(n||"Argument")+("number"==typeof e?e<t||e>r?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function h(e){var t=e.c.length-1;return l(e.e/14)==t&&e.c[t]%2!=0}function g(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function p(e,t,r){var n,i;if(t<0){for(i=r+".";++t;i+=r);e=i+e}else if(n=e.length,++t>n){for(i=r,t-=n;--t;i+=r);e+=i}else t<n&&(e=e.slice(0,t)+"."+e.slice(t));return e}(t=function e(t){var d,m,y,b,v,w,O,x,N,S=j.prototype={constructor:j,toString:null,valueOf:null},$=new j(1),B=20,_=4,D=-7,E=21,A=-1e7,k=1e7,F=!1,M=1,L=0,C={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},P="0123456789abcdefghijklmnopqrstuvwxyz",T=!0;function j(e,t){var n,a,s,l,u,c,h,g,p=this;if(!(p instanceof j))return new j(e,t);if(null==t){if(e&&!0===e._isBigNumber){p.s=e.s,!e.c||e.e>k?p.c=p.e=null:e.e<A?p.c=[p.e=0]:(p.e=e.e,p.c=e.c.slice());return}if((c="number"==typeof e)&&0*e==0){if(p.s=1/e<0?(e=-e,-1):1,e===~~e){for(l=0,u=e;u>=10;u/=10,l++);l>k?p.c=p.e=null:(p.e=l,p.c=[e]);return}g=String(e)}else{if(!r.test(g=String(e)))return N(p,g,c);p.s=45==g.charCodeAt(0)?(g=g.slice(1),-1):1}(l=g.indexOf("."))>-1&&(g=g.replace(".","")),(u=g.search(/e/i))>0?(l<0&&(l=u),l+=+g.slice(u+1),g=g.substring(0,u)):l<0&&(l=g.length)}else{if(f(t,2,P.length,"Base"),10==t&&T)return G(p=new j(e),B+p.e+1,_);if(g=String(e),c="number"==typeof e){if(0*e!=0)return N(p,g,c,t);if(p.s=1/e<0?(g=g.slice(1),-1):1,j.DEBUG&&g.replace(/^0\.0*|\./,"").length>15)throw Error(o+e)}else p.s=45===g.charCodeAt(0)?(g=g.slice(1),-1):1;for(n=P.slice(0,t),l=u=0,h=g.length;u<h;u++)if(0>n.indexOf(a=g.charAt(u))){if("."==a){if(u>l){l=h;continue}}else if(!s&&(g==g.toUpperCase()&&(g=g.toLowerCase())||g==g.toLowerCase()&&(g=g.toUpperCase()))){s=!0,u=-1,l=0;continue}return N(p,String(e),c,t)}c=!1,(l=(g=x(g,t,10,p.s)).indexOf("."))>-1?g=g.replace(".",""):l=g.length}for(u=0;48===g.charCodeAt(u);u++);for(h=g.length;48===g.charCodeAt(--h););if(g=g.slice(u,++h)){if(h-=u,c&&j.DEBUG&&h>15&&(e>0x1fffffffffffff||e!==i(e)))throw Error(o+p.s*e);if((l=l-u-1)>k)p.c=p.e=null;else if(l<A)p.c=[p.e=0];else{if(p.e=l,p.c=[],u=(l+1)%14,l<0&&(u+=14),u<h){for(u&&p.c.push(+g.slice(0,u)),h-=14;u<h;)p.c.push(+g.slice(u,u+=14));u=14-(g=g.slice(u)).length}else u-=h;for(;u--;g+="0");p.c.push(+g)}}else p.c=[p.e=0]}function R(e,t,r,n){var i,a,o,s,l;if(null==r?r=_:f(r,0,8),!e.c)return e.toString();if(i=e.c[0],o=e.e,null==t)l=u(e.c),l=1==n||2==n&&(o<=D||o>=E)?g(l,o):p(l,o,"0");else if(a=(e=G(new j(e),t,r)).e,s=(l=u(e.c)).length,1==n||2==n&&(t<=a||a<=D)){for(;s<t;l+="0",s++);l=g(l,a)}else if(t-=o,l=p(l,a,"0"),a+1>s){if(--t>0)for(l+=".";t--;l+="0");}else if((t+=a-s)>0)for(a+1==s&&(l+=".");t--;l+="0");return e.s<0&&i?"-"+l:l}function U(e,t){for(var r,n,i=1,a=new j(e[0]);i<e.length;i++)(n=new j(e[i])).s&&(r=c(a,n))!==t&&(0!==r||a.s!==t)||(a=n);return a}function I(e,t,r){for(var n=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,n++);return(r=n+14*r-1)>k?e.c=e.e=null:r<A?e.c=[e.e=0]:(e.e=r,e.c=t),e}function G(e,t,r,a){var o,l,u,c,f,h,g,p=e.c;if(p){e:{for(o=1,c=p[0];c>=10;c/=10,o++);if((l=t-o)<0)l+=14,u=t,g=i((f=p[h=0])/s[o-u-1]%10);else if((h=n((l+1)/14))>=p.length)if(a){for(;p.length<=h;p.push(0));f=g=0,o=1,l%=14,u=l-14+1}else break e;else{for(o=1,f=c=p[h];c>=10;c/=10,o++);l%=14,g=(u=l-14+o)<0?0:i(f/s[o-u-1]%10)}if(a=a||t<0||null!=p[h+1]||(u<0?f:f%s[o-u-1]),a=r<4?(g||a)&&(0==r||r==(e.s<0?3:2)):g>5||5==g&&(4==r||a||6==r&&(l>0?u>0?f/s[o-u]:0:p[h-1])%10&1||r==(e.s<0?8:7)),t<1||!p[0])return p.length=0,a?(t-=e.e+1,p[0]=s[(14-t%14)%14],e.e=-t||0):p[0]=e.e=0,e;if(0==l?(p.length=h,c=1,h--):(p.length=h+1,c=s[14-l],p[h]=u>0?i(f/s[o-u]%s[u])*c:0),a)for(;;)if(0==h){for(l=1,u=p[0];u>=10;u/=10,l++);for(u=p[0]+=c,c=1;u>=10;u/=10,c++);l!=c&&(e.e++,1e14==p[0]&&(p[0]=1));break}else{if(p[h]+=c,1e14!=p[h])break;p[h--]=0,c=1}for(l=p.length;0===p[--l];p.pop());}e.e>k?e.c=e.e=null:e.e<A&&(e.c=[e.e=0])}return e}function V(e){var t,r=e.e;return null===r?e.toString():(t=u(e.c),t=r<=D||r>=E?g(t,r):p(t,r,"0"),e.s<0?"-"+t:t)}return j.clone=e,j.ROUND_UP=0,j.ROUND_DOWN=1,j.ROUND_CEIL=2,j.ROUND_FLOOR=3,j.ROUND_HALF_UP=4,j.ROUND_HALF_DOWN=5,j.ROUND_HALF_EVEN=6,j.ROUND_HALF_CEIL=7,j.ROUND_HALF_FLOOR=8,j.EUCLID=9,j.config=j.set=function(e){var t,r;if(null!=e)if("object"==typeof e){if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(f(r=e[t],0,1e9,t),B=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(f(r=e[t],0,8,t),_=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(f(r[0],-1e9,0,t),f(r[1],0,1e9,t),D=r[0],E=r[1]):(f(r,-1e9,1e9,t),D=-(E=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)f(r[0],-1e9,-1,t),f(r[1],1,1e9,t),A=r[0],k=r[1];else if(f(r,-1e9,1e9,t),r)A=-(k=r<0?-r:r);else throw Error(a+t+" cannot be zero: "+r);if(e.hasOwnProperty(t="CRYPTO"))if(!!(r=e[t])===r)if(r)if("u">typeof crypto&&crypto&&(crypto.getRandomValues||crypto.randomBytes))F=r;else throw F=!r,Error(a+"crypto unavailable");else F=r;else throw Error(a+t+" not true or false: "+r);if(e.hasOwnProperty(t="MODULO_MODE")&&(f(r=e[t],0,9,t),M=r),e.hasOwnProperty(t="POW_PRECISION")&&(f(r=e[t],0,1e9,t),L=r),e.hasOwnProperty(t="FORMAT"))if("object"==typeof(r=e[t]))C=r;else throw Error(a+t+" not an object: "+r);if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(r))throw Error(a+t+" invalid: "+r);T="0123456789"==r.slice(0,10),P=r}}else throw Error(a+"Object expected: "+e);return{DECIMAL_PLACES:B,ROUNDING_MODE:_,EXPONENTIAL_AT:[D,E],RANGE:[A,k],CRYPTO:F,MODULO_MODE:M,POW_PRECISION:L,FORMAT:C,ALPHABET:P}},j.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!j.DEBUG)return!0;var t,r,n=e.c,o=e.e,s=e.s;e:if("[object Array]"==({}).toString.call(n)){if((1===s||-1===s)&&o>=-1e9&&o<=1e9&&o===i(o)){if(0===n[0]){if(0===o&&1===n.length)return!0;break e}if((t=(o+1)%14)<1&&(t+=14),String(n[0]).length==t){for(t=0;t<n.length;t++)if((r=n[t])<0||r>=1e14||r!==i(r))break e;if(0!==r)return!0}}}else if(null===n&&null===o&&(null===s||1===s||-1===s))return!0;throw Error(a+"Invalid BigNumber: "+e)},j.maximum=j.max=function(){return U(arguments,-1)},j.minimum=j.min=function(){return U(arguments,1)},d=0x20000000000000*Math.random()&2097151?function(){return i(0x20000000000000*Math.random())}:function(){return(0x40000000*Math.random()|0)*8388608+(8388608*Math.random()|0)},j.random=function(e){var t,r,o,l,u,c=0,h=[],g=new j($);if(null==e?e=B:f(e,0,1e9),l=n(e/14),F)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(l*=2));c<l;)(u=131072*t[c]+(t[c+1]>>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),t[c]=r[0],t[c+1]=r[1]):(h.push(u%1e14),c+=2);c=l/2}else if(crypto.randomBytes){for(t=crypto.randomBytes(l*=7);c<l;)(u=(31&t[c])*0x1000000000000+0x10000000000*t[c+1]+0x100000000*t[c+2]+0x1000000*t[c+3]+(t[c+4]<<16)+(t[c+5]<<8)+t[c+6])>=9e15?crypto.randomBytes(7).copy(t,c):(h.push(u%1e14),c+=7);c=l/7}else throw F=!1,Error(a+"crypto unavailable");if(!F)for(;c<l;)(u=d())<9e15&&(h[c++]=u%1e14);for(l=h[--c],e%=14,l&&e&&(u=s[14-e],h[c]=i(l/u)*u);0===h[c];h.pop(),c--);if(c<0)h=[o=0];else{for(o=-1;0===h[0];h.splice(0,1),o-=14);for(c=1,u=h[0];u>=10;u/=10,c++);c<14&&(o-=14-c)}return g.e=o,g.c=h,g},j.sum=function(){for(var e=1,t=arguments,r=new j(t[0]);e<t.length;)r=r.plus(t[e++]);return r},x=function(){var e="0123456789";function t(e,t,r,n){for(var i,a,o=[0],s=0,l=e.length;s<l;){for(a=o.length;a--;o[a]*=t);for(o[0]+=n.indexOf(e.charAt(s++)),i=0;i<o.length;i++)o[i]>r-1&&(null==o[i+1]&&(o[i+1]=0),o[i+1]+=o[i]/r|0,o[i]%=r)}return o.reverse()}return function(r,n,i,a,o){var s,l,c,f,h,g,d,m,y=r.indexOf("."),b=B,v=_;for(y>=0&&(f=L,L=0,r=r.replace(".",""),g=(m=new j(n)).pow(r.length-y),L=f,m.c=t(p(u(g.c),g.e,"0"),10,i,e),m.e=m.c.length),c=f=(d=t(r,n,i,o?(s=P,e):(s=e,P))).length;0==d[--f];d.pop());if(!d[0])return s.charAt(0);if(y<0?--c:(g.c=d,g.e=c,g.s=a,d=(g=O(g,m,b,v,i)).c,h=g.r,c=g.e),y=d[l=c+b+1],f=i/2,h=h||l<0||null!=d[l+1],h=v<4?(null!=y||h)&&(0==v||v==(g.s<0?3:2)):y>f||y==f&&(4==v||h||6==v&&1&d[l-1]||v==(g.s<0?8:7)),l<1||!d[0])r=h?p(s.charAt(1),-b,s.charAt(0)):s.charAt(0);else{if(d.length=l,h)for(--i;++d[--l]>i;)d[l]=0,l||(++c,d=[1].concat(d));for(f=d.length;!d[--f];);for(y=0,r="";y<=f;r+=s.charAt(d[y++]));r=p(r,c,s.charAt(0))}return r}}(),O=function(){function e(e,t,r){var n,i,a,o,s=0,l=e.length,u=t%1e7,c=t/1e7|0;for(e=e.slice();l--;)n=c*(a=e[l]%1e7)+(o=e[l]/1e7|0)*u,s=((i=u*a+n%1e7*1e7+s)/r|0)+(n/1e7|0)+c*o,e[l]=i%r;return s&&(e=[s].concat(e)),e}function t(e,t,r,n){var i,a;if(r!=n)a=r>n?1:-1;else for(i=a=0;i<r;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=+(e[r]<t[r]),e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;e.splice(0,1));}return function(n,a,o,s,u){var c,f,h,g,p,d,m,y,b,v,w,O,x,N,S,$,B,_=n.s==a.s?1:-1,D=n.c,E=a.c;if(!D||!D[0]||!E||!E[0])return new j(!n.s||!a.s||(D?E&&D[0]==E[0]:!E)?NaN:D&&0==D[0]||!E?0*_:_/0);for(b=(y=new j(_)).c=[],_=o+(f=n.e-a.e)+1,u||(u=1e14,f=l(n.e/14)-l(a.e/14),_=_/14|0),h=0;E[h]==(D[h]||0);h++);if(E[h]>(D[h]||0)&&f--,_<0)b.push(1),g=!0;else{for(N=D.length,$=E.length,h=0,_+=2,(p=i(u/(E[0]+1)))>1&&(E=e(E,p,u),D=e(D,p,u),$=E.length,N=D.length),x=$,w=(v=D.slice(0,$)).length;w<$;v[w++]=0);B=[0].concat(B=E.slice()),S=E[0],E[1]>=u/2&&S++;do{if(p=0,(c=t(E,v,$,w))<0){if(O=v[0],$!=w&&(O=O*u+(v[1]||0)),(p=i(O/S))>1)for(p>=u&&(p=u-1),m=(d=e(E,p,u)).length,w=v.length;1==t(d,v,m,w);)p--,r(d,$<m?B:E,m,u),m=d.length,c=1;else 0==p&&(c=p=1),m=(d=E.slice()).length;if(m<w&&(d=[0].concat(d)),r(v,d,w,u),w=v.length,-1==c)for(;1>t(E,v,$,w);)p++,r(v,$<w?B:E,w,u),w=v.length}else 0===c&&(p++,v=[0]);b[h++]=p,v[0]?v[w++]=D[x]||0:(v=[D[x]],w=1)}while((x++<N||null!=v[0])&&_--);g=null!=v[0],b[0]||b.splice(0,1)}if(1e14==u){for(h=1,_=b[0];_>=10;_/=10,h++);G(y,o+(y.e=h+14*f-1)+1,s,g)}else y.e=f,y.r=+g;return y}}(),m=/^(-?)0([xbo])(?=\w[\w.]*$)/i,y=/^([^.]+)\.$/,b=/^\.([^.]+)$/,v=/^-?(Infinity|NaN)$/,w=/^\s*\+(?=[\w.])|^\s+|\s+$/g,N=function(e,t,r,n){var i,o=r?t:t.replace(w,"");if(v.test(o))e.s=isNaN(o)?null:o<0?-1:1;else{if(!r&&(o=o.replace(m,function(e,t,r){return i="x"==(r=r.toLowerCase())?16:"b"==r?2:8,n&&n!=i?e:t}),n&&(i=n,o=o.replace(y,"$1").replace(b,"0.$1")),t!=o))return new j(o,i);if(j.DEBUG)throw Error(a+"Not a"+(n?" base "+n:"")+" number: "+t);e.s=null}e.c=e.e=null},S.absoluteValue=S.abs=function(){var e=new j(this);return e.s<0&&(e.s=1),e},S.comparedTo=function(e,t){return c(this,new j(e,t))},S.decimalPlaces=S.dp=function(e,t){var r,n,i;if(null!=e)return f(e,0,1e9),null==t?t=_:f(t,0,8),G(new j(this),e+this.e+1,t);if(!(r=this.c))return null;if(n=((i=r.length-1)-l(this.e/14))*14,i=r[i])for(;i%10==0;i/=10,n--);return n<0&&(n=0),n},S.dividedBy=S.div=function(e,t){return O(this,new j(e,t),B,_)},S.dividedToIntegerBy=S.idiv=function(e,t){return O(this,new j(e,t),0,1)},S.exponentiatedBy=S.pow=function(e,t){var r,o,s,l,u,c,f,g,p,d=this;if((e=new j(e)).c&&!e.isInteger())throw Error(a+"Exponent not an integer: "+V(e));if(null!=t&&(t=new j(t)),c=e.e>14,!d.c||!d.c[0]||1==d.c[0]&&!d.e&&1==d.c.length||!e.c||!e.c[0])return p=new j(Math.pow(+V(d),c?e.s*(2-h(e)):+V(e))),t?p.mod(t):p;if(f=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new j(NaN);(o=!f&&d.isInteger()&&t.isInteger())&&(d=d.mod(t))}else{if(e.e>9&&(d.e>0||d.e<-1||(0==d.e?d.c[0]>1||c&&d.c[1]>=24e7:d.c[0]<8e13||c&&d.c[0]<=9999975e7)))return l=d.s<0&&h(e)?-0:0,d.e>-1&&(l=1/l),new j(f?1/l:l);L&&(l=n(L/14+2))}for(c?(r=new j(.5),f&&(e.s=1),g=h(e)):g=(s=Math.abs(+V(e)))%2,p=new j($);;){if(g){if(!(p=p.times(d)).c)break;l?p.c.length>l&&(p.c.length=l):o&&(p=p.mod(t))}if(s){if(0===(s=i(s/2)))break;g=s%2}else if(G(e=e.times(r),e.e+1,1),e.e>14)g=h(e);else{if(0==(s=+V(e)))break;g=s%2}d=d.times(d),l?d.c&&d.c.length>l&&(d.c.length=l):o&&(d=d.mod(t))}return o?p:(f&&(p=$.div(p)),t?p.mod(t):l?G(p,L,_,u):p)},S.integerValue=function(e){var t=new j(this);return null==e?e=_:f(e,0,8),G(t,t.e+1,e)},S.isEqualTo=S.eq=function(e,t){return 0===c(this,new j(e,t))},S.isFinite=function(){return!!this.c},S.isGreaterThan=S.gt=function(e,t){return c(this,new j(e,t))>0},S.isGreaterThanOrEqualTo=S.gte=function(e,t){return 1===(t=c(this,new j(e,t)))||0===t},S.isInteger=function(){return!!this.c&&l(this.e/14)>this.c.length-2},S.isLessThan=S.lt=function(e,t){return 0>c(this,new j(e,t))},S.isLessThanOrEqualTo=S.lte=function(e,t){return -1===(t=c(this,new j(e,t)))||0===t},S.isNaN=function(){return!this.s},S.isNegative=function(){return this.s<0},S.isPositive=function(){return this.s>0},S.isZero=function(){return!!this.c&&0==this.c[0]},S.minus=function(e,t){var r,n,i,a,o=this.s;if(t=(e=new j(e,t)).s,!o||!t)return new j(NaN);if(o!=t)return e.s=-t,this.plus(e);var s=this.e/14,u=e.e/14,c=this.c,f=e.c;if(!s||!u){if(!c||!f)return c?(e.s=-t,e):new j(f?this:NaN);if(!c[0]||!f[0])return f[0]?(e.s=-t,e):new j(c[0]?this:3==_?-0:0)}if(s=l(s),u=l(u),c=c.slice(),o=s-u){for((a=o<0)?(o=-o,i=c):(u=s,i=f),i.reverse(),t=o;t--;i.push(0));i.reverse()}else for(n=(a=(o=c.length)<(t=f.length))?o:t,o=t=0;t<n;t++)if(c[t]!=f[t]){a=c[t]<f[t];break}if(a&&(i=c,c=f,f=i,e.s=-e.s),(t=(n=f.length)-(r=c.length))>0)for(;t--;c[r++]=0);for(t=1e14-1;n>o;){if(c[--n]<f[n]){for(r=n;r&&!c[--r];c[r]=t);--c[r],c[n]+=1e14}c[n]-=f[n]}for(;0==c[0];c.splice(0,1),--u);return c[0]?I(e,c,u):(e.s=3==_?-1:1,e.c=[e.e=0],e)},S.modulo=S.mod=function(e,t){var r,n;return(e=new j(e,t),this.c&&e.s&&(!e.c||e.c[0]))?e.c&&(!this.c||this.c[0])?(9==M?(n=e.s,e.s=1,r=O(this,e,0,3),e.s=n,r.s*=n):r=O(this,e,0,M),(e=this.minus(r.times(e))).c[0]||1!=M||(e.s=this.s),e):new j(this):new j(NaN)},S.multipliedBy=S.times=function(e,t){var r,n,i,a,o,s,u,c,f,h,g,p,d,m=this.c,y=(e=new j(e,t)).c;if(!m||!y||!m[0]||!y[0])return this.s&&e.s&&(!m||m[0]||y)&&(!y||y[0]||m)?(e.s*=this.s,m&&y?(e.c=[0],e.e=0):e.c=e.e=null):e.c=e.e=e.s=null,e;for(n=l(this.e/14)+l(e.e/14),e.s*=this.s,(u=m.length)<(h=y.length)&&(d=m,m=y,y=d,i=u,u=h,h=i),i=u+h,d=[];i--;d.push(0));for(i=h;--i>=0;){for(r=0,g=y[i]%1e7,p=y[i]/1e7|0,a=i+(o=u);a>i;)s=p*(c=m[--o]%1e7)+(f=m[o]/1e7|0)*g,r=((c=g*c+s%1e7*1e7+d[a]+r)/1e14|0)+(s/1e7|0)+p*f,d[a--]=c%1e14;d[a]=r}return r?++n:d.splice(0,1),I(e,d,n)},S.negated=function(){var e=new j(this);return e.s=-e.s||null,e},S.plus=function(e,t){var r,n=this.s;if(t=(e=new j(e,t)).s,!n||!t)return new j(NaN);if(n!=t)return e.s=-t,this.minus(e);var i=this.e/14,a=e.e/14,o=this.c,s=e.c;if(!i||!a){if(!o||!s)return new j(n/0);if(!o[0]||!s[0])return s[0]?e:new j(o[0]?this:0*n)}if(i=l(i),a=l(a),o=o.slice(),n=i-a){for(n>0?(a=i,r=s):(n=-n,r=o),r.reverse();n--;r.push(0));r.reverse()}for((n=o.length)-(t=s.length)<0&&(r=s,s=o,o=r,t=n),n=0;t;)n=(o[--t]=o[t]+s[t]+n)/1e14|0,o[t]=1e14===o[t]?0:o[t]%1e14;return n&&(o=[n].concat(o),++a),I(e,o,a)},S.precision=S.sd=function(e,t){var r,n,i;if(null!=e&&!!e!==e)return f(e,1,1e9),null==t?t=_:f(t,0,8),G(new j(this),e,t);if(!(r=this.c))return null;if(n=14*(i=r.length-1)+1,i=r[i]){for(;i%10==0;i/=10,n--);for(i=r[0];i>=10;i/=10,n++);}return e&&this.e+1>n&&(n=this.e+1),n},S.shiftedBy=function(e){return f(e,-0x1fffffffffffff,0x1fffffffffffff),this.times("1e"+e)},S.squareRoot=S.sqrt=function(){var e,t,r,n,i,a=this.c,o=this.s,s=this.e,c=B+4,f=new j("0.5");if(1!==o||!a||!a[0])return new j(!o||o<0&&(!a||a[0])?NaN:a?this:1/0);if(0==(o=Math.sqrt(+V(this)))||o==1/0?(((t=u(a)).length+s)%2==0&&(t+="0"),o=Math.sqrt(+t),s=l((s+1)/2)-(s<0||s%2),r=new j(t=o==1/0?"5e"+s:(t=o.toExponential()).slice(0,t.indexOf("e")+1)+s)):r=new j(o+""),r.c[0]){for((o=(s=r.e)+c)<3&&(o=0);;)if(i=r,r=f.times(i.plus(O(this,i,c,1))),u(i.c).slice(0,o)===(t=u(r.c)).slice(0,o)){if(r.e<s&&--o,"9999"!=(t=t.slice(o-3,o+1))&&(n||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(G(r,r.e+B+2,1),e=!r.times(r).eq(this));break}if(!n&&(G(i,i.e+B+2,0),i.times(i).eq(this))){r=i;break}c+=4,o+=4,n=1}}return G(r,r.e+B+1,_,e)},S.toExponential=function(e,t){return null!=e&&(f(e,0,1e9),e++),R(this,e,t,1)},S.toFixed=function(e,t){return null!=e&&(f(e,0,1e9),e=e+this.e+1),R(this,e,t)},S.toFormat=function(e,t,r){var n;if(null==r)null!=e&&t&&"object"==typeof t?(r=t,t=null):e&&"object"==typeof e?(r=e,e=t=null):r=C;else if("object"!=typeof r)throw Error(a+"Argument not an object: "+r);if(n=this.toFixed(e,t),this.c){var i,o=n.split("."),s=+r.groupSize,l=+r.secondaryGroupSize,u=r.groupSeparator||"",c=o[0],f=o[1],h=this.s<0,g=h?c.slice(1):c,p=g.length;if(l&&(i=s,s=l,l=i,p-=i),s>0&&p>0){for(i=p%s||s,c=g.substr(0,i);i<p;i+=s)c+=u+g.substr(i,s);l>0&&(c+=u+g.slice(i)),h&&(c="-"+c)}n=f?c+(r.decimalSeparator||"")+((l=+r.fractionGroupSize)?f.replace(RegExp("\\d{"+l+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):f):c}return(r.prefix||"")+n+(r.suffix||"")},S.toFraction=function(e){var t,r,n,i,o,l,c,f,h,g,p,d,m=this.c;if(null!=e&&(!(c=new j(e)).isInteger()&&(c.c||1!==c.s)||c.lt($)))throw Error(a+"Argument "+(c.isInteger()?"out of range: ":"not an integer: ")+V(c));if(!m)return new j(this);for(t=new j($),h=r=new j($),n=f=new j($),d=u(m),o=t.e=d.length-this.e-1,t.c[0]=s[(l=o%14)<0?14+l:l],e=!e||c.comparedTo(t)>0?o>0?t:h:c,l=k,k=1/0,c=new j(d),f.c[0]=0;g=O(c,t,0,1),1!=(i=r.plus(g.times(n))).comparedTo(e);)r=n,n=i,h=f.plus(g.times(i=h)),f=i,t=c.minus(g.times(i=t)),c=i;return i=O(e.minus(r),n,0,1),f=f.plus(i.times(h)),r=r.plus(i.times(n)),f.s=h.s=this.s,o*=2,p=1>O(h,n,o,_).minus(this).abs().comparedTo(O(f,r,o,_).minus(this).abs())?[h,n]:[f,r],k=l,p},S.toNumber=function(){return+V(this)},S.toPrecision=function(e,t){return null!=e&&f(e,1,1e9),R(this,e,t,2)},S.toString=function(e){var t,r=this,n=r.s,i=r.e;return null===i?n?(t="Infinity",n<0&&(t="-"+t)):t="NaN":(null==e?t=i<=D||i>=E?g(u(r.c),i):p(u(r.c),i,"0"):10===e&&T?t=p(u((r=G(new j(r),B+i+1,_)).c),r.e,"0"):(f(e,2,P.length,"Base"),t=x(p(u(r.c),i,"0"),10,e,n,!0)),n<0&&r.c[0]&&(t="-"+t)),t},S.valueOf=S.toJSON=function(){return V(this)},S._isBigNumber=!0,null!=t&&j.set(t),j}()).default=t.BigNumber=t,m.exports?m.exports=t:(e||(e="u">typeof self&&self?self:window),e.BigNumber=t)})(f);var y=m.exports;let b=d(),v=g(),w={trillion:1e12,billion:1e9,million:1e6,thousand:1e3},O={totalLength:0,characteristic:0,forceAverage:!1,average:!1,mantissa:-1,optionalMantissa:!0,thousandSeparated:!1,spaceSeparated:!1,negative:"sign",forceSign:!1,roundingFunction:Math.round,spaceSeparatedAbbreviation:!1},{binarySuffixes:x,decimalSuffixes:N}=b.currentBytes(),S={scale:1024,suffixes:N,marker:"bd"},$={scale:1024,suffixes:x,marker:"b"},B={scale:1e3,suffixes:N,marker:"d"};function _(e,t,r){let n=t[0],i=Math.abs(e);if(i>=r){for(let a=1;a<t.length;++a){let o=Math.pow(r,a),s=Math.pow(r,a+1);if(i>=o&&i<s){n=t[a],e/=o;break}}n===t[0]&&(e/=Math.pow(r,t.length-1),n=t[t.length-1])}return{value:e,suffix:n}}function D(e){let t="";for(let r=0;r<e;r++)t+="0";return t}function E({instance:e,providedFormat:t,state:r=b,decimalSeparator:n,defaults:i=r.currentDefaults()}){var a,o,s,l,u;let c,f,h,g,p,d,m,v=e._value;if(0===v&&r.hasZeroFormat())return r.getZeroFormat();if(!isFinite(v))return v.toString();let x=Object.assign({},O,i,t),N=x.totalLength,S=N?0:x.characteristic,$=x.optionalCharacteristic,B=x.forceAverage,_=x.lowPrecision,A=!!N||!!B||x.average,k=N?-1:A&&void 0===t.mantissa?0:x.mantissa,F=!N&&(void 0===t.optionalMantissa?-1===k:x.optionalMantissa),M=x.trimMantissa,L=x.thousandSeparated,C=x.spaceSeparated,P=x.negative,T=x.forceSign,j=x.exponential,R=x.roundingFunction,U="";if(A){let e=function({value:e,forceAverage:t,lowPrecision:r=!0,abbreviations:n,spaceSeparated:i=!1,totalLength:a=0,roundingFunction:o=Math.round}){let s="",l=Math.abs(e),u=-1;if(t&&n[t]&&w[t]?(s=n[t],e/=w[t]):l>=w.trillion||r&&1===o(l/w.trillion)?(s=n.trillion,e/=w.trillion):l<w.trillion&&l>=w.billion||r&&1===o(l/w.billion)?(s=n.billion,e/=w.billion):l<w.billion&&l>=w.million||r&&1===o(l/w.million)?(s=n.million,e/=w.million):(l<w.million&&l>=w.thousand||r&&1===o(l/w.thousand))&&(s=n.thousand,e/=w.thousand),s&&(s=(i?" ":"")+s),a){let t=e<0,r=e.toString().split(".")[0];u=Math.max(a-(t?r.length-1:r.length),0)}return{value:e,abbreviation:s,mantissaPrecision:u}}({value:v,forceAverage:B,lowPrecision:_,abbreviations:r.currentAbbreviations(),spaceSeparated:C,roundingFunction:R,totalLength:N});v=e.value,U+=e.abbreviation,N&&(k=e.mantissaPrecision)}if(j){let e=function({value:e,characteristicPrecision:t}){let[r,n]=e.toExponential().split("e"),i=+r;return t&&1<t&&(i*=Math.pow(10,t-1),n-=t-1,n=n>=0?`+${n}`:n),{value:i,abbreviation:`e${n}`}}({value:v,characteristicPrecision:S});v=e.value,U=e.abbreviation+U}let I=function(e,t,r,n,i,a){if(-1===n)return e;let o=function(e,t,r=Math.round){return -1!==e.toString().indexOf("e")?function(e,t){let r=e.toString(),[n,i]=r.split("e"),[a,o=""]=n.split(".");if(+i>0)r=a+o+D(i-o.length);else{let e=".";e=0>+a?`-0${e}`:`0${e}`;let n=(D(-i-1)+Math.abs(a)+o).substr(0,t);n.length<t&&(n+=D(t-n.length)),r=e+n}return+i>0&&t>0&&(r+=`.${D(t)}`),r}(e,t):new y(r(+`${e}e+${t}`)/Math.pow(10,t)).toFixed(t)}(t,n,a),[s,l=""]=o.toString().split(".");if(l.match(/^0+$/)&&(r||i))return s;let u=l.match(/0+$/);return i&&u?`${s}.${l.toString().slice(0,u.index)}`:o.toString()}(v.toString(),v,F,k,M,R);return a=I=function(e,t,r,n){let i=e,[a,o]=i.toString().split(".");if(a.match(/^-?0$/)&&r)return o?`${a.replace("0","")}.${o}`:a.replace("0","");let s=t<0&&0===a.indexOf("-");if(s&&(a=a.slice(1),i=i.slice(1)),a.length<n){let e=n-a.length;for(let t=0;t<e;t++)i=`0${i}`}return s&&(i=`-${i}`),i.toString()}(I,v,$,S),o=v,s=n,f=(c=r.currentDelimiters()).thousands,s=s||c.decimal,h=c.thousandsSize||3,p=(g=a.toString()).split(".")[0],d=g.split(".")[1],m=o<0&&0===p.indexOf("-"),L&&(m&&(p=p.slice(1)),(function(e,t){let r=[],n=0;for(let i=e;i>0;i--)n===t&&(r.unshift(i),n=0),n++;return r})(p.length,h).forEach((e,t)=>{p=p.slice(0,e+t)+f+p.slice(e+t)}),m&&(p=`-${p}`)),I=g=d?p+s+d:p,(A||j)&&(I+=U),(T||v<0)&&(l=I,I=0===(u=v)?l:0==+l?l.replace("-",""):u>0?`+${l}`:"sign"===P?l:`(${l.replace("-","")})`),I}function A(e,t){if(!e)return t;let r=Object.keys(e);return 1===r.length&&"output"===r[0]?t:e}function k(e,t,r){let n=new y(e._value),i=t;return r.isNumbro(t)&&(i=t._value),i=new y(i),e._value=n.minus(i).toNumber(),e}let F=d(),M=g(),L={loadLanguagesInNode:e=>{e.forEach(e=>{let t;try{t=function(e){throw Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}(`../languages/${e}`)}catch(t){console.error(`Unable to load "${e}". No matching language file found.`)}t&&U.registerLanguage(t)})}},C=h(),P={format:(...e)=>(function(e,t={},r){if("string"==typeof t&&(t=p(t)),!v.validateFormat(t))return"ERROR: invalid format";let n=t.prefix||"",i=t.postfix||"",a=function(e,t,r){var n,i,a;switch(t.output){case"currency":let o,s,l,u,c,f,h,g,p,d;return n=t=A(t,b.currentCurrencyDefaultFormat()),o=b.currentCurrency(),l=Object.assign({},O,s=Object.assign({},n)),c="",f=!!l.totalLength||!!l.forceAverage||l.average,h=s.currencyPosition||o.position,g=s.currencySymbol||o.symbol,p=void 0!==l.spaceSeparatedCurrency?l.spaceSeparatedCurrency:l.spaceSeparated,void 0===s.lowPrecision&&(s.lowPrecision=!1),p&&(c=" "),"infix"===h&&(u=c+g+c),d=E({instance:e,providedFormat:s,state:b,decimalSeparator:u}),"prefix"===h&&(d=e._value<0&&"sign"===l.negative?`-${c}${g}${d.slice(1)}`:e._value>0&&l.forceSign?`+${c}${g}${d.slice(1)}`:g+c+d),h&&"postfix"!==h||(d=d+(c=!l.spaceSeparatedAbbreviation&&f?"":c)+g),d;case"percent":let m,y,v;return i=t=A(t,b.currentPercentageDefaultFormat()),m=i.prefixSymbol,y=E({instance:r(100*e._value),providedFormat:i,state:b}),v=Object.assign({},O,i),m?`%${v.spaceSeparated?" ":""}${y}`:`${y}${v.spaceSeparated?" ":""}%`;case"byte":return function(e,t,r,n){let i=t.base||"binary",a=Object.assign({},O,t),{binarySuffixes:o,decimalSuffixes:s}=r.currentBytes(),l={general:{scale:1024,suffixes:s||N,marker:"bd"},binary:{scale:1024,suffixes:o||x,marker:"b"},decimal:{scale:1e3,suffixes:s||N,marker:"d"}}[i],{value:u,suffix:c}=_(e._value,l.suffixes,l.scale),f=E({instance:n(u),providedFormat:t,state:r,defaults:r.currentByteDefaultFormat()});return`${f}${a.spaceSeparated?" ":""}${c}`}(e,t=A(t,b.currentByteDefaultFormat()),b,r);case"time":let w,S,$;return t=A(t,b.currentTimeDefaultFormat()),w=Math.floor(e._value/60/60),S=Math.floor((e._value-60*w*60)/60),$=Math.round(e._value-60*w*60-60*S),`${w}:${S<10?"0":""}${S}:${$<10?"0":""}${$}`;case"ordinal":let B,D,k,F;return a=t=A(t,b.currentOrdinalDefaultFormat()),B=b.currentOrdinal(),D=Object.assign({},O,a),k=E({instance:e,providedFormat:a,state:b}),F=B(e._value),`${k}${D.spaceSeparated?" ":""}${F}`;default:return E({instance:e,providedFormat:t,numbro:r})}}(e,t,r);return(a=n+a)+i})(...e,U),getByteUnit:(...e)=>(function(e){return _(e._value,S.suffixes,S.scale).suffix})(...e),getBinaryByteUnit:(...e)=>(function(e){return _(e._value,$.suffixes,$.scale).suffix})(...e),getDecimalByteUnit:(...e)=>(function(e){return _(e._value,B.suffixes,B.scale).suffix})(...e),formatOrDefault:A},T={add:(e,t)=>{let r,n;return r=new y(e._value),n=t,U.isNumbro(t)&&(n=t._value),n=new y(n),e._value=r.plus(n).toNumber(),e},subtract:(e,t)=>k(e,t,U),multiply:(e,t)=>{let r,n;return r=new y(e._value),n=t,U.isNumbro(t)&&(n=t._value),n=new y(n),e._value=r.times(n).toNumber(),e},divide:(e,t)=>{let r,n;return r=new y(e._value),n=t,U.isNumbro(t)&&(n=t._value),n=new y(n),e._value=r.dividedBy(n).toNumber(),e},set:(e,t)=>{let r;return r=t,U.isNumbro(t)&&(r=t._value),e._value=r,e},difference:(e,t)=>{let r;return k(r=U(e._value),t,U),Math.abs(r._value)},BigNumber:y};class j{constructor(e){this._value=e}clone(){return U(this._value)}format(e={}){return P.format(this,e)}formatCurrency(e){return"string"==typeof e&&(e=p(e)),(e=P.formatOrDefault(e,F.currentCurrencyDefaultFormat())).output="currency",P.format(this,e)}formatTime(e={}){return e.output="time",P.format(this,e)}binaryByteUnits(){return P.getBinaryByteUnit(this)}decimalByteUnits(){return P.getDecimalByteUnit(this)}byteUnits(){return P.getByteUnit(this)}difference(e){return T.difference(this,e)}add(e){return T.add(this,e)}subtract(e){return T.subtract(this,e)}multiply(e){return T.multiply(this,e)}divide(e){return T.divide(this,e)}set(e){return T.set(this,R(e))}value(){return this._value}valueOf(){return this._value}}function R(e){let t=e;return U.isNumbro(e)?t=e._value:"string"==typeof e?t=U.unformat(e):isNaN(e)&&(t=NaN),t}function U(e){return new j(R(e))}U.version="2.5.0",U.isNumbro=function(e){return e instanceof j},U.language=F.currentLanguage,U.registerLanguage=F.registerLanguage,U.setLanguage=F.setLanguage,U.languages=F.languages,U.languageData=F.languageData,U.zeroFormat=F.setZeroFormat,U.defaultFormat=F.currentDefaults,U.setDefaults=F.setDefaults,U.defaultCurrencyFormat=F.currentCurrencyDefaultFormat,U.validate=M.validate,U.loadLanguagesInNode=L.loadLanguagesInNode,U.unformat=C.unformat,U.BigNumber=T.BigNumber;var I=U&&U.__esModule&&Object.prototype.hasOwnProperty.call(U,"default")?U.default:U},2192(e,t,r){var n=r(70451),i=Symbol.for("react.element"),a=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,s=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,r){var n,a={},u=null,c=null;for(n in void 0!==r&&(u=""+r),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)o.call(t,n)&&!l.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===a[n]&&(a[n]=t[n]);return{$$typeof:i,type:e,key:u,ref:c,props:a,_owner:s.current}}t.Fragment=a,t.jsx=u,t.jsxs=u},62540(e,t,r){e.exports=r(2192)}}]);