@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.
@@ -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.1390.0",
3
+ "version": "0.1390.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [