@lightdash/common 0.1389.0 → 0.1390.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/utils/filters.d.ts +3 -1
- package/dist/utils/filters.js +30 -2
- package/package.json +1 -1
package/dist/utils/filters.d.ts
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
import { type DashboardTile } from '../types/dashboard';
|
2
2
|
import { type Table } from '../types/explore';
|
3
3
|
import { type CompiledField, type CustomSqlDimension, type Dimension, type Field, type FilterableDimension, type FilterableField, type FilterableItem, type ItemsMap, type TableCalculation } from '../types/field';
|
4
|
-
import { FilterOperator, FilterType, type AndFilterGroup, type DashboardFieldTarget, type DashboardFilterRule, type DashboardFilters, type FilterDashboardToRule, type FilterGroup, type FilterGroupItem, type FilterRule, type Filters, type MetricFilterRule, type OrFilterGroup } from '../types/filter';
|
4
|
+
import { FilterOperator, FilterType, UnitOfTime, type AndFilterGroup, type DashboardFieldTarget, type DashboardFilterRule, type DashboardFilters, type FilterDashboardToRule, type FilterGroup, type FilterGroupItem, type FilterRule, type Filters, type MetricFilterRule, type OrFilterGroup } from '../types/filter';
|
5
5
|
import { type MetricQuery } from '../types/metricQuery';
|
6
|
+
import { TimeFrames } from '../types/timeFrames';
|
6
7
|
export declare const getFilterRulesFromGroup: (filterGroup: FilterGroup | undefined) => FilterRule[];
|
7
8
|
export declare const getTotalFilterRules: (filters: Filters) => FilterRule[];
|
8
9
|
export declare const countTotalFilterRules: (filters: Filters) => number;
|
@@ -10,6 +11,7 @@ export declare const hasNestedGroups: (filters: Filters) => boolean;
|
|
10
11
|
export declare const getItemsFromFilterGroup: (filterGroup: FilterGroup | undefined) => FilterGroupItem[];
|
11
12
|
export declare const getFilterGroupItemsPropertyName: (filterGroup: FilterGroup | undefined) => 'and' | 'or';
|
12
13
|
export declare const getFilterTypeFromItem: (item: FilterableField) => FilterType;
|
14
|
+
export declare const timeframeToUnitOfTime: (timeframe: TimeFrames) => UnitOfTime | undefined;
|
13
15
|
export declare const getFilterRuleWithDefaultValue: <T extends FilterRule<FilterOperator, import("../types/filter").FieldTarget, any, any>>(field: FilterableField, filterRule: T, values?: any[] | null) => T;
|
14
16
|
export declare const createFilterRuleFromField: (field: FilterableField, value?: any) => FilterRule;
|
15
17
|
export declare const matchFieldExact: (a: Field) => (b: Field) => boolean;
|
package/dist/utils/filters.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.resetRequiredFilterRules = exports.reduceRequiredDimensionFiltersToFilterRules = exports.isFilterRuleInQuery = exports.createFilterRuleFromRequiredMetricRule = exports.addDashboardFiltersToMetricQuery = exports.overrideFilterGroupWithFilterRules = exports.overrideChartFilter = exports.addFiltersToMetricQuery = exports.getDashboardFiltersForTileAndTables = exports.getDashboardFilterRulesForTileAndTables = exports.getDashboardFilterRulesForTables = exports.getTabUuidsForFilterRules = exports.getDashboardFilterRulesForTile = exports.deleteFilterRuleFromGroup = exports.getFiltersFromGroup = exports.isDimensionValueInvalidDate = exports.addFilterRule = exports.createDashboardFilterRuleFromField = exports.applyDefaultTileTargets = exports.isTileFilterable = exports.matchFieldByType = exports.matchFieldByTypeAndName = exports.matchFieldExact = exports.createFilterRuleFromField = exports.getFilterRuleWithDefaultValue = exports.getFilterTypeFromItem = exports.getFilterGroupItemsPropertyName = exports.getItemsFromFilterGroup = exports.hasNestedGroups = exports.countTotalFilterRules = exports.getTotalFilterRules = exports.getFilterRulesFromGroup = void 0;
|
3
|
+
exports.resetRequiredFilterRules = exports.reduceRequiredDimensionFiltersToFilterRules = exports.isFilterRuleInQuery = exports.createFilterRuleFromRequiredMetricRule = exports.addDashboardFiltersToMetricQuery = exports.overrideFilterGroupWithFilterRules = exports.overrideChartFilter = exports.addFiltersToMetricQuery = exports.getDashboardFiltersForTileAndTables = exports.getDashboardFilterRulesForTileAndTables = exports.getDashboardFilterRulesForTables = exports.getTabUuidsForFilterRules = exports.getDashboardFilterRulesForTile = exports.deleteFilterRuleFromGroup = exports.getFiltersFromGroup = exports.isDimensionValueInvalidDate = exports.addFilterRule = exports.createDashboardFilterRuleFromField = exports.applyDefaultTileTargets = exports.isTileFilterable = exports.matchFieldByType = exports.matchFieldByTypeAndName = exports.matchFieldExact = exports.createFilterRuleFromField = exports.getFilterRuleWithDefaultValue = exports.timeframeToUnitOfTime = exports.getFilterTypeFromItem = exports.getFilterGroupItemsPropertyName = exports.getItemsFromFilterGroup = exports.hasNestedGroups = exports.countTotalFilterRules = exports.getTotalFilterRules = exports.getFilterRulesFromGroup = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
6
6
|
const moment_1 = tslib_1.__importDefault(require("moment"));
|
@@ -94,6 +94,31 @@ const getFilterTypeFromItem = (item) => {
|
|
94
94
|
}
|
95
95
|
};
|
96
96
|
exports.getFilterTypeFromItem = getFilterTypeFromItem;
|
97
|
+
const timeframeToUnitOfTime = (timeframe) => {
|
98
|
+
switch (timeframe) {
|
99
|
+
case timeFrames_1.TimeFrames.MILLISECOND:
|
100
|
+
return filter_1.UnitOfTime.milliseconds;
|
101
|
+
case timeFrames_1.TimeFrames.SECOND:
|
102
|
+
return filter_1.UnitOfTime.seconds;
|
103
|
+
case timeFrames_1.TimeFrames.MINUTE:
|
104
|
+
return filter_1.UnitOfTime.minutes;
|
105
|
+
case timeFrames_1.TimeFrames.HOUR:
|
106
|
+
return filter_1.UnitOfTime.hours;
|
107
|
+
case timeFrames_1.TimeFrames.DAY:
|
108
|
+
return filter_1.UnitOfTime.days;
|
109
|
+
case timeFrames_1.TimeFrames.WEEK:
|
110
|
+
return filter_1.UnitOfTime.weeks;
|
111
|
+
case timeFrames_1.TimeFrames.MONTH:
|
112
|
+
return filter_1.UnitOfTime.months;
|
113
|
+
case timeFrames_1.TimeFrames.QUARTER:
|
114
|
+
return filter_1.UnitOfTime.quarters;
|
115
|
+
case timeFrames_1.TimeFrames.YEAR:
|
116
|
+
return filter_1.UnitOfTime.years;
|
117
|
+
default:
|
118
|
+
return undefined;
|
119
|
+
}
|
120
|
+
};
|
121
|
+
exports.timeframeToUnitOfTime = timeframeToUnitOfTime;
|
97
122
|
const getFilterRuleWithDefaultValue = (field, filterRule, values) => {
|
98
123
|
const filterType = (0, exports.getFilterTypeFromItem)(field);
|
99
124
|
const filterRuleDefaults = {};
|
@@ -113,9 +138,12 @@ const getFilterRuleWithDefaultValue = (field, filterRule, values) => {
|
|
113
138
|
const numberValue = value === undefined || typeof value !== 'number'
|
114
139
|
? 1
|
115
140
|
: value;
|
141
|
+
const defaultUnitOfTime = (0, field_1.isDimension)(field) && field.timeInterval
|
142
|
+
? (0, exports.timeframeToUnitOfTime)(field.timeInterval)
|
143
|
+
: filter_1.UnitOfTime.days;
|
116
144
|
filterRuleDefaults.values = [numberValue];
|
117
145
|
filterRuleDefaults.settings = {
|
118
|
-
unitOfTime:
|
146
|
+
unitOfTime: defaultUnitOfTime,
|
119
147
|
completed: false,
|
120
148
|
};
|
121
149
|
}
|