@vizzly/dashboard 0.15.0-dev-df6a888afc7272341aed2da83a5290bca83e406b → 0.15.0-dev-40c479fdafffb16cba288545eceac8ea5f1efddb

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
@@ -1117,33 +1117,6 @@ var FieldNotFoundInDataSet = /*#__PURE__*/function (_ValidationError) {
1117
1117
  return FieldNotFoundInDataSet;
1118
1118
  }(ValidationError);
1119
1119
 
1120
- var timeDimensionsConstants = semanticLayerPublic.QueryEngineConfig.Constants.timeDimensionsConstants;
1121
-
1122
- // All the aggregates Vizzly supports somewhere...
1123
- // Not necessarily all the aggregates that are supported because each
1124
- // integration could support different aggregates
1125
-
1126
- var id$1 = function id(metric) {
1127
- if (!(metric != null && metric.truncate) || (metric == null ? void 0 : metric.truncate) == 'none') return metric == null ? void 0 : metric.field;
1128
- return metric.field + "_" + metric.truncate;
1129
- };
1130
- var decodeId$1 = function decodeId(metric, supportedTimeTruncFunctions) {
1131
- var parts = metric.split('_');
1132
- var truncate = parts.pop();
1133
- if (truncate && !isSupportedTimeTruncFunction(supportedTimeTruncFunctions, truncate)) {
1134
- return null;
1135
- }
1136
- var field = parts.join('_');
1137
- return {
1138
- field: field,
1139
- truncate: truncate != null ? truncate : ''
1140
- };
1141
- };
1142
- var vizzlyManagedTimeDimensions = timeDimensionsConstants;
1143
- var isSupportedTimeTruncFunction = function isSupportedTimeTruncFunction(supportedTimeFunctions, proposedFunction) {
1144
- return [].concat(Object.keys(supportedTimeFunctions), ['none']).includes(proposedFunction);
1145
- };
1146
-
1147
1120
  var filterIsDate = function filterIsDate(filter) {
1148
1121
  var isoDateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
1149
1122
  if (!isoDateRegex.test(filter.value)) {
@@ -1378,103 +1351,6 @@ function extractValue(variables, key) {
1378
1351
  return variables[key].value;
1379
1352
  }
1380
1353
 
1381
- var addAndFilters = function addAndFilters(filter, filterToAddToAll) {
1382
- if (!filter || _.isEmpty(filter)) filter = [[]];
1383
- return [].concat(filter).map(function (andFilter) {
1384
- return [].concat(andFilter, filterToAddToAll);
1385
- });
1386
- };
1387
- var filterAttributeToQueryFilter = function filterAttributeToQueryFilter(filters, queryEngineConfig, dataSet, params) {
1388
- return filters.map(function (andFilters) {
1389
- return [].concat(andFilters).flatMap(function (andFilter) {
1390
- var _andFilter$function;
1391
- // Stop unsupported time functions being used.
1392
- if (andFilter["function"] && !isSupportedTimeTruncFunction(queryEngineConfig.supportedTimeTruncFunctions, andFilter["function"])) {
1393
- throw "Query engine does not support the query function " + andFilter["function"] + ".";
1394
- }
1395
- var dataSetField = findField(dataSet, andFilter.field);
1396
- var field = {
1397
- type: 'field',
1398
- value: andFilter.field,
1399
- "function": (_andFilter$function = andFilter["function"]) != null ? _andFilter$function : 'none'
1400
- };
1401
- if (isCustomField(dataSetField)) {
1402
- var _andFilter$function2;
1403
- field = toQueryMeasure({
1404
- field: dataSetField.id,
1405
- "function": (_andFilter$function2 = andFilter["function"]) != null ? _andFilter$function2 : 'none'
1406
- }, dataSetField, queryEngineConfig, dataSet, false, params);
1407
- }
1408
- // If `array_contains` operation has multiple. Then split these out into individual
1409
- // checks.
1410
- if ((andFilter.op == 'array_contains' || andFilter.op == 'array_does_not_contain') && Array.isArray(andFilter.value)) {
1411
- return [].concat(andFilter.value).map(function (value) {
1412
- return {
1413
- field: field,
1414
- op: andFilter.op,
1415
- value: value
1416
- };
1417
- });
1418
- }
1419
- var value = useValue(andFilter.value, params.variables);
1420
- if (isRelativeDateDefined(andFilter.value)) {
1421
- value = calculateRelativeDate(andFilter.value);
1422
- }
1423
- if (filterIsDate(andFilter)) {
1424
- value = getUTCDate(andFilter.value);
1425
- }
1426
- return [{
1427
- field: field,
1428
- op: andFilter.op,
1429
- value: value
1430
- }];
1431
- });
1432
- });
1433
- };
1434
- var isAvailable = function isAvailable(filter) {
1435
- return filter && _.isArray(filter) && _.isArray(filter[0]);
1436
- };
1437
- var isAdditionalFilter = function isAdditionalFilter(value) {
1438
- return value && _.isArray(value) && _.isArray(value[0]) && 'field' in value[0][0] && 'op' in value[0][0] && 'value' in value[0][0];
1439
- };
1440
-
1441
- var combineFilters = function combineFilters(array1, array2) {
1442
- var validArray1 = array1.length > 0 && array1[0] ? array1 : [[]];
1443
- var validArray2 = array2.length > 0 && array2[0] ? array2 : [[]];
1444
-
1445
- // If array1 has more than one sub-array, loop through each sub-array in array1
1446
- if (validArray1.length > 1) {
1447
- return validArray1.map(function (subArray) {
1448
- return [].concat(validArray2[0] || [], subArray || []);
1449
- });
1450
- }
1451
- // Otherwise, if array2 has more than one sub-array, loop through array2
1452
- else if (validArray2.length > 1) {
1453
- return validArray2.map(function (subArray) {
1454
- return [].concat(validArray1[0] || [], subArray || []);
1455
- });
1456
- }
1457
- // Default: merge both single sub-arrays
1458
- else {
1459
- return [[].concat(validArray1[0] || [], validArray2[0] || [])];
1460
- }
1461
- };
1462
- function combineForCustomMetricFilters(filters, customFilters) {
1463
- var combinedFilters = [];
1464
- if (customFilters && isAvailable(customFilters)) {
1465
- customFilters.forEach(function (orFilterGroup) {
1466
- combinedFilters = [].concat(combinedFilters, addAndFilters(filters != null ? filters : [], orFilterGroup));
1467
- });
1468
- } else {
1469
- combinedFilters = filters != null ? filters : [];
1470
- }
1471
- return combinedFilters;
1472
- }
1473
-
1474
- var generateId = function generateId() {
1475
- return uuid.v4().replace(/-/g, '');
1476
- };
1477
-
1478
1354
  /** Upcasts from an old global filter, to a new "additional filter" */
1479
1355
  var upcastToAdditionalFilter = function upcastToAdditionalFilter(globalFilter) {
1480
1356
  if (globalFilter.type == 'globalSelectFilter') {
@@ -1904,6 +1780,125 @@ var fromFilterConfig = function fromFilterConfig(filterConfig, dataSet, timeRang
1904
1780
  return filters;
1905
1781
  };
1906
1782
 
1783
+ var addAndFilters = function addAndFilters(filter, filterToAddToAll) {
1784
+ if (_.isEmpty(filterToAddToAll)) return [].concat(filter);
1785
+ if (!filter || _.isEmpty(filter)) filter = [[]];
1786
+ return [].concat(filter).map(function (andFilter) {
1787
+ return [].concat(andFilter, filterToAddToAll);
1788
+ });
1789
+ };
1790
+ var filterAttributeToQueryFilter = function filterAttributeToQueryFilter(filterAttrs, queryEngineConfig, dataSet, params) {
1791
+ var _params$filterConfig;
1792
+ // Either build using the filter attributes passed in, or take the viewFilters in the filter config.
1793
+ // They represent the same thing, however some view-filters are passed around in the filter config
1794
+ // to reduce custom metrics arguments being passed around.
1795
+ var filter = filterAttrs.length > 0 ? filterAttrs : ((_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.viewFilters) || [];
1796
+ var extraFilters = fromFilterConfig(params.filterConfig, dataSet, params.timeRangeOptions);
1797
+ var combinedFilters = addAndFilters(filter, extraFilters);
1798
+ if (Array.isArray(filter)) {
1799
+ return {
1800
+ type: 'orWhere',
1801
+ value: combinedFilters.map(function (andFilters) {
1802
+ return {
1803
+ type: 'andWhere',
1804
+ value: andFilters.map(function (filter) {
1805
+ var dataSetField = findField(dataSet, filter.field);
1806
+ var field = {
1807
+ type: 'field',
1808
+ value: filter.field,
1809
+ "function": filter["function"] || 'none'
1810
+ };
1811
+ if (isCustomField(dataSetField)) {
1812
+ var _filter$function;
1813
+ field = toQueryMeasure({
1814
+ field: dataSetField.id,
1815
+ "function": (_filter$function = filter["function"]) != null ? _filter$function : 'none'
1816
+ }, dataSetField, queryEngineConfig, dataSet, false, params);
1817
+ }
1818
+
1819
+ // 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
1820
+ // out this check into multiple filters, as a value in a filter cannot be an array.
1821
+ if ((filter.op == 'array_contains' || filter.op == 'array_does_not_contain') && Array.isArray(filter.value)) {
1822
+ return {
1823
+ type: 'andWhere',
1824
+ value: [].concat(filter.value).map(function (value) {
1825
+ return {
1826
+ type: 'where',
1827
+ value: {
1828
+ field: field,
1829
+ op: filter.op,
1830
+ value: value
1831
+ }
1832
+ };
1833
+ })
1834
+ };
1835
+ }
1836
+ var value = useValue(filter.value, params.variables);
1837
+ if (isRelativeDateDefined(filter.value)) {
1838
+ value = calculateRelativeDate(filter.value);
1839
+ }
1840
+ if (filterIsDate(filter)) {
1841
+ value = getUTCDate(filter.value);
1842
+ }
1843
+ return {
1844
+ type: 'where',
1845
+ value: {
1846
+ field: field,
1847
+ op: filter.op,
1848
+ value: value
1849
+ }
1850
+ };
1851
+ })
1852
+ };
1853
+ })
1854
+ };
1855
+ }
1856
+ return filter;
1857
+ };
1858
+ var isAvailable = function isAvailable(filter) {
1859
+ return filter && _.isArray(filter) && _.isArray(filter[0]);
1860
+ };
1861
+ var isAdditionalFilter = function isAdditionalFilter(value) {
1862
+ return value && _.isArray(value) && _.isArray(value[0]) && 'field' in value[0][0] && 'op' in value[0][0] && 'value' in value[0][0];
1863
+ };
1864
+
1865
+ var combineFilters = function combineFilters(array1, array2) {
1866
+ var validArray1 = array1.length > 0 && array1[0] ? array1 : [[]];
1867
+ var validArray2 = array2.length > 0 && array2[0] ? array2 : [[]];
1868
+
1869
+ // If array1 has more than one sub-array, loop through each sub-array in array1
1870
+ if (validArray1.length > 1) {
1871
+ return validArray1.map(function (subArray) {
1872
+ return [].concat(validArray2[0] || [], subArray || []);
1873
+ });
1874
+ }
1875
+ // Otherwise, if array2 has more than one sub-array, loop through array2
1876
+ else if (validArray2.length > 1) {
1877
+ return validArray2.map(function (subArray) {
1878
+ return [].concat(validArray1[0] || [], subArray || []);
1879
+ });
1880
+ }
1881
+ // Default: merge both single sub-arrays
1882
+ else {
1883
+ return [[].concat(validArray1[0] || [], validArray2[0] || [])];
1884
+ }
1885
+ };
1886
+ function combineForCustomMetricFilters(filters, customFilters) {
1887
+ var combinedFilters = [];
1888
+ if (customFilters && isAvailable(customFilters)) {
1889
+ customFilters.forEach(function (orFilterGroup) {
1890
+ combinedFilters = [].concat(combinedFilters, addAndFilters(filters != null ? filters : [], orFilterGroup));
1891
+ });
1892
+ } else {
1893
+ combinedFilters = filters != null ? filters : [];
1894
+ }
1895
+ return combinedFilters;
1896
+ }
1897
+
1898
+ var generateId = function generateId() {
1899
+ return uuid.v4().replace(/-/g, '');
1900
+ };
1901
+
1907
1902
  /**
1908
1903
  * Creates a new custom percentage field.
1909
1904
  */
@@ -1930,7 +1925,7 @@ var init$1 = function init(publicName, denominatorFieldId, denominatorAggregate,
1930
1925
  var build$2 = function build(customField, queryEngineConfig, dataSet, _queryHasDimension, params) {
1931
1926
  var _params$filterConfig$, _params$filterConfig, _customField$numerato, _customField$numerato2, _customField$denomina, _customField$denomina2;
1932
1927
  var localAndDashboardFilters = fromFilterConfig(params.filterConfig, dataSet, params.timeRangeOptions);
1933
- var _buildPercentageFilte = buildPercentageFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.advancedFilter) != null ? _params$filterConfig$ : [], localAndDashboardFilters), customField),
1928
+ var _buildPercentageFilte = buildPercentageFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.viewFilters) != null ? _params$filterConfig$ : [], localAndDashboardFilters), customField),
1934
1929
  combinedNominatorFilters = _buildPercentageFilte.combinedNominatorFilters,
1935
1930
  combinedDenominatorFilters = _buildPercentageFilte.combinedDenominatorFilters;
1936
1931
  var left = {
@@ -1952,24 +1947,36 @@ var build$2 = function build(customField, queryEngineConfig, dataSet, _queryHasD
1952
1947
  filter: filterAttributeToQueryFilter(combinedDenominatorFilters || [], queryEngineConfig, dataSet, params)
1953
1948
  }
1954
1949
  };
1955
- var denominatorForWithinGroupingScope = buildSide(right, isAvailable(customField.denominatorFilter) ? filterAttributeToQueryFilter(combinedDenominatorFilters, queryEngineConfig, dataSet, params) : []);
1950
+ var denominatorForWithinGroupingScope = buildSide(right, isAvailable(customField.denominatorFilter) ? filterAttributeToQueryFilter(combinedDenominatorFilters, queryEngineConfig, dataSet, params) : {
1951
+ type: 'andWhere',
1952
+ value: []
1953
+ });
1956
1954
  return {
1957
1955
  type: 'maths',
1958
- left: buildSide(left, isAvailable(customField.numeratorFilter) ? filterAttributeToQueryFilter(combinedNominatorFilters, queryEngineConfig, dataSet, params) : []),
1956
+ left: buildSide(left, isAvailable(customField.numeratorFilter) ? filterAttributeToQueryFilter(combinedNominatorFilters, queryEngineConfig, dataSet, params) : {
1957
+ type: 'andWhere',
1958
+ value: []
1959
+ }),
1959
1960
  op: '/',
1960
1961
  right: customField.denominatorScope === 'withinGrouping' ? denominatorForWithinGroupingScope : denominatorForAllScope
1961
1962
  };
1962
1963
  };
1963
1964
  var buildSide = function buildSide(field, filter) {
1964
- var alwaysTrueFilter = [[{
1965
- value: 1,
1966
- op: '=',
1967
- field: {
1968
- type: 'number',
1969
- value: 1
1970
- }
1971
- }]];
1972
- var hasNumeratorFilter = filter.length > 0 && filter[0].length > 0;
1965
+ var alwaysTrueFilter = {
1966
+ type: 'andWhere',
1967
+ value: [{
1968
+ type: 'where',
1969
+ value: {
1970
+ field: {
1971
+ type: 'number',
1972
+ value: 2
1973
+ },
1974
+ op: '=',
1975
+ value: 2
1976
+ }
1977
+ }]
1978
+ };
1979
+ var hasNumeratorFilter = filter.type === 'where' || filter.value.length > 0;
1973
1980
  if (!hasNumeratorFilter) {
1974
1981
  return {
1975
1982
  type: 'field',
@@ -2343,7 +2350,7 @@ var buildIfLogic = function buildIfLogic(ifLogic, dataSet, localAndDashboardFilt
2343
2350
  var cases = function () {
2344
2351
  var thenCases = ifLogic.cases.map(function (c) {
2345
2352
  var _params$filterConfig$, _params$filterConfig;
2346
- var customMetricFilter = combineForCustomMetricFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.advancedFilter) != null ? _params$filterConfig$ : [], localAndDashboardFilters), c.filter);
2353
+ var customMetricFilter = combineForCustomMetricFilters(addAndFilters((_params$filterConfig$ = params == null || (_params$filterConfig = params.filterConfig) == null ? void 0 : _params$filterConfig.viewFilters) != null ? _params$filterConfig$ : [], localAndDashboardFilters), c.filter);
2347
2354
  return {
2348
2355
  returns: buildMetric(c.returns, dataSet, params, measureAttribute),
2349
2356
  filter: filterAttributeToQueryFilter(customMetricFilter, queryEngineConfig, dataSet, params)
@@ -2651,6 +2658,33 @@ var mergeAttributes = function mergeAttributes(partial, existingProps) {
2651
2658
  return _doMerge(existingProps, partial);
2652
2659
  };
2653
2660
 
2661
+ var timeDimensionsConstants = semanticLayerPublic.QueryEngineConfig.Constants.timeDimensionsConstants;
2662
+
2663
+ // All the aggregates Vizzly supports somewhere...
2664
+ // Not necessarily all the aggregates that are supported because each
2665
+ // integration could support different aggregates
2666
+
2667
+ var id$1 = function id(metric) {
2668
+ if (!(metric != null && metric.truncate) || (metric == null ? void 0 : metric.truncate) == 'none') return metric == null ? void 0 : metric.field;
2669
+ return metric.field + "_" + metric.truncate;
2670
+ };
2671
+ var decodeId$1 = function decodeId(metric, supportedTimeTruncFunctions) {
2672
+ var parts = metric.split('_');
2673
+ var truncate = parts.pop();
2674
+ if (truncate && !isSupportedTimeTruncFunction(supportedTimeTruncFunctions, truncate)) {
2675
+ return null;
2676
+ }
2677
+ var field = parts.join('_');
2678
+ return {
2679
+ field: field,
2680
+ truncate: truncate != null ? truncate : ''
2681
+ };
2682
+ };
2683
+ var vizzlyManagedTimeDimensions = timeDimensionsConstants;
2684
+ var isSupportedTimeTruncFunction = function isSupportedTimeTruncFunction(supportedTimeFunctions, proposedFunction) {
2685
+ return [].concat(Object.keys(supportedTimeFunctions), ['none']).includes(proposedFunction);
2686
+ };
2687
+
2654
2688
  var id$2 = id;
2655
2689
  var decodeId$2 = decodeId;
2656
2690
  var hasAggregate = function hasAggregate(metric) {
@@ -25880,149 +25914,15 @@ var filterStyles = /*#__PURE__*/Object.assign(function () {
25880
25914
  complete: complete
25881
25915
  });
25882
25916
 
25883
- var Clause = /*#__PURE__*/function (Clause) {
25884
- Clause["AND_WHERE"] = "andWhere";
25885
- Clause["OR_WHERE"] = "orWhere";
25886
- Clause["WHERE"] = "where";
25887
- return Clause;
25888
- }({});
25889
-
25890
- // export type WhereClause = SqlAST.MultiWhereToken<any>;
25891
-
25892
- var filterConfigToWhere = function filterConfigToWhere(dataSet, queryEngineConfig, params) {
25893
- if (!params) return undefined;
25894
- var filterConfig = params.filterConfig;
25895
- 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) {
25896
- return arr.length === 0;
25897
- }))) {
25898
- return undefined;
25899
- }
25900
- var dash = buildAndWhere(dataSet, queryEngineConfig, params, filterConfig.globalFilters);
25901
- var local = buildAndWhere(dataSet, queryEngineConfig, params, filterConfig.localFilters);
25902
- var advancedFilters = buildFromFiltersArray(dataSet, queryEngineConfig, params, filterConfig.advancedFilter);
25903
- var combinedAndWhere = [dash, local, advancedFilters].filter(Boolean).filter(function (whereClause) {
25904
- return whereClause && whereClause.value.length > 0;
25905
- });
25906
- if (combinedAndWhere.length === 0) return undefined;
25907
- return {
25908
- type: Clause.AND_WHERE,
25909
- value: combinedAndWhere
25910
- };
25911
- };
25912
- var buildAndWhere = function buildAndWhere(dataSet, queryEngineConfig, params, additionalFilters) {
25913
- if (!additionalFilters || additionalFilters.length === 0) return undefined;
25914
- var whereClauses = [];
25915
- additionalFilters.forEach(function (additionalFilter) {
25916
- if (additionalFilter.type === DATE_AND_TIME_FILTER || additionalFilter.type === DATE_FILTER) {
25917
- toRelativeQueryAttributesFilters(additionalFilter, dataSet).forEach(function (f) {
25918
- whereClauses.push(buildWhereFromSingleFilter(dataSet, f, queryEngineConfig, params));
25919
- });
25920
- }
25921
- if (Array.isArray(additionalFilter.value) && additionalFilter.value.length > 1 && isAdditionalFilter(additionalFilter.value)) {
25922
- additionalFilter.appliesToFields.flatMap(function (field) {
25923
- if (field.dataSetId != dataSet.id) return [];
25924
- var convertedToWhere = buildFromFiltersArray(dataSet, queryEngineConfig, params, additionalFilter.value);
25925
- if (convertedToWhere) {
25926
- whereClauses.push(convertedToWhere);
25927
- }
25928
- return;
25929
- });
25930
- } else {
25931
- toQueryAttributesFilter(dataSet, additionalFilter, params.timeRangeOptions).forEach(function (f) {
25932
- whereClauses.push(buildWhereFromSingleFilter(dataSet, f, queryEngineConfig, params));
25933
- });
25934
- }
25935
- });
25936
- return {
25937
- type: Clause.AND_WHERE,
25938
- value: whereClauses
25939
- };
25940
- };
25941
- var buildWhereFromSingleFilter = function buildWhereFromSingleFilter(dataSet, f, queryEngineConfig, params) {
25942
- var field;
25943
- if (f["function"] && !isSupportedTimeTruncFunction(queryEngineConfig.supportedTimeTruncFunctions, f["function"])) {
25944
- throw "Query engine does not support the query function " + f["function"] + ".";
25945
- }
25946
- var dataSetField = findField(dataSet, f.field);
25947
- if (isCustomField(dataSetField)) {
25948
- var _f$function;
25949
- field = toQueryMeasure({
25950
- field: dataSetField.id,
25951
- "function": (_f$function = f["function"]) != null ? _f$function : 'none'
25952
- }, dataSetField, queryEngineConfig, dataSet, false, params);
25953
- } else {
25954
- var _decodedField$functio;
25955
- var decodedField = decodeId(f.field, queryEngineConfig);
25956
- field = {
25957
- type: 'field',
25958
- value: decodedField.field,
25959
- "function": (_decodedField$functio = decodedField["function"]) != null ? _decodedField$functio : 'none'
25960
- };
25961
- }
25962
- if ((f.op == 'array_contains' || f.op == 'array_does_not_contain') && Array.isArray(f.value)) {
25963
- return arrayContainsFilters(f, dataSet, queryEngineConfig, params);
25964
- }
25965
- var value = useValue(f.value, params.variables);
25966
- if (isRelativeDateDefined(f.value)) {
25967
- value = calculateRelativeDate(f.value);
25968
- }
25969
- if (filterIsDate(f)) {
25970
- value = getUTCDate(f.value);
25971
- }
25972
- return {
25973
- type: Clause.WHERE,
25974
- value: {
25975
- op: f.op,
25976
- value: value,
25977
- field: field
25978
- }
25979
- };
25980
- };
25981
- var buildFromFiltersArray = function buildFromFiltersArray(dataSet, queryEngineConfig, params, filters) {
25982
- if (!filters || filters.length === 0 || filters.every(function (arr) {
25983
- return arr.length === 0;
25984
- })) {
25985
- return undefined;
25986
- }
25987
- if (filters.length === 1) return buildFromFilters(filters[0], dataSet, queryEngineConfig, params);
25988
- return {
25989
- type: Clause.OR_WHERE,
25990
- value: filters.map(function (filter) {
25991
- return buildFromFilters(filter, dataSet, queryEngineConfig, params);
25992
- })
25993
- };
25994
- };
25995
- var buildFromFilters = function buildFromFilters(filter, dataSet, queryEngineConfig, params) {
25996
- return {
25997
- type: Clause.AND_WHERE,
25998
- value: filter.map(function (filter) {
25999
- if ((filter.op == 'array_contains' || filter.op == 'array_does_not_contain') && Array.isArray(filter.value)) {
26000
- return arrayContainsFilters(filter, dataSet, queryEngineConfig, params);
26001
- }
26002
- return buildWhereFromSingleFilter(dataSet, filter, queryEngineConfig, params);
26003
- })
26004
- };
26005
- };
26006
- var arrayContainsFilters = function arrayContainsFilters(filter, dataSet, queryEngineConfig, params) {
26007
- return {
26008
- type: Clause.AND_WHERE,
26009
- value: [].concat(filter.value).map(function (value) {
26010
- return buildWhereFromSingleFilter(dataSet, _extends({}, filter, {
26011
- value: value
26012
- }), queryEngineConfig, params);
26013
- })
26014
- };
26015
- };
26016
-
26017
25917
  var addMeasure = function addMeasure(current, toAdd) {
26018
25918
  return [[].concat(current, [toAdd]), current.length];
26019
25919
  };
26020
- var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measureAttr, orderAttr, dimensionAttr, timeDimensionAttr, limitAttr, offsetAttr, queryEngineConfig, params, prebuiltFilters) {
25920
+ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measureAttr, filterAttr, orderAttr, dimensionAttr, timeDimensionAttr, limitAttr, offsetAttr, queryEngineConfig, params) {
26021
25921
  var measureDescription = [];
26022
25922
  var measure = [];
26023
25923
  var group = [];
26024
25924
  var order = [];
26025
- var filters = buildFilters(dataSet, queryEngineConfig, params, prebuiltFilters);
25925
+ var filters = filterAttributeToQueryFilter(filterAttr, queryEngineConfig, dataSet, params);
26026
25926
  if (timeDimensionAttr) {
26027
25927
  // Add the measure for the time field.
26028
25928
  var addedAt = undefined;
@@ -26080,24 +25980,19 @@ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measur
26080
25980
  field: findField(dataSet, individualMeasure.field)
26081
25981
  }]);
26082
25982
  });
26083
- orderAttr.forEach(function (apiQueryOrderItem) {
25983
+ orderAttr.forEach(function (orderItem) {
26084
25984
  var index = measure.findIndex(function (individualMeasure) {
26085
25985
  if (individualMeasure.type == 'field') {
26086
- var sameFunction = individualMeasure["function"] == apiQueryOrderItem["function"];
26087
- // const isTimeFunc = Object.keys(queryEngineConfig.supportedTimeTruncFunctions).includes(
26088
- // individualMeasure.function
26089
- // );
26090
- var sameField = individualMeasure.value == apiQueryOrderItem.field;
25986
+ var sameFunction = individualMeasure["function"] == orderItem["function"];
25987
+ var sameField = individualMeasure.value == orderItem.field;
26091
25988
  return sameField && sameFunction;
26092
-
26093
- // return found;
26094
25989
  }
26095
25990
  return false;
26096
25991
  });
26097
25992
  if (index >= 0) {
26098
25993
  order = [].concat(order, [{
26099
25994
  index: index,
26100
- direction: apiQueryOrderItem.direction
25995
+ direction: orderItem.direction
26101
25996
  }]);
26102
25997
  }
26103
25998
  });
@@ -26122,7 +26017,6 @@ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measur
26122
26017
  dataSetId: dataSet.id,
26123
26018
  measure: measure,
26124
26019
  group: group,
26125
- // TODO: Fix this type
26126
26020
  filter: filters,
26127
26021
  order: order,
26128
26022
  limit: limitAttr,
@@ -26131,19 +26025,6 @@ var buildFromQueryAttributes = function buildFromQueryAttributes(dataSet, measur
26131
26025
  measureDescription: measureDescription
26132
26026
  };
26133
26027
  };
26134
- var buildFilters = function buildFilters(dataSet, queryEngineConfig, params, prebuiltFilters) {
26135
- if (prebuiltFilters && prebuiltFilters.length > 0) {
26136
- var filter = [];
26137
- prebuiltFilters.forEach(function (andFilters) {
26138
- var newAndFilters = filterAttributeToQueryFilter([andFilters], queryEngineConfig, dataSet, params);
26139
- filter = [].concat(filter, [newAndFilters[0]]);
26140
- });
26141
- return filter;
26142
- }
26143
- var whereClause = filterConfigToWhere(dataSet, queryEngineConfig, params);
26144
- if (whereClause) return whereClause;
26145
- return [];
26146
- };
26147
26028
 
26148
26029
  var build$c = buildFromQueryAttributes;
26149
26030
  var hasDimensions = function hasDimensions(query) {
@@ -26171,7 +26052,10 @@ var buildUniqueArrayValuesPreparedQuery = function buildUniqueArrayValuesPrepare
26171
26052
  preparedQueryType: 'uniqueArrayValues',
26172
26053
  dataSetId: dataSetId,
26173
26054
  fieldId: dataSetField.id,
26174
- filter: optionsFilters || []
26055
+ filter: optionsFilters || {
26056
+ type: 'andWhere',
26057
+ value: []
26058
+ }
26175
26059
  },
26176
26060
  resultFields: [{
26177
26061
  id: dataSetField.id,
@@ -71600,32 +71484,6 @@ var TimeoutWaitingForVizzlyInstance = /*#__PURE__*/function (_Error) {
71600
71484
  return TimeoutWaitingForVizzlyInstance;
71601
71485
  }( /*#__PURE__*/_wrapNativeSuper(Error));
71602
71486
 
71603
- var joiOptions$1 = {
71604
- convert: false,
71605
- stripUnknown: false,
71606
- allowUnknown: true
71607
- };
71608
- var validateQuery = function validateQuery(params, queryEngineConfig) {
71609
- var validationResult = Joi.array().items(schema(queryEngineConfig)).validate(params, joiOptions$1);
71610
- if (validationResult.error) {
71611
- throw new ServicesValidationError(validationResult.error.message);
71612
- }
71613
- };
71614
- var filterSchema$1 = function filterSchema(queryEngineConfig) {
71615
- var _Joi$string;
71616
- return Joi.array().items(Joi.alternatives()["try"](Joi.object({
71617
- field: Joi.string().required().description('The ID of the field from the data set to reference.'),
71618
- op: (_Joi$string = Joi.string()).valid.apply(_Joi$string, Object.keys(queryEngineConfig.supportedOperators)).required(),
71619
- value: Joi.any().required()
71620
- }).description('A filter object to apply to the data set.'), Joi.array()));
71621
- };
71622
- var schema = function schema(queryEngineConfig) {
71623
- return Joi.object(_extends({}, querySchema(queryEngineConfig, {}), {
71624
- filter: filterSchema$1(queryEngineConfig),
71625
- timeDimension: Joi.alternatives(timeDimensionSchema(queryEngineConfig.supportedTimeTruncFunctions), Joi.valid(null))
71626
- }));
71627
- };
71628
-
71629
71487
  var validateDashboardJoiOptions = {
71630
71488
  convert: false,
71631
71489
  stripUnknown: false,
@@ -71703,7 +71561,7 @@ var toQueries = function toQueries(dataSets, queryAttributes, queryEngineConfig,
71703
71561
  var queries = queryAttributes.map(function (qA) {
71704
71562
  var dataSet = find(dataSets, qA.dataSetId);
71705
71563
  if (!dataSet) throw 'Data set not found for query attributes query';
71706
- return buildFromQueryAttributes(dataSet, qA.measure, qA.order, qA.dimension, qA.timeDimension, qA.limit, qA.offset, queryEngineConfig, params, qA.filter);
71564
+ return buildFromQueryAttributes(dataSet, qA.measure, qA.filter, qA.order, qA.dimension, qA.timeDimension, qA.limit, qA.offset, queryEngineConfig, params);
71707
71565
  });
71708
71566
  return {
71709
71567
  queries: queries.map(function (q) {
@@ -71761,7 +71619,7 @@ function getOptionsOrders(dataSetField) {
71761
71619
  }
71762
71620
 
71763
71621
  var commonToQueries = function commonToQueries(attributes, dataSet, queryEngineConfig, params) {
71764
- var _Query$build = build$c(dataSet, attributes.measure, attributes.order, attributes.dimension,
71622
+ var _Query$build = build$c(dataSet, attributes.measure, attributes.filter, attributes.order, attributes.dimension,
71765
71623
  // @ts-ignore
71766
71624
  attributes.timeDimension || null, attributes.limit, attributes.offset, queryEngineConfig, params),
71767
71625
  query = _Query$build.query,
@@ -71786,8 +71644,8 @@ var toQueries$6 = commonToQueries;
71786
71644
  var toQueries$7 = commonToQueries;
71787
71645
 
71788
71646
  var buildMainQueries = function buildMainQueries(attributes, dataSet, queryEngineConfig, params) {
71789
- var line = build$c(dataSet, attributes.lineMeasure, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71790
- var bar = build$c(dataSet, attributes.barMeasure, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71647
+ var line = build$c(dataSet, attributes.lineMeasure, attributes.filter, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71648
+ var bar = build$c(dataSet, attributes.barMeasure, attributes.filter, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71791
71649
  return {
71792
71650
  bar: bar,
71793
71651
  line: line
@@ -71814,8 +71672,8 @@ var toQueries$b = commonToQueries;
71814
71672
  var toQueries$c = commonToQueries;
71815
71673
 
71816
71674
  var buildMainQueries$1 = function buildMainQueries(attributes, dataSet, queryEngineConfig, params) {
71817
- var line = build$c(dataSet, attributes.lineMeasure, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71818
- var bar = build$c(dataSet, attributes.barMeasure, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71675
+ var line = build$c(dataSet, attributes.lineMeasure, attributes.filter, attributes.order, attributes.lineDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71676
+ var bar = build$c(dataSet, attributes.barMeasure, attributes.filter, attributes.order, attributes.barDimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params);
71819
71677
  return {
71820
71678
  bar: bar,
71821
71679
  line: line
@@ -71834,7 +71692,7 @@ var toQueries$d = function toQueries(attributes, dataSet, queryEngineConfig, par
71834
71692
  };
71835
71693
 
71836
71694
  var buildMainQuery = function buildMainQuery(attributes, dataSet, queryEngineConfig, params) {
71837
- var _Query$build = build$c(dataSet, attributes.measure, [], [], null, 1, attributes.offset, queryEngineConfig, params),
71695
+ var _Query$build = build$c(dataSet, attributes.measure, attributes.filter, [], [], null, 1, attributes.offset, queryEngineConfig, params),
71838
71696
  query = _Query$build.query,
71839
71697
  measureDescription = _Query$build.measureDescription;
71840
71698
 
@@ -71862,7 +71720,7 @@ var buildMainQuery = function buildMainQuery(attributes, dataSet, queryEngineCon
71862
71720
  };
71863
71721
  var buildDeltaQuery = function buildDeltaQuery(dataSet, attributes, queryEngineConfig, params) {
71864
71722
  if (!attributes.deltaTimeDimension) return null;
71865
- return build$c(dataSet, attributes.measure, [{
71723
+ return build$c(dataSet, attributes.measure, attributes.filter, [{
71866
71724
  field: attributes.deltaTimeDimension.field,
71867
71725
  direction: 'asc',
71868
71726
  "function": attributes.deltaTimeDimension.truncate
@@ -71894,7 +71752,7 @@ var toQueries$f = function toQueries(attributes, dataSet, queryEngineConfig, par
71894
71752
  var measures = [];
71895
71753
  attributes.xMeasure && measures.push(attributes.xMeasure);
71896
71754
  attributes.yMeasure && measures.push(attributes.yMeasure);
71897
- var _Query$build = build$c(dataSet, measures, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71755
+ var _Query$build = build$c(dataSet, measures, attributes.filter, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71898
71756
  query = _Query$build.query,
71899
71757
  measureDescription = _Query$build.measureDescription;
71900
71758
  var resultFields = toResultFields([measureDescription], queryEngineConfig);
@@ -71908,7 +71766,7 @@ var toQueries$g = function toQueries(attributes, dataSet, queryEngineConfig, par
71908
71766
  var measures = [];
71909
71767
  attributes.xMeasure && measures.push(attributes.xMeasure);
71910
71768
  attributes.yMeasure && measures.push(attributes.yMeasure);
71911
- var _Query$build = build$c(dataSet, measures, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71769
+ var _Query$build = build$c(dataSet, measures, attributes.filter, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71912
71770
  query = _Query$build.query,
71913
71771
  measureDescription = _Query$build.measureDescription;
71914
71772
  var resultFields = toResultFields([measureDescription], queryEngineConfig);
@@ -71920,7 +71778,7 @@ var toQueries$g = function toQueries(attributes, dataSet, queryEngineConfig, par
71920
71778
 
71921
71779
  var toQueries$h = function toQueries(attributes, dataSet, queryEngineConfig, params) {
71922
71780
  var measures = [].concat(attributes.measure || [], attributes.xMeasure || [], attributes.zMeasure || []);
71923
- var _Query$build = build$c(dataSet, measures, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71781
+ var _Query$build = build$c(dataSet, measures, attributes.filter, attributes.order, attributes.dimension, attributes.timeDimension, attributes.limit, attributes.offset, queryEngineConfig, params),
71924
71782
  query = _Query$build.query,
71925
71783
  measureDescription = _Query$build.measureDescription;
71926
71784
  var resultFields = toResultFields([measureDescription], queryEngineConfig);
@@ -72032,20 +71890,7 @@ var buildVizzlyQuery = function buildVizzlyQuery(thing, queryEngineConfig, param
72032
71890
  queriesToSend = [_query];
72033
71891
  resultFields = [_rF];
72034
71892
  } else if (Array.isArray(thing)) {
72035
- var queriesInAttributesFormat = [].concat(thing).map(function (queryAttributes) {
72036
- var dataSet = find(params.dataSets, queryAttributes.dataSetId);
72037
- if (!dataSet) throw 'Data set not found for query-attributes query';
72038
- return _extends({}, queryAttributes, {
72039
- // TODO; this means that services queries that povide a query, cannot work... GTDEV-6947
72040
- filter: [],
72041
- whereClause: filterConfigToWhere(dataSet, queryEngineConfig, _extends({}, params, {
72042
- filterConfig: _extends({}, params.filterConfig, {
72043
- advancedFilter: queryAttributes.filter
72044
- })
72045
- }))
72046
- });
72047
- });
72048
- var _fromQueryAttributes = toQueries(params.dataSets, queriesInAttributesFormat, queryEngineConfig, params),
71893
+ var _fromQueryAttributes = toQueries(params.dataSets, thing, queryEngineConfig, params),
72049
71894
  q = _fromQueryAttributes.queries,
72050
71895
  _rF2 = _fromQueryAttributes.resultFields;
72051
71896
  queriesToSend = q;
@@ -72057,7 +71902,7 @@ var buildVizzlyQuery = function buildVizzlyQuery(thing, queryEngineConfig, param
72057
71902
  if (!_dataSet) throw 'Data set not found for view attributes query';
72058
71903
  var _buildVizzlyViewQueri = buildVizzlyViewQueries(thing, _dataSet, queryEngineConfig, _extends({}, params, {
72059
71904
  filterConfig: _extends({}, params.filterConfig, {
72060
- advancedFilter: thing.filter
71905
+ viewFilters: thing.filter
72061
71906
  })
72062
71907
  })),
72063
71908
  _q = _buildVizzlyViewQueri.queries,
@@ -72094,7 +71939,7 @@ var set = function set(cacheKey, item, expiryInSeconds) {
72094
71939
  var key = JSON.stringify(cacheKey);
72095
71940
  var expires = new Date();
72096
71941
  expires.setSeconds(expires.getSeconds() + expiryInSeconds);
72097
- logDebug("Browser cache new object set.", key);
71942
+ logDebug('Browser cache new object set.', key);
72098
71943
  cache$1[key] = {
72099
71944
  item: item,
72100
71945
  expires: expires
@@ -72104,10 +71949,10 @@ var get = function get(cacheKey) {
72104
71949
  var key = JSON.stringify(cacheKey);
72105
71950
  var retrieved = cache$1[key];
72106
71951
  if (!retrieved) {
72107
- logDebug("Browser cache miss.", cacheKey);
71952
+ logDebug('Browser cache miss.', cacheKey);
72108
71953
  return null;
72109
71954
  }
72110
- logDebug("Browser cache hit.", cacheKey);
71955
+ logDebug('Browser cache hit.', cacheKey);
72111
71956
  var item = retrieved.item,
72112
71957
  expires = retrieved.expires;
72113
71958
  var now = new Date();
@@ -72119,7 +71964,7 @@ var get = function get(cacheKey) {
72119
71964
  return null;
72120
71965
  };
72121
71966
  var clear$1 = function clear() {
72122
- logDebug("Browser cache cleared.");
71967
+ logDebug('Browser cache cleared.');
72123
71968
  cache$1 = {};
72124
71969
  };
72125
71970
 
@@ -73283,7 +73128,6 @@ var VizzlyServices = /*#__PURE__*/function () {
73283
73128
  instanceId = params.instanceId;
73284
73129
  }
73285
73130
  service = VizzlyServices._instanceStore[instanceId];
73286
- validateQuery(queries, service.queryEngineConfig);
73287
73131
  queryEngineEndpoint = function () {
73288
73132
  if (params != null && params.queryEngineEndpoint) {
73289
73133
  return params.queryEngineEndpoint;
@@ -73329,14 +73173,14 @@ var VizzlyServices = /*#__PURE__*/function () {
73329
73173
  return _ref.apply(this, arguments);
73330
73174
  };
73331
73175
  }();
73332
- _context11.next = 10;
73176
+ _context11.next = 9;
73333
73177
  return fetch();
73334
- case 10:
73178
+ case 9:
73335
73179
  _context11.t0 = _context11.sent;
73336
73180
  return _context11.abrupt("return", {
73337
73181
  results: _context11.t0
73338
73182
  });
73339
- case 12:
73183
+ case 11:
73340
73184
  case "end":
73341
73185
  return _context11.stop();
73342
73186
  }
@@ -73562,7 +73406,7 @@ VizzlyServices.HorizontalBarChart = HorizontalBarChart$2;
73562
73406
  VizzlyServices.MercatorMap = MercatorMap$4;
73563
73407
  VizzlyServices.SingleStat = SingleStat$3;
73564
73408
  VizzlyServices.Progress = Progress$3;
73565
- VizzlyServices.WaterfallChart = WaterfallChart$4;
73409
+ VizzlyServices.WaterfallChart = WaterfallChart$4; // export type Query = Omit<SQLQuery, 'timeZone'> & { timeZone?: string };
73566
73410
  // @ts-ignore
73567
73411
  if (typeof window !== 'undefined' && !window.Vizzly) {
73568
73412
  // @ts-ignore