@qrvey/filters 0.0.2 → 0.0.3

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/CHANGELOG.md CHANGED
@@ -4,7 +4,14 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
- #### 0.0.2
7
+ #### [v0.0.3](https://bitbucket.org/qrvey/qrvey_filters/compare/v0.0.3..v0.0.2)
8
+
9
+ - feat: :zap: added filter value inputs model [`4c5d5e7`](https://bitbucket.org/qrvey/qrvey_filters/commits/4c5d5e7280ffe7d7083ab83e25a843fa2a9b82a0)
10
+ - feat: :zap: added a new filter property to set custom label [`ea8a8c6`](https://bitbucket.org/qrvey/qrvey_filters/commits/ea8a8c6832bc6aac84dfd072435106e88a03bdd8)
11
+
12
+ #### v0.0.2
13
+
14
+ > 15 April 2024
8
15
 
9
16
  - feat: :star: Starting the Filter Manager bundle [`545923a`](https://bitbucket.org/qrvey/qrvey_filters/commits/545923a96a626ef26656baf30000bd5c38002792)
10
17
  - feat: :zap: added filter adapts in the manager [`5541f1b`](https://bitbucket.org/qrvey/qrvey_filters/commits/5541f1bbdb4d4249bff15de4e1b212a6fa7159f2)
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../src/classes/FilterBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../src/classes/FilterBuilder.ts"],"names":[],"mappings":"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"}
@@ -112,8 +112,8 @@ export class FilterBuilder {
112
112
  * @returns the complete filter structure
113
113
  */
114
114
  createFilter(filter, automaticId = true) {
115
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
116
- const newFilter = Object.assign(Object.assign({}, DEFAULT_FILTER), { aggregateType: (_a = filter.aggregateType) !== null && _a !== void 0 ? _a : DEFAULT_FILTER.aggregateType, collapsed: (_b = filter.collapsed) !== null && _b !== void 0 ? _b : DEFAULT_FILTER.collapsed, columnId: (_c = filter.columnId) !== null && _c !== void 0 ? _c : DEFAULT_FILTER.columnId, columnType: (_d = filter.columnType) !== null && _d !== void 0 ? _d : DEFAULT_FILTER.columnType, datasetId: (_e = filter.datasetId) !== null && _e !== void 0 ? _e : DEFAULT_FILTER.datasetId, deletable: (_f = filter.deletable) !== null && _f !== void 0 ? _f : DEFAULT_FILTER.deletable, displayed: (_g = filter.displayed) !== null && _g !== void 0 ? _g : DEFAULT_FILTER.displayed, editable: (_h = filter.editable) !== null && _h !== void 0 ? _h : DEFAULT_FILTER.editable, enableable: (_j = filter.enableable) !== null && _j !== void 0 ? _j : DEFAULT_FILTER.enableable, enabled: (_k = filter.enabled) !== null && _k !== void 0 ? _k : DEFAULT_FILTER.enabled, id: "", operator: filter.operator || DEFAULT_FILTER.operator, scope: filter.scope || DEFAULT_FILTER.scope, scopeId: filter.scopeId || DEFAULT_FILTER.scopeId, validator: filter.validator || DEFAULT_FILTER.validator, grouping: filter.grouping || DEFAULT_FILTER.grouping, section: filter.section || DEFAULT_FILTER.section, selectAll: (_l = filter.selectAll) !== null && _l !== void 0 ? _l : DEFAULT_FILTER.selectAll, values: filter.values || DEFAULT_FILTER.values });
115
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
116
+ const newFilter = Object.assign(Object.assign({}, DEFAULT_FILTER), { aggregateType: (_a = filter.aggregateType) !== null && _a !== void 0 ? _a : DEFAULT_FILTER.aggregateType, collapsed: (_b = filter.collapsed) !== null && _b !== void 0 ? _b : DEFAULT_FILTER.collapsed, columnId: (_c = filter.columnId) !== null && _c !== void 0 ? _c : DEFAULT_FILTER.columnId, columnType: (_d = filter.columnType) !== null && _d !== void 0 ? _d : DEFAULT_FILTER.columnType, customLabel: (_e = filter.customLabel) !== null && _e !== void 0 ? _e : DEFAULT_FILTER.customLabel, datasetId: (_f = filter.datasetId) !== null && _f !== void 0 ? _f : DEFAULT_FILTER.datasetId, deletable: (_g = filter.deletable) !== null && _g !== void 0 ? _g : DEFAULT_FILTER.deletable, displayed: (_h = filter.displayed) !== null && _h !== void 0 ? _h : DEFAULT_FILTER.displayed, editable: (_j = filter.editable) !== null && _j !== void 0 ? _j : DEFAULT_FILTER.editable, enableable: (_k = filter.enableable) !== null && _k !== void 0 ? _k : DEFAULT_FILTER.enableable, enabled: (_l = filter.enabled) !== null && _l !== void 0 ? _l : DEFAULT_FILTER.enabled, id: "", operator: filter.operator || DEFAULT_FILTER.operator, scope: filter.scope || DEFAULT_FILTER.scope, scopeId: filter.scopeId || DEFAULT_FILTER.scopeId, validator: filter.validator || DEFAULT_FILTER.validator, grouping: filter.grouping || DEFAULT_FILTER.grouping, section: filter.section || DEFAULT_FILTER.section, selectAll: (_m = filter.selectAll) !== null && _m !== void 0 ? _m : DEFAULT_FILTER.selectAll, values: filter.values || DEFAULT_FILTER.values });
117
117
  if (automaticId)
118
118
  newFilter.id = getFilterId(newFilter);
119
119
  return newFilter;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=FilterValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterValidation.d.ts","sourceRoot":"","sources":["../../src/classes/FilterValidation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ // import { isEmpty, isObject } from "@qrvey/utils";
3
+ // import {
4
+ // IFilterValidationError,
5
+ // IFilterValidationMultipleError,
6
+ // IFilterValidationSingleError,
7
+ // } from "../models/filter-validation.models";
8
+ // import { FILTER_VALIDATION } from "../resources/filter-validation.resources";
9
+ // import { IFilterInputValue, IFilterInputValueRange } from "../resources/filter-values.resources";
10
+ // import { FILTER_TYPE, IFilter } from "../resources/filters.resources";
11
+ // import { FILTER_VALIDATOR } from "../resources/filter-validators.resources";
12
+ // import { getFilterType } from "../helpers/getFilterType";
13
+ // /**
14
+ // *
15
+ // */
16
+ // export class FilterValidation {
17
+ // /**
18
+ // *
19
+ // * @param filter
20
+ // */
21
+ // filter(filter: IFilter): IFilterValidationSingleError {
22
+ // const errors: IFilterValidationError[] = [];
23
+ // if (isEmpty(filter) || !isObject(filter))
24
+ // errors.push({ type: FILTER_VALIDATION.EMPTY_FILTER });
25
+ // return {
26
+ // infoErrors: getInfoErrors(errors),
27
+ // errors,
28
+ // };
29
+ // }
30
+ // /**
31
+ // *
32
+ // * @param filter
33
+ // * @param values
34
+ // */
35
+ // static values(
36
+ // filter: IFilter,
37
+ // values: IFilterInputValue[],
38
+ // ): IFilterValidationSingleError {
39
+ // const errors: IFilterValidationError[] = [];
40
+ // if (isEmpty(filter)) errors.push({ type: FILTER_VALIDATION.EMPTY_FILTER });
41
+ // const { columnType, validator, values: filterValues } = filter;
42
+ // const filterType = getFilterType(columnType, validator);
43
+ // switch (filterType) {
44
+ // case FILTER_TYPE.NULL:
45
+ // if (!isEmpty(filterValues) || !isEmpty(values))
46
+ // errors.push({ type: FILTER_VALIDATION.EMPTY_FILTER });
47
+ // break;
48
+ // case FILTER_TYPE.RANGE:
49
+ // if (isEmpty(values))
50
+ // errors.push({ type: FILTER_VALIDATION.NOT_EMPTY_VALUES });
51
+ // else if (values)
52
+ // FilterValidation.rangeValues(filter, values)
53
+ // default:
54
+ // break;
55
+ // }
56
+ // }
57
+ // private static rangeValues(filter: IFilter, values: IFilterInputValueRange[]): IFilterValidationSingleError {
58
+ // const errors: IFilterValidationError[] = [];
59
+ // filter.validator
60
+ // FILTER_VALIDATOR.
61
+ // values.forEach(value => {
62
+ // if (value.max
63
+ // });
64
+ // }
65
+ // }
@@ -17,5 +17,5 @@ export declare function filterToVisual(filters: IFilter[], datasets?: IDataset[]
17
17
  * @param interactiveTable table of interaction properties for each section
18
18
  * @returns a Filter Data structure
19
19
  */
20
- export declare function filterToLegacyVisual(filters: IFilter[], datasets?: IDataset[], interactiveTable?: IFilterPanelInteractiveTable): IFUData;
20
+ export declare function filterToLegacyVisual(filters: IFilter[], datasets?: IDataset[], interactiveTable?: IFilterPanelInteractiveTable): IFUData | undefined;
21
21
  //# sourceMappingURL=filter-adapt.helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-adapt.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/filter-adapt.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,OAAO,EAMR,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,EAGL,aAAa,EAGd,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAkB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAAE,EAClB,QAAQ,GAAE,QAAQ,EAAO,EACzB,gBAAgB,CAAC,EAAE,4BAA4B,GAC9C,aAAa,GAAG,SAAS,CAM3B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAAE,EAClB,QAAQ,GAAE,QAAQ,EAAO,EACzB,gBAAgB,CAAC,EAAE,4BAA4B,GAC9C,OAAO,CAOT"}
1
+ {"version":3,"file":"filter-adapt.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/filter-adapt.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,OAAO,EAMR,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,EAGL,aAAa,EAGd,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAkB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAAE,EAClB,QAAQ,GAAE,QAAQ,EAAO,EACzB,gBAAgB,CAAC,EAAE,4BAA4B,GAC9C,aAAa,GAAG,SAAS,CAM3B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAAE,EAClB,QAAQ,GAAE,QAAQ,EAAO,EACzB,gBAAgB,CAAC,EAAE,4BAA4B,GAC9C,OAAO,GAAG,SAAS,CASrB"}
@@ -26,6 +26,8 @@ export function filterToVisual(filters, datasets = [], interactiveTable) {
26
26
  * @returns a Filter Data structure
27
27
  */
28
28
  export function filterToLegacyVisual(filters, datasets = [], interactiveTable) {
29
+ if (isEmpty(filters))
30
+ return;
29
31
  return {
30
32
  enabled: true,
31
33
  section: FILTER_SECTION.DX,
@@ -213,7 +215,7 @@ function buildLegacyFilter(filter, dataset, interactiveTable) {
213
215
  displayed: filter.displayed,
214
216
  filterid: filter.id,
215
217
  enabled: filter.enabled,
216
- extras: Object.assign(Object.assign({}, filter.extras), { panelid: FILTER_SCOPE.CHART === filter.scope ? filter.scopeId : undefined, info: !isEmpty((_b = filter.extras) === null || _b === void 0 ? void 0 : _b.info)
218
+ extras: Object.assign(Object.assign({}, filter.extras), { filterLabel: filter.customLabel, panelid: FILTER_SCOPE.CHART === filter.scope ? filter.scopeId : undefined, info: !isEmpty((_b = filter.extras) === null || _b === void 0 ? void 0 : _b.info)
217
219
  ? {
218
220
  icon: icon || "",
219
221
  label: iconTooltip || "",
@@ -0,0 +1,59 @@
1
+ import { IFilterValidation, IFilterValidationInfo } from "../resources/filter-validation.resources";
2
+ import { IFilterInputValue } from "../resources/filter-values.resources";
3
+ import { IFilter } from "../resources/filters.resources";
4
+ /**
5
+ * Structure module for the editing filter values
6
+ */
7
+ export interface IFilterValidationValue {
8
+ /**
9
+ * Validates the value based on the given filter
10
+ * @param filter the filter to validate the value
11
+ * @param value the value to validate
12
+ * @returns the resulting validation
13
+ */
14
+ value: (filter: IFilter, value: IFilterInputValue) => IFilterValidationSingleError;
15
+ /**
16
+ * Validates the values based on the given filter
17
+ * @param filter the filter to validate the value
18
+ * @param values the collection of values to validate
19
+ * @returns the resulting validation
20
+ */
21
+ values: (filter: IFilter, values: IFilterInputValue[]) => IFilterValidationMultipleError;
22
+ }
23
+ /**
24
+ * Structure for the returning validation status
25
+ */
26
+ export interface IFilterValidationSingleError {
27
+ /**
28
+ * the errors
29
+ */
30
+ errors: IFilterValidationError[];
31
+ /**
32
+ * The info of the errors
33
+ */
34
+ infoErrors: IFilterValidationInfo[];
35
+ }
36
+ /**
37
+ * Structure for the returning validation status on mulitple values
38
+ */
39
+ export interface IFilterValidationMultipleError {
40
+ /**
41
+ * the errors collection
42
+ */
43
+ errors: IFilterValidationError[][];
44
+ /**
45
+ * The info of the errors collection
46
+ */
47
+ infoErrors: IFilterValidationInfo[][];
48
+ }
49
+ /**
50
+ * Structure for the error
51
+ */
52
+ export interface IFilterValidationError {
53
+ type: IFilterValidation;
54
+ /**
55
+ * the affected values
56
+ */
57
+ value?: IFilterInputValue;
58
+ }
59
+ //# sourceMappingURL=filter-validation.models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-validation.models.d.ts","sourceRoot":"","sources":["../../src/models/filter-validation.models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,KAAK,EAAE,CACL,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,iBAAiB,KACrB,4BAA4B,CAAC;IAClC;;;;;OAKG;IACH,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,iBAAiB,EAAE,KACxB,8BAA8B,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC;;OAEG;IACH,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,MAAM,EAAE,sBAAsB,EAAE,EAAE,CAAC;IACnC;;OAEG;IACH,UAAU,EAAE,qBAAqB,EAAE,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,iBAAiB,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ import { IGeneralInfo } from "@qrvey/utils";
2
+ export type IFilterValidation = FILTER_VALIDATION;
3
+ export type IFilterValidationInfo = IGeneralInfo<IFilterValidation>;
4
+ export declare enum FILTER_VALIDATION {
5
+ EMPTY_FILTER = "EMPTY_FILTER",
6
+ EMPTY_VALUES = "EMPTY_VALUES",
7
+ NOT_EMPTY_VALUES = "NOT_EMPTY_VALUES",
8
+ REPEATED_VALUE = "REPEATED_VALUE",
9
+ INVALID_INPUT = "INVALID_INPUT",
10
+ INVALID_INPUT_DATE = "INVALID_INPUT_DATE",
11
+ INVALID_INPUT_NUMERIC = "INVALID_INPUT_NUMERIC",
12
+ MIN_LIMIT = "MIN_LIMIT",
13
+ MIN_LIMIT_DATE = "MIN_LIMIT_DATE",
14
+ MAX_LIMIT = "MAX_LIMIT",
15
+ MAX_LIMIT_DATE = "MAX_LIMIT_DATE"
16
+ }
17
+ export declare const FILTER_VALIDATION_INFO: {
18
+ [key in IFilterValidation]: IFilterValidationInfo;
19
+ };
20
+ //# sourceMappingURL=filter-validation.resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-validation.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filter-validation.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAElD,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAEpE,oBAAY,iBAAiB;IAC3B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,cAAc,mBAAmB;CAClC;AAED,eAAO,MAAM,sBAAsB,EAAE;KAClC,GAAG,IAAI,iBAAiB,GAAG,qBAAqB;CAoElD,CAAC"}
@@ -0,0 +1,82 @@
1
+ export var FILTER_VALIDATION;
2
+ (function (FILTER_VALIDATION) {
3
+ FILTER_VALIDATION["EMPTY_FILTER"] = "EMPTY_FILTER";
4
+ FILTER_VALIDATION["EMPTY_VALUES"] = "EMPTY_VALUES";
5
+ FILTER_VALIDATION["NOT_EMPTY_VALUES"] = "NOT_EMPTY_VALUES";
6
+ FILTER_VALIDATION["REPEATED_VALUE"] = "REPEATED_VALUE";
7
+ FILTER_VALIDATION["INVALID_INPUT"] = "INVALID_INPUT";
8
+ FILTER_VALIDATION["INVALID_INPUT_DATE"] = "INVALID_INPUT_DATE";
9
+ FILTER_VALIDATION["INVALID_INPUT_NUMERIC"] = "INVALID_INPUT_NUMERIC";
10
+ FILTER_VALIDATION["MIN_LIMIT"] = "MIN_LIMIT";
11
+ FILTER_VALIDATION["MIN_LIMIT_DATE"] = "MIN_LIMIT_DATE";
12
+ FILTER_VALIDATION["MAX_LIMIT"] = "MAX_LIMIT";
13
+ FILTER_VALIDATION["MAX_LIMIT_DATE"] = "MAX_LIMIT_DATE";
14
+ })(FILTER_VALIDATION || (FILTER_VALIDATION = {}));
15
+ export const FILTER_VALIDATION_INFO = {
16
+ [FILTER_VALIDATION.EMPTY_FILTER]: {
17
+ displayed: true,
18
+ i18nLabelPath: "filter_builder.error_messages.filter_empty",
19
+ label: "There is not filter",
20
+ value: FILTER_VALIDATION.EMPTY_FILTER,
21
+ },
22
+ [FILTER_VALIDATION.EMPTY_VALUES]: {
23
+ displayed: true,
24
+ i18nLabelPath: "filter_builder.error_messages.empty_input",
25
+ label: "The value should be empty",
26
+ value: FILTER_VALIDATION.EMPTY_VALUES,
27
+ },
28
+ [FILTER_VALIDATION.NOT_EMPTY_VALUES]: {
29
+ displayed: true,
30
+ i18nLabelPath: "filter_builder.error_messages.no_empty_input",
31
+ label: "The value should not be empty",
32
+ value: FILTER_VALIDATION.NOT_EMPTY_VALUES,
33
+ },
34
+ [FILTER_VALIDATION.INVALID_INPUT]: {
35
+ displayed: true,
36
+ i18nLabelPath: "filter_builder.error_messages.invalid_input",
37
+ label: "Invalid input.",
38
+ value: FILTER_VALIDATION.INVALID_INPUT,
39
+ },
40
+ [FILTER_VALIDATION.INVALID_INPUT_DATE]: {
41
+ displayed: true,
42
+ i18nLabelPath: "filter_builder.error_messages.invalid_input_date",
43
+ label: "Invalid input. Date Format should be MM/DD/YYYY.",
44
+ value: FILTER_VALIDATION.INVALID_INPUT_DATE,
45
+ },
46
+ [FILTER_VALIDATION.INVALID_INPUT_NUMERIC]: {
47
+ displayed: true,
48
+ i18nLabelPath: "filter_builder.error_messages.invalid_input_numeric",
49
+ label: "Invalid input. It should be numeric format.",
50
+ value: FILTER_VALIDATION.INVALID_INPUT_NUMERIC,
51
+ },
52
+ [FILTER_VALIDATION.MAX_LIMIT]: {
53
+ displayed: true,
54
+ i18nLabelPath: "filter_builder.error_messages.max_limit",
55
+ label: "Max value should be after the Min value",
56
+ value: FILTER_VALIDATION.MAX_LIMIT,
57
+ },
58
+ [FILTER_VALIDATION.MAX_LIMIT_DATE]: {
59
+ displayed: true,
60
+ i18nLabelPath: "filter_builder.error_messages.max_limit_date",
61
+ label: "Max date should be after the Min date",
62
+ value: FILTER_VALIDATION.MAX_LIMIT_DATE,
63
+ },
64
+ [FILTER_VALIDATION.MIN_LIMIT]: {
65
+ displayed: true,
66
+ i18nLabelPath: "filter_builder.error_messages.min_limit",
67
+ label: "Max value should be after the Min value",
68
+ value: FILTER_VALIDATION.MIN_LIMIT,
69
+ },
70
+ [FILTER_VALIDATION.MIN_LIMIT_DATE]: {
71
+ displayed: true,
72
+ i18nLabelPath: "filter_builder.error_messages.min_limit_date",
73
+ label: "Min date should be before the Max date",
74
+ value: FILTER_VALIDATION.MIN_LIMIT_DATE,
75
+ },
76
+ [FILTER_VALIDATION.REPEATED_VALUE]: {
77
+ displayed: true,
78
+ i18nLabelPath: "filter_builder.error_messages.repeated_value",
79
+ label: "This filter already exists.",
80
+ value: FILTER_VALIDATION.REPEATED_VALUE,
81
+ },
82
+ };
@@ -17,5 +17,24 @@ export type IFilterValueRelativeDate = IFilterValueGeneral & RelativeStatement;
17
17
  export interface IFilterValueRanking extends IFilterValueGeneral, IFilterValueRegular {
18
18
  position: number;
19
19
  }
20
+ /**
21
+ * The structure of the input values
22
+ */
23
+ export type IFilterInputValue = IFilterInputValueRegular | IFilterInputValueRange | IFilterInputValueRelativeDate;
24
+ /**
25
+ * The type for the regular input values
26
+ */
27
+ export type IFilterInputValueRegular = string;
28
+ /**
29
+ * The structure for the range values
30
+ */
31
+ export interface IFilterInputValueRange {
32
+ min?: string;
33
+ max?: string;
34
+ }
35
+ /**
36
+ * The structure for the In / Relative values
37
+ */
38
+ export type IFilterInputValueRelativeDate = RelativeStatement;
20
39
  export {};
21
40
  //# sourceMappingURL=filter-values.resources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-values.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filter-values.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,GACxB,mBAAmB,EAAE,CAAC;AAE1B,UAAU,mBAAmB;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAE/E,MAAM,WAAW,mBACf,SAAQ,mBAAmB,EACzB,mBAAmB;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"filter-values.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filter-values.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,GACxB,mBAAmB,EAAE,CAAC;AAE1B,UAAU,mBAAmB;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAE/E,MAAM,WAAW,mBACf,SAAQ,mBAAmB,EACzB,mBAAmB;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,sBAAsB,GACtB,6BAA6B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,CAAC"}
@@ -1,14 +1 @@
1
1
  export {};
2
- // export type IFilterValueUI =
3
- // | IFilterValueRegularUI
4
- // | IFilterValueRangeUI
5
- // | IFilterValueRelativeDateUI
6
- // | IFilterValueRankingUI[];
7
- // interface IFilterValueGeneralUI {
8
- // verbose: string;
9
- // }
10
- // type IFilterValueRegularUI = IFilterValueRegular & IFilterValueGeneralUI;
11
- // type IFilterValueRangeUI = IFilterValueRange & IFilterValueGeneralUI;
12
- // type IFilterValueRelativeDateUI = IFilterValueRelativeDate &
13
- // IFilterValueGeneralUI;
14
- // type IFilterValueRankingUI = IFilterValueRanking & IFilterValueGeneralUI;
@@ -29,6 +29,10 @@ export interface IFilter {
29
29
  * The column Type
30
30
  */
31
31
  columnType: IColumnType;
32
+ /**
33
+ * Custom label for this filter
34
+ */
35
+ customLabel?: string;
32
36
  /**
33
37
  * Dataset ID
34
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"filters.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filters.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAmB,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAgB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAkB,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAEL,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAEtC,MAAM,MAAM,sBAAsB,GAAG;KAAG,GAAG,IAAI,gBAAgB,GAAG,WAAW;CAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,WAAW,CAAC;IACxB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,cAAc,EAAE,OAqB5B,CAAC;AAEF,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,eAAO,MAAM,wBAAwB,EAAE,sBAsBtC,CAAC"}
1
+ {"version":3,"file":"filters.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filters.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAmB,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAgB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAkB,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAEL,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAEtC,MAAM,MAAM,sBAAsB,GAAG;KAAG,GAAG,IAAI,gBAAgB,GAAG,WAAW;CAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,WAAW,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,cAAc,EAAE,OAsB5B,CAAC;AAEF,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,eAAO,MAAM,wBAAwB,EAAE,sBAsBtC,CAAC"}
@@ -8,6 +8,7 @@ export const DEFAULT_FILTER = {
8
8
  collapsed: true,
9
9
  columnId: "",
10
10
  columnType: COLUMN.TEXTFIELD,
11
+ customLabel: undefined,
11
12
  datasetId: "",
12
13
  deletable: true,
13
14
  displayed: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/filters",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Helpers and logic for Filtering Data in Qrvey app",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -168,6 +168,7 @@ export class FilterBuilder
168
168
  collapsed: filter.collapsed ?? DEFAULT_FILTER.collapsed,
169
169
  columnId: filter.columnId ?? DEFAULT_FILTER.columnId,
170
170
  columnType: filter.columnType ?? DEFAULT_FILTER.columnType,
171
+ customLabel: filter.customLabel ?? DEFAULT_FILTER.customLabel,
171
172
  datasetId: filter.datasetId ?? DEFAULT_FILTER.datasetId,
172
173
  deletable: filter.deletable ?? DEFAULT_FILTER.deletable,
173
174
  displayed: filter.displayed ?? DEFAULT_FILTER.displayed,
@@ -54,7 +54,9 @@ export function filterToLegacyVisual(
54
54
  filters: IFilter[],
55
55
  datasets: IDataset[] = [],
56
56
  interactiveTable?: IFilterPanelInteractiveTable,
57
- ): IFUData {
57
+ ): IFUData | undefined {
58
+ if (isEmpty(filters)) return;
59
+
58
60
  return {
59
61
  enabled: true,
60
62
  section: FILTER_SECTION.DX,
@@ -357,6 +359,7 @@ function buildLegacyFilter(
357
359
  enabled: filter.enabled,
358
360
  extras: {
359
361
  ...filter.extras,
362
+ filterLabel: filter.customLabel,
360
363
  panelid: FILTER_SCOPE.CHART === filter.scope ? filter.scopeId : undefined,
361
364
  info: !isEmpty(filter.extras?.info)
362
365
  ? {
@@ -30,21 +30,28 @@ export interface IFilterValueRanking
30
30
  position: number;
31
31
  }
32
32
 
33
- // export type IFilterValueUI =
34
- // | IFilterValueRegularUI
35
- // | IFilterValueRangeUI
36
- // | IFilterValueRelativeDateUI
37
- // | IFilterValueRankingUI[];
38
-
39
- // interface IFilterValueGeneralUI {
40
- // verbose: string;
41
- // }
42
-
43
- // type IFilterValueRegularUI = IFilterValueRegular & IFilterValueGeneralUI;
44
-
45
- // type IFilterValueRangeUI = IFilterValueRange & IFilterValueGeneralUI;
46
-
47
- // type IFilterValueRelativeDateUI = IFilterValueRelativeDate &
48
- // IFilterValueGeneralUI;
33
+ /**
34
+ * The structure of the input values
35
+ */
36
+ export type IFilterInputValue =
37
+ | IFilterInputValueRegular
38
+ | IFilterInputValueRange
39
+ | IFilterInputValueRelativeDate;
40
+
41
+ /**
42
+ * The type for the regular input values
43
+ */
44
+ export type IFilterInputValueRegular = string;
45
+
46
+ /**
47
+ * The structure for the range values
48
+ */
49
+ export interface IFilterInputValueRange {
50
+ min?: string;
51
+ max?: string;
52
+ }
49
53
 
50
- // type IFilterValueRankingUI = IFilterValueRanking & IFilterValueGeneralUI;
54
+ /**
55
+ * The structure for the In / Relative values
56
+ */
57
+ export type IFilterInputValueRelativeDate = RelativeStatement;
@@ -34,6 +34,10 @@ export interface IFilter {
34
34
  * The column Type
35
35
  */
36
36
  columnType: IColumnType;
37
+ /**
38
+ * Custom label for this filter
39
+ */
40
+ customLabel?: string;
37
41
  /**
38
42
  * Dataset ID
39
43
  */
@@ -104,6 +108,7 @@ export const DEFAULT_FILTER: IFilter = {
104
108
  collapsed: true,
105
109
  columnId: "",
106
110
  columnType: COLUMN.TEXTFIELD,
111
+ customLabel: undefined,
107
112
  datasetId: "",
108
113
  deletable: true,
109
114
  displayed: true,