@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
@@ -1559,7 +1559,7 @@ var upcastFilterType = function upcastFilterType(type) {
1559
1559
  if (type === 'dateTimeFilter') {
1560
1560
  return DATE_FILTER;
1561
1561
  }
1562
- if (type === 'numericFilter' || type === 'multiSelectFilter') {
1562
+ if (type === 'numericFilter') {
1563
1563
  return ADVANCED_FILTER;
1564
1564
  }
1565
1565
  return type;
@@ -10018,7 +10018,9 @@ var attributesSchema$h = function attributesSchema(config) {
10018
10018
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
10019
10019
  axisTitles: axisTitleSchema(),
10020
10020
  headline: headlineSchema(),
10021
- tags: tagsSchema()
10021
+ tags: tagsSchema(),
10022
+ increaseColor: Joi.string().required(),
10023
+ decreaseColor: Joi.string().required()
10022
10024
  }));
10023
10025
  };
10024
10026
 
@@ -10182,6 +10184,11 @@ var CONSTANTS$j = {
10182
10184
  type: 'headline',
10183
10185
  title: 'Headline',
10184
10186
  description: ''
10187
+ },
10188
+ waterfall_colors: {
10189
+ type: 'waterfallColors',
10190
+ title: 'Color selector',
10191
+ description: ''
10185
10192
  }
10186
10193
  }
10187
10194
  };
@@ -10221,6 +10228,8 @@ var WaterfallChart = function WaterfallChart(config) {
10221
10228
  axisTitles: dumped.axisTitles,
10222
10229
  displaySubject: dumped.displaySubject,
10223
10230
  displayTitle: dumped.displayTitle,
10231
+ increaseColor: dumped.increaseColor,
10232
+ decreaseColor: dumped.decreaseColor,
10224
10233
  protectedByOrganisation: dumped.protectedByOrganisation,
10225
10234
  type: dumped.type,
10226
10235
  offset: dumped.offset
@@ -10255,6 +10264,8 @@ var WaterfallChart = function WaterfallChart(config) {
10255
10264
  parameters: {},
10256
10265
  axisTitles: undefined,
10257
10266
  headline: undefined,
10267
+ increaseColor: '#00FF00',
10268
+ decreaseColor: '#FF0000',
10258
10269
  tags: [],
10259
10270
  approxXAxisLabelCount: 'auto',
10260
10271
  approxYAxisLabelCount: 'auto'
@@ -10309,7 +10320,7 @@ var WaterfallChart = function WaterfallChart(config) {
10309
10320
  }), namespace(CONSTANTS$j, 'sort'), namespace(CONSTANTS$j, 'filter'), namespace(CONSTANTS$j, 'custom_metrics'), namespace(CONSTANTS$j, 'limit')];
10310
10321
  },
10311
10322
  formatPanelConfig: function formatPanelConfig() {
10312
- return [headingConstant(CONSTANTS$j), chartStylesConstant(CONSTANTS$j, false, false), axisLabelsConstants(CONSTANTS$j)];
10323
+ return [headingConstant(CONSTANTS$j), namespace(CONSTANTS$j, 'waterfall_colors'), chartStylesConstant(CONSTANTS$j, false, false), axisLabelsConstants(CONSTANTS$j)];
10313
10324
  },
10314
10325
  supportedCustomFields: {
10315
10326
  percentages: true,
@@ -13772,8 +13783,7 @@ var ADMIN_FEATURE_TOGGLES = {
13772
13783
  forceMobile: false,
13773
13784
  unloadOffScreenViews: false,
13774
13785
  showSavingIndicator: false,
13775
- disablePersistingGlobalFiltersLocally: false,
13776
- simpleMultiSelectFilter: false
13786
+ disablePersistingGlobalFiltersLocally: false
13777
13787
  };
13778
13788
  var END_USER_DEFAULT_FEATURE_TOGGLES = {
13779
13789
  parameters: true,
@@ -13810,8 +13820,7 @@ var END_USER_DEFAULT_FEATURE_TOGGLES = {
13810
13820
  forceMobile: false,
13811
13821
  unloadOffScreenViews: false,
13812
13822
  showSavingIndicator: true,
13813
- disablePersistingGlobalFiltersLocally: false,
13814
- simpleMultiSelectFilter: false
13823
+ disablePersistingGlobalFiltersLocally: false
13815
13824
  };
13816
13825
  var build$b = function build(partialFeatureToggles, queryEngineConfig, mode, scope) {
13817
13826
  var featureToggles = {};
@@ -13868,7 +13877,7 @@ var build$b = function build(partialFeatureToggles, queryEngineConfig, mode, sco
13868
13877
  return featureToggles;
13869
13878
  };
13870
13879
  var buildDefaults = function buildDefaults(partialFeatureToggles) {
13871
- var _partialFeatureToggle, _partialFeatureToggle2, _partialFeatureToggle3;
13880
+ var _partialFeatureToggle, _partialFeatureToggle2;
13872
13881
  return {
13873
13882
  showDateAndTimeFilter: partialFeatureToggles.showDateAndTimeFilter !== undefined ? partialFeatureToggles.showDateAndTimeFilter : true,
13874
13883
  showDateFilter: partialFeatureToggles.showDateFilter !== undefined ? partialFeatureToggles.showDateFilter : true,
@@ -13879,8 +13888,7 @@ var buildDefaults = function buildDefaults(partialFeatureToggles) {
13879
13888
  canDownloadViewAsPNG: partialFeatureToggles.canDownloadViewAsPNG !== undefined ? partialFeatureToggles.canDownloadViewAsPNG : true,
13880
13889
  forceMobile: partialFeatureToggles.forceMobile !== undefined ? partialFeatureToggles.forceMobile : false,
13881
13890
  unloadOffScreenViews: partialFeatureToggles.unloadOffScreenViews !== undefined ? partialFeatureToggles.unloadOffScreenViews : false,
13882
- allowCalculatedField: (_partialFeatureToggle2 = partialFeatureToggles.allowCalculatedField) != null ? _partialFeatureToggle2 : false,
13883
- simpleMultiSelectFilter: (_partialFeatureToggle3 = partialFeatureToggles.simpleMultiSelectFilter) != null ? _partialFeatureToggle3 : false
13891
+ allowCalculatedField: (_partialFeatureToggle2 = partialFeatureToggles.allowCalculatedField) != null ? _partialFeatureToggle2 : false
13884
13892
  };
13885
13893
  };
13886
13894
 
@@ -28844,8 +28852,7 @@ var AdditionalFilter = function AdditionalFilter(props) {
28844
28852
  onChange = props.onChange,
28845
28853
  shouldAlwaysHaveValue = props.shouldAlwaysHaveValue;
28846
28854
  var _useDashboardBehaviou = useDashboardBehaviourContext(),
28847
- queryEngineConfig = _useDashboardBehaviou.queryEngineConfig,
28848
- featureToggles = _useDashboardBehaviou.featureToggles;
28855
+ queryEngineConfig = _useDashboardBehaviou.queryEngineConfig;
28849
28856
 
28850
28857
  /** Validate the new filter before setting it */
28851
28858
  var onChangeWithValidation = function onChangeWithValidation(newFilter) {
@@ -28896,7 +28903,7 @@ var AdditionalFilter = function AdditionalFilter(props) {
28896
28903
  dataSets: props.dataSets
28897
28904
  }, typeof props.filter.value === 'boolean' ? undefined : JSON.stringify(props.filter.value));
28898
28905
  }
28899
- if (filter.type == MULTI_SELECT_FILTER && featureToggles.simpleMultiSelectFilter) {
28906
+ if (filter.type == MULTI_SELECT_FILTER) {
28900
28907
  return jsxRuntime.jsx(MultiSelectFilter, {
28901
28908
  showClearBtn: !shouldAlwaysHaveValue,
28902
28909
  filter: filter,
@@ -38080,13 +38087,11 @@ var AddFilterForm = function AddFilterForm(props) {
38080
38087
  value: SINGLE_SELECT_FILTER,
38081
38088
  subText: textOverride('single_select_filter_description', 'Choose a single option from the list to filter. ')
38082
38089
  }];
38083
- if (featureToggles.simpleMultiSelectFilter) {
38084
- filterTypes.push({
38085
- label: textOverride('multi_select', 'Multi select'),
38086
- value: MULTI_SELECT_FILTER,
38087
- subText: textOverride('multi_select_description', 'Allow multiple selections.')
38088
- });
38089
- }
38090
+ filterTypes.push({
38091
+ label: textOverride('multi_select', 'Multi select'),
38092
+ value: MULTI_SELECT_FILTER,
38093
+ subText: textOverride('multi_select_description', 'Allow multiple selections.')
38094
+ });
38090
38095
  filterTypes.push({
38091
38096
  label: textOverride('advanced_filter', 'Advanced filter'),
38092
38097
  value: ADVANCED_FILTER,
@@ -42317,16 +42322,14 @@ var SCROLLBAR_WIDTH = 40;
42317
42322
  var Tooltip$1 = function Tooltip(_ref) {
42318
42323
  var _tooltipData$xKey$for;
42319
42324
  var keys = _ref.keys,
42320
- legendItems = _ref.legendItems,
42321
42325
  showRoundedTotal = _ref.showRoundedTotal,
42322
42326
  tooltipData = _ref.tooltipData,
42323
42327
  tooltipLeft = _ref.tooltipLeft,
42324
42328
  tooltipTop = _ref.tooltipTop,
42325
- visibleYKeys = _ref.visibleYKeys,
42326
42329
  xKey = _ref.xKey,
42327
42330
  yKeys = _ref.yKeys,
42328
- conditionalFormattingRules = _ref.conditionalFormattingRules,
42329
- theme = _ref.theme;
42331
+ theme = _ref.theme,
42332
+ items = _ref.items;
42330
42333
  var tooltipRef = React.useRef(null);
42331
42334
  var _useState = React.useState({
42332
42335
  left: tooltipLeft
@@ -42375,7 +42378,7 @@ var Tooltip$1 = function Tooltip(_ref) {
42375
42378
  fontSize: '15px',
42376
42379
  width: '100%',
42377
42380
  minWidth: MIN_TOOLTIP_WIDTH
42378
- }, ";label:Tooltip;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGK0IiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBMZWdlbmRJdGVtQm94IH0gZnJvbSAnLi4vTGVnZW5kL0xlZ2VuZEl0ZW1Cb3gnO1xuaW1wb3J0IHsgU2hhcGVEZWZpbml0aW9uLCBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlLCBEYXRhSXRlbSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9MaW5lQ2hhcnRWMi90eXBlcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcblxuY29uc3QgTUlOX1RPT0xUSVBfV0lEVEggPSAxODA7XG5jb25zdCBUT09MVElQX09GRlNFVCA9IDIwO1xuY29uc3QgU0NST0xMQkFSX1dJRFRIID0gNDA7XG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAgICBrZXlzOiB7IFtrZXk6IHN0cmluZ106IEtleSB9O1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIHNob3dSb3VuZGVkVG90YWw6IGJvb2xlYW47XG4gICAgdG9vbHRpcERhdGE6IHtcbiAgICAgICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgICB9O1xuICAgIHRvb2x0aXBMZWZ0OiBudW1iZXI7XG4gICAgdG9vbHRpcFRvcDogbnVtYmVyO1xuICAgIHZpc2libGVZS2V5czogc3RyaW5nW107XG4gICAgeEtleTogc3RyaW5nO1xuICAgIHlLZXlzOiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogQXJyYXk8Q29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZT47XG4gICAgdGhlbWU6IENTU1Byb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBjb25zdCBUb29sdGlwID0gKHtcbiAgICBrZXlzLFxuICAgIGxlZ2VuZEl0ZW1zLFxuICAgIHNob3dSb3VuZGVkVG90YWwsXG4gICAgdG9vbHRpcERhdGEsXG4gICAgdG9vbHRpcExlZnQsXG4gICAgdG9vbHRpcFRvcCxcbiAgICB2aXNpYmxlWUtleXMsXG4gICAgeEtleSxcbiAgICB5S2V5cyxcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgICB0aGVtZSxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgbGVmdDogbnVtYmVyIH0+KHtcbiAgICAgICAgbGVmdDogdG9vbHRpcExlZnQsXG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBhZGp1c3RUb29sdGlwUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRvb2x0aXBSZWYuY3VycmVudDtcblxuICAgICAgICAgICAgaWYgKHRvb2x0aXBFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0b29sdGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IHJlY3Qud2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1JTl9UT09MVElQX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0gdG9vbHRpcExlZnQgKyBUT09MVElQX09GRlNFVDtcblxuICAgICAgICAgICAgICAgIGlmICh0b29sdGlwTGVmdCArIHdpZHRoID4gc2NyZWVuV2lkdGggLSBTQ1JPTExCQVJfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHRvb2x0aXBMZWZ0IC0gd2lkdGggLSBUT09MVElQX09GRlNFVDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgYWRqdXN0VG9vbHRpcFBvc2l0aW9uKCk7XG4gICAgfSwgW3Rvb2x0aXBMZWZ0XSk7XG5cbiAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uLmxlZnQsXG4gICAgICAgICAgICAgICAgdG9wOiB0b29sdGlwVG9wLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAgICAgICAgIC4uLnRoZW1lLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW3hLZXldLmZvcm1hdHRlZFZhbHVlID8/IHRvb2x0aXBEYXRhW3hLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICAgICAgICAgICAgY2VsbFNwYWNpbmc9ezB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyU3BhY2luZzogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sbGFwc2U6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsZWdlbmRJdGVtcy5tYXAoKGxlZ2VuZEl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8geUtleSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdG9vbHRpcERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVZS2V5cy5pbmNsdWRlcyhsZWdlbmRJdGVtLnlLZXkpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e2xlZ2VuZEl0ZW0ueUtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IGluZGV4ID09PSAwID8gJzEycHggOHB4IDAgMCcgOiAnOHB4IDhweCAwIDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMZWdlbmRJdGVtQm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17Z2V0Q29sb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvcjogbGVnZW5kSXRlbS5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5OiBsZWdlbmRJdGVtLnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtsZWdlbmRJdGVtLnN0eWxlIGFzIExpbmVTdHlsZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5PXtsZWdlbmRJdGVtLnlLZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnOHB4IDAgMCAxNnB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1JvdW5kZWRUb3RhbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sU3Bhbj17Mn0gc3R5bGU9e3sgcGFkZGluZzogJzEycHggMCAwIDAnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm91bmRlZCBUb3RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgTWF0aC5yb3VuZCh0b29sdGlwRGF0YVtrZXldLnZhbHVlIGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAwKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICk7XG59O1xuIl19 */"),
42381
+ }, ";label:Tooltip;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBGcUIiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUJveCB9IGZyb20gJy4uL0xlZ2VuZC9MZWdlbmRJdGVtQm94JztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgRGF0YUl0ZW0sIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5cbmNvbnN0IE1JTl9UT09MVElQX1dJRFRIID0gMTgwO1xuY29uc3QgVE9PTFRJUF9PRkZTRVQgPSAyMDtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgdG9vbHRpcERhdGE6IHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9O1xuICB0b29sdGlwTGVmdDogbnVtYmVyO1xuICB0b29sdGlwVG9wOiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeUtleXM6IHN0cmluZ1tdO1xuICBpdGVtczoge1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgICB2aXNpYmxlWUtleXM6IHN0cmluZ1tdO1xuICB9W107XG4gIHRoZW1lOiBDU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgVG9vbHRpcCA9ICh7XG4gIGtleXMsXG4gIHNob3dSb3VuZGVkVG90YWwsXG4gIHRvb2x0aXBEYXRhLFxuICB0b29sdGlwTGVmdCxcbiAgdG9vbHRpcFRvcCxcbiAgeEtleSxcbiAgeUtleXMsXG4gIHRoZW1lLFxuICBpdGVtcyxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGU8eyBsZWZ0OiBudW1iZXIgfT4oe1xuICAgIGxlZnQ6IHRvb2x0aXBMZWZ0LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFkanVzdFRvb2x0aXBQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICBjb25zdCByZWN0ID0gdG9vbHRpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHdpZHRoID0gcmVjdC53aWR0aDtcblxuICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgIHdpZHRoID0gTUlOX1RPT0xUSVBfV0lEVEg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVmdCA9IHRvb2x0aXBMZWZ0ICsgVE9PTFRJUF9PRkZTRVQ7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBMZWZ0ICsgd2lkdGggPiBzY3JlZW5XaWR0aCAtIFNDUk9MTEJBUl9XSURUSCkge1xuICAgICAgICAgIGxlZnQgPSB0b29sdGlwTGVmdCAtIHdpZHRoIC0gVE9PTFRJUF9PRkZTRVQ7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkanVzdFRvb2x0aXBQb3NpdGlvbigpO1xuICB9LCBbdG9vbHRpcExlZnRdKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxuICAgICAgICB0b3A6IHRvb2x0aXBUb3AsXG4gICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAuLi50aGVtZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dG9vbHRpcERhdGFbeEtleV0uZm9ybWF0dGVkVmFsdWUgPz8gdG9vbHRpcERhdGFbeEtleV0udmFsdWV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGFibGVcbiAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICBjZWxsU3BhY2luZz17MH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nzcyh7XG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgIGJvcmRlclNwYWNpbmc6ICcwJyxcbiAgICAgICAgICAgIGJvcmRlckNvbGxhcHNlOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcCgobGVnZW5kSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyB5S2V5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0b29sdGlwRGF0YVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlWUtleXM/LmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17bGVnZW5kSXRlbS55S2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogaW5kZXggPT09IDAgPyAnMTJweCA4cHggMCAwJyA6ICc4cHggOHB4IDAgMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbUJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2dldENvbG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yOiBsZWdlbmRJdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeUtleTogbGVnZW5kSXRlbS55S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogaXRlbS5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2xlZ2VuZEl0ZW0uc3R5bGUgYXMgTGluZVN0eWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlLZXk9e2xlZ2VuZEl0ZW0ueUtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZzogJzhweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgIHtzaG93Um91bmRlZFRvdGFsICYmIChcbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xTcGFuPXsyfSBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgICBSb3VuZGVkIFRvdGFsXG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCArIE1hdGgucm91bmQodG9vbHRpcERhdGFba2V5XS52YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgfSwgMCl9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59O1xuIl19 */"),
42379
42382
  children: (_tooltipData$xKey$for = tooltipData[xKey].formattedValue) != null ? _tooltipData$xKey$for : tooltipData[xKey].value
42380
42383
  }), jsxRuntime.jsx("table", {
42381
42384
  cellPadding: 0,
@@ -42383,45 +42386,51 @@ var Tooltip$1 = function Tooltip(_ref) {
42383
42386
  className: /*#__PURE__*/css$1.css( {
42384
42387
  name: "9a1sa-Tooltip",
42385
42388
  styles: "margin:0;border-spacing:0;border-collapse:inherit;border:none;label:Tooltip;",
42386
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdHK0IiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBMZWdlbmRJdGVtQm94IH0gZnJvbSAnLi4vTGVnZW5kL0xlZ2VuZEl0ZW1Cb3gnO1xuaW1wb3J0IHsgU2hhcGVEZWZpbml0aW9uLCBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlLCBEYXRhSXRlbSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9MaW5lQ2hhcnRWMi90eXBlcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcblxuY29uc3QgTUlOX1RPT0xUSVBfV0lEVEggPSAxODA7XG5jb25zdCBUT09MVElQX09GRlNFVCA9IDIwO1xuY29uc3QgU0NST0xMQkFSX1dJRFRIID0gNDA7XG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAgICBrZXlzOiB7IFtrZXk6IHN0cmluZ106IEtleSB9O1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIHNob3dSb3VuZGVkVG90YWw6IGJvb2xlYW47XG4gICAgdG9vbHRpcERhdGE6IHtcbiAgICAgICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgICB9O1xuICAgIHRvb2x0aXBMZWZ0OiBudW1iZXI7XG4gICAgdG9vbHRpcFRvcDogbnVtYmVyO1xuICAgIHZpc2libGVZS2V5czogc3RyaW5nW107XG4gICAgeEtleTogc3RyaW5nO1xuICAgIHlLZXlzOiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogQXJyYXk8Q29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZT47XG4gICAgdGhlbWU6IENTU1Byb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBjb25zdCBUb29sdGlwID0gKHtcbiAgICBrZXlzLFxuICAgIGxlZ2VuZEl0ZW1zLFxuICAgIHNob3dSb3VuZGVkVG90YWwsXG4gICAgdG9vbHRpcERhdGEsXG4gICAgdG9vbHRpcExlZnQsXG4gICAgdG9vbHRpcFRvcCxcbiAgICB2aXNpYmxlWUtleXMsXG4gICAgeEtleSxcbiAgICB5S2V5cyxcbiAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgICB0aGVtZSxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgbGVmdDogbnVtYmVyIH0+KHtcbiAgICAgICAgbGVmdDogdG9vbHRpcExlZnQsXG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBhZGp1c3RUb29sdGlwUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRvb2x0aXBSZWYuY3VycmVudDtcblxuICAgICAgICAgICAgaWYgKHRvb2x0aXBFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0b29sdGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IHJlY3Qud2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1JTl9UT09MVElQX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0gdG9vbHRpcExlZnQgKyBUT09MVElQX09GRlNFVDtcblxuICAgICAgICAgICAgICAgIGlmICh0b29sdGlwTGVmdCArIHdpZHRoID4gc2NyZWVuV2lkdGggLSBTQ1JPTExCQVJfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHRvb2x0aXBMZWZ0IC0gd2lkdGggLSBUT09MVElQX09GRlNFVDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgYWRqdXN0VG9vbHRpcFBvc2l0aW9uKCk7XG4gICAgfSwgW3Rvb2x0aXBMZWZ0XSk7XG5cbiAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uLmxlZnQsXG4gICAgICAgICAgICAgICAgdG9wOiB0b29sdGlwVG9wLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAgICAgICAgIC4uLnRoZW1lLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW3hLZXldLmZvcm1hdHRlZFZhbHVlID8/IHRvb2x0aXBEYXRhW3hLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICAgICAgICAgICAgY2VsbFNwYWNpbmc9ezB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyU3BhY2luZzogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sbGFwc2U6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsZWdlbmRJdGVtcy5tYXAoKGxlZ2VuZEl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8geUtleSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdG9vbHRpcERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVZS2V5cy5pbmNsdWRlcyhsZWdlbmRJdGVtLnlLZXkpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e2xlZ2VuZEl0ZW0ueUtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IGluZGV4ID09PSAwID8gJzEycHggOHB4IDAgMCcgOiAnOHB4IDhweCAwIDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMZWdlbmRJdGVtQm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17Z2V0Q29sb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvcjogbGVnZW5kSXRlbS5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5OiBsZWdlbmRJdGVtLnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtsZWdlbmRJdGVtLnN0eWxlIGFzIExpbmVTdHlsZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5S2V5PXtsZWdlbmRJdGVtLnlLZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnOHB4IDAgMCAxNnB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1JvdW5kZWRUb3RhbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sU3Bhbj17Mn0gc3R5bGU9e3sgcGFkZGluZzogJzEycHggMCAwIDAnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm91bmRlZCBUb3RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgTWF0aC5yb3VuZCh0b29sdGlwRGF0YVtrZXldLnZhbHVlIGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAwKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICk7XG59O1xuIl19 */",
42389
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlHcUIiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUJveCB9IGZyb20gJy4uL0xlZ2VuZC9MZWdlbmRJdGVtQm94JztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgRGF0YUl0ZW0sIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5cbmNvbnN0IE1JTl9UT09MVElQX1dJRFRIID0gMTgwO1xuY29uc3QgVE9PTFRJUF9PRkZTRVQgPSAyMDtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgdG9vbHRpcERhdGE6IHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9O1xuICB0b29sdGlwTGVmdDogbnVtYmVyO1xuICB0b29sdGlwVG9wOiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeUtleXM6IHN0cmluZ1tdO1xuICBpdGVtczoge1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgICB2aXNpYmxlWUtleXM6IHN0cmluZ1tdO1xuICB9W107XG4gIHRoZW1lOiBDU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgVG9vbHRpcCA9ICh7XG4gIGtleXMsXG4gIHNob3dSb3VuZGVkVG90YWwsXG4gIHRvb2x0aXBEYXRhLFxuICB0b29sdGlwTGVmdCxcbiAgdG9vbHRpcFRvcCxcbiAgeEtleSxcbiAgeUtleXMsXG4gIHRoZW1lLFxuICBpdGVtcyxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGU8eyBsZWZ0OiBudW1iZXIgfT4oe1xuICAgIGxlZnQ6IHRvb2x0aXBMZWZ0LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFkanVzdFRvb2x0aXBQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICBjb25zdCByZWN0ID0gdG9vbHRpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHdpZHRoID0gcmVjdC53aWR0aDtcblxuICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgIHdpZHRoID0gTUlOX1RPT0xUSVBfV0lEVEg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVmdCA9IHRvb2x0aXBMZWZ0ICsgVE9PTFRJUF9PRkZTRVQ7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBMZWZ0ICsgd2lkdGggPiBzY3JlZW5XaWR0aCAtIFNDUk9MTEJBUl9XSURUSCkge1xuICAgICAgICAgIGxlZnQgPSB0b29sdGlwTGVmdCAtIHdpZHRoIC0gVE9PTFRJUF9PRkZTRVQ7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkanVzdFRvb2x0aXBQb3NpdGlvbigpO1xuICB9LCBbdG9vbHRpcExlZnRdKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxuICAgICAgICB0b3A6IHRvb2x0aXBUb3AsXG4gICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAuLi50aGVtZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dG9vbHRpcERhdGFbeEtleV0uZm9ybWF0dGVkVmFsdWUgPz8gdG9vbHRpcERhdGFbeEtleV0udmFsdWV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGFibGVcbiAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICBjZWxsU3BhY2luZz17MH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nzcyh7XG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgIGJvcmRlclNwYWNpbmc6ICcwJyxcbiAgICAgICAgICAgIGJvcmRlckNvbGxhcHNlOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcCgobGVnZW5kSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyB5S2V5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0b29sdGlwRGF0YVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlWUtleXM/LmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17bGVnZW5kSXRlbS55S2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogaW5kZXggPT09IDAgPyAnMTJweCA4cHggMCAwJyA6ICc4cHggOHB4IDAgMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbUJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2dldENvbG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yOiBsZWdlbmRJdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeUtleTogbGVnZW5kSXRlbS55S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogaXRlbS5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2xlZ2VuZEl0ZW0uc3R5bGUgYXMgTGluZVN0eWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlLZXk9e2xlZ2VuZEl0ZW0ueUtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZzogJzhweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgIHtzaG93Um91bmRlZFRvdGFsICYmIChcbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xTcGFuPXsyfSBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgICBSb3VuZGVkIFRvdGFsXG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCArIE1hdGgucm91bmQodG9vbHRpcERhdGFba2V5XS52YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgfSwgMCl9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59O1xuIl19 */",
42387
42390
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$5
42388
42391
  }),
42389
42392
  children: jsxRuntime.jsxs("tbody", {
42390
- children: [legendItems.map(function (legendItem, index) {
42391
- if (!tooltipData[legendItem.yKey] || tooltipData[legendItem.yKey].value === null) {
42392
- // yKey could not be found in tooltipData
42393
- return null;
42394
- }
42395
- return visibleYKeys.includes(legendItem.yKey) && jsxRuntime.jsxs("tr", {
42396
- children: [jsxRuntime.jsx("td", {
42397
- style: {
42398
- verticalAlign: 'middle',
42399
- padding: index === 0 ? '12px 8px 0 0' : '8px 8px 0 0',
42400
- width: 'auto'
42401
- },
42402
- children: jsxRuntime.jsx(LegendItemBox, {
42403
- color: getColor({
42404
- defaultColor: legendItem.color,
42405
- value: tooltipData[legendItem.yKey].value,
42406
- yKey: legendItem.yKey,
42407
- conditionalFormattingRules: conditionalFormattingRules
42408
- }),
42409
- style: legendItem.style,
42410
- yKey: legendItem.yKey
42411
- })
42412
- }), jsxRuntime.jsx("td", {
42413
- style: {
42414
- padding: '8px 0 0 0'
42415
- },
42416
- children: keys[legendItem.yKey].keyFormatted
42417
- }), jsxRuntime.jsx("td", {
42418
- style: {
42419
- fontWeight: 'bold',
42420
- padding: '8px 0 0 16px'
42421
- },
42422
- children: tooltipData[legendItem.yKey].formattedValue ? tooltipData[legendItem.yKey].formattedValue : tooltipData[legendItem.yKey].value
42423
- })]
42424
- }, legendItem.yKey);
42393
+ children: [items.map(function (item, index) {
42394
+ var _item$legendItems;
42395
+ return jsxRuntime.jsx(React.Fragment, {
42396
+ children: (_item$legendItems = item.legendItems) == null ? void 0 : _item$legendItems.map(function (legendItem, index) {
42397
+ var _item$visibleYKeys, _item$conditionalForm;
42398
+ if (!tooltipData[legendItem.yKey] || tooltipData[legendItem.yKey].value === null) {
42399
+ // yKey could not be found in tooltipData
42400
+ return null;
42401
+ }
42402
+ return ((_item$visibleYKeys = item.visibleYKeys) == null ? void 0 : _item$visibleYKeys.includes(legendItem.yKey)) && jsxRuntime.jsxs("tr", {
42403
+ children: [jsxRuntime.jsx("td", {
42404
+ style: {
42405
+ verticalAlign: 'middle',
42406
+ padding: index === 0 ? '12px 8px 0 0' : '8px 8px 0 0',
42407
+ width: 'auto'
42408
+ },
42409
+ children: jsxRuntime.jsx(LegendItemBox, {
42410
+ color: getColor({
42411
+ defaultColor: legendItem.color,
42412
+ value: tooltipData[legendItem.yKey].value,
42413
+ yKey: legendItem.yKey,
42414
+ conditionalFormattingRules: (_item$conditionalForm = item.conditionalFormattingRules) != null ? _item$conditionalForm : []
42415
+ }),
42416
+ style: legendItem.style,
42417
+ yKey: legendItem.yKey
42418
+ })
42419
+ }), jsxRuntime.jsx("td", {
42420
+ style: {
42421
+ padding: '8px 0 0 0'
42422
+ },
42423
+ children: keys[legendItem.yKey].keyFormatted
42424
+ }), jsxRuntime.jsx("td", {
42425
+ style: {
42426
+ fontWeight: 'bold',
42427
+ padding: '8px 0 0 16px'
42428
+ },
42429
+ children: tooltipData[legendItem.yKey].formattedValue ? tooltipData[legendItem.yKey].formattedValue : tooltipData[legendItem.yKey].value
42430
+ })]
42431
+ }, legendItem.yKey);
42432
+ })
42433
+ }, index);
42425
42434
  }), showRoundedTotal && jsxRuntime.jsxs("tr", {
42426
42435
  children: [jsxRuntime.jsx("td", {
42427
42436
  colSpan: 2,
@@ -42535,16 +42544,14 @@ var LegendItem = function LegendItem(_ref) {
42535
42544
  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)."; }
42536
42545
  var Legend$1 = function Legend(_ref) {
42537
42546
  var keys = _ref.keys,
42538
- visibleYKeys = _ref.visibleYKeys,
42539
- legendItems = _ref.legendItems,
42540
42547
  setVisibleYKeys = _ref.setVisibleYKeys,
42541
- conditionalFormattingRules = _ref.conditionalFormattingRules,
42542
- marginLeft = _ref.marginLeft;
42548
+ marginLeft = _ref.marginLeft,
42549
+ items = _ref.items;
42543
42550
  return jsxRuntime.jsx("div", {
42544
42551
  className: /*#__PURE__*/css$1.css( {
42545
42552
  name: "qz6h7j-Legend",
42546
42553
  styles: "height:40px;padding-top:8px;label:Legend;",
42547
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJvQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGVnZW5kSXRlbSB9IGZyb20gJy4vTGVnZW5kSXRlbSc7XG5pbXBvcnQgeyBTaGFwZURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyIH0gZnJvbSAnLi4vLi4vLi4vU2Nyb2xsYmFyL1Njcm9sbGJhcic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IExpbmVTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0xpbmVDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcblxuaW50ZXJmYWNlIExlZ2VuZFByb3BzPFQ+IHtcbiAgc2V0VmlzaWJsZVlLZXlzOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIHZpc2libGVZS2V5czogQXJyYXk8c3RyaW5nPjtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgbWFyZ2luTGVmdDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgdmlzaWJsZVlLZXlzLFxuICBsZWdlbmRJdGVtcyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgbWFyZ2luTGVmdCxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2xlZ2VuZEl0ZW1zLm1hcChcbiAgICAgICAgICBsZWdlbmRJdGVtID0+XG4gICAgICAgICAgICBrZXlzW2xlZ2VuZEl0ZW0ueUtleV0gJiYgKFxuICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgIHsuLi5sZWdlbmRJdGVtfVxuICAgICAgICAgICAgICAgIGtleT17YGxlZ2VuZC0ke2xlZ2VuZEl0ZW0ueUtleX1gfVxuICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgIHNldFZpc2libGVZS2V5cyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2Lmxlbmd0aCA9PT0gbGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gW2xlZ2VuZEl0ZW0ueUtleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gcHJldi5maWx0ZXIocHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWaXNpYmxlTGVnZW5kSXRlbXMgPSBbLi4ucHJldiwgbGVnZW5kSXRlbS55S2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgID8gbGVnZW5kSXRlbXMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KVxuICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlzaWJsZT17dmlzaWJsZVlLZXlzLmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICApfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */",
42554
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJvQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi9MZWdlbmRJdGVtJztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXIgfSBmcm9tICcuLi8uLi8uLi9TY3JvbGxiYXIvU2Nyb2xsYmFyJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTGVnZW5kUHJvcHM8VD4ge1xuICBzZXRWaXNpYmxlWUtleXM/OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIGtleXM6IHsgW2tleTogc3RyaW5nXTogS2V5IH07XG4gIG1hcmdpbkxlZnQ6IG51bWJlcjtcbiAgaXRlbXM/OiB7XG4gICAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gICAgdmlzaWJsZVlLZXlzOiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgfVtdO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBtYXJnaW5MZWZ0LFxuICBpdGVtcyxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2l0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcChcbiAgICAgICAgICAgICAgbGVnZW5kSXRlbSA9PlxuICAgICAgICAgICAgICAgIGtleXNbbGVnZW5kSXRlbS55S2V5XSAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGVnZW5kSXRlbX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgbGVnZW5kLSR7bGVnZW5kSXRlbS55S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzICYmXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGl0ZW0ubGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFtsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IHByZXYuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFsuLi5wcmV2LCBsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWaXNpYmxlTGVnZW5kSXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5sZWdlbmRJdGVtcy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZT17c2V0VmlzaWJsZVlLZXlzID8gaXRlbS52aXNpYmxlWUtleXMuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSA6IHRydWV9XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtpdGVtLmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICkpfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */",
42548
42555
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$7
42549
42556
  }),
42550
42557
  children: jsxRuntime.jsx(Scrollbar, {
@@ -42554,34 +42561,39 @@ var Legend$1 = function Legend(_ref) {
42554
42561
  flexWrap: 'nowrap',
42555
42562
  alignItems: 'center',
42556
42563
  marginLeft: marginLeft ? marginLeft + "px" : undefined
42557
- }, ";label:Legend;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJtQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGVnZW5kSXRlbSB9IGZyb20gJy4vTGVnZW5kSXRlbSc7XG5pbXBvcnQgeyBTaGFwZURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyIH0gZnJvbSAnLi4vLi4vLi4vU2Nyb2xsYmFyL1Njcm9sbGJhcic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IExpbmVTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0xpbmVDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcblxuaW50ZXJmYWNlIExlZ2VuZFByb3BzPFQ+IHtcbiAgc2V0VmlzaWJsZVlLZXlzOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIHZpc2libGVZS2V5czogQXJyYXk8c3RyaW5nPjtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgbWFyZ2luTGVmdDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgdmlzaWJsZVlLZXlzLFxuICBsZWdlbmRJdGVtcyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgbWFyZ2luTGVmdCxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2xlZ2VuZEl0ZW1zLm1hcChcbiAgICAgICAgICBsZWdlbmRJdGVtID0+XG4gICAgICAgICAgICBrZXlzW2xlZ2VuZEl0ZW0ueUtleV0gJiYgKFxuICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgIHsuLi5sZWdlbmRJdGVtfVxuICAgICAgICAgICAgICAgIGtleT17YGxlZ2VuZC0ke2xlZ2VuZEl0ZW0ueUtleX1gfVxuICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgIHNldFZpc2libGVZS2V5cyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2Lmxlbmd0aCA9PT0gbGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gW2xlZ2VuZEl0ZW0ueUtleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zID0gcHJldi5maWx0ZXIocHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWaXNpYmxlTGVnZW5kSXRlbXMgPSBbLi4ucHJldiwgbGVnZW5kSXRlbS55S2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgID8gbGVnZW5kSXRlbXMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KVxuICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlzaWJsZT17dmlzaWJsZVlLZXlzLmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICApfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */"),
42564
+ }, ";label:Legend;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJtQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi9MZWdlbmRJdGVtJztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXIgfSBmcm9tICcuLi8uLi8uLi9TY3JvbGxiYXIvU2Nyb2xsYmFyJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTGVnZW5kUHJvcHM8VD4ge1xuICBzZXRWaXNpYmxlWUtleXM/OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIGtleXM6IHsgW2tleTogc3RyaW5nXTogS2V5IH07XG4gIG1hcmdpbkxlZnQ6IG51bWJlcjtcbiAgaXRlbXM/OiB7XG4gICAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gICAgdmlzaWJsZVlLZXlzOiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgfVtdO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBtYXJnaW5MZWZ0LFxuICBpdGVtcyxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2l0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcChcbiAgICAgICAgICAgICAgbGVnZW5kSXRlbSA9PlxuICAgICAgICAgICAgICAgIGtleXNbbGVnZW5kSXRlbS55S2V5XSAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGVnZW5kSXRlbX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgbGVnZW5kLSR7bGVnZW5kSXRlbS55S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzICYmXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGl0ZW0ubGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFtsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IHByZXYuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFsuLi5wcmV2LCBsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWaXNpYmxlTGVnZW5kSXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5sZWdlbmRJdGVtcy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZT17c2V0VmlzaWJsZVlLZXlzID8gaXRlbS52aXNpYmxlWUtleXMuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSA6IHRydWV9XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtpdGVtLmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICkpfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */"),
42558
42565
  x: true,
42559
- children: legendItems.map(function (legendItem) {
42560
- return keys[legendItem.yKey] && react.createElement(LegendItem, _extends({}, legendItem, {
42561
- key: "legend-" + legendItem.yKey,
42562
- yKeyFormatted: keys[legendItem.yKey].keyFormatted,
42563
- onClick: function onClick() {
42564
- return setVisibleYKeys(function (prev) {
42565
- var newVisibleLegendItems = [];
42566
- if (prev.length === legendItems.length) {
42567
- newVisibleLegendItems = [legendItem.yKey];
42568
- } else {
42569
- if (prev.includes(legendItem.yKey)) {
42570
- newVisibleLegendItems = prev.filter(function (prevLegendItemId) {
42571
- return prevLegendItemId !== legendItem.yKey;
42572
- });
42573
- } else {
42574
- newVisibleLegendItems = [].concat(prev, [legendItem.yKey]);
42575
- }
42576
- }
42577
- return newVisibleLegendItems.length === 0 ? legendItems.map(function (legendItem) {
42578
- return legendItem.yKey;
42579
- }) : newVisibleLegendItems;
42580
- });
42581
- },
42582
- visible: visibleYKeys.includes(legendItem.yKey),
42583
- conditionalFormattingRules: conditionalFormattingRules
42584
- }));
42566
+ children: items == null ? void 0 : items.map(function (item, index) {
42567
+ var _item$legendItems;
42568
+ return jsxRuntime.jsx(React.Fragment, {
42569
+ children: (_item$legendItems = item.legendItems) == null ? void 0 : _item$legendItems.map(function (legendItem) {
42570
+ return keys[legendItem.yKey] && react.createElement(LegendItem, _extends({}, legendItem, {
42571
+ key: "legend-" + legendItem.yKey,
42572
+ yKeyFormatted: keys[legendItem.yKey].keyFormatted,
42573
+ onClick: function onClick() {
42574
+ return setVisibleYKeys && setVisibleYKeys(function (prev) {
42575
+ var newVisibleLegendItems = [];
42576
+ if (prev.length === item.legendItems.length) {
42577
+ newVisibleLegendItems = [legendItem.yKey];
42578
+ } else {
42579
+ if (prev.includes(legendItem.yKey)) {
42580
+ newVisibleLegendItems = prev.filter(function (prevLegendItemId) {
42581
+ return prevLegendItemId !== legendItem.yKey;
42582
+ });
42583
+ } else {
42584
+ newVisibleLegendItems = [].concat(prev, [legendItem.yKey]);
42585
+ }
42586
+ }
42587
+ return newVisibleLegendItems.length === 0 ? item.legendItems.map(function (legendItem) {
42588
+ return legendItem.yKey;
42589
+ }) : newVisibleLegendItems;
42590
+ });
42591
+ },
42592
+ visible: setVisibleYKeys ? item.visibleYKeys.includes(legendItem.yKey) : true,
42593
+ conditionalFormattingRules: item.conditionalFormattingRules
42594
+ }));
42595
+ })
42596
+ }, index);
42585
42597
  })
42586
42598
  })
42587
42599
  });
@@ -42683,19 +42695,19 @@ var buildMargin = function buildMargin(yTicks, showYAxisLabels, hasYAxisTitle, h
42683
42695
  };
42684
42696
  };
42685
42697
 
42686
- function useFlattenedData(xScaleKey, xScaleDataType, chart) {
42698
+ function useFlattenedData(xScaleKey, xScaleDataType, data, yKeys) {
42687
42699
  return React.useMemo(function () {
42688
- if (xScaleKey && xScaleDataType) {
42700
+ if (xScaleKey && xScaleDataType && yKeys.length > 0) {
42689
42701
  return flattenData({
42690
- data: chart.data,
42702
+ data: data,
42691
42703
  xScaleKey: xScaleKey,
42692
42704
  xScaleDataType: xScaleDataType,
42693
- yKeys: chart.y.keys
42705
+ yKeys: yKeys
42694
42706
  });
42695
42707
  } else {
42696
42708
  return [];
42697
42709
  }
42698
- }, [chart.data, xScaleKey, xScaleDataType, chart.y.keys]);
42710
+ }, [data, xScaleKey, xScaleDataType, yKeys]);
42699
42711
  }
42700
42712
 
42701
42713
  var GoalLine = function GoalLine(_ref) {
@@ -43044,6 +43056,17 @@ function useTooltip$1(initialTooltipState) {
43044
43056
  };
43045
43057
  }
43046
43058
 
43059
+ function useYScale(innerHeight, scale$1) {
43060
+ return React.useMemo(function () {
43061
+ return scale.scaleLinear({
43062
+ range: [innerHeight, 0],
43063
+ domain: scale$1.ordering === 'asc' ? [scale$1.min, scale$1.max] : [scale$1.max, scale$1.min],
43064
+ nice: true,
43065
+ round: true
43066
+ });
43067
+ }, [innerHeight, scale$1]);
43068
+ }
43069
+
43047
43070
  var LineChart$5 = function LineChart(_ref) {
43048
43071
  var _theme$axis;
43049
43072
  var chart = _ref.chart,
@@ -43109,14 +43132,8 @@ var LineChart$5 = function LineChart(_ref) {
43109
43132
  }
43110
43133
  return null;
43111
43134
  }, [innerWidth, chart.x, chart.data]);
43112
- var _yScale = React.useMemo(function () {
43113
- return scale.scaleLinear({
43114
- range: [innerHeight, 0],
43115
- domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
43116
- nice: true
43117
- });
43118
- }, [innerHeight, chart.y]);
43119
- var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
43135
+ var _yScale = useYScale(innerHeight, chart.y.scale);
43136
+ var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
43120
43137
  var handleMouseMove = React.useCallback(function (event) {
43121
43138
  if (!xKey || !xScaleKey || xScale === null) return;
43122
43139
  var tooltipData = getTooltipData({
@@ -43143,6 +43160,11 @@ var LineChart$5 = function LineChart(_ref) {
43143
43160
  var yTickValues = chart.y.ticks.map(function (tick) {
43144
43161
  return Number(tick.value);
43145
43162
  });
43163
+ var legendTooltipItems = [{
43164
+ legendItems: chart.lines,
43165
+ visibleYKeys: visibleYKeys,
43166
+ conditionalFormattingRules: chart.conditionalFormattingRules
43167
+ }];
43146
43168
  return jsxRuntime.jsxs(React__default.Fragment, {
43147
43169
  children: [jsxRuntime.jsxs(ChartWrapper$1, {
43148
43170
  width: width,
@@ -43177,93 +43199,19 @@ var LineChart$5 = function LineChart(_ref) {
43177
43199
  yScale: _yScale,
43178
43200
  ticks: yTickValues,
43179
43201
  stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
43180
- }), jsxRuntime.jsxs(group.Group, {
43181
- children: [chart.y.keys.map(function (yKey) {
43182
- var _chart$lines$filter$;
43183
- return jsxRuntime.jsx(shape.LinePath, {
43184
- visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43185
- data: dataFlattened,
43186
- x: function x(d) {
43187
- var _xScale;
43188
- // @ts-ignore
43189
- var xValue = d[xScaleKey];
43190
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43191
- // @ts-ignore
43192
- return (_xScale = xScale(xValueAdjusted)) != null ? _xScale : 0;
43193
- },
43194
- y: function y(d) {
43195
- return _yScale(Number(d[yKey]));
43196
- },
43197
- stroke: chart.lines.filter(function (legendItem) {
43198
- return legendItem.yKey === yKey;
43199
- })[0].color,
43200
- strokeWidth: chart.lines.filter(function (legendItem) {
43201
- return legendItem.yKey === yKey;
43202
- })[0].style.strokeWidth,
43203
- strokeLinecap: "round",
43204
- strokeDasharray: (_chart$lines$filter$ = chart.lines.filter(function (legendItem) {
43205
- return legendItem.yKey === yKey;
43206
- })[0].style.strokeDasharray) != null ? _chart$lines$filter$ : undefined,
43207
- shapeRendering: "smooth",
43208
- defined: function defined(d) {
43209
- return d[yKey] !== null;
43210
- },
43211
- curve: curve
43212
- }, yKey);
43213
- }), chart.conditionalFormattingRules.map(function (conditionalFormattingRule) {
43214
- var _chart$lines$filter$2;
43215
- if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
43216
- var yKey = conditionalFormattingRule.yKey;
43217
- var clipPathId = "clip-path-" + yKey + "-" + conditionalFormattingRule.value + "-" + conditionalFormattingRule.color + "-" + Math.random(); // Do not remove Math.random() - required to ensure unique clipPathId per view instance
43218
-
43219
- var clipArea = getClipArea({
43220
- conditionalFormattingRule: conditionalFormattingRule,
43221
- chart: {
43222
- width: innerWidth,
43223
- height: innerHeight,
43224
- yScale: _yScale
43225
- }
43226
- });
43227
-
43228
- // return a new <LinePath /> for each conditional formatting rule with a matching <ReactClipPath /> to frame the part of the path that should be visible
43229
- return jsxRuntime.jsxs(group.Group, {
43230
- children: [jsxRuntime.jsx(shape.LinePath, {
43231
- clipPath: "url(#" + clipPathId + ")",
43232
- visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43233
- data: dataFlattened,
43234
- x: function x(d) {
43235
- var _xScale2;
43236
- // @ts-ignore
43237
- var xValue = d[xScaleKey];
43238
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43239
- // @ts-ignore
43240
- return (_xScale2 = xScale(xValueAdjusted)) != null ? _xScale2 : 0;
43241
- },
43242
- y: function y(d) {
43243
- return _yScale(Number(d[yKey]));
43244
- },
43245
- stroke: conditionalFormattingRule.color,
43246
- strokeWidth: chart.lines.filter(function (legendItem) {
43247
- return legendItem.yKey === yKey;
43248
- })[0].style.strokeWidth,
43249
- strokeLinecap: "round",
43250
- strokeDasharray: (_chart$lines$filter$2 = chart.lines.filter(function (legendItem) {
43251
- return legendItem.yKey === yKey;
43252
- })[0].style.strokeDasharray) != null ? _chart$lines$filter$2 : undefined,
43253
- shapeRendering: "smooth",
43254
- defined: function defined(d) {
43255
- return d[yKey] !== null;
43256
- },
43257
- curve: curve
43258
- }, yKey), jsxRuntime.jsx(clipPath.RectClipPath, {
43259
- id: clipPathId,
43260
- x: clipArea.x,
43261
- y: clipArea.y,
43262
- width: clipArea.width,
43263
- height: clipArea.height
43264
- })]
43265
- }, clipPathId);
43266
- })]
43202
+ }), jsxRuntime.jsx(group.Group, {
43203
+ children: xScaleKey !== null && jsxRuntime.jsx(Lines, {
43204
+ lines: chart.lines,
43205
+ conditionalFormattingRules: chart.conditionalFormattingRules,
43206
+ curve: curve,
43207
+ yKeys: chart.y.keys,
43208
+ visibleYKeys: visibleYKeys,
43209
+ data: dataFlattened,
43210
+ xScaleKey: xScaleKey,
43211
+ xScaleDataType: xScaleDataType,
43212
+ xScale: xScale,
43213
+ yScale: _yScale
43214
+ })
43267
43215
  })]
43268
43216
  }), tooltipData && jsxRuntime.jsxs("g", {
43269
43217
  children: [jsxRuntime.jsx(Line, {
@@ -43295,27 +43243,117 @@ var LineChart$5 = function LineChart(_ref) {
43295
43243
  width: innerWidth
43296
43244
  })]
43297
43245
  }), options.showLegend && jsxRuntime.jsx(Legend$1, {
43298
- legendItems: chart.lines,
43299
- visibleYKeys: visibleYKeys,
43246
+ items: legendTooltipItems,
43300
43247
  setVisibleYKeys: setVisibleYKeys,
43301
43248
  keys: chart.keys,
43302
- conditionalFormattingRules: chart.conditionalFormattingRules,
43303
43249
  marginLeft: margin.left - margin.leftTitleOffset
43304
43250
  }), tooltipOpen && tooltipData && xKey && jsxRuntime.jsx(Tooltip$1, {
43251
+ items: legendTooltipItems,
43305
43252
  tooltipData: tooltipData,
43306
43253
  tooltipLeft: tooltipLeft,
43307
43254
  tooltipTop: tooltipTop,
43308
43255
  xKey: xKey,
43309
43256
  keys: chart.keys,
43310
- visibleYKeys: visibleYKeys,
43311
43257
  yKeys: chart.y.keys,
43312
- legendItems: chart.lines,
43313
43258
  showRoundedTotal: options.showRoundedTotal,
43314
- conditionalFormattingRules: chart.conditionalFormattingRules,
43315
43259
  theme: themeCSS.popoverMenus
43316
43260
  })]
43317
43261
  });
43318
43262
  };
43263
+ function Lines(_ref2) {
43264
+ var yKeys = _ref2.yKeys,
43265
+ visibleYKeys = _ref2.visibleYKeys,
43266
+ data = _ref2.data,
43267
+ xScaleKey = _ref2.xScaleKey,
43268
+ xScaleDataType = _ref2.xScaleDataType,
43269
+ xScale = _ref2.xScale,
43270
+ yScale = _ref2.yScale,
43271
+ lines = _ref2.lines,
43272
+ curve = _ref2.curve,
43273
+ conditionalFormattingRules = _ref2.conditionalFormattingRules;
43274
+ return jsxRuntime.jsxs(React.Fragment, {
43275
+ children: [yKeys.map(function (yKey) {
43276
+ var _lines$filter$0$style;
43277
+ return jsxRuntime.jsx(shape.LinePath, {
43278
+ visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43279
+ data: data,
43280
+ x: function x(d) {
43281
+ var _ref3;
43282
+ var xValue = d[xScaleKey];
43283
+ var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43284
+ return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
43285
+ },
43286
+ y: function y(d) {
43287
+ return yScale(d[yKey]);
43288
+ },
43289
+ stroke: lines.filter(function (legendItem) {
43290
+ return legendItem.yKey === yKey;
43291
+ })[0].color,
43292
+ strokeWidth: lines.filter(function (legendItem) {
43293
+ return legendItem.yKey === yKey;
43294
+ })[0].style.strokeWidth,
43295
+ strokeLinecap: "round",
43296
+ strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
43297
+ return legendItem.yKey === yKey;
43298
+ })[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
43299
+ shapeRendering: "smooth",
43300
+ defined: function defined(d) {
43301
+ return d[yKey] !== null;
43302
+ },
43303
+ curve: curve
43304
+ }, yKey);
43305
+ }), conditionalFormattingRules.map(function (conditionalFormattingRule) {
43306
+ var _lines$filter$0$style2;
43307
+ if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
43308
+ var yKey = conditionalFormattingRule.yKey;
43309
+ var clipPathId = "clip-path-" + yKey + "-" + conditionalFormattingRule.value + "-" + conditionalFormattingRule.color + "-" + Math.random(); // Do not remove Math.random() - required to ensure unique clipPathId per view instance
43310
+
43311
+ var clipArea = getClipArea({
43312
+ conditionalFormattingRule: conditionalFormattingRule,
43313
+ chart: {
43314
+ width: innerWidth,
43315
+ height: innerHeight,
43316
+ yScale: yScale
43317
+ }
43318
+ });
43319
+ return jsxRuntime.jsxs(group.Group, {
43320
+ children: [jsxRuntime.jsx(shape.LinePath, {
43321
+ clipPath: "url(#" + clipPathId + ")",
43322
+ visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
43323
+ data: data,
43324
+ x: function x(d) {
43325
+ var _ref4;
43326
+ var xValue = d[xScaleKey];
43327
+ var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43328
+ return (_ref4 = xScale(xValueAdjusted)) != null ? _ref4 : 0;
43329
+ },
43330
+ y: function y(d) {
43331
+ return yScale(d[yKey]);
43332
+ },
43333
+ stroke: conditionalFormattingRule.color,
43334
+ strokeWidth: lines.filter(function (legendItem) {
43335
+ return legendItem.yKey === yKey;
43336
+ })[0].style.strokeWidth,
43337
+ strokeLinecap: "round",
43338
+ strokeDasharray: (_lines$filter$0$style2 = lines.filter(function (legendItem) {
43339
+ return legendItem.yKey === yKey;
43340
+ })[0].style.strokeDasharray) != null ? _lines$filter$0$style2 : undefined,
43341
+ shapeRendering: "smooth",
43342
+ defined: function defined(d) {
43343
+ return d[yKey] !== null;
43344
+ },
43345
+ curve: curve
43346
+ }, yKey), jsxRuntime.jsx(clipPath.RectClipPath, {
43347
+ id: clipPathId,
43348
+ x: clipArea.x,
43349
+ y: clipArea.y,
43350
+ width: clipArea.width,
43351
+ height: clipArea.height
43352
+ })]
43353
+ }, clipPathId);
43354
+ })]
43355
+ });
43356
+ }
43319
43357
 
43320
43358
  function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
43321
43359
  var _bars$find;
@@ -43332,7 +43370,7 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
43332
43370
  if (compare({
43333
43371
  op: rule.operator,
43334
43372
  value: rule.value
43335
- }, value)) {
43373
+ }, value) && rule.yKey === barKey) {
43336
43374
  fill = rule.color;
43337
43375
  break;
43338
43376
  }
@@ -43341,12 +43379,43 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
43341
43379
  return fill;
43342
43380
  }
43343
43381
 
43344
- 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)."; }
43345
- var BAR_RADIUS = 2;
43346
43382
  var PADDING = {
43347
43383
  paddingOuter: 0.05,
43348
43384
  paddingInner: 0.3
43349
43385
  };
43386
+
43387
+ function useBarXScale(xScaleDataType, innerWidth, xScaleKey, data) {
43388
+ return React.useMemo(function () {
43389
+ if (xScaleDataType === 'string') {
43390
+ return scale.scaleBand(_extends({
43391
+ range: [0, innerWidth],
43392
+ domain: xScaleKey ? [].concat(data.map(function (d) {
43393
+ return d[xScaleKey] && d[xScaleKey].value !== null ? String(d[xScaleKey].value) : '';
43394
+ })) : []
43395
+ }, PADDING));
43396
+ }
43397
+ if (xScaleDataType === 'date_time' && xScaleKey) {
43398
+ return scale.scaleBand(_extends({
43399
+ range: [0, innerWidth],
43400
+ domain: data.map(function (d) {
43401
+ return new Date(d[xScaleKey].value);
43402
+ })
43403
+ }, PADDING));
43404
+ }
43405
+ if (xScaleDataType === 'number' && xScaleKey) {
43406
+ return scale.scaleBand(_extends({
43407
+ range: [0, innerWidth],
43408
+ domain: data.map(function (d) {
43409
+ return d[xScaleKey] && d[xScaleKey].value !== null ? Number(d[xScaleKey].value) : 0;
43410
+ })
43411
+ }, PADDING));
43412
+ }
43413
+ return null;
43414
+ }, [innerWidth, data]);
43415
+ }
43416
+
43417
+ 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)."; }
43418
+ var BAR_RADIUS = 2;
43350
43419
  var BarChart$5 = function BarChart(_ref) {
43351
43420
  var _theme$axis;
43352
43421
  var chart = _ref.chart,
@@ -43377,41 +43446,8 @@ var BarChart$5 = function BarChart(_ref) {
43377
43446
  var xScaleKey = chart.x.scale.key;
43378
43447
  var yScaleKeys = chart.y.keys;
43379
43448
  var xScaleDataType = chart.x.scale.dataType;
43380
- var xScale = React.useMemo(function () {
43381
- if (xScaleDataType === 'string') {
43382
- return scale.scaleBand(_extends({
43383
- range: [0, innerWidth],
43384
- domain: xScaleKey ? [].concat(chart.data.map(function (d) {
43385
- return d[xScaleKey] && d[xScaleKey].value !== null ? String(d[xScaleKey].value) : '';
43386
- })) : []
43387
- }, PADDING));
43388
- }
43389
- if (xScaleDataType === 'date_time' && xScaleKey) {
43390
- return scale.scaleBand(_extends({
43391
- range: [0, innerWidth],
43392
- domain: chart.data.map(function (d) {
43393
- return new Date(d[xScaleKey].value);
43394
- })
43395
- }, PADDING));
43396
- }
43397
- if (xScaleDataType === 'number' && xScaleKey) {
43398
- return scale.scaleBand(_extends({
43399
- range: [0, innerWidth],
43400
- domain: chart.data.map(function (d) {
43401
- return d[xScaleKey] && d[xScaleKey].value !== null ? Number(d[xScaleKey].value) : 0;
43402
- })
43403
- }, PADDING));
43404
- }
43405
- return null;
43406
- }, [innerWidth, chart.x, chart.data]);
43407
- var yScale = React.useMemo(function () {
43408
- return scale.scaleLinear({
43409
- range: [innerHeight, 0],
43410
- domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
43411
- nice: true,
43412
- round: true
43413
- });
43414
- }, [innerHeight, chart.y]);
43449
+ var xScale = useBarXScale(xScaleDataType, innerWidth, xScaleKey, chart.data);
43450
+ var yScale = useYScale(innerHeight, chart.y.scale);
43415
43451
  var innerXScale = React.useMemo(function () {
43416
43452
  if (!options.stacked && xScale && 'bandwidth' in xScale) {
43417
43453
  return scale.scaleBand({
@@ -43422,7 +43458,7 @@ var BarChart$5 = function BarChart(_ref) {
43422
43458
  }
43423
43459
  return undefined;
43424
43460
  }, [xScale, yScaleKeys, options.stacked, xScaleDataType]);
43425
- var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
43461
+ var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
43426
43462
  var handleMouseMove = React.useCallback(function (event) {
43427
43463
  if (!xKey || !xScaleKey || xScale === null) return;
43428
43464
  var tooltipData = getTooltipData({
@@ -43468,6 +43504,13 @@ var BarChart$5 = function BarChart(_ref) {
43468
43504
  var yTickValues = chart.y.ticks.map(function (tick) {
43469
43505
  return Number(tick.value);
43470
43506
  });
43507
+ var legendTooltipItems = [{
43508
+ visibleYKeys: chart.bars.map(function (legendItem) {
43509
+ return legendItem.yKey;
43510
+ }),
43511
+ legendItems: chart.bars,
43512
+ conditionalFormattingRules: chart.conditionalFormattingRules
43513
+ }];
43471
43514
  return jsxRuntime.jsxs(React.Fragment, {
43472
43515
  children: [jsxRuntime.jsxs(ChartWrapper$1, {
43473
43516
  width: width,
@@ -43503,57 +43546,25 @@ var BarChart$5 = function BarChart(_ref) {
43503
43546
  ticks: yTickValues,
43504
43547
  stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
43505
43548
  }), jsxRuntime.jsxs(group.Group, {
43506
- children: [!options.stacked && jsxRuntime.jsx(shape.BarGroup, {
43549
+ children: [!options.stacked && jsxRuntime.jsx(BarGroup, {
43507
43550
  data: dataFlattened,
43508
43551
  keys: yScaleKeys,
43509
43552
  height: innerHeight,
43510
- x0: function x0(d) {
43511
- // @ts-ignore
43512
- var xValue = d[xScaleKey];
43513
- if (xScaleDataType === 'string') return xValue;
43514
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43515
- // @ts-ignore
43516
- return xValueAdjusted;
43517
- }
43518
- // @ts-ignore
43519
- ,
43520
- x0Scale: xScale
43521
- // @ts-ignore
43522
- ,
43523
- x1Scale: innerXScale,
43553
+ xKey: xKey,
43554
+ xScaleDataType: xScaleDataType,
43555
+ xScale: xScale,
43556
+ innerXScale: innerXScale,
43524
43557
  yScale: yScale,
43525
- color: function color() {
43526
- return '';
43527
- },
43528
- children: function children(barGroups) {
43529
- return barGroups.map(function (barGroup) {
43530
- return jsxRuntime.jsx(group.Group, {
43531
- left: barGroup.x0,
43532
- children: barGroup.bars.map(function (bar) {
43533
- if (bar.value === null) return null;
43534
- if (bar.height < 0 || bar.width < 0) return null;
43535
- return jsxRuntime.jsx(Bar, {
43536
- x: bar.x,
43537
- y: bar.y,
43538
- width: bar.width,
43539
- height: bar.height,
43540
- fill: getBarFill(chart.bars, chart.conditionalFormattingRules, bar.key, bar.value),
43541
- onClick: function onClick(e) {
43542
- return handleOnBarClick(e, barGroup, bar);
43543
- },
43544
- enableHover: enableHover
43545
- }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key);
43546
- })
43547
- }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
43548
- });
43549
- }
43558
+ onClick: handleOnBarClick,
43559
+ conditionalFormattingRules: chart.conditionalFormattingRules,
43560
+ bars: chart.bars,
43561
+ enableHover: enableHover
43550
43562
  }), options.stacked && jsxRuntime.jsx(shape.BarStack, {
43551
43563
  x: function x(d) {
43552
43564
  // @ts-ignore
43553
43565
  var xValue = d[xScaleKey];
43554
43566
  if (xScaleDataType === 'string') return xValue;
43555
43567
  var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43556
- // @ts-ignore
43557
43568
  return xValueAdjusted;
43558
43569
  }
43559
43570
  // @ts-ignore
@@ -43601,31 +43612,79 @@ var BarChart$5 = function BarChart(_ref) {
43601
43612
  width: innerWidth
43602
43613
  })]
43603
43614
  }), options.showLegend && jsxRuntime.jsx(Legend$1, {
43604
- legendItems: chart.bars,
43605
- visibleYKeys: chart.bars.map(function (legendItem) {
43606
- return legendItem.yKey;
43607
- }),
43615
+ items: legendTooltipItems,
43608
43616
  setVisibleYKeys: function setVisibleYKeys() {},
43609
43617
  keys: chart.keys,
43610
- conditionalFormattingRules: chart.conditionalFormattingRules,
43611
43618
  marginLeft: margin.left - margin.leftTitleOffset
43612
43619
  }), tooltipOpen && tooltipData && xKey && jsxRuntime.jsx(Tooltip$1, {
43620
+ items: legendTooltipItems,
43613
43621
  tooltipData: tooltipData,
43614
43622
  tooltipLeft: tooltipLeft,
43615
43623
  tooltipTop: tooltipTop,
43616
43624
  xKey: xKey,
43617
43625
  keys: chart.keys,
43618
- visibleYKeys: chart.bars.map(function (legendItem) {
43619
- return legendItem.yKey;
43620
- }),
43621
43626
  yKeys: chart.y.keys,
43622
- legendItems: chart.bars,
43623
43627
  showRoundedTotal: options.showRoundedTotal,
43624
- conditionalFormattingRules: chart.conditionalFormattingRules,
43625
43628
  theme: themeCSS.popoverMenus
43626
43629
  })]
43627
43630
  });
43628
43631
  };
43632
+ function BarGroup(_ref2) {
43633
+ var data = _ref2.data,
43634
+ keys = _ref2.keys,
43635
+ height = _ref2.height,
43636
+ xKey = _ref2.xKey,
43637
+ xScaleDataType = _ref2.xScaleDataType,
43638
+ xScale = _ref2.xScale,
43639
+ innerXScale = _ref2.innerXScale,
43640
+ yScale = _ref2.yScale,
43641
+ _onClick = _ref2.onClick,
43642
+ conditionalFormattingRules = _ref2.conditionalFormattingRules,
43643
+ bars = _ref2.bars,
43644
+ enableHover = _ref2.enableHover;
43645
+ return jsxRuntime.jsx(shape.BarGroup, {
43646
+ data: data,
43647
+ keys: keys,
43648
+ height: height,
43649
+ x0: function x0(d) {
43650
+ var xValue = d[xKey];
43651
+ if (xScaleDataType === 'string') return String(xValue);
43652
+ var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(String(xValue)) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
43653
+ return xValueAdjusted;
43654
+ }
43655
+ // @ts-ignore
43656
+ ,
43657
+ x0Scale: xScale
43658
+ // @ts-ignore
43659
+ ,
43660
+ x1Scale: innerXScale,
43661
+ yScale: yScale,
43662
+ color: function color() {
43663
+ return '';
43664
+ },
43665
+ children: function children(barGroups) {
43666
+ return barGroups.map(function (barGroup) {
43667
+ return jsxRuntime.jsx(group.Group, {
43668
+ left: barGroup.x0,
43669
+ children: barGroup.bars.map(function (bar) {
43670
+ if (bar.value === null || bar.height < 0 || bar.width < 0) return null;
43671
+ return jsxRuntime.jsx(Bar, {
43672
+ x: bar.x,
43673
+ y: bar.y,
43674
+ width: bar.width,
43675
+ height: bar.height,
43676
+ fill: getBarFill(bars, conditionalFormattingRules, String(bar.key), bar.value),
43677
+ onClick: function onClick(e) {
43678
+ return _onClick(e, barGroup, bar);
43679
+ },
43680
+ enableHover: enableHover
43681
+ }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key));
43682
+ })
43683
+ }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
43684
+ });
43685
+ }
43686
+ });
43687
+ }
43629
43688
  var Bar = function Bar(props) {
43630
43689
  var _useState = React.useState(props.fill),
43631
43690
  fillColor = _useState[0],
@@ -43647,7 +43706,7 @@ var Bar = function Bar(props) {
43647
43706
  className: props.enableHover ? /*#__PURE__*/css$1.css( {
43648
43707
  name: "4nk3o1-Bar",
43649
43708
  styles: "cursor:pointer;label:Bar;",
43650
- 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= */",
43709
+ 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== */",
43651
43710
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
43652
43711
  }) : ''
43653
43712
  }, props.key);
@@ -43823,14 +43882,8 @@ var AreaChart$5 = function AreaChart(_ref) {
43823
43882
  }
43824
43883
  return null;
43825
43884
  }, [innerWidth, chart.x, chart.data]);
43826
- var _yScale = React.useMemo(function () {
43827
- return scale.scaleLinear({
43828
- range: [innerHeight, 0],
43829
- domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
43830
- nice: true
43831
- });
43832
- }, [innerHeight, chart.y.scale]);
43833
- var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
43885
+ var _yScale = useYScale(innerHeight, chart.y.scale);
43886
+ var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
43834
43887
  var handleMouseMove = React.useCallback(function (event) {
43835
43888
  if (!xKey || !xScaleKey || xScale === null) return;
43836
43889
  var tooltipData = getTooltipData({
@@ -43860,12 +43913,17 @@ var AreaChart$5 = function AreaChart(_ref) {
43860
43913
  step: Curves.curveStep,
43861
43914
  straight: Curves.curveLinear
43862
43915
  };
43863
- return curveMap[(_options$curve = options.curve) != null ? _options$curve : 'monotoneX'];
43916
+ return curveMap[(_options$curve = options.curve) != null ? _options$curve : 'natural'];
43864
43917
  }, [options.curve]);
43865
43918
  if (width === 0 || height === 0 || xScale === null) return jsxRuntime.jsx(React__default.Fragment, {});
43866
43919
  var yTickValues = chart.y.ticks.map(function (tick) {
43867
43920
  return Number(tick.value);
43868
43921
  });
43922
+ var legendTooltipItems = [{
43923
+ visibleYKeys: visibleYKeys,
43924
+ legendItems: chart.areas,
43925
+ conditionalFormattingRules: chart.conditionalFormattingRules
43926
+ }];
43869
43927
  return jsxRuntime.jsxs(React__default.Fragment, {
43870
43928
  children: [jsxRuntime.jsxs(ChartWrapper$1, {
43871
43929
  width: width,
@@ -44021,23 +44079,19 @@ var AreaChart$5 = function AreaChart(_ref) {
44021
44079
  width: innerWidth
44022
44080
  })]
44023
44081
  }), options.showLegend && jsxRuntime.jsx(Legend$1, {
44024
- legendItems: chart.areas,
44025
- visibleYKeys: visibleYKeys,
44082
+ items: legendTooltipItems,
44026
44083
  setVisibleYKeys: setVisibleYKeys,
44027
44084
  keys: chart.keys,
44028
- conditionalFormattingRules: chart.conditionalFormattingRules,
44029
44085
  marginLeft: margin.left - margin.leftTitleOffset
44030
44086
  }), tooltipOpen && tooltipData && xKey && jsxRuntime.jsx(Tooltip$1, {
44087
+ items: legendTooltipItems,
44031
44088
  tooltipData: tooltipData,
44032
44089
  tooltipLeft: tooltipLeft,
44033
44090
  tooltipTop: tooltipTop,
44034
44091
  xKey: xKey,
44035
44092
  keys: chart.keys,
44036
- visibleYKeys: visibleYKeys,
44037
44093
  yKeys: chart.y.keys,
44038
- legendItems: chart.areas,
44039
44094
  showRoundedTotal: options.showRoundedTotal,
44040
- conditionalFormattingRules: chart.conditionalFormattingRules,
44041
44095
  theme: themeCSS.popoverMenus
44042
44096
  })]
44043
44097
  });
@@ -44340,11 +44394,13 @@ var RadarChart$2 = function RadarChart(_ref) {
44340
44394
  })]
44341
44395
  })
44342
44396
  }), options.showLegend && jsxRuntime.jsx(Legend$1, {
44343
- legendItems: chart.lines,
44344
- visibleYKeys: visibleYKeys,
44397
+ items: [{
44398
+ legendItems: chart.lines,
44399
+ visibleYKeys: visibleYKeys,
44400
+ conditionalFormattingRules: []
44401
+ }],
44345
44402
  setVisibleYKeys: setVisibleYKeys,
44346
44403
  keys: chart.keys,
44347
- conditionalFormattingRules: [],
44348
44404
  marginLeft: margin.left - margin.leftTitleOffset
44349
44405
  })]
44350
44406
  });
@@ -49056,30 +49112,6 @@ var BarChartV2 = function BarChartV2(props) {
49056
49112
  });
49057
49113
  };
49058
49114
 
49059
- function getBarFill$1(bars, conditionalFormattingRules, barKey, barValues) {
49060
- var _bars$find;
49061
- // Default fill color from the corresponding bar
49062
- var fill = (_bars$find = bars.find(function (chartBar) {
49063
- return chartBar.yKey === barKey;
49064
- })) == null ? void 0 : _bars$find.color;
49065
-
49066
- // Determine the value based on barValues type
49067
- var value = typeof barValues === 'number' ? barValues : barValues == null ? void 0 : barValues[barKey];
49068
- if (typeof value === 'number') {
49069
- for (var _iterator = _createForOfIteratorHelperLoose(conditionalFormattingRules), _step; !(_step = _iterator()).done;) {
49070
- var rule = _step.value;
49071
- if (compare({
49072
- op: rule.operator,
49073
- value: rule.value
49074
- }, value)) {
49075
- fill = rule.color;
49076
- break;
49077
- }
49078
- }
49079
- }
49080
- return fill;
49081
- }
49082
-
49083
49115
  var ASSUMED_AVERAGE_CHAR_WIDTH$1 = 8.8;
49084
49116
  function calculateWordWidth$1(word, avgCharWidth) {
49085
49117
  if (avgCharWidth === void 0) {
@@ -49261,15 +49293,17 @@ var IconTrendingDown$1 = function IconTrendingDown() {
49261
49293
 
49262
49294
  var Legend$2 = function Legend(_ref) {
49263
49295
  var showLegend = _ref.showLegend,
49264
- margin = _ref.margin;
49296
+ margin = _ref.margin,
49297
+ increaseColor = _ref.increaseColor,
49298
+ decreaseColor = _ref.decreaseColor;
49265
49299
  var items = [{
49266
- color: 'green',
49300
+ color: increaseColor,
49267
49301
  yKey: 'increase',
49268
49302
  style: {
49269
49303
  type: 'bar'
49270
49304
  }
49271
49305
  }, {
49272
- color: 'red',
49306
+ color: decreaseColor,
49273
49307
  yKey: 'decrease',
49274
49308
  style: {
49275
49309
  type: 'bar'
@@ -49289,11 +49323,13 @@ var Legend$2 = function Legend(_ref) {
49289
49323
  };
49290
49324
  if (!showLegend) return null;
49291
49325
  return jsxRuntime.jsx(Legend$1, {
49292
- legendItems: items,
49293
- visibleYKeys: ['increase', 'decrease'],
49326
+ items: [{
49327
+ legendItems: items,
49328
+ visibleYKeys: ['increase', 'decrease'],
49329
+ conditionalFormattingRules: []
49330
+ }],
49294
49331
  keys: keys,
49295
49332
  marginLeft: margin.left - margin.leftTitleOffset,
49296
- conditionalFormattingRules: [],
49297
49333
  setVisibleYKeys: function setVisibleYKeys() {}
49298
49334
  });
49299
49335
  };
@@ -49311,7 +49347,9 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49311
49347
  options = _ref.options,
49312
49348
  chart = _ref.chart,
49313
49349
  steps = _ref.steps,
49314
- theme = _ref.theme;
49350
+ theme = _ref.theme,
49351
+ increaseColor = _ref.increaseColor,
49352
+ decreaseColor = _ref.decreaseColor;
49315
49353
  //Waterfall TODO: fix chart for other x types
49316
49354
  if (chart.x.scale.dataType === 'date_time' || chart.x.scale.dataType === 'number') {
49317
49355
  return null;
@@ -49560,6 +49598,8 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49560
49598
  left: barGroup.x0,
49561
49599
  children: barGroup.bars.map(function (bar) {
49562
49600
  return jsxRuntime.jsx(Bar$1, {
49601
+ increaseColor: increaseColor,
49602
+ decreaseColor: decreaseColor,
49563
49603
  bar: bar,
49564
49604
  barGroup: barGroup,
49565
49605
  yScale: yScale,
@@ -49580,7 +49620,9 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
49580
49620
  })]
49581
49621
  }), jsxRuntime.jsx(Legend$2, {
49582
49622
  showLegend: options.showLegend,
49583
- margin: margin
49623
+ margin: margin,
49624
+ increaseColor: increaseColor,
49625
+ decreaseColor: decreaseColor
49584
49626
  }), jsxRuntime.jsx(Tooltip$2, {
49585
49627
  showTooltip: tooltipOpen,
49586
49628
  tooltipData: tooltipData,
@@ -49596,7 +49638,9 @@ var Bar$1 = function Bar(_ref4) {
49596
49638
  var bar = _ref4.bar,
49597
49639
  barGroup = _ref4.barGroup,
49598
49640
  yScale = _ref4.yScale,
49599
- formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart;
49641
+ formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart,
49642
+ increaseColor = _ref4.increaseColor,
49643
+ decreaseColor = _ref4.decreaseColor;
49600
49644
  var step = formattedChartDataForBarChart.steps[barGroup.index];
49601
49645
  var y = yScale(Math.max(step.start, step.end));
49602
49646
  var barHeight = Math.abs(yScale(step.start) - yScale(step.end));
@@ -49606,7 +49650,7 @@ var Bar$1 = function Bar(_ref4) {
49606
49650
  y: y,
49607
49651
  width: bar.width,
49608
49652
  height: barHeight,
49609
- fill: getBarFill$1(formattedChartDataForBarChart.bars, formattedChartDataForBarChart.conditionalFormattingRules, bar.key, bar.value),
49653
+ fill: bar.value > 0 ? increaseColor : decreaseColor,
49610
49654
  rx: 4
49611
49655
  }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key)
49612
49656
  });
@@ -49882,7 +49926,9 @@ var WaterfallChartView = function WaterfallChartView(props) {
49882
49926
  xAxisPrefix = props.xAxisPrefix,
49883
49927
  yAxisFormat = props.yAxisFormat,
49884
49928
  yAxisPostfix = props.yAxisPostfix,
49885
- yAxisPrefix = props.yAxisPrefix;
49929
+ yAxisPrefix = props.yAxisPrefix,
49930
+ increaseColor = props.increaseColor,
49931
+ decreaseColor = props.decreaseColor;
49886
49932
  var _useDashboardBehaviou = useDashboardBehaviourContext(),
49887
49933
  textOverride = _useDashboardBehaviou.textOverride,
49888
49934
  valueAlias = _useDashboardBehaviou.valueAlias,
@@ -49976,7 +50022,9 @@ var WaterfallChartView = function WaterfallChartView(props) {
49976
50022
  },
49977
50023
  theme: theme == null ? void 0 : theme.charts,
49978
50024
  chart: chartRepresentation,
49979
- steps: steps
50025
+ steps: steps,
50026
+ increaseColor: increaseColor,
50027
+ decreaseColor: decreaseColor
49980
50028
  });
49981
50029
  }
49982
50030
  })
@@ -60472,6 +60520,47 @@ var RichTextFormatSection = function RichTextFormatSection(props) {
60472
60520
  });
60473
60521
  };
60474
60522
 
60523
+ var WaterfallColorsSection = function WaterfallColorsSection(props) {
60524
+ var _props$section;
60525
+ var _useDashboardBehaviou = useDashboardBehaviourContext(),
60526
+ textOverride = _useDashboardBehaviou.textOverride;
60527
+ if (props.attributes.type != 'waterfallChart') return null;
60528
+ var _props$attributes = props.attributes,
60529
+ increaseColor = _props$attributes.increaseColor,
60530
+ decreaseColor = _props$attributes.decreaseColor;
60531
+ var debouncedSetAttributes = _.debounce(props.setAttributes, 200);
60532
+ return jsxRuntime.jsx(Section, {
60533
+ title: props == null ? void 0 : props.section.title,
60534
+ tooltip: props == null || (_props$section = props.section) == null ? void 0 : _props$section.description,
60535
+ children: jsxRuntime.jsxs(Section.Grid, {
60536
+ columns: 2,
60537
+ children: [jsxRuntime.jsx("div", {
60538
+ children: jsxRuntime.jsx(ColorInput, {
60539
+ id: 'waterfall-increase-color',
60540
+ label: textOverride('increase_color', 'Positive value'),
60541
+ currentValue: increaseColor,
60542
+ setColor: function setColor(increaseColor) {
60543
+ return debouncedSetAttributes({
60544
+ increaseColor: increaseColor
60545
+ });
60546
+ }
60547
+ })
60548
+ }), jsxRuntime.jsx("div", {
60549
+ children: jsxRuntime.jsx(ColorInput, {
60550
+ id: 'waterfall-decrease-color',
60551
+ label: textOverride('decrease_color', 'Negative value'),
60552
+ currentValue: decreaseColor,
60553
+ setColor: function setColor(decreaseColor) {
60554
+ return debouncedSetAttributes({
60555
+ decreaseColor: decreaseColor
60556
+ });
60557
+ }
60558
+ })
60559
+ })]
60560
+ })
60561
+ });
60562
+ };
60563
+
60475
60564
  var FormatPanelFromConfig = function FormatPanelFromConfig(props) {
60476
60565
  return jsxRuntime.jsx(EditorGrid, {
60477
60566
  children: props == null ? void 0 : props.formatPanelConfig.map(function (section, i) {
@@ -60502,6 +60591,8 @@ var FormatPanelFromConfig = function FormatPanelFromConfig(props) {
60502
60591
  section: section
60503
60592
  })), section.type === 'mapColors' && jsxRuntime.jsx(MapColorsSection, _extends({}, props, {
60504
60593
  section: section
60594
+ })), section.type === 'waterfallColors' && jsxRuntime.jsx(WaterfallColorsSection, _extends({}, props, {
60595
+ section: section
60505
60596
  })), section.type === 'conditionalFormatting' && jsxRuntime.jsx(ConditionalFormattingSection, _extends({}, props, {
60506
60597
  section: section
60507
60598
  })), section.type === 'goalLine' && jsxRuntime.jsx(GoalLineSection, _extends({}, props, {