@vizzly/dashboard 0.15.0-dev-e5dc13ee284e1ad11cf74da28f72ac8c1d4f2dd7 → 0.15.0-dev-2e66368eafbf32ff149bef026779b1852b7b757f

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.
@@ -63,6 +63,7 @@ var d3Array = require('@visx/vendor/d3-array');
63
63
  var axis = require('@visx/axis');
64
64
  var text$3 = require('@visx/text');
65
65
  var grid = require('@visx/grid');
66
+ var annotation = require('@visx/annotation');
66
67
  var glyph = require('@visx/glyph');
67
68
  var point = require('@visx/point');
68
69
  var d3Interpolate = require('@visx/vendor/d3-interpolate');
@@ -3059,6 +3060,7 @@ var attributesSchema = function attributesSchema(config) {
3059
3060
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
3060
3061
  stacked: Joi.valid(true, false, '100%'),
3061
3062
  legend: Joi.valid(true, false),
3063
+ labels: Joi.valid(true, false).optional(),
3062
3064
  type: Joi.valid('barChart', 'horizontalBarChart', 'funnelChart').required(),
3063
3065
  conditionalFormattingRules: conditionalFormattingRulesSchema(config.queryEngineConfig),
3064
3066
  protectedFields: Joi.object({
@@ -4182,6 +4184,7 @@ var attributesSchema$2 = function attributesSchema(config) {
4182
4184
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
4183
4185
  stacked: Joi.valid(true, false, '100%'),
4184
4186
  legend: Joi.valid(true, false),
4187
+ labels: Joi.valid(true, false).optional(),
4185
4188
  type: Joi.valid('lineChartV2').required(),
4186
4189
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
4187
4190
  lineCurve: lineCurveSchema,
@@ -4291,6 +4294,12 @@ var CONSTANTS$2 = {
4291
4294
  title: 'Show Legend',
4292
4295
  description: '',
4293
4296
  namespace: 'legend'
4297
+ },
4298
+ labels: {
4299
+ type: 'labels',
4300
+ title: 'Show Labels',
4301
+ description: '',
4302
+ namespace: 'labels'
4294
4303
  }
4295
4304
  }
4296
4305
  },
@@ -4457,6 +4466,7 @@ var LineChart$1 = function LineChart(config) {
4457
4466
  conditionalFormattingRules: [],
4458
4467
  drilldown: [],
4459
4468
  legend: true,
4469
+ labels: false,
4460
4470
  goalLines: undefined,
4461
4471
  approxXAxisLabelCount: 'auto',
4462
4472
  approxYAxisLabelCount: 'auto',
@@ -4519,7 +4529,10 @@ var LineChart$1 = function LineChart(config) {
4519
4529
  }), namespace(CONSTANTS$2, 'sort'), namespace(CONSTANTS$2, 'filter'), namespace(CONSTANTS$2, 'custom_metrics'), namespace(CONSTANTS$2, 'limit')];
4520
4530
  },
4521
4531
  formatPanelConfig: function formatPanelConfig() {
4522
- return [headingConstant(CONSTANTS$2), chartStylesConstant(CONSTANTS$2, true, false), axisLabelsConstants(CONSTANTS$2), _extends({}, namespace(CONSTANTS$2, 'conditional_formatting'), {
4532
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
4533
+ return [headingConstant(CONSTANTS$2), _extends({}, namespace(CONSTANTS$2, 'chart_styles'), {
4534
+ subSection: [(_CONSTANTS$format_pan = CONSTANTS$2.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan.subSectionDefinition.legend, (_CONSTANTS$format_pan2 = CONSTANTS$2.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan2.subSectionDefinition.labels]
4535
+ }), axisLabelsConstants(CONSTANTS$2), _extends({}, namespace(CONSTANTS$2, 'conditional_formatting'), {
4523
4536
  ruleType: 'lineColor'
4524
4537
  }), namespace(CONSTANTS$2, 'goal_line')
4525
4538
  // namespace<'trends'>(CONSTANTS, 'trends'),
@@ -4555,7 +4568,7 @@ var attributesSchema$3 = function attributesSchema(config) {
4555
4568
  order: Joi.array().items(orderSchema(config.queryEngineConfig)),
4556
4569
  type: Joi.valid('pieChart').required(),
4557
4570
  legend: Joi.valid(true, false),
4558
- labels: Joi.valid(true, false),
4571
+ labels: Joi.valid(true, false).optional(),
4559
4572
  limit: queryAttributesLimit(),
4560
4573
  labelsAsPercentage: Joi["boolean"](),
4561
4574
  conditionalFormattingRules: conditionalFormattingRulesSchema(config.queryEngineConfig),
@@ -8646,6 +8659,12 @@ var CONSTANTS$h = {
8646
8659
  title: 'Show Legend',
8647
8660
  description: '',
8648
8661
  namespace: 'legend'
8662
+ },
8663
+ labels: {
8664
+ type: 'labels',
8665
+ title: 'Show Labels',
8666
+ description: '',
8667
+ namespace: 'labels'
8649
8668
  }
8650
8669
  }
8651
8670
  },
@@ -8785,6 +8804,7 @@ var FunnelChart = function FunnelChart(config) {
8785
8804
  yAxisFormat: null,
8786
8805
  xAxisFormat: null,
8787
8806
  legend: true,
8807
+ labels: false,
8788
8808
  approxXAxisLabelCount: 'auto',
8789
8809
  approxYAxisLabelCount: 'auto',
8790
8810
  axisTitles: undefined,
@@ -8842,7 +8862,10 @@ var FunnelChart = function FunnelChart(config) {
8842
8862
  }), namespace(CONSTANTS$h, 'sort'), namespace(CONSTANTS$h, 'filter'), namespace(CONSTANTS$h, 'custom_metrics'), namespace(CONSTANTS$h, 'limit')];
8843
8863
  },
8844
8864
  formatPanelConfig: function formatPanelConfig() {
8845
- return [headingConstant(CONSTANTS$h), chartStylesConstant(CONSTANTS$h, false, false), axisLabelsConstants(CONSTANTS$h), _extends({}, namespace(CONSTANTS$h, 'conditional_formatting'), {
8865
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
8866
+ return [headingConstant(CONSTANTS$h), _extends({}, namespace(CONSTANTS$h, 'chart_styles'), {
8867
+ subSection: [(_CONSTANTS$format_pan = CONSTANTS$h.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan.subSectionDefinition.legend, (_CONSTANTS$format_pan2 = CONSTANTS$h.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan2.subSectionDefinition.labels]
8868
+ }), axisLabelsConstants(CONSTANTS$h), _extends({}, namespace(CONSTANTS$h, 'conditional_formatting'), {
8846
8869
  ruleType: 'backgroundColor'
8847
8870
  }), namespace(CONSTANTS$h, 'headline')];
8848
8871
  },
@@ -9939,6 +9962,7 @@ var attributesSchema$i = function attributesSchema(config) {
9939
9962
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
9940
9963
  stacked: Joi.valid(true, false),
9941
9964
  legend: Joi.valid(true, false),
9965
+ labels: Joi.valid(true, false).optional(),
9942
9966
  type: Joi.valid('barChartV2').required(),
9943
9967
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
9944
9968
  conditionalFormattingRules: conditionalFormattingRulesSchema(config.queryEngineConfig),
@@ -10047,6 +10071,12 @@ var CONSTANTS$k = {
10047
10071
  title: 'Show Legend',
10048
10072
  description: '',
10049
10073
  namespace: 'legend'
10074
+ },
10075
+ labels: {
10076
+ type: 'labels',
10077
+ title: 'Show Labels',
10078
+ description: '',
10079
+ namespace: 'labels'
10050
10080
  }
10051
10081
  }
10052
10082
  },
@@ -10207,6 +10237,7 @@ var BarChart$1 = function BarChart(config) {
10207
10237
  conditionalFormattingRules: [],
10208
10238
  drilldown: [],
10209
10239
  legend: true,
10240
+ labels: false,
10210
10241
  goalLines: undefined,
10211
10242
  approxXAxisLabelCount: 'auto',
10212
10243
  approxYAxisLabelCount: 'auto',
@@ -10273,7 +10304,10 @@ var BarChart$1 = function BarChart(config) {
10273
10304
  }), namespace(CONSTANTS$k, 'custom_metrics'), namespace(CONSTANTS$k, 'limit')];
10274
10305
  },
10275
10306
  formatPanelConfig: function formatPanelConfig() {
10276
- return [headingConstant(CONSTANTS$k), chartStylesConstant(CONSTANTS$k, false, true), axisLabelsConstants(CONSTANTS$k), _extends({}, namespace(CONSTANTS$k, 'conditional_formatting'), {
10307
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
10308
+ return [headingConstant(CONSTANTS$k), _extends({}, namespace(CONSTANTS$k, 'chart_styles'), {
10309
+ subSection: [(_CONSTANTS$format_pan = CONSTANTS$k.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan.subSectionDefinition.legend, (_CONSTANTS$format_pan2 = CONSTANTS$k.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan2.subSectionDefinition.labels]
10310
+ }), axisLabelsConstants(CONSTANTS$k), _extends({}, namespace(CONSTANTS$k, 'conditional_formatting'), {
10277
10311
  ruleType: 'lineColor'
10278
10312
  }), namespace(CONSTANTS$k, 'goal_line')];
10279
10313
  },
@@ -10300,6 +10334,7 @@ var BarChart$1 = function BarChart(config) {
10300
10334
  var attributesSchema$j = function attributesSchema(config) {
10301
10335
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
10302
10336
  legend: Joi.valid(true, false),
10337
+ labels: Joi.valid(true, false).optional(),
10303
10338
  type: Joi.valid('waterfallChart').required(),
10304
10339
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
10305
10340
  axisTitles: axisTitleSchema(),
@@ -10396,6 +10431,12 @@ var CONSTANTS$l = {
10396
10431
  title: 'Show Legend',
10397
10432
  description: '',
10398
10433
  namespace: 'legend'
10434
+ },
10435
+ labels: {
10436
+ type: 'labels',
10437
+ title: 'Show Labels',
10438
+ description: '',
10439
+ namespace: 'labels'
10399
10440
  }
10400
10441
  }
10401
10442
  },
@@ -10547,6 +10588,7 @@ var WaterfallChart = function WaterfallChart(config) {
10547
10588
  yAxisFormat: null,
10548
10589
  xAxisFormat: null,
10549
10590
  legend: true,
10591
+ labels: false,
10550
10592
  parameters: {},
10551
10593
  axisTitles: undefined,
10552
10594
  headline: undefined,
@@ -10607,7 +10649,10 @@ var WaterfallChart = function WaterfallChart(config) {
10607
10649
  }), namespace(CONSTANTS$l, 'sort'), namespace(CONSTANTS$l, 'filter'), namespace(CONSTANTS$l, 'custom_metrics'), namespace(CONSTANTS$l, 'limit')];
10608
10650
  },
10609
10651
  formatPanelConfig: function formatPanelConfig() {
10610
- return [headingConstant(CONSTANTS$l), namespace(CONSTANTS$l, 'waterfall_colors'), chartStylesConstant(CONSTANTS$l, false, false), axisLabelsConstants(CONSTANTS$l)];
10652
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
10653
+ return [headingConstant(CONSTANTS$l), namespace(CONSTANTS$l, 'waterfall_colors'), _extends({}, namespace(CONSTANTS$l, 'chart_styles'), {
10654
+ subSection: [(_CONSTANTS$format_pan = CONSTANTS$l.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan.subSectionDefinition.legend, (_CONSTANTS$format_pan2 = CONSTANTS$l.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan2.subSectionDefinition.labels]
10655
+ }), axisLabelsConstants(CONSTANTS$l)];
10611
10656
  },
10612
10657
  supportedCustomFields: {
10613
10658
  percentages: true,
@@ -10633,6 +10678,7 @@ var attributesSchema$k = function attributesSchema(config) {
10633
10678
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
10634
10679
  stacked: Joi.valid(true, false),
10635
10680
  legend: Joi.valid(true, false),
10681
+ labels: Joi.valid(true, false).optional(),
10636
10682
  type: Joi.valid('areaChartV2').required(),
10637
10683
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
10638
10684
  lineCurve: areaCurveSchema,
@@ -10748,6 +10794,12 @@ var CONSTANTS$m = {
10748
10794
  title: 'Show Legend',
10749
10795
  description: '',
10750
10796
  namespace: 'legend'
10797
+ },
10798
+ labels: {
10799
+ type: 'labels',
10800
+ title: 'Show Labels',
10801
+ description: '',
10802
+ namespace: 'labels'
10751
10803
  }
10752
10804
  }
10753
10805
  },
@@ -10915,6 +10967,7 @@ var AreaChart$1 = function AreaChart(config) {
10915
10967
  conditionalFormattingRules: [],
10916
10968
  drilldown: [],
10917
10969
  legend: true,
10970
+ labels: false,
10918
10971
  goalLines: undefined,
10919
10972
  approxXAxisLabelCount: 'auto',
10920
10973
  approxYAxisLabelCount: 'auto',
@@ -10978,7 +11031,10 @@ var AreaChart$1 = function AreaChart(config) {
10978
11031
  }), namespace(CONSTANTS$m, 'sort'), namespace(CONSTANTS$m, 'filter'), namespace(CONSTANTS$m, 'custom_metrics'), namespace(CONSTANTS$m, 'limit')];
10979
11032
  },
10980
11033
  formatPanelConfig: function formatPanelConfig() {
10981
- return [headingConstant(CONSTANTS$m), chartStylesConstant(CONSTANTS$m, true, false), axisLabelsConstants(CONSTANTS$m), _extends({}, namespace(CONSTANTS$m, 'conditional_formatting'), {
11034
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
11035
+ return [headingConstant(CONSTANTS$m), _extends({}, namespace(CONSTANTS$m, 'chart_styles'), {
11036
+ subSection: [(_CONSTANTS$format_pan = CONSTANTS$m.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan.subSectionDefinition.legend, (_CONSTANTS$format_pan2 = CONSTANTS$m.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan2.subSectionDefinition.labels]
11037
+ }), axisLabelsConstants(CONSTANTS$m), _extends({}, namespace(CONSTANTS$m, 'conditional_formatting'), {
10982
11038
  ruleType: 'lineColor'
10983
11039
  }), namespace(CONSTANTS$m, 'goal_line')];
10984
11040
  },
@@ -11006,6 +11062,7 @@ var attributesSchema$l = function attributesSchema(config) {
11006
11062
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), {
11007
11063
  stacked: Joi.valid(true, false),
11008
11064
  legend: Joi.valid(true, false),
11065
+ labels: Joi.valid(true, false).optional(),
11009
11066
  barMeasure: Joi.array().items(measureSchema(config.queryEngineConfig.supportedAggregates, config.attributesSchemaOptions)),
11010
11067
  lineMeasure: Joi.array().items(measureSchema(config.queryEngineConfig.supportedAggregates, config.attributesSchemaOptions)),
11011
11068
  barDimension: dimensionSchema(config.queryEngineConfig.supportedTimeTruncFunctions, config.attributesSchemaOptions),
@@ -11151,6 +11208,12 @@ var CONSTANTS$n = {
11151
11208
  title: 'Show Legend',
11152
11209
  description: '',
11153
11210
  namespace: 'legend'
11211
+ },
11212
+ labels: {
11213
+ type: 'labels',
11214
+ title: 'Show Labels',
11215
+ description: '',
11216
+ namespace: 'labels'
11154
11217
  }
11155
11218
  }
11156
11219
  },
@@ -11283,6 +11346,7 @@ var ComboChartV2 = function ComboChartV2(config) {
11283
11346
  yAxisFormat: null,
11284
11347
  xAxisFormat: null,
11285
11348
  legend: true,
11349
+ labels: false,
11286
11350
  approxXAxisLabelCount: 'auto',
11287
11351
  approxYAxisLabelCount: 'auto',
11288
11352
  goalLines: undefined,
@@ -11323,16 +11387,18 @@ var ComboChartV2 = function ComboChartV2(config) {
11323
11387
  }), namespace(CONSTANTS$n, 'combo_chart_dimension'), namespace(CONSTANTS$n, 'sort'), namespace(CONSTANTS$n, 'filter'), namespace(CONSTANTS$n, 'custom_metrics'), namespace(CONSTANTS$n, 'limit')];
11324
11388
  },
11325
11389
  formatPanelConfig: function formatPanelConfig() {
11326
- var _CONSTANTS$format_pan, _CONSTANTS$format_pan2, _CONSTANTS$format_pan3, _CONSTANTS$format_pan4, _CONSTANTS$format_pan5, _CONSTANTS$format_pan6;
11327
- return [headingConstant(CONSTANTS$n), chartStylesConstant(CONSTANTS$n, false, true), axisLabelsConstants(CONSTANTS$n), _extends({}, namespace(CONSTANTS$n, 'conditional_formatting'), {
11390
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2, _CONSTANTS$format_pan3, _CONSTANTS$format_pan4, _CONSTANTS$format_pan5, _CONSTANTS$format_pan6, _CONSTANTS$format_pan7, _CONSTANTS$format_pan8;
11391
+ return [headingConstant(CONSTANTS$n), _extends({}, namespace(CONSTANTS$n, 'chart_styles'), {
11392
+ subSection: [(_CONSTANTS$format_pan = CONSTANTS$n.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan.subSectionDefinition.legend, (_CONSTANTS$format_pan2 = CONSTANTS$n.format_panel.chart_styles) == null ? void 0 : _CONSTANTS$format_pan2.subSectionDefinition.labels]
11393
+ }), axisLabelsConstants(CONSTANTS$n), _extends({}, namespace(CONSTANTS$n, 'conditional_formatting'), {
11328
11394
  ruleType: 'backgroundColor',
11329
11395
  subSection: [{
11330
- title: (_CONSTANTS$format_pan = (_CONSTANTS$format_pan2 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan2 = _CONSTANTS$format_pan2.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan2.bar.title) != null ? _CONSTANTS$format_pan : '',
11331
- namespace: (_CONSTANTS$format_pan3 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan3 = _CONSTANTS$format_pan3.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan3.bar.namespace,
11396
+ title: (_CONSTANTS$format_pan3 = (_CONSTANTS$format_pan4 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan4 = _CONSTANTS$format_pan4.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan4.bar.title) != null ? _CONSTANTS$format_pan3 : '',
11397
+ namespace: (_CONSTANTS$format_pan5 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan5 = _CONSTANTS$format_pan5.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan5.bar.namespace,
11332
11398
  propKey: 'bar'
11333
11399
  }, {
11334
- title: (_CONSTANTS$format_pan4 = (_CONSTANTS$format_pan5 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan5 = _CONSTANTS$format_pan5.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan5.line.title) != null ? _CONSTANTS$format_pan4 : '',
11335
- namespace: (_CONSTANTS$format_pan6 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan6 = _CONSTANTS$format_pan6.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan6.line.namespace,
11400
+ title: (_CONSTANTS$format_pan6 = (_CONSTANTS$format_pan7 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan7 = _CONSTANTS$format_pan7.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan7.line.title) != null ? _CONSTANTS$format_pan6 : '',
11401
+ namespace: (_CONSTANTS$format_pan8 = CONSTANTS$n.format_panel.conditional_formatting) == null || (_CONSTANTS$format_pan8 = _CONSTANTS$format_pan8.subSectionDefinition) == null ? void 0 : _CONSTANTS$format_pan8.line.namespace,
11336
11402
  propKey: 'line'
11337
11403
  }]
11338
11404
  }), namespace(CONSTANTS$n, 'goal_line')];
@@ -32378,7 +32444,7 @@ var FunnelChart$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {
32378
32444
  var keys = [].concat(props.keys, additionalKeys);
32379
32445
  return jsxRuntime.jsx(responsive.ParentSize, {
32380
32446
  children: function children(parent) {
32381
- var _props$height, _props$width;
32447
+ var _props$labels, _props$height, _props$width;
32382
32448
  return jsxRuntime.jsx(VizzlyXYChart, {
32383
32449
  approxXAxisLabelCount: props.approxXAxisLabelCount,
32384
32450
  approxYAxisLabelCount: props.approxYAxisLabelCount,
@@ -32399,6 +32465,7 @@ var FunnelChart$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {
32399
32465
  }
32400
32466
  },
32401
32467
  legend: props == null ? void 0 : props.legend,
32468
+ labels: (_props$labels = props == null ? void 0 : props.labels) != null ? _props$labels : false,
32402
32469
  removeStroke: props == null ? void 0 : props.removeStroke,
32403
32470
  forceXAxisAsTime: props == null ? void 0 : props.forceXAxisAsTime,
32404
32471
  formatXAxisLabel: props == null ? void 0 : props.formatXAxisLabel,
@@ -33948,6 +34015,44 @@ function lightenColor$2(originalColor, amount) {
33948
34015
  }
33949
34016
  }
33950
34017
 
34018
+ var calculateMinMax = function calculateMinMax(values) {
34019
+ if (values.length === 0) return {
34020
+ minValue: 0,
34021
+ maxValue: 0
34022
+ };
34023
+ var minValue = Math.min.apply(Math, values);
34024
+ var maxValue = Math.max.apply(Math, values);
34025
+ return {
34026
+ minValue: minValue,
34027
+ maxValue: maxValue
34028
+ };
34029
+ };
34030
+ var showMinMaxLabel = function showMinMaxLabel(value, totalItems, minValue, maxValue) {
34031
+ return totalItems < 11 || value == minValue || value == maxValue;
34032
+ };
34033
+ var getMinMaxChartValueFromNumberArray = function getMinMaxChartValueFromNumberArray(data) {
34034
+ var _calculateMinMax2 = calculateMinMax(data),
34035
+ minValue = _calculateMinMax2.minValue,
34036
+ maxValue = _calculateMinMax2.maxValue;
34037
+ return {
34038
+ minValue: minValue,
34039
+ maxValue: maxValue
34040
+ };
34041
+ };
34042
+ var getAllChartValues = function getAllChartValues(data, keys) {
34043
+ var allValues = [];
34044
+ data.forEach(function (item) {
34045
+ keys.forEach(function (key) {
34046
+ var _item$key;
34047
+ var value = ((_item$key = item[key]) == null ? void 0 : _item$key.value) || item[key];
34048
+ if (value) {
34049
+ allValues.push(Number(value));
34050
+ }
34051
+ });
34052
+ });
34053
+ return allValues;
34054
+ };
34055
+
33951
34056
  var accessors = function accessors(xAxisIsTime, xKey, yKey, horizontal) {
33952
34057
  return {
33953
34058
  xAccessor: function xAccessor(d) {
@@ -34242,6 +34347,58 @@ var VizzlyXYChart = function VizzlyXYChart(props) {
34242
34347
  }
34243
34348
  }), "bar_with_previous_" + props.uniqueId + "_" + keyIndex);
34244
34349
  })
34350
+ }), props.bars.data.map(function (dataPoint, dataIndex) {
34351
+ return jsxRuntime.jsx("g", {
34352
+ children: props.bars.keys.map(function (key, keyIndex) {
34353
+ var value = dataPoint[key];
34354
+ if (!value || !props.labels) return null;
34355
+ if (props.bars.data.length > 10) {
34356
+ var values = props.bars.data.map(function (d) {
34357
+ return Number(d[key]);
34358
+ }).filter(function (v) {
34359
+ return v;
34360
+ });
34361
+ var _getMinMaxChartValueF = getMinMaxChartValueFromNumberArray(values),
34362
+ _minValue = _getMinMaxChartValueF.minValue,
34363
+ _maxValue = _getMinMaxChartValueF.maxValue;
34364
+ var currentValue = Number(value);
34365
+ if (currentValue !== _minValue && currentValue !== _maxValue) {
34366
+ return null;
34367
+ }
34368
+ }
34369
+ var chartWidth = props.width || 400;
34370
+ var barWidth = (chartWidth - margin.left - margin.right) / props.bars.data.length;
34371
+ var barX = margin.left + dataIndex * barWidth + barWidth / 2;
34372
+ var isPositiveModifier = isPositiveModifierKey(key);
34373
+ var barHeight, barY;
34374
+ if (isPositiveModifier) {
34375
+ // Helper function to extract the base name from the key (e.g., "{Revenue, previous}" -> "Revenue")
34376
+ var getBaseKeyName = function getBaseKeyName(keyName) {
34377
+ return keyName.replace(/[{}]/g, '').split(',')[0].trim();
34378
+ };
34379
+ var standardKey = props.bars.keys.find(function (k) {
34380
+ return !isPositiveModifierKey(k) && getBaseKeyName(k) === getBaseKeyName(key);
34381
+ });
34382
+ var totalValue = standardKey ? dataPoint[standardKey] : 0;
34383
+ var previousValue = Number(value);
34384
+ var totalBarValue = Number(totalValue) + previousValue;
34385
+ barHeight = (height - margin.top - margin.bottom) * totalBarValue / (maxValue || 1);
34386
+ barY = height - margin.bottom - barHeight;
34387
+ } else {
34388
+ barHeight = (height - margin.top - margin.bottom) * Number(value) / (maxValue || 1);
34389
+ barY = height - margin.bottom - barHeight;
34390
+ }
34391
+ return jsxRuntime.jsx("text", {
34392
+ x: barX,
34393
+ y: barY,
34394
+ textAnchor: "bottom",
34395
+ fontSize: "10px",
34396
+ fill: "#333",
34397
+ fontWeight: "500",
34398
+ children: formatYAxisLabel$1(props)(value)
34399
+ }, "funnel_label_" + props.uniqueId + "_" + dataIndex + "_" + keyIndex);
34400
+ })
34401
+ }, "funnel_labels_" + props.uniqueId + "_" + dataIndex);
34245
34402
  })]
34246
34403
  }), (props == null ? void 0 : props.bars) && props.bars.stacked && jsxRuntime.jsxs(React.Fragment, {
34247
34404
  children: [props.enableHover && jsxRuntime.jsx("style", {
@@ -44157,6 +44314,31 @@ function useYScale(innerHeight, scale$1) {
44157
44314
  }, [innerHeight, scale$1]);
44158
44315
  }
44159
44316
 
44317
+ var DataLabel = function DataLabel(_ref) {
44318
+ var x = _ref.x,
44319
+ y = _ref.y,
44320
+ title = _ref.title,
44321
+ dx = _ref.dx,
44322
+ dy = _ref.dy,
44323
+ color = _ref.color,
44324
+ backgroundColor = _ref.backgroundColor;
44325
+ return jsxRuntime.jsx(annotation.Annotation, {
44326
+ x: x,
44327
+ y: y,
44328
+ dx: dx,
44329
+ dy: dy,
44330
+ children: jsxRuntime.jsx(annotation.Label, {
44331
+ title: title,
44332
+ showAnchorLine: false,
44333
+ showBackground: false,
44334
+ backgroundFill: backgroundColor,
44335
+ fontColor: color,
44336
+ titleFontSize: 10,
44337
+ verticalAnchor: "middle"
44338
+ })
44339
+ });
44340
+ };
44341
+
44160
44342
  var LineChart$5 = function LineChart(_ref) {
44161
44343
  var _theme$axis;
44162
44344
  var chart = _ref.chart,
@@ -44300,7 +44482,8 @@ var LineChart$5 = function LineChart(_ref) {
44300
44482
  xScaleKey: xScaleKey,
44301
44483
  xScaleDataType: xScaleDataType,
44302
44484
  xScale: xScale,
44303
- yScale: _yScale
44485
+ yScale: _yScale,
44486
+ showLabels: options.showLabels
44304
44487
  })
44305
44488
  })]
44306
44489
  }), tooltipData && jsxRuntime.jsxs("g", {
@@ -44360,38 +44543,77 @@ function Lines(_ref2) {
44360
44543
  yScale = _ref2.yScale,
44361
44544
  lines = _ref2.lines,
44362
44545
  curve = _ref2.curve,
44363
- conditionalFormattingRules = _ref2.conditionalFormattingRules;
44546
+ conditionalFormattingRules = _ref2.conditionalFormattingRules,
44547
+ showLabels = _ref2.showLabels;
44548
+ var _useMemo = React.useMemo(function () {
44549
+ var allBarValues = getAllChartValues(data, yKeys);
44550
+ var _getMinMaxChartValueF = getMinMaxChartValueFromNumberArray(allBarValues),
44551
+ minValue = _getMinMaxChartValueF.minValue,
44552
+ maxValue = _getMinMaxChartValueF.maxValue;
44553
+ return {
44554
+ minValue: minValue,
44555
+ maxValue: maxValue
44556
+ };
44557
+ }, [yKeys, data]),
44558
+ minValue = _useMemo.minValue,
44559
+ maxValue = _useMemo.maxValue;
44364
44560
  return jsxRuntime.jsxs(React.Fragment, {
44365
44561
  children: [yKeys.map(function (yKey) {
44366
44562
  var _lines$filter$0$style;
44367
- return jsxRuntime.jsx(shape.LinePath, {
44368
- visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
44369
- data: data,
44370
- x: function x(d) {
44371
- var _ref3;
44372
- var xValue = d[xScaleKey];
44373
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
44374
- return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
44375
- },
44376
- y: function y(d) {
44377
- return yScale(d[yKey]);
44378
- },
44379
- stroke: lines.filter(function (legendItem) {
44380
- return legendItem.yKey === yKey;
44381
- })[0].color,
44382
- strokeWidth: lines.filter(function (legendItem) {
44383
- return legendItem.yKey === yKey;
44384
- })[0].style.strokeWidth,
44385
- strokeLinecap: "round",
44386
- strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
44387
- return legendItem.yKey === yKey;
44388
- })[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
44389
- shapeRendering: "smooth",
44390
- defined: function defined(d) {
44391
- return d[yKey] !== null;
44392
- },
44393
- curve: curve
44394
- }, yKey);
44563
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
44564
+ children: [jsxRuntime.jsx(shape.LinePath, {
44565
+ visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
44566
+ data: data,
44567
+ x: function x(d) {
44568
+ var _converters, _ref3;
44569
+ var xValue = d[xScaleKey];
44570
+ var converters = {
44571
+ date_time: function date_time(value) {
44572
+ return new Date(value);
44573
+ },
44574
+ number: function number(value) {
44575
+ return Number(value);
44576
+ },
44577
+ string: function string(value) {
44578
+ return String(value);
44579
+ }
44580
+ };
44581
+ var convert = (_converters = converters[xScaleDataType]) != null ? _converters : converters.string;
44582
+ var xValueAdjusted = convert(xValue);
44583
+ return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
44584
+ },
44585
+ y: function y(d) {
44586
+ return yScale(d[yKey]);
44587
+ },
44588
+ stroke: lines.filter(function (legendItem) {
44589
+ return legendItem.yKey === yKey;
44590
+ })[0].color,
44591
+ strokeWidth: lines.filter(function (legendItem) {
44592
+ return legendItem.yKey === yKey;
44593
+ })[0].style.strokeWidth,
44594
+ strokeLinecap: "round",
44595
+ strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
44596
+ return legendItem.yKey === yKey;
44597
+ })[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
44598
+ shapeRendering: "smooth",
44599
+ defined: function defined(d) {
44600
+ return d[yKey] !== null;
44601
+ },
44602
+ curve: curve
44603
+ }, yKey), data.map(function (chartData) {
44604
+ return jsxRuntime.jsx(LineLabel, {
44605
+ chartData: chartData,
44606
+ yKey: yKey,
44607
+ xScaleKey: xScaleKey,
44608
+ xScale: xScale,
44609
+ yScale: yScale,
44610
+ totalItems: data.length,
44611
+ minValue: minValue,
44612
+ maxValue: maxValue,
44613
+ showLabels: showLabels
44614
+ });
44615
+ })]
44616
+ });
44395
44617
  }), conditionalFormattingRules.map(function (conditionalFormattingRule) {
44396
44618
  var _lines$filter$0$style2;
44397
44619
  if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
@@ -44443,6 +44665,32 @@ function Lines(_ref2) {
44443
44665
  }, clipPathId);
44444
44666
  })]
44445
44667
  });
44668
+ function LineLabel(_ref5) {
44669
+ var chartData = _ref5.chartData,
44670
+ yKey = _ref5.yKey,
44671
+ xScaleKey = _ref5.xScaleKey,
44672
+ xScale = _ref5.xScale,
44673
+ yScale = _ref5.yScale,
44674
+ totalItems = _ref5.totalItems,
44675
+ minValue = _ref5.minValue,
44676
+ maxValue = _ref5.maxValue,
44677
+ showLabels = _ref5.showLabels;
44678
+ var xValue = chartData[xScaleKey];
44679
+ var yValue = chartData[yKey];
44680
+ var xPadding = 18;
44681
+ var yPadding = 8;
44682
+ var xPosition = xScale(xValue);
44683
+ var yPosition = yScale(yValue);
44684
+ var showMinMax = showMinMaxLabel(Number(yValue), totalItems, minValue, maxValue);
44685
+ if (xPosition == null || yPosition == null || !showMinMax || !showLabels) return null;
44686
+ return jsxRuntime.jsx(DataLabel, {
44687
+ x: xPosition - xPadding,
44688
+ y: yPosition - yPadding,
44689
+ dx: 2,
44690
+ dy: 0,
44691
+ title: yValue
44692
+ });
44693
+ }
44446
44694
  }
44447
44695
 
44448
44696
  var BAR_RADIUS = 2;
@@ -44488,7 +44736,8 @@ function BarGroup(_ref) {
44488
44736
  yAxisLabels = _ref.yAxisLabels,
44489
44737
  yLabelPosition = _ref.yLabelPosition,
44490
44738
  showDetailedSubGroupingLabels = _ref.showDetailedSubGroupingLabels,
44491
- labelStyle = _ref.labelStyle;
44739
+ labelStyle = _ref.labelStyle,
44740
+ showLabels = _ref.showLabels;
44492
44741
  var getGroupPosition = function getGroupPosition(d) {
44493
44742
  var xValue = d[xKey];
44494
44743
  if (xScaleDataType === 'string') return String(xValue);
@@ -44500,6 +44749,20 @@ function BarGroup(_ref) {
44500
44749
  }
44501
44750
  return String(xValue);
44502
44751
  };
44752
+ var _useMemo = React.useMemo(function () {
44753
+ var allBarValues = getAllChartValues(data, keys);
44754
+ var _getMinMaxChartValueF = getMinMaxChartValueFromNumberArray(allBarValues),
44755
+ minValue = _getMinMaxChartValueF.minValue,
44756
+ maxValue = _getMinMaxChartValueF.maxValue;
44757
+ return {
44758
+ minValue: minValue,
44759
+ maxValue: maxValue,
44760
+ totalItems: allBarValues.length
44761
+ };
44762
+ }, [data, keys]),
44763
+ minValue = _useMemo.minValue,
44764
+ maxValue = _useMemo.maxValue,
44765
+ totalItems = _useMemo.totalItems;
44503
44766
  return jsxRuntime.jsx(shape.BarGroup, {
44504
44767
  data: data,
44505
44768
  keys: keys,
@@ -44530,7 +44793,11 @@ function BarGroup(_ref) {
44530
44793
  onClick: onClick,
44531
44794
  showDetailedSubGroupingLabels: showDetailedSubGroupingLabels,
44532
44795
  yAxisLabels: yAxisLabels,
44533
- yLabelPosition: yLabelPosition
44796
+ yLabelPosition: yLabelPosition,
44797
+ minValue: minValue,
44798
+ maxValue: maxValue,
44799
+ totalItems: totalItems,
44800
+ showLabels: showLabels
44534
44801
  }, "bar-" + bar.index + "-" + bar.x);
44535
44802
  })
44536
44803
  }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
@@ -44548,8 +44815,15 @@ var Bar = function Bar(_ref2) {
44548
44815
  _onClick = _ref2.onClick,
44549
44816
  showDetailedSubGroupingLabels = _ref2.showDetailedSubGroupingLabels,
44550
44817
  yAxisLabels = _ref2.yAxisLabels,
44551
- yLabelPosition = _ref2.yLabelPosition;
44818
+ yLabelPosition = _ref2.yLabelPosition,
44819
+ minValue = _ref2.minValue,
44820
+ maxValue = _ref2.maxValue,
44821
+ totalItems = _ref2.totalItems,
44822
+ showLabels = _ref2.showLabels;
44552
44823
  var showBar = bar.value !== null && bar.height > 0 && bar.width > 0;
44824
+ var labelX = bar.width < 10 ? bar.x - 14 : bar.x / 2;
44825
+ var labelY = bar.y - 4;
44826
+ var showMinMax = showMinMaxLabel(bar.value, totalItems, minValue, maxValue);
44553
44827
  return jsxRuntime.jsxs(React.Fragment, {
44554
44828
  children: [showBar && jsxRuntime.jsx(BarRect, {
44555
44829
  barRectKey: "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key),
@@ -44562,6 +44836,12 @@ var Bar = function Bar(_ref2) {
44562
44836
  return _onClick(e, barGroup, bar);
44563
44837
  },
44564
44838
  enableHover: enableHover
44839
+ }), showLabels && showMinMax && jsxRuntime.jsx(DataLabel, {
44840
+ x: labelX,
44841
+ y: labelY,
44842
+ title: bar.value,
44843
+ dx: 1,
44844
+ dy: 0
44565
44845
  }), jsxRuntime.jsx(BarLabel, {
44566
44846
  bar: bar,
44567
44847
  barGroup: barGroup,
@@ -44587,7 +44867,7 @@ var BarRect = function BarRect(_ref3) {
44587
44867
  var classes = enableHover ? /*#__PURE__*/css$1.css( {
44588
44868
  name: "1ltmijl-classes",
44589
44869
  styles: "cursor:pointer;label:classes;",
44590
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckdyb3VwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0S2dDIiwiZmlsZSI6IkJhckdyb3VwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ0B2aXN4L2dyb3VwJztcbmltcG9ydCB7IEJhckdyb3VwIGFzIFZpc3hCYXJHcm91cCB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdHVtT2JqZWN0IH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IFNjYWxlQmFuZCwgU2NhbGVMaW5lYXIgfSBmcm9tICdAdmlzeC92ZW5kb3IvZDMtc2NhbGUnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IENoYXJ0RGF0YURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIFNoYXBlRGVmaW5pdGlvbiB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0ZpZWxkL3R5cGVzJztcbmltcG9ydCB7IGxpZ2h0ZW5Db2xvciB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb2xvci5mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQkFSX1JBRElVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9CT1JERVJfUkFESVVTJztcbmltcG9ydCB7IGdldEJhckZpbGwgfSBmcm9tICcuLi9nZXRCYXJGaWxsJztcblxuZXhwb3J0IHR5cGUgQmFyR3JvdXBQcm9wcyA9IHtcbiAgZGF0YTogQ2hhcnREYXRhRGVmaW5pdGlvbltdO1xuICBrZXlzOiBzdHJpbmdbXTtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlO1xuICB4U2NhbGU6IFNjYWxlQmFuZDxzdHJpbmc+IHwgU2NhbGVCYW5kPERhdGU+IHwgU2NhbGVCYW5kPG51bWJlcj4gfCBudWxsO1xuICBpbm5lclhTY2FsZTogU2NhbGVCYW5kPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIHlTY2FsZTogU2NhbGVMaW5lYXI8bnVtYmVyLCBudW1iZXIsIG5ldmVyPjtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogYW55LCBiYXI6IGFueSkgPT4gdm9pZDtcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM6IENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVbXTtcbiAgYmFyczogU2hhcGVEZWZpbml0aW9uPEJhclN0eWxlcz5bXTtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xuICB5QXhpc0xhYmVscz86IHN0cmluZ1tdO1xuICB5TGFiZWxQb3NpdGlvbj86IG51bWJlcjtcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM6IGJvb2xlYW47XG4gIGxhYmVsU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEJhckdyb3VwKHtcbiAgZGF0YSxcbiAga2V5cyxcbiAgaGVpZ2h0LFxuICB4S2V5LFxuICB4U2NhbGVEYXRhVHlwZSxcbiAgeFNjYWxlLFxuICBpbm5lclhTY2FsZSxcbiAgeVNjYWxlLFxuICBvbkNsaWNrLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgYmFycyxcbiAgZW5hYmxlSG92ZXIsXG4gIHlBeGlzTGFiZWxzLFxuICB5TGFiZWxQb3NpdGlvbixcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHMsXG4gIGxhYmVsU3R5bGUsXG59OiBCYXJHcm91cFByb3BzKSB7XG4gIGNvbnN0IGdldEdyb3VwUG9zaXRpb24gPSAoZDogRGF0dW1PYmplY3QpID0+IHtcbiAgICBjb25zdCB4VmFsdWUgPSBkW3hLZXkgYXMga2V5b2YgdHlwZW9mIGRdO1xuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIFN0cmluZyh4VmFsdWUpO1xuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJykge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKFN0cmluZyh4VmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHhWYWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh4VmFsdWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFZpc3hCYXJHcm91cDxEYXR1bU9iamVjdD5cbiAgICAgIGRhdGE9e2RhdGEgYXMgRGF0dW1PYmplY3RbXX1cbiAgICAgIGtleXM9e2tleXN9XG4gICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgIHgwPXtnZXRHcm91cFBvc2l0aW9ufVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgeDFTY2FsZT17aW5uZXJYU2NhbGV9XG4gICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICA+XG4gICAgICB7KGJhckdyb3VwcykgPT4ge1xuICAgICAgICByZXR1cm4gYmFyR3JvdXBzLm1hcCgoYmFyR3JvdXApID0+IChcbiAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAge2Jhckdyb3VwLmJhcnMubWFwKChiYXIpID0+IChcbiAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgIGtleT17YGJhci0ke2Jhci5pbmRleH0tJHtiYXIueH1gfVxuICAgICAgICAgICAgICAgIGJhcj17YmFyfVxuICAgICAgICAgICAgICAgIGJhckdyb3VwPXtiYXJHcm91cH1cbiAgICAgICAgICAgICAgICBiYXJzPXtiYXJzfVxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgbGFiZWxTdHlsZT17bGFiZWxTdHlsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgICAgIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzPXtzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVsc31cbiAgICAgICAgICAgICAgICB5QXhpc0xhYmVscz17eUF4aXNMYWJlbHN9XG4gICAgICAgICAgICAgICAgeUxhYmVsUG9zaXRpb249e3lMYWJlbFBvc2l0aW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgKSk7XG4gICAgICB9fVxuICAgIDwvVmlzeEJhckdyb3VwPlxuICApO1xufVxuXG50eXBlIEJhclByb3BzID0ge1xuICBiYXI6IGFueTtcbiAgYmFyR3JvdXA6IGFueTtcbiAgYmFyczogU2hhcGVEZWZpbml0aW9uPEJhclN0eWxlcz5bXTtcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM6IENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVbXTtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4sIGJhckdyb3VwOiBhbnksIGJhcjogYW55KSA9PiB2b2lkO1xuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVsczogYm9vbGVhbjtcbiAgbGFiZWxTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIHlBeGlzTGFiZWxzPzogc3RyaW5nW107XG4gIHlMYWJlbFBvc2l0aW9uPzogbnVtYmVyO1xufTtcblxuY29uc3QgQmFyID0gKHtcbiAgYmFyLFxuICBiYXJHcm91cCxcbiAgYmFycyxcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gIGVuYWJsZUhvdmVyLFxuICBsYWJlbFN0eWxlLFxuICBvbkNsaWNrLFxuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyxcbiAgeUF4aXNMYWJlbHMsXG4gIHlMYWJlbFBvc2l0aW9uLFxufTogQmFyUHJvcHMpID0+IHtcbiAgY29uc3Qgc2hvd0JhciA9IGJhci52YWx1ZSAhPT0gbnVsbCAmJiBiYXIuaGVpZ2h0ID4gMCAmJiBiYXIud2lkdGggPiAwO1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge3Nob3dCYXIgJiYgKFxuICAgICAgICA8QmFyUmVjdFxuICAgICAgICAgIGJhclJlY3RLZXk9e2BiYXItZ3JvdXAtYmFyLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyLmluZGV4fS0ke2Jhci52YWx1ZX0tJHtTdHJpbmcoYmFyLmtleSl9YH1cbiAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGJhcnMsIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBTdHJpbmcoYmFyLmtleSksIGJhci52YWx1ZSl9XG4gICAgICAgICAgb25DbGljaz17KGUpID0+IG9uQ2xpY2soZSwgYmFyR3JvdXAsIGJhcil9XG4gICAgICAgICAgZW5hYmxlSG92ZXI9e2VuYWJsZUhvdmVyfVxuICAgICAgICAvPlxuICAgICAgKX1cblxuICAgICAgPEJhckxhYmVsXG4gICAgICAgIGJhcj17YmFyfVxuICAgICAgICBiYXJHcm91cD17YmFyR3JvdXB9XG4gICAgICAgIHlMYWJlbFBvc2l0aW9uPXt5TGFiZWxQb3NpdGlvbn1cbiAgICAgICAgeUF4aXNMYWJlbHM9e3lBeGlzTGFiZWxzfVxuICAgICAgICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscz17c2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHN9XG4gICAgICAgIGxhYmVsU3R5bGU9e2xhYmVsU3R5bGV9XG4gICAgICAvPlxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59O1xuXG50eXBlIEJhclJlY3RQcm9wcyA9IHtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xuICBmaWxsPzogc3RyaW5nO1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGJhclJlY3RLZXk6IHN0cmluZztcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufTtcblxuY29uc3QgQmFyUmVjdCA9ICh7IG9uQ2xpY2ssIGZpbGwsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGJhclJlY3RLZXksIGVuYWJsZUhvdmVyIH06IEJhclJlY3RQcm9wcykgPT4ge1xuICBjb25zdCBbZmlsbENvbG9yLCBzZXRGaWxsQ29sb3JdID0gdXNlU3RhdGUoZmlsbCk7XG5cbiAgY29uc3QgY2xhc3NlcyA9IGVuYWJsZUhvdmVyID8gY3NzKHsgY3Vyc29yOiAncG9pbnRlcicgfSkgOiAnJztcblxuICBjb25zdCBoYW5kbGVPbk1vdXNlRW50ZXIgPSAoKSA9PiB7XG4gICAgaWYgKGVuYWJsZUhvdmVyKSB7XG4gICAgICBzZXRGaWxsQ29sb3IobGlnaHRlbkNvbG9yKGZpbGwsIDAuOCkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVPbk1vdXNlTGVhdmUgPSAoKSA9PiB7XG4gICAgaWYgKGVuYWJsZUhvdmVyKSB7XG4gICAgICBzZXRGaWxsQ29sb3IoZmlsbCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPHJlY3RcbiAgICAgIGtleT17YmFyUmVjdEtleX1cbiAgICAgIHg9e3h9XG4gICAgICB5PXt5fVxuICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICBmaWxsPXtmaWxsQ29sb3J9XG4gICAgICByeD17QkFSX1JBRElVU31cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU9uTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlT25Nb3VzZUxlYXZlfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgIC8+XG4gICk7XG59O1xuXG50eXBlIEJhckxhYmVsUHJvcHMgPSB7XG4gIGJhcjogYW55O1xuICBiYXJHcm91cDogYW55O1xuICB5TGFiZWxQb3NpdGlvbj86IG51bWJlcjtcbiAgeUF4aXNMYWJlbHM/OiBzdHJpbmdbXTtcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM6IGJvb2xlYW47XG4gIGxhYmVsU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuY29uc3QgQmFyTGFiZWwgPSAoe1xuICBiYXIsXG4gIGJhckdyb3VwLFxuICB5TGFiZWxQb3NpdGlvbixcbiAgeUF4aXNMYWJlbHMsXG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzLFxuICBsYWJlbFN0eWxlLFxufTogQmFyTGFiZWxQcm9wcykgPT4ge1xuICBpZiAoIXNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzIHx8ICF5TGFiZWxQb3NpdGlvbiB8fCAheUF4aXNMYWJlbHMpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGxhYmVsID0geUF4aXNMYWJlbHNbYmFyLmluZGV4XTtcbiAgY29uc3QgY29sdW1uTGFiZWwgPSBsYWJlbC5zcGxpdCgn4oCiJylbMF07XG5cbiAgbGV0IGZvcm1hdHRlZENvbHVtbkxhYmVsOiBzdHJpbmc7XG4gIGlmIChjb2x1bW5MYWJlbC5sZW5ndGggPj0gMTMpIHtcbiAgICBmb3JtYXR0ZWRDb2x1bW5MYWJlbCA9IGNvbHVtbkxhYmVsLnNsaWNlKDAsIDEwKSArICcuLi4nO1xuICB9IGVsc2Uge1xuICAgIGZvcm1hdHRlZENvbHVtbkxhYmVsID0gY29sdW1uTGFiZWwuc2xpY2UoMCwgMTMpO1xuICB9XG5cbiAgY29uc3QgbGFiZWxYR2FwID0gNDtcbiAgY29uc3QgbGFiZWxYUG9zaXRpb24gPSBiYXIueCArIGJhci53aWR0aCAvIDIgKyBsYWJlbFhHYXA7XG5cbiAgY29uc3QgbGFiZWxZR2FwID0gMTU7XG4gIGNvbnN0IGxhYmVsWVBvc2l0aW9uID0geUxhYmVsUG9zaXRpb24gKyBsYWJlbFlHYXA7XG5cbiAgY29uc3QgbGFiZWxLZXkgPSBgbGFiZWwtJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7bGFiZWx9YDtcblxuICByZXR1cm4gKFxuICAgIDx0ZXh0XG4gICAgICBrZXk9e2xhYmVsS2V5fVxuICAgICAgeD17bGFiZWxYUG9zaXRpb259XG4gICAgICB5PXtsYWJlbFlQb3NpdGlvbn1cbiAgICAgIHN0eWxlPXtsYWJlbFN0eWxlfVxuICAgICAgdHJhbnNmb3JtPXtgcm90YXRlKC03MCwgJHtsYWJlbFhQb3NpdGlvbn0sICR7bGFiZWxZUG9zaXRpb259KWB9XG4gICAgICB0ZXh0QW5jaG9yPVwiZW5kXCJcbiAgICA+XG4gICAgICB7Zm9ybWF0dGVkQ29sdW1uTGFiZWx9XG4gICAgPC90ZXh0PlxuICApO1xufTtcbiJdfQ== */",
44870
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckdyb3VwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrTmdDIiwiZmlsZSI6IkJhckdyb3VwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ0B2aXN4L2dyb3VwJztcbmltcG9ydCB7IEJhckdyb3VwIGFzIFZpc3hCYXJHcm91cCB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdHVtT2JqZWN0IH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IFNjYWxlQmFuZCwgU2NhbGVMaW5lYXIgfSBmcm9tICdAdmlzeC92ZW5kb3IvZDMtc2NhbGUnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IENoYXJ0RGF0YURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIFNoYXBlRGVmaW5pdGlvbiB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0ZpZWxkL3R5cGVzJztcbmltcG9ydCB7IGxpZ2h0ZW5Db2xvciB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb2xvci5mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQkFSX1JBRElVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9CT1JERVJfUkFESVVTJztcbmltcG9ydCB7IGdldEJhckZpbGwgfSBmcm9tICcuLi9nZXRCYXJGaWxsJztcbmltcG9ydCB7IERhdGFMYWJlbCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRGF0YUxhYmVsJztcbmltcG9ydCB7XG4gIHNob3dNaW5NYXhMYWJlbCxcbiAgZ2V0TWluTWF4Q2hhcnRWYWx1ZUZyb21OdW1iZXJBcnJheSxcbiAgZ2V0QWxsQ2hhcnRWYWx1ZXMsXG59IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvRGF0YUxhYmVsL2luZGV4JztcblxuZXhwb3J0IHR5cGUgQmFyR3JvdXBQcm9wcyA9IHtcbiAgZGF0YTogQ2hhcnREYXRhRGVmaW5pdGlvbltdO1xuICBrZXlzOiBzdHJpbmdbXTtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlO1xuICB4U2NhbGU6IFNjYWxlQmFuZDxzdHJpbmc+IHwgU2NhbGVCYW5kPERhdGU+IHwgU2NhbGVCYW5kPG51bWJlcj4gfCBudWxsO1xuICBpbm5lclhTY2FsZTogU2NhbGVCYW5kPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIHlTY2FsZTogU2NhbGVMaW5lYXI8bnVtYmVyLCBudW1iZXIsIG5ldmVyPjtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogYW55LCBiYXI6IGFueSkgPT4gdm9pZDtcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM6IENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVbXTtcbiAgYmFyczogU2hhcGVEZWZpbml0aW9uPEJhclN0eWxlcz5bXTtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xuICB5QXhpc0xhYmVscz86IHN0cmluZ1tdO1xuICB5TGFiZWxQb3NpdGlvbj86IG51bWJlcjtcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM6IGJvb2xlYW47XG4gIGxhYmVsU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBzaG93TGFiZWxzPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBCYXJHcm91cCh7XG4gIGRhdGEsXG4gIGtleXMsXG4gIGhlaWdodCxcbiAgeEtleSxcbiAgeFNjYWxlRGF0YVR5cGUsXG4gIHhTY2FsZSxcbiAgaW5uZXJYU2NhbGUsXG4gIHlTY2FsZSxcbiAgb25DbGljayxcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gIGJhcnMsXG4gIGVuYWJsZUhvdmVyLFxuICB5QXhpc0xhYmVscyxcbiAgeUxhYmVsUG9zaXRpb24sXG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzLFxuICBsYWJlbFN0eWxlLFxuICBzaG93TGFiZWxzLFxufTogQmFyR3JvdXBQcm9wcykge1xuICBjb25zdCBnZXRHcm91cFBvc2l0aW9uID0gKGQ6IERhdHVtT2JqZWN0KSA9PiB7XG4gICAgY29uc3QgeFZhbHVlID0gZFt4S2V5IGFzIGtleW9mIHR5cGVvZiBkXTtcblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHJldHVybiBTdHJpbmcoeFZhbHVlKTtcblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZScpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShTdHJpbmcoeFZhbHVlKSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIE51bWJlcih4VmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcoeFZhbHVlKTtcbiAgfTtcblxuICBjb25zdCB7IG1pblZhbHVlLCBtYXhWYWx1ZSwgdG90YWxJdGVtcyB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgYWxsQmFyVmFsdWVzID0gZ2V0QWxsQ2hhcnRWYWx1ZXMoZGF0YSwga2V5cyk7XG4gICAgY29uc3QgeyBtaW5WYWx1ZSwgbWF4VmFsdWUgfSA9IGdldE1pbk1heENoYXJ0VmFsdWVGcm9tTnVtYmVyQXJyYXkoYWxsQmFyVmFsdWVzKTtcblxuICAgIHJldHVybiB7XG4gICAgICBtaW5WYWx1ZSxcbiAgICAgIG1heFZhbHVlLFxuICAgICAgdG90YWxJdGVtczogYWxsQmFyVmFsdWVzLmxlbmd0aCxcbiAgICB9O1xuICB9LCBbZGF0YSwga2V5c10pO1xuXG4gIHJldHVybiAoXG4gICAgPFZpc3hCYXJHcm91cDxEYXR1bU9iamVjdD5cbiAgICAgIGRhdGE9e2RhdGEgYXMgRGF0dW1PYmplY3RbXX1cbiAgICAgIGtleXM9e2tleXN9XG4gICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgIHgwPXtnZXRHcm91cFBvc2l0aW9ufVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgeDFTY2FsZT17aW5uZXJYU2NhbGV9XG4gICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICA+XG4gICAgICB7KGJhckdyb3VwcykgPT4ge1xuICAgICAgICByZXR1cm4gYmFyR3JvdXBzLm1hcCgoYmFyR3JvdXApID0+IChcbiAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAge2Jhckdyb3VwLmJhcnMubWFwKChiYXIpID0+IChcbiAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgIGtleT17YGJhci0ke2Jhci5pbmRleH0tJHtiYXIueH1gfVxuICAgICAgICAgICAgICAgIGJhcj17YmFyfVxuICAgICAgICAgICAgICAgIGJhckdyb3VwPXtiYXJHcm91cH1cbiAgICAgICAgICAgICAgICBiYXJzPXtiYXJzfVxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgbGFiZWxTdHlsZT17bGFiZWxTdHlsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgICAgIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzPXtzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVsc31cbiAgICAgICAgICAgICAgICB5QXhpc0xhYmVscz17eUF4aXNMYWJlbHN9XG4gICAgICAgICAgICAgICAgeUxhYmVsUG9zaXRpb249e3lMYWJlbFBvc2l0aW9ufVxuICAgICAgICAgICAgICAgIG1pblZhbHVlPXttaW5WYWx1ZX1cbiAgICAgICAgICAgICAgICBtYXhWYWx1ZT17bWF4VmFsdWV9XG4gICAgICAgICAgICAgICAgdG90YWxJdGVtcz17dG90YWxJdGVtc31cbiAgICAgICAgICAgICAgICBzaG93TGFiZWxzPXtzaG93TGFiZWxzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgKSk7XG4gICAgICB9fVxuICAgIDwvVmlzeEJhckdyb3VwPlxuICApO1xufVxuXG50eXBlIEJhclByb3BzID0ge1xuICBiYXI6IGFueTtcbiAgYmFyR3JvdXA6IGFueTtcbiAgYmFyczogU2hhcGVEZWZpbml0aW9uPEJhclN0eWxlcz5bXTtcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM6IENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVbXTtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4sIGJhckdyb3VwOiBhbnksIGJhcjogYW55KSA9PiB2b2lkO1xuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVsczogYm9vbGVhbjtcbiAgbGFiZWxTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIHlBeGlzTGFiZWxzPzogc3RyaW5nW107XG4gIHlMYWJlbFBvc2l0aW9uPzogbnVtYmVyO1xuICBtaW5WYWx1ZTogbnVtYmVyO1xuICBtYXhWYWx1ZTogbnVtYmVyO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIHNob3dMYWJlbHM/OiBib29sZWFuO1xufTtcblxuY29uc3QgQmFyID0gKHtcbiAgYmFyLFxuICBiYXJHcm91cCxcbiAgYmFycyxcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gIGVuYWJsZUhvdmVyLFxuICBsYWJlbFN0eWxlLFxuICBvbkNsaWNrLFxuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyxcbiAgeUF4aXNMYWJlbHMsXG4gIHlMYWJlbFBvc2l0aW9uLFxuICBtaW5WYWx1ZSxcbiAgbWF4VmFsdWUsXG4gIHRvdGFsSXRlbXMsXG4gIHNob3dMYWJlbHMsXG59OiBCYXJQcm9wcykgPT4ge1xuICBjb25zdCBzaG93QmFyID0gYmFyLnZhbHVlICE9PSBudWxsICYmIGJhci5oZWlnaHQgPiAwICYmIGJhci53aWR0aCA+IDA7XG5cbiAgY29uc3QgbGFiZWxYID0gYmFyLndpZHRoIDwgMTAgPyBiYXIueCAtIDE0IDogYmFyLnggLyAyO1xuICBjb25zdCBsYWJlbFkgPSBiYXIueSAtIDQ7XG5cbiAgY29uc3Qgc2hvd01pbk1heCA9IHNob3dNaW5NYXhMYWJlbChiYXIudmFsdWUsIHRvdGFsSXRlbXMsIG1pblZhbHVlLCBtYXhWYWx1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RnJhZ21lbnQ+XG4gICAgICB7c2hvd0JhciAmJiAoXG4gICAgICAgIDxCYXJSZWN0XG4gICAgICAgICAgYmFyUmVjdEtleT17YGJhci1ncm91cC1iYXItJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7YmFyLnZhbHVlfS0ke1N0cmluZyhiYXIua2V5KX1gfVxuICAgICAgICAgIHg9e2Jhci54fVxuICAgICAgICAgIHk9e2Jhci55fVxuICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgaGVpZ2h0PXtiYXIuaGVpZ2h0fVxuICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoYmFycywgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIFN0cmluZyhiYXIua2V5KSwgYmFyLnZhbHVlKX1cbiAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25DbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7c2hvd0xhYmVscyAmJiBzaG93TWluTWF4ICYmIDxEYXRhTGFiZWwgeD17bGFiZWxYfSB5PXtsYWJlbFl9IHRpdGxlPXtiYXIudmFsdWV9IGR4PXsxfSBkeT17MH0gLz59XG5cbiAgICAgIDxCYXJMYWJlbFxuICAgICAgICBiYXI9e2Jhcn1cbiAgICAgICAgYmFyR3JvdXA9e2Jhckdyb3VwfVxuICAgICAgICB5TGFiZWxQb3NpdGlvbj17eUxhYmVsUG9zaXRpb259XG4gICAgICAgIHlBeGlzTGFiZWxzPXt5QXhpc0xhYmVsc31cbiAgICAgICAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM9e3Nob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzfVxuICAgICAgICBsYWJlbFN0eWxlPXtsYWJlbFN0eWxlfVxuICAgICAgLz5cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxudHlwZSBCYXJSZWN0UHJvcHMgPSB7XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgZmlsbD86IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBiYXJSZWN0S2V5OiBzdHJpbmc7XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEJhclJlY3QgPSAoeyBvbkNsaWNrLCBmaWxsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBiYXJSZWN0S2V5LCBlbmFibGVIb3ZlciB9OiBCYXJSZWN0UHJvcHMpID0+IHtcbiAgY29uc3QgW2ZpbGxDb2xvciwgc2V0RmlsbENvbG9yXSA9IHVzZVN0YXRlKGZpbGwpO1xuXG4gIGNvbnN0IGNsYXNzZXMgPSBlbmFibGVIb3ZlciA/IGNzcyh7IGN1cnNvcjogJ3BvaW50ZXInIH0pIDogJyc7XG5cbiAgY29uc3QgaGFuZGxlT25Nb3VzZUVudGVyID0gKCkgPT4ge1xuICAgIGlmIChlbmFibGVIb3Zlcikge1xuICAgICAgc2V0RmlsbENvbG9yKGxpZ2h0ZW5Db2xvcihmaWxsLCAwLjgpKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlT25Nb3VzZUxlYXZlID0gKCkgPT4ge1xuICAgIGlmIChlbmFibGVIb3Zlcikge1xuICAgICAgc2V0RmlsbENvbG9yKGZpbGwpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxyZWN0XG4gICAgICBrZXk9e2JhclJlY3RLZXl9XG4gICAgICB4PXt4fVxuICAgICAgeT17eX1cbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgZmlsbD17ZmlsbENvbG9yfVxuICAgICAgcng9e0JBUl9SQURJVVN9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtoYW5kbGVPbk1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlTGVhdmU9e2hhbmRsZU9uTW91c2VMZWF2ZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAvPlxuICApO1xufTtcblxudHlwZSBCYXJMYWJlbFByb3BzID0ge1xuICBiYXI6IGFueTtcbiAgYmFyR3JvdXA6IGFueTtcbiAgeUxhYmVsUG9zaXRpb24/OiBudW1iZXI7XG4gIHlBeGlzTGFiZWxzPzogc3RyaW5nW107XG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzOiBib29sZWFuO1xuICBsYWJlbFN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn07XG5cbmNvbnN0IEJhckxhYmVsID0gKHtcbiAgYmFyLFxuICBiYXJHcm91cCxcbiAgeUxhYmVsUG9zaXRpb24sXG4gIHlBeGlzTGFiZWxzLFxuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyxcbiAgbGFiZWxTdHlsZSxcbn06IEJhckxhYmVsUHJvcHMpID0+IHtcbiAgaWYgKCFzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyB8fCAheUxhYmVsUG9zaXRpb24gfHwgIXlBeGlzTGFiZWxzKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBsYWJlbCA9IHlBeGlzTGFiZWxzW2Jhci5pbmRleF07XG4gIGNvbnN0IGNvbHVtbkxhYmVsID0gbGFiZWwuc3BsaXQoJ+KAoicpWzBdO1xuXG4gIGxldCBmb3JtYXR0ZWRDb2x1bW5MYWJlbDogc3RyaW5nO1xuICBpZiAoY29sdW1uTGFiZWwubGVuZ3RoID49IDEzKSB7XG4gICAgZm9ybWF0dGVkQ29sdW1uTGFiZWwgPSBjb2x1bW5MYWJlbC5zbGljZSgwLCAxMCkgKyAnLi4uJztcbiAgfSBlbHNlIHtcbiAgICBmb3JtYXR0ZWRDb2x1bW5MYWJlbCA9IGNvbHVtbkxhYmVsLnNsaWNlKDAsIDEzKTtcbiAgfVxuXG4gIGNvbnN0IGxhYmVsWEdhcCA9IDQ7XG4gIGNvbnN0IGxhYmVsWFBvc2l0aW9uID0gYmFyLnggKyBiYXIud2lkdGggLyAyICsgbGFiZWxYR2FwO1xuXG4gIGNvbnN0IGxhYmVsWUdhcCA9IDE1O1xuICBjb25zdCBsYWJlbFlQb3NpdGlvbiA9IHlMYWJlbFBvc2l0aW9uICsgbGFiZWxZR2FwO1xuXG4gIGNvbnN0IGxhYmVsS2V5ID0gYGxhYmVsLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyLmluZGV4fS0ke2xhYmVsfWA7XG5cbiAgcmV0dXJuIChcbiAgICA8dGV4dFxuICAgICAga2V5PXtsYWJlbEtleX1cbiAgICAgIHg9e2xhYmVsWFBvc2l0aW9ufVxuICAgICAgeT17bGFiZWxZUG9zaXRpb259XG4gICAgICBzdHlsZT17bGFiZWxTdHlsZX1cbiAgICAgIHRyYW5zZm9ybT17YHJvdGF0ZSgtNzAsICR7bGFiZWxYUG9zaXRpb259LCAke2xhYmVsWVBvc2l0aW9ufSlgfVxuICAgICAgdGV4dEFuY2hvcj1cImVuZFwiXG4gICAgPlxuICAgICAge2Zvcm1hdHRlZENvbHVtbkxhYmVsfVxuICAgIDwvdGV4dD5cbiAgKTtcbn07XG4iXX0= */",
44591
44871
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
44592
44872
  }) : '';
44593
44873
  var handleOnMouseEnter = function handleOnMouseEnter() {
@@ -44923,7 +45203,8 @@ var BarChart$5 = function BarChart(_ref) {
44923
45203
  showDetailedSubGroupingLabels: showDetailedSubGroupingLabels,
44924
45204
  yAxisLabels: yAxisLabels,
44925
45205
  yLabelPosition: ySubLabelPosition,
44926
- labelStyle: themeCSS.labels
45206
+ labelStyle: themeCSS.labels,
45207
+ showLabels: options.showLabels
44927
45208
  }), options.stacked && xScaleKey !== null && jsxRuntime.jsx(BarStacked, {
44928
45209
  data: dataFlattened,
44929
45210
  keys: chart.y.keys,
@@ -45074,9 +45355,9 @@ var ThresholdArea = function ThresholdArea(props) {
45074
45355
 
45075
45356
  var AREA_GRADIENT_ID_PREFIX = 'area-gradient';
45076
45357
 
45077
- /*
45358
+ /*
45078
45359
  NOTES
45079
- -----
45360
+ -----
45080
45361
  1. Control width of margins via props and truncate ticks using a fixed width
45081
45362
  2. (somehow) prevent overlapping of ticks
45082
45363
  3. Split out conditional formatting colours to show operator and values for each color
@@ -45141,6 +45422,12 @@ var AreaChart$5 = function AreaChart(_ref) {
45141
45422
  }, [innerWidth, chart.x, chart.data]);
45142
45423
  var _yScale = useYScale(innerHeight, chart.y.scale);
45143
45424
  var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
45425
+ var _useMemo = React.useMemo(function () {
45426
+ var allValues = getAllChartValues(dataFlattened, chart.y.keys);
45427
+ return getMinMaxChartValueFromNumberArray(allValues);
45428
+ }, [dataFlattened, chart.y.keys]),
45429
+ minValue = _useMemo.minValue,
45430
+ maxValue = _useMemo.maxValue;
45144
45431
  var handleMouseMove = React.useCallback(function (event) {
45145
45432
  if (!xKey || !xScaleKey || xScale === null) return;
45146
45433
  var tooltipData = getTooltipData({
@@ -45302,6 +45589,18 @@ var AreaChart$5 = function AreaChart(_ref) {
45302
45589
  clipPath: "url(#" + buildClipPathId$1(areaThreshold, AREA_GRADIENT_ID_PREFIX, uniqueId) + ")",
45303
45590
  fill: "url(#" + id + ")"
45304
45591
  }, yKey + "-" + AREA_GRADIENT_ID_PREFIX + "-" + thresholdIndex);
45592
+ }), dataFlattened.map(function (d) {
45593
+ return jsxRuntime.jsx(AreaLabel, {
45594
+ chartData: d,
45595
+ yKey: yKey,
45596
+ xScaleKey: xScaleKey,
45597
+ xScale: xScale,
45598
+ yScale: _yScale,
45599
+ totalItems: dataFlattened.length,
45600
+ minValue: minValue,
45601
+ maxValue: maxValue,
45602
+ showLabels: options.showLabels
45603
+ });
45305
45604
  })]
45306
45605
  }, yKey + "-" + AREA_GRADIENT_ID_PREFIX);
45307
45606
  })]
@@ -45353,17 +45652,43 @@ var AreaChart$5 = function AreaChart(_ref) {
45353
45652
  })]
45354
45653
  });
45355
45654
  };
45356
- function Area(_ref3) {
45357
- var data = _ref3.data,
45358
- xScaleDataType = _ref3.xScaleDataType,
45655
+ function AreaLabel(_ref3) {
45656
+ var chartData = _ref3.chartData,
45657
+ yKey = _ref3.yKey,
45658
+ xScaleKey = _ref3.xScaleKey,
45359
45659
  xScale = _ref3.xScale,
45360
45660
  yScale = _ref3.yScale,
45361
- yKey = _ref3.yKey,
45362
- curve = _ref3.curve,
45363
- clipPath = _ref3.clipPath,
45364
- xKey = _ref3.xKey,
45365
- fill = _ref3.fill,
45366
- stroke = _ref3.stroke;
45661
+ totalItems = _ref3.totalItems,
45662
+ minValue = _ref3.minValue,
45663
+ maxValue = _ref3.maxValue,
45664
+ showLabels = _ref3.showLabels;
45665
+ var xValue = chartData[xScaleKey];
45666
+ var yValue = chartData[yKey];
45667
+ var xPadding = 18;
45668
+ var yPadding = 8;
45669
+ var xPosition = xScale(xValue);
45670
+ var yPosition = yScale(yValue);
45671
+ var showMinMax = showMinMaxLabel(Number(yValue), totalItems, minValue, maxValue);
45672
+ if (xPosition == null || yPosition == null || !showMinMax || !showLabels) return null;
45673
+ return jsxRuntime.jsx(DataLabel, {
45674
+ x: xPosition - xPadding,
45675
+ y: yPosition - yPadding,
45676
+ dx: 2,
45677
+ dy: 0,
45678
+ title: yValue
45679
+ });
45680
+ }
45681
+ function Area(_ref4) {
45682
+ var data = _ref4.data,
45683
+ xScaleDataType = _ref4.xScaleDataType,
45684
+ xScale = _ref4.xScale,
45685
+ yScale = _ref4.yScale,
45686
+ yKey = _ref4.yKey,
45687
+ curve = _ref4.curve,
45688
+ clipPath = _ref4.clipPath,
45689
+ xKey = _ref4.xKey,
45690
+ fill = _ref4.fill,
45691
+ stroke = _ref4.stroke;
45367
45692
  return jsxRuntime.jsx(shape.AreaClosed, {
45368
45693
  data: data,
45369
45694
  x: function x(d) {
@@ -47600,6 +47925,7 @@ var LineChartV2View = function LineChartV2View(props) {
47600
47925
  overflowX: 'hidden'
47601
47926
  },
47602
47927
  children: function children(parent) {
47928
+ var _props$attributes$lab;
47603
47929
  if (chartRepresentation.lines.length === 0) return jsxRuntime.jsx(LoadingComponent, {});
47604
47930
  return jsxRuntime.jsx(LineChart$5, {
47605
47931
  width: parent.width,
@@ -47610,6 +47936,7 @@ var LineChartV2View = function LineChartV2View(props) {
47610
47936
  removeStroke: false,
47611
47937
  showRoundedTotal: false,
47612
47938
  showLegend: props.attributes.legend,
47939
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
47613
47940
  axis: {
47614
47941
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
47615
47942
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -47969,7 +48296,7 @@ var AreaChartV2View = function AreaChartV2View(props) {
47969
48296
  overflowX: 'hidden'
47970
48297
  },
47971
48298
  children: function children(parent) {
47972
- var _props$attributes$vie2, _props$attributes$sta;
48299
+ var _props$attributes$vie2, _props$attributes$sta, _props$attributes$lab;
47973
48300
  if (chartRepresentation.areas.length === 0) return jsxRuntime.jsx(LoadingComponent, {});
47974
48301
  return jsxRuntime.jsx(AreaChart$5, {
47975
48302
  width: parent.width,
@@ -47982,6 +48309,7 @@ var AreaChartV2View = function AreaChartV2View(props) {
47982
48309
  removeStroke: false,
47983
48310
  showRoundedTotal: false,
47984
48311
  showLegend: props.attributes.legend,
48312
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
47985
48313
  axis: {
47986
48314
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
47987
48315
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -48363,6 +48691,7 @@ var BarChartV2View = function BarChartV2View(props) {
48363
48691
  overflowX: 'hidden'
48364
48692
  },
48365
48693
  children: function children(parent) {
48694
+ var _props$attributes$lab;
48366
48695
  if (chartRepresentation.bars.length === 0) return jsxRuntime.jsx(LoadingComponent, {});
48367
48696
  return jsxRuntime.jsx(BarChart$5, {
48368
48697
  width: parent.width,
@@ -48373,6 +48702,7 @@ var BarChartV2View = function BarChartV2View(props) {
48373
48702
  removeStroke: false,
48374
48703
  showRoundedTotal: false,
48375
48704
  showLegend: props.attributes.legend,
48705
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
48376
48706
  axis: {
48377
48707
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
48378
48708
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -48764,7 +49094,8 @@ var ComboChart$4 = function ComboChart(_ref) {
48764
49094
  xScaleDataType: xScaleDataType,
48765
49095
  showDetailedSubGroupingLabels: false,
48766
49096
  yAxisLabels: [],
48767
- yLabelPosition: 0
49097
+ yLabelPosition: 0,
49098
+ showLabels: options.showLabels
48768
49099
  }), options.stacked && xScaleKey !== null && jsxRuntime.jsx(BarStacked, {
48769
49100
  data: barDataFlattened,
48770
49101
  keys: yBarKeys,
@@ -48788,7 +49119,8 @@ var ComboChart$4 = function ComboChart(_ref) {
48788
49119
  xScaleKey: xScaleKey,
48789
49120
  xScaleDataType: xScaleDataType,
48790
49121
  xScale: xScale,
48791
- yScale: yScale
49122
+ yScale: yScale,
49123
+ showLabels: options.showLabels
48792
49124
  })
48793
49125
  })]
48794
49126
  })]
@@ -49048,7 +49380,7 @@ var ComboChartViewV2 = function ComboChartViewV2(props) {
49048
49380
  overflowX: 'hidden'
49049
49381
  },
49050
49382
  children: function children(parent) {
49051
- var _props$attributes$sta2;
49383
+ var _props$attributes$sta2, _props$attributes$lab;
49052
49384
  var numberOfXTicksFittingIntoSpace = howManyTicksFitInWidth(comboChartRepresentation.x.ticks || [], parent.width);
49053
49385
  return jsxRuntime.jsx(ComboChart$4, {
49054
49386
  width: parent.width,
@@ -49066,6 +49398,7 @@ var ComboChartViewV2 = function ComboChartViewV2(props) {
49066
49398
  removeStroke: false,
49067
49399
  showRoundedTotal: false,
49068
49400
  showLegend: props.attributes.legend,
49401
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
49069
49402
  axis: {
49070
49403
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
49071
49404
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -51619,7 +51952,7 @@ var defaultProps$8 = {
51619
51952
  approxYAxisLabelCount: 'auto'
51620
51953
  };
51621
51954
  var FunnelChartView = function FunnelChartView(props) {
51622
- var _props$library, _props2, _props3, _props4, _props5, _props6, _props7, _props$viewId, _props8, _props$library2, _props9, _props10, _props11, _theme$charts, _props13, _props14, _props$viewId2, _theme$charts2;
51955
+ var _props$library, _props2, _props3, _props4, _props5, _props6, _props7, _props$viewId, _props8, _props$library2, _props9, _props10, _props11, _theme$charts, _props13, _props$labels, _props14, _props15, _props$viewId2, _theme$charts2;
51623
51956
  var _props = props,
51624
51957
  displayTitle = _props.displayTitle,
51625
51958
  displaySubject = _props.displaySubject;
@@ -51710,10 +52043,11 @@ var FunnelChartView = function FunnelChartView(props) {
51710
52043
  colors: themeToColorScale(theme == null ? void 0 : theme.colors, series$1.length),
51711
52044
  data: resultSet$1,
51712
52045
  legend: showLegend((_props13 = props) == null ? void 0 : _props13.legend, (theme == null ? void 0 : theme.detail) === 'verbose'),
52046
+ labels: (_props$labels = (_props14 = props) == null ? void 0 : _props14.labels) != null ? _props$labels : false,
51713
52047
  removeStroke: false,
51714
52048
  forceXAxisAsTime: !!props.timeDimension,
51715
52049
  theme: theme == null ? void 0 : theme.charts,
51716
- axisTitles: (_props14 = props) == null ? void 0 : _props14.axisTitles,
52050
+ axisTitles: (_props15 = props) == null ? void 0 : _props15.axisTitles,
51717
52051
  formatSeriesName: formatSeriesName(props.result, textOverride, props.type, (_props$viewId2 = props.viewId) != null ? _props$viewId2 : '', labelFormat),
51718
52052
  conditionalFormattingPossibilities: function conditionalFormattingPossibilities(dataKey) {
51719
52053
  return getExplanationsOfConditionFormattingRulesThatApplyToSeries(props.dimension, props.conditionalFormattingRules,
@@ -53565,6 +53899,12 @@ var Legend$2 = function Legend(_ref) {
53565
53899
  });
53566
53900
  };
53567
53901
 
53902
+ var getStepYPosition = function getStepYPosition(step, height, y) {
53903
+ var isIncreasing = step.y > 0;
53904
+ if (isIncreasing) return y - 8;
53905
+ return y + height + 16;
53906
+ };
53907
+
53568
53908
  var _excluded$i = ["formattedValue"],
53569
53909
  _excluded2$4 = ["formattedValue"];
53570
53910
  var AXIS_TITLE_STYLES$1 = {
@@ -53739,6 +54079,14 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
53739
54079
  if (xScaleDataType === 'string') return String(xValue);
53740
54080
  return '';
53741
54081
  }, [xScaleKey, xScaleDataType]);
54082
+ var _useMemo = React.useMemo(function () {
54083
+ var stepValues = formattedChartDataForBarChart.steps.map(function (step) {
54084
+ return step.y;
54085
+ });
54086
+ return getMinMaxChartValueFromNumberArray(stepValues);
54087
+ }, [formattedChartDataForBarChart.steps]),
54088
+ minValue = _useMemo.minValue,
54089
+ maxValue = _useMemo.maxValue;
53742
54090
  if (width === 0 || height === 0 || xScale == null) return null;
53743
54091
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
53744
54092
  children: [jsxRuntime.jsxs(ChartWrapper$1, {
@@ -53834,7 +54182,11 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
53834
54182
  bar: bar,
53835
54183
  barGroup: barGroup,
53836
54184
  yScale: yScale,
53837
- formattedChartDataForBarChart: formattedChartDataForBarChart
54185
+ formattedChartDataForBarChart: formattedChartDataForBarChart,
54186
+ showLabels: options.showLabels,
54187
+ totalItems: formattedChartDataForBarChart.steps.length,
54188
+ minValue: minValue,
54189
+ maxValue: maxValue
53838
54190
  });
53839
54191
  })
53840
54192
  }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
@@ -53871,19 +54223,34 @@ var Bar$2 = function Bar(_ref4) {
53871
54223
  yScale = _ref4.yScale,
53872
54224
  formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart,
53873
54225
  increaseColor = _ref4.increaseColor,
53874
- decreaseColor = _ref4.decreaseColor;
54226
+ decreaseColor = _ref4.decreaseColor,
54227
+ showLabels = _ref4.showLabels,
54228
+ totalItems = _ref4.totalItems,
54229
+ minValue = _ref4.minValue,
54230
+ maxValue = _ref4.maxValue;
53875
54231
  var step = formattedChartDataForBarChart.steps[barGroup.index];
53876
54232
  var y = yScale(Math.max(step.start, step.end));
53877
54233
  var barHeight = Math.abs(yScale(step.start) - yScale(step.end));
53878
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
53879
- children: jsxRuntime.jsx("rect", {
54234
+ var xPadding = 14;
54235
+ var labelX = bar.width < 10 ? bar.x - xPadding : bar.x + bar.width / 2;
54236
+ var labelY = getStepYPosition(step, barHeight, y);
54237
+ var showMinMax = showMinMaxLabel(step.y, totalItems, minValue, maxValue);
54238
+ var shouldShowLabel = showLabels && showMinMax && bar.value > 0;
54239
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
54240
+ children: [jsxRuntime.jsx("rect", {
53880
54241
  x: bar.x,
53881
54242
  y: y,
53882
54243
  width: bar.width,
53883
54244
  height: barHeight,
53884
54245
  fill: bar.value > 0 ? increaseColor : decreaseColor,
53885
54246
  rx: 4
53886
- }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key)
54247
+ }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key), shouldShowLabel && jsxRuntime.jsx(DataLabel, {
54248
+ x: labelX,
54249
+ y: labelY,
54250
+ title: step.y.toString(),
54251
+ dx: 1,
54252
+ dy: 0
54253
+ })]
53887
54254
  });
53888
54255
  };
53889
54256
 
@@ -53899,6 +54266,7 @@ var WaterfallChartView = function WaterfallChartView(props) {
53899
54266
  displayTitle = props.displayTitle,
53900
54267
  headline = props.headline,
53901
54268
  id = props.id,
54269
+ labels = props.labels,
53902
54270
  legend = props.legend,
53903
54271
  library = props.library,
53904
54272
  localFilters = props.localFilters,
@@ -54006,6 +54374,7 @@ var WaterfallChartView = function WaterfallChartView(props) {
54006
54374
  height: parent.height,
54007
54375
  options: {
54008
54376
  showLegend: showLegend(legend, (theme == null ? void 0 : theme.detail) === 'verbose'),
54377
+ showLabels: labels != null ? labels : false,
54009
54378
  showTooltipRoundedTotal: true,
54010
54379
  removeStroke: false,
54011
54380
  axis: {