autoql-fe-utils 1.0.21 → 1.0.23
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.d.ts +414 -245
- package/dist/index.global.js +599 -187
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +620 -190
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +610 -189
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1035,7 +1035,7 @@ __export(src_exports, {
|
|
|
1035
1035
|
COMPARE_TYPE: () => COMPARE_TYPE,
|
|
1036
1036
|
CONTINUOUS_TYPE: () => CONTINUOUS_TYPE,
|
|
1037
1037
|
CUSTOM_TYPE: () => CUSTOM_TYPE,
|
|
1038
|
-
ColumnObj: () =>
|
|
1038
|
+
ColumnObj: () => Column,
|
|
1039
1039
|
ColumnType: () => ColumnType,
|
|
1040
1040
|
ColumnTypes: () => ColumnTypes,
|
|
1041
1041
|
DATA_ALERT_CONDITION_TYPES: () => DATA_ALERT_CONDITION_TYPES,
|
|
@@ -1055,8 +1055,10 @@ __export(src_exports, {
|
|
|
1055
1055
|
DEFAULT_LEGEND_PADDING_TOP: () => DEFAULT_LEGEND_PADDING_TOP,
|
|
1056
1056
|
DEFAULT_MAX_LEGEND_WIDTH: () => DEFAULT_MAX_LEGEND_WIDTH,
|
|
1057
1057
|
DEFAULT_SOURCE: () => DEFAULT_SOURCE,
|
|
1058
|
+
DISPLAY_TYPES: () => DISPLAY_TYPES,
|
|
1058
1059
|
DOUBLE_AXIS_CHART_TYPES: () => DOUBLE_AXIS_CHART_TYPES,
|
|
1059
1060
|
DOW_STYLES: () => DOW_STYLES,
|
|
1061
|
+
DataExplorerSubject: () => DataExplorerSubject,
|
|
1060
1062
|
DataExplorerTypes: () => DataExplorerTypes,
|
|
1061
1063
|
DateUTC: () => DateUTC,
|
|
1062
1064
|
DisplayTypes: () => DisplayTypes,
|
|
@@ -1085,7 +1087,6 @@ __export(src_exports, {
|
|
|
1085
1087
|
NUMBER_TERM_TYPE: () => NUMBER_TERM_TYPE,
|
|
1086
1088
|
PATH_SMOOTHING: () => PATH_SMOOTHING,
|
|
1087
1089
|
PERIODIC_TYPE: () => PERIODIC_TYPE,
|
|
1088
|
-
PRECISION_TYPES: () => PRECISION_TYPES,
|
|
1089
1090
|
PROJECT_TYPE: () => PROJECT_TYPE,
|
|
1090
1091
|
PrecisionTypes: () => PrecisionTypes,
|
|
1091
1092
|
QUERY_TERM_TYPE: () => QUERY_TERM_TYPE,
|
|
@@ -1095,6 +1096,7 @@ __export(src_exports, {
|
|
|
1095
1096
|
SCHEDULE_FREQUENCY_OPTIONS: () => SCHEDULE_FREQUENCY_OPTIONS,
|
|
1096
1097
|
SCHEDULE_INTERVAL_OPTIONS: () => SCHEDULE_INTERVAL_OPTIONS,
|
|
1097
1098
|
SEASON_NAMES: () => SEASON_NAMES,
|
|
1099
|
+
SampleQueryReplacementTypes: () => SampleQueryReplacementTypes,
|
|
1098
1100
|
TABLE_TYPES: () => TABLE_TYPES,
|
|
1099
1101
|
TITLE_FONT_SIZE: () => TITLE_FONT_SIZE,
|
|
1100
1102
|
ThemeType: () => ThemeType,
|
|
@@ -1134,6 +1136,7 @@ __export(src_exports, {
|
|
|
1134
1136
|
dataStructureChanged: () => dataStructureChanged,
|
|
1135
1137
|
dateSortFn: () => dateSortFn,
|
|
1136
1138
|
dateStringSortFn: () => dateStringSortFn,
|
|
1139
|
+
dayjs: () => dayjsWithPlugins_default,
|
|
1137
1140
|
deepEqual: () => deepEqual,
|
|
1138
1141
|
deleteDataAlert: () => deleteDataAlert,
|
|
1139
1142
|
deleteNotification: () => deleteNotification,
|
|
@@ -1147,6 +1150,7 @@ __export(src_exports, {
|
|
|
1147
1150
|
fetchDataAlerts: () => fetchDataAlerts,
|
|
1148
1151
|
fetchDataExplorerAutocomplete: () => fetchDataExplorerAutocomplete,
|
|
1149
1152
|
fetchDataExplorerSuggestions: () => fetchDataExplorerSuggestions,
|
|
1153
|
+
fetchDataExplorerSuggestionsV2: () => fetchDataExplorerSuggestionsV2,
|
|
1150
1154
|
fetchDataPreview: () => fetchDataPreview,
|
|
1151
1155
|
fetchExploreQueries: () => fetchExploreQueries,
|
|
1152
1156
|
fetchFilters: () => fetchFilters,
|
|
@@ -1272,6 +1276,8 @@ __export(src_exports, {
|
|
|
1272
1276
|
getRangeForAxis: () => getRangeForAxis,
|
|
1273
1277
|
getRowNumberListForPopover: () => getRowNumberListForPopover,
|
|
1274
1278
|
getSVGBase64: () => getSVGBase64,
|
|
1279
|
+
getSampleQueryRegex: () => getSampleQueryRegex,
|
|
1280
|
+
getSampleQueryText: () => getSampleQueryText,
|
|
1275
1281
|
getScheduleFrequencyObject: () => getScheduleFrequencyObject,
|
|
1276
1282
|
getStartAndEndDateFromDateStrs: () => getStartAndEndDateFromDateStrs,
|
|
1277
1283
|
getStringColumnIndices: () => getStringColumnIndices,
|
|
@@ -1287,6 +1293,7 @@ __export(src_exports, {
|
|
|
1287
1293
|
getTimeRangeFromDateArray: () => getTimeRangeFromDateArray,
|
|
1288
1294
|
getTimeRangeFromRT: () => getTimeRangeFromRT,
|
|
1289
1295
|
getTimeScale: () => getTimeScale,
|
|
1296
|
+
getTitleCase: () => getTitleCase,
|
|
1290
1297
|
getTooltipContent: () => getTooltipContent,
|
|
1291
1298
|
getTotalBottomPadding: () => getTotalBottomPadding,
|
|
1292
1299
|
getTotalHorizontalPadding: () => getTotalHorizontalPadding,
|
|
@@ -1342,6 +1349,7 @@ __export(src_exports, {
|
|
|
1342
1349
|
onTableCellClick: () => onTableCellClick,
|
|
1343
1350
|
onlySeriesVisibilityChanged: () => onlySeriesVisibilityChanged,
|
|
1344
1351
|
onlyUnique: () => onlyUnique,
|
|
1352
|
+
parseJwt: () => parseJwt,
|
|
1345
1353
|
potentiallySupportsDatePivot: () => potentiallySupportsDatePivot,
|
|
1346
1354
|
potentiallySupportsPivot: () => potentiallySupportsPivot,
|
|
1347
1355
|
removeElementAtIndex: () => removeElementAtIndex,
|
|
@@ -1392,24 +1400,11 @@ __export(src_exports, {
|
|
|
1392
1400
|
updateDataAlert: () => updateDataAlert,
|
|
1393
1401
|
updateDataAlertStatus: () => updateDataAlertStatus,
|
|
1394
1402
|
usePivotDataForChart: () => usePivotDataForChart,
|
|
1403
|
+
uuidv4: () => uuidv4,
|
|
1395
1404
|
validateExpression: () => validateExpression
|
|
1396
1405
|
});
|
|
1397
1406
|
module.exports = __toCommonJS(src_exports);
|
|
1398
1407
|
|
|
1399
|
-
// src/HelperFns/stringHelpers.ts
|
|
1400
|
-
var capitalizeFirstChar = (string) => {
|
|
1401
|
-
let capitalized = string;
|
|
1402
|
-
try {
|
|
1403
|
-
capitalized = string.charAt(0).toUpperCase() + string.slice(1);
|
|
1404
|
-
} catch (error) {
|
|
1405
|
-
console.error(error);
|
|
1406
|
-
}
|
|
1407
|
-
return capitalized;
|
|
1408
|
-
};
|
|
1409
|
-
var isNumber = (str) => {
|
|
1410
|
-
return /^\d+$/.test(str);
|
|
1411
|
-
};
|
|
1412
|
-
|
|
1413
1408
|
// src/dayjsWithPlugins.ts
|
|
1414
1409
|
var import_dayjs = __toESM(require("dayjs"));
|
|
1415
1410
|
var import_advancedFormat = __toESM(require("dayjs/plugin/advancedFormat.js"));
|
|
@@ -1448,6 +1443,26 @@ import_dayjs.default.extend(import_customParseFormat.default);
|
|
|
1448
1443
|
})();
|
|
1449
1444
|
var dayjsWithPlugins_default = import_dayjs.default;
|
|
1450
1445
|
|
|
1446
|
+
// src/HelperFns/stringHelpers.ts
|
|
1447
|
+
var capitalizeFirstChar = (string) => {
|
|
1448
|
+
let capitalized = string;
|
|
1449
|
+
try {
|
|
1450
|
+
capitalized = string.charAt(0).toUpperCase() + string.slice(1);
|
|
1451
|
+
} catch (error) {
|
|
1452
|
+
console.error(error);
|
|
1453
|
+
}
|
|
1454
|
+
return capitalized;
|
|
1455
|
+
};
|
|
1456
|
+
var isNumber = (str) => {
|
|
1457
|
+
return /^\d+$/.test(str);
|
|
1458
|
+
};
|
|
1459
|
+
var getTitleCase = (str) => {
|
|
1460
|
+
if ((str == null ? void 0 : str.length) < 2) {
|
|
1461
|
+
return str;
|
|
1462
|
+
}
|
|
1463
|
+
return str[0].toUpperCase() + str.substring(1);
|
|
1464
|
+
};
|
|
1465
|
+
|
|
1451
1466
|
// src/HelperFns/columnHelpers.ts
|
|
1452
1467
|
var import_uuid = require("uuid");
|
|
1453
1468
|
var import_lodash2 = __toESM(require("lodash.clonedeep"));
|
|
@@ -1488,11 +1503,19 @@ var ColumnTypes = /* @__PURE__ */ ((ColumnTypes2) => {
|
|
|
1488
1503
|
ColumnTypes2["DATE_STRING"] = "DATE_STRING";
|
|
1489
1504
|
return ColumnTypes2;
|
|
1490
1505
|
})(ColumnTypes || {});
|
|
1491
|
-
var DataExplorerTypes = /* @__PURE__ */ ((
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1506
|
+
var DataExplorerTypes = /* @__PURE__ */ ((DataExplorerTypes3) => {
|
|
1507
|
+
DataExplorerTypes3["SUBJECT_TYPE"] = "SUBJECT";
|
|
1508
|
+
DataExplorerTypes3["VL_TYPE"] = "VL";
|
|
1509
|
+
DataExplorerTypes3["TEXT_TYPE"] = "TEXT";
|
|
1510
|
+
return DataExplorerTypes3;
|
|
1495
1511
|
})(DataExplorerTypes || {});
|
|
1512
|
+
var SampleQueryReplacementTypes = /* @__PURE__ */ ((SampleQueryReplacementTypes2) => {
|
|
1513
|
+
SampleQueryReplacementTypes2["SAMPLE_QUERY_TEXT_TYPE"] = "TEXT";
|
|
1514
|
+
SampleQueryReplacementTypes2["SAMPLE_QUERY_VL_TYPE"] = "VL";
|
|
1515
|
+
SampleQueryReplacementTypes2["SAMPLE_QUERY_TIME_TYPE"] = "DUCKLING_TIME";
|
|
1516
|
+
SampleQueryReplacementTypes2["SAMPLE_QUERY_AMOUNT_TYPE"] = "DUCKLING_AMOUNT";
|
|
1517
|
+
return SampleQueryReplacementTypes2;
|
|
1518
|
+
})(SampleQueryReplacementTypes || {});
|
|
1496
1519
|
var DisplayTypes = /* @__PURE__ */ ((DisplayTypes2) => {
|
|
1497
1520
|
DisplayTypes2["TABLE"] = "table";
|
|
1498
1521
|
DisplayTypes2["PIVOT_TABLE"] = "pivot_table";
|
|
@@ -1511,7 +1534,48 @@ var DisplayTypes = /* @__PURE__ */ ((DisplayTypes2) => {
|
|
|
1511
1534
|
return DisplayTypes2;
|
|
1512
1535
|
})(DisplayTypes || {});
|
|
1513
1536
|
|
|
1514
|
-
// src/
|
|
1537
|
+
// src/Classes/ColumnType.ts
|
|
1538
|
+
var ColumnType = class {
|
|
1539
|
+
constructor({
|
|
1540
|
+
type,
|
|
1541
|
+
description,
|
|
1542
|
+
continuous,
|
|
1543
|
+
ordinal,
|
|
1544
|
+
aggOptions,
|
|
1545
|
+
aggregable,
|
|
1546
|
+
isNumber: isNumber2,
|
|
1547
|
+
icon,
|
|
1548
|
+
unit
|
|
1549
|
+
}) {
|
|
1550
|
+
var _a, _b;
|
|
1551
|
+
this.type = (_a = type != null ? type : description) != null ? _a : "";
|
|
1552
|
+
this.description = (_b = description != null ? description : type) != null ? _b : "";
|
|
1553
|
+
this.continuous = !!continuous;
|
|
1554
|
+
this.ordinal = !!ordinal;
|
|
1555
|
+
this.aggOptions = aggOptions != null ? aggOptions : aggregable ? Object.values(AggTypes) : [];
|
|
1556
|
+
this.aggregable = !!this.aggOptions.length;
|
|
1557
|
+
this.isNumber = !!isNumber2;
|
|
1558
|
+
this.icon = icon;
|
|
1559
|
+
this.unit = this.isNumber ? unit != null ? unit : "none" : void 0;
|
|
1560
|
+
}
|
|
1561
|
+
};
|
|
1562
|
+
|
|
1563
|
+
// src/Classes/Column.ts
|
|
1564
|
+
var { DOLLAR_AMT, QUANTITY, PERCENT, RATIO, STRING, DATE, DATE_STRING } = ColumnTypes;
|
|
1565
|
+
var Column = class {
|
|
1566
|
+
constructor(options) {
|
|
1567
|
+
Object.assign(this, options);
|
|
1568
|
+
this.isNumberType = [DOLLAR_AMT, QUANTITY, PERCENT, RATIO].includes(this.type);
|
|
1569
|
+
this.isStringType = [STRING, DATE, DATE_STRING].includes(this.type);
|
|
1570
|
+
this.isDateType = [STRING, DATE].includes(this.type);
|
|
1571
|
+
this.title = this.display_name;
|
|
1572
|
+
if (this.drilldownGroupby) {
|
|
1573
|
+
this.title = `${this.title} <em>(Clicked: "${this.drilldownGroupby.value}")</em>`;
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1576
|
+
};
|
|
1577
|
+
|
|
1578
|
+
// src/Classes/AggType.ts
|
|
1515
1579
|
var AggType = class {
|
|
1516
1580
|
constructor({ type, displayName, tooltip, unit, supportsStrings = false, symbol: symbol2, fn = () => {
|
|
1517
1581
|
} }) {
|
|
@@ -1525,35 +1589,73 @@ var AggType = class {
|
|
|
1525
1589
|
}
|
|
1526
1590
|
};
|
|
1527
1591
|
|
|
1592
|
+
// src/Classes/DataExplorerSubject.ts
|
|
1593
|
+
function isSubject(obj) {
|
|
1594
|
+
return obj.query !== void 0;
|
|
1595
|
+
}
|
|
1596
|
+
function isValueLabel(obj) {
|
|
1597
|
+
return obj.canonical !== void 0;
|
|
1598
|
+
}
|
|
1599
|
+
function isPlainText(obj) {
|
|
1600
|
+
return obj.type === "TEXT" /* TEXT_TYPE */;
|
|
1601
|
+
}
|
|
1602
|
+
var DataExplorerSubject = class {
|
|
1603
|
+
constructor(obj) {
|
|
1604
|
+
if (isSubject(obj)) {
|
|
1605
|
+
const { display_name, name, query } = obj;
|
|
1606
|
+
this.id = name;
|
|
1607
|
+
this.type = "SUBJECT" /* SUBJECT_TYPE */;
|
|
1608
|
+
this.query = query;
|
|
1609
|
+
this.formattedType = "Topic";
|
|
1610
|
+
this.displayName = display_name;
|
|
1611
|
+
this.context = name;
|
|
1612
|
+
} else if (isValueLabel(obj)) {
|
|
1613
|
+
const { canonical, keyword, show_message, format_txt } = obj;
|
|
1614
|
+
this.id = canonical;
|
|
1615
|
+
this.type = "VL" /* VL_TYPE */;
|
|
1616
|
+
this.displayName = format_txt != null ? format_txt : keyword;
|
|
1617
|
+
this.formattedType = show_message;
|
|
1618
|
+
this.valueLabel = obj;
|
|
1619
|
+
} else if (isPlainText(obj)) {
|
|
1620
|
+
const { displayName, type } = obj;
|
|
1621
|
+
this.id = displayName;
|
|
1622
|
+
this.type = type;
|
|
1623
|
+
this.text = displayName;
|
|
1624
|
+
this.displayName = displayName;
|
|
1625
|
+
}
|
|
1626
|
+
this.isSubject = () => isSubject(obj);
|
|
1627
|
+
this.isValueLabel = () => isValueLabel(obj);
|
|
1628
|
+
this.isPlainText = () => isPlainText(obj);
|
|
1629
|
+
}
|
|
1630
|
+
};
|
|
1631
|
+
|
|
1528
1632
|
// src/Constants/visualizationConstants.ts
|
|
1529
|
-
var TABLE_TYPES = [
|
|
1530
|
-
"pivot_table",
|
|
1531
|
-
"pivot_column",
|
|
1532
|
-
"date_pivot",
|
|
1533
|
-
"table",
|
|
1534
|
-
"compare_table",
|
|
1535
|
-
"compare_table_budget"
|
|
1536
|
-
];
|
|
1633
|
+
var TABLE_TYPES = ["pivot_table" /* PIVOT_TABLE */, "table" /* TABLE */];
|
|
1537
1634
|
var CHART_TYPES = [
|
|
1538
|
-
"bar"
|
|
1539
|
-
"bubble"
|
|
1540
|
-
"
|
|
1541
|
-
"
|
|
1542
|
-
"
|
|
1543
|
-
"
|
|
1544
|
-
"
|
|
1545
|
-
"
|
|
1546
|
-
"
|
|
1547
|
-
"
|
|
1548
|
-
"
|
|
1549
|
-
"
|
|
1550
|
-
|
|
1635
|
+
"bar" /* BAR */,
|
|
1636
|
+
"bubble" /* BUBBLE */,
|
|
1637
|
+
"column" /* COLUMN */,
|
|
1638
|
+
"heatmap" /* HEATMAP */,
|
|
1639
|
+
"line" /* LINE */,
|
|
1640
|
+
"pie" /* PIE */,
|
|
1641
|
+
"stacked_bar" /* STACKED_BAR */,
|
|
1642
|
+
"stacked_column" /* STACKED_COLUMN */,
|
|
1643
|
+
"stacked_line" /* STACKED_LINE */,
|
|
1644
|
+
"column_line" /* COLUMN_LINE */,
|
|
1645
|
+
"histogram" /* HISTOGRAM */,
|
|
1646
|
+
"scatterplot" /* SCATTERPLOT */
|
|
1647
|
+
];
|
|
1648
|
+
var CHARTS_WITHOUT_LEGENDS = [
|
|
1649
|
+
"pie" /* PIE */,
|
|
1650
|
+
"heatmap" /* HEATMAP */,
|
|
1651
|
+
"bubble" /* BUBBLE */,
|
|
1652
|
+
"scatterplot" /* SCATTERPLOT */,
|
|
1653
|
+
"histogram" /* HISTOGRAM */
|
|
1551
1654
|
];
|
|
1552
|
-
var
|
|
1553
|
-
var
|
|
1554
|
-
var
|
|
1555
|
-
var
|
|
1556
|
-
var CHARTS_WITHOUT_AXES = ["pie"];
|
|
1655
|
+
var CHARTS_WITHOUT_AGGREGATED_DATA = ["histogram" /* HISTOGRAM */, "scatterplot" /* SCATTERPLOT */];
|
|
1656
|
+
var DATE_ONLY_CHART_TYPES = ["line" /* LINE */, "stacked_line" /* STACKED_LINE */];
|
|
1657
|
+
var DOUBLE_AXIS_CHART_TYPES = ["column_line" /* COLUMN_LINE */];
|
|
1658
|
+
var CHARTS_WITHOUT_AXES = ["pie" /* PIE */];
|
|
1557
1659
|
var DEFAULT_CHART_CONFIG = {
|
|
1558
1660
|
isScaled: false
|
|
1559
1661
|
};
|
|
@@ -1584,17 +1686,6 @@ var DAYJS_PRECISION_FORMATS = {
|
|
|
1584
1686
|
DATE_HOUR: "ll h:00A",
|
|
1585
1687
|
DATE_MINUTE: "ll h:mmA"
|
|
1586
1688
|
};
|
|
1587
|
-
var PRECISION_TYPES = {
|
|
1588
|
-
DAY: "DAY",
|
|
1589
|
-
MONTH: "MONTH",
|
|
1590
|
-
YEAR: "YEAR",
|
|
1591
|
-
WEEK: "WEEK",
|
|
1592
|
-
QUARTER: "QUARTER",
|
|
1593
|
-
DATE_HOUR: "DATE_HOUR",
|
|
1594
|
-
DATE_MINUTE: "DATE_MINUTE",
|
|
1595
|
-
HOUR: "HOUR",
|
|
1596
|
-
MINUTE: "MINUTE"
|
|
1597
|
-
};
|
|
1598
1689
|
var MAX_LEGEND_LABELS = 22;
|
|
1599
1690
|
var MIN_HISTOGRAM_SAMPLE = 20;
|
|
1600
1691
|
var DEFAULT_AGG_TYPE = "SUM" /* SUM */;
|
|
@@ -1664,6 +1755,124 @@ var AGG_TYPES = {
|
|
|
1664
1755
|
// tooltip: 'The variance will be shown for all data points with the same label.',
|
|
1665
1756
|
// }),
|
|
1666
1757
|
};
|
|
1758
|
+
var DISPLAY_TYPES = {
|
|
1759
|
+
TABLE: {
|
|
1760
|
+
type: "table" /* TABLE */,
|
|
1761
|
+
isTableType: true
|
|
1762
|
+
},
|
|
1763
|
+
PIVOT_TABLE: {
|
|
1764
|
+
type: "pivot_table" /* PIVOT_TABLE */,
|
|
1765
|
+
isTableType: true
|
|
1766
|
+
},
|
|
1767
|
+
BAR: {
|
|
1768
|
+
type: "bar" /* BAR */,
|
|
1769
|
+
isChartType: true,
|
|
1770
|
+
allowLegend: true,
|
|
1771
|
+
allowAgg: true,
|
|
1772
|
+
hasAxes: true,
|
|
1773
|
+
datesOnly: false,
|
|
1774
|
+
multiAxis: false
|
|
1775
|
+
},
|
|
1776
|
+
COLUMN: {
|
|
1777
|
+
type: "column" /* COLUMN */,
|
|
1778
|
+
isChartType: true,
|
|
1779
|
+
allowLegend: true,
|
|
1780
|
+
allowAgg: true,
|
|
1781
|
+
hasAxes: true,
|
|
1782
|
+
datesOnly: false,
|
|
1783
|
+
multiAxis: false
|
|
1784
|
+
},
|
|
1785
|
+
LINE: {
|
|
1786
|
+
type: "line" /* LINE */,
|
|
1787
|
+
isChartType: true,
|
|
1788
|
+
allowLegend: true,
|
|
1789
|
+
allowAgg: true,
|
|
1790
|
+
hasAxes: true,
|
|
1791
|
+
datesOnly: true,
|
|
1792
|
+
multiAxis: false
|
|
1793
|
+
},
|
|
1794
|
+
STACKED_COLUMN: {
|
|
1795
|
+
type: "stacked_column" /* STACKED_COLUMN */,
|
|
1796
|
+
isChartType: true,
|
|
1797
|
+
allowLegend: true,
|
|
1798
|
+
allowAgg: true,
|
|
1799
|
+
hasAxes: true,
|
|
1800
|
+
dateOnly: false,
|
|
1801
|
+
multiAxis: false
|
|
1802
|
+
},
|
|
1803
|
+
STACKED_BAR: {
|
|
1804
|
+
type: "stacked_bar" /* STACKED_BAR */,
|
|
1805
|
+
isChartType: true,
|
|
1806
|
+
allowLegend: true,
|
|
1807
|
+
allowAgg: true,
|
|
1808
|
+
hasAxes: true,
|
|
1809
|
+
dateOnly: false,
|
|
1810
|
+
multiAxis: false
|
|
1811
|
+
},
|
|
1812
|
+
STACKED_LINE: {
|
|
1813
|
+
type: "stacked_line" /* STACKED_LINE */,
|
|
1814
|
+
isChartType: true,
|
|
1815
|
+
allowLegend: true,
|
|
1816
|
+
allowAgg: true,
|
|
1817
|
+
hasAxes: true,
|
|
1818
|
+
dateOnly: false,
|
|
1819
|
+
multiAxis: false
|
|
1820
|
+
},
|
|
1821
|
+
BUBBLE: {
|
|
1822
|
+
type: "bubble" /* BUBBLE */,
|
|
1823
|
+
isChartType: true,
|
|
1824
|
+
allowLegend: false,
|
|
1825
|
+
allowAgg: true,
|
|
1826
|
+
hasAxes: true,
|
|
1827
|
+
dateOnly: false,
|
|
1828
|
+
multiAxis: false
|
|
1829
|
+
},
|
|
1830
|
+
HEATMAP: {
|
|
1831
|
+
type: "heatmap" /* HEATMAP */,
|
|
1832
|
+
isChartType: true,
|
|
1833
|
+
allowLegend: false,
|
|
1834
|
+
allowAgg: true,
|
|
1835
|
+
hasAxes: true,
|
|
1836
|
+
dateOnly: false,
|
|
1837
|
+
multiAxis: false
|
|
1838
|
+
},
|
|
1839
|
+
PIE: {
|
|
1840
|
+
type: "pie" /* PIE */,
|
|
1841
|
+
isChartType: true,
|
|
1842
|
+
allowLegend: false,
|
|
1843
|
+
allowAgg: true,
|
|
1844
|
+
hasAxes: false,
|
|
1845
|
+
dateOnly: false,
|
|
1846
|
+
multiAxis: false
|
|
1847
|
+
},
|
|
1848
|
+
HISTOGRAM: {
|
|
1849
|
+
type: "histogram" /* HISTOGRAM */,
|
|
1850
|
+
isChartType: true,
|
|
1851
|
+
allowLegend: false,
|
|
1852
|
+
allowAgg: false,
|
|
1853
|
+
hasAxes: true,
|
|
1854
|
+
dateOnly: false,
|
|
1855
|
+
multiAxis: false
|
|
1856
|
+
},
|
|
1857
|
+
SCATTERPLOT: {
|
|
1858
|
+
type: "scatterplot" /* SCATTERPLOT */,
|
|
1859
|
+
isChartType: true,
|
|
1860
|
+
allowLegend: false,
|
|
1861
|
+
allowAgg: false,
|
|
1862
|
+
hasAxes: true,
|
|
1863
|
+
dateOnly: false,
|
|
1864
|
+
multiAxis: false
|
|
1865
|
+
},
|
|
1866
|
+
COLUMN_LINE: {
|
|
1867
|
+
type: "column_line" /* COLUMN_LINE */,
|
|
1868
|
+
isChartType: true,
|
|
1869
|
+
allowLegend: true,
|
|
1870
|
+
allowAgg: true,
|
|
1871
|
+
hasAxes: true,
|
|
1872
|
+
dateOnly: false,
|
|
1873
|
+
multiAxis: true
|
|
1874
|
+
}
|
|
1875
|
+
};
|
|
1667
1876
|
|
|
1668
1877
|
// src/HelperFns/arrayHelpers.ts
|
|
1669
1878
|
var import_lodash = __toESM(require("lodash.isequal"));
|
|
@@ -2463,47 +2672,6 @@ var EVALUATION_FREQUENCY_OPTIONS = {
|
|
|
2463
2672
|
}
|
|
2464
2673
|
};
|
|
2465
2674
|
|
|
2466
|
-
// src/Classes/ColumnType.ts
|
|
2467
|
-
var ColumnType = class {
|
|
2468
|
-
constructor({
|
|
2469
|
-
type,
|
|
2470
|
-
description,
|
|
2471
|
-
continuous,
|
|
2472
|
-
ordinal,
|
|
2473
|
-
aggOptions,
|
|
2474
|
-
aggregable,
|
|
2475
|
-
isNumber: isNumber2,
|
|
2476
|
-
icon,
|
|
2477
|
-
unit
|
|
2478
|
-
}) {
|
|
2479
|
-
var _a, _b;
|
|
2480
|
-
this.type = (_a = type != null ? type : description) != null ? _a : "";
|
|
2481
|
-
this.description = (_b = description != null ? description : type) != null ? _b : "";
|
|
2482
|
-
this.continuous = !!continuous;
|
|
2483
|
-
this.ordinal = !!ordinal;
|
|
2484
|
-
this.aggOptions = aggOptions != null ? aggOptions : aggregable ? Object.values(AggTypes) : [];
|
|
2485
|
-
this.aggregable = !!this.aggOptions.length;
|
|
2486
|
-
this.isNumber = !!isNumber2;
|
|
2487
|
-
this.icon = icon;
|
|
2488
|
-
this.unit = this.isNumber ? unit != null ? unit : "none" : void 0;
|
|
2489
|
-
}
|
|
2490
|
-
};
|
|
2491
|
-
|
|
2492
|
-
// src/Classes/Column.ts
|
|
2493
|
-
var { DOLLAR_AMT, QUANTITY, PERCENT, RATIO, STRING, DATE, DATE_STRING } = ColumnTypes;
|
|
2494
|
-
var Column2 = class {
|
|
2495
|
-
constructor(options) {
|
|
2496
|
-
Object.assign(this, options);
|
|
2497
|
-
this.isNumberType = [DOLLAR_AMT, QUANTITY, PERCENT, RATIO].includes(this.type);
|
|
2498
|
-
this.isStringType = [STRING, DATE, DATE_STRING].includes(this.type);
|
|
2499
|
-
this.isDateType = [STRING, DATE].includes(this.type);
|
|
2500
|
-
this.title = this.display_name;
|
|
2501
|
-
if (this.drilldownGroupby) {
|
|
2502
|
-
this.title = `${this.title} <em>(Clicked: "${this.drilldownGroupby.value}")</em>`;
|
|
2503
|
-
}
|
|
2504
|
-
}
|
|
2505
|
-
};
|
|
2506
|
-
|
|
2507
2675
|
// src/Constants/columnConstants.ts
|
|
2508
2676
|
var COLUMN_TYPES = {
|
|
2509
2677
|
DOLLAR_AMT: new ColumnType({
|
|
@@ -3507,7 +3675,7 @@ var isColumnIndexConfigValid = ({ response, columnIndexConfig, columns, displayT
|
|
|
3507
3675
|
console.debug("Table config invalid: Some of the string columns were hidden.");
|
|
3508
3676
|
return false;
|
|
3509
3677
|
}
|
|
3510
|
-
if (displayType === "column_line" || displayType === "scatterplot") {
|
|
3678
|
+
if (displayType === "column_line" /* COLUMN_LINE */ || displayType === "scatterplot" /* SCATTERPLOT */) {
|
|
3511
3679
|
if (!isColumnIndexValid(columnIndexConfig.numberColumnIndex, columns) || !isColumnIndexValid(columnIndexConfig.numberColumnIndex2, columns) || columnIndexConfig.numberColumnIndex === columnIndexConfig.numberColumnIndex2) {
|
|
3512
3680
|
console.debug(
|
|
3513
3681
|
`Two unique number column indices were not found. This is required for display type: ${displayType}`,
|
|
@@ -4164,13 +4332,23 @@ var formatChartLabel = ({
|
|
|
4164
4332
|
formattedLabel = formatDateStringType(d, col, config);
|
|
4165
4333
|
break;
|
|
4166
4334
|
}
|
|
4335
|
+
case "RATIO" /* RATIO */: {
|
|
4336
|
+
const dNumber = parseFloat(`${d}`);
|
|
4337
|
+
if (!isNaN(dNumber)) {
|
|
4338
|
+
formattedLabel = new Intl.NumberFormat(languageCode, {
|
|
4339
|
+
minimumFractionDigits,
|
|
4340
|
+
maximumFractionDigits
|
|
4341
|
+
}).format(dNumber);
|
|
4342
|
+
}
|
|
4343
|
+
break;
|
|
4344
|
+
}
|
|
4167
4345
|
case "PERCENT" /* PERCENT */: {
|
|
4168
4346
|
if (Number(d) || Number(d) === 0) {
|
|
4169
4347
|
const p = Number(d) / 100;
|
|
4170
4348
|
formattedLabel = new Intl.NumberFormat(languageCode, {
|
|
4171
4349
|
style: "percent",
|
|
4172
|
-
minimumFractionDigits
|
|
4173
|
-
maximumFractionDigits
|
|
4350
|
+
minimumFractionDigits,
|
|
4351
|
+
maximumFractionDigits
|
|
4174
4352
|
}).format(p);
|
|
4175
4353
|
}
|
|
4176
4354
|
break;
|
|
@@ -4528,6 +4706,7 @@ var LIGHT_THEME = {
|
|
|
4528
4706
|
"table-border-color": "#EFEFEF",
|
|
4529
4707
|
"hover-color": "#F6F7F9",
|
|
4530
4708
|
"text-color-primary": "#343434",
|
|
4709
|
+
"text-color-secondary": "#8b8b8b",
|
|
4531
4710
|
"text-color-accent": "#FFFFFF",
|
|
4532
4711
|
"text-color-placeholder": "#0000004D",
|
|
4533
4712
|
"dashboard-title-color": "#28A8E0",
|
|
@@ -4562,6 +4741,7 @@ var DARK_THEME = {
|
|
|
4562
4741
|
"border-color": "#53565c",
|
|
4563
4742
|
"hover-color": "#4a4f56",
|
|
4564
4743
|
"text-color-primary": "#ececec",
|
|
4744
|
+
"text-color-secondary": "#bababa",
|
|
4565
4745
|
"text-color-accent": "#ffffff",
|
|
4566
4746
|
"text-color-placeholder": "#ffffff6e",
|
|
4567
4747
|
"dashboard-title-color": "#193a48",
|
|
@@ -4594,6 +4774,7 @@ var defaultThemeConfig = {
|
|
|
4594
4774
|
accentColor: "#26A7E9",
|
|
4595
4775
|
fontFamily: "sans-serif",
|
|
4596
4776
|
textColor: void 0,
|
|
4777
|
+
textColorSecondary: void 0,
|
|
4597
4778
|
accentTextColor: void 0,
|
|
4598
4779
|
dashboardTitleColor: void 0,
|
|
4599
4780
|
backgroundColorPrimary: void 0,
|
|
@@ -4605,7 +4786,7 @@ var getThemeConfig = (customThemeConfig = {}) => {
|
|
|
4605
4786
|
...customThemeConfig
|
|
4606
4787
|
};
|
|
4607
4788
|
};
|
|
4608
|
-
var
|
|
4789
|
+
var getRBGFromHex = (hex) => {
|
|
4609
4790
|
let color2 = hex;
|
|
4610
4791
|
if (color2.slice(0, 1) === "#") {
|
|
4611
4792
|
color2 = color2.slice(1);
|
|
@@ -4616,6 +4797,10 @@ var getYIQFromHex = (hex) => {
|
|
|
4616
4797
|
const r = parseInt(color2.substr(0, 2), 16);
|
|
4617
4798
|
const g = parseInt(color2.substr(2, 2), 16);
|
|
4618
4799
|
const b = parseInt(color2.substr(4, 2), 16);
|
|
4800
|
+
return { r, g, b };
|
|
4801
|
+
};
|
|
4802
|
+
var getYIQFromHex = (hex) => {
|
|
4803
|
+
const { r, g, b } = getRBGFromHex(hex);
|
|
4619
4804
|
const yiq = (r * 299 + g * 587 + b * 114) / 1e3;
|
|
4620
4805
|
return yiq;
|
|
4621
4806
|
};
|
|
@@ -4703,11 +4888,11 @@ var setChartColors = (providedChartColors, themeStyles) => {
|
|
|
4703
4888
|
}
|
|
4704
4889
|
chartColors.forEach((color2, i) => {
|
|
4705
4890
|
themeStyles[`chart-color-${i}`] = color2;
|
|
4706
|
-
const darkerColor = lightenDarkenColor(color2, -
|
|
4891
|
+
const darkerColor = lightenDarkenColor(color2, -50);
|
|
4707
4892
|
themeStyles[`chart-color-dark-${i}`] = darkerColor;
|
|
4708
4893
|
});
|
|
4709
4894
|
};
|
|
4710
|
-
var configureTheme = (customThemeConfig = {}) => {
|
|
4895
|
+
var configureTheme = (customThemeConfig = {}, prefix = "react-autoql") => {
|
|
4711
4896
|
const {
|
|
4712
4897
|
theme,
|
|
4713
4898
|
textColor,
|
|
@@ -4715,6 +4900,7 @@ var configureTheme = (customThemeConfig = {}) => {
|
|
|
4715
4900
|
chartColors,
|
|
4716
4901
|
accentColor,
|
|
4717
4902
|
accentTextColor,
|
|
4903
|
+
textColorSecondary,
|
|
4718
4904
|
dashboardTitleColor,
|
|
4719
4905
|
backgroundColorPrimary,
|
|
4720
4906
|
backgroundColorSecondary
|
|
@@ -4723,6 +4909,9 @@ var configureTheme = (customThemeConfig = {}) => {
|
|
|
4723
4909
|
if (textColor) {
|
|
4724
4910
|
themeStyles["text-color-primary"] = textColor;
|
|
4725
4911
|
}
|
|
4912
|
+
if (textColorSecondary) {
|
|
4913
|
+
themeStyles["text-color-secondary"] = textColorSecondary;
|
|
4914
|
+
}
|
|
4726
4915
|
if (accentTextColor) {
|
|
4727
4916
|
themeStyles["text-color-accent"] = accentTextColor;
|
|
4728
4917
|
} else {
|
|
@@ -4743,7 +4932,15 @@ var configureTheme = (customThemeConfig = {}) => {
|
|
|
4743
4932
|
}
|
|
4744
4933
|
setChartColors(chartColors, themeStyles);
|
|
4745
4934
|
for (const property in themeStyles) {
|
|
4746
|
-
document.documentElement.style.setProperty(
|
|
4935
|
+
document.documentElement.style.setProperty(`--${prefix}-${property}`, themeStyles[property]);
|
|
4936
|
+
}
|
|
4937
|
+
try {
|
|
4938
|
+
const { r, g, b } = getRBGFromHex(themeStyles["accent-color"]);
|
|
4939
|
+
document.documentElement.style.setProperty(`--${prefix}-accent-color-R`, `${r}`);
|
|
4940
|
+
document.documentElement.style.setProperty(`--${prefix}-accent-color-G`, `${g}`);
|
|
4941
|
+
document.documentElement.style.setProperty(`--${prefix}-accent-color-B`, `${b}`);
|
|
4942
|
+
} catch (error) {
|
|
4943
|
+
console.error(error);
|
|
4747
4944
|
}
|
|
4748
4945
|
};
|
|
4749
4946
|
|
|
@@ -5166,7 +5363,7 @@ var generateDatePivotData = ({ rows, columns, tableConfig, dataFormatting } = {}
|
|
|
5166
5363
|
headerFilter: false,
|
|
5167
5364
|
headerFilterPlaceholder: "filter..."
|
|
5168
5365
|
};
|
|
5169
|
-
const firstPivotColumn = new
|
|
5366
|
+
const firstPivotColumn = new Column({
|
|
5170
5367
|
...pivotMonthColumn,
|
|
5171
5368
|
formatter: (cell) => formatElement({
|
|
5172
5369
|
element: cell.getValue(),
|
|
@@ -5177,7 +5374,7 @@ var generateDatePivotData = ({ rows, columns, tableConfig, dataFormatting } = {}
|
|
|
5177
5374
|
});
|
|
5178
5375
|
const pivotTableColumns = [firstPivotColumn];
|
|
5179
5376
|
Object.keys(uniqueYears).forEach((year, i) => {
|
|
5180
|
-
const pivotColumn = new
|
|
5377
|
+
const pivotColumn = new Column({
|
|
5181
5378
|
...columns[numberColumnIndex],
|
|
5182
5379
|
origColumn: columns[numberColumnIndex],
|
|
5183
5380
|
origValues: {},
|
|
@@ -5256,6 +5453,22 @@ var generateFilterDrilldownResponse = ({ response, rows, index, value }) => {
|
|
|
5256
5453
|
console.error(error);
|
|
5257
5454
|
}
|
|
5258
5455
|
};
|
|
5456
|
+
var uuidv4 = () => {
|
|
5457
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
5458
|
+
var r = Math.random() * 16 | 0, v = c == "x" ? r : r & 3 | 8;
|
|
5459
|
+
return v.toString(16);
|
|
5460
|
+
});
|
|
5461
|
+
};
|
|
5462
|
+
var parseJwt = (token) => {
|
|
5463
|
+
var base64Url = token.split(".")[1];
|
|
5464
|
+
var base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
|
|
5465
|
+
var jsonPayload = decodeURIComponent(
|
|
5466
|
+
window.atob(base64).split("").map(function(c) {
|
|
5467
|
+
return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
|
|
5468
|
+
}).join("")
|
|
5469
|
+
);
|
|
5470
|
+
return JSON.parse(jsonPayload);
|
|
5471
|
+
};
|
|
5259
5472
|
|
|
5260
5473
|
// src/HelperFns/tableHelpers.ts
|
|
5261
5474
|
var formatTableParams = (params, columns) => {
|
|
@@ -5786,26 +5999,17 @@ var calculateMinAndMaxSums = (data, stringColumnIndex, numberColumnIndices, isSc
|
|
|
5786
5999
|
const positiveSumsObject = {};
|
|
5787
6000
|
const negativeSumsObject = {};
|
|
5788
6001
|
data.forEach((row) => {
|
|
5789
|
-
const label = row[stringColumnIndex]
|
|
6002
|
+
const label = `${row[stringColumnIndex]}`;
|
|
5790
6003
|
numberColumnIndices.forEach((colIndex) => {
|
|
6004
|
+
var _a;
|
|
5791
6005
|
const rawValue = row[colIndex];
|
|
5792
6006
|
let value = Number(rawValue);
|
|
5793
6007
|
if (isNaN(value)) {
|
|
5794
6008
|
value = 0;
|
|
5795
6009
|
}
|
|
5796
|
-
|
|
5797
|
-
|
|
5798
|
-
|
|
5799
|
-
} else {
|
|
5800
|
-
positiveSumsObject[label] = value;
|
|
5801
|
-
}
|
|
5802
|
-
} else if (value < 0) {
|
|
5803
|
-
if (negativeSumsObject[label]) {
|
|
5804
|
-
negativeSumsObject[label] -= value;
|
|
5805
|
-
} else {
|
|
5806
|
-
negativeSumsObject[label] = value;
|
|
5807
|
-
}
|
|
5808
|
-
}
|
|
6010
|
+
const sumsObject = value >= 0 ? positiveSumsObject : negativeSumsObject;
|
|
6011
|
+
const previousValue = (_a = sumsObject[label]) != null ? _a : 0;
|
|
6012
|
+
sumsObject[label] = previousValue + value;
|
|
5809
6013
|
});
|
|
5810
6014
|
});
|
|
5811
6015
|
let maxValue = getMaxValueFromKeyValueObj(positiveSumsObject);
|
|
@@ -7863,7 +8067,7 @@ var transformQueryResponseColumns = (response) => {
|
|
|
7863
8067
|
}
|
|
7864
8068
|
const transformedColumns = columns.map((col, i) => {
|
|
7865
8069
|
const drilldownGroupby = getDrilldownGroupby(response, col);
|
|
7866
|
-
return new
|
|
8070
|
+
return new Column({
|
|
7867
8071
|
...col,
|
|
7868
8072
|
field: `${i}`,
|
|
7869
8073
|
index: i,
|
|
@@ -8498,53 +8702,125 @@ var reportProblem = ({
|
|
|
8498
8702
|
return Promise.reject((_a = error == null ? void 0 : error.response) == null ? void 0 : _a.data);
|
|
8499
8703
|
});
|
|
8500
8704
|
};
|
|
8501
|
-
|
|
8502
|
-
|
|
8503
|
-
|
|
8705
|
+
|
|
8706
|
+
// src/Api/dataExplorerService.ts
|
|
8707
|
+
var getSampleQueryRegex = (suggestionValues) => {
|
|
8708
|
+
const valueArray = Object.keys(suggestionValues);
|
|
8709
|
+
const valueRegexArray = valueArray.map((value) => `(${value})`);
|
|
8710
|
+
const valueRegex = new RegExp(valueRegexArray.join("|"), "gm");
|
|
8711
|
+
return valueRegex;
|
|
8712
|
+
};
|
|
8713
|
+
var getSampleQueryText = (query, values) => {
|
|
8714
|
+
try {
|
|
8715
|
+
const valueArray = Object.keys(values);
|
|
8716
|
+
let queryText = query;
|
|
8717
|
+
valueArray.forEach((valueKey) => {
|
|
8718
|
+
var _a;
|
|
8719
|
+
const valueRegex = new RegExp(`${valueKey}`, "gm");
|
|
8720
|
+
if (values[valueKey]) {
|
|
8721
|
+
queryText = query.replace(valueRegex, (_a = values[valueKey]) == null ? void 0 : _a.value);
|
|
8722
|
+
}
|
|
8723
|
+
});
|
|
8724
|
+
return queryText;
|
|
8725
|
+
} catch (error) {
|
|
8726
|
+
console.error(error);
|
|
8727
|
+
return void 0;
|
|
8504
8728
|
}
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8729
|
+
};
|
|
8730
|
+
var transformSuggestionResponse = (suggestions) => {
|
|
8731
|
+
const newSuggestions = [];
|
|
8732
|
+
suggestions.forEach((suggestion) => {
|
|
8733
|
+
const initialQuery = suggestion.query;
|
|
8734
|
+
const initialValues = transformSampleQueryValues(suggestion.values);
|
|
8735
|
+
const chunked = getSampleQueryChunk(suggestion.query, initialValues);
|
|
8736
|
+
const queryText = getSampleQueryText(suggestion.query, initialValues);
|
|
8737
|
+
const newSuggestion = {
|
|
8738
|
+
initialQuery,
|
|
8739
|
+
initialValues,
|
|
8740
|
+
chunked,
|
|
8741
|
+
queryText
|
|
8742
|
+
};
|
|
8743
|
+
newSuggestions.push(newSuggestion);
|
|
8744
|
+
});
|
|
8745
|
+
return newSuggestions;
|
|
8746
|
+
};
|
|
8747
|
+
var transformSampleQueryValues = (originalValues) => {
|
|
8748
|
+
const newValues = {};
|
|
8749
|
+
Object.keys(originalValues).forEach((key) => {
|
|
8512
8750
|
var _a;
|
|
8513
|
-
|
|
8751
|
+
newValues[key] = {
|
|
8752
|
+
replacement: originalValues[key],
|
|
8753
|
+
value: (_a = originalValues[key]) == null ? void 0 : _a.format_txt,
|
|
8754
|
+
type: getSampleQueryReplacementType(key, originalValues[key])
|
|
8755
|
+
};
|
|
8514
8756
|
});
|
|
8757
|
+
return newValues;
|
|
8758
|
+
};
|
|
8759
|
+
var getSampleQueryReplacementType = (key, replacement) => {
|
|
8760
|
+
if (!replacement) {
|
|
8761
|
+
return "TEXT" /* SAMPLE_QUERY_TEXT_TYPE */;
|
|
8762
|
+
} else if (key === "DUCKLING_TIME") {
|
|
8763
|
+
return "DUCKLING_TIME" /* SAMPLE_QUERY_TIME_TYPE */;
|
|
8764
|
+
} else if (key === "DUCKLING_AMOUNT") {
|
|
8765
|
+
return "DUCKLING_AMOUNT" /* SAMPLE_QUERY_AMOUNT_TYPE */;
|
|
8766
|
+
} else if (replacement == null ? void 0 : replacement.canonical) {
|
|
8767
|
+
return "VL" /* SAMPLE_QUERY_VL_TYPE */;
|
|
8768
|
+
} else {
|
|
8769
|
+
console.warn("There was a sample query replacement item but we didnt recognize its type: ", replacement);
|
|
8770
|
+
return;
|
|
8771
|
+
}
|
|
8515
8772
|
};
|
|
8516
|
-
var
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8773
|
+
var getSampleQueryChunk = (query, values) => {
|
|
8774
|
+
const valueArray = Object.keys(values);
|
|
8775
|
+
const valueRegexArray = valueArray.map((value) => `(${value})`);
|
|
8776
|
+
const valueRegex = new RegExp(valueRegexArray.join("|"), "gm");
|
|
8777
|
+
const splitStrArray = query.split(valueRegex);
|
|
8778
|
+
const chunkedSuggestion = splitStrArray.map((key) => {
|
|
8779
|
+
var _a;
|
|
8780
|
+
const replacement = (_a = values[key]) == null ? void 0 : _a.replacement;
|
|
8781
|
+
const type = getSampleQueryReplacementType(key, replacement);
|
|
8782
|
+
if (type == "DUCKLING_TIME" /* SAMPLE_QUERY_TIME_TYPE */) {
|
|
8783
|
+
return {
|
|
8784
|
+
type: "TEXT" /* SAMPLE_QUERY_TEXT_TYPE */,
|
|
8785
|
+
value: replacement == null ? void 0 : replacement.format_txt
|
|
8786
|
+
};
|
|
8787
|
+
} else if (type == "DUCKLING_AMOUNT" /* SAMPLE_QUERY_AMOUNT_TYPE */) {
|
|
8788
|
+
return {
|
|
8789
|
+
type: "DUCKLING_AMOUNT" /* SAMPLE_QUERY_AMOUNT_TYPE */,
|
|
8790
|
+
value: replacement == null ? void 0 : replacement.format_txt,
|
|
8791
|
+
name: key,
|
|
8792
|
+
replacement
|
|
8793
|
+
};
|
|
8794
|
+
} else if (type == "VL" /* SAMPLE_QUERY_VL_TYPE */) {
|
|
8795
|
+
return {
|
|
8796
|
+
type: "VL" /* SAMPLE_QUERY_VL_TYPE */,
|
|
8797
|
+
value: replacement == null ? void 0 : replacement.format_txt,
|
|
8798
|
+
name: key,
|
|
8799
|
+
replacement
|
|
8800
|
+
};
|
|
8801
|
+
} else if (type == "TEXT" /* SAMPLE_QUERY_TEXT_TYPE */) {
|
|
8802
|
+
return {
|
|
8803
|
+
type: "TEXT" /* SAMPLE_QUERY_TEXT_TYPE */,
|
|
8804
|
+
value: key
|
|
8805
|
+
};
|
|
8806
|
+
}
|
|
8807
|
+
});
|
|
8808
|
+
return chunkedSuggestion;
|
|
8809
|
+
};
|
|
8810
|
+
var transformDataExplorerAutocompleteResponse = (response) => {
|
|
8811
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
8812
|
+
let vlMatches = [];
|
|
8813
|
+
if ((_d = (_c = (_b = (_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) == null ? void 0 : _b.suggestions) == null ? void 0 : _c.value_labels) == null ? void 0 : _d.length) {
|
|
8814
|
+
const vlMatchesTrimmed = response.data.data.suggestions.value_labels.slice(0, 10);
|
|
8815
|
+
vlMatches = vlMatchesTrimmed.map((vl) => new DataExplorerSubject(vl));
|
|
8527
8816
|
}
|
|
8528
|
-
|
|
8529
|
-
|
|
8817
|
+
let subjectMatches = [];
|
|
8818
|
+
if ((_h = (_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.data) == null ? void 0 : _f.suggestions) == null ? void 0 : _g.subjects) == null ? void 0 : _h.length) {
|
|
8819
|
+
subjectMatches = response.data.data.suggestions.subjects.map((subject) => new DataExplorerSubject(subject));
|
|
8530
8820
|
}
|
|
8531
|
-
const
|
|
8532
|
-
|
|
8533
|
-
headers: {
|
|
8534
|
-
Authorization: `Bearer ${token}`
|
|
8535
|
-
},
|
|
8536
|
-
cancelToken
|
|
8537
|
-
};
|
|
8538
|
-
const data = {
|
|
8539
|
-
subject,
|
|
8540
|
-
page_size: numRows,
|
|
8541
|
-
source,
|
|
8542
|
-
date_format: "ISO8601"
|
|
8543
|
-
};
|
|
8544
|
-
return import_axios.default.post(url, data, config).then((response) => Promise.resolve(response)).catch((error) => Promise.reject(error));
|
|
8821
|
+
const allMatches = [...subjectMatches, ...vlMatches];
|
|
8822
|
+
return Promise.resolve(allMatches);
|
|
8545
8823
|
};
|
|
8546
|
-
|
|
8547
|
-
// src/Api/dataExplorerService.ts
|
|
8548
8824
|
var fetchDataExplorerAutocomplete = ({
|
|
8549
8825
|
suggestion,
|
|
8550
8826
|
domain,
|
|
@@ -8566,29 +8842,7 @@ var fetchDataExplorerAutocomplete = ({
|
|
|
8566
8842
|
cancelToken
|
|
8567
8843
|
};
|
|
8568
8844
|
return import_axios2.default.get(url, config).then((response) => {
|
|
8569
|
-
|
|
8570
|
-
let vlMatches = [];
|
|
8571
|
-
if ((_d = (_c = (_b = (_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) == null ? void 0 : _b.suggestions) == null ? void 0 : _c.value_labels) == null ? void 0 : _d.length) {
|
|
8572
|
-
const vlMatchesTrimmed = response.data.data.suggestions.value_labels.slice(0, 10);
|
|
8573
|
-
vlMatches = vlMatchesTrimmed.map((vl) => {
|
|
8574
|
-
return {
|
|
8575
|
-
...vl,
|
|
8576
|
-
display_name: `${vl.keyword} (${vl.show_message})`,
|
|
8577
|
-
type: "VL" /* VL_TYPE */
|
|
8578
|
-
};
|
|
8579
|
-
});
|
|
8580
|
-
}
|
|
8581
|
-
let subjectMatches = [];
|
|
8582
|
-
if ((_h = (_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.data) == null ? void 0 : _f.suggestions) == null ? void 0 : _g.subjects) == null ? void 0 : _h.length) {
|
|
8583
|
-
subjectMatches = response.data.data.suggestions.subjects.map((subject) => {
|
|
8584
|
-
return {
|
|
8585
|
-
...subject,
|
|
8586
|
-
type: "subject" /* SUBJECT_TYPE */
|
|
8587
|
-
};
|
|
8588
|
-
});
|
|
8589
|
-
}
|
|
8590
|
-
const allMatches = [...subjectMatches, ...vlMatches];
|
|
8591
|
-
return Promise.resolve(allMatches);
|
|
8845
|
+
return transformDataExplorerAutocompleteResponse(response);
|
|
8592
8846
|
}).catch((error) => {
|
|
8593
8847
|
var _a;
|
|
8594
8848
|
if ((error == null ? void 0 : error.message) === REQUEST_CANCELLED_ERROR) {
|
|
@@ -8606,6 +8860,109 @@ var transformVLForDataExplorerSuggestions = (vl) => {
|
|
|
8606
8860
|
canonical: vl.canonical
|
|
8607
8861
|
};
|
|
8608
8862
|
};
|
|
8863
|
+
var fetchDataExplorerSuggestionsV2 = async ({
|
|
8864
|
+
pageSize,
|
|
8865
|
+
pageNumber,
|
|
8866
|
+
domain,
|
|
8867
|
+
apiKey,
|
|
8868
|
+
token,
|
|
8869
|
+
text,
|
|
8870
|
+
context,
|
|
8871
|
+
selectedVL,
|
|
8872
|
+
userVLSelection = [],
|
|
8873
|
+
skipQueryValidation,
|
|
8874
|
+
columns
|
|
8875
|
+
} = {}) => {
|
|
8876
|
+
var _a, _b, _c;
|
|
8877
|
+
if (!skipQueryValidation && text) {
|
|
8878
|
+
const queryValidationResponse = await runQueryValidation({
|
|
8879
|
+
text,
|
|
8880
|
+
domain,
|
|
8881
|
+
apiKey,
|
|
8882
|
+
token
|
|
8883
|
+
});
|
|
8884
|
+
if (((_c = (_b = (_a = queryValidationResponse == null ? void 0 : queryValidationResponse.data) == null ? void 0 : _a.data) == null ? void 0 : _b.replacements) == null ? void 0 : _c.length) > 0) {
|
|
8885
|
+
return Promise.resolve(queryValidationResponse);
|
|
8886
|
+
}
|
|
8887
|
+
}
|
|
8888
|
+
const exploreQueriesUrl = `${domain}/autoql/api/v1/query/query-builder?key=${apiKey}`;
|
|
8889
|
+
const config = {
|
|
8890
|
+
headers: {
|
|
8891
|
+
Authorization: `Bearer ${token}`
|
|
8892
|
+
}
|
|
8893
|
+
};
|
|
8894
|
+
let vlInfo = [];
|
|
8895
|
+
if (selectedVL) {
|
|
8896
|
+
vlInfo.push(transformVLForDataExplorerSuggestions(selectedVL));
|
|
8897
|
+
}
|
|
8898
|
+
if (userVLSelection) {
|
|
8899
|
+
const transformedVLs = userVLSelection.map((vl) => transformVLForDataExplorerSuggestions(vl));
|
|
8900
|
+
vlInfo = [...vlInfo, ...transformedVLs];
|
|
8901
|
+
}
|
|
8902
|
+
const data = {
|
|
8903
|
+
page: pageNumber,
|
|
8904
|
+
page_size: pageSize,
|
|
8905
|
+
search_terms: text,
|
|
8906
|
+
context,
|
|
8907
|
+
value_label_info: vlInfo
|
|
8908
|
+
};
|
|
8909
|
+
const suggestionsMock = [
|
|
8910
|
+
{
|
|
8911
|
+
query: "total units sold above DUCKLING_AMOUNT",
|
|
8912
|
+
values: {
|
|
8913
|
+
DUCKLING_AMOUNT: {
|
|
8914
|
+
canonical: "DUCKLING_AMOUNT",
|
|
8915
|
+
format_txt: "100",
|
|
8916
|
+
keyword: "100",
|
|
8917
|
+
display_name: "100"
|
|
8918
|
+
}
|
|
8919
|
+
}
|
|
8920
|
+
},
|
|
8921
|
+
{
|
|
8922
|
+
query: "total sales DUCKLING_TIME",
|
|
8923
|
+
values: {
|
|
8924
|
+
DUCKLING_TIME: {
|
|
8925
|
+
canonical: "DUCKLING_TIME",
|
|
8926
|
+
format_txt: "last year",
|
|
8927
|
+
keyword: "last year",
|
|
8928
|
+
display_name: "last year"
|
|
8929
|
+
}
|
|
8930
|
+
}
|
|
8931
|
+
},
|
|
8932
|
+
{
|
|
8933
|
+
query: "all sales for PUBLIC_0_CUSTOMER_DIMENSION_0_CUSTOMER_NAME_VALUE_LABEL",
|
|
8934
|
+
values: {
|
|
8935
|
+
PUBLIC_0_CUSTOMER_DIMENSION_0_CUSTOMER_NAME_VALUE_LABEL: {
|
|
8936
|
+
show_message: "PUBLIC_0_CUSTOMER_DIMENSION_0_CUSTOMER_NAME_VALUE_LABEL",
|
|
8937
|
+
keyword: "Jack . Li",
|
|
8938
|
+
format_txt: "Jack . Li",
|
|
8939
|
+
canonical: "PUBLIC_0_CUSTOMER_DIMENSION_0_CUSTOMER_NAME_VALUE_LABEL"
|
|
8940
|
+
}
|
|
8941
|
+
}
|
|
8942
|
+
}
|
|
8943
|
+
];
|
|
8944
|
+
const promise = new Promise((res, rej) => {
|
|
8945
|
+
setTimeout(() => {
|
|
8946
|
+
var _a2, _b2;
|
|
8947
|
+
try {
|
|
8948
|
+
const testResponse = {
|
|
8949
|
+
data: {
|
|
8950
|
+
data: {
|
|
8951
|
+
suggestions: suggestionsMock
|
|
8952
|
+
}
|
|
8953
|
+
}
|
|
8954
|
+
};
|
|
8955
|
+
const suggestions = transformSuggestionResponse((_b2 = (_a2 = testResponse == null ? void 0 : testResponse.data) == null ? void 0 : _a2.data) == null ? void 0 : _b2.suggestions);
|
|
8956
|
+
testResponse.data.data.suggestions = suggestions;
|
|
8957
|
+
res(testResponse);
|
|
8958
|
+
} catch (error) {
|
|
8959
|
+
console.error(error);
|
|
8960
|
+
rej(error);
|
|
8961
|
+
}
|
|
8962
|
+
}, 500);
|
|
8963
|
+
});
|
|
8964
|
+
return promise;
|
|
8965
|
+
};
|
|
8609
8966
|
var fetchDataExplorerSuggestions = async ({
|
|
8610
8967
|
pageSize,
|
|
8611
8968
|
pageNumber,
|
|
@@ -8622,7 +8979,7 @@ var fetchDataExplorerSuggestions = async ({
|
|
|
8622
8979
|
if (!token || !domain || !apiKey) {
|
|
8623
8980
|
return Promise.reject(new Error("Unauthenticated"));
|
|
8624
8981
|
}
|
|
8625
|
-
if (!skipQueryValidation) {
|
|
8982
|
+
if (!skipQueryValidation && text) {
|
|
8626
8983
|
const queryValidationResponse = await runQueryValidation({
|
|
8627
8984
|
text,
|
|
8628
8985
|
domain,
|
|
@@ -8659,6 +9016,62 @@ var fetchDataExplorerSuggestions = async ({
|
|
|
8659
9016
|
return Promise.reject((_a2 = error == null ? void 0 : error.response) == null ? void 0 : _a2.data);
|
|
8660
9017
|
});
|
|
8661
9018
|
};
|
|
9019
|
+
var fetchSubjectList = ({ domain, apiKey, token }) => {
|
|
9020
|
+
if (!token || !domain || !apiKey) {
|
|
9021
|
+
return Promise.reject(new Error("Unauthenticated"));
|
|
9022
|
+
}
|
|
9023
|
+
const url = `${domain}/autoql/api/v1/query/subjects?key=${apiKey}`;
|
|
9024
|
+
const config = {
|
|
9025
|
+
headers: {
|
|
9026
|
+
Authorization: `Bearer ${token}`
|
|
9027
|
+
}
|
|
9028
|
+
};
|
|
9029
|
+
return import_axios2.default.get(url, config).then((response) => {
|
|
9030
|
+
var _a, _b;
|
|
9031
|
+
let subjectList = [];
|
|
9032
|
+
if ((_b = (_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) == null ? void 0 : _b.subjects) {
|
|
9033
|
+
subjectList = response.data.data.subjects.map((subject) => new DataExplorerSubject(subject)).sort((a, b) => {
|
|
9034
|
+
const aName = a.displayName;
|
|
9035
|
+
const bName = b.displayName;
|
|
9036
|
+
aName.localeCompare(bName);
|
|
9037
|
+
});
|
|
9038
|
+
}
|
|
9039
|
+
return Promise.resolve(subjectList);
|
|
9040
|
+
}).catch((error) => {
|
|
9041
|
+
var _a;
|
|
9042
|
+
return Promise.reject((_a = error == null ? void 0 : error.response) == null ? void 0 : _a.data);
|
|
9043
|
+
});
|
|
9044
|
+
};
|
|
9045
|
+
var fetchDataPreview = ({
|
|
9046
|
+
subject,
|
|
9047
|
+
domain,
|
|
9048
|
+
apiKey,
|
|
9049
|
+
token,
|
|
9050
|
+
source = DEFAULT_SOURCE,
|
|
9051
|
+
numRows = 10,
|
|
9052
|
+
cancelToken
|
|
9053
|
+
} = {}) => {
|
|
9054
|
+
if (!subject) {
|
|
9055
|
+
return Promise.reject(new Error("No subject supplied for data preview"));
|
|
9056
|
+
}
|
|
9057
|
+
if (!token || !domain || !apiKey) {
|
|
9058
|
+
return Promise.reject(new Error("Unauthenticated"));
|
|
9059
|
+
}
|
|
9060
|
+
const url = `${domain}/autoql/api/v1/query/preview?key=${apiKey}`;
|
|
9061
|
+
const config = {
|
|
9062
|
+
headers: {
|
|
9063
|
+
Authorization: `Bearer ${token}`
|
|
9064
|
+
},
|
|
9065
|
+
cancelToken
|
|
9066
|
+
};
|
|
9067
|
+
const data = {
|
|
9068
|
+
subject,
|
|
9069
|
+
page_size: numRows,
|
|
9070
|
+
source,
|
|
9071
|
+
date_format: "ISO8601"
|
|
9072
|
+
};
|
|
9073
|
+
return import_axios2.default.post(url, data, config).then((response) => Promise.resolve(response)).catch((error) => Promise.reject(error));
|
|
9074
|
+
};
|
|
8662
9075
|
|
|
8663
9076
|
// src/Api/notificationService.ts
|
|
8664
9077
|
var import_axios3 = __toESM(require("axios"));
|
|
@@ -8675,10 +9088,18 @@ var fetchNotificationData = ({ id, domain, apiKey, token }) => {
|
|
|
8675
9088
|
return axiosInstance.get(url).then((response) => {
|
|
8676
9089
|
var _a, _b;
|
|
8677
9090
|
const queryResult = (_b = (_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) == null ? void 0 : _b.query_result;
|
|
8678
|
-
|
|
9091
|
+
let hasQueryResult = false;
|
|
9092
|
+
for (let key in queryResult) {
|
|
9093
|
+
if (queryResult.hasOwnProperty(key)) {
|
|
9094
|
+
hasQueryResult = true;
|
|
9095
|
+
break;
|
|
9096
|
+
}
|
|
9097
|
+
}
|
|
9098
|
+
if (hasQueryResult) {
|
|
8679
9099
|
return Promise.resolve({ data: queryResult });
|
|
9100
|
+
} else {
|
|
9101
|
+
return Promise.reject({ response: { data: { message: GENERAL_ERROR, hasQueryResult } } });
|
|
8680
9102
|
}
|
|
8681
|
-
return Promise.reject({ response: { data: { message: GENERAL_ERROR } } });
|
|
8682
9103
|
}).catch((error) => {
|
|
8683
9104
|
var _a;
|
|
8684
9105
|
return Promise.reject({ data: (_a = error == null ? void 0 : error.response) == null ? void 0 : _a.data });
|
|
@@ -9807,8 +10228,10 @@ function color() {
|
|
|
9807
10228
|
DEFAULT_LEGEND_PADDING_TOP,
|
|
9808
10229
|
DEFAULT_MAX_LEGEND_WIDTH,
|
|
9809
10230
|
DEFAULT_SOURCE,
|
|
10231
|
+
DISPLAY_TYPES,
|
|
9810
10232
|
DOUBLE_AXIS_CHART_TYPES,
|
|
9811
10233
|
DOW_STYLES,
|
|
10234
|
+
DataExplorerSubject,
|
|
9812
10235
|
DataExplorerTypes,
|
|
9813
10236
|
DateUTC,
|
|
9814
10237
|
DisplayTypes,
|
|
@@ -9837,7 +10260,6 @@ function color() {
|
|
|
9837
10260
|
NUMBER_TERM_TYPE,
|
|
9838
10261
|
PATH_SMOOTHING,
|
|
9839
10262
|
PERIODIC_TYPE,
|
|
9840
|
-
PRECISION_TYPES,
|
|
9841
10263
|
PROJECT_TYPE,
|
|
9842
10264
|
PrecisionTypes,
|
|
9843
10265
|
QUERY_TERM_TYPE,
|
|
@@ -9847,6 +10269,7 @@ function color() {
|
|
|
9847
10269
|
SCHEDULE_FREQUENCY_OPTIONS,
|
|
9848
10270
|
SCHEDULE_INTERVAL_OPTIONS,
|
|
9849
10271
|
SEASON_NAMES,
|
|
10272
|
+
SampleQueryReplacementTypes,
|
|
9850
10273
|
TABLE_TYPES,
|
|
9851
10274
|
TITLE_FONT_SIZE,
|
|
9852
10275
|
ThemeType,
|
|
@@ -9886,6 +10309,7 @@ function color() {
|
|
|
9886
10309
|
dataStructureChanged,
|
|
9887
10310
|
dateSortFn,
|
|
9888
10311
|
dateStringSortFn,
|
|
10312
|
+
dayjs,
|
|
9889
10313
|
deepEqual,
|
|
9890
10314
|
deleteDataAlert,
|
|
9891
10315
|
deleteNotification,
|
|
@@ -9899,6 +10323,7 @@ function color() {
|
|
|
9899
10323
|
fetchDataAlerts,
|
|
9900
10324
|
fetchDataExplorerAutocomplete,
|
|
9901
10325
|
fetchDataExplorerSuggestions,
|
|
10326
|
+
fetchDataExplorerSuggestionsV2,
|
|
9902
10327
|
fetchDataPreview,
|
|
9903
10328
|
fetchExploreQueries,
|
|
9904
10329
|
fetchFilters,
|
|
@@ -10024,6 +10449,8 @@ function color() {
|
|
|
10024
10449
|
getRangeForAxis,
|
|
10025
10450
|
getRowNumberListForPopover,
|
|
10026
10451
|
getSVGBase64,
|
|
10452
|
+
getSampleQueryRegex,
|
|
10453
|
+
getSampleQueryText,
|
|
10027
10454
|
getScheduleFrequencyObject,
|
|
10028
10455
|
getStartAndEndDateFromDateStrs,
|
|
10029
10456
|
getStringColumnIndices,
|
|
@@ -10039,6 +10466,7 @@ function color() {
|
|
|
10039
10466
|
getTimeRangeFromDateArray,
|
|
10040
10467
|
getTimeRangeFromRT,
|
|
10041
10468
|
getTimeScale,
|
|
10469
|
+
getTitleCase,
|
|
10042
10470
|
getTooltipContent,
|
|
10043
10471
|
getTotalBottomPadding,
|
|
10044
10472
|
getTotalHorizontalPadding,
|
|
@@ -10094,6 +10522,7 @@ function color() {
|
|
|
10094
10522
|
onTableCellClick,
|
|
10095
10523
|
onlySeriesVisibilityChanged,
|
|
10096
10524
|
onlyUnique,
|
|
10525
|
+
parseJwt,
|
|
10097
10526
|
potentiallySupportsDatePivot,
|
|
10098
10527
|
potentiallySupportsPivot,
|
|
10099
10528
|
removeElementAtIndex,
|
|
@@ -10144,6 +10573,7 @@ function color() {
|
|
|
10144
10573
|
updateDataAlert,
|
|
10145
10574
|
updateDataAlertStatus,
|
|
10146
10575
|
usePivotDataForChart,
|
|
10576
|
+
uuidv4,
|
|
10147
10577
|
validateExpression
|
|
10148
10578
|
});
|
|
10149
10579
|
//# sourceMappingURL=index.js.map
|