autoql-fe-utils 1.0.39 → 1.0.41

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.
package/dist/index.js CHANGED
@@ -1047,6 +1047,7 @@ __export(src_exports, {
1047
1047
  DAYJS_PRECISION_FORMATS: () => DAYJS_PRECISION_FORMATS,
1048
1048
  DEFAULT_AGG_TYPE: () => DEFAULT_AGG_TYPE,
1049
1049
  DEFAULT_CHART_CONFIG: () => DEFAULT_CHART_CONFIG,
1050
+ DEFAULT_CSS_PREFIX: () => DEFAULT_CSS_PREFIX,
1050
1051
  DEFAULT_DATA_PAGE_SIZE: () => DEFAULT_DATA_PAGE_SIZE,
1051
1052
  DEFAULT_EVALUATION_FREQUENCY: () => DEFAULT_EVALUATION_FREQUENCY,
1052
1053
  DEFAULT_LEGEND_PADDING_BOTTOM: () => DEFAULT_LEGEND_PADDING_BOTTOM,
@@ -1075,6 +1076,7 @@ __export(src_exports, {
1075
1076
  LEGEND_SHAPE_SIZE: () => LEGEND_SHAPE_SIZE,
1076
1077
  LEGEND_TOP_ADJUSTMENT: () => LEGEND_TOP_ADJUSTMENT,
1077
1078
  LOAD_MORE_DROPDOWN_PADDING_BOTTOM: () => LOAD_MORE_DROPDOWN_PADDING_BOTTOM,
1079
+ MAX_CATEGORIES: () => MAX_CATEGORIES,
1078
1080
  MAX_DATA_PAGE_SIZE: () => MAX_DATA_PAGE_SIZE,
1079
1081
  MAX_LEGEND_LABELS: () => MAX_LEGEND_LABELS,
1080
1082
  MAX_ROWS_FOR_PIE_CHART: () => MAX_ROWS_FOR_PIE_CHART,
@@ -1111,6 +1113,7 @@ __export(src_exports, {
1111
1113
  adjustTopTitleToFit: () => adjustTopTitleToFit,
1112
1114
  adjustVerticalTitleToFit: () => adjustVerticalTitleToFit,
1113
1115
  aggregateData: () => aggregateData,
1116
+ aggregateOtherCategory: () => aggregateOtherCategory,
1114
1117
  animateInputText: () => animateInputText,
1115
1118
  applyLegendTitleStyles: () => applyLegendTitleStyles,
1116
1119
  applyStylesForHiddenSeries: () => applyStylesForHiddenSeries,
@@ -2745,6 +2748,7 @@ var COLUMN_TYPES = {
2745
2748
  var DEFAULT_SOURCE = "widgets";
2746
2749
 
2747
2750
  // src/Constants/defaults.ts
2751
+ var DEFAULT_CSS_PREFIX = "react-autoql";
2748
2752
  var authenticationDefault = {
2749
2753
  token: void 0,
2750
2754
  apiKey: void 0,
@@ -4777,8 +4781,8 @@ var LIGHT_THEME = {
4777
4781
  "mask-color": "#0000000F",
4778
4782
  "mobile-mask-color": "#00000059",
4779
4783
  "scrollbar-color": "#aeaeae",
4780
- "box-shadow-1": "0px 1px 2px 1px var(--react-autoql-box-shadow-color)",
4781
- "box-shadow-2": "0px 1px 2px 0px var(--react-autoql-box-shadow-color)"
4784
+ "box-shadow-1": "0px 1px 2px 1px #85858528",
4785
+ "box-shadow-2": "0px 1px 2px 0px #85858528"
4782
4786
  };
4783
4787
  var DARK_THEME = {
4784
4788
  "accent-color": "#193a48",
@@ -4812,8 +4816,8 @@ var DARK_THEME = {
4812
4816
  "mask-color": "#00000021",
4813
4817
  "mobile-mask-color": "#00000059",
4814
4818
  "scrollbar-color": "#727477",
4815
- "box-shadow-1": "0px 1px 1px 0px var(--react-autoql-box-shadow-color)",
4816
- "box-shadow-2": "0px 1px 2px 0px var(--react-autoql-box-shadow-color)"
4819
+ "box-shadow-1": "0px 1px 1px 0px #00000066",
4820
+ "box-shadow-2": "0px 1px 2px 0px #00000066"
4817
4821
  };
4818
4822
 
4819
4823
  // src/theme/configureTheme.ts
@@ -4883,7 +4887,7 @@ var lightenDarkenColor = (col, amt) => {
4883
4887
  const string = "000000" + (g | b << 8 | r << 16).toString(16);
4884
4888
  return (usePound ? "#" : "") + string.substring(string.length - 6);
4885
4889
  };
4886
- var getThemeValue = (property, prefix = "react-autoql") => {
4890
+ var getThemeValue = (property, prefix = DEFAULT_CSS_PREFIX) => {
4887
4891
  return document.documentElement.style.getPropertyValue(`--${prefix}-${property}`);
4888
4892
  };
4889
4893
  var getThemeType = () => {
@@ -4946,7 +4950,7 @@ var setChartColors = (providedChartColors, themeStyles) => {
4946
4950
  themeStyles[`chart-color-dark-${i}`] = darkerColor;
4947
4951
  });
4948
4952
  };
4949
- var configureTheme = (customThemeConfig = {}, prefix = "react-autoql") => {
4953
+ var configureTheme = (customThemeConfig = {}, prefix = DEFAULT_CSS_PREFIX) => {
4950
4954
  const {
4951
4955
  theme,
4952
4956
  textColor,
@@ -5247,6 +5251,26 @@ var aggregateData = ({ data, aggColIndex, columns, numberIndices, dataFormatting
5247
5251
  });
5248
5252
  return aggregatedData;
5249
5253
  };
5254
+ var MAX_CATEGORIES = 10;
5255
+ var aggregateOtherCategory = (sortedData, columnIndexConfig) => {
5256
+ if (!columnIndexConfig) {
5257
+ return sortedData;
5258
+ }
5259
+ const clonedSortedData = (0, import_lodash5.default)(sortedData);
5260
+ const sortedDataWithOther = [];
5261
+ clonedSortedData.forEach((row, i) => {
5262
+ var _a, _b, _c;
5263
+ if (i === MAX_CATEGORIES) {
5264
+ sortedDataWithOther[MAX_CATEGORIES] = row;
5265
+ sortedDataWithOther[MAX_CATEGORIES][columnIndexConfig.stringColumnIndex] = "Other";
5266
+ } else if (i > MAX_CATEGORIES && ((_a = sortedDataWithOther[MAX_CATEGORIES]) == null ? void 0 : _a[columnIndexConfig.numberColumnIndex])) {
5267
+ sortedDataWithOther[MAX_CATEGORIES][columnIndexConfig.numberColumnIndex] += (_c = (_b = sortedData[i]) == null ? void 0 : _b[columnIndexConfig.numberColumnIndex]) != null ? _c : 0;
5268
+ } else {
5269
+ sortedDataWithOther[i] = row;
5270
+ }
5271
+ });
5272
+ return sortedDataWithOther;
5273
+ };
5250
5274
  var generatePivotTableData = ({
5251
5275
  isFirstGeneration = false,
5252
5276
  rows,
@@ -5974,7 +5998,7 @@ var getLegendLabelsForSingleColumn = ({ data, columns, colorScale, columnIndexCo
5974
5998
  label: legendString.trim(),
5975
5999
  color: colorScale == null ? void 0 : colorScale(i),
5976
6000
  hidden: false,
5977
- columnIndex: i,
6001
+ dataIndex: i,
5978
6002
  column
5979
6003
  };
5980
6004
  });
@@ -7169,17 +7193,13 @@ var getLegendScale = (legendLabels) => {
7169
7193
  const colorRange = legendLabels.map((obj) => {
7170
7194
  return obj.color;
7171
7195
  });
7172
- return (0, import_d3_scale.scaleOrdinal)().domain(
7173
- legendLabels.map((obj) => {
7174
- return obj.label;
7175
- })
7176
- ).range(colorRange);
7196
+ return (0, import_d3_scale.scaleOrdinal)().domain(legendLabels.map((obj) => JSON.stringify(obj))).range(colorRange);
7177
7197
  };
7178
7198
  var styleLegendTitleNoBorder = (legendElement, isFirstSection) => {
7179
7199
  (0, import_d3_selection2.select)(legendElement).select(".legendTitle").style("font-weight", "bold").attr("data-test", "legend-title").attr("fill-opacity", 0.9).style("transform", "translateY(-5px)");
7180
7200
  };
7181
- var styleLegendTitleWithBorder = (legendElement) => {
7182
- (0, import_d3_selection2.select)(legendElement).select(".legendTitle").style("font-weight", "bold").attr("data-test", "legend-title").append("tspan").text(" \u25BC").style("font-size", "8px").style("opacity", 0).attr("class", "react-autoql-axis-selector-arrow");
7201
+ var styleLegendTitleWithBorder = (legendElement, cssPrefix = DEFAULT_CSS_PREFIX) => {
7202
+ (0, import_d3_selection2.select)(legendElement).select(".legendTitle").style("font-weight", "bold").attr("data-test", "legend-title").append("tspan").text(" \u25BC").style("font-size", "8px").style("opacity", 0).attr("class", `${cssPrefix}-axis-selector-arrow`);
7183
7203
  var titleBBox = {};
7184
7204
  try {
7185
7205
  titleBBox = (0, import_d3_selection2.select)(legendElement).select(".legendTitle").node().getBBox();
@@ -7233,8 +7253,11 @@ var removeHiddenLegendLabels = ({ legendElement, legendBorder, chartTooltipID })
7233
7253
  };
7234
7254
  var applyStylesForHiddenSeries = ({ legendElement, legendLabels }) => {
7235
7255
  try {
7236
- (0, import_d3_selection2.select)(legendElement).selectAll(".cell").each(function(label) {
7237
- const legendLabel = legendLabels.find((l) => l.label === this["__data__"]);
7256
+ console.log({ legendLabels });
7257
+ (0, import_d3_selection2.select)(legendElement).selectAll(".cell").each(function() {
7258
+ var _a, _b;
7259
+ const cellData = JSON.parse((_b = (_a = (0, import_d3_selection2.select)(this)) == null ? void 0 : _a.data) == null ? void 0 : _b.call(_a));
7260
+ const legendLabel = legendLabels == null ? void 0 : legendLabels.find((l) => l.label === (cellData == null ? void 0 : cellData.label));
7238
7261
  if (legendLabel) {
7239
7262
  (0, import_d3_selection2.select)(this).select(".swatch").attr("stroke", legendLabel.color).attr("stroke-location", "outside");
7240
7263
  if (legendLabel.hidden) {
@@ -7248,7 +7271,7 @@ var applyStylesForHiddenSeries = ({ legendElement, legendLabels }) => {
7248
7271
  console.error(error);
7249
7272
  }
7250
7273
  };
7251
- var getPieChartData = ({ data, numberColumnIndex, legendLabels, chartColors }) => {
7274
+ var getPieChartData = ({ data, numberColumnIndex, legendLabels }) => {
7252
7275
  const pieChart = (0, import_d3_shape.pie)().value((d, i) => {
7253
7276
  return d.value[numberColumnIndex];
7254
7277
  });
@@ -7263,7 +7286,7 @@ var getPieChartData = ({ data, numberColumnIndex, legendLabels, chartColors }) =
7263
7286
  })
7264
7287
  )
7265
7288
  );
7266
- const legendScale = legendLabels ? (0, import_d3_scale.scaleOrdinal)().domain(legendLabels.map((obj) => JSON.stringify(obj))).range(chartColors) : null;
7289
+ const legendScale = getLegendScale(legendLabels);
7267
7290
  return { pieChartFn, legendScale };
7268
7291
  };
7269
7292
  var getDefaultBucketConfig = (data, bucketSize) => {
@@ -7467,12 +7490,7 @@ var getAxis = ({
7467
7490
  return axis;
7468
7491
  };
7469
7492
  var getLabelsBBox = (axisElement) => {
7470
- let labelsBBox = {
7471
- left: null,
7472
- bottom: null,
7473
- right: null,
7474
- top: null
7475
- };
7493
+ let labelsBBox = {};
7476
7494
  if (axisElement) {
7477
7495
  const axisBBox = axisElement.getBBox ? axisElement.getBBox() : void 0;
7478
7496
  const axisBoundingRect = axisElement.getBoundingClientRect ? axisElement.getBoundingClientRect() : void 0;
@@ -7494,12 +7512,7 @@ var getLabelsBBox = (axisElement) => {
7494
7512
  });
7495
7513
  if (labelBboxes) {
7496
7514
  const allLabelsBbox = mergeBoundingClientRects(labelBboxes);
7497
- labelsBBox = {
7498
- left: allLabelsBbox.x,
7499
- top: allLabelsBbox.y,
7500
- right: allLabelsBbox.x + allLabelsBbox.width,
7501
- bottom: allLabelsBbox.y + allLabelsBbox.height
7502
- };
7515
+ labelsBBox = { ...allLabelsBbox };
7503
7516
  }
7504
7517
  }
7505
7518
  return labelsBBox;
@@ -7510,7 +7523,7 @@ var adjustBottomTitleToFit = (titleElement, {
7510
7523
  outerWidth,
7511
7524
  deltaX,
7512
7525
  chartPadding = 0
7513
- } = {}, CSS_PREFIX = "react-autoql") => {
7526
+ } = {}, CSS_PREFIX = DEFAULT_CSS_PREFIX) => {
7514
7527
  var _a, _b, _c;
7515
7528
  if (!titleElement || !labelsBBox || !innerWidth || !outerWidth) {
7516
7529
  console.warn("Unable to adjust bottom title - one of the following were not provided", {
@@ -7561,7 +7574,7 @@ var adjustTopTitleToFit = (titleElement, {
7561
7574
  var adjustVerticalTitleToFit = (titleElement, {
7562
7575
  deltaY,
7563
7576
  chartPadding = 0
7564
- } = {}, CSS_PREFIX = "react-autoql") => {
7577
+ } = {}, CSS_PREFIX = DEFAULT_CSS_PREFIX) => {
7565
7578
  var _a;
7566
7579
  if (deltaY === void 0 || !titleElement) {
7567
7580
  return;
@@ -8523,7 +8536,7 @@ var runDrilldown = ({
8523
8536
  cancelToken
8524
8537
  };
8525
8538
  const url = `${domain}/autoql/api/v1/query/${queryID}/drilldown?key=${apiKey}`;
8526
- return import_axios.default.post(url, requestData, config).then((response) => transformQueryResponse(response, queryID)).catch(formatErrorResponse);
8539
+ return import_axios.default.post(url, requestData, config).then((response) => transformQueryResponse(response, queryID, true)).catch(formatErrorResponse);
8527
8540
  };
8528
8541
  var fetchTopics = ({
8529
8542
  domain,
@@ -10314,6 +10327,7 @@ function color() {
10314
10327
  DAYJS_PRECISION_FORMATS,
10315
10328
  DEFAULT_AGG_TYPE,
10316
10329
  DEFAULT_CHART_CONFIG,
10330
+ DEFAULT_CSS_PREFIX,
10317
10331
  DEFAULT_DATA_PAGE_SIZE,
10318
10332
  DEFAULT_EVALUATION_FREQUENCY,
10319
10333
  DEFAULT_LEGEND_PADDING_BOTTOM,
@@ -10342,6 +10356,7 @@ function color() {
10342
10356
  LEGEND_SHAPE_SIZE,
10343
10357
  LEGEND_TOP_ADJUSTMENT,
10344
10358
  LOAD_MORE_DROPDOWN_PADDING_BOTTOM,
10359
+ MAX_CATEGORIES,
10345
10360
  MAX_DATA_PAGE_SIZE,
10346
10361
  MAX_LEGEND_LABELS,
10347
10362
  MAX_ROWS_FOR_PIE_CHART,
@@ -10378,6 +10393,7 @@ function color() {
10378
10393
  adjustTopTitleToFit,
10379
10394
  adjustVerticalTitleToFit,
10380
10395
  aggregateData,
10396
+ aggregateOtherCategory,
10381
10397
  animateInputText,
10382
10398
  applyLegendTitleStyles,
10383
10399
  applyStylesForHiddenSeries,