autoql-fe-utils 1.11.13 → 1.11.14
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.mts +30 -19
- package/dist/index.d.ts +30 -19
- package/dist/index.global.js +248 -85
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +252 -85
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +250 -85
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.global.js
CHANGED
|
@@ -14653,6 +14653,14 @@
|
|
|
14653
14653
|
fn: max,
|
|
14654
14654
|
sqlFn: (columnName) => `max(${columnName})`
|
|
14655
14655
|
}),
|
|
14656
|
+
MEDIAN: new AggType({
|
|
14657
|
+
type: "MEDIAN" /* MEDIAN */,
|
|
14658
|
+
displayName: "Median",
|
|
14659
|
+
tooltip: "<strong>Median:</strong> The median (middle) value will be shown for all data points with same label.",
|
|
14660
|
+
// symbol: 'Median',
|
|
14661
|
+
icon: "median",
|
|
14662
|
+
fn: median
|
|
14663
|
+
}),
|
|
14656
14664
|
COUNT: new AggType({
|
|
14657
14665
|
type: "COUNT" /* COUNT */,
|
|
14658
14666
|
displayName: "Count",
|
|
@@ -14679,14 +14687,6 @@
|
|
|
14679
14687
|
},
|
|
14680
14688
|
sqlFn: (columnName) => `count(distinct ${columnName})`
|
|
14681
14689
|
}),
|
|
14682
|
-
MEDIAN: new AggType({
|
|
14683
|
-
type: "MEDIAN" /* MEDIAN */,
|
|
14684
|
-
displayName: "Median",
|
|
14685
|
-
tooltip: "The median (middle) value will be shown for all data points with same label.",
|
|
14686
|
-
// symbol: 'Median',
|
|
14687
|
-
icon: "median",
|
|
14688
|
-
fn: median
|
|
14689
|
-
}),
|
|
14690
14690
|
STD_DEV: new AggType({
|
|
14691
14691
|
type: "STD_DEV" /* STD_DEV */,
|
|
14692
14692
|
displayName: "Std Dev",
|
|
@@ -15318,8 +15318,15 @@
|
|
|
15318
15318
|
return date2.replace(/\'/g, "");
|
|
15319
15319
|
};
|
|
15320
15320
|
var isISODate = (str) => {
|
|
15321
|
+
if (!str) {
|
|
15322
|
+
return false;
|
|
15323
|
+
}
|
|
15321
15324
|
var dateString = str;
|
|
15322
15325
|
dateString = getDateNoQuotes(dateString);
|
|
15326
|
+
dateString = dateString.trim();
|
|
15327
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) {
|
|
15328
|
+
return false;
|
|
15329
|
+
}
|
|
15323
15330
|
if (/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(\.\d{1,3})?$/.test(dateString)) {
|
|
15324
15331
|
return true;
|
|
15325
15332
|
}
|
|
@@ -16030,6 +16037,41 @@
|
|
|
16030
16037
|
return array3.slice(0, index).concat(array3.slice(index + 1));
|
|
16031
16038
|
};
|
|
16032
16039
|
|
|
16040
|
+
// src/safeRegex.ts
|
|
16041
|
+
var MAX_PATTERN_LENGTH = Number(process.env.REGEXP_GUARD_MAX_LEN) || 2e3;
|
|
16042
|
+
function isSimpleLiteral(pattern) {
|
|
16043
|
+
return typeof pattern === "string" && /^[A-Za-z0-9 _\-\.,:\/]+$/.test(pattern);
|
|
16044
|
+
}
|
|
16045
|
+
function escapeRegExp(str) {
|
|
16046
|
+
return String(str).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
16047
|
+
}
|
|
16048
|
+
function compileSafeRegex(pattern, flags = "") {
|
|
16049
|
+
if (typeof pattern !== "string") return null;
|
|
16050
|
+
if (pattern.length > MAX_PATTERN_LENGTH) return null;
|
|
16051
|
+
try {
|
|
16052
|
+
return new RegExp(pattern, flags);
|
|
16053
|
+
} catch (e) {
|
|
16054
|
+
return null;
|
|
16055
|
+
}
|
|
16056
|
+
}
|
|
16057
|
+
function safeTest(pattern, input, flags = "") {
|
|
16058
|
+
if (pattern == null || input == null) return false;
|
|
16059
|
+
const strInput = String(input);
|
|
16060
|
+
const re2 = compileSafeRegex(String(pattern), flags);
|
|
16061
|
+
if (re2) {
|
|
16062
|
+
try {
|
|
16063
|
+
return re2.test(strInput);
|
|
16064
|
+
} catch (e) {
|
|
16065
|
+
return false;
|
|
16066
|
+
}
|
|
16067
|
+
}
|
|
16068
|
+
if (isSimpleLiteral(pattern)) {
|
|
16069
|
+
const needle = String(pattern);
|
|
16070
|
+
return flags.includes("i") ? strInput.toLowerCase().includes(needle.toLowerCase()) : strInput.includes(needle);
|
|
16071
|
+
}
|
|
16072
|
+
return false;
|
|
16073
|
+
}
|
|
16074
|
+
|
|
16033
16075
|
// src/HelperFns/filterEngine.ts
|
|
16034
16076
|
var FilterOperatorEnum = /* @__PURE__ */ ((FilterOperatorEnum2) => {
|
|
16035
16077
|
FilterOperatorEnum2["LIKE"] = "like";
|
|
@@ -16078,8 +16120,7 @@
|
|
|
16078
16120
|
var greaterThanMatcher = (cell, cond) => Number(cell) > Number(cond.value);
|
|
16079
16121
|
var greaterThanEqMatcher = (cell, cond) => Number(cell) >= Number(cond.value);
|
|
16080
16122
|
var regexMatcher = (cell, cond) => {
|
|
16081
|
-
|
|
16082
|
-
return reg.test(String(cell));
|
|
16123
|
+
return safeTest(cond.value, cell);
|
|
16083
16124
|
};
|
|
16084
16125
|
var betweenMatcher = (cell, cond) => {
|
|
16085
16126
|
if (cell == null) return false;
|
|
@@ -16135,9 +16176,6 @@
|
|
|
16135
16176
|
function isValidFilterType(t) {
|
|
16136
16177
|
return FILTER_TYPES.includes(t);
|
|
16137
16178
|
}
|
|
16138
|
-
function escapeRegExp(str) {
|
|
16139
|
-
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
16140
|
-
}
|
|
16141
16179
|
function parseLocaleNumber(value, locale3) {
|
|
16142
16180
|
var _a, _b;
|
|
16143
16181
|
if (typeof value === "number") return value;
|
|
@@ -16149,10 +16187,20 @@
|
|
|
16149
16187
|
const group = (_a = parts.find((p) => p.type === "group")) == null ? void 0 : _a.value;
|
|
16150
16188
|
const decimal = (_b = parts.find((p) => p.type === "decimal")) == null ? void 0 : _b.value;
|
|
16151
16189
|
if (group) {
|
|
16152
|
-
|
|
16190
|
+
const grpRe = compileSafeRegex(escapeRegExp(group), "g");
|
|
16191
|
+
if (grpRe) {
|
|
16192
|
+
str = str.replace(grpRe, "");
|
|
16193
|
+
} else {
|
|
16194
|
+
str = str.split(group).join("");
|
|
16195
|
+
}
|
|
16153
16196
|
}
|
|
16154
16197
|
if (decimal && decimal !== ".") {
|
|
16155
|
-
|
|
16198
|
+
const decRe = compileSafeRegex(escapeRegExp(decimal), "g");
|
|
16199
|
+
if (decRe) {
|
|
16200
|
+
str = str.replace(decRe, ".");
|
|
16201
|
+
} else {
|
|
16202
|
+
str = str.split(decimal).join(".");
|
|
16203
|
+
}
|
|
16156
16204
|
}
|
|
16157
16205
|
} catch (e) {
|
|
16158
16206
|
str = str.replace(/[,']/g, "");
|
|
@@ -16173,7 +16221,9 @@
|
|
|
16173
16221
|
const trimmed = raw.trim();
|
|
16174
16222
|
if (trimmed.length === 0) return { operator: defaultOperator, value: "", type };
|
|
16175
16223
|
const opToken = `${"between" /* BETWEEN */}|[<>!=]=?|not_like`;
|
|
16176
|
-
const
|
|
16224
|
+
const opPattern = `^(${opToken})\\s*(.*)$`;
|
|
16225
|
+
const opRe = compileSafeRegex(opPattern, "i");
|
|
16226
|
+
const opMatch = opRe ? opRe.exec(trimmed) : null;
|
|
16177
16227
|
if (opMatch) {
|
|
16178
16228
|
let op = String((_a = opMatch[1]) != null ? _a : "").toLowerCase();
|
|
16179
16229
|
const rest = (_b = opMatch[2]) != null ? _b : "";
|
|
@@ -17301,6 +17351,16 @@
|
|
|
17301
17351
|
columnIndexConfig.numberColumnIndices2 = numberColumnIndices2;
|
|
17302
17352
|
columnIndexConfig.numberColumnIndex2 = numberColumnIndex2;
|
|
17303
17353
|
}
|
|
17354
|
+
if (usePivotData && isNumber(columnIndexConfig.legendColumnIndex) && isNumber(columnIndexConfig.numberColumnIndex) && columnIndexConfig.legendColumnIndex === columnIndexConfig.numberColumnIndex) {
|
|
17355
|
+
console.debug(
|
|
17356
|
+
"Table config invalid: legendColumnIndex and numberColumnIndex are the same.",
|
|
17357
|
+
{
|
|
17358
|
+
legendColumnIndex: columnIndexConfig.legendColumnIndex,
|
|
17359
|
+
numberColumnIndex: columnIndexConfig.numberColumnIndex
|
|
17360
|
+
}
|
|
17361
|
+
);
|
|
17362
|
+
return false;
|
|
17363
|
+
}
|
|
17304
17364
|
return true;
|
|
17305
17365
|
} catch (error) {
|
|
17306
17366
|
console.debug("Saved table config was not valid for response:", error == null ? void 0 : error.message);
|
|
@@ -19056,16 +19116,16 @@
|
|
|
19056
19116
|
var DARK_THEME = {
|
|
19057
19117
|
"accent-color": "#193a48",
|
|
19058
19118
|
"accent-color-secondary": "#1ea0d8",
|
|
19059
|
-
"background-color-primary": "#
|
|
19060
|
-
"background-color-secondary": "#
|
|
19119
|
+
"background-color-primary": "#15191c",
|
|
19120
|
+
"background-color-secondary": "#1d222b",
|
|
19061
19121
|
"background-color-tertiary": "#292929",
|
|
19062
19122
|
"background-color-switch-input": "#252525",
|
|
19063
19123
|
"background-color-switch-thumb": "#ececec",
|
|
19064
19124
|
"background-color-checkbox": "#292929",
|
|
19065
19125
|
"background-color-disabled": "#5d6167",
|
|
19066
19126
|
"background-color-disabled-dark": "#857d83",
|
|
19067
|
-
"table-border-color": "#
|
|
19068
|
-
"border-color": "#
|
|
19127
|
+
"table-border-color": "#2c2e32",
|
|
19128
|
+
"border-color": "#43464b",
|
|
19069
19129
|
"hover-color": "#4a4f56",
|
|
19070
19130
|
"text-color-primary": "#ececec",
|
|
19071
19131
|
"text-color-secondary": "#bababa",
|
|
@@ -22293,8 +22353,8 @@
|
|
|
22293
22353
|
return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
|
|
22294
22354
|
}
|
|
22295
22355
|
function formatDecimalParts(x, p) {
|
|
22296
|
-
if ((
|
|
22297
|
-
var i, coefficient = x.slice(0, i);
|
|
22356
|
+
if (!isFinite(x) || x === 0) return null;
|
|
22357
|
+
var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e"), coefficient = x.slice(0, i);
|
|
22298
22358
|
return [
|
|
22299
22359
|
coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
|
|
22300
22360
|
+x.slice(i + 1)
|
|
@@ -22388,7 +22448,7 @@
|
|
|
22388
22448
|
var prefixExponent;
|
|
22389
22449
|
function formatPrefixAuto_default(x, p) {
|
|
22390
22450
|
var d = formatDecimalParts(x, p);
|
|
22391
|
-
if (!d) return
|
|
22451
|
+
if (!d) return prefixExponent = void 0, x.toPrecision(p);
|
|
22392
22452
|
var coefficient = d[0], exponent = d[1], i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, n = coefficient.length;
|
|
22393
22453
|
return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0];
|
|
22394
22454
|
}
|
|
@@ -22428,13 +22488,13 @@
|
|
|
22428
22488
|
var prefixes = ["y", "z", "a", "f", "p", "n", "\xB5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
|
|
22429
22489
|
function locale_default(locale3) {
|
|
22430
22490
|
var group = locale3.grouping === void 0 || locale3.thousands === void 0 ? identity_default : formatGroup_default(map2.call(locale3.grouping, Number), locale3.thousands + ""), currencyPrefix = locale3.currency === void 0 ? "" : locale3.currency[0] + "", currencySuffix = locale3.currency === void 0 ? "" : locale3.currency[1] + "", decimal = locale3.decimal === void 0 ? "." : locale3.decimal + "", numerals = locale3.numerals === void 0 ? identity_default : formatNumerals_default(map2.call(locale3.numerals, String)), percent = locale3.percent === void 0 ? "%" : locale3.percent + "", minus = locale3.minus === void 0 ? "\u2212" : locale3.minus + "", nan = locale3.nan === void 0 ? "NaN" : locale3.nan + "";
|
|
22431
|
-
function newFormat(specifier) {
|
|
22491
|
+
function newFormat(specifier, options) {
|
|
22432
22492
|
specifier = formatSpecifier(specifier);
|
|
22433
22493
|
var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero3 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim2 = specifier.trim, type = specifier.type;
|
|
22434
22494
|
if (type === "n") comma = true, type = "g";
|
|
22435
22495
|
else if (!formatTypes_default[type]) precision === void 0 && (precision = 12), trim2 = true, type = "g";
|
|
22436
22496
|
if (zero3 || fill === "0" && align === "=") zero3 = true, fill = "0", align = "=";
|
|
22437
|
-
var prefix2 = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
|
|
22497
|
+
var prefix2 = (options && options.prefix !== void 0 ? options.prefix : "") + (symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : ""), suffix = (symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "") + (options && options.suffix !== void 0 ? options.suffix : "");
|
|
22438
22498
|
var formatType = formatTypes_default[type], maybeSuffix = /[defgprs%]/.test(type);
|
|
22439
22499
|
precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
|
|
22440
22500
|
function format2(value) {
|
|
@@ -22449,7 +22509,7 @@
|
|
|
22449
22509
|
if (trim2) value = formatTrim_default(value);
|
|
22450
22510
|
if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
|
|
22451
22511
|
valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
|
|
22452
|
-
valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
|
|
22512
|
+
valueSuffix = (type === "s" && !isNaN(value) && prefixExponent !== void 0 ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
|
|
22453
22513
|
if (maybeSuffix) {
|
|
22454
22514
|
i = -1, n = value.length;
|
|
22455
22515
|
while (++i < n) {
|
|
@@ -22486,9 +22546,9 @@
|
|
|
22486
22546
|
return format2;
|
|
22487
22547
|
}
|
|
22488
22548
|
function formatPrefix2(specifier, value) {
|
|
22489
|
-
var
|
|
22549
|
+
var e = Math.max(-8, Math.min(8, Math.floor(exponent_default(value) / 3))) * 3, k = Math.pow(10, -e), f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier), { suffix: prefixes[8 + e / 3] });
|
|
22490
22550
|
return function(value2) {
|
|
22491
|
-
return f(k * value2)
|
|
22551
|
+
return f(k * value2);
|
|
22492
22552
|
};
|
|
22493
22553
|
}
|
|
22494
22554
|
return {
|
|
@@ -26447,6 +26507,33 @@
|
|
|
26447
26507
|
var REQUEST_CANCELLED_ERROR = "Request cancelled";
|
|
26448
26508
|
var QUERY_TIMEOUT_ERROR = "Database Timeout Error: Your query has exceeded the time limit. To receive a response, try narrowing your query down to a specific time range (e.g., today, this week, this month), or contact your database administrator.";
|
|
26449
26509
|
|
|
26510
|
+
// src/Api/axiosUtils.ts
|
|
26511
|
+
var createRequestController = () => {
|
|
26512
|
+
if (typeof AbortController !== "undefined") return new AbortController();
|
|
26513
|
+
return { abort: () => {
|
|
26514
|
+
}, signal: void 0 };
|
|
26515
|
+
};
|
|
26516
|
+
var attachCancelToConfig = (config = {}, cancelToken) => {
|
|
26517
|
+
if (!cancelToken) return config;
|
|
26518
|
+
if (typeof AbortController !== "undefined" && cancelToken instanceof AbortController)
|
|
26519
|
+
return { ...config, signal: cancelToken.signal };
|
|
26520
|
+
if (typeof AbortSignal !== "undefined" && cancelToken instanceof AbortSignal)
|
|
26521
|
+
return { ...config, signal: cancelToken };
|
|
26522
|
+
if (cancelToken && cancelToken.constructor && cancelToken.constructor.name === "AbortSignal")
|
|
26523
|
+
return { ...config, signal: cancelToken };
|
|
26524
|
+
if (cancelToken && cancelToken.promise && typeof cancelToken.promise.then === "function") {
|
|
26525
|
+
try {
|
|
26526
|
+
const controller = new AbortController();
|
|
26527
|
+
cancelToken.promise.then(() => controller.abort());
|
|
26528
|
+
return { ...config, signal: controller.signal, cancelToken };
|
|
26529
|
+
} catch (e) {
|
|
26530
|
+
return { ...config, cancelToken };
|
|
26531
|
+
}
|
|
26532
|
+
}
|
|
26533
|
+
return { ...config, cancelToken };
|
|
26534
|
+
};
|
|
26535
|
+
var axiosUtils_default = attachCancelToConfig;
|
|
26536
|
+
|
|
26450
26537
|
// node_modules/axios/lib/helpers/bind.js
|
|
26451
26538
|
function bind(fn, thisArg) {
|
|
26452
26539
|
return function wrap() {
|
|
@@ -30176,7 +30263,10 @@
|
|
|
30176
30263
|
const drilldownGroupby = getDrilldownGroupby(response, col);
|
|
30177
30264
|
let additional = false;
|
|
30178
30265
|
let is_timestamp = false;
|
|
30179
|
-
if (addedColumns == null ? void 0 : addedColumns.find((select) =>
|
|
30266
|
+
if (addedColumns == null ? void 0 : addedColumns.find((select) => {
|
|
30267
|
+
var _a3;
|
|
30268
|
+
return select.columns.includes((_a3 = col.alt_name) != null ? _a3 : col.name);
|
|
30269
|
+
})) {
|
|
30180
30270
|
additional = true;
|
|
30181
30271
|
}
|
|
30182
30272
|
if (isColumnDateType(col) && isISODate(dataSample)) {
|
|
@@ -30250,7 +30340,7 @@
|
|
|
30250
30340
|
};
|
|
30251
30341
|
var isError500Type = (referenceId) => {
|
|
30252
30342
|
try {
|
|
30253
|
-
const parsedReferenceId = referenceId
|
|
30343
|
+
const parsedReferenceId = typeof referenceId === "string" ? referenceId.split(".") : String(referenceId != null ? referenceId : "").split(".");
|
|
30254
30344
|
const errorCode = Number(parsedReferenceId == null ? void 0 : parsedReferenceId[2]);
|
|
30255
30345
|
if (errorCode >= 500 && errorCode < 600) {
|
|
30256
30346
|
return true;
|
|
@@ -30293,12 +30383,14 @@
|
|
|
30293
30383
|
if (queryId) {
|
|
30294
30384
|
relatedQueriesUrl = `${relatedQueriesUrl}&query_id=${queryId}`;
|
|
30295
30385
|
}
|
|
30296
|
-
const config =
|
|
30297
|
-
|
|
30298
|
-
|
|
30386
|
+
const config = axiosUtils_default(
|
|
30387
|
+
{
|
|
30388
|
+
headers: {
|
|
30389
|
+
Authorization: `Bearer ${token}`
|
|
30390
|
+
}
|
|
30299
30391
|
},
|
|
30300
30392
|
cancelToken
|
|
30301
|
-
|
|
30393
|
+
);
|
|
30302
30394
|
return axios_default.get(relatedQueriesUrl, config).then((response) => Promise.resolve(response)).catch((error) => Promise.reject(error == null ? void 0 : error.response));
|
|
30303
30395
|
};
|
|
30304
30396
|
var runQueryNewPage = ({
|
|
@@ -30319,12 +30411,14 @@
|
|
|
30319
30411
|
const data = {
|
|
30320
30412
|
date_format: "ISO8601"
|
|
30321
30413
|
};
|
|
30322
|
-
const config =
|
|
30323
|
-
|
|
30324
|
-
|
|
30414
|
+
const config = axiosUtils_default(
|
|
30415
|
+
{
|
|
30416
|
+
headers: {
|
|
30417
|
+
Authorization: `Bearer ${token}`
|
|
30418
|
+
}
|
|
30325
30419
|
},
|
|
30326
30420
|
cancelToken
|
|
30327
|
-
|
|
30421
|
+
);
|
|
30328
30422
|
return axios_default.post(url2, data, config).then((response) => {
|
|
30329
30423
|
var _a, _b;
|
|
30330
30424
|
if (response.data && typeof response.data === "string") {
|
|
@@ -30386,12 +30480,14 @@
|
|
|
30386
30480
|
console.error("authentication invalid for request");
|
|
30387
30481
|
return Promise.reject({ error: "Unauthenticated" /* UNAUTHENTICATED */ });
|
|
30388
30482
|
}
|
|
30389
|
-
const config =
|
|
30390
|
-
|
|
30391
|
-
|
|
30483
|
+
const config = axiosUtils_default(
|
|
30484
|
+
{
|
|
30485
|
+
headers: {
|
|
30486
|
+
Authorization: `Bearer ${token}`
|
|
30487
|
+
}
|
|
30392
30488
|
},
|
|
30393
30489
|
cancelToken
|
|
30394
|
-
|
|
30490
|
+
);
|
|
30395
30491
|
return axios_default.post(url2, data, config).then((response) => {
|
|
30396
30492
|
var _a;
|
|
30397
30493
|
if (!((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data)) {
|
|
@@ -30424,12 +30520,14 @@
|
|
|
30424
30520
|
return Promise.reject(new Error("Unauthenticated" /* UNAUTHENTICATED */));
|
|
30425
30521
|
}
|
|
30426
30522
|
const url2 = `${domain}/autoql/api/v1/query/validate?text=${encodeURIComponent(text)}&key=${apiKey}`;
|
|
30427
|
-
const config =
|
|
30428
|
-
|
|
30429
|
-
|
|
30523
|
+
const config = axiosUtils_default(
|
|
30524
|
+
{
|
|
30525
|
+
headers: {
|
|
30526
|
+
Authorization: `Bearer ${token}`
|
|
30527
|
+
}
|
|
30430
30528
|
},
|
|
30431
30529
|
cancelToken
|
|
30432
|
-
|
|
30530
|
+
);
|
|
30433
30531
|
return axios_default.get(url2, config).then((response) => Promise.resolve(response)).catch((error) => formatErrorResponse(error));
|
|
30434
30532
|
};
|
|
30435
30533
|
var runQuery = async ({
|
|
@@ -30623,12 +30721,14 @@
|
|
|
30623
30721
|
additional_selects: newColumns,
|
|
30624
30722
|
display_overrides: displayOverrides
|
|
30625
30723
|
};
|
|
30626
|
-
const config =
|
|
30627
|
-
|
|
30628
|
-
|
|
30724
|
+
const config = axiosUtils_default(
|
|
30725
|
+
{
|
|
30726
|
+
headers: {
|
|
30727
|
+
Authorization: `Bearer ${token}`
|
|
30728
|
+
}
|
|
30629
30729
|
},
|
|
30630
30730
|
cancelToken
|
|
30631
|
-
|
|
30731
|
+
);
|
|
30632
30732
|
const url2 = `${domain}/autoql/api/v1/query/${queryID}/drilldown?key=${apiKey}`;
|
|
30633
30733
|
return axios_default.post(url2, requestData, config).then((response) => transformQueryResponse(response, queryID, true)).catch(formatErrorResponse);
|
|
30634
30734
|
};
|
|
@@ -30703,12 +30803,14 @@
|
|
|
30703
30803
|
if (filter3) {
|
|
30704
30804
|
url2 = `${url2}&filter=${filter3}`;
|
|
30705
30805
|
}
|
|
30706
|
-
const config =
|
|
30707
|
-
|
|
30708
|
-
|
|
30806
|
+
const config = axiosUtils_default(
|
|
30807
|
+
{
|
|
30808
|
+
headers: {
|
|
30809
|
+
Authorization: `Bearer ${token}`
|
|
30810
|
+
}
|
|
30709
30811
|
},
|
|
30710
30812
|
cancelToken
|
|
30711
|
-
|
|
30813
|
+
);
|
|
30712
30814
|
return axios_default.get(url2, config).then((response) => Promise.resolve(response)).catch((error) => {
|
|
30713
30815
|
var _a2;
|
|
30714
30816
|
if ((error == null ? void 0 : error.message) === REQUEST_CANCELLED_ERROR) {
|
|
@@ -30878,7 +30980,8 @@
|
|
|
30878
30980
|
queryId,
|
|
30879
30981
|
domain,
|
|
30880
30982
|
apiKey,
|
|
30881
|
-
token
|
|
30983
|
+
token,
|
|
30984
|
+
isCorrect = false
|
|
30882
30985
|
} = {}) => {
|
|
30883
30986
|
if (!queryId) {
|
|
30884
30987
|
return Promise.reject(new Error("No query ID supplied" /* NO_QUERY_ID_SUPPLIED */));
|
|
@@ -30893,7 +30996,7 @@
|
|
|
30893
30996
|
}
|
|
30894
30997
|
};
|
|
30895
30998
|
const data = {
|
|
30896
|
-
is_correct:
|
|
30999
|
+
is_correct: isCorrect,
|
|
30897
31000
|
message
|
|
30898
31001
|
};
|
|
30899
31002
|
return axios_default.put(url2, data, config).then((response) => Promise.resolve(response)).catch((error) => {
|
|
@@ -30932,8 +31035,12 @@
|
|
|
30932
31035
|
};
|
|
30933
31036
|
var getSampleQueryRegex = (suggestionValues) => {
|
|
30934
31037
|
const valueArray = Object.keys(suggestionValues);
|
|
30935
|
-
const valueRegexArray = valueArray.map((value) =>
|
|
30936
|
-
|
|
31038
|
+
const valueRegexArray = valueArray.map((value) => {
|
|
31039
|
+
const esc = String(value).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
31040
|
+
return `\\b${esc}\\b`;
|
|
31041
|
+
});
|
|
31042
|
+
const pattern = valueRegexArray.join("|");
|
|
31043
|
+
const valueRegex = compileSafeRegex(pattern, "gm");
|
|
30937
31044
|
return valueRegex;
|
|
30938
31045
|
};
|
|
30939
31046
|
var getSampleQueryText = (query, values = {}) => {
|
|
@@ -30947,9 +31054,14 @@
|
|
|
30947
31054
|
var _a;
|
|
30948
31055
|
const chunk = values[valueKey];
|
|
30949
31056
|
const replacementText = (_a = chunk == null ? void 0 : chunk.replacement) == null ? void 0 : _a.format_txt;
|
|
30950
|
-
const
|
|
31057
|
+
const pattern = `\\b${valueKey}\\b`;
|
|
31058
|
+
const valueKeyRegex = compileSafeRegex(pattern);
|
|
30951
31059
|
if (replacementText) {
|
|
30952
|
-
|
|
31060
|
+
if (valueKeyRegex) {
|
|
31061
|
+
queryText = queryText.replace(valueKeyRegex, replacementText);
|
|
31062
|
+
} else if (isSimpleLiteral(valueKey)) {
|
|
31063
|
+
queryText = String(queryText).split(valueKey).join(replacementText);
|
|
31064
|
+
}
|
|
30953
31065
|
}
|
|
30954
31066
|
});
|
|
30955
31067
|
return queryText;
|
|
@@ -31041,6 +31153,7 @@
|
|
|
31041
31153
|
}
|
|
31042
31154
|
};
|
|
31043
31155
|
var getSampleQueryChunks = (query, values = {}) => {
|
|
31156
|
+
var _a, _b;
|
|
31044
31157
|
try {
|
|
31045
31158
|
const valueArray = Object.keys(values);
|
|
31046
31159
|
if (!(valueArray == null ? void 0 : valueArray.length)) {
|
|
@@ -31052,22 +31165,57 @@
|
|
|
31052
31165
|
}
|
|
31053
31166
|
];
|
|
31054
31167
|
}
|
|
31055
|
-
const valueRegexArray = valueArray.map((value) => `(\\b${value}\\b)`);
|
|
31056
|
-
const valueRegex = new RegExp(valueRegexArray.join("|"), "gm");
|
|
31057
31168
|
let splitStrArray = [query];
|
|
31058
|
-
if (valueArray
|
|
31059
|
-
|
|
31169
|
+
if (valueArray.length < 500) {
|
|
31170
|
+
const valueRegexArray = valueArray.map((value) => {
|
|
31171
|
+
const esc = String(value).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
31172
|
+
return `(\\b${esc}\\b)`;
|
|
31173
|
+
});
|
|
31174
|
+
const pattern = valueRegexArray.join("|");
|
|
31175
|
+
const valueRegex = compileSafeRegex(pattern, "gm");
|
|
31176
|
+
if (valueRegex) {
|
|
31177
|
+
splitStrArray = query.split(valueRegex);
|
|
31178
|
+
}
|
|
31179
|
+
}
|
|
31180
|
+
if (splitStrArray.length === 1) {
|
|
31181
|
+
const result = [];
|
|
31182
|
+
let remaining = query;
|
|
31183
|
+
const sortedValues = [...valueArray].sort((a, b) => b.length - a.length);
|
|
31184
|
+
for (const value of sortedValues) {
|
|
31185
|
+
const escaped = String(value).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
31186
|
+
const re2 = compileSafeRegex(`\\b${escaped}\\b`, "i");
|
|
31187
|
+
let match = null;
|
|
31188
|
+
let matchedText = "";
|
|
31189
|
+
if (re2) {
|
|
31190
|
+
match = re2.exec(remaining);
|
|
31191
|
+
matchedText = (_a = match == null ? void 0 : match[0]) != null ? _a : "";
|
|
31192
|
+
} else if (isSimpleLiteral(value)) {
|
|
31193
|
+
const idx = remaining.toLowerCase().indexOf(String(value).toLowerCase());
|
|
31194
|
+
if (idx >= 0) {
|
|
31195
|
+
match = [String(value)];
|
|
31196
|
+
matchedText = remaining.substr(idx, String(value).length);
|
|
31197
|
+
match.index = idx;
|
|
31198
|
+
}
|
|
31199
|
+
}
|
|
31200
|
+
if (match) {
|
|
31201
|
+
const matchIndex = (_b = match.index) != null ? _b : 0;
|
|
31202
|
+
result.push(remaining.substring(0, matchIndex), matchedText || match[0]);
|
|
31203
|
+
remaining = remaining.substring(matchIndex + (matchedText || match[0]).length);
|
|
31204
|
+
}
|
|
31205
|
+
}
|
|
31206
|
+
if (remaining) result.push(remaining);
|
|
31207
|
+
splitStrArray = result;
|
|
31060
31208
|
}
|
|
31061
31209
|
const chunkedSuggestion = [];
|
|
31062
31210
|
splitStrArray.forEach((key) => {
|
|
31063
|
-
var
|
|
31064
|
-
const replacement = (
|
|
31211
|
+
var _a2, _b2;
|
|
31212
|
+
const replacement = (_a2 = values[key]) == null ? void 0 : _a2.replacement;
|
|
31065
31213
|
const type = getSampleQueryReplacementType(key, replacement);
|
|
31066
31214
|
const name = key == null ? void 0 : key.trim();
|
|
31067
31215
|
if (!type || !name) {
|
|
31068
31216
|
return;
|
|
31069
31217
|
}
|
|
31070
|
-
let value = (
|
|
31218
|
+
let value = (_b2 = replacement == null ? void 0 : replacement.format_txt) == null ? void 0 : _b2.trim();
|
|
31071
31219
|
if (type == "TEXT" /* SAMPLE_QUERY_TEXT_TYPE */) {
|
|
31072
31220
|
value = name;
|
|
31073
31221
|
}
|
|
@@ -31120,12 +31268,14 @@
|
|
|
31120
31268
|
if (timezone2) {
|
|
31121
31269
|
url2 = `${url2}&time_zone=${timezone2}`;
|
|
31122
31270
|
}
|
|
31123
|
-
const config =
|
|
31124
|
-
|
|
31125
|
-
|
|
31271
|
+
const config = axiosUtils_default(
|
|
31272
|
+
{
|
|
31273
|
+
headers: {
|
|
31274
|
+
Authorization: `Bearer ${token}`
|
|
31275
|
+
}
|
|
31126
31276
|
},
|
|
31127
31277
|
cancelToken
|
|
31128
|
-
|
|
31278
|
+
);
|
|
31129
31279
|
return axios_default.get(url2, config).then((response) => {
|
|
31130
31280
|
return transformDataExplorerAutocompleteResponse(response);
|
|
31131
31281
|
}).catch((error) => {
|
|
@@ -31139,10 +31289,11 @@
|
|
|
31139
31289
|
});
|
|
31140
31290
|
};
|
|
31141
31291
|
var transformVLForDataExplorerSuggestions = (vl) => {
|
|
31292
|
+
var _a;
|
|
31142
31293
|
return {
|
|
31143
31294
|
name: vl.keyword,
|
|
31144
31295
|
alias_name: vl.show_message,
|
|
31145
|
-
column_name: vl.column_name
|
|
31296
|
+
column_name: (_a = vl.column_name) != null ? _a : ""
|
|
31146
31297
|
};
|
|
31147
31298
|
};
|
|
31148
31299
|
var fetchDataExplorerSampleQueries = async ({
|
|
@@ -31160,12 +31311,14 @@
|
|
|
31160
31311
|
context,
|
|
31161
31312
|
columns
|
|
31162
31313
|
};
|
|
31163
|
-
const config =
|
|
31164
|
-
|
|
31165
|
-
|
|
31314
|
+
const config = axiosUtils_default(
|
|
31315
|
+
{
|
|
31316
|
+
headers: {
|
|
31317
|
+
Authorization: `Bearer ${token}`
|
|
31318
|
+
}
|
|
31166
31319
|
},
|
|
31167
31320
|
cancelToken
|
|
31168
|
-
|
|
31321
|
+
);
|
|
31169
31322
|
return axios_default.post(url2, data, config).then((response) => {
|
|
31170
31323
|
var _a, _b, _c, _d;
|
|
31171
31324
|
if ((_b = (_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) == null ? void 0 : _b.suggestions) {
|
|
@@ -31231,7 +31384,13 @@
|
|
|
31231
31384
|
return Promise.reject((_a2 = error == null ? void 0 : error.response) == null ? void 0 : _a2.data);
|
|
31232
31385
|
});
|
|
31233
31386
|
};
|
|
31234
|
-
var fetchSubjectListV2 = ({
|
|
31387
|
+
var fetchSubjectListV2 = ({
|
|
31388
|
+
domain,
|
|
31389
|
+
apiKey,
|
|
31390
|
+
token,
|
|
31391
|
+
valueLabel,
|
|
31392
|
+
cancelToken
|
|
31393
|
+
}) => {
|
|
31235
31394
|
if (!token || !domain || !apiKey) {
|
|
31236
31395
|
return Promise.reject(new Error("Unauthenticated"));
|
|
31237
31396
|
}
|
|
@@ -31239,12 +31398,14 @@
|
|
|
31239
31398
|
if (valueLabel) {
|
|
31240
31399
|
url2 += `&value_label=${valueLabel}`;
|
|
31241
31400
|
}
|
|
31242
|
-
const config =
|
|
31243
|
-
|
|
31244
|
-
|
|
31401
|
+
const config = axiosUtils_default(
|
|
31402
|
+
{
|
|
31403
|
+
headers: {
|
|
31404
|
+
Authorization: `Bearer ${token}`
|
|
31405
|
+
}
|
|
31245
31406
|
},
|
|
31246
31407
|
cancelToken
|
|
31247
|
-
|
|
31408
|
+
);
|
|
31248
31409
|
return axios_default.get(url2, config).then((response) => {
|
|
31249
31410
|
var _a, _b;
|
|
31250
31411
|
let subjectList = [];
|
|
@@ -31306,12 +31467,14 @@
|
|
|
31306
31467
|
return Promise.reject(new Error("Unauthenticated"));
|
|
31307
31468
|
}
|
|
31308
31469
|
const url2 = `${domain}/autoql/api/v1/query/preview?key=${apiKey}`;
|
|
31309
|
-
const config =
|
|
31310
|
-
|
|
31311
|
-
|
|
31470
|
+
const config = axiosUtils_default(
|
|
31471
|
+
{
|
|
31472
|
+
headers: {
|
|
31473
|
+
Authorization: `Bearer ${token}`
|
|
31474
|
+
}
|
|
31312
31475
|
},
|
|
31313
31476
|
cancelToken
|
|
31314
|
-
|
|
31477
|
+
);
|
|
31315
31478
|
const data = {
|
|
31316
31479
|
subject,
|
|
31317
31480
|
page_size: numRows,
|