@vizzly/dashboard 0.15.0-dev-df6a888afc7272341aed2da83a5290bca83e406b → 0.15.0-dev-abd38c3135e9c81774564b32bbe7750a29cc6448

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.
Files changed (31) hide show
  1. package/dist/dashboard.cjs.development.js +202 -358
  2. package/dist/dashboard.cjs.production.min.js +1 -1
  3. package/dist/dashboard.esm.js +202 -358
  4. package/dist/results-driver/src/driver/VizzlyQuery/AreaChart/toQueries.d.ts +1 -1
  5. package/dist/results-driver/src/driver/VizzlyQuery/AreaChartV2/toQueries.d.ts +1 -1
  6. package/dist/results-driver/src/driver/VizzlyQuery/BarChart/toQueries.d.ts +1 -1
  7. package/dist/results-driver/src/driver/VizzlyQuery/BarChartV2/toQueries.d.ts +1 -1
  8. package/dist/results-driver/src/driver/VizzlyQuery/BasicTable/toQueries.d.ts +1 -1
  9. package/dist/results-driver/src/driver/VizzlyQuery/FunnelChart/toQueries.d.ts +1 -1
  10. package/dist/results-driver/src/driver/VizzlyQuery/HorizontalBarChart/toQueries.d.ts +1 -1
  11. package/dist/results-driver/src/driver/VizzlyQuery/LineChart/toQueries.d.ts +1 -1
  12. package/dist/results-driver/src/driver/VizzlyQuery/LineChartV2/toQueries.d.ts +1 -1
  13. package/dist/results-driver/src/driver/VizzlyQuery/PieChart/toQueries.d.ts +1 -1
  14. package/dist/results-driver/src/driver/VizzlyQuery/PivotTable/toQueries.d.ts +1 -1
  15. package/dist/results-driver/src/driver/VizzlyQuery/RadarChart/toQueries.d.ts +1 -1
  16. package/dist/results-driver/src/driver/VizzlyQuery/RichText/toQueries.d.ts +1 -1
  17. package/dist/results-driver/src/driver/VizzlyQuery/SunburstChart/toQueries.d.ts +1 -1
  18. package/dist/results-driver/src/driver/VizzlyQuery/WaterfallChart/toQueries.d.ts +1 -1
  19. package/dist/shared-logic/src/AdditionalFilter/types.d.ts +4 -1
  20. package/dist/shared-logic/src/CustomField/SimpleMath/index.d.ts +1 -1
  21. package/dist/shared-logic/src/Filter/Filter.d.ts +1 -1
  22. package/dist/shared-logic/src/Filter/types.d.ts +2 -4
  23. package/dist/shared-logic/src/JSQueryEngine/types.d.ts +2 -8
  24. package/dist/shared-logic/src/Query/Query.d.ts +9 -3
  25. package/dist/shared-logic/src/Query/buildFromQueryAttributes.d.ts +1 -1
  26. package/dist/shared-logic/src/Query/types.d.ts +6 -109
  27. package/dist/shared-logic/src/TimeDimension/TimeDimension.d.ts +3 -1
  28. package/dist/shared-logic/src/api/queryEngine/getRunQueriesCallback.d.ts +1 -1
  29. package/dist/shared-ui/src/base/Panel/Panel.d.ts +1 -1
  30. package/package.json +3 -3
  31. package/dist/shared-logic/src/Filter/Where.d.ts +0 -6
@@ -1108,33 +1108,6 @@ var FieldNotFoundInDataSet = /*#__PURE__*/function (_ValidationError) {
1108
1108
  return FieldNotFoundInDataSet;
1109
1109
  }(ValidationError);
1110
1110
 
1111
- var timeDimensionsConstants = QueryEngineConfig.Constants.timeDimensionsConstants;
1112
-
1113
- // All the aggregates Vizzly supports somewhere...
1114
- // Not necessarily all the aggregates that are supported because each
1115
- // integration could support different aggregates
1116
-
1117
- var id$1 = function id(metric) {
1118
- if (!(metric != null && metric.truncate) || (metric == null ? void 0 : metric.truncate) == 'none') return metric == null ? void 0 : metric.field;
1119
- return metric.field + "_" + metric.truncate;
1120
- };
1121
- var decodeId$1 = function decodeId(metric, supportedTimeTruncFunctions) {
1122
- var parts = metric.split('_');
1123
- var truncate = parts.pop();
1124
- if (truncate && !isSupportedTimeTruncFunction(supportedTimeTruncFunctions, truncate)) {
1125
- return null;
1126
- }
1127
- var field = parts.join('_');
1128
- return {
1129
- field: field,
1130
- truncate: truncate != null ? truncate : ''
1131
- };
1132
- };
1133
- var vizzlyManagedTimeDimensions = timeDimensionsConstants;
1134
- var isSupportedTimeTruncFunction = function isSupportedTimeTruncFunction(supportedTimeFunctions, proposedFunction) {
1135
- return [].concat(Object.keys(supportedTimeFunctions), ['none']).includes(proposedFunction);
1136
- };
1137
-
1138
1111
  var filterIsDate = function filterIsDate(filter) {
1139
1112
  var isoDateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
1140
1113
  if (!isoDateRegex.test(filter.value)) {
@@ -1369,103 +1342,6 @@ function extractValue(variables, key) {
1369
1342
  return variables[key].value;
1370
1343
  }
1371
1344
 
1372
- var addAndFilters = function addAndFilters(filter, filterToAddToAll) {
1373
- if (!filter || isEmpty$2(filter)) filter = [[]];
1374
- return [].concat(filter).map(function (andFilter) {
1375
- return [].concat(andFilter, filterToAddToAll);
1376
- });
1377
- };
1378
- var filterAttributeToQueryFilter = function filterAttributeToQueryFilter(filters, queryEngineConfig, dataSet, params) {
1379
- return filters.map(function (andFilters) {
1380
- return [].concat(andFilters).flatMap(function (andFilter) {
1381
- var _andFilter$function;
1382
- // Stop unsupported time functions being used.
1383
- if (andFilter["function"] && !isSupportedTimeTruncFunction(queryEngineConfig.supportedTimeTruncFunctions, andFilter["function"])) {
1384
- throw "Query engine does not support the query function " + andFilter["function"] + ".";
1385
- }
1386
- var dataSetField = findField(dataSet, andFilter.field);
1387
- var field = {
1388
- type: 'field',
1389
- value: andFilter.field,
1390
- "function": (_andFilter$function = andFilter["function"]) != null ? _andFilter$function : 'none'
1391
- };
1392
- if (isCustomField(dataSetField)) {
1393
- var _andFilter$function2;
1394
- field = toQueryMeasure({
1395
- field: dataSetField.id,
1396
- "function": (_andFilter$function2 = andFilter["function"]) != null ? _andFilter$function2 : 'none'
1397
- }, dataSetField, queryEngineConfig, dataSet, false, params);
1398
- }
1399
- // If `array_contains` operation has multiple. Then split these out into individual
1400
- // checks.
1401
- if ((andFilter.op == 'array_contains' || andFilter.op == 'array_does_not_contain') && Array.isArray(andFilter.value)) {
1402
- return [].concat(andFilter.value).map(function (value) {
1403
- return {
1404
- field: field,
1405
- op: andFilter.op,
1406
- value: value
1407
- };
1408
- });
1409
- }
1410
- var value = useValue(andFilter.value, params.variables);
1411
- if (isRelativeDateDefined(andFilter.value)) {
1412
- value = calculateRelativeDate(andFilter.value);
1413
- }
1414
- if (filterIsDate(andFilter)) {
1415
- value = getUTCDate(andFilter.value);
1416
- }
1417
- return [{
1418
- field: field,
1419
- op: andFilter.op,
1420
- value: value
1421
- }];
1422
- });
1423
- });
1424
- };
1425
- var isAvailable = function isAvailable(filter) {
1426
- return filter && isArray(filter) && isArray(filter[0]);
1427
- };
1428
- var isAdditionalFilter = function isAdditionalFilter(value) {
1429
- return value && isArray(value) && isArray(value[0]) && 'field' in value[0][0] && 'op' in value[0][0] && 'value' in value[0][0];
1430
- };
1431
-
1432
- var combineFilters = function combineFilters(array1, array2) {
1433
- var validArray1 = array1.length > 0 && array1[0] ? array1 : [[]];
1434
- var validArray2 = array2.length > 0 && array2[0] ? array2 : [[]];
1435
-
1436
- // If array1 has more than one sub-array, loop through each sub-array in array1
1437
- if (validArray1.length > 1) {
1438
- return validArray1.map(function (subArray) {
1439
- return [].concat(validArray2[0] || [], subArray || []);
1440
- });
1441
- }
1442
- // Otherwise, if array2 has more than one sub-array, loop through array2
1443
- else if (validArray2.length > 1) {
1444
- return validArray2.map(function (subArray) {
1445
- return [].concat(validArray1[0] || [], subArray || []);
1446
- });
1447
- }
1448
- // Default: merge both single sub-arrays
1449
- else {
1450
- return [[].concat(validArray1[0] || [], validArray2[0] || [])];
1451
- }
1452
- };
1453
- function combineForCustomMetricFilters(filters, customFilters) {
1454
- var combinedFilters = [];
1455
- if (customFilters && isAvailable(customFilters)) {
1456
- customFilters.forEach(function (orFilterGroup) {
1457
- combinedFilters = [].concat(combinedFilters, addAndFilters(filters != null ? filters : [], orFilterGroup));
1458
- });
1459
- } else {
1460
- combinedFilters = filters != null ? filters : [];
1461
- }
1462
- return combinedFilters;
1463
- }
1464
-
1465
- var generateId = function generateId() {
1466
- return v4().replace(/-/g, '');
1467
- };
1468
-
1469
1345
  /** Upcasts from an old global filter, to a new "additional filter" */
1470
1346
  var upcastToAdditionalFilter = function upcastToAdditionalFilter(globalFilter) {
1471
1347
  if (globalFilter.type == 'globalSelectFilter') {
@@ -1895,6 +1771,125 @@ var fromFilterConfig = function fromFilterConfig(filterConfig, dataSet, timeRang
1895
1771
  return filters;
1896
1772
  };
1897
1773
 
1774
+ var addAndFilters = function addAndFilters(filter, filterToAddToAll) {
1775
+ if (isEmpty$2(filterToAddToAll)) return [].concat(filter);
1776
+ if (!filter || isEmpty$2(filter)) filter = [[]];
1777
+ return [].concat(filter).map(function (andFilter) {
1778
+ return [].concat(andFilter, filterToAddToAll);
1779
+ });
1780
+ };
1781
+ var filterAttributeToQueryFilter = function filterAttributeToQueryFilter(filterAttrs, queryEngineConfig, dataSet, params) {
1782
+ var _params$filterConfig;
1783
+ // Either build using the filter attributes passed in, or take the viewFilters in the filter config.
1784
+ // They represent the same thing, however some view-filters are passed around in the filter config
1785
+ // to reduce custom metrics arguments being passed around.
1786
+ var filter = filterAttrs.length > 0 ? filterAttrs : ((_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.viewFilters) || [];
1787
+ var extraFilters = fromFilterConfig(params.filterConfig, dataSet, params.timeRangeOptions);
1788
+ var combinedFilters = addAndFilters(filter, extraFilters);
1789
+ if (Array.isArray(filter)) {
1790
+ return {
1791
+ type: 'orWhere',
1792
+ value: combinedFilters.map(function (andFilters) {
1793
+ return {
1794
+ type: 'andWhere',
1795
+ value: andFilters.map(function (filter) {
1796
+ var dataSetField = findField(dataSet, filter.field);
1797
+ var field = {
1798
+ type: 'field',
1799
+ value: filter.field,
1800
+ "function": filter["function"] || 'none'
1801
+ };
1802
+ if (isCustomField(dataSetField)) {
1803
+ var _filter$function;
1804
+ field = toQueryMeasure({
1805
+ field: dataSetField.id,
1806
+ "function": (_filter$function = filter["function"]) != null ? _filter$function : 'none'
1807
+ }, dataSetField, queryEngineConfig, dataSet, false, params);
1808
+ }
1809
+
1810
+ // If the value is an array, and we're checking that all values ARE or ARE NOT in a field, then we need to split
1811
+ // out this check into multiple filters, as a value in a filter cannot be an array.
1812
+ if ((filter.op == 'array_contains' || filter.op == 'array_does_not_contain') && Array.isArray(filter.value)) {
1813
+ return {
1814
+ type: 'andWhere',
1815
+ value: [].concat(filter.value).map(function (value) {
1816
+ return {
1817
+ type: 'where',
1818
+ value: {
1819
+ field: field,
1820
+ op: filter.op,
1821
+ value: value
1822
+ }
1823
+ };
1824
+ })
1825
+ };
1826
+ }
1827
+ var value = useValue(filter.value, params.variables);
1828
+ if (isRelativeDateDefined(filter.value)) {
1829
+ value = calculateRelativeDate(filter.value);
1830
+ }
1831
+ if (filterIsDate(filter)) {
1832
+ value = getUTCDate(filter.value);
1833
+ }
1834
+ return {
1835
+ type: 'where',
1836
+ value: {
1837
+ field: field,
1838
+ op: filter.op,
1839
+ value: value
1840
+ }
1841
+ };
1842
+ })
1843
+ };
1844
+ })
1845
+ };
1846
+ }
1847
+ return filter;
1848
+ };
1849
+ var isAvailable = function isAvailable(filter) {
1850
+ return filter && isArray(filter) && isArray(filter[0]);
1851
+ };
1852
+ var isAdditionalFilter = function isAdditionalFilter(value) {
1853
+ return value && isArray(value) && isArray(value[0]) && 'field' in value[0][0] && 'op' in value[0][0] && 'value' in value[0][0];
1854
+ };
1855
+
1856
+ var combineFilters = function combineFilters(array1, array2) {
1857
+ var validArray1 = array1.length > 0 && array1[0] ? array1 : [[]];
1858
+ var validArray2 = array2.length > 0 && array2[0] ? array2 : [[]];
1859
+
1860
+ // If array1 has more than one sub-array, loop through each sub-array in array1
1861
+ if (validArray1.length > 1) {
1862
+ return validArray1.map(function (subArray) {
1863
+ return [].concat(validArray2[0] || [], subArray || []);
1864
+ });
1865
+ }
1866
+ // Otherwise, if array2 has more than one sub-array, loop through array2
1867
+ else if (validArray2.length > 1) {
1868
+ return validArray2.map(function (subArray) {
1869
+ return [].concat(validArray1[0] || [], subArray || []);
1870
+ });
1871
+ }
1872
+ // Default: merge both single sub-arrays
1873
+ else {
1874
+ return [[].concat(validArray1[0] || [], validArray2[0] || [])];
1875
+ }
1876
+ };
1877
+ function combineForCustomMetricFilters(filters, customFilters) {
1878
+ var combinedFilters = [];
1879
+ if (customFilters && isAvailable(customFilters)) {
1880
+ customFilters.forEach(function (orFilterGroup) {
1881
+ combinedFilters = [].concat(combinedFilters, addAndFilters(filters != null ? filters : [], orFilterGroup));
1882
+ });
1883
+ } else {
1884
+ combinedFilters = filters != null ? filters : [];
1885
+ }
1886
+ return combinedFilters;
1887
+ }
1888
+
1889
+ var generateId = function generateId() {
1890
+ return v4().replace(/-/g, '');
1891
+ };
1892
+
1898
1893
  /**
1899
1894
  * Creates a new custom percentage field.
1900
1895
  */
@@ -1921,7 +1916,7 @@ var init$1 = function init(publicName, denominatorFieldId, denominatorAggregate,
1921
1916
  var build$2 = function build(customField, queryEngineConfig, dataSet, _queryHasDimension, params) {
1922
1917
  var _params$filterConfig$, _params$filterConfig, _customField$numerato, _customField$numerato2, _customField$denomina, _customField$denomina2;
1923
1918
  var localAndDashboardFilters = fromFilterConfig(params.filterConfig, dataSet, params.timeRangeOptions);
1924
- var _buildPercentageFilte = buildPercentageFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.advancedFilter) != null ? _params$filterConfig$ : [], localAndDashboardFilters), customField),
1919
+ var _buildPercentageFilte = buildPercentageFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.viewFilters) != null ? _params$filterConfig$ : [], localAndDashboardFilters), customField),
1925
1920
  combinedNominatorFilters = _buildPercentageFilte.combinedNominatorFilters,
1926
1921
  combinedDenominatorFilters = _buildPercentageFilte.combinedDenominatorFilters;
1927
1922
  var left = {
@@ -1943,24 +1938,36 @@ var build$2 = function build(customField, queryEngineConfig, dataSet, _queryHasD
1943
1938
  filter: filterAttributeToQueryFilter(combinedDenominatorFilters || [], queryEngineConfig, dataSet, params)
1944
1939
  }
1945
1940
  };
1946
- var denominatorForWithinGroupingScope = buildSide(right, isAvailable(customField.denominatorFilter) ? filterAttributeToQueryFilter(combinedDenominatorFilters, queryEngineConfig, dataSet, params) : []);
1941
+ var denominatorForWithinGroupingScope = buildSide(right, isAvailable(customField.denominatorFilter) ? filterAttributeToQueryFilter(combinedDenominatorFilters, queryEngineConfig, dataSet, params) : {
1942
+ type: 'andWhere',
1943
+ value: []
1944
+ });
1947
1945
  return {
1948
1946
  type: 'maths',
1949
- left: buildSide(left, isAvailable(customField.numeratorFilter) ? filterAttributeToQueryFilter(combinedNominatorFilters, queryEngineConfig, dataSet, params) : []),
1947
+ left: buildSide(left, isAvailable(customField.numeratorFilter) ? filterAttributeToQueryFilter(combinedNominatorFilters, queryEngineConfig, dataSet, params) : {
1948
+ type: 'andWhere',
1949
+ value: []
1950
+ }),
1950
1951
  op: '/',
1951
1952
  right: customField.denominatorScope === 'withinGrouping' ? denominatorForWithinGroupingScope : denominatorForAllScope
1952
1953
  };
1953
1954
  };
1954
1955
  var buildSide = function buildSide(field, filter) {
1955
- var alwaysTrueFilter = [[{
1956
- value: 1,
1957
- op: '=',
1958
- field: {
1959
- type: 'number',
1960
- value: 1
1961
- }
1962
- }]];
1963
- var hasNumeratorFilter = filter.length > 0 && filter[0].length > 0;
1956
+ var alwaysTrueFilter = {
1957
+ type: 'andWhere',
1958
+ value: [{
1959
+ type: 'where',
1960
+ value: {
1961
+ field: {
1962
+ type: 'number',
1963
+ value: 2
1964
+ },
1965
+ op: '=',
1966
+ value: 2
1967
+ }
1968
+ }]
1969
+ };
1970
+ var hasNumeratorFilter = filter.type === 'where' || filter.value.length > 0;
1964
1971
  if (!hasNumeratorFilter) {
1965
1972
  return {
1966
1973
  type: 'field',
@@ -2334,7 +2341,7 @@ var buildIfLogic = function buildIfLogic(ifLogic, dataSet, localAndDashboardFilt
2334
2341
  var cases = function () {
2335
2342
  var thenCases = ifLogic.cases.map(function (c) {
2336
2343
  var _params$filterConfig$, _params$filterConfig;
2337
- var customMetricFilter = combineForCustomMetricFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.advancedFilter) != null ? _params$filterConfig$ : [], localAndDashboardFilters), c.filter);
2344
+ var customMetricFilter = combineForCustomMetricFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.viewFilters) != null ? _params$filterConfig$ : [], localAndDashboardFilters), c.filter);
2338
2345
  return {
2339
2346
  returns: buildMetric(c.returns, dataSet, params, measureAttribute),
2340
2347
  filter: filterAttributeToQueryFilter(customMetricFilter, queryEngineConfig, dataSet, params)
@@ -2642,6 +2649,33 @@ var mergeAttributes = function mergeAttributes(partial, existingProps) {
2642
2649
  return _doMerge(existingProps, partial);
2643
2650
  };
2644
2651
 
2652
+ var timeDimensionsConstants = QueryEngineConfig.Constants.timeDimensionsConstants;
2653
+
2654
+ // All the aggregates Vizzly supports somewhere...
2655
+ // Not necessarily all the aggregates that are supported because each
2656
+ // integration could support different aggregates
2657
+
2658
+ var id$1 = function id(metric) {
2659
+ if (!(metric != null && metric.truncate) || (metric == null ? void 0 : metric.truncate) == 'none') return metric == null ? void 0 : metric.field;
2660
+ return metric.field + "_" + metric.truncate;
2661
+ };
2662
+ var decodeId$1 = function decodeId(metric, supportedTimeTruncFunctions) {
2663
+ var parts = metric.split('_');
2664
+ var truncate = parts.pop();
2665
+ if (truncate && !isSupportedTimeTruncFunction(supportedTimeTruncFunctions, truncate)) {
2666
+ return null;
2667
+ }
2668
+ var field = parts.join('_');
2669
+ return {
2670
+ field: field,
2671
+ truncate: truncate != null ? truncate : ''
2672
+ };
2673
+ };
2674
+ var vizzlyManagedTimeDimensions = timeDimensionsConstants;
2675
+ var isSupportedTimeTruncFunction = function isSupportedTimeTruncFunction(supportedTimeFunctions, proposedFunction) {
2676
+ return [].concat(Object.keys(supportedTimeFunctions), ['none']).includes(proposedFunction);
2677
+ };
2678
+
2645
2679
  var id$2 = id;
2646
2680
  var decodeId$2 = decodeId;
2647
2681
  var hasAggregate = function hasAggregate(metric) {
@@ -25908,149 +25942,15 @@ var filterStyles = /*#__PURE__*/Object.assign(function () {
25908
25942
  complete: complete
25909
25943
  });
25910
25944
 
25911
- var Clause = /*#__PURE__*/function (Clause) {
25912
- Clause["AND_WHERE"] = "andWhere";
25913
- Clause["OR_WHERE"] = "orWhere";
25914
- Clause["WHERE"] = "where";
25915
- return Clause;
25916
- }({});
25917
-
25918
- // export type WhereClause = SqlAST.MultiWhereToken<any>;
25919
-
25920
- var filterConfigToWhere = function filterConfigToWhere(dataSet, queryEngineConfig, params) {
25921
- if (!params) return undefined;
25922
- var filterConfig = params.filterConfig;
25923
- if (!params || !filterConfig || (!filterConfig.globalFilters || filterConfig.globalFilters.length === 0) && (!filterConfig.localFilters || filterConfig.localFilters.length === 0) && (!filterConfig.advancedFilter || filterConfig.advancedFilter.length === 0 || filterConfig.advancedFilter.every(function (arr) {
25924
- return arr.length === 0;
25925
- }))) {
25926
- return undefined;
25927
- }
25928
- var dash = buildAndWhere(dataSet, queryEngineConfig, params, filterConfig.globalFilters);
25929
- var local = buildAndWhere(dataSet, queryEngineConfig, params, filterConfig.localFilters);
25930
- var advancedFilters = buildFromFiltersArray(dataSet, queryEngineConfig, params, filterConfig.advancedFilter);
25931
- var combinedAndWhere = [dash, local, advancedFilters].filter(Boolean).filter(function (whereClause) {
25932
- return whereClause && whereClause.value.length > 0;
25933
- });
25934
- if (combinedAndWhere.length === 0) return undefined;
25935
- return {
25936
- type: Clause.AND_WHERE,
25937
- value: combinedAndWhere
25938
- };
25939
- };
25940
- var buildAndWhere = function buildAndWhere(dataSet, queryEngineConfig, params, additionalFilters) {
25941
- if (!additionalFilters || additionalFilters.length === 0) return undefined;
25942
- var whereClauses = [];
25943
- additionalFilters.forEach(function (additionalFilter) {
25944
- if (additionalFilter.type === DATE_AND_TIME_FILTER || additionalFilter.type === DATE_FILTER) {
25945
- toRelativeQueryAttributesFilters(additionalFilter, dataSet).forEach(function (f) {
25946
- whereClauses.push(buildWhereFromSingleFilter(dataSet, f, queryEngineConfig, params));
25947
- });
25948
- }
25949
- if (Array.isArray(additionalFilter.value) && additionalFilter.value.length > 1 && isAdditionalFilter(additionalFilter.value)) {
25950
- additionalFilter.appliesToFields.flatMap(function (field) {
25951
- if (field.dataSetId != dataSet.id) return [];
25952
- var convertedToWhere = buildFromFiltersArray(dataSet, queryEngineConfig, params, additionalFilter.value);
25953
- if (convertedToWhere) {
25954
- whereClauses.push(convertedToWhere);
25955
- }
25956
- return;
25957
- });
25958
- } else {
25959
- toQueryAttributesFilter(dataSet, additionalFilter, params.timeRangeOptions).forEach(function (f) {
25960
- whereClauses.push(buildWhereFromSingleFilter(dataSet, f, queryEngineConfig, params));
25961
- });
25962
- }
25963
- });
25964
- return {
25965
- type: Clause.AND_WHERE,
25966
- value: whereClauses
25967
- };
25968
- };
25969
- var buildWhereFromSingleFilter = function buildWhereFromSingleFilter(dataSet, f, queryEngineConfig, params) {
25970
- var field;
25971
- if (f["function"] && !isSupportedTimeTruncFunction(queryEngineConfig.supportedTimeTruncFunctions, f["function"])) {
25972
- throw "Query engine does not support the query function " + f["function"] + ".";
25973
- }
25974
- var dataSetField = findField(dataSet, f.field);
25975
- if (isCustomField(dataSetField)) {
25976
- var _f$function;
25977
- field = toQueryMeasure({
25978
- field: dataSetField.id,
25979
- "function": (_f$function = f["function"]) != null ? _f$function : 'none'
25980
- }, dataSetField, queryEngineConfig, dataSet, false, params);
25981
- } else {
25982
- var _decodedField$functio;
25983
- var decodedField = decodeId(f.field, queryEngineConfig);
25984
- field = {
25985
- type: 'field',
25986
- value: decodedField.field,
25987
- "function": (_decodedField$functio = decodedField["function"]) != null ? _decodedField$functio : 'none'
25988
- };
25989
- }
25990
- if ((f.op == 'array_contains' || f.op == 'array_does_not_contain') && Array.isArray(f.value)) {
25991
- return arrayContainsFilters(f, dataSet, queryEngineConfig, params);
25992
- }
25993
- var value = useValue(f.value, params.variables);
25994
- if (isRelativeDateDefined(f.value)) {
25995
- value = calculateRelativeDate(f.value);
25996
- }
25997
- if (filterIsDate(f)) {
25998
- value = getUTCDate(f.value);
25999
- }
26000
- return {
26001
- type: Clause.WHERE,
26002
- value: {
26003
- op: f.op,
26004
- value: value,
26005
- field: field
26006
- }
26007
- };
26008
- };
26009
- var buildFromFiltersArray = function buildFromFiltersArray(dataSet, queryEngineConfig, params, filters) {
26010
- if (!filters || filters.length === 0 || filters.every(function (arr) {
26011
- return arr.length === 0;
26012
- })) {
26013
- return undefined;
26014
- }
26015
- if (filters.length === 1) return buildFromFilters(filters[0], dataSet, queryEngineConfig, params);
26016
- return {
26017
- type: Clause.OR_WHERE,
26018
- value: filters.map(function (filter) {
26019
- return buildFromFilters(filter, dataSet, queryEngineConfig, params);
26020
- })
26021
- };
26022
- };
26023
- var buildFromFilters = function buildFromFilters(filter, dataSet, queryEngineConfig, params) {
26024
- return {
26025
- type: Clause.AND_WHERE,
26026
- value: filter.map(function (filter) {
26027
- if ((filter.op == 'array_contains' || filter.op == 'array_does_not_contain') && Array.isArray(filter.value)) {
26028
- return arrayContainsFilters(filter, dataSet, queryEngineConfig, params);
26029
- }
26030
- return buildWhereFromSingleFilter(dataSet, filter, queryEngineConfig, params);
26031
- })
26032
- };
26033
- };
26034
- var arrayContainsFilters = function arrayContainsFilters(filter, dataSet, queryEngineConfig, params) {
26035
- return {
26036
- type: Clause.AND_WHERE,
26037
- value: [].concat(filter.value).map(function (value) {
26038
- return buildWhereFromSingleFilter(dataSet, _extends({}, filter, {
26039
- value: value
26040
- }), queryEngineConfig, params);
26041
- })
26042
- };
26043
- };
26044
-
26045
25945
  var addMeasure = function addMeasure(current, toAdd) {
26046
25946
  return [[].concat(current, [toAdd]), current.length];
26047
25947
  };
26048
- var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measureAttr, orderAttr, dimensionAttr, timeDimensionAttr, limitAttr, offsetAttr, queryEngineConfig, params, prebuiltFilters) {
25948
+ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measureAttr, filterAttr, orderAttr, dimensionAttr, timeDimensionAttr, limitAttr, offsetAttr, queryEngineConfig, params) {
26049
25949
  var measureDescription = [];
26050
25950
  var measure = [];
26051
25951
  var group = [];
26052
25952
  var order = [];
26053
- var filters = buildFilters(dataSet, queryEngineConfig, params, prebuiltFilters);
25953
+ var filters = filterAttributeToQueryFilter(filterAttr, queryEngineConfig, dataSet, params);
26054
25954
  if (timeDimensionAttr) {
26055
25955
  // Add the measure for the time field.
26056
25956
  var addedAt = undefined;
@@ -26108,24 +26008,19 @@ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measur
26108
26008
  field: findField(dataSet, individualMeasure.field)
26109
26009
  }]);
26110
26010
  });
26111
- orderAttr.forEach(function (apiQueryOrderItem) {
26011
+ orderAttr.forEach(function (orderItem) {
26112
26012
  var index = measure.findIndex(function (individualMeasure) {
26113
26013
  if (individualMeasure.type == 'field') {
26114
- var sameFunction = individualMeasure["function"] == apiQueryOrderItem["function"];
26115
- // const isTimeFunc = Object.keys(queryEngineConfig.supportedTimeTruncFunctions).includes(
26116
- // individualMeasure.function
26117
- // );
26118
- var sameField = individualMeasure.value == apiQueryOrderItem.field;
26014
+ var sameFunction = individualMeasure["function"] == orderItem["function"];
26015
+ var sameField = individualMeasure.value == orderItem.field;
26119
26016
  return sameField && sameFunction;
26120
-
26121
- // return found;
26122
26017
  }
26123
26018
  return false;
26124
26019
  });
26125
26020
  if (index >= 0) {
26126
26021
  order = [].concat(order, [{
26127
26022
  index: index,
26128
- direction: apiQueryOrderItem.direction
26023
+ direction: orderItem.direction
26129
26024
  }]);
26130
26025
  }
26131
26026
  });
@@ -26150,7 +26045,6 @@ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measur
26150
26045
  dataSetId: dataSet.id,
26151
26046
  measure: measure,
26152
26047
  group: group,
26153
- // TODO: Fix this type
26154
26048
  filter: filters,
26155
26049
  order: order,
26156
26050
  limit: limitAttr,
@@ -26159,19 +26053,6 @@ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measur
26159
26053
  measureDescription: measureDescription
26160
26054
  };
26161
26055
  };
26162
- var buildFilters = function buildFilters(dataSet, queryEngineConfig, params, prebuiltFilters) {
26163
- if (prebuiltFilters && prebuiltFilters.length > 0) {
26164
- var filter = [];
26165
- prebuiltFilters.forEach(function (andFilters) {
26166
- var newAndFilters = filterAttributeToQueryFilter([andFilters], queryEngineConfig, dataSet, params);
26167
- filter = [].concat(filter, [newAndFilters[0]]);
26168
- });
26169
- return filter;
26170
- }
26171
- var whereClause = filterConfigToWhere(dataSet, queryEngineConfig, params);
26172
- if (whereClause) return whereClause;
26173
- return [];
26174
- };
26175
26056
 
26176
26057
  var build$c = buildFromQueryAttributes;
26177
26058
  var hasDimensions = function hasDimensions(query) {
@@ -26199,7 +26080,10 @@ var buildUniqueArrayValuesPreparedQuery = function buildUniqueArrayValuesPrepare
26199
26080
  preparedQueryType: 'uniqueArrayValues',
26200
26081
  dataSetId: dataSetId,
26201
26082
  fieldId: dataSetField.id,
26202
- filter: optionsFilters || []
26083
+ filter: optionsFilters || {
26084
+ type: 'andWhere',
26085
+ value: []
26086
+ }
26203
26087
  },
26204
26088
  resultFields: [{
26205
26089
  id: dataSetField.id,
@@ -71658,32 +71542,6 @@ var TimeoutWaitingForVizzlyInstance = /*#__PURE__*/function (_Error) {
71658
71542
  return TimeoutWaitingForVizzlyInstance;
71659
71543
  }( /*#__PURE__*/_wrapNativeSuper(Error));
71660
71544
 
71661
- var joiOptions$1 = {
71662
- convert: false,
71663
- stripUnknown: false,
71664
- allowUnknown: true
71665
- };
71666
- var validateQuery = function validateQuery(params, queryEngineConfig) {
71667
- var validationResult = Joi.array().items(schema(queryEngineConfig)).validate(params, joiOptions$1);
71668
- if (validationResult.error) {
71669
- throw new ServicesValidationError(validationResult.error.message);
71670
- }
71671
- };
71672
- var filterSchema$1 = function filterSchema(queryEngineConfig) {
71673
- var _Joi$string;
71674
- return Joi.array().items(Joi.alternatives()["try"](Joi.object({
71675
- field: Joi.string().required().description('The ID of the field from the data set to reference.'),
71676
- op: (_Joi$string = Joi.string()).valid.apply(_Joi$string, Object.keys(queryEngineConfig.supportedOperators)).required(),
71677
- value: Joi.any().required()
71678
- }).description('A filter object to apply to the data set.'), Joi.array()));
71679
- };
71680
- var schema = function schema(queryEngineConfig) {
71681
- return Joi.object(_extends({}, querySchema(queryEngineConfig, {}), {
71682
- filter: filterSchema$1(queryEngineConfig),
71683
- timeDimension: Joi.alternatives(timeDimensionSchema(queryEngineConfig.supportedTimeTruncFunctions), Joi.valid(null))
71684
- }));
71685
- };
71686
-
71687
71545
  var validateDashboardJoiOptions = {
71688
71546
  convert: false,
71689
71547
  stripUnknown: false,
@@ -71761,7 +71619,7 @@ var toQueries = function toQueries(dataSets, queryAttributes, queryEngineConfig,
71761
71619
  var queries = queryAttributes.map(function (qA) {
71762
71620
  var dataSet = find(dataSets, qA.dataSetId);
71763
71621
  if (!dataSet) throw 'Data set not found for query attributes query';
71764
- return buildFromQueryAttributes(dataSet, qA.measure, qA.order, qA.dimension, qA.timeDimension, qA.limit, qA.offset, queryEngineConfig, params, qA.filter);
71622
+ return buildFromQueryAttributes(dataSet, qA.measure, qA.filter, qA.order, qA.dimension, qA.timeDimension, qA.limit, qA.offset, queryEngineConfig, params);
71765
71623
  });
71766
71624
  return {
71767
71625
  queries: queries.map(function (q) {
@@ -71819,7 +71677,7 @@ function getOptionsOrders(dataSetField) {
71819
71677
  }
71820
71678
 
71821
71679
  var commonToQueries = function commonToQueries(attributes, dataSet, queryEngineConfig, params) {
71822
- var _Query$build = build$c(dataSet, attributes.measure, attributes.order, attributes.dimension,
71680
+ var _Query$build = build$c(dataSet, attributes.measure, attributes.filter, attributes.order, attributes.dimension,
71823
71681
  // @ts-ignore
71824
71682
  attributes.timeDimension || null, attributes.limit, attributes.offset, queryEngineConfig, params),
71825
71683
  query = _Query$build.query,
@@ -71844,8 +71702,8 @@ var toQueries$6 = commonToQueries;
71844
71702
  var toQueries$7 = commonToQueries;
71845
71703
 
71846
71704
  var buildMainQueries = function buildMainQueries(attributes, dataSet, queryEngineConfig, params) {
71847
- var line = build$c(dataSet, attributes.lineMeasure, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71848
- var bar = build$c(dataSet, attributes.barMeasure, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71705
+ var line = build$c(dataSet, attributes.lineMeasure, attributes.filter, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71706
+ var bar = build$c(dataSet, attributes.barMeasure, attributes.filter, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71849
71707
  return {
71850
71708
  bar: bar,
71851
71709
  line: line
@@ -71872,8 +71730,8 @@ var toQueries$b = commonToQueries;
71872
71730
  var toQueries$c = commonToQueries;
71873
71731
 
71874
71732
  var buildMainQueries$1 = function buildMainQueries(attributes, dataSet, queryEngineConfig, params) {
71875
- var line = build$c(dataSet, attributes.lineMeasure, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71876
- var bar = build$c(dataSet, attributes.barMeasure, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71733
+ var line = build$c(dataSet, attributes.lineMeasure, attributes.filter, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71734
+ var bar = build$c(dataSet, attributes.barMeasure, attributes.filter, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71877
71735
  return {
71878
71736
  bar: bar,
71879
71737
  line: line
@@ -71892,7 +71750,7 @@ var toQueries$d = function toQueries(attributes, dataSet, queryEngineConfig, par
71892
71750
  };
71893
71751
 
71894
71752
  var buildMainQuery = function buildMainQuery(attributes, dataSet, queryEngineConfig, params) {
71895
- var _Query$build = build$c(dataSet, attributes.measure, [], [], null, 1, attributes.offset, queryEngineConfig, params),
71753
+ var _Query$build = build$c(dataSet, attributes.measure, attributes.filter, [], [], null, 1, attributes.offset, queryEngineConfig, params),
71896
71754
  query = _Query$build.query,
71897
71755
  measureDescription = _Query$build.measureDescription;
71898
71756
 
@@ -71920,7 +71778,7 @@ var buildMainQuery = function buildMainQuery(attributes, dataSet, queryEngineCon
71920
71778
  };
71921
71779
  var buildDeltaQuery = function buildDeltaQuery(dataSet, attributes, queryEngineConfig, params) {
71922
71780
  if (!attributes.deltaTimeDimension) return null;
71923
- return build$c(dataSet, attributes.measure, [{
71781
+ return build$c(dataSet, attributes.measure, attributes.filter, [{
71924
71782
  field: attributes.deltaTimeDimension.field,
71925
71783
  direction: 'asc',
71926
71784
  "function": attributes.deltaTimeDimension.truncate
@@ -71952,7 +71810,7 @@ var toQueries$f = function toQueries(attributes, dataSet, queryEngineConfig, par
71952
71810
  var measures = [];
71953
71811
  attributes.xMeasure && measures.push(attributes.xMeasure);
71954
71812
  attributes.yMeasure && measures.push(attributes.yMeasure);
71955
- var _Query$build = build$c(dataSet, measures, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71813
+ var _Query$build = build$c(dataSet, measures, attributes.filter, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71956
71814
  query = _Query$build.query,
71957
71815
  measureDescription = _Query$build.measureDescription;
71958
71816
  var resultFields = toResultFields([measureDescription], queryEngineConfig);
@@ -71966,7 +71824,7 @@ var toQueries$g = function toQueries(attributes, dataSet, queryEngineConfig, par
71966
71824
  var measures = [];
71967
71825
  attributes.xMeasure && measures.push(attributes.xMeasure);
71968
71826
  attributes.yMeasure && measures.push(attributes.yMeasure);
71969
- var _Query$build = build$c(dataSet, measures, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71827
+ var _Query$build = build$c(dataSet, measures, attributes.filter, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71970
71828
  query = _Query$build.query,
71971
71829
  measureDescription = _Query$build.measureDescription;
71972
71830
  var resultFields = toResultFields([measureDescription], queryEngineConfig);
@@ -71978,7 +71836,7 @@ var toQueries$g = function toQueries(attributes, dataSet, queryEngineConfig, par
71978
71836
 
71979
71837
  var toQueries$h = function toQueries(attributes, dataSet, queryEngineConfig, params) {
71980
71838
  var measures = [].concat(attributes.measure || [], attributes.xMeasure || [], attributes.zMeasure || []);
71981
- var _Query$build = build$c(dataSet, measures, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71839
+ var _Query$build = build$c(dataSet, measures, attributes.filter, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71982
71840
  query = _Query$build.query,
71983
71841
  measureDescription = _Query$build.measureDescription;
71984
71842
  var resultFields = toResultFields([measureDescription], queryEngineConfig);
@@ -72090,20 +71948,7 @@ var buildVizzlyQuery = function buildVizzlyQuery(thing, queryEngineConfig, param
72090
71948
  queriesToSend = [_query];
72091
71949
  resultFields = [_rF];
72092
71950
  } else if (Array.isArray(thing)) {
72093
- var queriesInAttributesFormat = [].concat(thing).map(function (queryAttributes) {
72094
- var dataSet = find(params.dataSets, queryAttributes.dataSetId);
72095
- if (!dataSet) throw 'Data set not found for query-attributes query';
72096
- return _extends({}, queryAttributes, {
72097
- // TODO; this means that services queries that povide a query, cannot work... GTDEV-6947
72098
- filter: [],
72099
- whereClause: filterConfigToWhere(dataSet, queryEngineConfig, _extends({}, params, {
72100
- filterConfig: _extends({}, params.filterConfig, {
72101
- advancedFilter: queryAttributes.filter
72102
- })
72103
- }))
72104
- });
72105
- });
72106
- var _fromQueryAttributes = toQueries(params.dataSets, queriesInAttributesFormat, queryEngineConfig, params),
71951
+ var _fromQueryAttributes = toQueries(params.dataSets, thing, queryEngineConfig, params),
72107
71952
  q = _fromQueryAttributes.queries,
72108
71953
  _rF2 = _fromQueryAttributes.resultFields;
72109
71954
  queriesToSend = q;
@@ -72115,7 +71960,7 @@ var buildVizzlyQuery = function buildVizzlyQuery(thing, queryEngineConfig, param
72115
71960
  if (!_dataSet) throw 'Data set not found for view attributes query';
72116
71961
  var _buildVizzlyViewQueri = buildVizzlyViewQueries(thing, _dataSet, queryEngineConfig, _extends({}, params, {
72117
71962
  filterConfig: _extends({}, params.filterConfig, {
72118
- advancedFilter: thing.filter
71963
+ viewFilters: thing.filter
72119
71964
  })
72120
71965
  })),
72121
71966
  _q = _buildVizzlyViewQueri.queries,
@@ -72152,7 +71997,7 @@ var set = function set(cacheKey, item, expiryInSeconds) {
72152
71997
  var key = JSON.stringify(cacheKey);
72153
71998
  var expires = new Date();
72154
71999
  expires.setSeconds(expires.getSeconds() + expiryInSeconds);
72155
- logDebug("Browser cache new object set.", key);
72000
+ logDebug('Browser cache new object set.', key);
72156
72001
  cache$1[key] = {
72157
72002
  item: item,
72158
72003
  expires: expires
@@ -72162,10 +72007,10 @@ var get = function get(cacheKey) {
72162
72007
  var key = JSON.stringify(cacheKey);
72163
72008
  var retrieved = cache$1[key];
72164
72009
  if (!retrieved) {
72165
- logDebug("Browser cache miss.", cacheKey);
72010
+ logDebug('Browser cache miss.', cacheKey);
72166
72011
  return null;
72167
72012
  }
72168
- logDebug("Browser cache hit.", cacheKey);
72013
+ logDebug('Browser cache hit.', cacheKey);
72169
72014
  var item = retrieved.item,
72170
72015
  expires = retrieved.expires;
72171
72016
  var now = new Date();
@@ -72177,7 +72022,7 @@ var get = function get(cacheKey) {
72177
72022
  return null;
72178
72023
  };
72179
72024
  var clear$1 = function clear() {
72180
- logDebug("Browser cache cleared.");
72025
+ logDebug('Browser cache cleared.');
72181
72026
  cache$1 = {};
72182
72027
  };
72183
72028
 
@@ -73341,7 +73186,6 @@ var VizzlyServices = /*#__PURE__*/function () {
73341
73186
  instanceId = params.instanceId;
73342
73187
  }
73343
73188
  service = VizzlyServices._instanceStore[instanceId];
73344
- validateQuery(queries, service.queryEngineConfig);
73345
73189
  queryEngineEndpoint = function () {
73346
73190
  if (params != null && params.queryEngineEndpoint) {
73347
73191
  return params.queryEngineEndpoint;
@@ -73387,14 +73231,14 @@ var VizzlyServices = /*#__PURE__*/function () {
73387
73231
  return _ref.apply(this, arguments);
73388
73232
  };
73389
73233
  }();
73390
- _context11.next = 10;
73234
+ _context11.next = 9;
73391
73235
  return fetch();
73392
- case 10:
73236
+ case 9:
73393
73237
  _context11.t0 = _context11.sent;
73394
73238
  return _context11.abrupt("return", {
73395
73239
  results: _context11.t0
73396
73240
  });
73397
- case 12:
73241
+ case 11:
73398
73242
  case "end":
73399
73243
  return _context11.stop();
73400
73244
  }
@@ -73620,7 +73464,7 @@ VizzlyServices.HorizontalBarChart = HorizontalBarChart$2;
73620
73464
  VizzlyServices.MercatorMap = MercatorMap$4;
73621
73465
  VizzlyServices.SingleStat = SingleStat$3;
73622
73466
  VizzlyServices.Progress = Progress$3;
73623
- VizzlyServices.WaterfallChart = WaterfallChart$4;
73467
+ VizzlyServices.WaterfallChart = WaterfallChart$4; // export type Query = Omit<SQLQuery, 'timeZone'> & { timeZone?: string };
73624
73468
  // @ts-ignore
73625
73469
  if (typeof window !== 'undefined' && !window.Vizzly) {
73626
73470
  // @ts-ignore