@vizzly/dashboard 0.15.0-dev-ac044c49c73d54ff3c144918a639d24aea98b549 → 0.15.0-dev-01ea5aa946daad108dcca8cdb39a89202fb70c38

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.
@@ -7,6 +7,7 @@ export declare type BarGroupProps = {
7
7
  data: ChartDataDefinition[];
8
8
  keys: string[];
9
9
  height: number;
10
+ width?: number;
10
11
  xKey: string;
11
12
  xScaleDataType: DataType;
12
13
  xScale: ScaleBand<string> | ScaleBand<Date> | ScaleBand<number> | null;
@@ -25,4 +26,4 @@ export declare type BarGroupProps = {
25
26
  [key: string]: string;
26
27
  };
27
28
  };
28
- export declare function BarGroup({ data, keys, height, xKey, xScaleDataType, xScale, innerXScale, yScale, onClick, conditionalFormattingRules, bars, enableHover, yAxisLabels, yLabelPosition, showDetailedSubGroupingLabels, labelStyle, showLabels, labelDictionary, }: BarGroupProps): JSX.Element;
29
+ export declare function BarGroup({ data, keys, height, width, xKey, xScaleDataType, xScale, innerXScale, yScale, onClick, conditionalFormattingRules, bars, enableHover, yAxisLabels, yLabelPosition, showDetailedSubGroupingLabels, labelStyle, showLabels, labelDictionary, }: BarGroupProps): JSX.Element;
@@ -34825,16 +34825,6 @@ var calculateMinMax = function calculateMinMax(values) {
34825
34825
  maxValue: maxValue
34826
34826
  };
34827
34827
  };
34828
- var normalizeKey = function normalizeKey(value) {
34829
- if (typeof value === 'number' || !isNaN(Number(value)) && !isNaN(parseFloat(value))) {
34830
- var numValue = Number(value);
34831
- if (numValue >= 0 && numValue <= 1) {
34832
- return numValue.toString();
34833
- }
34834
- return numValue.toString().split('.')[0];
34835
- }
34836
- return String(value);
34837
- };
34838
34828
 
34839
34829
  // @TODO: Adjust the totalItems logic to be flexible based on the available width
34840
34830
  var showDataLabel = function showDataLabel(totalItems) {
@@ -34854,7 +34844,7 @@ var getLabelDictionary = function getLabelDictionary(formattedData, keys) {
34854
34844
  var convertedArray = keys.map(function (key) {
34855
34845
  var _d$key, _ref;
34856
34846
  if (!((_d$key = d[key]) != null && _d$key.formattedValue)) return;
34857
- var valueKey = normalizeKey(d[key].value);
34847
+ var valueKey = String(d[key].value);
34858
34848
  var label = d[key].formattedValue;
34859
34849
  return _ref = {}, _ref[valueKey] = label, _ref;
34860
34850
  }).flat();
@@ -34878,11 +34868,10 @@ var getLabelDictionary = function getLabelDictionary(formattedData, keys) {
34878
34868
  return dictionary;
34879
34869
  };
34880
34870
  var getFormattedValue = function getFormattedValue(value, dictionary) {
34881
- var _dictionary$normalize;
34871
+ var _dictionary$actualVal;
34882
34872
  var actualValue = (value == null ? void 0 : value.value) !== undefined ? value.value : value;
34883
34873
  if (!dictionary) return actualValue;
34884
- var normalizedKey = normalizeKey(actualValue);
34885
- return (_dictionary$normalize = dictionary[normalizedKey]) != null ? _dictionary$normalize : actualValue;
34874
+ return (_dictionary$actualVal = dictionary[actualValue]) != null ? _dictionary$actualVal : actualValue;
34886
34875
  };
34887
34876
  var getAllChartValues = function getAllChartValues(data, keys) {
34888
34877
  var allValues = [];
@@ -45820,6 +45809,7 @@ function BarGroup(_ref) {
45820
45809
  var data = _ref.data,
45821
45810
  keys = _ref.keys,
45822
45811
  height = _ref.height,
45812
+ width = _ref.width,
45823
45813
  xKey = _ref.xKey,
45824
45814
  xScaleDataType = _ref.xScaleDataType,
45825
45815
  xScale = _ref.xScale,
@@ -45885,7 +45875,8 @@ function BarGroup(_ref) {
45885
45875
  showLabels: showLabels,
45886
45876
  labelDictionary: labelDictionary,
45887
45877
  yScale: yScale,
45888
- containerHeight: height
45878
+ containerHeight: height,
45879
+ chartWidth: width
45889
45880
  }, "bar-" + bar.index + "-" + bar.x);
45890
45881
  })
45891
45882
  }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
@@ -45893,6 +45884,22 @@ function BarGroup(_ref) {
45893
45884
  }
45894
45885
  });
45895
45886
  }
45887
+ function calculateBarLabelPosition(bar, barGroup, chartWidth, displayValue) {
45888
+ if (!displayValue) return false;
45889
+ var ESTIMATED_FONT_WIDTH = 5.75;
45890
+ var minWidthPercent = 0.02;
45891
+ var maxWidthPercent = 0.15;
45892
+ var minWidthPx = chartWidth * minWidthPercent;
45893
+ var maxWidthPx = chartWidth * maxWidthPercent;
45894
+ var minSize = 0.5;
45895
+ var maxSize = 1.2;
45896
+ var normalizedBarWidth = Math.min(Math.max(bar.width, minWidthPx), maxWidthPx);
45897
+ var logInput = 1 + (normalizedBarWidth - minWidthPx) / (maxWidthPx - minWidthPx) * (Math.E - 1);
45898
+ var logRatio = Math.log(logInput);
45899
+ var size = minSize + logRatio * (maxSize - minSize);
45900
+ var basePosition = barGroup.bars.length > 1 ? bar.x + bar.width * size / 2 : bar.width * size / 2;
45901
+ return basePosition - displayValue.length * ESTIMATED_FONT_WIDTH / 2;
45902
+ }
45896
45903
  var Bar = function Bar(_ref2) {
45897
45904
  var bar = _ref2.bar,
45898
45905
  barGroup = _ref2.barGroup,
@@ -45908,18 +45915,20 @@ var Bar = function Bar(_ref2) {
45908
45915
  showLabels = _ref2.showLabels,
45909
45916
  labelDictionary = _ref2.labelDictionary,
45910
45917
  yScale = _ref2.yScale,
45911
- containerHeight = _ref2.containerHeight;
45918
+ containerHeight = _ref2.containerHeight,
45919
+ chartWidth = _ref2.chartWidth;
45912
45920
  var X_PADDING = 10;
45913
45921
  var Y_PADDING = 8;
45914
45922
  var minWidth = 20;
45915
45923
  var minContainerHeight = 50;
45916
45924
  var showBar = bar.value !== null && bar.height > 0 && bar.width > 0;
45917
- var labelX = bar.x - X_PADDING;
45918
45925
  var barTopY = yScale(bar.value);
45926
+ var labelX = bar.x - X_PADDING;
45919
45927
  var labelY = barTopY - Y_PADDING;
45920
45928
  var showMinMax = showDataLabel(totalItems);
45921
45929
  var hasSpaceForLabel = showLabels && bar.width > minWidth && containerHeight > minContainerHeight;
45922
45930
  var displayValue = getFormattedValue(bar.value, labelDictionary);
45931
+ var barPosition = chartWidth ? calculateBarLabelPosition(bar, barGroup, chartWidth, displayValue) : labelX;
45923
45932
  return jsxRuntime.jsxs(React.Fragment, {
45924
45933
  children: [showBar && jsxRuntime.jsx(BarRect, {
45925
45934
  barRectKey: "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key),
@@ -45932,8 +45941,8 @@ var Bar = function Bar(_ref2) {
45932
45941
  return _onClick(e, barGroup, bar);
45933
45942
  },
45934
45943
  enableHover: enableHover
45935
- }), hasSpaceForLabel && showMinMax && jsxRuntime.jsx(DataLabel, {
45936
- x: labelX,
45944
+ }), hasSpaceForLabel && showMinMax && barPosition !== false && jsxRuntime.jsx(DataLabel, {
45945
+ x: barPosition,
45937
45946
  y: labelY,
45938
45947
  title: displayValue,
45939
45948
  dx: 1,
@@ -45963,7 +45972,7 @@ var BarRect = function BarRect(_ref3) {
45963
45972
  var classes = enableHover ? /*#__PURE__*/css$1.css( {
45964
45973
  name: "1ltmijl-classes",
45965
45974
  styles: "cursor:pointer;label:classes;",
45966
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckdyb3VwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1TmdDIiwiZmlsZSI6IkJhckdyb3VwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ0B2aXN4L2dyb3VwJztcbmltcG9ydCB7IEJhckdyb3VwIGFzIFZpc3hCYXJHcm91cCB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdHVtT2JqZWN0IH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IFNjYWxlQmFuZCwgU2NhbGVMaW5lYXIgfSBmcm9tICdAdmlzeC92ZW5kb3IvZDMtc2NhbGUnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IENoYXJ0RGF0YURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIFNoYXBlRGVmaW5pdGlvbiB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0QWxsQ2hhcnRWYWx1ZXMsIGdldEZvcm1hdHRlZFZhbHVlLCBzaG93RGF0YUxhYmVsIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9EYXRhTGFiZWwvaW5kZXgnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0ZpZWxkL3R5cGVzJztcbmltcG9ydCB7IGxpZ2h0ZW5Db2xvciB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb2xvci5mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRGF0YUxhYmVsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9EYXRhTGFiZWwnO1xuaW1wb3J0IHsgQkFSX1JBRElVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9CT1JERVJfUkFESVVTJztcbmltcG9ydCB7IGdldEJhckZpbGwgfSBmcm9tICcuLi9nZXRCYXJGaWxsJztcblxuZXhwb3J0IHR5cGUgQmFyR3JvdXBQcm9wcyA9IHtcbiAgZGF0YTogQ2hhcnREYXRhRGVmaW5pdGlvbltdO1xuICBrZXlzOiBzdHJpbmdbXTtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlO1xuICB4U2NhbGU6IFNjYWxlQmFuZDxzdHJpbmc+IHwgU2NhbGVCYW5kPERhdGU+IHwgU2NhbGVCYW5kPG51bWJlcj4gfCBudWxsO1xuICBpbm5lclhTY2FsZTogU2NhbGVCYW5kPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIHlTY2FsZTogU2NhbGVMaW5lYXI8bnVtYmVyLCBudW1iZXIsIG5ldmVyPjtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogYW55LCBiYXI6IGFueSkgPT4gdm9pZDtcbiAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM6IENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVbXTtcbiAgYmFyczogU2hhcGVEZWZpbml0aW9uPEJhclN0eWxlcz5bXTtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xuICB5QXhpc0xhYmVscz86IHN0cmluZ1tdO1xuICB5TGFiZWxQb3NpdGlvbj86IG51bWJlcjtcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM6IGJvb2xlYW47XG4gIGxhYmVsU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBzaG93TGFiZWxzPzogYm9vbGVhbjtcbiAgbGFiZWxEaWN0aW9uYXJ5OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEJhckdyb3VwKHtcbiAgZGF0YSxcbiAga2V5cyxcbiAgaGVpZ2h0LFxuICB4S2V5LFxuICB4U2NhbGVEYXRhVHlwZSxcbiAgeFNjYWxlLFxuICBpbm5lclhTY2FsZSxcbiAgeVNjYWxlLFxuICBvbkNsaWNrLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgYmFycyxcbiAgZW5hYmxlSG92ZXIsXG4gIHlBeGlzTGFiZWxzLFxuICB5TGFiZWxQb3NpdGlvbixcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHMsXG4gIGxhYmVsU3R5bGUsXG4gIHNob3dMYWJlbHMsXG4gIGxhYmVsRGljdGlvbmFyeSxcbn06IEJhckdyb3VwUHJvcHMpIHtcbiAgY29uc3QgZ2V0R3JvdXBQb3NpdGlvbiA9IChkOiBEYXR1bU9iamVjdCkgPT4ge1xuICAgIGNvbnN0IHhWYWx1ZSA9IGRbeEtleSBhcyBrZXlvZiB0eXBlb2YgZF07XG5cbiAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4gU3RyaW5nKHhWYWx1ZSk7XG5cbiAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdkYXRlX3RpbWUnKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoU3RyaW5nKHhWYWx1ZSkpO1xuICAgIH1cblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBOdW1iZXIoeFZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHhWYWx1ZSk7XG4gIH07XG5cbiAgY29uc3QgdG90YWxJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGFsbEJhclZhbHVlcyA9IGdldEFsbENoYXJ0VmFsdWVzKGRhdGEsIGtleXMpO1xuICAgIHJldHVybiBhbGxCYXJWYWx1ZXMubGVuZ3RoO1xuICB9LCBbZGF0YSwga2V5c10pO1xuXG4gIHJldHVybiAoXG4gICAgPFZpc3hCYXJHcm91cDxEYXR1bU9iamVjdD5cbiAgICAgIGRhdGE9e2RhdGEgYXMgRGF0dW1PYmplY3RbXX1cbiAgICAgIGtleXM9e2tleXN9XG4gICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgIHgwPXtnZXRHcm91cFBvc2l0aW9ufVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgeDFTY2FsZT17aW5uZXJYU2NhbGV9XG4gICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICA+XG4gICAgICB7KGJhckdyb3VwcykgPT4ge1xuICAgICAgICByZXR1cm4gYmFyR3JvdXBzLm1hcCgoYmFyR3JvdXApID0+IChcbiAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAge2Jhckdyb3VwLmJhcnMubWFwKChiYXIpID0+IChcbiAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgIGtleT17YGJhci0ke2Jhci5pbmRleH0tJHtiYXIueH1gfVxuICAgICAgICAgICAgICAgIGJhcj17YmFyfVxuICAgICAgICAgICAgICAgIGJhckdyb3VwPXtiYXJHcm91cH1cbiAgICAgICAgICAgICAgICBiYXJzPXtiYXJzfVxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgbGFiZWxTdHlsZT17bGFiZWxTdHlsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgICAgIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzPXtzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVsc31cbiAgICAgICAgICAgICAgICB5QXhpc0xhYmVscz17eUF4aXNMYWJlbHN9XG4gICAgICAgICAgICAgICAgeUxhYmVsUG9zaXRpb249e3lMYWJlbFBvc2l0aW9ufVxuICAgICAgICAgICAgICAgIHRvdGFsSXRlbXM9e3RvdGFsSXRlbXN9XG4gICAgICAgICAgICAgICAgc2hvd0xhYmVscz17c2hvd0xhYmVsc31cbiAgICAgICAgICAgICAgICBsYWJlbERpY3Rpb25hcnk9e2xhYmVsRGljdGlvbmFyeX1cbiAgICAgICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgICkpO1xuICAgICAgfX1cbiAgICA8L1Zpc3hCYXJHcm91cD5cbiAgKTtcbn1cblxudHlwZSBCYXJQcm9wcyA9IHtcbiAgYmFyOiBhbnk7XG4gIGJhckdyb3VwOiBhbnk7XG4gIGJhcnM6IFNoYXBlRGVmaW5pdGlvbjxCYXJTdHlsZXM+W107XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlW107XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogYW55LCBiYXI6IGFueSkgPT4gdm9pZDtcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM6IGJvb2xlYW47XG4gIGxhYmVsU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICB5QXhpc0xhYmVscz86IHN0cmluZ1tdO1xuICB5TGFiZWxQb3NpdGlvbj86IG51bWJlcjtcbiAgdG90YWxJdGVtczogbnVtYmVyO1xuICBzaG93TGFiZWxzPzogYm9vbGVhbjtcbiAgbGFiZWxEaWN0aW9uYXJ5PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgeVNjYWxlOiBTY2FsZUxpbmVhcjxudW1iZXIsIG51bWJlciwgbmV2ZXI+O1xuICBjb250YWluZXJIZWlnaHQ6IG51bWJlcjtcbn07XG5cbmNvbnN0IEJhciA9ICh7XG4gIGJhcixcbiAgYmFyR3JvdXAsXG4gIGJhcnMsXG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLFxuICBlbmFibGVIb3ZlcixcbiAgbGFiZWxTdHlsZSxcbiAgb25DbGljayxcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHMsXG4gIHlBeGlzTGFiZWxzLFxuICB5TGFiZWxQb3NpdGlvbixcbiAgdG90YWxJdGVtcyxcbiAgc2hvd0xhYmVscyxcbiAgbGFiZWxEaWN0aW9uYXJ5LFxuICB5U2NhbGUsXG4gIGNvbnRhaW5lckhlaWdodCxcbn06IEJhclByb3BzKSA9PiB7XG4gIGNvbnN0IFhfUEFERElORyA9IDEwO1xuICBjb25zdCBZX1BBRERJTkcgPSA4O1xuXG4gIGNvbnN0IG1pbldpZHRoID0gMjA7XG4gIGNvbnN0IG1pbkNvbnRhaW5lckhlaWdodCA9IDUwO1xuXG4gIGNvbnN0IHNob3dCYXIgPSBiYXIudmFsdWUgIT09IG51bGwgJiYgYmFyLmhlaWdodCA+IDAgJiYgYmFyLndpZHRoID4gMDtcblxuICBjb25zdCBsYWJlbFggPSBiYXIueCAtIFhfUEFERElORztcbiAgY29uc3QgYmFyVG9wWSA9IHlTY2FsZShiYXIudmFsdWUpO1xuICBjb25zdCBsYWJlbFkgPSBiYXJUb3BZIC0gWV9QQURESU5HO1xuXG4gIGNvbnN0IHNob3dNaW5NYXggPSBzaG93RGF0YUxhYmVsKHRvdGFsSXRlbXMpO1xuICBjb25zdCBoYXNTcGFjZUZvckxhYmVsID0gc2hvd0xhYmVscyAmJiBiYXIud2lkdGggPiBtaW5XaWR0aCAmJiBjb250YWluZXJIZWlnaHQgPiBtaW5Db250YWluZXJIZWlnaHQ7XG5cbiAgY29uc3QgZGlzcGxheVZhbHVlID0gZ2V0Rm9ybWF0dGVkVmFsdWUoYmFyLnZhbHVlLCBsYWJlbERpY3Rpb25hcnkpO1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge3Nob3dCYXIgJiYgKFxuICAgICAgICA8QmFyUmVjdFxuICAgICAgICAgIGJhclJlY3RLZXk9e2BiYXItZ3JvdXAtYmFyLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyLmluZGV4fS0ke2Jhci52YWx1ZX0tJHtTdHJpbmcoYmFyLmtleSl9YH1cbiAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGJhcnMsIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBTdHJpbmcoYmFyLmtleSksIGJhci52YWx1ZSl9XG4gICAgICAgICAgb25DbGljaz17KGUpID0+IG9uQ2xpY2soZSwgYmFyR3JvdXAsIGJhcil9XG4gICAgICAgICAgZW5hYmxlSG92ZXI9e2VuYWJsZUhvdmVyfVxuICAgICAgICAvPlxuICAgICAgKX1cblxuICAgICAge2hhc1NwYWNlRm9yTGFiZWwgJiYgc2hvd01pbk1heCAmJiA8RGF0YUxhYmVsIHg9e2xhYmVsWH0geT17bGFiZWxZfSB0aXRsZT17ZGlzcGxheVZhbHVlfSBkeD17MX0gZHk9ezB9IC8+fVxuXG4gICAgICA8QmFyTGFiZWxcbiAgICAgICAgYmFyPXtiYXJ9XG4gICAgICAgIGJhckdyb3VwPXtiYXJHcm91cH1cbiAgICAgICAgeUxhYmVsUG9zaXRpb249e3lMYWJlbFBvc2l0aW9ufVxuICAgICAgICB5QXhpc0xhYmVscz17eUF4aXNMYWJlbHN9XG4gICAgICAgIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzPXtzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVsc31cbiAgICAgICAgbGFiZWxTdHlsZT17bGFiZWxTdHlsZX1cbiAgICAgIC8+XG4gICAgPC9GcmFnbWVudD5cbiAgKTtcbn07XG5cbnR5cGUgQmFyUmVjdFByb3BzID0ge1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XG4gIGZpbGw/OiBzdHJpbmc7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgYmFyUmVjdEtleTogc3RyaW5nO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCYXJSZWN0ID0gKHsgb25DbGljaywgZmlsbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgYmFyUmVjdEtleSwgZW5hYmxlSG92ZXIgfTogQmFyUmVjdFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0hvdmVyZWQsIHNldElzSG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgY2xhc3NlcyA9IGVuYWJsZUhvdmVyID8gY3NzKHsgY3Vyc29yOiAncG9pbnRlcicgfSkgOiAnJztcblxuICBjb25zdCBkaXNwbGF5Q29sb3IgPSBpc0hvdmVyZWQgJiYgZW5hYmxlSG92ZXIgPyBsaWdodGVuQ29sb3IoZmlsbCwgMC44KSA6IGZpbGw7XG5cbiAgY29uc3QgaGFuZGxlT25Nb3VzZUVudGVyID0gKCkgPT4ge1xuICAgIGlmIChlbmFibGVIb3Zlcikge1xuICAgICAgc2V0SXNIb3ZlcmVkKHRydWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVPbk1vdXNlTGVhdmUgPSAoKSA9PiB7XG4gICAgaWYgKGVuYWJsZUhvdmVyKSB7XG4gICAgICBzZXRJc0hvdmVyZWQoZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxyZWN0XG4gICAgICBrZXk9e2JhclJlY3RLZXl9XG4gICAgICB4PXt4fVxuICAgICAgeT17eX1cbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgZmlsbD17ZGlzcGxheUNvbG9yfVxuICAgICAgcng9e0JBUl9SQURJVVN9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtoYW5kbGVPbk1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlTGVhdmU9e2hhbmRsZU9uTW91c2VMZWF2ZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAvPlxuICApO1xufTtcblxudHlwZSBCYXJMYWJlbFByb3BzID0ge1xuICBiYXI6IGFueTtcbiAgYmFyR3JvdXA6IGFueTtcbiAgeUxhYmVsUG9zaXRpb24/OiBudW1iZXI7XG4gIHlBeGlzTGFiZWxzPzogc3RyaW5nW107XG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzOiBib29sZWFuO1xuICBsYWJlbFN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn07XG5cbmNvbnN0IEJhckxhYmVsID0gKHtcbiAgYmFyLFxuICBiYXJHcm91cCxcbiAgeUxhYmVsUG9zaXRpb24sXG4gIHlBeGlzTGFiZWxzLFxuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyxcbiAgbGFiZWxTdHlsZSxcbn06IEJhckxhYmVsUHJvcHMpID0+IHtcbiAgaWYgKCFzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyB8fCAheUxhYmVsUG9zaXRpb24gfHwgIXlBeGlzTGFiZWxzKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBsYWJlbCA9IHlBeGlzTGFiZWxzW2Jhci5pbmRleF07XG4gIGNvbnN0IGNvbHVtbkxhYmVsID0gbGFiZWwuc3BsaXQoJ+KAoicpWzBdO1xuXG4gIGxldCBmb3JtYXR0ZWRDb2x1bW5MYWJlbDogc3RyaW5nO1xuICBpZiAoY29sdW1uTGFiZWwubGVuZ3RoID49IDEzKSB7XG4gICAgZm9ybWF0dGVkQ29sdW1uTGFiZWwgPSBjb2x1bW5MYWJlbC5zbGljZSgwLCAxMCkgKyAnLi4uJztcbiAgfSBlbHNlIHtcbiAgICBmb3JtYXR0ZWRDb2x1bW5MYWJlbCA9IGNvbHVtbkxhYmVsLnNsaWNlKDAsIDEzKTtcbiAgfVxuXG4gIGNvbnN0IGxhYmVsWEdhcCA9IDQ7XG4gIGNvbnN0IGxhYmVsWFBvc2l0aW9uID0gYmFyLnggKyBiYXIud2lkdGggLyAyICsgbGFiZWxYR2FwO1xuXG4gIGNvbnN0IGxhYmVsWUdhcCA9IDE1O1xuICBjb25zdCBsYWJlbFlQb3NpdGlvbiA9IHlMYWJlbFBvc2l0aW9uICsgbGFiZWxZR2FwO1xuXG4gIGNvbnN0IGxhYmVsS2V5ID0gYGxhYmVsLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyLmluZGV4fS0ke2xhYmVsfWA7XG5cbiAgcmV0dXJuIChcbiAgICA8dGV4dFxuICAgICAga2V5PXtsYWJlbEtleX1cbiAgICAgIHg9e2xhYmVsWFBvc2l0aW9ufVxuICAgICAgeT17bGFiZWxZUG9zaXRpb259XG4gICAgICBzdHlsZT17bGFiZWxTdHlsZX1cbiAgICAgIHRyYW5zZm9ybT17YHJvdGF0ZSgtNzAsICR7bGFiZWxYUG9zaXRpb259LCAke2xhYmVsWVBvc2l0aW9ufSlgfVxuICAgICAgdGV4dEFuY2hvcj1cImVuZFwiXG4gICAgPlxuICAgICAge2Zvcm1hdHRlZENvbHVtbkxhYmVsfVxuICAgIDwvdGV4dD5cbiAgKTtcbn07XG4iXX0= */",
45975
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckdyb3VwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyUGdDIiwiZmlsZSI6IkJhckdyb3VwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ0B2aXN4L2dyb3VwJztcbmltcG9ydCB7IEJhckdyb3VwIGFzIFZpc3hCYXJHcm91cCB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdHVtT2JqZWN0IH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IFNjYWxlQmFuZCwgU2NhbGVMaW5lYXIgfSBmcm9tICdAdmlzeC92ZW5kb3IvZDMtc2NhbGUnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IENoYXJ0RGF0YURlZmluaXRpb24sIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsIFNoYXBlRGVmaW5pdGlvbiB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0QWxsQ2hhcnRWYWx1ZXMsIGdldEZvcm1hdHRlZFZhbHVlLCBzaG93RGF0YUxhYmVsIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9EYXRhTGFiZWwvaW5kZXgnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0ZpZWxkL3R5cGVzJztcbmltcG9ydCB7IGxpZ2h0ZW5Db2xvciB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb2xvci5mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRGF0YUxhYmVsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9EYXRhTGFiZWwnO1xuaW1wb3J0IHsgQkFSX1JBRElVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9CT1JERVJfUkFESVVTJztcbmltcG9ydCB7IGdldEJhckZpbGwgfSBmcm9tICcuLi9nZXRCYXJGaWxsJztcblxuZXhwb3J0IHR5cGUgQmFyR3JvdXBQcm9wcyA9IHtcbiAgZGF0YTogQ2hhcnREYXRhRGVmaW5pdGlvbltdO1xuICBrZXlzOiBzdHJpbmdbXTtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xuICB4S2V5OiBzdHJpbmc7XG4gIHhTY2FsZURhdGFUeXBlOiBEYXRhVHlwZTtcbiAgeFNjYWxlOiBTY2FsZUJhbmQ8c3RyaW5nPiB8IFNjYWxlQmFuZDxEYXRlPiB8IFNjYWxlQmFuZDxudW1iZXI+IHwgbnVsbDtcbiAgaW5uZXJYU2NhbGU6IFNjYWxlQmFuZDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICB5U2NhbGU6IFNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyLCBuZXZlcj47XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PiwgYmFyR3JvdXA6IGFueSwgYmFyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlW107XG4gIGJhcnM6IFNoYXBlRGVmaW5pdGlvbjxCYXJTdHlsZXM+W107XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbiAgeUF4aXNMYWJlbHM/OiBzdHJpbmdbXTtcbiAgeUxhYmVsUG9zaXRpb24/OiBudW1iZXI7XG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzOiBib29sZWFuO1xuICBsYWJlbFN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgc2hvd0xhYmVscz86IGJvb2xlYW47XG4gIGxhYmVsRGljdGlvbmFyeTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBCYXJHcm91cCh7XG4gIGRhdGEsXG4gIGtleXMsXG4gIGhlaWdodCxcbiAgd2lkdGgsXG4gIHhLZXksXG4gIHhTY2FsZURhdGFUeXBlLFxuICB4U2NhbGUsXG4gIGlubmVyWFNjYWxlLFxuICB5U2NhbGUsXG4gIG9uQ2xpY2ssXG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLFxuICBiYXJzLFxuICBlbmFibGVIb3ZlcixcbiAgeUF4aXNMYWJlbHMsXG4gIHlMYWJlbFBvc2l0aW9uLFxuICBzaG93RGV0YWlsZWRTdWJHcm91cGluZ0xhYmVscyxcbiAgbGFiZWxTdHlsZSxcbiAgc2hvd0xhYmVscyxcbiAgbGFiZWxEaWN0aW9uYXJ5LFxufTogQmFyR3JvdXBQcm9wcykge1xuICBjb25zdCBnZXRHcm91cFBvc2l0aW9uID0gKGQ6IERhdHVtT2JqZWN0KSA9PiB7XG4gICAgY29uc3QgeFZhbHVlID0gZFt4S2V5IGFzIGtleW9mIHR5cGVvZiBkXTtcblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHJldHVybiBTdHJpbmcoeFZhbHVlKTtcblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZScpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShTdHJpbmcoeFZhbHVlKSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIE51bWJlcih4VmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcoeFZhbHVlKTtcbiAgfTtcblxuICBjb25zdCB0b3RhbEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgYWxsQmFyVmFsdWVzID0gZ2V0QWxsQ2hhcnRWYWx1ZXMoZGF0YSwga2V5cyk7XG4gICAgcmV0dXJuIGFsbEJhclZhbHVlcy5sZW5ndGg7XG4gIH0sIFtkYXRhLCBrZXlzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VmlzeEJhckdyb3VwPERhdHVtT2JqZWN0PlxuICAgICAgZGF0YT17ZGF0YSBhcyBEYXR1bU9iamVjdFtdfVxuICAgICAga2V5cz17a2V5c31cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgeDA9e2dldEdyb3VwUG9zaXRpb259XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB4MFNjYWxlPXt4U2NhbGV9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB4MVNjYWxlPXtpbm5lclhTY2FsZX1cbiAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgY29sb3I9eygpID0+ICcnfVxuICAgID5cbiAgICAgIHsoYmFyR3JvdXBzKSA9PiB7XG4gICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKChiYXJHcm91cCkgPT4gKFxuICAgICAgICAgIDxHcm91cCBrZXk9e2BiYXItZ3JvdXAtJHtiYXJHcm91cC5pbmRleH0tJHtiYXJHcm91cC54MH1gfSBsZWZ0PXtiYXJHcm91cC54MH0+XG4gICAgICAgICAgICB7YmFyR3JvdXAuYmFycy5tYXAoKGJhcikgPT4gKFxuICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAga2V5PXtgYmFyLSR7YmFyLmluZGV4fS0ke2Jhci54fWB9XG4gICAgICAgICAgICAgICAgYmFyPXtiYXJ9XG4gICAgICAgICAgICAgICAgYmFyR3JvdXA9e2Jhckdyb3VwfVxuICAgICAgICAgICAgICAgIGJhcnM9e2JhcnN9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgIGVuYWJsZUhvdmVyPXtlbmFibGVIb3Zlcn1cbiAgICAgICAgICAgICAgICBsYWJlbFN0eWxlPXtsYWJlbFN0eWxlfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICAgICAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM9e3Nob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzfVxuICAgICAgICAgICAgICAgIHlBeGlzTGFiZWxzPXt5QXhpc0xhYmVsc31cbiAgICAgICAgICAgICAgICB5TGFiZWxQb3NpdGlvbj17eUxhYmVsUG9zaXRpb259XG4gICAgICAgICAgICAgICAgdG90YWxJdGVtcz17dG90YWxJdGVtc31cbiAgICAgICAgICAgICAgICBzaG93TGFiZWxzPXtzaG93TGFiZWxzfVxuICAgICAgICAgICAgICAgIGxhYmVsRGljdGlvbmFyeT17bGFiZWxEaWN0aW9uYXJ5fVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodD17aGVpZ2h0fVxuICAgICAgICAgICAgICAgIGNoYXJ0V2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgKSk7XG4gICAgICB9fVxuICAgIDwvVmlzeEJhckdyb3VwPlxuICApO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVCYXJMYWJlbFBvc2l0aW9uKFxuICBiYXI6IGFueSxcbiAgYmFyR3JvdXA6IGFueSxcbiAgY2hhcnRXaWR0aDogbnVtYmVyLFxuICBkaXNwbGF5VmFsdWU6IHN0cmluZyB8IG51bGwsXG4pOiBudW1iZXIgfCBmYWxzZSB7XG4gIGlmICghZGlzcGxheVZhbHVlKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgRVNUSU1BVEVEX0ZPTlRfV0lEVEggPSA1Ljc1O1xuXG4gIGNvbnN0IG1pbldpZHRoUGVyY2VudCA9IDAuMDI7XG4gIGNvbnN0IG1heFdpZHRoUGVyY2VudCA9IDAuMTU7XG4gIGNvbnN0IG1pbldpZHRoUHggPSBjaGFydFdpZHRoICogbWluV2lkdGhQZXJjZW50O1xuICBjb25zdCBtYXhXaWR0aFB4ID0gY2hhcnRXaWR0aCAqIG1heFdpZHRoUGVyY2VudDtcblxuICBjb25zdCBtaW5TaXplID0gMC41O1xuICBjb25zdCBtYXhTaXplID0gMS4yO1xuXG4gIGNvbnN0IG5vcm1hbGl6ZWRCYXJXaWR0aCA9IE1hdGgubWluKE1hdGgubWF4KGJhci53aWR0aCwgbWluV2lkdGhQeCksIG1heFdpZHRoUHgpO1xuICBjb25zdCBsb2dJbnB1dCA9IDEgKyAoKG5vcm1hbGl6ZWRCYXJXaWR0aCAtIG1pbldpZHRoUHgpIC8gKG1heFdpZHRoUHggLSBtaW5XaWR0aFB4KSkgKiAoTWF0aC5FIC0gMSk7XG4gIGNvbnN0IGxvZ1JhdGlvID0gTWF0aC5sb2cobG9nSW5wdXQpO1xuICBjb25zdCBzaXplID0gbWluU2l6ZSArIGxvZ1JhdGlvICogKG1heFNpemUgLSBtaW5TaXplKTtcblxuICBjb25zdCBiYXNlUG9zaXRpb24gPSBiYXJHcm91cC5iYXJzLmxlbmd0aCA+IDEgPyBiYXIueCArIChiYXIud2lkdGggKiBzaXplKSAvIDIgOiAoYmFyLndpZHRoICogc2l6ZSkgLyAyO1xuXG4gIHJldHVybiBiYXNlUG9zaXRpb24gLSAoZGlzcGxheVZhbHVlLmxlbmd0aCAqIEVTVElNQVRFRF9GT05UX1dJRFRIKSAvIDI7XG59XG5cbnR5cGUgQmFyUHJvcHMgPSB7XG4gIGJhcjogYW55O1xuICBiYXJHcm91cDogYW55O1xuICBiYXJzOiBTaGFwZURlZmluaXRpb248QmFyU3R5bGVzPltdO1xuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZVtdO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PiwgYmFyR3JvdXA6IGFueSwgYmFyOiBhbnkpID0+IHZvaWQ7XG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzOiBib29sZWFuO1xuICBsYWJlbFN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgeUF4aXNMYWJlbHM/OiBzdHJpbmdbXTtcbiAgeUxhYmVsUG9zaXRpb24/OiBudW1iZXI7XG4gIHRvdGFsSXRlbXM6IG51bWJlcjtcbiAgc2hvd0xhYmVscz86IGJvb2xlYW47XG4gIGxhYmVsRGljdGlvbmFyeT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHlTY2FsZTogU2NhbGVMaW5lYXI8bnVtYmVyLCBudW1iZXIsIG5ldmVyPjtcbiAgY29udGFpbmVySGVpZ2h0OiBudW1iZXI7XG4gIGNoYXJ0V2lkdGg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBCYXIgPSAoe1xuICBiYXIsXG4gIGJhckdyb3VwLFxuICBiYXJzLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgZW5hYmxlSG92ZXIsXG4gIGxhYmVsU3R5bGUsXG4gIG9uQ2xpY2ssXG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzLFxuICB5QXhpc0xhYmVscyxcbiAgeUxhYmVsUG9zaXRpb24sXG4gIHRvdGFsSXRlbXMsXG4gIHNob3dMYWJlbHMsXG4gIGxhYmVsRGljdGlvbmFyeSxcbiAgeVNjYWxlLFxuICBjb250YWluZXJIZWlnaHQsXG4gIGNoYXJ0V2lkdGgsXG59OiBCYXJQcm9wcykgPT4ge1xuICBjb25zdCBYX1BBRERJTkcgPSAxMDtcbiAgY29uc3QgWV9QQURESU5HID0gODtcblxuICBjb25zdCBtaW5XaWR0aCA9IDIwO1xuICBjb25zdCBtaW5Db250YWluZXJIZWlnaHQgPSA1MDtcblxuICBjb25zdCBzaG93QmFyID0gYmFyLnZhbHVlICE9PSBudWxsICYmIGJhci5oZWlnaHQgPiAwICYmIGJhci53aWR0aCA+IDA7XG5cbiAgY29uc3QgYmFyVG9wWSA9IHlTY2FsZShiYXIudmFsdWUpO1xuICBjb25zdCBsYWJlbFggPSBiYXIueCAtIFhfUEFERElORztcbiAgY29uc3QgbGFiZWxZID0gYmFyVG9wWSAtIFlfUEFERElORztcblxuICBjb25zdCBzaG93TWluTWF4ID0gc2hvd0RhdGFMYWJlbCh0b3RhbEl0ZW1zKTtcbiAgY29uc3QgaGFzU3BhY2VGb3JMYWJlbCA9IHNob3dMYWJlbHMgJiYgYmFyLndpZHRoID4gbWluV2lkdGggJiYgY29udGFpbmVySGVpZ2h0ID4gbWluQ29udGFpbmVySGVpZ2h0O1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGdldEZvcm1hdHRlZFZhbHVlKGJhci52YWx1ZSwgbGFiZWxEaWN0aW9uYXJ5KTtcbiAgY29uc3QgYmFyUG9zaXRpb24gPSBjaGFydFdpZHRoID8gY2FsY3VsYXRlQmFyTGFiZWxQb3NpdGlvbihiYXIsIGJhckdyb3VwLCBjaGFydFdpZHRoLCBkaXNwbGF5VmFsdWUpIDogbGFiZWxYO1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge3Nob3dCYXIgJiYgKFxuICAgICAgICA8QmFyUmVjdFxuICAgICAgICAgIGJhclJlY3RLZXk9e2BiYXItZ3JvdXAtYmFyLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyLmluZGV4fS0ke2Jhci52YWx1ZX0tJHtTdHJpbmcoYmFyLmtleSl9YH1cbiAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGJhcnMsIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBTdHJpbmcoYmFyLmtleSksIGJhci52YWx1ZSl9XG4gICAgICAgICAgb25DbGljaz17KGUpID0+IG9uQ2xpY2soZSwgYmFyR3JvdXAsIGJhcil9XG4gICAgICAgICAgZW5hYmxlSG92ZXI9e2VuYWJsZUhvdmVyfVxuICAgICAgICAvPlxuICAgICAgKX1cblxuICAgICAge2hhc1NwYWNlRm9yTGFiZWwgJiYgc2hvd01pbk1heCAmJiBiYXJQb3NpdGlvbiAhPT0gZmFsc2UgJiYgKFxuICAgICAgICA8RGF0YUxhYmVsIHg9e2JhclBvc2l0aW9ufSB5PXtsYWJlbFl9IHRpdGxlPXtkaXNwbGF5VmFsdWV9IGR4PXsxfSBkeT17MH0gLz5cbiAgICAgICl9XG5cbiAgICAgIDxCYXJMYWJlbFxuICAgICAgICBiYXI9e2Jhcn1cbiAgICAgICAgYmFyR3JvdXA9e2Jhckdyb3VwfVxuICAgICAgICB5TGFiZWxQb3NpdGlvbj17eUxhYmVsUG9zaXRpb259XG4gICAgICAgIHlBeGlzTGFiZWxzPXt5QXhpc0xhYmVsc31cbiAgICAgICAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM9e3Nob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzfVxuICAgICAgICBsYWJlbFN0eWxlPXtsYWJlbFN0eWxlfVxuICAgICAgLz5cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxudHlwZSBCYXJSZWN0UHJvcHMgPSB7XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgZmlsbD86IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBiYXJSZWN0S2V5OiBzdHJpbmc7XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEJhclJlY3QgPSAoeyBvbkNsaWNrLCBmaWxsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBiYXJSZWN0S2V5LCBlbmFibGVIb3ZlciB9OiBCYXJSZWN0UHJvcHMpID0+IHtcbiAgY29uc3QgW2lzSG92ZXJlZCwgc2V0SXNIb3ZlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBjbGFzc2VzID0gZW5hYmxlSG92ZXIgPyBjc3MoeyBjdXJzb3I6ICdwb2ludGVyJyB9KSA6ICcnO1xuXG4gIGNvbnN0IGRpc3BsYXlDb2xvciA9IGlzSG92ZXJlZCAmJiBlbmFibGVIb3ZlciA/IGxpZ2h0ZW5Db2xvcihmaWxsLCAwLjgpIDogZmlsbDtcblxuICBjb25zdCBoYW5kbGVPbk1vdXNlRW50ZXIgPSAoKSA9PiB7XG4gICAgaWYgKGVuYWJsZUhvdmVyKSB7XG4gICAgICBzZXRJc0hvdmVyZWQodHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU9uTW91c2VMZWF2ZSA9ICgpID0+IHtcbiAgICBpZiAoZW5hYmxlSG92ZXIpIHtcbiAgICAgIHNldElzSG92ZXJlZChmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPHJlY3RcbiAgICAgIGtleT17YmFyUmVjdEtleX1cbiAgICAgIHg9e3h9XG4gICAgICB5PXt5fVxuICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICBmaWxsPXtkaXNwbGF5Q29sb3J9XG4gICAgICByeD17QkFSX1JBRElVU31cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU9uTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlT25Nb3VzZUxlYXZlfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgIC8+XG4gICk7XG59O1xuXG50eXBlIEJhckxhYmVsUHJvcHMgPSB7XG4gIGJhcjogYW55O1xuICBiYXJHcm91cDogYW55O1xuICB5TGFiZWxQb3NpdGlvbj86IG51bWJlcjtcbiAgeUF4aXNMYWJlbHM/OiBzdHJpbmdbXTtcbiAgc2hvd0RldGFpbGVkU3ViR3JvdXBpbmdMYWJlbHM6IGJvb2xlYW47XG4gIGxhYmVsU3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuY29uc3QgQmFyTGFiZWwgPSAoe1xuICBiYXIsXG4gIGJhckdyb3VwLFxuICB5TGFiZWxQb3NpdGlvbixcbiAgeUF4aXNMYWJlbHMsXG4gIHNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzLFxuICBsYWJlbFN0eWxlLFxufTogQmFyTGFiZWxQcm9wcykgPT4ge1xuICBpZiAoIXNob3dEZXRhaWxlZFN1Ykdyb3VwaW5nTGFiZWxzIHx8ICF5TGFiZWxQb3NpdGlvbiB8fCAheUF4aXNMYWJlbHMpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGxhYmVsID0geUF4aXNMYWJlbHNbYmFyLmluZGV4XTtcbiAgY29uc3QgY29sdW1uTGFiZWwgPSBsYWJlbC5zcGxpdCgn4oCiJylbMF07XG5cbiAgbGV0IGZvcm1hdHRlZENvbHVtbkxhYmVsOiBzdHJpbmc7XG4gIGlmIChjb2x1bW5MYWJlbC5sZW5ndGggPj0gMTMpIHtcbiAgICBmb3JtYXR0ZWRDb2x1bW5MYWJlbCA9IGNvbHVtbkxhYmVsLnNsaWNlKDAsIDEwKSArICcuLi4nO1xuICB9IGVsc2Uge1xuICAgIGZvcm1hdHRlZENvbHVtbkxhYmVsID0gY29sdW1uTGFiZWwuc2xpY2UoMCwgMTMpO1xuICB9XG5cbiAgY29uc3QgbGFiZWxYR2FwID0gNDtcbiAgY29uc3QgbGFiZWxYUG9zaXRpb24gPSBiYXIueCArIGJhci53aWR0aCAvIDIgKyBsYWJlbFhHYXA7XG5cbiAgY29uc3QgbGFiZWxZR2FwID0gMTU7XG4gIGNvbnN0IGxhYmVsWVBvc2l0aW9uID0geUxhYmVsUG9zaXRpb24gKyBsYWJlbFlHYXA7XG5cbiAgY29uc3QgbGFiZWxLZXkgPSBgbGFiZWwtJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7bGFiZWx9YDtcblxuICByZXR1cm4gKFxuICAgIDx0ZXh0XG4gICAgICBrZXk9e2xhYmVsS2V5fVxuICAgICAgeD17bGFiZWxYUG9zaXRpb259XG4gICAgICB5PXtsYWJlbFlQb3NpdGlvbn1cbiAgICAgIHN0eWxlPXtsYWJlbFN0eWxlfVxuICAgICAgdHJhbnNmb3JtPXtgcm90YXRlKC03MCwgJHtsYWJlbFhQb3NpdGlvbn0sICR7bGFiZWxZUG9zaXRpb259KWB9XG4gICAgICB0ZXh0QW5jaG9yPVwiZW5kXCJcbiAgICA+XG4gICAgICB7Zm9ybWF0dGVkQ29sdW1uTGFiZWx9XG4gICAgPC90ZXh0PlxuICApO1xufTtcbiJdfQ== */",
45967
45976
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
45968
45977
  }) : '';
45969
45978
  var displayColor = isHovered && enableHover ? lightenColor$2(fill, 0.8) : fill;
@@ -46398,6 +46407,7 @@ var BarChart$5 = function BarChart(_ref) {
46398
46407
  data: dataFlattened,
46399
46408
  keys: yScaleKeys,
46400
46409
  height: innerHeight,
46410
+ width: width,
46401
46411
  xKey: xKey,
46402
46412
  xScaleDataType: xScaleDataType,
46403
46413
  xScale: xScale,
@@ -50003,6 +50013,24 @@ var buildLineChartRepresentation = function buildLineChartRepresentation(_ref) {
50003
50013
  return chart;
50004
50014
  };
50005
50015
 
50016
+ var sortDateTimeByDefault = function sortDateTimeByDefault(attributes, dataSet, queryEngineConfig) {
50017
+ if (attributes.order.length > 0) {
50018
+ return attributes.order;
50019
+ }
50020
+ var automaticOrders = [];
50021
+ attributes.dimension.forEach(function (dimension) {
50022
+ var dimensionField = findField(dataSet, dimension.field);
50023
+ if (dimensionField.dataType === 'date_time' && queryEngineConfig.supportedTimeTruncFunctions[dimension["function"]]) {
50024
+ automaticOrders.push({
50025
+ field: dimension.field,
50026
+ direction: 'asc',
50027
+ "function": dimension["function"]
50028
+ });
50029
+ }
50030
+ });
50031
+ return automaticOrders;
50032
+ };
50033
+
50006
50034
  var LineChartV2View = function LineChartV2View(props) {
50007
50035
  var _props$library, _props$attributes$vie;
50008
50036
  var _useDashboardBehaviou = useDashboardBehaviourContext(),
@@ -50048,7 +50076,7 @@ var LineChartV2View = function LineChartV2View(props) {
50048
50076
  nullValue: checkForNullValue(props.attributes.dataSetId, props.attributes.dimension, props.attributes.timeDimension, textOverride, valueAlias),
50049
50077
  result: props.result,
50050
50078
  pivotConfig: pivotConfig,
50051
- order: props.attributes.order,
50079
+ order: sortDateTimeByDefault(props.attributes, props.dataSet, queryEngineConfig),
50052
50080
  numberFormatOptions: props.numberFormatOptions,
50053
50081
  dateTimeFormatOptions: props.dateTimeFormatOptions,
50054
50082
  goalLineAttributes: (_props$attributes$goa = props.attributes.goalLines) != null ? _props$attributes$goa : [],
@@ -50419,7 +50447,7 @@ var AreaChartV2View = function AreaChartV2View(props) {
50419
50447
  nullValue: checkForNullValue(props.attributes.dataSetId, props.attributes.dimension, props.attributes.timeDimension, textOverride, valueAlias),
50420
50448
  result: props.result,
50421
50449
  pivotConfig: pivotConfig,
50422
- order: props.attributes.order,
50450
+ order: sortDateTimeByDefault(props.attributes, props.dataSet, queryEngineConfig),
50423
50451
  numberFormatOptions: props.numberFormatOptions,
50424
50452
  dateTimeFormatOptions: props.dateTimeFormatOptions,
50425
50453
  goalLineAttributes: (_props$attributes$goa = props.attributes.goalLines) != null ? _props$attributes$goa : [],
@@ -57043,10 +57071,9 @@ var Bar$2 = function Bar(_ref4) {
57043
57071
  var labelX = bar.x - xPadding;
57044
57072
  var labelY = getStepYPosition(step, barHeight, y);
57045
57073
  var isFirstOrLastStep = barGroup.index === 0 || barGroup.index === totalItems - 1;
57046
- var keyValue = step.end - step.start;
57047
- var displayValue = getFormattedValue(keyValue, labelDictionary);
57074
+ var displayValue = getFormattedValue(bar.value, labelDictionary);
57048
57075
  var unformattedValue = displayValue.length > 15;
57049
- if (unformattedValue) displayValue = keyValue;
57076
+ if (unformattedValue) displayValue = bar.value;
57050
57077
  var showMinMax = unformattedValue ? isFirstOrLastStep : totalItems < 20 || isFirstOrLastStep;
57051
57078
  var shouldShowLabel = showLabels && showMinMax;
57052
57079
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
@@ -64408,8 +64435,24 @@ var ComboChartCompareSection = function ComboChartCompareSection(props) {
64408
64435
  setPartialAttributes: function setPartialAttributes(attr) {
64409
64436
  if (attr['timeDimensions']) {
64410
64437
  var _attr$timeDimensions$;
64438
+ var newTimeDimension = (_attr$timeDimensions$ = attr['timeDimensions'][0]) != null ? _attr$timeDimensions$ : null;
64439
+ var comboAttrs = props.attributes;
64440
+ var orderField = [].concat(comboAttrs.order);
64441
+ if (newTimeDimension) {
64442
+ var existingOrderIndex = orderField.findIndex(function (order) {
64443
+ return order.field === newTimeDimension.field && order["function"] === newTimeDimension.truncate;
64444
+ });
64445
+ if (existingOrderIndex === -1) {
64446
+ orderField.push({
64447
+ field: newTimeDimension.field,
64448
+ direction: 'asc',
64449
+ "function": newTimeDimension.truncate
64450
+ });
64451
+ }
64452
+ }
64411
64453
  props == null || props.setAttributes({
64412
- timeDimension: (_attr$timeDimensions$ = attr['timeDimensions'][0]) != null ? _attr$timeDimensions$ : null
64454
+ timeDimension: newTimeDimension,
64455
+ order: orderField
64413
64456
  });
64414
64457
  }
64415
64458
  }