@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.
@@ -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;
@@ -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: filter_1.UnitOfTime.days,
146
+ unitOfTime: defaultUnitOfTime,
119
147
  completed: false,
120
148
  };
121
149
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightdash/common",
3
- "version": "0.1389.0",
3
+ "version": "0.1390.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [