@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.
@@ -54,6 +54,7 @@ import { bisector } from '@visx/vendor/d3-array';
54
54
  import { AxisBottom as AxisBottom$1, AxisLeft as AxisLeft$1 } from '@visx/axis';
55
55
  import { Text } from '@visx/text';
56
56
  import { GridRows as GridRows$1 } from '@visx/grid';
57
+ import { Annotation as Annotation$1, Label as Label$1 } from '@visx/annotation';
57
58
  import { GlyphDot } from '@visx/glyph';
58
59
  import { Point } from '@visx/point';
59
60
  import { interpolate as interpolate$1 } from '@visx/vendor/d3-interpolate';
@@ -3050,6 +3051,7 @@ var attributesSchema = function attributesSchema(config) {
3050
3051
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
3051
3052
  stacked: Joi.valid(true, false, '100%'),
3052
3053
  legend: Joi.valid(true, false),
3054
+ labels: Joi.valid(true, false).optional(),
3053
3055
  type: Joi.valid('barChart', 'horizontalBarChart', 'funnelChart').required(),
3054
3056
  conditionalFormattingRules: conditionalFormattingRulesSchema(config.queryEngineConfig),
3055
3057
  protectedFields: Joi.object({
@@ -4173,6 +4175,7 @@ var attributesSchema$2 = function attributesSchema(config) {
4173
4175
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
4174
4176
  stacked: Joi.valid(true, false, '100%'),
4175
4177
  legend: Joi.valid(true, false),
4178
+ labels: Joi.valid(true, false).optional(),
4176
4179
  type: Joi.valid('lineChartV2').required(),
4177
4180
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
4178
4181
  lineCurve: lineCurveSchema,
@@ -4282,6 +4285,12 @@ var CONSTANTS$2 = {
4282
4285
  title: 'Show Legend',
4283
4286
  description: '',
4284
4287
  namespace: 'legend'
4288
+ },
4289
+ labels: {
4290
+ type: 'labels',
4291
+ title: 'Show Labels',
4292
+ description: '',
4293
+ namespace: 'labels'
4285
4294
  }
4286
4295
  }
4287
4296
  },
@@ -4448,6 +4457,7 @@ var LineChart$1 = function LineChart(config) {
4448
4457
  conditionalFormattingRules: [],
4449
4458
  drilldown: [],
4450
4459
  legend: true,
4460
+ labels: false,
4451
4461
  goalLines: undefined,
4452
4462
  approxXAxisLabelCount: 'auto',
4453
4463
  approxYAxisLabelCount: 'auto',
@@ -4510,7 +4520,10 @@ var LineChart$1 = function LineChart(config) {
4510
4520
  }), namespace(CONSTANTS$2, 'sort'), namespace(CONSTANTS$2, 'filter'), namespace(CONSTANTS$2, 'custom_metrics'), namespace(CONSTANTS$2, 'limit')];
4511
4521
  },
4512
4522
  formatPanelConfig: function formatPanelConfig() {
4513
- return [headingConstant(CONSTANTS$2), chartStylesConstant(CONSTANTS$2, true, false), axisLabelsConstants(CONSTANTS$2), _extends({}, namespace(CONSTANTS$2, 'conditional_formatting'), {
4523
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
4524
+ return [headingConstant(CONSTANTS$2), _extends({}, namespace(CONSTANTS$2, 'chart_styles'), {
4525
+ 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]
4526
+ }), axisLabelsConstants(CONSTANTS$2), _extends({}, namespace(CONSTANTS$2, 'conditional_formatting'), {
4514
4527
  ruleType: 'lineColor'
4515
4528
  }), namespace(CONSTANTS$2, 'goal_line')
4516
4529
  // namespace<'trends'>(CONSTANTS, 'trends'),
@@ -4546,7 +4559,7 @@ var attributesSchema$3 = function attributesSchema(config) {
4546
4559
  order: Joi.array().items(orderSchema(config.queryEngineConfig)),
4547
4560
  type: Joi.valid('pieChart').required(),
4548
4561
  legend: Joi.valid(true, false),
4549
- labels: Joi.valid(true, false),
4562
+ labels: Joi.valid(true, false).optional(),
4550
4563
  limit: queryAttributesLimit(),
4551
4564
  labelsAsPercentage: Joi["boolean"](),
4552
4565
  conditionalFormattingRules: conditionalFormattingRulesSchema(config.queryEngineConfig),
@@ -8637,6 +8650,12 @@ var CONSTANTS$h = {
8637
8650
  title: 'Show Legend',
8638
8651
  description: '',
8639
8652
  namespace: 'legend'
8653
+ },
8654
+ labels: {
8655
+ type: 'labels',
8656
+ title: 'Show Labels',
8657
+ description: '',
8658
+ namespace: 'labels'
8640
8659
  }
8641
8660
  }
8642
8661
  },
@@ -8776,6 +8795,7 @@ var FunnelChart = function FunnelChart(config) {
8776
8795
  yAxisFormat: null,
8777
8796
  xAxisFormat: null,
8778
8797
  legend: true,
8798
+ labels: false,
8779
8799
  approxXAxisLabelCount: 'auto',
8780
8800
  approxYAxisLabelCount: 'auto',
8781
8801
  axisTitles: undefined,
@@ -8833,7 +8853,10 @@ var FunnelChart = function FunnelChart(config) {
8833
8853
  }), namespace(CONSTANTS$h, 'sort'), namespace(CONSTANTS$h, 'filter'), namespace(CONSTANTS$h, 'custom_metrics'), namespace(CONSTANTS$h, 'limit')];
8834
8854
  },
8835
8855
  formatPanelConfig: function formatPanelConfig() {
8836
- return [headingConstant(CONSTANTS$h), chartStylesConstant(CONSTANTS$h, false, false), axisLabelsConstants(CONSTANTS$h), _extends({}, namespace(CONSTANTS$h, 'conditional_formatting'), {
8856
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
8857
+ return [headingConstant(CONSTANTS$h), _extends({}, namespace(CONSTANTS$h, 'chart_styles'), {
8858
+ 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]
8859
+ }), axisLabelsConstants(CONSTANTS$h), _extends({}, namespace(CONSTANTS$h, 'conditional_formatting'), {
8837
8860
  ruleType: 'backgroundColor'
8838
8861
  }), namespace(CONSTANTS$h, 'headline')];
8839
8862
  },
@@ -9930,6 +9953,7 @@ var attributesSchema$i = function attributesSchema(config) {
9930
9953
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
9931
9954
  stacked: Joi.valid(true, false),
9932
9955
  legend: Joi.valid(true, false),
9956
+ labels: Joi.valid(true, false).optional(),
9933
9957
  type: Joi.valid('barChartV2').required(),
9934
9958
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
9935
9959
  conditionalFormattingRules: conditionalFormattingRulesSchema(config.queryEngineConfig),
@@ -10038,6 +10062,12 @@ var CONSTANTS$k = {
10038
10062
  title: 'Show Legend',
10039
10063
  description: '',
10040
10064
  namespace: 'legend'
10065
+ },
10066
+ labels: {
10067
+ type: 'labels',
10068
+ title: 'Show Labels',
10069
+ description: '',
10070
+ namespace: 'labels'
10041
10071
  }
10042
10072
  }
10043
10073
  },
@@ -10198,6 +10228,7 @@ var BarChart$1 = function BarChart(config) {
10198
10228
  conditionalFormattingRules: [],
10199
10229
  drilldown: [],
10200
10230
  legend: true,
10231
+ labels: false,
10201
10232
  goalLines: undefined,
10202
10233
  approxXAxisLabelCount: 'auto',
10203
10234
  approxYAxisLabelCount: 'auto',
@@ -10264,7 +10295,10 @@ var BarChart$1 = function BarChart(config) {
10264
10295
  }), namespace(CONSTANTS$k, 'custom_metrics'), namespace(CONSTANTS$k, 'limit')];
10265
10296
  },
10266
10297
  formatPanelConfig: function formatPanelConfig() {
10267
- return [headingConstant(CONSTANTS$k), chartStylesConstant(CONSTANTS$k, false, true), axisLabelsConstants(CONSTANTS$k), _extends({}, namespace(CONSTANTS$k, 'conditional_formatting'), {
10298
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
10299
+ return [headingConstant(CONSTANTS$k), _extends({}, namespace(CONSTANTS$k, 'chart_styles'), {
10300
+ 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]
10301
+ }), axisLabelsConstants(CONSTANTS$k), _extends({}, namespace(CONSTANTS$k, 'conditional_formatting'), {
10268
10302
  ruleType: 'lineColor'
10269
10303
  }), namespace(CONSTANTS$k, 'goal_line')];
10270
10304
  },
@@ -10291,6 +10325,7 @@ var BarChart$1 = function BarChart(config) {
10291
10325
  var attributesSchema$j = function attributesSchema(config) {
10292
10326
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
10293
10327
  legend: Joi.valid(true, false),
10328
+ labels: Joi.valid(true, false).optional(),
10294
10329
  type: Joi.valid('waterfallChart').required(),
10295
10330
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
10296
10331
  axisTitles: axisTitleSchema(),
@@ -10387,6 +10422,12 @@ var CONSTANTS$l = {
10387
10422
  title: 'Show Legend',
10388
10423
  description: '',
10389
10424
  namespace: 'legend'
10425
+ },
10426
+ labels: {
10427
+ type: 'labels',
10428
+ title: 'Show Labels',
10429
+ description: '',
10430
+ namespace: 'labels'
10390
10431
  }
10391
10432
  }
10392
10433
  },
@@ -10538,6 +10579,7 @@ var WaterfallChart = function WaterfallChart(config) {
10538
10579
  yAxisFormat: null,
10539
10580
  xAxisFormat: null,
10540
10581
  legend: true,
10582
+ labels: false,
10541
10583
  parameters: {},
10542
10584
  axisTitles: undefined,
10543
10585
  headline: undefined,
@@ -10598,7 +10640,10 @@ var WaterfallChart = function WaterfallChart(config) {
10598
10640
  }), namespace(CONSTANTS$l, 'sort'), namespace(CONSTANTS$l, 'filter'), namespace(CONSTANTS$l, 'custom_metrics'), namespace(CONSTANTS$l, 'limit')];
10599
10641
  },
10600
10642
  formatPanelConfig: function formatPanelConfig() {
10601
- return [headingConstant(CONSTANTS$l), namespace(CONSTANTS$l, 'waterfall_colors'), chartStylesConstant(CONSTANTS$l, false, false), axisLabelsConstants(CONSTANTS$l)];
10643
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
10644
+ return [headingConstant(CONSTANTS$l), namespace(CONSTANTS$l, 'waterfall_colors'), _extends({}, namespace(CONSTANTS$l, 'chart_styles'), {
10645
+ 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]
10646
+ }), axisLabelsConstants(CONSTANTS$l)];
10602
10647
  },
10603
10648
  supportedCustomFields: {
10604
10649
  percentages: true,
@@ -10624,6 +10669,7 @@ var attributesSchema$k = function attributesSchema(config) {
10624
10669
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), timeDimensionQuerySchema(config.queryEngineConfig, config.attributesSchemaOptions), {
10625
10670
  stacked: Joi.valid(true, false),
10626
10671
  legend: Joi.valid(true, false),
10672
+ labels: Joi.valid(true, false).optional(),
10627
10673
  type: Joi.valid('areaChartV2').required(),
10628
10674
  parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
10629
10675
  lineCurve: areaCurveSchema,
@@ -10739,6 +10785,12 @@ var CONSTANTS$m = {
10739
10785
  title: 'Show Legend',
10740
10786
  description: '',
10741
10787
  namespace: 'legend'
10788
+ },
10789
+ labels: {
10790
+ type: 'labels',
10791
+ title: 'Show Labels',
10792
+ description: '',
10793
+ namespace: 'labels'
10742
10794
  }
10743
10795
  }
10744
10796
  },
@@ -10906,6 +10958,7 @@ var AreaChart$1 = function AreaChart(config) {
10906
10958
  conditionalFormattingRules: [],
10907
10959
  drilldown: [],
10908
10960
  legend: true,
10961
+ labels: false,
10909
10962
  goalLines: undefined,
10910
10963
  approxXAxisLabelCount: 'auto',
10911
10964
  approxYAxisLabelCount: 'auto',
@@ -10969,7 +11022,10 @@ var AreaChart$1 = function AreaChart(config) {
10969
11022
  }), namespace(CONSTANTS$m, 'sort'), namespace(CONSTANTS$m, 'filter'), namespace(CONSTANTS$m, 'custom_metrics'), namespace(CONSTANTS$m, 'limit')];
10970
11023
  },
10971
11024
  formatPanelConfig: function formatPanelConfig() {
10972
- return [headingConstant(CONSTANTS$m), chartStylesConstant(CONSTANTS$m, true, false), axisLabelsConstants(CONSTANTS$m), _extends({}, namespace(CONSTANTS$m, 'conditional_formatting'), {
11025
+ var _CONSTANTS$format_pan, _CONSTANTS$format_pan2;
11026
+ return [headingConstant(CONSTANTS$m), _extends({}, namespace(CONSTANTS$m, 'chart_styles'), {
11027
+ 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]
11028
+ }), axisLabelsConstants(CONSTANTS$m), _extends({}, namespace(CONSTANTS$m, 'conditional_formatting'), {
10973
11029
  ruleType: 'lineColor'
10974
11030
  }), namespace(CONSTANTS$m, 'goal_line')];
10975
11031
  },
@@ -10997,6 +11053,7 @@ var attributesSchema$l = function attributesSchema(config) {
10997
11053
  return Joi.object(_extends({}, baseAttributesSchema(config.attributesSchemaOptions), {
10998
11054
  stacked: Joi.valid(true, false),
10999
11055
  legend: Joi.valid(true, false),
11056
+ labels: Joi.valid(true, false).optional(),
11000
11057
  barMeasure: Joi.array().items(measureSchema(config.queryEngineConfig.supportedAggregates, config.attributesSchemaOptions)),
11001
11058
  lineMeasure: Joi.array().items(measureSchema(config.queryEngineConfig.supportedAggregates, config.attributesSchemaOptions)),
11002
11059
  barDimension: dimensionSchema(config.queryEngineConfig.supportedTimeTruncFunctions, config.attributesSchemaOptions),
@@ -11142,6 +11199,12 @@ var CONSTANTS$n = {
11142
11199
  title: 'Show Legend',
11143
11200
  description: '',
11144
11201
  namespace: 'legend'
11202
+ },
11203
+ labels: {
11204
+ type: 'labels',
11205
+ title: 'Show Labels',
11206
+ description: '',
11207
+ namespace: 'labels'
11145
11208
  }
11146
11209
  }
11147
11210
  },
@@ -11274,6 +11337,7 @@ var ComboChartV2 = function ComboChartV2(config) {
11274
11337
  yAxisFormat: null,
11275
11338
  xAxisFormat: null,
11276
11339
  legend: true,
11340
+ labels: false,
11277
11341
  approxXAxisLabelCount: 'auto',
11278
11342
  approxYAxisLabelCount: 'auto',
11279
11343
  goalLines: undefined,
@@ -11314,16 +11378,18 @@ var ComboChartV2 = function ComboChartV2(config) {
11314
11378
  }), namespace(CONSTANTS$n, 'combo_chart_dimension'), namespace(CONSTANTS$n, 'sort'), namespace(CONSTANTS$n, 'filter'), namespace(CONSTANTS$n, 'custom_metrics'), namespace(CONSTANTS$n, 'limit')];
11315
11379
  },
11316
11380
  formatPanelConfig: function formatPanelConfig() {
11317
- var _CONSTANTS$format_pan, _CONSTANTS$format_pan2, _CONSTANTS$format_pan3, _CONSTANTS$format_pan4, _CONSTANTS$format_pan5, _CONSTANTS$format_pan6;
11318
- return [headingConstant(CONSTANTS$n), chartStylesConstant(CONSTANTS$n, false, true), axisLabelsConstants(CONSTANTS$n), _extends({}, namespace(CONSTANTS$n, 'conditional_formatting'), {
11381
+ 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;
11382
+ return [headingConstant(CONSTANTS$n), _extends({}, namespace(CONSTANTS$n, 'chart_styles'), {
11383
+ 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]
11384
+ }), axisLabelsConstants(CONSTANTS$n), _extends({}, namespace(CONSTANTS$n, 'conditional_formatting'), {
11319
11385
  ruleType: 'backgroundColor',
11320
11386
  subSection: [{
11321
- 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 : '',
11322
- 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,
11387
+ 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 : '',
11388
+ 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,
11323
11389
  propKey: 'bar'
11324
11390
  }, {
11325
- 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 : '',
11326
- 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,
11391
+ 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 : '',
11392
+ 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,
11327
11393
  propKey: 'line'
11328
11394
  }]
11329
11395
  }), namespace(CONSTANTS$n, 'goal_line')];
@@ -32415,7 +32481,7 @@ var FunnelChart$1 = /*#__PURE__*/forwardRef(function (props, ref) {
32415
32481
  var keys = [].concat(props.keys, additionalKeys);
32416
32482
  return jsx(ParentSize, {
32417
32483
  children: function children(parent) {
32418
- var _props$height, _props$width;
32484
+ var _props$labels, _props$height, _props$width;
32419
32485
  return jsx(VizzlyXYChart, {
32420
32486
  approxXAxisLabelCount: props.approxXAxisLabelCount,
32421
32487
  approxYAxisLabelCount: props.approxYAxisLabelCount,
@@ -32436,6 +32502,7 @@ var FunnelChart$1 = /*#__PURE__*/forwardRef(function (props, ref) {
32436
32502
  }
32437
32503
  },
32438
32504
  legend: props == null ? void 0 : props.legend,
32505
+ labels: (_props$labels = props == null ? void 0 : props.labels) != null ? _props$labels : false,
32439
32506
  removeStroke: props == null ? void 0 : props.removeStroke,
32440
32507
  forceXAxisAsTime: props == null ? void 0 : props.forceXAxisAsTime,
32441
32508
  formatXAxisLabel: props == null ? void 0 : props.formatXAxisLabel,
@@ -33985,6 +34052,44 @@ function lightenColor$2(originalColor, amount) {
33985
34052
  }
33986
34053
  }
33987
34054
 
34055
+ var calculateMinMax = function calculateMinMax(values) {
34056
+ if (values.length === 0) return {
34057
+ minValue: 0,
34058
+ maxValue: 0
34059
+ };
34060
+ var minValue = Math.min.apply(Math, values);
34061
+ var maxValue = Math.max.apply(Math, values);
34062
+ return {
34063
+ minValue: minValue,
34064
+ maxValue: maxValue
34065
+ };
34066
+ };
34067
+ var showMinMaxLabel = function showMinMaxLabel(value, totalItems, minValue, maxValue) {
34068
+ return totalItems < 11 || value == minValue || value == maxValue;
34069
+ };
34070
+ var getMinMaxChartValueFromNumberArray = function getMinMaxChartValueFromNumberArray(data) {
34071
+ var _calculateMinMax2 = calculateMinMax(data),
34072
+ minValue = _calculateMinMax2.minValue,
34073
+ maxValue = _calculateMinMax2.maxValue;
34074
+ return {
34075
+ minValue: minValue,
34076
+ maxValue: maxValue
34077
+ };
34078
+ };
34079
+ var getAllChartValues = function getAllChartValues(data, keys) {
34080
+ var allValues = [];
34081
+ data.forEach(function (item) {
34082
+ keys.forEach(function (key) {
34083
+ var _item$key;
34084
+ var value = ((_item$key = item[key]) == null ? void 0 : _item$key.value) || item[key];
34085
+ if (value) {
34086
+ allValues.push(Number(value));
34087
+ }
34088
+ });
34089
+ });
34090
+ return allValues;
34091
+ };
34092
+
33988
34093
  var accessors = function accessors(xAxisIsTime, xKey, yKey, horizontal) {
33989
34094
  return {
33990
34095
  xAccessor: function xAccessor(d) {
@@ -34279,6 +34384,58 @@ var VizzlyXYChart = function VizzlyXYChart(props) {
34279
34384
  }
34280
34385
  }), "bar_with_previous_" + props.uniqueId + "_" + keyIndex);
34281
34386
  })
34387
+ }), props.bars.data.map(function (dataPoint, dataIndex) {
34388
+ return jsx("g", {
34389
+ children: props.bars.keys.map(function (key, keyIndex) {
34390
+ var value = dataPoint[key];
34391
+ if (!value || !props.labels) return null;
34392
+ if (props.bars.data.length > 10) {
34393
+ var values = props.bars.data.map(function (d) {
34394
+ return Number(d[key]);
34395
+ }).filter(function (v) {
34396
+ return v;
34397
+ });
34398
+ var _getMinMaxChartValueF = getMinMaxChartValueFromNumberArray(values),
34399
+ _minValue = _getMinMaxChartValueF.minValue,
34400
+ _maxValue = _getMinMaxChartValueF.maxValue;
34401
+ var currentValue = Number(value);
34402
+ if (currentValue !== _minValue && currentValue !== _maxValue) {
34403
+ return null;
34404
+ }
34405
+ }
34406
+ var chartWidth = props.width || 400;
34407
+ var barWidth = (chartWidth - margin.left - margin.right) / props.bars.data.length;
34408
+ var barX = margin.left + dataIndex * barWidth + barWidth / 2;
34409
+ var isPositiveModifier = isPositiveModifierKey(key);
34410
+ var barHeight, barY;
34411
+ if (isPositiveModifier) {
34412
+ // Helper function to extract the base name from the key (e.g., "{Revenue, previous}" -> "Revenue")
34413
+ var getBaseKeyName = function getBaseKeyName(keyName) {
34414
+ return keyName.replace(/[{}]/g, '').split(',')[0].trim();
34415
+ };
34416
+ var standardKey = props.bars.keys.find(function (k) {
34417
+ return !isPositiveModifierKey(k) && getBaseKeyName(k) === getBaseKeyName(key);
34418
+ });
34419
+ var totalValue = standardKey ? dataPoint[standardKey] : 0;
34420
+ var previousValue = Number(value);
34421
+ var totalBarValue = Number(totalValue) + previousValue;
34422
+ barHeight = (height - margin.top - margin.bottom) * totalBarValue / (maxValue || 1);
34423
+ barY = height - margin.bottom - barHeight;
34424
+ } else {
34425
+ barHeight = (height - margin.top - margin.bottom) * Number(value) / (maxValue || 1);
34426
+ barY = height - margin.bottom - barHeight;
34427
+ }
34428
+ return jsx("text", {
34429
+ x: barX,
34430
+ y: barY,
34431
+ textAnchor: "bottom",
34432
+ fontSize: "10px",
34433
+ fill: "#333",
34434
+ fontWeight: "500",
34435
+ children: formatYAxisLabel$1(props)(value)
34436
+ }, "funnel_label_" + props.uniqueId + "_" + dataIndex + "_" + keyIndex);
34437
+ })
34438
+ }, "funnel_labels_" + props.uniqueId + "_" + dataIndex);
34282
34439
  })]
34283
34440
  }), (props == null ? void 0 : props.bars) && props.bars.stacked && jsxs(Fragment, {
34284
34441
  children: [props.enableHover && jsx("style", {
@@ -44212,6 +44369,31 @@ function useYScale(innerHeight, scale) {
44212
44369
  }, [innerHeight, scale]);
44213
44370
  }
44214
44371
 
44372
+ var DataLabel = function DataLabel(_ref) {
44373
+ var x = _ref.x,
44374
+ y = _ref.y,
44375
+ title = _ref.title,
44376
+ dx = _ref.dx,
44377
+ dy = _ref.dy,
44378
+ color = _ref.color,
44379
+ backgroundColor = _ref.backgroundColor;
44380
+ return jsx(Annotation$1, {
44381
+ x: x,
44382
+ y: y,
44383
+ dx: dx,
44384
+ dy: dy,
44385
+ children: jsx(Label$1, {
44386
+ title: title,
44387
+ showAnchorLine: false,
44388
+ showBackground: false,
44389
+ backgroundFill: backgroundColor,
44390
+ fontColor: color,
44391
+ titleFontSize: 10,
44392
+ verticalAnchor: "middle"
44393
+ })
44394
+ });
44395
+ };
44396
+
44215
44397
  var LineChart$5 = function LineChart(_ref) {
44216
44398
  var _theme$axis;
44217
44399
  var chart = _ref.chart,
@@ -44355,7 +44537,8 @@ var LineChart$5 = function LineChart(_ref) {
44355
44537
  xScaleKey: xScaleKey,
44356
44538
  xScaleDataType: xScaleDataType,
44357
44539
  xScale: xScale,
44358
- yScale: _yScale
44540
+ yScale: _yScale,
44541
+ showLabels: options.showLabels
44359
44542
  })
44360
44543
  })]
44361
44544
  }), tooltipData && jsxs("g", {
@@ -44415,38 +44598,77 @@ function Lines(_ref2) {
44415
44598
  yScale = _ref2.yScale,
44416
44599
  lines = _ref2.lines,
44417
44600
  curve = _ref2.curve,
44418
- conditionalFormattingRules = _ref2.conditionalFormattingRules;
44601
+ conditionalFormattingRules = _ref2.conditionalFormattingRules,
44602
+ showLabels = _ref2.showLabels;
44603
+ var _useMemo = useMemo(function () {
44604
+ var allBarValues = getAllChartValues(data, yKeys);
44605
+ var _getMinMaxChartValueF = getMinMaxChartValueFromNumberArray(allBarValues),
44606
+ minValue = _getMinMaxChartValueF.minValue,
44607
+ maxValue = _getMinMaxChartValueF.maxValue;
44608
+ return {
44609
+ minValue: minValue,
44610
+ maxValue: maxValue
44611
+ };
44612
+ }, [yKeys, data]),
44613
+ minValue = _useMemo.minValue,
44614
+ maxValue = _useMemo.maxValue;
44419
44615
  return jsxs(Fragment, {
44420
44616
  children: [yKeys.map(function (yKey) {
44421
44617
  var _lines$filter$0$style;
44422
- return jsx(LinePath, {
44423
- visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
44424
- data: data,
44425
- x: function x(d) {
44426
- var _ref3;
44427
- var xValue = d[xScaleKey];
44428
- var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
44429
- return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
44430
- },
44431
- y: function y(d) {
44432
- return yScale(d[yKey]);
44433
- },
44434
- stroke: lines.filter(function (legendItem) {
44435
- return legendItem.yKey === yKey;
44436
- })[0].color,
44437
- strokeWidth: lines.filter(function (legendItem) {
44438
- return legendItem.yKey === yKey;
44439
- })[0].style.strokeWidth,
44440
- strokeLinecap: "round",
44441
- strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
44442
- return legendItem.yKey === yKey;
44443
- })[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
44444
- shapeRendering: "smooth",
44445
- defined: function defined(d) {
44446
- return d[yKey] !== null;
44447
- },
44448
- curve: curve
44449
- }, yKey);
44618
+ return jsxs(Fragment$1, {
44619
+ children: [jsx(LinePath, {
44620
+ visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
44621
+ data: data,
44622
+ x: function x(d) {
44623
+ var _converters, _ref3;
44624
+ var xValue = d[xScaleKey];
44625
+ var converters = {
44626
+ date_time: function date_time(value) {
44627
+ return new Date(value);
44628
+ },
44629
+ number: function number(value) {
44630
+ return Number(value);
44631
+ },
44632
+ string: function string(value) {
44633
+ return String(value);
44634
+ }
44635
+ };
44636
+ var convert = (_converters = converters[xScaleDataType]) != null ? _converters : converters.string;
44637
+ var xValueAdjusted = convert(xValue);
44638
+ return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
44639
+ },
44640
+ y: function y(d) {
44641
+ return yScale(d[yKey]);
44642
+ },
44643
+ stroke: lines.filter(function (legendItem) {
44644
+ return legendItem.yKey === yKey;
44645
+ })[0].color,
44646
+ strokeWidth: lines.filter(function (legendItem) {
44647
+ return legendItem.yKey === yKey;
44648
+ })[0].style.strokeWidth,
44649
+ strokeLinecap: "round",
44650
+ strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
44651
+ return legendItem.yKey === yKey;
44652
+ })[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
44653
+ shapeRendering: "smooth",
44654
+ defined: function defined(d) {
44655
+ return d[yKey] !== null;
44656
+ },
44657
+ curve: curve
44658
+ }, yKey), data.map(function (chartData) {
44659
+ return jsx(LineLabel, {
44660
+ chartData: chartData,
44661
+ yKey: yKey,
44662
+ xScaleKey: xScaleKey,
44663
+ xScale: xScale,
44664
+ yScale: yScale,
44665
+ totalItems: data.length,
44666
+ minValue: minValue,
44667
+ maxValue: maxValue,
44668
+ showLabels: showLabels
44669
+ });
44670
+ })]
44671
+ });
44450
44672
  }), conditionalFormattingRules.map(function (conditionalFormattingRule) {
44451
44673
  var _lines$filter$0$style2;
44452
44674
  if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
@@ -44498,6 +44720,32 @@ function Lines(_ref2) {
44498
44720
  }, clipPathId);
44499
44721
  })]
44500
44722
  });
44723
+ function LineLabel(_ref5) {
44724
+ var chartData = _ref5.chartData,
44725
+ yKey = _ref5.yKey,
44726
+ xScaleKey = _ref5.xScaleKey,
44727
+ xScale = _ref5.xScale,
44728
+ yScale = _ref5.yScale,
44729
+ totalItems = _ref5.totalItems,
44730
+ minValue = _ref5.minValue,
44731
+ maxValue = _ref5.maxValue,
44732
+ showLabels = _ref5.showLabels;
44733
+ var xValue = chartData[xScaleKey];
44734
+ var yValue = chartData[yKey];
44735
+ var xPadding = 18;
44736
+ var yPadding = 8;
44737
+ var xPosition = xScale(xValue);
44738
+ var yPosition = yScale(yValue);
44739
+ var showMinMax = showMinMaxLabel(Number(yValue), totalItems, minValue, maxValue);
44740
+ if (xPosition == null || yPosition == null || !showMinMax || !showLabels) return null;
44741
+ return jsx(DataLabel, {
44742
+ x: xPosition - xPadding,
44743
+ y: yPosition - yPadding,
44744
+ dx: 2,
44745
+ dy: 0,
44746
+ title: yValue
44747
+ });
44748
+ }
44501
44749
  }
44502
44750
 
44503
44751
  var BAR_RADIUS = 2;
@@ -44543,7 +44791,8 @@ function BarGroup(_ref) {
44543
44791
  yAxisLabels = _ref.yAxisLabels,
44544
44792
  yLabelPosition = _ref.yLabelPosition,
44545
44793
  showDetailedSubGroupingLabels = _ref.showDetailedSubGroupingLabels,
44546
- labelStyle = _ref.labelStyle;
44794
+ labelStyle = _ref.labelStyle,
44795
+ showLabels = _ref.showLabels;
44547
44796
  var getGroupPosition = function getGroupPosition(d) {
44548
44797
  var xValue = d[xKey];
44549
44798
  if (xScaleDataType === 'string') return String(xValue);
@@ -44555,6 +44804,20 @@ function BarGroup(_ref) {
44555
44804
  }
44556
44805
  return String(xValue);
44557
44806
  };
44807
+ var _useMemo = useMemo(function () {
44808
+ var allBarValues = getAllChartValues(data, keys);
44809
+ var _getMinMaxChartValueF = getMinMaxChartValueFromNumberArray(allBarValues),
44810
+ minValue = _getMinMaxChartValueF.minValue,
44811
+ maxValue = _getMinMaxChartValueF.maxValue;
44812
+ return {
44813
+ minValue: minValue,
44814
+ maxValue: maxValue,
44815
+ totalItems: allBarValues.length
44816
+ };
44817
+ }, [data, keys]),
44818
+ minValue = _useMemo.minValue,
44819
+ maxValue = _useMemo.maxValue,
44820
+ totalItems = _useMemo.totalItems;
44558
44821
  return jsx(BarGroup$2, {
44559
44822
  data: data,
44560
44823
  keys: keys,
@@ -44585,7 +44848,11 @@ function BarGroup(_ref) {
44585
44848
  onClick: onClick,
44586
44849
  showDetailedSubGroupingLabels: showDetailedSubGroupingLabels,
44587
44850
  yAxisLabels: yAxisLabels,
44588
- yLabelPosition: yLabelPosition
44851
+ yLabelPosition: yLabelPosition,
44852
+ minValue: minValue,
44853
+ maxValue: maxValue,
44854
+ totalItems: totalItems,
44855
+ showLabels: showLabels
44589
44856
  }, "bar-" + bar.index + "-" + bar.x);
44590
44857
  })
44591
44858
  }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
@@ -44603,8 +44870,15 @@ var Bar = function Bar(_ref2) {
44603
44870
  _onClick = _ref2.onClick,
44604
44871
  showDetailedSubGroupingLabels = _ref2.showDetailedSubGroupingLabels,
44605
44872
  yAxisLabels = _ref2.yAxisLabels,
44606
- yLabelPosition = _ref2.yLabelPosition;
44873
+ yLabelPosition = _ref2.yLabelPosition,
44874
+ minValue = _ref2.minValue,
44875
+ maxValue = _ref2.maxValue,
44876
+ totalItems = _ref2.totalItems,
44877
+ showLabels = _ref2.showLabels;
44607
44878
  var showBar = bar.value !== null && bar.height > 0 && bar.width > 0;
44879
+ var labelX = bar.width < 10 ? bar.x - 14 : bar.x / 2;
44880
+ var labelY = bar.y - 4;
44881
+ var showMinMax = showMinMaxLabel(bar.value, totalItems, minValue, maxValue);
44608
44882
  return jsxs(Fragment, {
44609
44883
  children: [showBar && jsx(BarRect, {
44610
44884
  barRectKey: "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key),
@@ -44617,6 +44891,12 @@ var Bar = function Bar(_ref2) {
44617
44891
  return _onClick(e, barGroup, bar);
44618
44892
  },
44619
44893
  enableHover: enableHover
44894
+ }), showLabels && showMinMax && jsx(DataLabel, {
44895
+ x: labelX,
44896
+ y: labelY,
44897
+ title: bar.value,
44898
+ dx: 1,
44899
+ dy: 0
44620
44900
  }), jsx(BarLabel, {
44621
44901
  bar: bar,
44622
44902
  barGroup: barGroup,
@@ -44645,7 +44925,7 @@ var BarRect = function BarRect(_ref3) {
44645
44925
  } : {
44646
44926
  name: "1ltmijl-classes",
44647
44927
  styles: "cursor:pointer;label:classes;",
44648
- 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== */",
44928
+ 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= */",
44649
44929
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
44650
44930
  }) : '';
44651
44931
  var handleOnMouseEnter = function handleOnMouseEnter() {
@@ -44981,7 +45261,8 @@ var BarChart$5 = function BarChart(_ref) {
44981
45261
  showDetailedSubGroupingLabels: showDetailedSubGroupingLabels,
44982
45262
  yAxisLabels: yAxisLabels,
44983
45263
  yLabelPosition: ySubLabelPosition,
44984
- labelStyle: themeCSS.labels
45264
+ labelStyle: themeCSS.labels,
45265
+ showLabels: options.showLabels
44985
45266
  }), options.stacked && xScaleKey !== null && jsx(BarStacked, {
44986
45267
  data: dataFlattened,
44987
45268
  keys: chart.y.keys,
@@ -45132,9 +45413,9 @@ var ThresholdArea = function ThresholdArea(props) {
45132
45413
 
45133
45414
  var AREA_GRADIENT_ID_PREFIX = 'area-gradient';
45134
45415
 
45135
- /*
45416
+ /*
45136
45417
  NOTES
45137
- -----
45418
+ -----
45138
45419
  1. Control width of margins via props and truncate ticks using a fixed width
45139
45420
  2. (somehow) prevent overlapping of ticks
45140
45421
  3. Split out conditional formatting colours to show operator and values for each color
@@ -45199,6 +45480,12 @@ var AreaChart$5 = function AreaChart(_ref) {
45199
45480
  }, [innerWidth, chart.x, chart.data]);
45200
45481
  var _yScale = useYScale(innerHeight, chart.y.scale);
45201
45482
  var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
45483
+ var _useMemo = useMemo(function () {
45484
+ var allValues = getAllChartValues(dataFlattened, chart.y.keys);
45485
+ return getMinMaxChartValueFromNumberArray(allValues);
45486
+ }, [dataFlattened, chart.y.keys]),
45487
+ minValue = _useMemo.minValue,
45488
+ maxValue = _useMemo.maxValue;
45202
45489
  var handleMouseMove = useCallback(function (event) {
45203
45490
  if (!xKey || !xScaleKey || xScale === null) return;
45204
45491
  var tooltipData = getTooltipData({
@@ -45360,6 +45647,18 @@ var AreaChart$5 = function AreaChart(_ref) {
45360
45647
  clipPath: "url(#" + buildClipPathId$1(areaThreshold, AREA_GRADIENT_ID_PREFIX, uniqueId) + ")",
45361
45648
  fill: "url(#" + id + ")"
45362
45649
  }, yKey + "-" + AREA_GRADIENT_ID_PREFIX + "-" + thresholdIndex);
45650
+ }), dataFlattened.map(function (d) {
45651
+ return jsx(AreaLabel, {
45652
+ chartData: d,
45653
+ yKey: yKey,
45654
+ xScaleKey: xScaleKey,
45655
+ xScale: xScale,
45656
+ yScale: _yScale,
45657
+ totalItems: dataFlattened.length,
45658
+ minValue: minValue,
45659
+ maxValue: maxValue,
45660
+ showLabels: options.showLabels
45661
+ });
45363
45662
  })]
45364
45663
  }, yKey + "-" + AREA_GRADIENT_ID_PREFIX);
45365
45664
  })]
@@ -45411,17 +45710,43 @@ var AreaChart$5 = function AreaChart(_ref) {
45411
45710
  })]
45412
45711
  });
45413
45712
  };
45414
- function Area(_ref3) {
45415
- var data = _ref3.data,
45416
- xScaleDataType = _ref3.xScaleDataType,
45713
+ function AreaLabel(_ref3) {
45714
+ var chartData = _ref3.chartData,
45715
+ yKey = _ref3.yKey,
45716
+ xScaleKey = _ref3.xScaleKey,
45417
45717
  xScale = _ref3.xScale,
45418
45718
  yScale = _ref3.yScale,
45419
- yKey = _ref3.yKey,
45420
- curve = _ref3.curve,
45421
- clipPath = _ref3.clipPath,
45422
- xKey = _ref3.xKey,
45423
- fill = _ref3.fill,
45424
- stroke = _ref3.stroke;
45719
+ totalItems = _ref3.totalItems,
45720
+ minValue = _ref3.minValue,
45721
+ maxValue = _ref3.maxValue,
45722
+ showLabels = _ref3.showLabels;
45723
+ var xValue = chartData[xScaleKey];
45724
+ var yValue = chartData[yKey];
45725
+ var xPadding = 18;
45726
+ var yPadding = 8;
45727
+ var xPosition = xScale(xValue);
45728
+ var yPosition = yScale(yValue);
45729
+ var showMinMax = showMinMaxLabel(Number(yValue), totalItems, minValue, maxValue);
45730
+ if (xPosition == null || yPosition == null || !showMinMax || !showLabels) return null;
45731
+ return jsx(DataLabel, {
45732
+ x: xPosition - xPadding,
45733
+ y: yPosition - yPadding,
45734
+ dx: 2,
45735
+ dy: 0,
45736
+ title: yValue
45737
+ });
45738
+ }
45739
+ function Area(_ref4) {
45740
+ var data = _ref4.data,
45741
+ xScaleDataType = _ref4.xScaleDataType,
45742
+ xScale = _ref4.xScale,
45743
+ yScale = _ref4.yScale,
45744
+ yKey = _ref4.yKey,
45745
+ curve = _ref4.curve,
45746
+ clipPath = _ref4.clipPath,
45747
+ xKey = _ref4.xKey,
45748
+ fill = _ref4.fill,
45749
+ stroke = _ref4.stroke;
45425
45750
  return jsx(AreaClosed, {
45426
45751
  data: data,
45427
45752
  x: function x(d) {
@@ -47658,6 +47983,7 @@ var LineChartV2View = function LineChartV2View(props) {
47658
47983
  overflowX: 'hidden'
47659
47984
  },
47660
47985
  children: function children(parent) {
47986
+ var _props$attributes$lab;
47661
47987
  if (chartRepresentation.lines.length === 0) return jsx(LoadingComponent, {});
47662
47988
  return jsx(LineChart$5, {
47663
47989
  width: parent.width,
@@ -47668,6 +47994,7 @@ var LineChartV2View = function LineChartV2View(props) {
47668
47994
  removeStroke: false,
47669
47995
  showRoundedTotal: false,
47670
47996
  showLegend: props.attributes.legend,
47997
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
47671
47998
  axis: {
47672
47999
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
47673
48000
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -48027,7 +48354,7 @@ var AreaChartV2View = function AreaChartV2View(props) {
48027
48354
  overflowX: 'hidden'
48028
48355
  },
48029
48356
  children: function children(parent) {
48030
- var _props$attributes$vie2, _props$attributes$sta;
48357
+ var _props$attributes$vie2, _props$attributes$sta, _props$attributes$lab;
48031
48358
  if (chartRepresentation.areas.length === 0) return jsx(LoadingComponent, {});
48032
48359
  return jsx(AreaChart$5, {
48033
48360
  width: parent.width,
@@ -48040,6 +48367,7 @@ var AreaChartV2View = function AreaChartV2View(props) {
48040
48367
  removeStroke: false,
48041
48368
  showRoundedTotal: false,
48042
48369
  showLegend: props.attributes.legend,
48370
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
48043
48371
  axis: {
48044
48372
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
48045
48373
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -48421,6 +48749,7 @@ var BarChartV2View = function BarChartV2View(props) {
48421
48749
  overflowX: 'hidden'
48422
48750
  },
48423
48751
  children: function children(parent) {
48752
+ var _props$attributes$lab;
48424
48753
  if (chartRepresentation.bars.length === 0) return jsx(LoadingComponent, {});
48425
48754
  return jsx(BarChart$5, {
48426
48755
  width: parent.width,
@@ -48431,6 +48760,7 @@ var BarChartV2View = function BarChartV2View(props) {
48431
48760
  removeStroke: false,
48432
48761
  showRoundedTotal: false,
48433
48762
  showLegend: props.attributes.legend,
48763
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
48434
48764
  axis: {
48435
48765
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
48436
48766
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -48822,7 +49152,8 @@ var ComboChart$4 = function ComboChart(_ref) {
48822
49152
  xScaleDataType: xScaleDataType,
48823
49153
  showDetailedSubGroupingLabels: false,
48824
49154
  yAxisLabels: [],
48825
- yLabelPosition: 0
49155
+ yLabelPosition: 0,
49156
+ showLabels: options.showLabels
48826
49157
  }), options.stacked && xScaleKey !== null && jsx(BarStacked, {
48827
49158
  data: barDataFlattened,
48828
49159
  keys: yBarKeys,
@@ -48846,7 +49177,8 @@ var ComboChart$4 = function ComboChart(_ref) {
48846
49177
  xScaleKey: xScaleKey,
48847
49178
  xScaleDataType: xScaleDataType,
48848
49179
  xScale: xScale,
48849
- yScale: yScale
49180
+ yScale: yScale,
49181
+ showLabels: options.showLabels
48850
49182
  })
48851
49183
  })]
48852
49184
  })]
@@ -49106,7 +49438,7 @@ var ComboChartViewV2 = function ComboChartViewV2(props) {
49106
49438
  overflowX: 'hidden'
49107
49439
  },
49108
49440
  children: function children(parent) {
49109
- var _props$attributes$sta2;
49441
+ var _props$attributes$sta2, _props$attributes$lab;
49110
49442
  var numberOfXTicksFittingIntoSpace = howManyTicksFitInWidth(comboChartRepresentation.x.ticks || [], parent.width);
49111
49443
  return jsx(ComboChart$4, {
49112
49444
  width: parent.width,
@@ -49124,6 +49456,7 @@ var ComboChartViewV2 = function ComboChartViewV2(props) {
49124
49456
  removeStroke: false,
49125
49457
  showRoundedTotal: false,
49126
49458
  showLegend: props.attributes.legend,
49459
+ showLabels: (_props$attributes$lab = props.attributes.labels) != null ? _props$attributes$lab : false,
49127
49460
  axis: {
49128
49461
  showXAxisLabels: props.attributes.approxXAxisLabelCount !== 0,
49129
49462
  showYAxisLabels: props.attributes.approxYAxisLabelCount !== 0
@@ -51677,7 +52010,7 @@ var defaultProps$8 = {
51677
52010
  approxYAxisLabelCount: 'auto'
51678
52011
  };
51679
52012
  var FunnelChartView = function FunnelChartView(props) {
51680
- 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;
52013
+ 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;
51681
52014
  var _props = props,
51682
52015
  displayTitle = _props.displayTitle,
51683
52016
  displaySubject = _props.displaySubject;
@@ -51768,10 +52101,11 @@ var FunnelChartView = function FunnelChartView(props) {
51768
52101
  colors: themeToColorScale(theme == null ? void 0 : theme.colors, series$1.length),
51769
52102
  data: resultSet$1,
51770
52103
  legend: showLegend((_props13 = props) == null ? void 0 : _props13.legend, (theme == null ? void 0 : theme.detail) === 'verbose'),
52104
+ labels: (_props$labels = (_props14 = props) == null ? void 0 : _props14.labels) != null ? _props$labels : false,
51771
52105
  removeStroke: false,
51772
52106
  forceXAxisAsTime: !!props.timeDimension,
51773
52107
  theme: theme == null ? void 0 : theme.charts,
51774
- axisTitles: (_props14 = props) == null ? void 0 : _props14.axisTitles,
52108
+ axisTitles: (_props15 = props) == null ? void 0 : _props15.axisTitles,
51775
52109
  formatSeriesName: formatSeriesName(props.result, textOverride, props.type, (_props$viewId2 = props.viewId) != null ? _props$viewId2 : '', labelFormat),
51776
52110
  conditionalFormattingPossibilities: function conditionalFormattingPossibilities(dataKey) {
51777
52111
  return getExplanationsOfConditionFormattingRulesThatApplyToSeries(props.dimension, props.conditionalFormattingRules,
@@ -53623,6 +53957,12 @@ var Legend$2 = function Legend(_ref) {
53623
53957
  });
53624
53958
  };
53625
53959
 
53960
+ var getStepYPosition = function getStepYPosition(step, height, y) {
53961
+ var isIncreasing = step.y > 0;
53962
+ if (isIncreasing) return y - 8;
53963
+ return y + height + 16;
53964
+ };
53965
+
53626
53966
  var _excluded$i = ["formattedValue"],
53627
53967
  _excluded2$4 = ["formattedValue"];
53628
53968
  var AXIS_TITLE_STYLES$1 = {
@@ -53797,6 +54137,14 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
53797
54137
  if (xScaleDataType === 'string') return String(xValue);
53798
54138
  return '';
53799
54139
  }, [xScaleKey, xScaleDataType]);
54140
+ var _useMemo = useMemo(function () {
54141
+ var stepValues = formattedChartDataForBarChart.steps.map(function (step) {
54142
+ return step.y;
54143
+ });
54144
+ return getMinMaxChartValueFromNumberArray(stepValues);
54145
+ }, [formattedChartDataForBarChart.steps]),
54146
+ minValue = _useMemo.minValue,
54147
+ maxValue = _useMemo.maxValue;
53800
54148
  if (width === 0 || height === 0 || xScale == null) return null;
53801
54149
  return jsxs(Fragment$1, {
53802
54150
  children: [jsxs(ChartWrapper$1, {
@@ -53892,7 +54240,11 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
53892
54240
  bar: bar,
53893
54241
  barGroup: barGroup,
53894
54242
  yScale: yScale,
53895
- formattedChartDataForBarChart: formattedChartDataForBarChart
54243
+ formattedChartDataForBarChart: formattedChartDataForBarChart,
54244
+ showLabels: options.showLabels,
54245
+ totalItems: formattedChartDataForBarChart.steps.length,
54246
+ minValue: minValue,
54247
+ maxValue: maxValue
53896
54248
  });
53897
54249
  })
53898
54250
  }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
@@ -53929,19 +54281,34 @@ var Bar$2 = function Bar(_ref4) {
53929
54281
  yScale = _ref4.yScale,
53930
54282
  formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart,
53931
54283
  increaseColor = _ref4.increaseColor,
53932
- decreaseColor = _ref4.decreaseColor;
54284
+ decreaseColor = _ref4.decreaseColor,
54285
+ showLabels = _ref4.showLabels,
54286
+ totalItems = _ref4.totalItems,
54287
+ minValue = _ref4.minValue,
54288
+ maxValue = _ref4.maxValue;
53933
54289
  var step = formattedChartDataForBarChart.steps[barGroup.index];
53934
54290
  var y = yScale(Math.max(step.start, step.end));
53935
54291
  var barHeight = Math.abs(yScale(step.start) - yScale(step.end));
53936
- return jsx(Fragment$1, {
53937
- children: jsx("rect", {
54292
+ var xPadding = 14;
54293
+ var labelX = bar.width < 10 ? bar.x - xPadding : bar.x + bar.width / 2;
54294
+ var labelY = getStepYPosition(step, barHeight, y);
54295
+ var showMinMax = showMinMaxLabel(step.y, totalItems, minValue, maxValue);
54296
+ var shouldShowLabel = showLabels && showMinMax && bar.value > 0;
54297
+ return jsxs(Fragment$1, {
54298
+ children: [jsx("rect", {
53938
54299
  x: bar.x,
53939
54300
  y: y,
53940
54301
  width: bar.width,
53941
54302
  height: barHeight,
53942
54303
  fill: bar.value > 0 ? increaseColor : decreaseColor,
53943
54304
  rx: 4
53944
- }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key)
54305
+ }, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key), shouldShowLabel && jsx(DataLabel, {
54306
+ x: labelX,
54307
+ y: labelY,
54308
+ title: step.y.toString(),
54309
+ dx: 1,
54310
+ dy: 0
54311
+ })]
53945
54312
  });
53946
54313
  };
53947
54314
 
@@ -53957,6 +54324,7 @@ var WaterfallChartView = function WaterfallChartView(props) {
53957
54324
  displayTitle = props.displayTitle,
53958
54325
  headline = props.headline,
53959
54326
  id = props.id,
54327
+ labels = props.labels,
53960
54328
  legend = props.legend,
53961
54329
  library = props.library,
53962
54330
  localFilters = props.localFilters,
@@ -54064,6 +54432,7 @@ var WaterfallChartView = function WaterfallChartView(props) {
54064
54432
  height: parent.height,
54065
54433
  options: {
54066
54434
  showLegend: showLegend(legend, (theme == null ? void 0 : theme.detail) === 'verbose'),
54435
+ showLabels: labels != null ? labels : false,
54067
54436
  showTooltipRoundedTotal: true,
54068
54437
  removeStroke: false,
54069
54438
  axis: {