@qrvey/filters 0.2.2 → 0.2.4

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # [@qrvey/filters](https://bitbucket.org/qrvey/qrvey_filters/wiki/Home) *0.2.2*
1
+ # [@qrvey/filters](https://bitbucket.org/qrvey/qrvey_filters/wiki/Home) *0.2.4*
2
2
 
3
3
  > Helpers and logic for Filtering Data in Qrvey app
4
4
 
@@ -27,7 +27,7 @@ class FilterAdapter {
27
27
  return (0, filter_adapt_legacy_helpers_1.filterToLegacyVisual)(this._filters, this.datasets, this.interactiveTable);
28
28
  }
29
29
  filterToLogic() {
30
- return (0, filter_adapt_logic_helpers_1.filterToLogic)(this._filters);
30
+ return (0, filter_adapt_logic_helpers_1.filterToLogic)(this._filters, this.datasets);
31
31
  }
32
32
  filterToVisual() {
33
33
  return (0, filter_adapt_helpers_1.filterToVisual)(this._filters, this.datasets, this.interactiveTable);
@@ -39,7 +39,7 @@ class FilterResources {
39
39
  return groupingInfo == null ? groupingInfoList[0] : groupingInfo;
40
40
  }
41
41
  static getGroupingInfoByFilter(filter, settings) {
42
- if (!FilterValidation_1.FilterValidation.isGroupingValid(filter.columnType, filter.validator))
42
+ if (!FilterValidation_1.FilterValidation.isGroupingValid({ type: filter.columnType, formulaType: filter.formulaType }, filter.validator))
43
43
  return;
44
44
  return this.getGroupingInfoByColumnType({ type: filter.columnType, formulaType: filter.formulaType }, filter.grouping, settings);
45
45
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FilterValidation = void 0;
4
+ const utils_1 = require("@qrvey/utils");
4
5
  const getFilterType_1 = require("../helpers/getFilterType");
5
6
  const filter_grouping_resources_1 = require("../resources/filter-grouping.resources");
6
7
  const filters_resources_1 = require("../resources/filters.resources");
@@ -51,8 +52,10 @@ class FilterValidation {
51
52
  static isFilterRankingValueDuplicated(_values1, _values2) {
52
53
  return false;
53
54
  }
54
- static isGroupingValid(columnType, validator) {
55
- return (filter_grouping_resources_1.FILTER_GROUPING_COLUMNS.includes(columnType) &&
55
+ static isGroupingValid(type, validator) {
56
+ if (type.formulaType === utils_1.FORMULA.DATE)
57
+ return true;
58
+ return (filter_grouping_resources_1.FILTER_GROUPING_COLUMNS.includes(type.type) &&
56
59
  filter_grouping_resources_1.FILTER_GROUPING_VALIDATORS.includes(validator));
57
60
  }
58
61
  }
@@ -97,7 +97,9 @@ function buildFilter(filter, dataset) {
97
97
  collapsed: filter.collapsed ?? filters_resources_1.DEFAULT_FILTER.collapsed,
98
98
  datasetLabel: dataset?.label ?? filter_visual_resources_1.DEFAULT_UI_FILTER.datasetLabel,
99
99
  columnLabel: columnInfo?.label ?? filter_visual_resources_1.DEFAULT_UI_FILTER.columnLabel,
100
- formulaType: columnInfo?.formulaType,
100
+ formulaType: columnInfo?.formulaType ||
101
+ filter.formulaType ||
102
+ filter_visual_resources_1.DEFAULT_UI_FILTER.formulaType,
101
103
  icon: filter.icon ?? filter_visual_resources_1.DEFAULT_UI_FILTER.icon,
102
104
  iconTooltip: filter.iconTooltip ?? filter_visual_resources_1.DEFAULT_UI_FILTER.iconTooltip,
103
105
  };
@@ -13,10 +13,10 @@ const filter_logic_resources_1 = require("../resources/filter-logic.resources");
13
13
  const filter_operators_resources_1 = require("../resources/filter-operators.resources");
14
14
  const filter_validators_resources_1 = require("../resources/filter-validators.resources");
15
15
  const filters_resources_1 = require("../resources/filters.resources");
16
- function filterToLogic(filters) {
16
+ function filterToLogic(filters, datasets = []) {
17
17
  if ((0, utils_1.isEmpty)(filters))
18
18
  return [];
19
- const visual = (0, filter_adapt_helpers_1.filterToVisual)(filters);
19
+ const visual = (0, filter_adapt_helpers_1.filterToVisual)(filters, datasets);
20
20
  return visualToLogic(visual);
21
21
  }
22
22
  function visualToLogic(visual) {
@@ -24,7 +24,7 @@ export class FilterAdapter {
24
24
  return filterToLegacyVisual(this._filters, this.datasets, this.interactiveTable);
25
25
  }
26
26
  filterToLogic() {
27
- return filterToLogic(this._filters);
27
+ return filterToLogic(this._filters, this.datasets);
28
28
  }
29
29
  filterToVisual() {
30
30
  return filterToVisual(this._filters, this.datasets, this.interactiveTable);
@@ -36,7 +36,7 @@ export class FilterResources {
36
36
  return groupingInfo == null ? groupingInfoList[0] : groupingInfo;
37
37
  }
38
38
  static getGroupingInfoByFilter(filter, settings) {
39
- if (!FilterValidation.isGroupingValid(filter.columnType, filter.validator))
39
+ if (!FilterValidation.isGroupingValid({ type: filter.columnType, formulaType: filter.formulaType }, filter.validator))
40
40
  return;
41
41
  return this.getGroupingInfoByColumnType({ type: filter.columnType, formulaType: filter.formulaType }, filter.grouping, settings);
42
42
  }
@@ -1,5 +1,5 @@
1
+ import { IColumnVsFormulaType } from "@qrvey/utils";
1
2
  import { IFilterValidator } from "../resources";
2
- import { IColumnTypeWithGrouping } from "../resources/filter-grouping.resources";
3
3
  import { IFilter } from "../resources/filters.resources";
4
4
  export declare class FilterValidation {
5
5
  static isDuplicated(filters: IFilter[], filter: IFilter): boolean;
@@ -8,5 +8,5 @@ export declare class FilterValidation {
8
8
  private static isFilterRangeValueDuplicated;
9
9
  private static isFilterRelativeValueDuplicated;
10
10
  private static isFilterRankingValueDuplicated;
11
- static isGroupingValid(columnType: IColumnTypeWithGrouping, validator: IFilterValidator): boolean;
11
+ static isGroupingValid(type: IColumnVsFormulaType, validator: IFilterValidator): boolean;
12
12
  }
@@ -1,3 +1,4 @@
1
+ import { FORMULA } from "@qrvey/utils";
1
2
  import { getFilterType } from "../helpers/getFilterType";
2
3
  import { FILTER_GROUPING_COLUMNS, FILTER_GROUPING_VALIDATORS, } from "../resources/filter-grouping.resources";
3
4
  import { FILTER_TYPE } from "../resources/filters.resources";
@@ -48,8 +49,10 @@ export class FilterValidation {
48
49
  static isFilterRankingValueDuplicated(_values1, _values2) {
49
50
  return false;
50
51
  }
51
- static isGroupingValid(columnType, validator) {
52
- return (FILTER_GROUPING_COLUMNS.includes(columnType) &&
52
+ static isGroupingValid(type, validator) {
53
+ if (type.formulaType === FORMULA.DATE)
54
+ return true;
55
+ return (FILTER_GROUPING_COLUMNS.includes(type.type) &&
53
56
  FILTER_GROUPING_VALIDATORS.includes(validator));
54
57
  }
55
58
  }
@@ -93,7 +93,9 @@ function buildFilter(filter, dataset) {
93
93
  collapsed: filter.collapsed ?? DEFAULT_FILTER.collapsed,
94
94
  datasetLabel: dataset?.label ?? DEFAULT_UI_FILTER.datasetLabel,
95
95
  columnLabel: columnInfo?.label ?? DEFAULT_UI_FILTER.columnLabel,
96
- formulaType: columnInfo?.formulaType,
96
+ formulaType: columnInfo?.formulaType ||
97
+ filter.formulaType ||
98
+ DEFAULT_UI_FILTER.formulaType,
97
99
  icon: filter.icon ?? DEFAULT_UI_FILTER.icon,
98
100
  iconTooltip: filter.iconTooltip ?? DEFAULT_UI_FILTER.iconTooltip,
99
101
  };
@@ -1,7 +1,8 @@
1
+ import { IDataset } from "@qrvey/utils";
1
2
  import { IFilterLogic, IFilterLogicExpression, IFilterLogicExpressionValue } from "../resources/filter-logic.resources";
2
3
  import { IFilterUI, IFilterVisual } from "../resources/filter-visual.resources";
3
4
  import { IFilter } from "../resources/filters.resources";
4
- export declare function filterToLogic(filters: IFilter[]): IFilterLogic[];
5
+ export declare function filterToLogic(filters: IFilter[], datasets?: IDataset[]): IFilterLogic[];
5
6
  export declare function visualToLogic(visual: IFilterVisual): IFilterLogic[];
6
7
  export declare function buildLogicExpression(filter: IFilterUI): IFilterLogicExpression;
7
8
  export declare function getFilterLogicValues(filter: IFilterUI): IFilterLogicExpressionValue[];
@@ -7,10 +7,10 @@ import { FILTER_LOGIC_VALIDATOR, } from "../resources/filter-logic.resources";
7
7
  import { FILTER_OPERATOR, } from "../resources/filter-operators.resources";
8
8
  import { FILTER_LOGIC_VALIDATOR_BY_VALIDATOR, FILTER_VALIDATOR, } from "../resources/filter-validators.resources";
9
9
  import { FILTER_TYPE } from "../resources/filters.resources";
10
- export function filterToLogic(filters) {
10
+ export function filterToLogic(filters, datasets = []) {
11
11
  if (isEmpty(filters))
12
12
  return [];
13
- const visual = filterToVisual(filters);
13
+ const visual = filterToVisual(filters, datasets);
14
14
  return visualToLogic(visual);
15
15
  }
16
16
  export function visualToLogic(visual) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/filters",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Helpers and logic for Filtering Data in Qrvey app",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/index.js",