@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.
@@ -34862,16 +34862,6 @@ var calculateMinMax = function calculateMinMax(values) {
34862
34862
  maxValue: maxValue
34863
34863
  };
34864
34864
  };
34865
- var normalizeKey = function normalizeKey(value) {
34866
- if (typeof value === 'number' || !isNaN(Number(value)) && !isNaN(parseFloat(value))) {
34867
- var numValue = Number(value);
34868
- if (numValue >= 0 && numValue <= 1) {
34869
- return numValue.toString();
34870
- }
34871
- return numValue.toString().split('.')[0];
34872
- }
34873
- return String(value);
34874
- };
34875
34865
 
34876
34866
  // @TODO: Adjust the totalItems logic to be flexible based on the available width
34877
34867
  var showDataLabel = function showDataLabel(totalItems) {
@@ -34891,7 +34881,7 @@ var getLabelDictionary = function getLabelDictionary(formattedData, keys) {
34891
34881
  var convertedArray = keys.map(function (key) {
34892
34882
  var _d$key, _ref;
34893
34883
  if (!((_d$key = d[key]) != null && _d$key.formattedValue)) return;
34894
- var valueKey = normalizeKey(d[key].value);
34884
+ var valueKey = String(d[key].value);
34895
34885
  var label = d[key].formattedValue;
34896
34886
  return _ref = {}, _ref[valueKey] = label, _ref;
34897
34887
  }).flat();
@@ -34915,11 +34905,10 @@ var getLabelDictionary = function getLabelDictionary(formattedData, keys) {
34915
34905
  return dictionary;
34916
34906
  };
34917
34907
  var getFormattedValue = function getFormattedValue(value, dictionary) {
34918
- var _dictionary$normalize;
34908
+ var _dictionary$actualVal;
34919
34909
  var actualValue = (value == null ? void 0 : value.value) !== undefined ? value.value : value;
34920
34910
  if (!dictionary) return actualValue;
34921
- var normalizedKey = normalizeKey(actualValue);
34922
- return (_dictionary$normalize = dictionary[normalizedKey]) != null ? _dictionary$normalize : actualValue;
34911
+ return (_dictionary$actualVal = dictionary[actualValue]) != null ? _dictionary$actualVal : actualValue;
34923
34912
  };
34924
34913
  var getAllChartValues = function getAllChartValues(data, keys) {
34925
34914
  var allValues = [];
@@ -45878,6 +45867,7 @@ function BarGroup(_ref) {
45878
45867
  var data = _ref.data,
45879
45868
  keys = _ref.keys,
45880
45869
  height = _ref.height,
45870
+ width = _ref.width,
45881
45871
  xKey = _ref.xKey,
45882
45872
  xScaleDataType = _ref.xScaleDataType,
45883
45873
  xScale = _ref.xScale,
@@ -45943,7 +45933,8 @@ function BarGroup(_ref) {
45943
45933
  showLabels: showLabels,
45944
45934
  labelDictionary: labelDictionary,
45945
45935
  yScale: yScale,
45946
- containerHeight: height
45936
+ containerHeight: height,
45937
+ chartWidth: width
45947
45938
  }, "bar-" + bar.index + "-" + bar.x);
45948
45939
  })
45949
45940
  }, "bar-group-" + barGroup.index + "-" + barGroup.x0);
@@ -45951,6 +45942,22 @@ function BarGroup(_ref) {
45951
45942
  }
45952
45943
  });
45953
45944
  }
45945
+ function calculateBarLabelPosition(bar, barGroup, chartWidth, displayValue) {
45946
+ if (!displayValue) return false;
45947
+ var ESTIMATED_FONT_WIDTH = 5.75;
45948
+ var minWidthPercent = 0.02;
45949
+ var maxWidthPercent = 0.15;
45950
+ var minWidthPx = chartWidth * minWidthPercent;
45951
+ var maxWidthPx = chartWidth * maxWidthPercent;
45952
+ var minSize = 0.5;
45953
+ var maxSize = 1.2;
45954
+ var normalizedBarWidth = Math.min(Math.max(bar.width, minWidthPx), maxWidthPx);
45955
+ var logInput = 1 + (normalizedBarWidth - minWidthPx) / (maxWidthPx - minWidthPx) * (Math.E - 1);
45956
+ var logRatio = Math.log(logInput);
45957
+ var size = minSize + logRatio * (maxSize - minSize);
45958
+ var basePosition = barGroup.bars.length > 1 ? bar.x + bar.width * size / 2 : bar.width * size / 2;
45959
+ return basePosition - displayValue.length * ESTIMATED_FONT_WIDTH / 2;
45960
+ }
45954
45961
  var Bar = function Bar(_ref2) {
45955
45962
  var bar = _ref2.bar,
45956
45963
  barGroup = _ref2.barGroup,
@@ -45966,18 +45973,20 @@ var Bar = function Bar(_ref2) {
45966
45973
  showLabels = _ref2.showLabels,
45967
45974
  labelDictionary = _ref2.labelDictionary,
45968
45975
  yScale = _ref2.yScale,
45969
- containerHeight = _ref2.containerHeight;
45976
+ containerHeight = _ref2.containerHeight,
45977
+ chartWidth = _ref2.chartWidth;
45970
45978
  var X_PADDING = 10;
45971
45979
  var Y_PADDING = 8;
45972
45980
  var minWidth = 20;
45973
45981
  var minContainerHeight = 50;
45974
45982
  var showBar = bar.value !== null && bar.height > 0 && bar.width > 0;
45975
- var labelX = bar.x - X_PADDING;
45976
45983
  var barTopY = yScale(bar.value);
45984
+ var labelX = bar.x - X_PADDING;
45977
45985
  var labelY = barTopY - Y_PADDING;
45978
45986
  var showMinMax = showDataLabel(totalItems);
45979
45987
  var hasSpaceForLabel = showLabels && bar.width > minWidth && containerHeight > minContainerHeight;
45980
45988
  var displayValue = getFormattedValue(bar.value, labelDictionary);
45989
+ var barPosition = chartWidth ? calculateBarLabelPosition(bar, barGroup, chartWidth, displayValue) : labelX;
45981
45990
  return jsxs(Fragment, {
45982
45991
  children: [showBar && jsx(BarRect, {
45983
45992
  barRectKey: "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key),
@@ -45990,8 +45999,8 @@ var Bar = function Bar(_ref2) {
45990
45999
  return _onClick(e, barGroup, bar);
45991
46000
  },
45992
46001
  enableHover: enableHover
45993
- }), hasSpaceForLabel && showMinMax && jsx(DataLabel, {
45994
- x: labelX,
46002
+ }), hasSpaceForLabel && showMinMax && barPosition !== false && jsx(DataLabel, {
46003
+ x: barPosition,
45995
46004
  y: labelY,
45996
46005
  title: displayValue,
45997
46006
  dx: 1,
@@ -46024,7 +46033,7 @@ var BarRect = function BarRect(_ref3) {
46024
46033
  } : {
46025
46034
  name: "1ltmijl-classes",
46026
46035
  styles: "cursor:pointer;label:classes;",
46027
- 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= */",
46036
+ 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== */",
46028
46037
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
46029
46038
  }) : '';
46030
46039
  var displayColor = isHovered && enableHover ? lightenColor$2(fill, 0.8) : fill;
@@ -46459,6 +46468,7 @@ var BarChart$5 = function BarChart(_ref) {
46459
46468
  data: dataFlattened,
46460
46469
  keys: yScaleKeys,
46461
46470
  height: innerHeight,
46471
+ width: width,
46462
46472
  xKey: xKey,
46463
46473
  xScaleDataType: xScaleDataType,
46464
46474
  xScale: xScale,
@@ -50067,6 +50077,24 @@ var buildLineChartRepresentation = function buildLineChartRepresentation(_ref) {
50067
50077
  return chart;
50068
50078
  };
50069
50079
 
50080
+ var sortDateTimeByDefault = function sortDateTimeByDefault(attributes, dataSet, queryEngineConfig) {
50081
+ if (attributes.order.length > 0) {
50082
+ return attributes.order;
50083
+ }
50084
+ var automaticOrders = [];
50085
+ attributes.dimension.forEach(function (dimension) {
50086
+ var dimensionField = findField(dataSet, dimension.field);
50087
+ if (dimensionField.dataType === 'date_time' && queryEngineConfig.supportedTimeTruncFunctions[dimension["function"]]) {
50088
+ automaticOrders.push({
50089
+ field: dimension.field,
50090
+ direction: 'asc',
50091
+ "function": dimension["function"]
50092
+ });
50093
+ }
50094
+ });
50095
+ return automaticOrders;
50096
+ };
50097
+
50070
50098
  var LineChartV2View = function LineChartV2View(props) {
50071
50099
  var _props$library, _props$attributes$vie;
50072
50100
  var _useDashboardBehaviou = useDashboardBehaviourContext(),
@@ -50112,7 +50140,7 @@ var LineChartV2View = function LineChartV2View(props) {
50112
50140
  nullValue: checkForNullValue(props.attributes.dataSetId, props.attributes.dimension, props.attributes.timeDimension, textOverride, valueAlias),
50113
50141
  result: props.result,
50114
50142
  pivotConfig: pivotConfig,
50115
- order: props.attributes.order,
50143
+ order: sortDateTimeByDefault(props.attributes, props.dataSet, queryEngineConfig),
50116
50144
  numberFormatOptions: props.numberFormatOptions,
50117
50145
  dateTimeFormatOptions: props.dateTimeFormatOptions,
50118
50146
  goalLineAttributes: (_props$attributes$goa = props.attributes.goalLines) != null ? _props$attributes$goa : [],
@@ -50483,7 +50511,7 @@ var AreaChartV2View = function AreaChartV2View(props) {
50483
50511
  nullValue: checkForNullValue(props.attributes.dataSetId, props.attributes.dimension, props.attributes.timeDimension, textOverride, valueAlias),
50484
50512
  result: props.result,
50485
50513
  pivotConfig: pivotConfig,
50486
- order: props.attributes.order,
50514
+ order: sortDateTimeByDefault(props.attributes, props.dataSet, queryEngineConfig),
50487
50515
  numberFormatOptions: props.numberFormatOptions,
50488
50516
  dateTimeFormatOptions: props.dateTimeFormatOptions,
50489
50517
  goalLineAttributes: (_props$attributes$goa = props.attributes.goalLines) != null ? _props$attributes$goa : [],
@@ -57107,10 +57135,9 @@ var Bar$2 = function Bar(_ref4) {
57107
57135
  var labelX = bar.x - xPadding;
57108
57136
  var labelY = getStepYPosition(step, barHeight, y);
57109
57137
  var isFirstOrLastStep = barGroup.index === 0 || barGroup.index === totalItems - 1;
57110
- var keyValue = step.end - step.start;
57111
- var displayValue = getFormattedValue(keyValue, labelDictionary);
57138
+ var displayValue = getFormattedValue(bar.value, labelDictionary);
57112
57139
  var unformattedValue = displayValue.length > 15;
57113
- if (unformattedValue) displayValue = keyValue;
57140
+ if (unformattedValue) displayValue = bar.value;
57114
57141
  var showMinMax = unformattedValue ? isFirstOrLastStep : totalItems < 20 || isFirstOrLastStep;
57115
57142
  var shouldShowLabel = showLabels && showMinMax;
57116
57143
  return jsxs(Fragment$1, {
@@ -64472,8 +64499,24 @@ var ComboChartCompareSection = function ComboChartCompareSection(props) {
64472
64499
  setPartialAttributes: function setPartialAttributes(attr) {
64473
64500
  if (attr['timeDimensions']) {
64474
64501
  var _attr$timeDimensions$;
64502
+ var newTimeDimension = (_attr$timeDimensions$ = attr['timeDimensions'][0]) != null ? _attr$timeDimensions$ : null;
64503
+ var comboAttrs = props.attributes;
64504
+ var orderField = [].concat(comboAttrs.order);
64505
+ if (newTimeDimension) {
64506
+ var existingOrderIndex = orderField.findIndex(function (order) {
64507
+ return order.field === newTimeDimension.field && order["function"] === newTimeDimension.truncate;
64508
+ });
64509
+ if (existingOrderIndex === -1) {
64510
+ orderField.push({
64511
+ field: newTimeDimension.field,
64512
+ direction: 'asc',
64513
+ "function": newTimeDimension.truncate
64514
+ });
64515
+ }
64516
+ }
64475
64517
  props == null || props.setAttributes({
64476
- timeDimension: (_attr$timeDimensions$ = attr['timeDimensions'][0]) != null ? _attr$timeDimensions$ : null
64518
+ timeDimension: newTimeDimension,
64519
+ order: orderField
64477
64520
  });
64478
64521
  }
64479
64522
  }
@@ -0,0 +1,4 @@
1
+ import { DataSet } from '../DataSet/types';
2
+ import { QueryAttributes } from '../QueryAttributes/types';
3
+ import { QueryEngineConfig } from '../QueryEngineConfig/types';
4
+ export declare const sortDateTimeByDefault: (attributes: QueryAttributes, dataSet: DataSet, queryEngineConfig: QueryEngineConfig) => QueryAttributes.Order[];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vizzly/dashboard",
3
3
  "author": "james@vizzly.co",
4
- "version": "0.15.0-dev-ac044c49c73d54ff3c144918a639d24aea98b549",
4
+ "version": "0.15.0-dev-01ea5aa946daad108dcca8cdb39a89202fb70c38",
5
5
  "source": "src/index.tsx",
6
6
  "types": "./dist/dashboard/src/index.d.ts",
7
7
  "module": "./dist/dashboard.esm.js",