@lightdash/common 0.1390.0 → 0.1390.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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
|
}
|