@vizzly/dashboard 0.14.4-dev-97acb8d43347ac757049612930b3f8e69e913e55 → 0.14.4-dev-452014891c726bda8e71210563e32bb225b30c86

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 (26) hide show
  1. package/dist/charts/src/v2/components/Axis/AxisLeft.d.ts +2 -1
  2. package/dist/charts/src/v2/components/BarChart/BarChart.d.ts +18 -2
  3. package/dist/charts/src/v2/components/BarChart/useBarXScale.d.ts +2 -0
  4. package/dist/charts/src/v2/components/ComboChart/ComboChart.d.ts +22 -0
  5. package/dist/charts/src/v2/components/Legend/Legend.d.ts +7 -5
  6. package/dist/charts/src/v2/components/LineChart/LineChart.d.ts +16 -1
  7. package/dist/charts/src/v2/components/Tooltip/Tooltip.d.ts +6 -4
  8. package/dist/charts/src/v2/components/WaterfallChart/Legend.d.ts +3 -1
  9. package/dist/charts/src/v2/components/WaterfallChart/WaterfallChart.d.ts +3 -1
  10. package/dist/charts/src/v2/components/hooks/useFlattenedData.d.ts +3 -8
  11. package/dist/charts/src/v2/components/hooks/useYScale.d.ts +2 -0
  12. package/dist/charts/src/v2/constants/PADDING.d.ts +4 -0
  13. package/dist/charts/src/v2/{components/BarChart → utils}/getBarFill.d.ts +2 -2
  14. package/dist/dashboard/src/contexts/GlobalProvider/useGlobalProvider.d.ts +12 -12
  15. package/dist/dashboard.cjs.development.js +435 -344
  16. package/dist/dashboard.cjs.production.min.js +1 -1
  17. package/dist/dashboard.esm.js +440 -349
  18. package/dist/shared-logic/src/ChartsV2/types.d.ts +8 -7
  19. package/dist/shared-logic/src/ComboChartV2/types.d.ts +15 -0
  20. package/dist/shared-logic/src/Component/types.d.ts +2 -0
  21. package/dist/shared-logic/src/ComponentInterface/types/namespaces.types.d.ts +1 -0
  22. package/dist/shared-logic/src/FeatureToggle/types.d.ts +0 -3
  23. package/dist/shared-logic/src/FormatPanelConfig/types.d.ts +2 -1
  24. package/dist/shared-ui/src/library/StylePanel/WaterfallColorsSection.d.ts +7 -0
  25. package/package.json +1 -1
  26. package/dist/charts/src/v2/components/WaterfallChart/getBarFill.d.ts +0 -5
@@ -28,13 +28,13 @@ import { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/elemen
28
28
  import { dropTargetForExternal } from '@atlaskit/pragmatic-drag-and-drop/external/adapter';
29
29
  import { DropIndicator } from '@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box';
30
30
  import { ParentSize } from '@visx/responsive';
31
- import { Annotation, AnnotationConnector, AnnotationLabel, DataContext, buildChartTheme, lightTheme, XYChart, Grid as Grid$2, Axis, AreaSeries, AreaStack, BarGroup, BarSeries, BarStack, GlyphSeries, LineSeries, Tooltip as Tooltip$3 } from '@visx/xychart';
31
+ import { Annotation, AnnotationConnector, AnnotationLabel, DataContext, buildChartTheme, lightTheme, XYChart, Grid as Grid$2, Axis, AreaSeries, AreaStack, BarGroup as BarGroup$1, BarSeries, BarStack, GlyphSeries, LineSeries, Tooltip as Tooltip$3 } from '@visx/xychart';
32
32
  import { LinearGradient } from '@visx/gradient';
33
33
  import { LegendItem as LegendItem$1, LegendLabel } from '@visx/legend';
34
- import { scaleOrdinal, scaleQuantize, scalePoint, scaleTime, scaleLinear, scaleBand } from '@visx/scale';
34
+ import { scaleOrdinal, scaleQuantize, scaleLinear, scalePoint, scaleTime, scaleBand } from '@visx/scale';
35
35
  import Ordinal from '@visx/legend/lib/legends/Ordinal';
36
36
  import { curveNatural, curveMonotoneX, curveMonotoneY, curveLinear, curveStep, curveStepBefore, curveStepAfter } from '@visx/curve';
37
- import { Line as Line$1, LinePath, BarGroup as BarGroup$1, BarStack as BarStack$1, AreaStack as AreaStack$1, AreaClosed, LineRadial } from '@visx/shape';
37
+ import { Line as Line$1, LinePath, BarStack as BarStack$1, BarGroup as BarGroup$2, AreaStack as AreaStack$1, AreaClosed, LineRadial } from '@visx/shape';
38
38
  import { Mercator, Graticule } from '@visx/geo';
39
39
  import { feature } from 'topojson-client';
40
40
  import ParentSize$1 from '@visx/responsive/lib/components/ParentSize';
@@ -1550,7 +1550,7 @@ var upcastFilterType = function upcastFilterType(type) {
1550
1550
  if (type === 'dateTimeFilter') {
1551
1551
  return DATE_FILTER;
1552
1552
  }
1553
- if (type === 'numericFilter' || type === 'multiSelectFilter') {
1553
+ if (type === 'numericFilter') {
1554
1554
  return ADVANCED_FILTER;
1555
1555
  }
1556
1556
  return type;
@@ -10009,7 +10009,9 @@ var attributesSchema$h = function attributesSchema(config) {
10009
10009
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
10010
10010
  axisTitles: axisTitleSchema(),
10011
10011
  headline: headlineSchema(),
10012
- tags: tagsSchema()
10012
+ tags: tagsSchema(),
10013
+ increaseColor: Joi.string().required(),
10014
+ decreaseColor: Joi.string().required()
10013
10015
  }));
10014
10016
  };
10015
10017
 
@@ -10173,6 +10175,11 @@ var CONSTANTS$j = {
10173
10175
  type: 'headline',
10174
10176
  title: 'Headline',
10175
10177
  description: ''
10178
+ },
10179
+ waterfall_colors: {
10180
+ type: 'waterfallColors',
10181
+ title: 'Color selector',
10182
+ description: ''
10176
10183
  }
10177
10184
  }
10178
10185
  };
@@ -10212,6 +10219,8 @@ var WaterfallChart = function WaterfallChart(config) {
10212
10219
  axisTitles: dumped.axisTitles,
10213
10220
  displaySubject: dumped.displaySubject,
10214
10221
  displayTitle: dumped.displayTitle,
10222
+ increaseColor: dumped.increaseColor,
10223
+ decreaseColor: dumped.decreaseColor,
10215
10224
  protectedByOrganisation: dumped.protectedByOrganisation,
10216
10225
  type: dumped.type,
10217
10226
  offset: dumped.offset
@@ -10246,6 +10255,8 @@ var WaterfallChart = function WaterfallChart(config) {
10246
10255
  parameters: {},
10247
10256
  axisTitles: undefined,
10248
10257
  headline: undefined,
10258
+ increaseColor: '#00FF00',
10259
+ decreaseColor: '#FF0000',
10249
10260
  tags: [],
10250
10261
  approxXAxisLabelCount: 'auto',
10251
10262
  approxYAxisLabelCount: 'auto'
@@ -10300,7 +10311,7 @@ var WaterfallChart = function WaterfallChart(config) {
10300
10311
  }), namespace(CONSTANTS$j, 'sort'), namespace(CONSTANTS$j, 'filter'), namespace(CONSTANTS$j, 'custom_metrics'), namespace(CONSTANTS$j, 'limit')];
10301
10312
  },
10302
10313
  formatPanelConfig: function formatPanelConfig() {
10303
- return [headingConstant(CONSTANTS$j), chartStylesConstant(CONSTANTS$j, false, false), axisLabelsConstants(CONSTANTS$j)];
10314
+ return [headingConstant(CONSTANTS$j), namespace(CONSTANTS$j, 'waterfall_colors'), chartStylesConstant(CONSTANTS$j, false, false), axisLabelsConstants(CONSTANTS$j)];
10304
10315
  },
10305
10316
  supportedCustomFields: {
10306
10317
  percentages: true,
@@ -13767,8 +13778,7 @@ var ADMIN_FEATURE_TOGGLES = {
13767
13778
  forceMobile: false,
13768
13779
  unloadOffScreenViews: false,
13769
13780
  showSavingIndicator: false,
13770
- disablePersistingGlobalFiltersLocally: false,
13771
- simpleMultiSelectFilter: false
13781
+ disablePersistingGlobalFiltersLocally: false
13772
13782
  };
13773
13783
  var END_USER_DEFAULT_FEATURE_TOGGLES = {
13774
13784
  parameters: true,
@@ -13805,8 +13815,7 @@ var END_USER_DEFAULT_FEATURE_TOGGLES = {
13805
13815
  forceMobile: false,
13806
13816
  unloadOffScreenViews: false,
13807
13817
  showSavingIndicator: true,
13808
- disablePersistingGlobalFiltersLocally: false,
13809
- simpleMultiSelectFilter: false
13818
+ disablePersistingGlobalFiltersLocally: false
13810
13819
  };
13811
13820
  var build$b = function build(partialFeatureToggles, queryEngineConfig, mode, scope) {
13812
13821
  var featureToggles = {};
@@ -13863,7 +13872,7 @@ var build$b = function build(partialFeatureToggles, queryEngineConfig, mode, sco
13863
13872
  return featureToggles;
13864
13873
  };
13865
13874
  var buildDefaults = function buildDefaults(partialFeatureToggles) {
13866
- var _partialFeatureToggle, _partialFeatureToggle2, _partialFeatureToggle3;
13875
+ var _partialFeatureToggle, _partialFeatureToggle2;
13867
13876
  return {
13868
13877
  showDateAndTimeFilter: partialFeatureToggles.showDateAndTimeFilter !== undefined ? partialFeatureToggles.showDateAndTimeFilter : true,
13869
13878
  showDateFilter: partialFeatureToggles.showDateFilter !== undefined ? partialFeatureToggles.showDateFilter : true,
@@ -13874,8 +13883,7 @@ var buildDefaults = function buildDefaults(partialFeatureToggles) {
13874
13883
  canDownloadViewAsPNG: partialFeatureToggles.canDownloadViewAsPNG !== undefined ? partialFeatureToggles.canDownloadViewAsPNG : true,
13875
13884
  forceMobile: partialFeatureToggles.forceMobile !== undefined ? partialFeatureToggles.forceMobile : false,
13876
13885
  unloadOffScreenViews: partialFeatureToggles.unloadOffScreenViews !== undefined ? partialFeatureToggles.unloadOffScreenViews : false,
13877
- allowCalculatedField: (_partialFeatureToggle2 = partialFeatureToggles.allowCalculatedField) != null ? _partialFeatureToggle2 : false,
13878
- simpleMultiSelectFilter: (_partialFeatureToggle3 = partialFeatureToggles.simpleMultiSelectFilter) != null ? _partialFeatureToggle3 : false
13886
+ allowCalculatedField: (_partialFeatureToggle2 = partialFeatureToggles.allowCalculatedField) != null ? _partialFeatureToggle2 : false
13879
13887
  };
13880
13888
  };
13881
13889
 
@@ -28875,8 +28883,7 @@ var AdditionalFilter = function AdditionalFilter(props) {
28875
28883
  onChange = props.onChange,
28876
28884
  shouldAlwaysHaveValue = props.shouldAlwaysHaveValue;
28877
28885
  var _useDashboardBehaviou = useDashboardBehaviourContext(),
28878
- queryEngineConfig = _useDashboardBehaviou.queryEngineConfig,
28879
- featureToggles = _useDashboardBehaviou.featureToggles;
28886
+ queryEngineConfig = _useDashboardBehaviou.queryEngineConfig;
28880
28887
 
28881
28888
  /** Validate the new filter before setting it */
28882
28889
  var onChangeWithValidation = function onChangeWithValidation(newFilter) {
@@ -28927,7 +28934,7 @@ var AdditionalFilter = function AdditionalFilter(props) {
28927
28934
  dataSets: props.dataSets
28928
28935
  }, typeof props.filter.value === 'boolean' ? undefined : JSON.stringify(props.filter.value));
28929
28936
  }
28930
- if (filter.type == MULTI_SELECT_FILTER && featureToggles.simpleMultiSelectFilter) {
28937
+ if (filter.type == MULTI_SELECT_FILTER) {
28931
28938
  return jsx(MultiSelectFilter, {
28932
28939
  showClearBtn: !shouldAlwaysHaveValue,
28933
28940
  filter: filter,
@@ -33157,7 +33164,7 @@ var VizzlyXYChart = function VizzlyXYChart(props) {
33157
33164
  }), (props == null ? void 0 : props.bars) && !props.bars.stacked && !(props != null && (_props$bars3 = props.bars) != null && _props$bars3.funnelChart) && jsxs(Fragment, {
33158
33165
  children: [props.enableHover && jsx("style", {
33159
33166
  children: "\n /* We need to find a more accurate way to target the rect element. */\n .vizzly-xy-chart > div > svg > rect {\n cursor: pointer;\n }"
33160
- }), jsx(BarGroup, {
33167
+ }), jsx(BarGroup$1, {
33161
33168
  children: props.bars.keys.map(function (key, keyIndex) {
33162
33169
  var _props$bars$styles$co, _props$bars4, _props$bars5;
33163
33170
  return jsx(BarSeries, _extends({
@@ -38117,13 +38124,11 @@ var AddFilterForm = function AddFilterForm(props) {
38117
38124
  value: SINGLE_SELECT_FILTER,
38118
38125
  subText: textOverride('single_select_filter_description', 'Choose a single option from the list to filter. ')
38119
38126
  }];
38120
- if (featureToggles.simpleMultiSelectFilter) {
38121
- filterTypes.push({
38122
- label: textOverride('multi_select', 'Multi select'),
38123
- value: MULTI_SELECT_FILTER,
38124
- subText: textOverride('multi_select_description', 'Allow multiple selections.')
38125
- });
38126
- }
38127
+ filterTypes.push({
38128
+ label: textOverride('multi_select', 'Multi select'),
38129
+ value: MULTI_SELECT_FILTER,
38130
+ subText: textOverride('multi_select_description', 'Allow multiple selections.')
38131
+ });
38127
38132
  filterTypes.push({
38128
38133
  label: textOverride('advanced_filter', 'Advanced filter'),
38129
38134
  value: ADVANCED_FILTER,
@@ -42354,16 +42359,14 @@ var SCROLLBAR_WIDTH = 40;
42354
42359
  var Tooltip$1 = function Tooltip(_ref) {
42355
42360
  var _tooltipData$xKey$for;
42356
42361
  var keys = _ref.keys,
42357
- legendItems = _ref.legendItems,
42358
42362
  showRoundedTotal = _ref.showRoundedTotal,
42359
42363
  tooltipData = _ref.tooltipData,
42360
42364
  tooltipLeft = _ref.tooltipLeft,
42361
42365
  tooltipTop = _ref.tooltipTop,
42362
- visibleYKeys = _ref.visibleYKeys,
42363
42366
  xKey = _ref.xKey,
42364
42367
  yKeys = _ref.yKeys,
42365
- conditionalFormattingRules = _ref.conditionalFormattingRules,
42366
- theme = _ref.theme;
42368
+ theme = _ref.theme,
42369
+ items = _ref.items;
42367
42370
  var tooltipRef = useRef(null);
42368
42371
  var _useState = useState({
42369
42372
  left: tooltipLeft
@@ -42412,7 +42415,7 @@ var Tooltip$1 = function Tooltip(_ref) {
42412
42415
  fontSize: '15px',
42413
42416
  width: '100%',
42414
42417
  minWidth: MIN_TOOLTIP_WIDTH
42415
- }, process.env.NODE_ENV === "production" ? "" : ";label:Tooltip;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGK0IiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBMZWdlbmRJdGVtQm94IH0gZnJvbSAnLi4vTGVnZW5kL0xlZ2VuZEl0ZW1Cb3gnO1xuaW1wb3J0IHsgU2hhcGVEZWZpbml0aW9uLCBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlLCBEYXRhSXRlbSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9MaW5lQ2hhcnRWMi90eXBlcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcblxuY29uc3QgTUlOX1RPT0xUSVBfV0lEVEggPSAxODA7XG5jb25zdCBUT09MVElQX09GRlNFVCA9IDIwO1xuY29uc3QgU0NST0xMQkFSX1dJRFRIID0gNDA7XG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAgICBrZXlzOiB7IFtrZXk6IHN0cmluZ106IEtleSB9O1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIHNob3dSb3VuZGVkVG90YWw6IGJvb2xlYW47XG4gICAgdG9vbHRpcERhdGE6IHtcbiAgICAgICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgICB9O1xuICAgIHRvb2x0aXBMZWZ0OiBudW1iZXI7XG4gICAgdG9vbHRpcFRvcDogbnVtYmVyO1xuICAgIHZpc2libGVZS2V5czogc3RyaW5nW107XG4gICAgeEtleTogc3RyaW5nO1xuICAgIHlLZXlzOiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogQXJyYXk8Q29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZT47XG4gICAgdGhlbWU6IENTU1Byb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBjb25zdCBUb29sdGlwID0gKHtcbiAgICBrZXlzLFxuICAgIGxlZ2VuZEl0ZW1zLFxuICAgIHNob3dSb3VuZGVkVG90YWwsXG4gICAgdG9vbHRpcERhdGEsXG4gICAgdG9vbHRpcExlZnQsXG4gICAgdG9vbHRpcFRvcCxcbiAgICB2aXNpYmxlWUtleXMsXG4gICAgeEtleSxcbiAgICB5S2V5cyxcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgICB0aGVtZSxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgbGVmdDogbnVtYmVyIH0+KHtcbiAgICAgICAgbGVmdDogdG9vbHRpcExlZnQsXG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBhZGp1c3RUb29sdGlwUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRvb2x0aXBSZWYuY3VycmVudDtcblxuICAgICAgICAgICAgaWYgKHRvb2x0aXBFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0b29sdGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IHJlY3Qud2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1JTl9UT09MVElQX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0gdG9vbHRpcExlZnQgKyBUT09MVElQX09GRlNFVDtcblxuICAgICAgICAgICAgICAgIGlmICh0b29sdGlwTGVmdCArIHdpZHRoID4gc2NyZWVuV2lkdGggLSBTQ1JPTExCQVJfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHRvb2x0aXBMZWZ0IC0gd2lkdGggLSBUT09MVElQX09GRlNFVDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgYWRqdXN0VG9vbHRpcFBvc2l0aW9uKCk7XG4gICAgfSwgW3Rvb2x0aXBMZWZ0XSk7XG5cbiAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uLmxlZnQsXG4gICAgICAgICAgICAgICAgdG9wOiB0b29sdGlwVG9wLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAgICAgICAgIC4uLnRoZW1lLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW3hLZXldLmZvcm1hdHRlZFZhbHVlID8/IHRvb2x0aXBEYXRhW3hLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICAgICAgICAgICAgY2VsbFNwYWNpbmc9ezB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyU3BhY2luZzogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sbGFwc2U6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsZWdlbmRJdGVtcy5tYXAoKGxlZ2VuZEl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8geUtleSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdG9vbHRpcERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVZS2V5cy5pbmNsdWRlcyhsZWdlbmRJdGVtLnlLZXkpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e2xlZ2VuZEl0ZW0ueUtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IGluZGV4ID09PSAwID8gJzEycHggOHB4IDAgMCcgOiAnOHB4IDhweCAwIDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMZWdlbmRJdGVtQm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17Z2V0Q29sb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvcjogbGVnZW5kSXRlbS5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5OiBsZWdlbmRJdGVtLnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtsZWdlbmRJdGVtLnN0eWxlIGFzIExpbmVTdHlsZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5PXtsZWdlbmRJdGVtLnlLZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnOHB4IDAgMCAxNnB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1JvdW5kZWRUb3RhbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sU3Bhbj17Mn0gc3R5bGU9e3sgcGFkZGluZzogJzEycHggMCAwIDAnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm91bmRlZCBUb3RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgTWF0aC5yb3VuZCh0b29sdGlwRGF0YVtrZXldLnZhbHVlIGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAwKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICk7XG59O1xuIl19 */"),
42418
+ }, process.env.NODE_ENV === "production" ? "" : ";label:Tooltip;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBGcUIiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUJveCB9IGZyb20gJy4uL0xlZ2VuZC9MZWdlbmRJdGVtQm94JztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgRGF0YUl0ZW0sIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5cbmNvbnN0IE1JTl9UT09MVElQX1dJRFRIID0gMTgwO1xuY29uc3QgVE9PTFRJUF9PRkZTRVQgPSAyMDtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgdG9vbHRpcERhdGE6IHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9O1xuICB0b29sdGlwTGVmdDogbnVtYmVyO1xuICB0b29sdGlwVG9wOiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeUtleXM6IHN0cmluZ1tdO1xuICBpdGVtczoge1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgICB2aXNpYmxlWUtleXM6IHN0cmluZ1tdO1xuICB9W107XG4gIHRoZW1lOiBDU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgVG9vbHRpcCA9ICh7XG4gIGtleXMsXG4gIHNob3dSb3VuZGVkVG90YWwsXG4gIHRvb2x0aXBEYXRhLFxuICB0b29sdGlwTGVmdCxcbiAgdG9vbHRpcFRvcCxcbiAgeEtleSxcbiAgeUtleXMsXG4gIHRoZW1lLFxuICBpdGVtcyxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGU8eyBsZWZ0OiBudW1iZXIgfT4oe1xuICAgIGxlZnQ6IHRvb2x0aXBMZWZ0LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFkanVzdFRvb2x0aXBQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICBjb25zdCByZWN0ID0gdG9vbHRpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHdpZHRoID0gcmVjdC53aWR0aDtcblxuICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgIHdpZHRoID0gTUlOX1RPT0xUSVBfV0lEVEg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVmdCA9IHRvb2x0aXBMZWZ0ICsgVE9PTFRJUF9PRkZTRVQ7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBMZWZ0ICsgd2lkdGggPiBzY3JlZW5XaWR0aCAtIFNDUk9MTEJBUl9XSURUSCkge1xuICAgICAgICAgIGxlZnQgPSB0b29sdGlwTGVmdCAtIHdpZHRoIC0gVE9PTFRJUF9PRkZTRVQ7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkanVzdFRvb2x0aXBQb3NpdGlvbigpO1xuICB9LCBbdG9vbHRpcExlZnRdKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxuICAgICAgICB0b3A6IHRvb2x0aXBUb3AsXG4gICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAuLi50aGVtZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dG9vbHRpcERhdGFbeEtleV0uZm9ybWF0dGVkVmFsdWUgPz8gdG9vbHRpcERhdGFbeEtleV0udmFsdWV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGFibGVcbiAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICBjZWxsU3BhY2luZz17MH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nzcyh7XG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgIGJvcmRlclNwYWNpbmc6ICcwJyxcbiAgICAgICAgICAgIGJvcmRlckNvbGxhcHNlOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcCgobGVnZW5kSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyB5S2V5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0b29sdGlwRGF0YVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlWUtleXM/LmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17bGVnZW5kSXRlbS55S2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogaW5kZXggPT09IDAgPyAnMTJweCA4cHggMCAwJyA6ICc4cHggOHB4IDAgMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbUJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2dldENvbG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yOiBsZWdlbmRJdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeUtleTogbGVnZW5kSXRlbS55S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogaXRlbS5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2xlZ2VuZEl0ZW0uc3R5bGUgYXMgTGluZVN0eWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlLZXk9e2xlZ2VuZEl0ZW0ueUtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZzogJzhweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgIHtzaG93Um91bmRlZFRvdGFsICYmIChcbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xTcGFuPXsyfSBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgICBSb3VuZGVkIFRvdGFsXG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCArIE1hdGgucm91bmQodG9vbHRpcERhdGFba2V5XS52YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgfSwgMCl9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59O1xuIl19 */"),
42416
42419
  children: (_tooltipData$xKey$for = tooltipData[xKey].formattedValue) != null ? _tooltipData$xKey$for : tooltipData[xKey].value
42417
42420
  }), jsx("table", {
42418
42421
  cellPadding: 0,
@@ -42423,45 +42426,51 @@ var Tooltip$1 = function Tooltip(_ref) {
42423
42426
  } : {
42424
42427
  name: "9a1sa-Tooltip",
42425
42428
  styles: "margin:0;border-spacing:0;border-collapse:inherit;border:none;label:Tooltip;",
42426
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdHK0IiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBMZWdlbmRJdGVtQm94IH0gZnJvbSAnLi4vTGVnZW5kL0xlZ2VuZEl0ZW1Cb3gnO1xuaW1wb3J0IHsgU2hhcGVEZWZpbml0aW9uLCBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlLCBEYXRhSXRlbSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9MaW5lQ2hhcnRWMi90eXBlcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcblxuY29uc3QgTUlOX1RPT0xUSVBfV0lEVEggPSAxODA7XG5jb25zdCBUT09MVElQX09GRlNFVCA9IDIwO1xuY29uc3QgU0NST0xMQkFSX1dJRFRIID0gNDA7XG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAgICBrZXlzOiB7IFtrZXk6IHN0cmluZ106IEtleSB9O1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIHNob3dSb3VuZGVkVG90YWw6IGJvb2xlYW47XG4gICAgdG9vbHRpcERhdGE6IHtcbiAgICAgICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgICB9O1xuICAgIHRvb2x0aXBMZWZ0OiBudW1iZXI7XG4gICAgdG9vbHRpcFRvcDogbnVtYmVyO1xuICAgIHZpc2libGVZS2V5czogc3RyaW5nW107XG4gICAgeEtleTogc3RyaW5nO1xuICAgIHlLZXlzOiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogQXJyYXk8Q29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZT47XG4gICAgdGhlbWU6IENTU1Byb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBjb25zdCBUb29sdGlwID0gKHtcbiAgICBrZXlzLFxuICAgIGxlZ2VuZEl0ZW1zLFxuICAgIHNob3dSb3VuZGVkVG90YWwsXG4gICAgdG9vbHRpcERhdGEsXG4gICAgdG9vbHRpcExlZnQsXG4gICAgdG9vbHRpcFRvcCxcbiAgICB2aXNpYmxlWUtleXMsXG4gICAgeEtleSxcbiAgICB5S2V5cyxcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgICB0aGVtZSxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgbGVmdDogbnVtYmVyIH0+KHtcbiAgICAgICAgbGVmdDogdG9vbHRpcExlZnQsXG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBhZGp1c3RUb29sdGlwUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRvb2x0aXBSZWYuY3VycmVudDtcblxuICAgICAgICAgICAgaWYgKHRvb2x0aXBFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0b29sdGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IHJlY3Qud2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1JTl9UT09MVElQX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0gdG9vbHRpcExlZnQgKyBUT09MVElQX09GRlNFVDtcblxuICAgICAgICAgICAgICAgIGlmICh0b29sdGlwTGVmdCArIHdpZHRoID4gc2NyZWVuV2lkdGggLSBTQ1JPTExCQVJfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHRvb2x0aXBMZWZ0IC0gd2lkdGggLSBUT09MVElQX09GRlNFVDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgYWRqdXN0VG9vbHRpcFBvc2l0aW9uKCk7XG4gICAgfSwgW3Rvb2x0aXBMZWZ0XSk7XG5cbiAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uLmxlZnQsXG4gICAgICAgICAgICAgICAgdG9wOiB0b29sdGlwVG9wLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAgICAgICAgIC4uLnRoZW1lLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW3hLZXldLmZvcm1hdHRlZFZhbHVlID8/IHRvb2x0aXBEYXRhW3hLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICAgICAgICAgICAgY2VsbFNwYWNpbmc9ezB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyU3BhY2luZzogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sbGFwc2U6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsZWdlbmRJdGVtcy5tYXAoKGxlZ2VuZEl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8geUtleSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdG9vbHRpcERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVZS2V5cy5pbmNsdWRlcyhsZWdlbmRJdGVtLnlLZXkpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e2xlZ2VuZEl0ZW0ueUtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IGluZGV4ID09PSAwID8gJzEycHggOHB4IDAgMCcgOiAnOHB4IDhweCAwIDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMZWdlbmRJdGVtQm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17Z2V0Q29sb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvcjogbGVnZW5kSXRlbS5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5OiBsZWdlbmRJdGVtLnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtsZWdlbmRJdGVtLnN0eWxlIGFzIExpbmVTdHlsZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5PXtsZWdlbmRJdGVtLnlLZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnOHB4IDAgMCAxNnB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1JvdW5kZWRUb3RhbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sU3Bhbj17Mn0gc3R5bGU9e3sgcGFkZGluZzogJzEycHggMCAwIDAnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm91bmRlZCBUb3RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgTWF0aC5yb3VuZCh0b29sdGlwRGF0YVtrZXldLnZhbHVlIGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAwKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICk7XG59O1xuIl19 */",
42429
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlHcUIiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUJveCB9IGZyb20gJy4uL0xlZ2VuZC9MZWdlbmRJdGVtQm94JztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgRGF0YUl0ZW0sIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5cbmNvbnN0IE1JTl9UT09MVElQX1dJRFRIID0gMTgwO1xuY29uc3QgVE9PTFRJUF9PRkZTRVQgPSAyMDtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgdG9vbHRpcERhdGE6IHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9O1xuICB0b29sdGlwTGVmdDogbnVtYmVyO1xuICB0b29sdGlwVG9wOiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeUtleXM6IHN0cmluZ1tdO1xuICBpdGVtczoge1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgICB2aXNpYmxlWUtleXM6IHN0cmluZ1tdO1xuICB9W107XG4gIHRoZW1lOiBDU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgVG9vbHRpcCA9ICh7XG4gIGtleXMsXG4gIHNob3dSb3VuZGVkVG90YWwsXG4gIHRvb2x0aXBEYXRhLFxuICB0b29sdGlwTGVmdCxcbiAgdG9vbHRpcFRvcCxcbiAgeEtleSxcbiAgeUtleXMsXG4gIHRoZW1lLFxuICBpdGVtcyxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGU8eyBsZWZ0OiBudW1iZXIgfT4oe1xuICAgIGxlZnQ6IHRvb2x0aXBMZWZ0LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFkanVzdFRvb2x0aXBQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICBjb25zdCByZWN0ID0gdG9vbHRpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHdpZHRoID0gcmVjdC53aWR0aDtcblxuICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgIHdpZHRoID0gTUlOX1RPT0xUSVBfV0lEVEg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVmdCA9IHRvb2x0aXBMZWZ0ICsgVE9PTFRJUF9PRkZTRVQ7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBMZWZ0ICsgd2lkdGggPiBzY3JlZW5XaWR0aCAtIFNDUk9MTEJBUl9XSURUSCkge1xuICAgICAgICAgIGxlZnQgPSB0b29sdGlwTGVmdCAtIHdpZHRoIC0gVE9PTFRJUF9PRkZTRVQ7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkanVzdFRvb2x0aXBQb3NpdGlvbigpO1xuICB9LCBbdG9vbHRpcExlZnRdKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxuICAgICAgICB0b3A6IHRvb2x0aXBUb3AsXG4gICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAuLi50aGVtZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dG9vbHRpcERhdGFbeEtleV0uZm9ybWF0dGVkVmFsdWUgPz8gdG9vbHRpcERhdGFbeEtleV0udmFsdWV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGFibGVcbiAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICBjZWxsU3BhY2luZz17MH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nzcyh7XG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgIGJvcmRlclNwYWNpbmc6ICcwJyxcbiAgICAgICAgICAgIGJvcmRlckNvbGxhcHNlOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcCgobGVnZW5kSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyB5S2V5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0b29sdGlwRGF0YVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlWUtleXM/LmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17bGVnZW5kSXRlbS55S2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogaW5kZXggPT09IDAgPyAnMTJweCA4cHggMCAwJyA6ICc4cHggOHB4IDAgMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbUJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2dldENvbG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yOiBsZWdlbmRJdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeUtleTogbGVnZW5kSXRlbS55S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogaXRlbS5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2xlZ2VuZEl0ZW0uc3R5bGUgYXMgTGluZVN0eWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlLZXk9e2xlZ2VuZEl0ZW0ueUtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZzogJzhweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgIHtzaG93Um91bmRlZFRvdGFsICYmIChcbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xTcGFuPXsyfSBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgICBSb3VuZGVkIFRvdGFsXG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCArIE1hdGgucm91bmQodG9vbHRpcERhdGFba2V5XS52YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgfSwgMCl9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59O1xuIl19 */",
42427
42430
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$5
42428
42431
  }),
42429
42432
  children: jsxs("tbody", {
42430
- children: [legendItems.map(function (legendItem, index) {
42431
- if (!tooltipData[legendItem.yKey] || tooltipData[legendItem.yKey].value === null) {
42432
- // yKey could not be found in tooltipData
42433
- return null;
42434
- }
42435
- return visibleYKeys.includes(legendItem.yKey) && jsxs("tr", {
42436
- children: [jsx("td", {
42437
- style: {
42438
- verticalAlign: 'middle',
42439
- padding: index === 0 ? '12px 8px 0 0' : '8px 8px 0 0',
42440
- width: 'auto'
42441
- },
42442
- children: jsx(LegendItemBox, {
42443
- color: getColor({
42444
- defaultColor: legendItem.color,
42445
- value: tooltipData[legendItem.yKey].value,
42446
- yKey: legendItem.yKey,
42447
- conditionalFormattingRules: conditionalFormattingRules
42448
- }),
42449
- style: legendItem.style,
42450
- yKey: legendItem.yKey
42451
- })
42452
- }), jsx("td", {
42453
- style: {
42454
- padding: '8px 0 0 0'
42455
- },
42456
- children: keys[legendItem.yKey].keyFormatted
42457
- }), jsx("td", {
42458
- style: {
42459
- fontWeight: 'bold',
42460
- padding: '8px 0 0 16px'
42461
- },
42462
- children: tooltipData[legendItem.yKey].formattedValue ? tooltipData[legendItem.yKey].formattedValue : tooltipData[legendItem.yKey].value
42463
- })]
42464
- }, legendItem.yKey);
42433
+ children: [items.map(function (item, index) {
42434
+ var _item$legendItems;
42435
+ return jsx(Fragment, {
42436
+ children: (_item$legendItems = item.legendItems) == null ? void 0 : _item$legendItems.map(function (legendItem, index) {
42437
+ var _item$visibleYKeys, _item$conditionalForm;
42438
+ if (!tooltipData[legendItem.yKey] || tooltipData[legendItem.yKey].value === null) {
42439
+ // yKey could not be found in tooltipData
42440
+ return null;
42441
+ }
42442
+ return ((_item$visibleYKeys = item.visibleYKeys) == null ? void 0 : _item$visibleYKeys.includes(legendItem.yKey)) && jsxs("tr", {
42443
+ children: [jsx("td", {
42444
+ style: {
42445
+ verticalAlign: 'middle',
42446
+ padding: index === 0 ? '12px 8px 0 0' : '8px 8px 0 0',
42447
+ width: 'auto'
42448
+ },
42449
+ children: jsx(LegendItemBox, {
42450
+ color: getColor({
42451
+ defaultColor: legendItem.color,
42452
+ value: tooltipData[legendItem.yKey].value,
42453
+ yKey: legendItem.yKey,
42454
+ conditionalFormattingRules: (_item$conditionalForm = item.conditionalFormattingRules) != null ? _item$conditionalForm : []
42455
+ }),
42456
+ style: legendItem.style,
42457
+ yKey: legendItem.yKey
42458
+ })
42459
+ }), jsx("td", {
42460
+ style: {
42461
+ padding: '8px 0 0 0'
42462
+ },
42463
+ children: keys[legendItem.yKey].keyFormatted
42464
+ }), jsx("td", {
42465
+ style: {
42466
+ fontWeight: 'bold',
42467
+ padding: '8px 0 0 16px'
42468
+ },
42469
+ children: tooltipData[legendItem.yKey].formattedValue ? tooltipData[legendItem.yKey].formattedValue : tooltipData[legendItem.yKey].value
42470
+ })]
42471
+ }, legendItem.yKey);
42472
+ })
42473
+ }, index);
42465
42474
  }), showRoundedTotal && jsxs("tr", {
42466
42475
  children: [jsx("td", {
42467
42476
  colSpan: 2,
@@ -42584,11 +42593,9 @@ var LegendItem = function LegendItem(_ref) {
42584
42593
  function _EMOTION_STRINGIFIED_CSS_ERROR__$7() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
42585
42594
  var Legend$1 = function Legend(_ref) {
42586
42595
  var keys = _ref.keys,
42587
- visibleYKeys = _ref.visibleYKeys,
42588
- legendItems = _ref.legendItems,
42589
42596
  setVisibleYKeys = _ref.setVisibleYKeys,
42590
- conditionalFormattingRules = _ref.conditionalFormattingRules,
42591
- marginLeft = _ref.marginLeft;
42597
+ marginLeft = _ref.marginLeft,
42598
+ items = _ref.items;
42592
42599
  return jsx("div", {
42593
42600
  className: /*#__PURE__*/css$1(process.env.NODE_ENV === "production" ? {
42594
42601
  name: "1nbollx",
@@ -42596,7 +42603,7 @@ var Legend$1 = function Legend(_ref) {
42596
42603
  } : {
42597
42604
  name: "qz6h7j-Legend",
42598
42605
  styles: "height:40px;padding-top:8px;label:Legend;",
42599
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJvQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGVnZW5kSXRlbSB9IGZyb20gJy4vTGVnZW5kSXRlbSc7XG5pbXBvcnQgeyBTaGFwZURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyIH0gZnJvbSAnLi4vLi4vLi4vU2Nyb2xsYmFyL1Njcm9sbGJhcic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IExpbmVTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0xpbmVDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcblxuaW50ZXJmYWNlIExlZ2VuZFByb3BzPFQ+IHtcbiAgc2V0VmlzaWJsZVlLZXlzOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIHZpc2libGVZS2V5czogQXJyYXk8c3RyaW5nPjtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgbWFyZ2luTGVmdDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgdmlzaWJsZVlLZXlzLFxuICBsZWdlbmRJdGVtcyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgbWFyZ2luTGVmdCxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2xlZ2VuZEl0ZW1zLm1hcChcbiAgICAgICAgICBsZWdlbmRJdGVtID0+XG4gICAgICAgICAgICBrZXlzW2xlZ2VuZEl0ZW0ueUtleV0gJiYgKFxuICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgIHsuLi5sZWdlbmRJdGVtfVxuICAgICAgICAgICAgICAgIGtleT17YGxlZ2VuZC0ke2xlZ2VuZEl0ZW0ueUtleX1gfVxuICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgIHNldFZpc2libGVZS2V5cyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2Lmxlbmd0aCA9PT0gbGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gW2xlZ2VuZEl0ZW0ueUtleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gcHJldi5maWx0ZXIocHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWaXNpYmxlTGVnZW5kSXRlbXMgPSBbLi4ucHJldiwgbGVnZW5kSXRlbS55S2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgID8gbGVnZW5kSXRlbXMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KVxuICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlzaWJsZT17dmlzaWJsZVlLZXlzLmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICApfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */",
42606
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJvQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi9MZWdlbmRJdGVtJztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXIgfSBmcm9tICcuLi8uLi8uLi9TY3JvbGxiYXIvU2Nyb2xsYmFyJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTGVnZW5kUHJvcHM8VD4ge1xuICBzZXRWaXNpYmxlWUtleXM/OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIGtleXM6IHsgW2tleTogc3RyaW5nXTogS2V5IH07XG4gIG1hcmdpbkxlZnQ6IG51bWJlcjtcbiAgaXRlbXM/OiB7XG4gICAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gICAgdmlzaWJsZVlLZXlzOiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgfVtdO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBtYXJnaW5MZWZ0LFxuICBpdGVtcyxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2l0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcChcbiAgICAgICAgICAgICAgbGVnZW5kSXRlbSA9PlxuICAgICAgICAgICAgICAgIGtleXNbbGVnZW5kSXRlbS55S2V5XSAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGVnZW5kSXRlbX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgbGVnZW5kLSR7bGVnZW5kSXRlbS55S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzICYmXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGl0ZW0ubGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFtsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IHByZXYuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFsuLi5wcmV2LCBsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWaXNpYmxlTGVnZW5kSXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5sZWdlbmRJdGVtcy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZT17c2V0VmlzaWJsZVlLZXlzID8gaXRlbS52aXNpYmxlWUtleXMuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSA6IHRydWV9XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtpdGVtLmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICkpfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */",
42600
42607
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$7
42601
42608
  }),
42602
42609
  children: jsx(Scrollbar, {
@@ -42606,34 +42613,39 @@ var Legend$1 = function Legend(_ref) {
42606
42613
  flexWrap: 'nowrap',
42607
42614
  alignItems: 'center',
42608
42615
  marginLeft: marginLeft ? marginLeft + "px" : undefined
42609
- }, process.env.NODE_ENV === "production" ? "" : ";label:Legend;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJtQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGVnZW5kSXRlbSB9IGZyb20gJy4vTGVnZW5kSXRlbSc7XG5pbXBvcnQgeyBTaGFwZURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyIH0gZnJvbSAnLi4vLi4vLi4vU2Nyb2xsYmFyL1Njcm9sbGJhcic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IExpbmVTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0xpbmVDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcblxuaW50ZXJmYWNlIExlZ2VuZFByb3BzPFQ+IHtcbiAgc2V0VmlzaWJsZVlLZXlzOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIHZpc2libGVZS2V5czogQXJyYXk8c3RyaW5nPjtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgbWFyZ2luTGVmdDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgdmlzaWJsZVlLZXlzLFxuICBsZWdlbmRJdGVtcyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgbWFyZ2luTGVmdCxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2xlZ2VuZEl0ZW1zLm1hcChcbiAgICAgICAgICBsZWdlbmRJdGVtID0+XG4gICAgICAgICAgICBrZXlzW2xlZ2VuZEl0ZW0ueUtleV0gJiYgKFxuICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgIHsuLi5sZWdlbmRJdGVtfVxuICAgICAgICAgICAgICAgIGtleT17YGxlZ2VuZC0ke2xlZ2VuZEl0ZW0ueUtleX1gfVxuICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgIHNldFZpc2libGVZS2V5cyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2Lmxlbmd0aCA9PT0gbGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gW2xlZ2VuZEl0ZW0ueUtleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gcHJldi5maWx0ZXIocHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWaXNpYmxlTGVnZW5kSXRlbXMgPSBbLi4ucHJldiwgbGVnZW5kSXRlbS55S2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgID8gbGVnZW5kSXRlbXMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KVxuICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlzaWJsZT17dmlzaWJsZVlLZXlzLmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICApfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */"),
42616
+ }, process.env.NODE_ENV === "production" ? "" : ";label:Legend;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJtQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi9MZWdlbmRJdGVtJztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXIgfSBmcm9tICcuLi8uLi8uLi9TY3JvbGxiYXIvU2Nyb2xsYmFyJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTGVnZW5kUHJvcHM8VD4ge1xuICBzZXRWaXNpYmxlWUtleXM/OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIGtleXM6IHsgW2tleTogc3RyaW5nXTogS2V5IH07XG4gIG1hcmdpbkxlZnQ6IG51bWJlcjtcbiAgaXRlbXM/OiB7XG4gICAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gICAgdmlzaWJsZVlLZXlzOiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgfVtdO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBtYXJnaW5MZWZ0LFxuICBpdGVtcyxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2l0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcChcbiAgICAgICAgICAgICAgbGVnZW5kSXRlbSA9PlxuICAgICAgICAgICAgICAgIGtleXNbbGVnZW5kSXRlbS55S2V5XSAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGVnZW5kSXRlbX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgbGVnZW5kLSR7bGVnZW5kSXRlbS55S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzICYmXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGl0ZW0ubGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFtsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IHByZXYuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFsuLi5wcmV2LCBsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWaXNpYmxlTGVnZW5kSXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5sZWdlbmRJdGVtcy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZT17c2V0VmlzaWJsZVlLZXlzID8gaXRlbS52aXNpYmxlWUtleXMuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSA6IHRydWV9XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtpdGVtLmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICkpfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */"),
42610
42617
  x: true,
42611
- children: legendItems.map(function (legendItem) {
42612
- return keys[legendItem.yKey] && createElement$1(LegendItem, _extends({}, legendItem, {
42613
- key: "legend-" + legendItem.yKey,
42614
- yKeyFormatted: keys[legendItem.yKey].keyFormatted,
42615
- onClick: function onClick() {
42616
- return setVisibleYKeys(function (prev) {
42617
- var newVisibleLegendItems = [];
42618
- if (prev.length === legendItems.length) {
42619
- newVisibleLegendItems = [legendItem.yKey];
42620
- } else {
42621
- if (prev.includes(legendItem.yKey)) {
42622
- newVisibleLegendItems = prev.filter(function (prevLegendItemId) {
42623
- return prevLegendItemId !== legendItem.yKey;
42624
- });
42625
- } else {
42626
- newVisibleLegendItems = [].concat(prev, [legendItem.yKey]);
42627
- }
42628
- }
42629
- return newVisibleLegendItems.length === 0 ? legendItems.map(function (legendItem) {
42630
- return legendItem.yKey;
42631
- }) : newVisibleLegendItems;
42632
- });
42633
- },
42634
- visible: visibleYKeys.includes(legendItem.yKey),
42635
- conditionalFormattingRules: conditionalFormattingRules
42636
- }));
42618
+ children: items == null ? void 0 : items.map(function (item, index) {
42619
+ var _item$legendItems;
42620
+ return jsx(Fragment, {
42621
+ children: (_item$legendItems = item.legendItems) == null ? void 0 : _item$legendItems.map(function (legendItem) {
42622
+ return keys[legendItem.yKey] && createElement$1(LegendItem, _extends({}, legendItem, {
42623
+ key: "legend-" + legendItem.yKey,
42624
+ yKeyFormatted: keys[legendItem.yKey].keyFormatted,
42625
+ onClick: function onClick() {
42626
+ return setVisibleYKeys && setVisibleYKeys(function (prev) {
42627
+ var newVisibleLegendItems = [];
42628
+ if (prev.length === item.legendItems.length) {
42629
+ newVisibleLegendItems = [legendItem.yKey];
42630
+ } else {
42631
+ if (prev.includes(legendItem.yKey)) {
42632
+ newVisibleLegendItems = prev.filter(function (prevLegendItemId) {
42633
+ return prevLegendItemId !== legendItem.yKey;
42634
+ });
42635
+ } else {
42636
+ newVisibleLegendItems = [].concat(prev, [legendItem.yKey]);
42637
+ }
42638
+ }
42639
+ return newVisibleLegendItems.length === 0 ? item.legendItems.map(function (legendItem) {
42640
+ return legendItem.yKey;
42641
+ }) : newVisibleLegendItems;
42642
+ });
42643
+ },
42644
+ visible: setVisibleYKeys ? item.visibleYKeys.includes(legendItem.yKey) : true,
42645
+ conditionalFormattingRules: item.conditionalFormattingRules
42646
+ }));
42647
+ })
42648
+ }, index);
42637
42649
  })
42638
42650
  })
42639
42651
  });
@@ -42735,19 +42747,19 @@ var buildMargin = function buildMargin(yTicks, showYAxisLabels, hasYAxisTitle, h
42735
42747
  };
42736
42748
  };
42737
42749
 
42738
- function useFlattenedData(xScaleKey, xScaleDataType, chart) {
42750
+ function useFlattenedData(xScaleKey, xScaleDataType, data, yKeys) {
42739
42751
  return useMemo(function () {
42740
- if (xScaleKey && xScaleDataType) {
42752
+ if (xScaleKey && xScaleDataType && yKeys.length > 0) {
42741
42753
  return flattenData({
42742
- data: chart.data,
42754
+ data: data,
42743
42755
  xScaleKey: xScaleKey,
42744
42756
  xScaleDataType: xScaleDataType,
42745
- yKeys: chart.y.keys
42757
+ yKeys: yKeys
42746
42758
  });
42747
42759
  } else {
42748
42760
  return [];
42749
42761
  }
42750
- }, [chart.data, xScaleKey, xScaleDataType, chart.y.keys]);
42762
+ }, [data, xScaleKey, xScaleDataType, yKeys]);
42751
42763
  }
42752
42764
 
42753
42765
  var GoalLine = function GoalLine(_ref) {
@@ -43099,6 +43111,17 @@ function useTooltip$1(initialTooltipState) {
43099
43111
  };
43100
43112
  }
43101
43113
 
43114
+ function useYScale(innerHeight, scale) {
43115
+ return useMemo(function () {
43116
+ return scaleLinear({
43117
+ range: [innerHeight, 0],
43118
+ domain: scale.ordering === 'asc' ? [scale.min, scale.max] : [scale.max, scale.min],
43119
+ nice: true,
43120
+ round: true
43121
+ });
43122
+ }, [innerHeight, scale]);
43123
+ }
43124
+
43102
43125
  var LineChart$5 = function LineChart(_ref) {
43103
43126
  var _theme$axis;
43104
43127
  var chart = _ref.chart,
@@ -43164,14 +43187,8 @@ var LineChart$5 = function LineChart(_ref) {
43164
43187
  }
43165
43188
  return null;
43166
43189
  }, [innerWidth, chart.x, chart.data]);
43167
- var _yScale = useMemo(function () {
43168
- return scaleLinear({
43169
- range: [innerHeight, 0],
43170
- domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
43171
- nice: true
43172
- });
43173
- }, [innerHeight, chart.y]);
43174
- var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
43190
+ var _yScale = useYScale(innerHeight, chart.y.scale);
43191
+ var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
43175
43192
  var handleMouseMove = useCallback(function (event) {
43176
43193
  if (!xKey || !xScaleKey || xScale === null) return;
43177
43194
  var tooltipData = getTooltipData({
@@ -43198,6 +43215,11 @@ var LineChart$5 = function LineChart(_ref) {
43198
43215
  var yTickValues = chart.y.ticks.map(function (tick) {
43199
43216
  return Number(tick.value);
43200
43217
  });
43218
+ var legendTooltipItems = [{
43219
+ legendItems: chart.lines,
43220
+ visibleYKeys: visibleYKeys,
43221
+ conditionalFormattingRules: chart.conditionalFormattingRules
43222
+ }];
43201
43223
  return jsxs(React__default.Fragment, {
43202
43224
  children: [jsxs(ChartWrapper$1, {
43203
43225
  width: width,
@@ -43232,93 +43254,19 @@ var LineChart$5 = function LineChart(_ref) {
43232
43254
  yScale: _yScale,
43233
43255
  ticks: yTickValues,
43234
43256
  stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
43235
- }), jsxs(Group$2, {
43236
- children: [chart.y.keys.map(function (yKey) {
43237
- var _chart$lines$filter$;
43238
- return jsx(LinePath, {
43239
- visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43240
- data: dataFlattened,
43241
- x: function x(d) {
43242
- var _xScale;
43243
- // @ts-ignore
43244
- var xValue = d[xScaleKey];
43245
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43246
- // @ts-ignore
43247
- return (_xScale = xScale(xValueAdjusted)) != null ? _xScale : 0;
43248
- },
43249
- y: function y(d) {
43250
- return _yScale(Number(d[yKey]));
43251
- },
43252
- stroke: chart.lines.filter(function (legendItem) {
43253
- return legendItem.yKey === yKey;
43254
- })[0].color,
43255
- strokeWidth: chart.lines.filter(function (legendItem) {
43256
- return legendItem.yKey === yKey;
43257
- })[0].style.strokeWidth,
43258
- strokeLinecap: "round",
43259
- strokeDasharray: (_chart$lines$filter$ = chart.lines.filter(function (legendItem) {
43260
- return legendItem.yKey === yKey;
43261
- })[0].style.strokeDasharray) != null ? _chart$lines$filter$ : undefined,
43262
- shapeRendering: "smooth",
43263
- defined: function defined(d) {
43264
- return d[yKey] !== null;
43265
- },
43266
- curve: curve
43267
- }, yKey);
43268
- }), chart.conditionalFormattingRules.map(function (conditionalFormattingRule) {
43269
- var _chart$lines$filter$2;
43270
- if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
43271
- var yKey = conditionalFormattingRule.yKey;
43272
- var clipPathId = "clip-path-" + yKey + "-" + conditionalFormattingRule.value + "-" + conditionalFormattingRule.color + "-" + Math.random(); // Do not remove Math.random() - required to ensure unique clipPathId per view instance
43273
-
43274
- var clipArea = getClipArea({
43275
- conditionalFormattingRule: conditionalFormattingRule,
43276
- chart: {
43277
- width: innerWidth,
43278
- height: innerHeight,
43279
- yScale: _yScale
43280
- }
43281
- });
43282
-
43283
- // return a new <LinePath /> for each conditional formatting rule with a matching <ReactClipPath /> to frame the part of the path that should be visible
43284
- return jsxs(Group$2, {
43285
- children: [jsx(LinePath, {
43286
- clipPath: "url(#" + clipPathId + ")",
43287
- visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43288
- data: dataFlattened,
43289
- x: function x(d) {
43290
- var _xScale2;
43291
- // @ts-ignore
43292
- var xValue = d[xScaleKey];
43293
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43294
- // @ts-ignore
43295
- return (_xScale2 = xScale(xValueAdjusted)) != null ? _xScale2 : 0;
43296
- },
43297
- y: function y(d) {
43298
- return _yScale(Number(d[yKey]));
43299
- },
43300
- stroke: conditionalFormattingRule.color,
43301
- strokeWidth: chart.lines.filter(function (legendItem) {
43302
- return legendItem.yKey === yKey;
43303
- })[0].style.strokeWidth,
43304
- strokeLinecap: "round",
43305
- strokeDasharray: (_chart$lines$filter$2 = chart.lines.filter(function (legendItem) {
43306
- return legendItem.yKey === yKey;
43307
- })[0].style.strokeDasharray) != null ? _chart$lines$filter$2 : undefined,
43308
- shapeRendering: "smooth",
43309
- defined: function defined(d) {
43310
- return d[yKey] !== null;
43311
- },
43312
- curve: curve
43313
- }, yKey), jsx(RectClipPath, {
43314
- id: clipPathId,
43315
- x: clipArea.x,
43316
- y: clipArea.y,
43317
- width: clipArea.width,
43318
- height: clipArea.height
43319
- })]
43320
- }, clipPathId);
43321
- })]
43257
+ }), jsx(Group$2, {
43258
+ children: xScaleKey !== null && jsx(Lines, {
43259
+ lines: chart.lines,
43260
+ conditionalFormattingRules: chart.conditionalFormattingRules,
43261
+ curve: curve,
43262
+ yKeys: chart.y.keys,
43263
+ visibleYKeys: visibleYKeys,
43264
+ data: dataFlattened,
43265
+ xScaleKey: xScaleKey,
43266
+ xScaleDataType: xScaleDataType,
43267
+ xScale: xScale,
43268
+ yScale: _yScale
43269
+ })
43322
43270
  })]
43323
43271
  }), tooltipData && jsxs("g", {
43324
43272
  children: [jsx(Line, {
@@ -43350,27 +43298,117 @@ var LineChart$5 = function LineChart(_ref) {
43350
43298
  width: innerWidth
43351
43299
  })]
43352
43300
  }), options.showLegend && jsx(Legend$1, {
43353
- legendItems: chart.lines,
43354
- visibleYKeys: visibleYKeys,
43301
+ items: legendTooltipItems,
43355
43302
  setVisibleYKeys: setVisibleYKeys,
43356
43303
  keys: chart.keys,
43357
- conditionalFormattingRules: chart.conditionalFormattingRules,
43358
43304
  marginLeft: margin.left - margin.leftTitleOffset
43359
43305
  }), tooltipOpen && tooltipData && xKey && jsx(Tooltip$1, {
43306
+ items: legendTooltipItems,
43360
43307
  tooltipData: tooltipData,
43361
43308
  tooltipLeft: tooltipLeft,
43362
43309
  tooltipTop: tooltipTop,
43363
43310
  xKey: xKey,
43364
43311
  keys: chart.keys,
43365
- visibleYKeys: visibleYKeys,
43366
43312
  yKeys: chart.y.keys,
43367
- legendItems: chart.lines,
43368
43313
  showRoundedTotal: options.showRoundedTotal,
43369
- conditionalFormattingRules: chart.conditionalFormattingRules,
43370
43314
  theme: themeCSS.popoverMenus
43371
43315
  })]
43372
43316
  });
43373
43317
  };
43318
+ function Lines(_ref2) {
43319
+ var yKeys = _ref2.yKeys,
43320
+ visibleYKeys = _ref2.visibleYKeys,
43321
+ data = _ref2.data,
43322
+ xScaleKey = _ref2.xScaleKey,
43323
+ xScaleDataType = _ref2.xScaleDataType,
43324
+ xScale = _ref2.xScale,
43325
+ yScale = _ref2.yScale,
43326
+ lines = _ref2.lines,
43327
+ curve = _ref2.curve,
43328
+ conditionalFormattingRules = _ref2.conditionalFormattingRules;
43329
+ return jsxs(Fragment, {
43330
+ children: [yKeys.map(function (yKey) {
43331
+ var _lines$filter$0$style;
43332
+ return jsx(LinePath, {
43333
+ visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43334
+ data: data,
43335
+ x: function x(d) {
43336
+ var _ref3;
43337
+ var xValue = d[xScaleKey];
43338
+ var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43339
+ return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
43340
+ },
43341
+ y: function y(d) {
43342
+ return yScale(d[yKey]);
43343
+ },
43344
+ stroke: lines.filter(function (legendItem) {
43345
+ return legendItem.yKey === yKey;
43346
+ })[0].color,
43347
+ strokeWidth: lines.filter(function (legendItem) {
43348
+ return legendItem.yKey === yKey;
43349
+ })[0].style.strokeWidth,
43350
+ strokeLinecap: "round",
43351
+ strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
43352
+ return legendItem.yKey === yKey;
43353
+ })[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
43354
+ shapeRendering: "smooth",
43355
+ defined: function defined(d) {
43356
+ return d[yKey] !== null;
43357
+ },
43358
+ curve: curve
43359
+ }, yKey);
43360
+ }), conditionalFormattingRules.map(function (conditionalFormattingRule) {
43361
+ var _lines$filter$0$style2;
43362
+ if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
43363
+ var yKey = conditionalFormattingRule.yKey;
43364
+ var clipPathId = "clip-path-" + yKey + "-" + conditionalFormattingRule.value + "-" + conditionalFormattingRule.color + "-" + Math.random(); // Do not remove Math.random() - required to ensure unique clipPathId per view instance
43365
+
43366
+ var clipArea = getClipArea({
43367
+ conditionalFormattingRule: conditionalFormattingRule,
43368
+ chart: {
43369
+ width: innerWidth,
43370
+ height: innerHeight,
43371
+ yScale: yScale
43372
+ }
43373
+ });
43374
+ return jsxs(Group$2, {
43375
+ children: [jsx(LinePath, {
43376
+ clipPath: "url(#" + clipPathId + ")",
43377
+ visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43378
+ data: data,
43379
+ x: function x(d) {
43380
+ var _ref4;
43381
+ var xValue = d[xScaleKey];
43382
+ var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43383
+ return (_ref4 = xScale(xValueAdjusted)) != null ? _ref4 : 0;
43384
+ },
43385
+ y: function y(d) {
43386
+ return yScale(d[yKey]);
43387
+ },
43388
+ stroke: conditionalFormattingRule.color,
43389
+ strokeWidth: lines.filter(function (legendItem) {
43390
+ return legendItem.yKey === yKey;
43391
+ })[0].style.strokeWidth,
43392
+ strokeLinecap: "round",
43393
+ strokeDasharray: (_lines$filter$0$style2 = lines.filter(function (legendItem) {
43394
+ return legendItem.yKey === yKey;
43395
+ })[0].style.strokeDasharray) != null ? _lines$filter$0$style2 : undefined,
43396
+ shapeRendering: "smooth",
43397
+ defined: function defined(d) {
43398
+ return d[yKey] !== null;
43399
+ },
43400
+ curve: curve
43401
+ }, yKey), jsx(RectClipPath, {
43402
+ id: clipPathId,
43403
+ x: clipArea.x,
43404
+ y: clipArea.y,
43405
+ width: clipArea.width,
43406
+ height: clipArea.height
43407
+ })]
43408
+ }, clipPathId);
43409
+ })]
43410
+ });
43411
+ }
43374
43412
 
43375
43413
  function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
43376
43414
  var _bars$find;
@@ -43387,7 +43425,7 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
43387
43425
  if (compare({
43388
43426
  op: rule.operator,
43389
43427
  value: rule.value
43390
- }, value)) {
43428
+ }, value) && rule.yKey === barKey) {
43391
43429
  fill = rule.color;
43392
43430
  break;
43393
43431
  }
@@ -43396,12 +43434,43 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
43396
43434
  return fill;
43397
43435
  }
43398
43436
 
43399
- function _EMOTION_STRINGIFIED_CSS_ERROR__$9() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
43400
- var BAR_RADIUS = 2;
43401
43437
  var PADDING = {
43402
43438
  paddingOuter: 0.05,
43403
43439
  paddingInner: 0.3
43404
43440
  };
43441
+
43442
+ function useBarXScale(xScaleDataType, innerWidth, xScaleKey, data) {
43443
+ return useMemo(function () {
43444
+ if (xScaleDataType === 'string') {
43445
+ return scaleBand(_extends({
43446
+ range: [0, innerWidth],
43447
+ domain: xScaleKey ? [].concat(data.map(function (d) {
43448
+ return d[xScaleKey] && d[xScaleKey].value !== null ? String(d[xScaleKey].value) : '';
43449
+ })) : []
43450
+ }, PADDING));
43451
+ }
43452
+ if (xScaleDataType === 'date_time' && xScaleKey) {
43453
+ return scaleBand(_extends({
43454
+ range: [0, innerWidth],
43455
+ domain: data.map(function (d) {
43456
+ return new Date(d[xScaleKey].value);
43457
+ })
43458
+ }, PADDING));
43459
+ }
43460
+ if (xScaleDataType === 'number' && xScaleKey) {
43461
+ return scaleBand(_extends({
43462
+ range: [0, innerWidth],
43463
+ domain: data.map(function (d) {
43464
+ return d[xScaleKey] && d[xScaleKey].value !== null ? Number(d[xScaleKey].value) : 0;
43465
+ })
43466
+ }, PADDING));
43467
+ }
43468
+ return null;
43469
+ }, [innerWidth, data]);
43470
+ }
43471
+
43472
+ function _EMOTION_STRINGIFIED_CSS_ERROR__$9() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
43473
+ var BAR_RADIUS = 2;
43405
43474
  var BarChart$5 = function BarChart(_ref) {
43406
43475
  var _theme$axis;
43407
43476
  var chart = _ref.chart,
@@ -43432,41 +43501,8 @@ var BarChart$5 = function BarChart(_ref) {
43432
43501
  var xScaleKey = chart.x.scale.key;
43433
43502
  var yScaleKeys = chart.y.keys;
43434
43503
  var xScaleDataType = chart.x.scale.dataType;
43435
- var xScale = useMemo(function () {
43436
- if (xScaleDataType === 'string') {
43437
- return scaleBand(_extends({
43438
- range: [0, innerWidth],
43439
- domain: xScaleKey ? [].concat(chart.data.map(function (d) {
43440
- return d[xScaleKey] && d[xScaleKey].value !== null ? String(d[xScaleKey].value) : '';
43441
- })) : []
43442
- }, PADDING));
43443
- }
43444
- if (xScaleDataType === 'date_time' && xScaleKey) {
43445
- return scaleBand(_extends({
43446
- range: [0, innerWidth],
43447
- domain: chart.data.map(function (d) {
43448
- return new Date(d[xScaleKey].value);
43449
- })
43450
- }, PADDING));
43451
- }
43452
- if (xScaleDataType === 'number' && xScaleKey) {
43453
- return scaleBand(_extends({
43454
- range: [0, innerWidth],
43455
- domain: chart.data.map(function (d) {
43456
- return d[xScaleKey] && d[xScaleKey].value !== null ? Number(d[xScaleKey].value) : 0;
43457
- })
43458
- }, PADDING));
43459
- }
43460
- return null;
43461
- }, [innerWidth, chart.x, chart.data]);
43462
- var yScale = useMemo(function () {
43463
- return scaleLinear({
43464
- range: [innerHeight, 0],
43465
- domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
43466
- nice: true,
43467
- round: true
43468
- });
43469
- }, [innerHeight, chart.y]);
43504
+ var xScale = useBarXScale(xScaleDataType, innerWidth, xScaleKey, chart.data);
43505
+ var yScale = useYScale(innerHeight, chart.y.scale);
43470
43506
  var innerXScale = useMemo(function () {
43471
43507
  if (!options.stacked && xScale && 'bandwidth' in xScale) {
43472
43508
  return scaleBand({
@@ -43477,7 +43513,7 @@ var BarChart$5 = function BarChart(_ref) {
43477
43513
  }
43478
43514
  return undefined;
43479
43515
  }, [xScale, yScaleKeys, options.stacked, xScaleDataType]);
43480
- var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
43516
+ var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
43481
43517
  var handleMouseMove = useCallback(function (event) {
43482
43518
  if (!xKey || !xScaleKey || xScale === null) return;
43483
43519
  var tooltipData = getTooltipData({
@@ -43523,6 +43559,13 @@ var BarChart$5 = function BarChart(_ref) {
43523
43559
  var yTickValues = chart.y.ticks.map(function (tick) {
43524
43560
  return Number(tick.value);
43525
43561
  });
43562
+ var legendTooltipItems = [{
43563
+ visibleYKeys: chart.bars.map(function (legendItem) {
43564
+ return legendItem.yKey;
43565
+ }),
43566
+ legendItems: chart.bars,
43567
+ conditionalFormattingRules: chart.conditionalFormattingRules
43568
+ }];
43526
43569
  return jsxs(Fragment, {
43527
43570
  children: [jsxs(ChartWrapper$1, {
43528
43571
  width: width,
@@ -43558,57 +43601,25 @@ var BarChart$5 = function BarChart(_ref) {
43558
43601
  ticks: yTickValues,
43559
43602
  stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
43560
43603
  }), jsxs(Group$2, {
43561
- children: [!options.stacked && jsx(BarGroup$1, {
43604
+ children: [!options.stacked && jsx(BarGroup, {
43562
43605
  data: dataFlattened,
43563
43606
  keys: yScaleKeys,
43564
43607
  height: innerHeight,
43565
- x0: function x0(d) {
43566
- // @ts-ignore
43567
- var xValue = d[xScaleKey];
43568
- if (xScaleDataType === 'string') return xValue;
43569
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43570
- // @ts-ignore
43571
- return xValueAdjusted;
43572
- }
43573
- // @ts-ignore
43574
- ,
43575
- x0Scale: xScale
43576
- // @ts-ignore
43577
- ,
43578
- x1Scale: innerXScale,
43608
+ xKey: xKey,
43609
+ xScaleDataType: xScaleDataType,
43610
+ xScale: xScale,
43611
+ innerXScale: innerXScale,
43579
43612
  yScale: yScale,
43580
- color: function color() {
43581
- return '';
43582
- },
43583
- children: function children(barGroups) {
43584
- return barGroups.map(function (barGroup) {
43585
- return jsx(Group$2, {
43586
- left: barGroup.x0,
43587
- children: barGroup.bars.map(function (bar) {
43588
- if (bar.value === null) return null;
43589
- if (bar.height < 0 || bar.width < 0) return null;
43590
- return jsx(Bar, {
43591
- x: bar.x,
43592
- y: bar.y,
43593
- width: bar.width,
43594
- height: bar.height,
43595
- fill: getBarFill(chart.bars, chart.conditionalFormattingRules, bar.key, bar.value),
43596
- onClick: function onClick(e) {
43597
- return handleOnBarClick(e, barGroup, bar);
43598
- },
43599
- enableHover: enableHover
43600
- }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key);
43601
- })
43602
- }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
43603
- });
43604
- }
43613
+ onClick: handleOnBarClick,
43614
+ conditionalFormattingRules: chart.conditionalFormattingRules,
43615
+ bars: chart.bars,
43616
+ enableHover: enableHover
43605
43617
  }), options.stacked && jsx(BarStack$1, {
43606
43618
  x: function x(d) {
43607
43619
  // @ts-ignore
43608
43620
  var xValue = d[xScaleKey];
43609
43621
  if (xScaleDataType === 'string') return xValue;
43610
43622
  var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43611
- // @ts-ignore
43612
43623
  return xValueAdjusted;
43613
43624
  }
43614
43625
  // @ts-ignore
@@ -43656,31 +43667,79 @@ var BarChart$5 = function BarChart(_ref) {
43656
43667
  width: innerWidth
43657
43668
  })]
43658
43669
  }), options.showLegend && jsx(Legend$1, {
43659
- legendItems: chart.bars,
43660
- visibleYKeys: chart.bars.map(function (legendItem) {
43661
- return legendItem.yKey;
43662
- }),
43670
+ items: legendTooltipItems,
43663
43671
  setVisibleYKeys: function setVisibleYKeys() {},
43664
43672
  keys: chart.keys,
43665
- conditionalFormattingRules: chart.conditionalFormattingRules,
43666
43673
  marginLeft: margin.left - margin.leftTitleOffset
43667
43674
  }), tooltipOpen && tooltipData && xKey && jsx(Tooltip$1, {
43675
+ items: legendTooltipItems,
43668
43676
  tooltipData: tooltipData,
43669
43677
  tooltipLeft: tooltipLeft,
43670
43678
  tooltipTop: tooltipTop,
43671
43679
  xKey: xKey,
43672
43680
  keys: chart.keys,
43673
- visibleYKeys: chart.bars.map(function (legendItem) {
43674
- return legendItem.yKey;
43675
- }),
43676
43681
  yKeys: chart.y.keys,
43677
- legendItems: chart.bars,
43678
43682
  showRoundedTotal: options.showRoundedTotal,
43679
- conditionalFormattingRules: chart.conditionalFormattingRules,
43680
43683
  theme: themeCSS.popoverMenus
43681
43684
  })]
43682
43685
  });
43683
43686
  };
43687
+ function BarGroup(_ref2) {
43688
+ var data = _ref2.data,
43689
+ keys = _ref2.keys,
43690
+ height = _ref2.height,
43691
+ xKey = _ref2.xKey,
43692
+ xScaleDataType = _ref2.xScaleDataType,
43693
+ xScale = _ref2.xScale,
43694
+ innerXScale = _ref2.innerXScale,
43695
+ yScale = _ref2.yScale,
43696
+ _onClick = _ref2.onClick,
43697
+ conditionalFormattingRules = _ref2.conditionalFormattingRules,
43698
+ bars = _ref2.bars,
43699
+ enableHover = _ref2.enableHover;
43700
+ return jsx(BarGroup$2, {
43701
+ data: data,
43702
+ keys: keys,
43703
+ height: height,
43704
+ x0: function x0(d) {
43705
+ var xValue = d[xKey];
43706
+ if (xScaleDataType === 'string') return String(xValue);
43707
+ var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(String(xValue)) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43708
+ return xValueAdjusted;
43709
+ }
43710
+ // @ts-ignore
43711
+ ,
43712
+ x0Scale: xScale
43713
+ // @ts-ignore
43714
+ ,
43715
+ x1Scale: innerXScale,
43716
+ yScale: yScale,
43717
+ color: function color() {
43718
+ return '';
43719
+ },
43720
+ children: function children(barGroups) {
43721
+ return barGroups.map(function (barGroup) {
43722
+ return jsx(Group$2, {
43723
+ left: barGroup.x0,
43724
+ children: barGroup.bars.map(function (bar) {
43725
+ if (bar.value === null || bar.height < 0 || bar.width < 0) return null;
43726
+ return jsx(Bar, {
43727
+ x: bar.x,
43728
+ y: bar.y,
43729
+ width: bar.width,
43730
+ height: bar.height,
43731
+ fill: getBarFill(bars, conditionalFormattingRules, String(bar.key), bar.value),
43732
+ onClick: function onClick(e) {
43733
+ return _onClick(e, barGroup, bar);
43734
+ },
43735
+ enableHover: enableHover
43736
+ }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key));
43737
+ })
43738
+ }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
43739
+ });
43740
+ }
43741
+ });
43742
+ }
43684
43743
  var Bar = function Bar(props) {
43685
43744
  var _useState = useState(props.fill),
43686
43745
  fillColor = _useState[0],
@@ -43705,7 +43764,7 @@ var Bar = function Bar(props) {
43705
43764
  } : {
43706
43765
  name: "4nk3o1-Bar",
43707
43766
  styles: "cursor:pointer;label:Bar;",
43708
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwWXFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24gfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnQHZpc3gvZ3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRUaGVtZUNTUywgZ2V0VG9vbHRpcERhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGcmFnbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uL1Rvb2x0aXAnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vTGVnZW5kJztcbmltcG9ydCB7IEJhckdyb3VwLCBCYXJTdGFjayB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9GaWVsZC90eXBlcyc7XG5pbXBvcnQgeyBzY2FsZUxpbmVhciwgc2NhbGVCYW5kIH0gZnJvbSAnQHZpc3gvc2NhbGUnO1xuaW1wb3J0IHsgZ2V0QmFyRmlsbCB9IGZyb20gJy4vZ2V0QmFyRmlsbCc7XG5pbXBvcnQgeyBidWlsZE1hcmdpbiB9IGZyb20gJy4uLy4uL3V0aWxzL2J1aWxkTWFyZ2luJztcbmltcG9ydCB7IENoYXJ0T25WaWV3Q2xpY2ssIENoYXJ0RGF0YURlZmluaXRpb24sIERhdGFJdGVtIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBsaWdodGVuQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29sb3IuZnVuY3Rpb25zJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJHcm91cEJhciwgQmFyR3JvdXAgYXMgQmFyR3JvdXBUeXBlIH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IHVzZUZsYXR0ZW5lZERhdGEgfSBmcm9tICcuLi9ob29rcy91c2VGbGF0dGVuZWREYXRhJztcbmltcG9ydCBHb2FsTGluZXMgZnJvbSAnLi4vR29hbExpbmUvR29hbExpbmVzJztcbmltcG9ydCB7IEF4aXNCb3R0b20gfSBmcm9tICcuLi9BeGlzL0F4aXNCb3R0b20nO1xuaW1wb3J0IHsgQXhpc0xlZnQgfSBmcm9tICcuLi9BeGlzL0F4aXNMZWZ0JztcbmltcG9ydCB7IEdyaWRSb3dzIH0gZnJvbSAnLi4vR3JpZFJvd3MvR3JpZFJvd3MnO1xuaW1wb3J0IHsgQ2hhcnRXcmFwcGVyIH0gZnJvbSAnLi4vQ2hhcnRXcmFwcGVyL0NoYXJ0V3JhcHBlcic7XG5pbXBvcnQgeyBMaW5lIH0gZnJvbSAnLi4vVG9vbHRpcC9MaW5lJztcbmltcG9ydCB1c2VUb29sdGlwIGZyb20gJy4uL2hvb2tzL3VzZVRvb2x0aXAnO1xuXG4vLyBOZWVkIHRvIGxvb2sgYXQgdXBkYXRpbmcgQmFyQ2hhcnQgdG8gdXNlIHRoaXMgdHlwZSBtZXRob2Qgb2YgcmVuZGVyaW5nIC0gaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9wL3NhbmRib3gvdmlzeC1iYXItY2hhcnQtajlzbXBqP2ZpbGU9JTJGRXhhbXBsZS50c3hcbi8vIEN1cnJlbnRseSBpdCdzIHVzaW5nIFN0YWNrZWQgQ2hhcnQgd2hpY2ggaXNuJ3QgdGVjaG5pY2FsbHkgY29ycmVjdFxuXG5leHBvcnQgdHlwZSBCYXJDaGFydFByb3BzID0ge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdGhlbWU/OiBDaGFydFRoZW1lO1xuICBjaGFydDogQmFyQ2hhcnRSZXByZXNlbnRhdGlvbjtcbiAgb3B0aW9uczoge1xuICAgIHN0YWNrZWQ6IGJvb2xlYW47XG4gICAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgICBzaG93TGVnZW5kOiBib29sZWFuO1xuICAgIHJlbW92ZVN0cm9rZTogYm9vbGVhbjtcbiAgICBheGlzOiB7XG4gICAgICBzaG93WEF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgICBzaG93WUF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgb25DbGljazogKHBhcmFtczogQ2hhcnRPblZpZXdDbGljaykgPT4gdm9pZDtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufTtcblxuY29uc3QgQkFSX1JBRElVUyA9IDI7XG5cbmNvbnN0IFBBRERJTkcgPSB7XG4gIHBhZGRpbmdPdXRlcjogMC4wNSxcbiAgcGFkZGluZ0lubmVyOiAwLjMsXG59O1xuXG5leHBvcnQgY29uc3QgQmFyQ2hhcnQgPSAoeyBjaGFydCwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucywgdGhlbWUsIG9uQ2xpY2ssIGVuYWJsZUhvdmVyIH06IEJhckNoYXJ0UHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIHRvb2x0aXBPcGVuLFxuICAgIHRvb2x0aXBMZWZ0ID0gMCxcbiAgICB0b29sdGlwVG9wID0gMCxcbiAgICBsaW5lTGVmdCA9IDAsXG4gICAgdG9vbHRpcERhdGEsXG4gICAgaGlkZVRvb2x0aXAsXG4gICAgc2hvd1Rvb2x0aXAsXG4gIH0gPSB1c2VUb29sdGlwPHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9IHwgbnVsbD4oKTtcblxuICBjb25zdCBtYXJnaW4gPSBidWlsZE1hcmdpbihjaGFydC55LnRpY2tzLCBvcHRpb25zLmF4aXMuc2hvd1lBeGlzTGFiZWxzLCBjaGFydC55LnRpdGxlICE9IG51bGwsIGNoYXJ0LngudGl0bGUgIT0gbnVsbCk7XG5cbiAgLy8gY29uc3QgW3Zpc2libGVZS2V5cywgc2V0VmlzaWJsZVlLZXlzXSA9IHVzZVN0YXRlKGNoYXJ0LmJhcnMubWFwKChsZWdlbmRJdGVtKSA9PiBsZWdlbmRJdGVtLnlLZXkpKTtcblxuICBjb25zdCBpbm5lcldpZHRoID0gd2lkdGggLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgY29uc3QgaW5uZXJIZWlnaHQgPSBoZWlnaHQgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIChvcHRpb25zLnNob3dMZWdlbmQgPyA0MCA6IDApO1xuICBjb25zdCB4S2V5ID0gY2hhcnQueC5rZXk7XG4gIGNvbnN0IHhTY2FsZUtleSA9IGNoYXJ0Lnguc2NhbGUua2V5O1xuICBjb25zdCB5U2NhbGVLZXlzID0gY2hhcnQueS5rZXlzO1xuICBjb25zdCB4U2NhbGVEYXRhVHlwZTogRGF0YVR5cGUgPSBjaGFydC54LnNjYWxlLmRhdGFUeXBlO1xuXG4gIGNvbnN0IHhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogeFNjYWxlS2V5XG4gICAgICAgICAgPyBbLi4uY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IFN0cmluZyhkW3hTY2FsZUtleV0udmFsdWUpIDogJycpKV1cbiAgICAgICAgICA6IFtdLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8RGF0ZT4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IGNoYXJ0LmRhdGEubWFwKGQgPT4gbmV3IERhdGUoZFt4U2NhbGVLZXldLnZhbHVlIGFzIHN0cmluZykpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IE51bWJlcihkW3hTY2FsZUtleV0udmFsdWUpIDogMCkpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtpbm5lcldpZHRoLCBjaGFydC54LCBjaGFydC5kYXRhXSk7XG5cbiAgY29uc3QgeVNjYWxlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgc2NhbGVMaW5lYXI8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbaW5uZXJIZWlnaHQsIDBdLFxuICAgICAgICBkb21haW46XG4gICAgICAgICAgY2hhcnQueS5zY2FsZS5vcmRlcmluZyA9PT0gJ2FzYydcbiAgICAgICAgICAgID8gW2NoYXJ0Lnkuc2NhbGUubWluIGFzIG51bWJlciwgY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgOiBbY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyLCBjaGFydC55LnNjYWxlLm1pbiBhcyBudW1iZXJdLFxuICAgICAgICBuaWNlOiB0cnVlLFxuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIFtpbm5lckhlaWdodCwgY2hhcnQueV1cbiAgKTtcblxuICBjb25zdCBpbm5lclhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3B0aW9ucy5zdGFja2VkICYmIHhTY2FsZSAmJiAnYmFuZHdpZHRoJyBpbiB4U2NhbGUpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgeFNjYWxlPy5iYW5kd2lkdGgoKV0sXG4gICAgICAgIGRvbWFpbjogeVNjYWxlS2V5cyxcbiAgICAgICAgcGFkZGluZzogMC4xLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSwgW3hTY2FsZSwgeVNjYWxlS2V5cywgb3B0aW9ucy5zdGFja2VkLCB4U2NhbGVEYXRhVHlwZV0pO1xuXG4gIGNvbnN0IGRhdGFGbGF0dGVuZWQgPSB1c2VGbGF0dGVuZWREYXRhPEJhckNoYXJ0UmVwcmVzZW50YXRpb24sIENoYXJ0RGF0YURlZmluaXRpb24+KHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0KTtcblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICgheEtleSB8fCAheFNjYWxlS2V5IHx8IHhTY2FsZSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB0b29sdGlwRGF0YSA9IGdldFRvb2x0aXBEYXRhKHtcbiAgICAgICAgZGF0YTogY2hhcnQuZGF0YSxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG1hcmdpbixcbiAgICAgICAgeFNjYWxlS2V5LFxuICAgICAgICB4U2NhbGVEYXRhVHlwZSxcbiAgICAgICAgeE9yZGVyaW5nOiBjaGFydC54LnNjYWxlLm9yZGVyaW5nLFxuICAgICAgICB4U2NhbGUsXG4gICAgICAgIGNoYXJ0VHlwZTogJ2JhcicsXG4gICAgICB9KTtcblxuICAgICAgc2hvd1Rvb2x0aXAoe1xuICAgICAgICBsaW5lTGVmdDogdG9vbHRpcERhdGE/LmxpbmVMZWZ0LFxuICAgICAgICB0b29sdGlwTGVmdDogZXZlbnQucGFnZVgsXG4gICAgICAgIHRvb2x0aXBUb3A6IGV2ZW50LnBhZ2VZLFxuICAgICAgICB0b29sdGlwRGF0YTogdG9vbHRpcERhdGE/LnRvb2x0aXBEYXRhLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbc2hvd1Rvb2x0aXAsIHhTY2FsZSwgbWFyZ2luLCB4S2V5LCB4U2NhbGVLZXksIHhTY2FsZURhdGFUeXBlLCBjaGFydC54LnNjYWxlLm9yZGVyaW5nLCBjaGFydC5kYXRhXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlTGVhdmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaGlkZVRvb2x0aXAoKTtcbiAgfSwgW2hpZGVUb29sdGlwXSk7XG5cbiAgY29uc3QgaGFuZGxlT25CYXJDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4sIGJhckdyb3VwOiBCYXJHcm91cFR5cGU8c3RyaW5nPiwgYmFyOiBCYXJHcm91cEJhcjxzdHJpbmc+KSA9PiB7XG4gICAgICBvbkNsaWNrKHtcbiAgICAgICAgY2xpY2tlZFZhbHVlOiB7XG4gICAgICAgICAgaW5kZXg6IGJhckdyb3VwLmluZGV4LFxuICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgIGtleTogYmFyLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBiYXIudmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAuLi5jaGFydC54LnRpY2tzW2Jhckdyb3VwLmluZGV4XSxcbiAgICAgICAgICAgIHZhbHVlOiBjaGFydC5kYXRhW2Jhckdyb3VwLmluZGV4XVt4S2V5XS52YWx1ZSA/PyAnJyxcbiAgICAgICAgICAgIGtleTogeEtleSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjbGlja0V2ZW50OiBldmVudCxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW29uQ2xpY2ssIGNoYXJ0LmRhdGEsIHhLZXldXG4gICk7XG5cbiAgY29uc3QgdGhlbWVDU1MgPSB1c2VNZW1vKCgpID0+IGdldENoYXJ0VGhlbWVDU1ModGhlbWUpLCBbdGhlbWVdKTtcblxuICBjb25zdCB5VGlja1ZhbHVlcyA9IGNoYXJ0LnkudGlja3MubWFwKHRpY2sgPT4gTnVtYmVyKHRpY2sudmFsdWUpKTtcblxuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIHsvKiB3aWR0aC9oZWlnaHQgMTAwJSByZXF1aXJlZCBvciB1c2VQYXJlbnRTaXplKCkgY29udGludW91c2x5IHNjYWxlcyBhcyBwYXJlbnQgZWxlbWVudCBoYXMgbm8gc3BlY2lmaWVkIGhlaWdodCAqL31cbiAgICAgIDxDaGFydFdyYXBwZXJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgb25Nb3VzZU1vdmU9e2hhbmRsZU1vdXNlTW92ZX1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVNb3VzZUxlYXZlfVxuICAgICAgICBzaG93TGVnZW5kPXtvcHRpb25zLnNob3dMZWdlbmR9XG4gICAgICA+XG4gICAgICAgIDxHcm91cCBsZWZ0PXttYXJnaW4ubGVmdH0gdG9wPXttYXJnaW4udG9wfT5cbiAgICAgICAgICA8R3JpZFJvd3NcbiAgICAgICAgICAgIHRpY2tzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgd2lkdGg9e2lubmVyV2lkdGh9XG4gICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgcmVtb3ZlU3Ryb2tlPXtvcHRpb25zLnJlbW92ZVN0cm9rZX1cbiAgICAgICAgICAgIHRoZW1lQ1NTPXt0aGVtZUNTU31cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxBeGlzQm90dG9tXG4gICAgICAgICAgICB4PXtjaGFydC54fVxuICAgICAgICAgICAgbWFyZ2luPXttYXJnaW59XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgICBzaG93PXtvcHRpb25zLmF4aXMuc2hvd1hBeGlzTGFiZWxzfVxuICAgICAgICAgICAgcmVtb3ZlU3Ryb2tlPXtvcHRpb25zLnJlbW92ZVN0cm9rZX1cbiAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlPXt4U2NhbGVEYXRhVHlwZX1cbiAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxBeGlzTGVmdFxuICAgICAgICAgICAgc2hvdz17b3B0aW9ucy5heGlzLnNob3dZQXhpc0xhYmVsc31cbiAgICAgICAgICAgIHk9e2NoYXJ0Lnl9XG4gICAgICAgICAgICBtYXJnaW49e21hcmdpbn1cbiAgICAgICAgICAgIHRoZW1lQ1NTPXt0aGVtZUNTU31cbiAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgdGlja3M9e3lUaWNrVmFsdWVzfVxuICAgICAgICAgICAgc3Ryb2tlPXt0aGVtZT8uYXhpcz8uc3Ryb2tlfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgeyFvcHRpb25zLnN0YWNrZWQgJiYgKFxuICAgICAgICAgICAgICA8QmFyR3JvdXBcbiAgICAgICAgICAgICAgICBkYXRhPXtkYXRhRmxhdHRlbmVkfVxuICAgICAgICAgICAgICAgIGtleXM9e3lTY2FsZUtleXN9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAgICAgICB4MD17ZCA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWUgPSBkW3hTY2FsZUtleV07XG5cbiAgICAgICAgICAgICAgICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHJldHVybiB4VmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHhWYWx1ZUFkanVzdGVkID1cbiAgICAgICAgICAgICAgICAgICAgeFNjYWxlRGF0YVR5cGUgPT09ICdkYXRlX3RpbWUnXG4gICAgICAgICAgICAgICAgICAgICAgPyBuZXcgRGF0ZSh4VmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgOiB4U2NhbGVEYXRhVHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgICA/IE51bWJlcih4VmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmcoeFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgIHJldHVybiB4VmFsdWVBZGp1c3RlZDtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB4MFNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHgxU2NhbGU9e2lubmVyWFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYXJHcm91cHMgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhckdyb3Vwcy5tYXAoYmFyR3JvdXAgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAgICAgICAgICAgIHtiYXJHcm91cC5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci52YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFyLmhlaWdodCA8IDAgfHwgYmFyLndpZHRoIDwgMCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLWdyb3VwLWJhci0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhci5pbmRleH0tJHtiYXIudmFsdWV9LSR7YmFyLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg9e2Jhci54fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk9e2Jhci55fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtiYXIuaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoY2hhcnQuYmFycywgY2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIGJhci5rZXksIGJhci52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiBoYW5kbGVPbkJhckNsaWNrKGUsIGJhckdyb3VwLCBiYXIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUhvdmVyPXtlbmFibGVIb3Zlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L0Jhckdyb3VwPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgey8qIEhvdyB0byB3ZSBnZXQgJ3NjYWxlVmFsdWUnIGhlcmU/IFdpbGwgd2UgbmVlZCB0byBzdGFydCBzdG9yaW5nIHNjYWxlS2V5IGFzIHdlbGwgYXMgeEtleT8gKi99XG4gICAgICAgICAgICB7b3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhclN0YWNrXG4gICAgICAgICAgICAgICAgeD17ZCA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWUgPSBkW3hTY2FsZUtleV07XG4gICAgICAgICAgICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4geFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWVBZGp1c3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICByZXR1cm4geFZhbHVlQWRqdXN0ZWQ7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgeFNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgICAgeVNjYWxlPXt5U2NhbGV9XG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXtjaGFydC55LmtleXN9XG4gICAgICAgICAgICAgICAgY29sb3I9eygpID0+ICcnfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgd2lkdGg9e2lubmVyV2lkdGh9XG4gICAgICAgICAgICAgICAgb2Zmc2V0PVwibm9uZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFyU3RhY2tzID0+XG4gICAgICAgICAgICAgICAgICBiYXJTdGFja3MubWFwKGJhclN0YWNrID0+XG4gICAgICAgICAgICAgICAgICAgIGJhclN0YWNrLmJhcnMubWFwKGJhciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci5oZWlnaHQgPCAzKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCQVJfUEFERElORyA9IDEuNTtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLXN0YWNrLSR7YmFyU3RhY2suaW5kZXh9LSR7YmFyLmluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHg9e2Jhci54fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e2Jhci53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtiYXIuaGVpZ2h0IC0gQkFSX1BBRERJTkd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoY2hhcnQuYmFycywgY2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIGJhci5rZXksIGJhci5iYXIuZGF0YSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJ4PXtCQVJfUkFESVVTfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9CYXJTdGFjaz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgey8qIC0tLS0tIFRPT0xUSVAgQ1JPU1NIQUlSIC0tLS0tICovfVxuICAgICAgICB7dG9vbHRpcERhdGEgJiYgKFxuICAgICAgICAgIDxnPlxuICAgICAgICAgICAgPExpbmUgeD17bGluZUxlZnR9IG1hcmdpbj17bWFyZ2lufSBoZWlnaHQ9e2lubmVySGVpZ2h0fSAvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgKX1cbiAgICAgICAgey8qIC0tLS0tIEdPQUwgTElORVMgLS0tLS0tICovfVxuICAgICAgICA8R29hbExpbmVzIGdvYWxMaW5lcz17Y2hhcnQuZ29hbExpbmVzfSB5PXtkID0+IHlTY2FsZShkKX0gbWFyZ2luPXttYXJnaW59IHdpZHRoPXtpbm5lcldpZHRofSAvPlxuICAgICAgPC9DaGFydFdyYXBwZXI+XG4gICAgICB7LyogLS0tLS0gTEVHRU5EIC0tLS0tICovfVxuICAgICAge29wdGlvbnMuc2hvd0xlZ2VuZCAmJiAoXG4gICAgICAgIDxMZWdlbmRcbiAgICAgICAgICBsZWdlbmRJdGVtcz17Y2hhcnQuYmFyc31cbiAgICAgICAgICB2aXNpYmxlWUtleXM9e2NoYXJ0LmJhcnMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KX1cbiAgICAgICAgICBzZXRWaXNpYmxlWUtleXM9eygpID0+IHt9fVxuICAgICAgICAgIGtleXM9e2NoYXJ0LmtleXN9XG4gICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgIG1hcmdpbkxlZnQ9e21hcmdpbi5sZWZ0IC0gbWFyZ2luLmxlZnRUaXRsZU9mZnNldH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7LyogLS0tLS0gVE9PTFRJUCAtLS0tLSAqL31cbiAgICAgIHt0b29sdGlwT3BlbiAmJiB0b29sdGlwRGF0YSAmJiB4S2V5ICYmIChcbiAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICB0b29sdGlwRGF0YT17dG9vbHRpcERhdGF9XG4gICAgICAgICAgdG9vbHRpcExlZnQ9e3Rvb2x0aXBMZWZ0fVxuICAgICAgICAgIHRvb2x0aXBUb3A9e3Rvb2x0aXBUb3B9XG4gICAgICAgICAgeEtleT17eEtleX1cbiAgICAgICAgICBrZXlzPXtjaGFydC5rZXlzfVxuICAgICAgICAgIHZpc2libGVZS2V5cz17Y2hhcnQuYmFycy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpfVxuICAgICAgICAgIHlLZXlzPXtjaGFydC55LmtleXN9XG4gICAgICAgICAgbGVnZW5kSXRlbXM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgc2hvd1JvdW5kZWRUb3RhbD17b3B0aW9ucy5zaG93Um91bmRlZFRvdGFsfVxuICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjaGFydC5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICB0aGVtZT17dGhlbWVDU1MucG9wb3Zlck1lbnVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxuY29uc3QgQmFyID0gKHByb3BzOiB7XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgZmlsbD86IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBrZXk6IHN0cmluZztcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufSkgPT4ge1xuICBjb25zdCBbZmlsbENvbG9yLCBzZXRGaWxsQ29sb3JdID0gdXNlU3RhdGUocHJvcHMuZmlsbCk7XG4gIHJldHVybiAoXG4gICAgPHJlY3RcbiAgICAgIGtleT17cHJvcHMua2V5fVxuICAgICAgeD17cHJvcHMueH1cbiAgICAgIHk9e3Byb3BzLnl9XG4gICAgICB3aWR0aD17cHJvcHMud2lkdGh9XG4gICAgICBoZWlnaHQ9e3Byb3BzLmhlaWdodH1cbiAgICAgIGZpbGw9e2ZpbGxDb2xvcn1cbiAgICAgIHJ4PXtCQVJfUkFESVVTfVxuICAgICAgb25DbGljaz17cHJvcHMub25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gcHJvcHMuZW5hYmxlSG92ZXIgJiYgc2V0RmlsbENvbG9yKGxpZ2h0ZW5Db2xvcihwcm9wcy5maWxsLCAwLjgpKX1cbiAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gcHJvcHMuZW5hYmxlSG92ZXIgJiYgc2V0RmlsbENvbG9yKHByb3BzLmZpbGwpfVxuICAgICAgY2xhc3NOYW1lPXtwcm9wcy5lbmFibGVIb3ZlciA/IGNzcyh7IGN1cnNvcjogJ3BvaW50ZXInIH0pIDogJyd9XG4gICAgLz5cbiAgKTtcbn07XG4iXX0= */",
43767
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4WXFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24sIEJhclN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQmFyQ2hhcnRWMi90eXBlcyc7XG5pbXBvcnQgeyBDaGFydFRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tICdAdmlzeC9ncm91cCc7XG5pbXBvcnQgeyBnZXRDaGFydFRoZW1lQ1NTLCBnZXRUb29sdGlwRGF0YSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcCc7XG5pbXBvcnQgeyBMZWdlbmQgfSBmcm9tICcuLi9MZWdlbmQnO1xuaW1wb3J0IHsgQmFyR3JvdXAgYXMgVmlzeEJhckdyb3VwLCBCYXJTdGFjayB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9GaWVsZC90eXBlcyc7XG5pbXBvcnQgeyBzY2FsZUJhbmQgfSBmcm9tICdAdmlzeC9zY2FsZSc7XG5pbXBvcnQgeyBnZXRCYXJGaWxsIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0QmFyRmlsbCc7XG5pbXBvcnQgeyBidWlsZE1hcmdpbiB9IGZyb20gJy4uLy4uL3V0aWxzL2J1aWxkTWFyZ2luJztcbmltcG9ydCB7XG4gIENoYXJ0RGF0YURlZmluaXRpb24sXG4gIENoYXJ0T25WaWV3Q2xpY2ssXG4gIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsXG4gIERhdGFJdGVtLFxuICBTaGFwZURlZmluaXRpb24sXG59IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgbGlnaHRlbkNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbG9yLmZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyR3JvdXBCYXIsIEJhckdyb3VwIGFzIEJhckdyb3VwVHlwZSwgRGF0dW1PYmplY3QgfSBmcm9tICdAdmlzeC9zaGFwZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgdXNlRmxhdHRlbmVkRGF0YSB9IGZyb20gJy4uL2hvb2tzL3VzZUZsYXR0ZW5lZERhdGEnO1xuaW1wb3J0IEdvYWxMaW5lcyBmcm9tICcuLi9Hb2FsTGluZS9Hb2FsTGluZXMnO1xuaW1wb3J0IHsgQXhpc0JvdHRvbSB9IGZyb20gJy4uL0F4aXMvQXhpc0JvdHRvbSc7XG5pbXBvcnQgeyBBeGlzTGVmdCB9IGZyb20gJy4uL0F4aXMvQXhpc0xlZnQnO1xuaW1wb3J0IHsgR3JpZFJvd3MgfSBmcm9tICcuLi9HcmlkUm93cy9HcmlkUm93cyc7XG5pbXBvcnQgeyBDaGFydFdyYXBwZXIgfSBmcm9tICcuLi9DaGFydFdyYXBwZXIvQ2hhcnRXcmFwcGVyJztcbmltcG9ydCB7IFNjYWxlTGluZWFyLCBTY2FsZUJhbmQgfSBmcm9tICdAdmlzeC92ZW5kb3IvZDMtc2NhbGUnO1xuaW1wb3J0IHsgTGluZSB9IGZyb20gJy4uL1Rvb2x0aXAvTGluZSc7XG5pbXBvcnQgdXNlVG9vbHRpcCBmcm9tICcuLi9ob29rcy91c2VUb29sdGlwJztcbmltcG9ydCB7IHVzZUJhclhTY2FsZSB9IGZyb20gJy4vdXNlQmFyWFNjYWxlJztcbmltcG9ydCB7IHVzZVlTY2FsZSB9IGZyb20gJy4uL2hvb2tzL3VzZVlTY2FsZSc7XG5cbi8vIE5lZWQgdG8gbG9vayBhdCB1cGRhdGluZyBCYXJDaGFydCB0byB1c2UgdGhpcyB0eXBlIG1ldGhvZCBvZiByZW5kZXJpbmcgLSBodHRwczovL2NvZGVzYW5kYm94LmlvL3Avc2FuZGJveC92aXN4LWJhci1jaGFydC1qOXNtcGo/ZmlsZT0lMkZFeGFtcGxlLnRzeFxuLy8gQ3VycmVudGx5IGl0J3MgdXNpbmcgU3RhY2tlZCBDaGFydCB3aGljaCBpc24ndCB0ZWNobmljYWxseSBjb3JyZWN0XG5cbmV4cG9ydCB0eXBlIEJhckNoYXJ0UHJvcHMgPSB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB0aGVtZT86IENoYXJ0VGhlbWU7XG4gIGNoYXJ0OiBCYXJDaGFydFJlcHJlc2VudGF0aW9uO1xuICBvcHRpb25zOiB7XG4gICAgc3RhY2tlZDogYm9vbGVhbjtcbiAgICBzaG93Um91bmRlZFRvdGFsOiBib29sZWFuO1xuICAgIHNob3dMZWdlbmQ6IGJvb2xlYW47XG4gICAgcmVtb3ZlU3Ryb2tlOiBib29sZWFuO1xuICAgIGF4aXM6IHtcbiAgICAgIHNob3dYQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICAgIHNob3dZQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBvbkNsaWNrOiAocGFyYW1zOiBDaGFydE9uVmlld0NsaWNrKSA9PiB2b2lkO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCQVJfUkFESVVTID0gMjtcblxuZXhwb3J0IGNvbnN0IEJhckNoYXJ0ID0gKHsgY2hhcnQsIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMsIHRoZW1lLCBvbkNsaWNrLCBlbmFibGVIb3ZlciB9OiBCYXJDaGFydFByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICB0b29sdGlwT3BlbixcbiAgICB0b29sdGlwTGVmdCA9IDAsXG4gICAgdG9vbHRpcFRvcCA9IDAsXG4gICAgbGluZUxlZnQgPSAwLFxuICAgIHRvb2x0aXBEYXRhLFxuICAgIGhpZGVUb29sdGlwLFxuICAgIHNob3dUb29sdGlwLFxuICB9ID0gdXNlVG9vbHRpcDx7XG4gICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgfSB8IG51bGw+KCk7XG5cbiAgY29uc3QgbWFyZ2luID0gYnVpbGRNYXJnaW4oY2hhcnQueS50aWNrcywgb3B0aW9ucy5heGlzLnNob3dZQXhpc0xhYmVscywgY2hhcnQueS50aXRsZSAhPSBudWxsLCBjaGFydC54LnRpdGxlICE9IG51bGwpO1xuXG4gIC8vIGNvbnN0IFt2aXNpYmxlWUtleXMsIHNldFZpc2libGVZS2V5c10gPSB1c2VTdGF0ZShjaGFydC5iYXJzLm1hcCgobGVnZW5kSXRlbSkgPT4gbGVnZW5kSXRlbS55S2V5KSk7XG5cbiAgY29uc3QgaW5uZXJXaWR0aCA9IHdpZHRoIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gIGNvbnN0IGlubmVySGVpZ2h0ID0gaGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSAob3B0aW9ucy5zaG93TGVnZW5kID8gNDAgOiAwKTtcbiAgY29uc3QgeEtleSA9IGNoYXJ0Lngua2V5O1xuICBjb25zdCB4U2NhbGVLZXkgPSBjaGFydC54LnNjYWxlLmtleTtcbiAgY29uc3QgeVNjYWxlS2V5cyA9IGNoYXJ0Lnkua2V5cztcbiAgY29uc3QgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlID0gY2hhcnQueC5zY2FsZS5kYXRhVHlwZTtcblxuICBjb25zdCB4U2NhbGUgPSB1c2VCYXJYU2NhbGUoeFNjYWxlRGF0YVR5cGUsIGlubmVyV2lkdGgsIHhTY2FsZUtleSwgY2hhcnQuZGF0YSk7XG5cbiAgY29uc3QgeVNjYWxlID0gdXNlWVNjYWxlKGlubmVySGVpZ2h0LCBjaGFydC55LnNjYWxlKTtcblxuICBjb25zdCBpbm5lclhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3B0aW9ucy5zdGFja2VkICYmIHhTY2FsZSAmJiAnYmFuZHdpZHRoJyBpbiB4U2NhbGUpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgeFNjYWxlPy5iYW5kd2lkdGgoKV0sXG4gICAgICAgIGRvbWFpbjogeVNjYWxlS2V5cyxcbiAgICAgICAgcGFkZGluZzogMC4xLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSwgW3hTY2FsZSwgeVNjYWxlS2V5cywgb3B0aW9ucy5zdGFja2VkLCB4U2NhbGVEYXRhVHlwZV0pO1xuXG4gIGNvbnN0IGRhdGFGbGF0dGVuZWQgPSB1c2VGbGF0dGVuZWREYXRhPENoYXJ0RGF0YURlZmluaXRpb24+KHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0LmRhdGEsIGNoYXJ0Lnkua2V5cyk7XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PFNWR0VsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIXhLZXkgfHwgIXhTY2FsZUtleSB8fCB4U2NhbGUgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgY29uc3QgdG9vbHRpcERhdGEgPSBnZXRUb29sdGlwRGF0YSh7XG4gICAgICAgIGRhdGE6IGNoYXJ0LmRhdGEsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgIHhTY2FsZUtleSxcbiAgICAgICAgeFNjYWxlRGF0YVR5cGUsXG4gICAgICAgIHhPcmRlcmluZzogY2hhcnQueC5zY2FsZS5vcmRlcmluZyxcbiAgICAgICAgeFNjYWxlLFxuICAgICAgICBjaGFydFR5cGU6ICdiYXInLFxuICAgICAgfSk7XG5cbiAgICAgIHNob3dUb29sdGlwKHtcbiAgICAgICAgbGluZUxlZnQ6IHRvb2x0aXBEYXRhPy5saW5lTGVmdCxcbiAgICAgICAgdG9vbHRpcExlZnQ6IGV2ZW50LnBhZ2VYLFxuICAgICAgICB0b29sdGlwVG9wOiBldmVudC5wYWdlWSxcbiAgICAgICAgdG9vbHRpcERhdGE6IHRvb2x0aXBEYXRhPy50b29sdGlwRGF0YSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW3Nob3dUb29sdGlwLCB4U2NhbGUsIG1hcmdpbiwgeEtleSwgeFNjYWxlS2V5LCB4U2NhbGVEYXRhVHlwZSwgY2hhcnQueC5zY2FsZS5vcmRlcmluZywgY2hhcnQuZGF0YV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhpZGVUb29sdGlwKCk7XG4gIH0sIFtoaWRlVG9vbHRpcF0pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQmFyQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogQmFyR3JvdXBUeXBlPHN0cmluZz4sIGJhcjogQmFyR3JvdXBCYXI8c3RyaW5nPikgPT4ge1xuICAgICAgb25DbGljayh7XG4gICAgICAgIGNsaWNrZWRWYWx1ZToge1xuICAgICAgICAgIGluZGV4OiBiYXJHcm91cC5pbmRleCxcbiAgICAgICAgICB5OiB7XG4gICAgICAgICAgICBrZXk6IGJhci5rZXksXG4gICAgICAgICAgICB2YWx1ZTogYmFyLnZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeDoge1xuICAgICAgICAgICAgLi4uY2hhcnQueC50aWNrc1tiYXJHcm91cC5pbmRleF0sXG4gICAgICAgICAgICB2YWx1ZTogY2hhcnQuZGF0YVtiYXJHcm91cC5pbmRleF1beEtleV0udmFsdWUgPz8gJycsXG4gICAgICAgICAgICBrZXk6IHhLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xpY2tFdmVudDogZXZlbnQsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNsaWNrLCBjaGFydC5kYXRhLCB4S2V5XVxuICApO1xuXG4gIGNvbnN0IHRoZW1lQ1NTID0gdXNlTWVtbygoKSA9PiBnZXRDaGFydFRoZW1lQ1NTKHRoZW1lKSwgW3RoZW1lXSk7XG5cbiAgY29uc3QgeVRpY2tWYWx1ZXMgPSBjaGFydC55LnRpY2tzLm1hcCh0aWNrID0+IE51bWJlcih0aWNrLnZhbHVlKSk7XG5cbiAgY29uc3QgbGVnZW5kVG9vbHRpcEl0ZW1zID0gW1xuICAgIHtcbiAgICAgIHZpc2libGVZS2V5czogY2hhcnQuYmFycy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpLFxuICAgICAgbGVnZW5kSXRlbXM6IGNoYXJ0LmJhcnMsXG4gICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogY2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gICAgfSxcbiAgXTtcbiAgcmV0dXJuIChcbiAgICA8RnJhZ21lbnQ+XG4gICAgICA8Q2hhcnRXcmFwcGVyXG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgc2hvd0xlZ2VuZD17b3B0aW9ucy5zaG93TGVnZW5kfVxuICAgICAgPlxuICAgICAgICA8R3JvdXAgbGVmdD17bWFyZ2luLmxlZnR9IHRvcD17bWFyZ2luLnRvcH0+XG4gICAgICAgICAgPEdyaWRSb3dzXG4gICAgICAgICAgICB0aWNrcz17eVRpY2tWYWx1ZXN9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0JvdHRvbVxuICAgICAgICAgICAgeD17Y2hhcnQueH1cbiAgICAgICAgICAgIG1hcmdpbj17bWFyZ2lufVxuICAgICAgICAgICAgdGhlbWVDU1M9e3RoZW1lQ1NTfVxuICAgICAgICAgICAgc2hvdz17b3B0aW9ucy5heGlzLnNob3dYQXhpc0xhYmVsc31cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB4U2NhbGVEYXRhVHlwZT17eFNjYWxlRGF0YVR5cGV9XG4gICAgICAgICAgICB4U2NhbGU9e3hTY2FsZX1cbiAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0xlZnRcbiAgICAgICAgICAgIHNob3c9e29wdGlvbnMuYXhpcy5zaG93WUF4aXNMYWJlbHN9XG4gICAgICAgICAgICB5PXtjaGFydC55fVxuICAgICAgICAgICAgbWFyZ2luPXttYXJnaW59XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHRpY2tzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgIHN0cm9rZT17dGhlbWU/LmF4aXM/LnN0cm9rZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxHcm91cD5cbiAgICAgICAgICAgIHshb3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhckdyb3VwXG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXt5U2NhbGVLZXlzfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgeEtleT17eEtleX1cbiAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZT17eFNjYWxlRGF0YVR5cGV9XG4gICAgICAgICAgICAgICAgeFNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgICAgaW5uZXJYU2NhbGU9e2lubmVyWFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9uQmFyQ2xpY2t9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgIGJhcnM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgICAgICAgZW5hYmxlSG92ZXI9e2VuYWJsZUhvdmVyfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge29wdGlvbnMuc3RhY2tlZCAmJiAoXG4gICAgICAgICAgICAgIDxCYXJTdGFja1xuICAgICAgICAgICAgICAgIHg9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHhWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlQWRqdXN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyh4VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGRhdGE9e2RhdGFGbGF0dGVuZWR9XG4gICAgICAgICAgICAgICAga2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgIG9mZnNldD1cIm5vbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhclN0YWNrcyA9PlxuICAgICAgICAgICAgICAgICAgYmFyU3RhY2tzLm1hcChiYXJTdGFjayA9PlxuICAgICAgICAgICAgICAgICAgICBiYXJTdGFjay5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIuaGVpZ2h0IDwgMykgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkFSX1BBRERJTkcgPSAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1zdGFjay0ke2JhclN0YWNrLmluZGV4fS0ke2Jhci5pbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeT17YmFyLnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodCAtIEJBUl9QQURESU5HfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIuYmFyLmRhdGEpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByeD17QkFSX1JBRElVU31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvQmFyU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgIDwvR3JvdXA+XG4gICAgICAgIHsvKiAtLS0tLSBUT09MVElQIENST1NTSEFJUiAtLS0tLSAqL31cbiAgICAgICAge3Rvb2x0aXBEYXRhICYmIChcbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxMaW5lIHg9e2xpbmVMZWZ0fSBtYXJnaW49e21hcmdpbn0gaGVpZ2h0PXtpbm5lckhlaWdodH0gLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICl9XG4gICAgICAgIHsvKiAtLS0tLSBHT0FMIExJTkVTIC0tLS0tLSAqL31cbiAgICAgICAgPEdvYWxMaW5lcyBnb2FsTGluZXM9e2NoYXJ0LmdvYWxMaW5lc30geT17ZCA9PiB5U2NhbGUoZCl9IG1hcmdpbj17bWFyZ2lufSB3aWR0aD17aW5uZXJXaWR0aH0gLz5cbiAgICAgIDwvQ2hhcnRXcmFwcGVyPlxuICAgICAgey8qIC0tLS0tIExFR0VORCAtLS0tLSAqL31cbiAgICAgIHtvcHRpb25zLnNob3dMZWdlbmQgJiYgKFxuICAgICAgICA8TGVnZW5kXG4gICAgICAgICAgaXRlbXM9e2xlZ2VuZFRvb2x0aXBJdGVtc31cbiAgICAgICAgICBzZXRWaXNpYmxlWUtleXM9eygpID0+IHt9fVxuICAgICAgICAgIGtleXM9e2NoYXJ0LmtleXN9XG4gICAgICAgICAgbWFyZ2luTGVmdD17bWFyZ2luLmxlZnQgLSBtYXJnaW4ubGVmdFRpdGxlT2Zmc2V0fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHsvKiAtLS0tLSBUT09MVElQIC0tLS0tICovfVxuICAgICAge3Rvb2x0aXBPcGVuICYmIHRvb2x0aXBEYXRhICYmIHhLZXkgJiYgKFxuICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgIGl0ZW1zPXtsZWdlbmRUb29sdGlwSXRlbXN9XG4gICAgICAgICAgdG9vbHRpcERhdGE9e3Rvb2x0aXBEYXRhfVxuICAgICAgICAgIHRvb2x0aXBMZWZ0PXt0b29sdGlwTGVmdH1cbiAgICAgICAgICB0b29sdGlwVG9wPXt0b29sdGlwVG9wfVxuICAgICAgICAgIHhLZXk9e3hLZXl9XG4gICAgICAgICAga2V5cz17Y2hhcnQua2V5c31cbiAgICAgICAgICB5S2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgIHNob3dSb3VuZGVkVG90YWw9e29wdGlvbnMuc2hvd1JvdW5kZWRUb3RhbH1cbiAgICAgICAgICB0aGVtZT17dGhlbWVDU1MucG9wb3Zlck1lbnVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEJhckdyb3VwKHtcbiAgZGF0YSxcbiAga2V5cyxcbiAgaGVpZ2h0LFxuICB4S2V5LFxuICB4U2NhbGVEYXRhVHlwZSxcbiAgeFNjYWxlLFxuICBpbm5lclhTY2FsZSxcbiAgeVNjYWxlLFxuICBvbkNsaWNrLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgYmFycyxcbiAgZW5hYmxlSG92ZXIsXG59OiB7XG4gIGRhdGE6IENoYXJ0RGF0YURlZmluaXRpb25bXTtcbiAga2V5czogc3RyaW5nW107XG4gIGhlaWdodDogbnVtYmVyO1xuICB4S2V5OiBzdHJpbmc7XG4gIHhTY2FsZURhdGFUeXBlOiBEYXRhVHlwZTtcbiAgeFNjYWxlOiBTY2FsZUJhbmQ8c3RyaW5nPiB8IFNjYWxlQmFuZDxEYXRlPiB8IFNjYWxlQmFuZDxudW1iZXI+IHwgbnVsbDtcbiAgaW5uZXJYU2NhbGU6IFNjYWxlQmFuZDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICB5U2NhbGU6IFNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyLCBuZXZlcj47XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PiwgYmFyR3JvdXA6IGFueSwgYmFyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlW107XG4gIGJhcnM6IFNoYXBlRGVmaW5pdGlvbjxCYXJTdHlsZXM+W107XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8VmlzeEJhckdyb3VwPERhdHVtT2JqZWN0PlxuICAgICAgZGF0YT17ZGF0YSBhcyBEYXR1bU9iamVjdFtdfVxuICAgICAga2V5cz17a2V5c31cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgeDA9e2QgPT4ge1xuICAgICAgICBjb25zdCB4VmFsdWUgPSBkW3hLZXkgYXMga2V5b2YgdHlwZW9mIGRdO1xuICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4gU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgIGNvbnN0IHhWYWx1ZUFkanVzdGVkID1cbiAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgID8gbmV3IERhdGUoU3RyaW5nKHhWYWx1ZSkpXG4gICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgOiBTdHJpbmcoeFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgfX1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHgwU2NhbGU9e3hTY2FsZX1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHgxU2NhbGU9e2lubmVyWFNjYWxlfVxuICAgICAgeVNjYWxlPXt5U2NhbGV9XG4gICAgICBjb2xvcj17KCkgPT4gJyd9XG4gICAgPlxuICAgICAge2Jhckdyb3VwcyA9PiB7XG4gICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKGJhckdyb3VwID0+IChcbiAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAge2Jhckdyb3VwLmJhcnMubWFwKGJhciA9PiB7XG4gICAgICAgICAgICAgIGlmIChiYXIudmFsdWUgPT09IG51bGwgfHwgYmFyLmhlaWdodCA8IDAgfHwgYmFyLndpZHRoIDwgMCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLWdyb3VwLWJhci0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhci5pbmRleH0tJHtiYXIudmFsdWV9LSR7U3RyaW5nKGJhci5rZXkpfWB9XG4gICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgIHk9e2Jhci55fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e2Jhci53aWR0aH1cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoYmFycywgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIFN0cmluZyhiYXIua2V5KSwgYmFyLnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gb25DbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICAgICAgICAgIGVuYWJsZUhvdmVyPXtlbmFibGVIb3Zlcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgKSk7XG4gICAgICB9fVxuICAgIDwvVmlzeEJhckdyb3VwPlxuICApO1xufVxuXG5jb25zdCBCYXIgPSAocHJvcHM6IHtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xuICBmaWxsPzogc3RyaW5nO1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGtleTogc3RyaW5nO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59KSA9PiB7XG4gIGNvbnN0IFtmaWxsQ29sb3IsIHNldEZpbGxDb2xvcl0gPSB1c2VTdGF0ZShwcm9wcy5maWxsKTtcbiAgcmV0dXJuIChcbiAgICA8cmVjdFxuICAgICAga2V5PXtwcm9wcy5rZXl9XG4gICAgICB4PXtwcm9wcy54fVxuICAgICAgeT17cHJvcHMueX1cbiAgICAgIHdpZHRoPXtwcm9wcy53aWR0aH1cbiAgICAgIGhlaWdodD17cHJvcHMuaGVpZ2h0fVxuICAgICAgZmlsbD17ZmlsbENvbG9yfVxuICAgICAgcng9e0JBUl9SQURJVVN9XG4gICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBwcm9wcy5lbmFibGVIb3ZlciAmJiBzZXRGaWxsQ29sb3IobGlnaHRlbkNvbG9yKHByb3BzLmZpbGwsIDAuOCkpfVxuICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBwcm9wcy5lbmFibGVIb3ZlciAmJiBzZXRGaWxsQ29sb3IocHJvcHMuZmlsbCl9XG4gICAgICBjbGFzc05hbWU9e3Byb3BzLmVuYWJsZUhvdmVyID8gY3NzKHsgY3Vyc29yOiAncG9pbnRlcicgfSkgOiAnJ31cbiAgICAvPlxuICApO1xufTtcbiJdfQ== */",
43709
43768
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
43710
43769
  }) : ''
43711
43770
  }, props.key);
@@ -43881,14 +43940,8 @@ var AreaChart$5 = function AreaChart(_ref) {
43881
43940
  }
43882
43941
  return null;
43883
43942
  }, [innerWidth, chart.x, chart.data]);
43884
- var _yScale = useMemo(function () {
43885
- return scaleLinear({
43886
- range: [innerHeight, 0],
43887
- domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
43888
- nice: true
43889
- });
43890
- }, [innerHeight, chart.y.scale]);
43891
- var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
43943
+ var _yScale = useYScale(innerHeight, chart.y.scale);
43944
+ var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
43892
43945
  var handleMouseMove = useCallback(function (event) {
43893
43946
  if (!xKey || !xScaleKey || xScale === null) return;
43894
43947
  var tooltipData = getTooltipData({
@@ -43918,12 +43971,17 @@ var AreaChart$5 = function AreaChart(_ref) {
43918
43971
  step: curveStep,
43919
43972
  straight: curveLinear
43920
43973
  };
43921
- return curveMap[(_options$curve = options.curve) != null ? _options$curve : 'monotoneX'];
43974
+ return curveMap[(_options$curve = options.curve) != null ? _options$curve : 'natural'];
43922
43975
  }, [options.curve]);
43923
43976
  if (width === 0 || height === 0 || xScale === null) return jsx(React__default.Fragment, {});
43924
43977
  var yTickValues = chart.y.ticks.map(function (tick) {
43925
43978
  return Number(tick.value);
43926
43979
  });
43980
+ var legendTooltipItems = [{
43981
+ visibleYKeys: visibleYKeys,
43982
+ legendItems: chart.areas,
43983
+ conditionalFormattingRules: chart.conditionalFormattingRules
43984
+ }];
43927
43985
  return jsxs(React__default.Fragment, {
43928
43986
  children: [jsxs(ChartWrapper$1, {
43929
43987
  width: width,
@@ -44079,23 +44137,19 @@ var AreaChart$5 = function AreaChart(_ref) {
44079
44137
  width: innerWidth
44080
44138
  })]
44081
44139
  }), options.showLegend && jsx(Legend$1, {
44082
- legendItems: chart.areas,
44083
- visibleYKeys: visibleYKeys,
44140
+ items: legendTooltipItems,
44084
44141
  setVisibleYKeys: setVisibleYKeys,
44085
44142
  keys: chart.keys,
44086
- conditionalFormattingRules: chart.conditionalFormattingRules,
44087
44143
  marginLeft: margin.left - margin.leftTitleOffset
44088
44144
  }), tooltipOpen && tooltipData && xKey && jsx(Tooltip$1, {
44145
+ items: legendTooltipItems,
44089
44146
  tooltipData: tooltipData,
44090
44147
  tooltipLeft: tooltipLeft,
44091
44148
  tooltipTop: tooltipTop,
44092
44149
  xKey: xKey,
44093
44150
  keys: chart.keys,
44094
- visibleYKeys: visibleYKeys,
44095
44151
  yKeys: chart.y.keys,
44096
- legendItems: chart.areas,
44097
44152
  showRoundedTotal: options.showRoundedTotal,
44098
- conditionalFormattingRules: chart.conditionalFormattingRules,
44099
44153
  theme: themeCSS.popoverMenus
44100
44154
  })]
44101
44155
  });
@@ -44398,11 +44452,13 @@ var RadarChart$2 = function RadarChart(_ref) {
44398
44452
  })]
44399
44453
  })
44400
44454
  }), options.showLegend && jsx(Legend$1, {
44401
- legendItems: chart.lines,
44402
- visibleYKeys: visibleYKeys,
44455
+ items: [{
44456
+ legendItems: chart.lines,
44457
+ visibleYKeys: visibleYKeys,
44458
+ conditionalFormattingRules: []
44459
+ }],
44403
44460
  setVisibleYKeys: setVisibleYKeys,
44404
44461
  keys: chart.keys,
44405
- conditionalFormattingRules: [],
44406
44462
  marginLeft: margin.left - margin.leftTitleOffset
44407
44463
  })]
44408
44464
  });
@@ -49114,30 +49170,6 @@ var BarChartV2 = function BarChartV2(props) {
49114
49170
  });
49115
49171
  };
49116
49172
 
49117
- function getBarFill$1(bars, conditionalFormattingRules, barKey, barValues) {
49118
- var _bars$find;
49119
- // Default fill color from the corresponding bar
49120
- var fill = (_bars$find = bars.find(function (chartBar) {
49121
- return chartBar.yKey === barKey;
49122
- })) == null ? void 0 : _bars$find.color;
49123
-
49124
- // Determine the value based on barValues type
49125
- var value = typeof barValues === 'number' ? barValues : barValues == null ? void 0 : barValues[barKey];
49126
- if (typeof value === 'number') {
49127
- for (var _iterator = _createForOfIteratorHelperLoose(conditionalFormattingRules), _step; !(_step = _iterator()).done;) {
49128
- var rule = _step.value;
49129
- if (compare({
49130
- op: rule.operator,
49131
- value: rule.value
49132
- }, value)) {
49133
- fill = rule.color;
49134
- break;
49135
- }
49136
- }
49137
- }
49138
- return fill;
49139
- }
49140
-
49141
49173
  var ASSUMED_AVERAGE_CHAR_WIDTH$1 = 8.8;
49142
49174
  function calculateWordWidth$1(word, avgCharWidth) {
49143
49175
  if (avgCharWidth === void 0) {
@@ -49319,15 +49351,17 @@ var IconTrendingDown$1 = function IconTrendingDown() {
49319
49351
 
49320
49352
  var Legend$2 = function Legend(_ref) {
49321
49353
  var showLegend = _ref.showLegend,
49322
- margin = _ref.margin;
49354
+ margin = _ref.margin,
49355
+ increaseColor = _ref.increaseColor,
49356
+ decreaseColor = _ref.decreaseColor;
49323
49357
  var items = [{
49324
- color: 'green',
49358
+ color: increaseColor,
49325
49359
  yKey: 'increase',
49326
49360
  style: {
49327
49361
  type: 'bar'
49328
49362
  }
49329
49363
  }, {
49330
- color: 'red',
49364
+ color: decreaseColor,
49331
49365
  yKey: 'decrease',
49332
49366
  style: {
49333
49367
  type: 'bar'
@@ -49347,11 +49381,13 @@ var Legend$2 = function Legend(_ref) {
49347
49381
  };
49348
49382
  if (!showLegend) return null;
49349
49383
  return jsx(Legend$1, {
49350
- legendItems: items,
49351
- visibleYKeys: ['increase', 'decrease'],
49384
+ items: [{
49385
+ legendItems: items,
49386
+ visibleYKeys: ['increase', 'decrease'],
49387
+ conditionalFormattingRules: []
49388
+ }],
49352
49389
  keys: keys,
49353
49390
  marginLeft: margin.left - margin.leftTitleOffset,
49354
- conditionalFormattingRules: [],
49355
49391
  setVisibleYKeys: function setVisibleYKeys() {}
49356
49392
  });
49357
49393
  };
@@ -49369,7 +49405,9 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49369
49405
  options = _ref.options,
49370
49406
  chart = _ref.chart,
49371
49407
  steps = _ref.steps,
49372
- theme = _ref.theme;
49408
+ theme = _ref.theme,
49409
+ increaseColor = _ref.increaseColor,
49410
+ decreaseColor = _ref.decreaseColor;
49373
49411
  //Waterfall TODO: fix chart for other x types
49374
49412
  if (chart.x.scale.dataType === 'date_time' || chart.x.scale.dataType === 'number') {
49375
49413
  return null;
@@ -49597,7 +49635,7 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49597
49635
  },
49598
49636
  stroke: (_theme$axis$stroke = theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke) != null ? _theme$axis$stroke : 'transparent'
49599
49637
  }), jsx(Group$2, {
49600
- children: jsx(BarGroup$1, {
49638
+ children: jsx(BarGroup$2, {
49601
49639
  data: dataFlattened,
49602
49640
  keys: yScaleKeys,
49603
49641
  height: innerHeight,
@@ -49618,6 +49656,8 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49618
49656
  left: barGroup.x0,
49619
49657
  children: barGroup.bars.map(function (bar) {
49620
49658
  return jsx(Bar$1, {
49659
+ increaseColor: increaseColor,
49660
+ decreaseColor: decreaseColor,
49621
49661
  bar: bar,
49622
49662
  barGroup: barGroup,
49623
49663
  yScale: yScale,
@@ -49638,7 +49678,9 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49638
49678
  })]
49639
49679
  }), jsx(Legend$2, {
49640
49680
  showLegend: options.showLegend,
49641
- margin: margin
49681
+ margin: margin,
49682
+ increaseColor: increaseColor,
49683
+ decreaseColor: decreaseColor
49642
49684
  }), jsx(Tooltip$2, {
49643
49685
  showTooltip: tooltipOpen,
49644
49686
  tooltipData: tooltipData,
@@ -49654,7 +49696,9 @@ var Bar$1 = function Bar(_ref4) {
49654
49696
  var bar = _ref4.bar,
49655
49697
  barGroup = _ref4.barGroup,
49656
49698
  yScale = _ref4.yScale,
49657
- formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart;
49699
+ formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart,
49700
+ increaseColor = _ref4.increaseColor,
49701
+ decreaseColor = _ref4.decreaseColor;
49658
49702
  var step = formattedChartDataForBarChart.steps[barGroup.index];
49659
49703
  var y = yScale(Math.max(step.start, step.end));
49660
49704
  var barHeight = Math.abs(yScale(step.start) - yScale(step.end));
@@ -49664,7 +49708,7 @@ var Bar$1 = function Bar(_ref4) {
49664
49708
  y: y,
49665
49709
  width: bar.width,
49666
49710
  height: barHeight,
49667
- fill: getBarFill$1(formattedChartDataForBarChart.bars, formattedChartDataForBarChart.conditionalFormattingRules, bar.key, bar.value),
49711
+ fill: bar.value > 0 ? increaseColor : decreaseColor,
49668
49712
  rx: 4
49669
49713
  }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key)
49670
49714
  });
@@ -49940,7 +49984,9 @@ var WaterfallChartView = function WaterfallChartView(props) {
49940
49984
  xAxisPrefix = props.xAxisPrefix,
49941
49985
  yAxisFormat = props.yAxisFormat,
49942
49986
  yAxisPostfix = props.yAxisPostfix,
49943
- yAxisPrefix = props.yAxisPrefix;
49987
+ yAxisPrefix = props.yAxisPrefix,
49988
+ increaseColor = props.increaseColor,
49989
+ decreaseColor = props.decreaseColor;
49944
49990
  var _useDashboardBehaviou = useDashboardBehaviourContext(),
49945
49991
  textOverride = _useDashboardBehaviou.textOverride,
49946
49992
  valueAlias = _useDashboardBehaviou.valueAlias,
@@ -50034,7 +50080,9 @@ var WaterfallChartView = function WaterfallChartView(props) {
50034
50080
  },
50035
50081
  theme: theme == null ? void 0 : theme.charts,
50036
50082
  chart: chartRepresentation,
50037
- steps: steps
50083
+ steps: steps,
50084
+ increaseColor: increaseColor,
50085
+ decreaseColor: decreaseColor
50038
50086
  });
50039
50087
  }
50040
50088
  })
@@ -60530,6 +60578,47 @@ var RichTextFormatSection = function RichTextFormatSection(props) {
60530
60578
  });
60531
60579
  };
60532
60580
 
60581
+ var WaterfallColorsSection = function WaterfallColorsSection(props) {
60582
+ var _props$section;
60583
+ var _useDashboardBehaviou = useDashboardBehaviourContext(),
60584
+ textOverride = _useDashboardBehaviou.textOverride;
60585
+ if (props.attributes.type != 'waterfallChart') return null;
60586
+ var _props$attributes = props.attributes,
60587
+ increaseColor = _props$attributes.increaseColor,
60588
+ decreaseColor = _props$attributes.decreaseColor;
60589
+ var debouncedSetAttributes = debounce$1(props.setAttributes, 200);
60590
+ return jsx(Section, {
60591
+ title: props == null ? void 0 : props.section.title,
60592
+ tooltip: props == null || (_props$section = props.section) == null ? void 0 : _props$section.description,
60593
+ children: jsxs(Section.Grid, {
60594
+ columns: 2,
60595
+ children: [jsx("div", {
60596
+ children: jsx(ColorInput, {
60597
+ id: 'waterfall-increase-color',
60598
+ label: textOverride('increase_color', 'Positive value'),
60599
+ currentValue: increaseColor,
60600
+ setColor: function setColor(increaseColor) {
60601
+ return debouncedSetAttributes({
60602
+ increaseColor: increaseColor
60603
+ });
60604
+ }
60605
+ })
60606
+ }), jsx("div", {
60607
+ children: jsx(ColorInput, {
60608
+ id: 'waterfall-decrease-color',
60609
+ label: textOverride('decrease_color', 'Negative value'),
60610
+ currentValue: decreaseColor,
60611
+ setColor: function setColor(decreaseColor) {
60612
+ return debouncedSetAttributes({
60613
+ decreaseColor: decreaseColor
60614
+ });
60615
+ }
60616
+ })
60617
+ })]
60618
+ })
60619
+ });
60620
+ };
60621
+
60533
60622
  var FormatPanelFromConfig = function FormatPanelFromConfig(props) {
60534
60623
  return jsx(EditorGrid, {
60535
60624
  children: props == null ? void 0 : props.formatPanelConfig.map(function (section, i) {
@@ -60560,6 +60649,8 @@ var FormatPanelFromConfig = function FormatPanelFromConfig(props) {
60560
60649
  section: section
60561
60650
  })), section.type === 'mapColors' && jsx(MapColorsSection, _extends({}, props, {
60562
60651
  section: section
60652
+ })), section.type === 'waterfallColors' && jsx(WaterfallColorsSection, _extends({}, props, {
60653
+ section: section
60563
60654
  })), section.type === 'conditionalFormatting' && jsx(ConditionalFormattingSection, _extends({}, props, {
60564
60655
  section: section
60565
60656
  })), section.type === 'goalLine' && jsx(GoalLineSection, _extends({}, props, {