@qrvey/utils 1.10.1 → 1.11.0-0

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.
Files changed (47) hide show
  1. package/dist/cjs/dates/adapters/numericOffsetToISO.js +0 -2
  2. package/dist/cjs/dates/helpers/getTimezoneObject.js +4 -2
  3. package/dist/cjs/dates/helpers/getTimezoneOffsetByType.js +1 -1
  4. package/dist/cjs/dates/helpers/index.d.ts +2 -0
  5. package/dist/cjs/dates/helpers/index.js +2 -0
  6. package/dist/cjs/dates/helpers/isValidTimezoneOffset.d.ts +7 -0
  7. package/dist/cjs/dates/helpers/isValidTimezoneOffset.js +20 -0
  8. package/dist/cjs/filters/helpers/common/getVerboseFilterDatasets.d.ts +9 -0
  9. package/dist/cjs/filters/helpers/common/getVerboseFilterDatasets.js +94 -0
  10. package/dist/cjs/filters/helpers/common/getVerboseFilterFilters.d.ts +9 -0
  11. package/dist/cjs/filters/helpers/common/getVerboseFilterFilters.js +97 -0
  12. package/dist/cjs/filters/helpers/common/getVerboseFilterScopes.d.ts +9 -0
  13. package/dist/cjs/filters/helpers/common/getVerboseFilterScopes.js +100 -0
  14. package/dist/cjs/filters/helpers/common/getVerboseFilterValues.d.ts +9 -0
  15. package/dist/cjs/filters/helpers/common/getVerboseFilterValues.js +100 -0
  16. package/dist/cjs/filters/helpers/common/getVerboseFilters.d.ts +10 -0
  17. package/dist/cjs/filters/helpers/common/getVerboseFilters.js +54 -0
  18. package/dist/cjs/filters/helpers/common/index.d.ts +5 -0
  19. package/dist/cjs/filters/helpers/common/index.js +5 -0
  20. package/dist/cjs/filters/helpers/ui/getUIValues.js +3 -1
  21. package/dist/cjs/filters/interfaces/functions/IFFGetVerboseFilters.d.ts +34 -0
  22. package/dist/cjs/filters/interfaces/functions/IFFGetVerboseFilters.js +2 -0
  23. package/dist/cjs/globalization/labels/bucket_builder/I18N_BUCKET_BUILDER.js +1 -1
  24. package/dist/dates/adapters/numericOffsetToISO.js +0 -2
  25. package/dist/dates/helpers/getTimezoneObject.js +4 -2
  26. package/dist/dates/helpers/getTimezoneOffsetByType.js +1 -1
  27. package/dist/dates/helpers/index.d.ts +2 -0
  28. package/dist/dates/helpers/index.js +2 -0
  29. package/dist/dates/helpers/isValidTimezoneOffset.d.ts +7 -0
  30. package/dist/dates/helpers/isValidTimezoneOffset.js +16 -0
  31. package/dist/filters/helpers/common/getVerboseFilterDatasets.d.ts +9 -0
  32. package/dist/filters/helpers/common/getVerboseFilterDatasets.js +90 -0
  33. package/dist/filters/helpers/common/getVerboseFilterFilters.d.ts +9 -0
  34. package/dist/filters/helpers/common/getVerboseFilterFilters.js +93 -0
  35. package/dist/filters/helpers/common/getVerboseFilterScopes.d.ts +9 -0
  36. package/dist/filters/helpers/common/getVerboseFilterScopes.js +96 -0
  37. package/dist/filters/helpers/common/getVerboseFilterValues.d.ts +9 -0
  38. package/dist/filters/helpers/common/getVerboseFilterValues.js +96 -0
  39. package/dist/filters/helpers/common/getVerboseFilters.d.ts +10 -0
  40. package/dist/filters/helpers/common/getVerboseFilters.js +49 -0
  41. package/dist/filters/helpers/common/index.d.ts +5 -0
  42. package/dist/filters/helpers/common/index.js +5 -0
  43. package/dist/filters/helpers/ui/getUIValues.js +3 -1
  44. package/dist/filters/interfaces/functions/IFFGetVerboseFilters.d.ts +34 -0
  45. package/dist/filters/interfaces/functions/IFFGetVerboseFilters.js +1 -0
  46. package/dist/globalization/labels/bucket_builder/I18N_BUCKET_BUILDER.js +1 -1
  47. package/package.json +1 -1
@@ -17,8 +17,6 @@ function numericOffsetToISO(offset, leadZeros = true) {
17
17
  if (typeof newOffset === "string" && newOffset === "browser")
18
18
  newOffset = -1 * new Date().getTimezoneOffset();
19
19
  if (typeof newOffset === "string" && (0, isValidISOOffset_1.isValidISOOffset)(newOffset)) {
20
- if (leadZeros)
21
- return String(newOffset);
22
20
  newOffset = (0, ISOToNumericOffset_1.ISOToNumericOffset)(newOffset);
23
21
  }
24
22
  if (typeof newOffset !== "number" && (0, isNaNV2_1.isNaNV2)(newOffset))
@@ -7,6 +7,7 @@ const TIMEZONE_TYPE_1 = require("../constants/TIMEZONE_TYPE");
7
7
  const getTimezoneOffsetByType_1 = require("./getTimezoneOffsetByType");
8
8
  const getUTCFormatByOffset_1 = require("./getUTCFormatByOffset");
9
9
  const isValidISOOffset_1 = require("./isValidISOOffset");
10
+ const isValidTimezoneOffset_1 = require("./isValidTimezoneOffset");
10
11
  /**
11
12
  * Gets the timezone object by the given argument or the model object
12
13
  * - In any case, the offset is prioritized to override other properties.
@@ -38,10 +39,11 @@ exports.getTimezoneObject = getTimezoneObject;
38
39
  function getOffset(timezone, model) {
39
40
  var _a;
40
41
  let offset;
41
- if (!(0, isEmpty_1.isEmpty)(timezone === null || timezone === void 0 ? void 0 : timezone.offset)) {
42
+ if (!(0, isEmpty_1.isEmpty)(timezone === null || timezone === void 0 ? void 0 : timezone.offset) && (0, isValidTimezoneOffset_1.isValidTimezoneOffset)(timezone.offset)) {
42
43
  offset = timezone.offset;
43
44
  }
44
- else if (!(0, isEmpty_1.isEmpty)((_a = model === null || model === void 0 ? void 0 : model.timezone) === null || _a === void 0 ? void 0 : _a.offset)) {
45
+ else if (!(0, isEmpty_1.isEmpty)((_a = model === null || model === void 0 ? void 0 : model.timezone) === null || _a === void 0 ? void 0 : _a.offset) &&
46
+ (0, isValidTimezoneOffset_1.isValidTimezoneOffset)(model.timezone.offset)) {
45
47
  offset = model.timezone.offset;
46
48
  }
47
49
  else {
@@ -22,6 +22,6 @@ function getTimezoneOffsetByType(timezone) {
22
22
  else if (timezone.type === TIMEZONE_TYPE_1.TIMEZONE_TYPE.DEFAULT) {
23
23
  return "+00:00";
24
24
  }
25
- return timezone.offset || timezone.numericOffset || "+00:00";
25
+ return (0, numericOffsetToISO_1.numericOffsetToISO)(timezone.offset || timezone.numericOffset || "+00:00");
26
26
  }
27
27
  exports.getTimezoneOffsetByType = getTimezoneOffsetByType;
@@ -14,5 +14,7 @@ export * from "./getTimezoneOffsetByType";
14
14
  export * from "./getUTCFormatByOffset";
15
15
  export * from "./getWeek";
16
16
  export * from "./isValidDateObject";
17
+ export * from "./isValidISOOffset";
17
18
  export * from "./isValidPotentialDate";
19
+ export * from "./isValidTimezoneOffset";
18
20
  export * from "./validateDate";
@@ -30,5 +30,7 @@ __exportStar(require("./getTimezoneOffsetByType"), exports);
30
30
  __exportStar(require("./getUTCFormatByOffset"), exports);
31
31
  __exportStar(require("./getWeek"), exports);
32
32
  __exportStar(require("./isValidDateObject"), exports);
33
+ __exportStar(require("./isValidISOOffset"), exports);
33
34
  __exportStar(require("./isValidPotentialDate"), exports);
35
+ __exportStar(require("./isValidTimezoneOffset"), exports);
34
36
  __exportStar(require("./validateDate"), exports);
@@ -0,0 +1,7 @@
1
+ import { IDTimezoneOffset } from "../interfaces/IDTimezoneOffset";
2
+ /**
3
+ * Validates if the given param is a valid timezone offset
4
+ * @param {IDTimezoneOffset} offset the timezone offset
5
+ * @returns true: is valid.
6
+ */
7
+ export declare function isValidTimezoneOffset(offset: IDTimezoneOffset): boolean;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidTimezoneOffset = void 0;
4
+ const general_1 = require("../../general");
5
+ const isValidISOOffset_1 = require("./isValidISOOffset");
6
+ /**
7
+ * Validates if the given param is a valid timezone offset
8
+ * @param {IDTimezoneOffset} offset the timezone offset
9
+ * @returns true: is valid.
10
+ */
11
+ function isValidTimezoneOffset(offset) {
12
+ if (typeof offset === "string") {
13
+ return offset === "browser" || (0, isValidISOOffset_1.isValidISOOffset)(offset);
14
+ }
15
+ if (typeof offset === "number") {
16
+ return !(0, general_1.isNaNV2)(offset);
17
+ }
18
+ return false;
19
+ }
20
+ exports.isValidTimezoneOffset = isValidTimezoneOffset;
@@ -0,0 +1,9 @@
1
+ import { IFFGetVerboseFilters } from "../../interfaces/functions/IFFGetVerboseFilters";
2
+ import { IFUDataset } from "../../interfaces/ui/IFUDataset";
3
+ /**
4
+ * Gets an string that describes the filter datasets content
5
+ * @param {IFUDataset[]} filters The filter datasets to verbose
6
+ * @param {IFFGetVerboseFilters} settings the settings to the function
7
+ * @returns the description of the datasets array
8
+ */
9
+ export declare function getVerboseFilterDatasets(datasets: IFUDataset[], settings?: IFFGetVerboseFilters): string;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVerboseFilterDatasets = void 0;
4
+ const isEmpty_1 = require("../../../general/mix/isEmpty");
5
+ const isObject_1 = require("../../../general/object/isObject");
6
+ const I18N_FILTER_OPERATOR_1 = require("../../../globalization/labels/filters/I18N_FILTER_OPERATOR");
7
+ const FILTER_OPERATOR_1 = require("../../constants/common/FILTER_OPERATOR");
8
+ const getVerboseFilterFilters_1 = require("./getVerboseFilterFilters");
9
+ const getVerboseFilters_1 = require("./getVerboseFilters");
10
+ /**
11
+ * Gets an string that describes the filter datasets content
12
+ * @param {IFUDataset[]} filters The filter datasets to verbose
13
+ * @param {IFFGetVerboseFilters} settings the settings to the function
14
+ * @returns the description of the datasets array
15
+ */
16
+ function getVerboseFilterDatasets(datasets, settings) {
17
+ if ((0, isEmpty_1.isEmpty)(datasets) || !Array.isArray(datasets))
18
+ return "";
19
+ const defaultSettings = (0, getVerboseFilters_1.getVerboseFiltersSettings)(settings);
20
+ const filteredDatasets = getDatasets(datasets, defaultSettings);
21
+ return filteredDatasets.reduce((verbose, dataset, currentIndex, array) => {
22
+ let newVerbose = "";
23
+ const title = getTitle(dataset, defaultSettings);
24
+ const titleSeparator = getTitleSeparator(defaultSettings);
25
+ const filterVerbose = (0, getVerboseFilterFilters_1.getVerboseFilterFilters)(dataset.filters, defaultSettings);
26
+ const newSeparator = getSeparator(defaultSettings, currentIndex >= array.length - 1);
27
+ newVerbose += `${(0, isEmpty_1.isEmpty)(title) ? "" : `${title}${titleSeparator}`}${filterVerbose}${newSeparator}`;
28
+ return `${verbose}${newVerbose}`;
29
+ }, "");
30
+ }
31
+ exports.getVerboseFilterDatasets = getVerboseFilterDatasets;
32
+ /**
33
+ * Gets the datasets by some conditions
34
+ * @param {IFUDataset[]} filters The filtered datasets to verbose
35
+ * @param {IFFGetVerboseFilters} settings the settings to the function
36
+ * @returns {IFUDataset[]} the collection of the datasets
37
+ */
38
+ function getDatasets(datasets, settings) {
39
+ return datasets.filter((dataset) => (0, isObject_1.isObject)(dataset) &&
40
+ (settings.datasetDisplayDisplayed || dataset.displayed) &&
41
+ (settings.datasetEnableDisplayed || dataset.enabled));
42
+ }
43
+ /**
44
+ * Gets the title of the filter dataset
45
+ * @param {IFUDataset} dataset the filter dataset object
46
+ * @param {IFFGetVerboseFilters} settings the settings to the function
47
+ * @returns {string} the title of the filter dataset
48
+ */
49
+ function getTitle(dataset, settings) {
50
+ return settings.datasetTitleDisplayed ? dataset.label || "" : "";
51
+ }
52
+ /**
53
+ * Gets the separators for the title. It would be
54
+ * - New Line
55
+ * - An string from argument
56
+ * @param {IFFGetVerboseFilters} settings the settings of the module
57
+ * @returns {string} the string of the separator
58
+ */
59
+ function getTitleSeparator(settings) {
60
+ let newLine = "";
61
+ if (settings.datasetTitleNewLine) {
62
+ newLine = "\n";
63
+ }
64
+ else if (!(0, isEmpty_1.isEmpty)(settings.datasetTitleSeparator)) {
65
+ newLine = settings.datasetTitleSeparator;
66
+ }
67
+ return newLine;
68
+ }
69
+ /**
70
+ * Gets the separators of each filter. It would be
71
+ * - New Line
72
+ * - The operator
73
+ * - An string from argument
74
+ * @param {IFFGetVerboseFilters} settings the settings of the module
75
+ * @returns {string} the string of the separator
76
+ */
77
+ function getSeparator(settings, lastValue = false) {
78
+ let newLine = "";
79
+ if (lastValue)
80
+ return newLine;
81
+ if (settings.datasetNewLine) {
82
+ newLine = "\n";
83
+ }
84
+ else if (settings.datasetOperatorDisplayed) {
85
+ newLine = (0, isEmpty_1.isEmpty)(settings.translate)
86
+ ? I18N_FILTER_OPERATOR_1.I18N_FILTER_OPERATOR.and
87
+ : settings.translate(`filter.operators.${FILTER_OPERATOR_1.FILTER_OPERATOR.AND.toLowerCase()}`);
88
+ newLine = ` ${newLine} `;
89
+ }
90
+ else {
91
+ newLine = settings.datasetSeparator;
92
+ }
93
+ return newLine;
94
+ }
@@ -0,0 +1,9 @@
1
+ import { IFFGetVerboseFilters } from "../../interfaces/functions/IFFGetVerboseFilters";
2
+ import { IFUFilter } from "../../interfaces/ui/IFUFilter";
3
+ /**
4
+ * Gets an string that describes the filter filters content
5
+ * @param {IFUFilter[]} filters The filter filters to verbose
6
+ * @param {IFFGetVerboseFilters} settings the settings to the function
7
+ * @returns the description of the filters array
8
+ */
9
+ export declare function getVerboseFilterFilters(filters: IFUFilter[], settings?: IFFGetVerboseFilters): string;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVerboseFilterFilters = void 0;
4
+ const isEmpty_1 = require("../../../general/mix/isEmpty");
5
+ const isObject_1 = require("../../../general/object/isObject");
6
+ const I18N_FILTER_OPERATOR_1 = require("../../../globalization/labels/filters/I18N_FILTER_OPERATOR");
7
+ const getVerboseFilterValues_1 = require("./getVerboseFilterValues");
8
+ const getVerboseFilters_1 = require("./getVerboseFilters");
9
+ /**
10
+ * Gets an string that describes the filter filters content
11
+ * @param {IFUFilter[]} filters The filter filters to verbose
12
+ * @param {IFFGetVerboseFilters} settings the settings to the function
13
+ * @returns the description of the filters array
14
+ */
15
+ function getVerboseFilterFilters(filters, settings) {
16
+ if ((0, isEmpty_1.isEmpty)(filters) || !Array.isArray(filters))
17
+ return "";
18
+ const defaultSettings = (0, getVerboseFilters_1.getVerboseFiltersSettings)(settings);
19
+ const filteredFilters = getFilters(filters, defaultSettings);
20
+ return filteredFilters.reduce((verbose, filter, currentIndex, array) => {
21
+ let newVerbose = "";
22
+ const title = getTitle(filter, defaultSettings);
23
+ const titleSeparator = getTitleSeparator(defaultSettings);
24
+ const valuesVerbose = (0, getVerboseFilterValues_1.getVerboseFilterValues)(filter, defaultSettings);
25
+ const newSeparator = getSeparator(filter, defaultSettings, currentIndex >= array.length - 1);
26
+ newVerbose += `${(0, isEmpty_1.isEmpty)(title) ? "" : `${title}${titleSeparator}`}${valuesVerbose}${newSeparator}`;
27
+ return `${verbose}${newVerbose}`;
28
+ }, "");
29
+ }
30
+ exports.getVerboseFilterFilters = getVerboseFilterFilters;
31
+ /**
32
+ * Gets the filters by some conditions
33
+ * @param {IFUFilter[]} filters The filtered filters to verbose
34
+ * @param {IFFGetVerboseFilters} settings the settings to the function
35
+ * @returns {IFUFilter[]} the collection of the filters
36
+ */
37
+ function getFilters(filters, settings) {
38
+ return filters.filter((filter) => (0, isObject_1.isObject)(filter) &&
39
+ (settings.filterDisplayDisplayed || filter.displayed) &&
40
+ (settings.filterEnableDisplayed || filter.enabled));
41
+ }
42
+ /**
43
+ * Gets the title of the filter
44
+ * @param {IFUFilter} filter the filter object
45
+ * @param {IFFGetVerboseFilters} settings the settings to the function
46
+ * @returns {string} the title of the filter
47
+ */
48
+ function getTitle(filter, settings) {
49
+ return settings.filterTitleDisplayed
50
+ ? filter.extras.filterLabel || filter.column.label || ""
51
+ : "";
52
+ }
53
+ /**
54
+ * Gets the separators of each filter. It would be
55
+ * - New Line
56
+ * - The operator
57
+ * - An string from argument
58
+ * @param {number} currentIndex the iteration index of the value
59
+ * @param {IFUFilter} filter the filter object
60
+ * @param {IFFGetVerboseFilters} settings the settings of the module
61
+ * @returns {string} the string of the separator
62
+ */
63
+ function getSeparator(filter, settings, lastValue = false) {
64
+ let newLine = "";
65
+ if (lastValue)
66
+ return newLine;
67
+ if (settings.filterNewLine) {
68
+ newLine = "\n";
69
+ }
70
+ else if (settings.filterOperatorDisplayed) {
71
+ newLine = (0, isEmpty_1.isEmpty)(settings.translate)
72
+ ? I18N_FILTER_OPERATOR_1.I18N_FILTER_OPERATOR[filter.operator.toLowerCase()]
73
+ : settings.translate(`filter.operators.${filter.operator.toLowerCase()}`);
74
+ newLine = ` ${newLine} `;
75
+ }
76
+ else {
77
+ newLine = settings.filterSeparator;
78
+ }
79
+ return newLine;
80
+ }
81
+ /**
82
+ * Gets the separators for the title. It would be
83
+ * - New Line
84
+ * - An string from argument
85
+ * @param {IFFGetVerboseFilters} settings the settings of the module
86
+ * @returns {string} the string of the separator
87
+ */
88
+ function getTitleSeparator(settings) {
89
+ let newLine = "";
90
+ if (settings.filterTitleNewLine) {
91
+ newLine = "\n";
92
+ }
93
+ else if (!(0, isEmpty_1.isEmpty)(settings.filterTitleSeparator)) {
94
+ newLine = settings.filterTitleSeparator;
95
+ }
96
+ return newLine;
97
+ }
@@ -0,0 +1,9 @@
1
+ import { IFFGetVerboseFilters } from "../../interfaces/functions/IFFGetVerboseFilters";
2
+ import { IFUScope } from "../../interfaces/ui/IFUScope";
3
+ /**
4
+ * Gets an string that describes the filter scopes content
5
+ * @param {IFUScope[]} filters The filters scopes to verbose
6
+ * @param {IFFGetVerboseFilters} settings the settings to the function
7
+ * @returns A string
8
+ */
9
+ export declare function getVerboseFilterScopes(scopes: IFUScope[], settings?: IFFGetVerboseFilters): string;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVerboseFilterScopes = void 0;
4
+ const isEmpty_1 = require("../../../general/mix/isEmpty");
5
+ const isObject_1 = require("../../../general/object/isObject");
6
+ const I18N_FILTER_OPERATOR_1 = require("../../../globalization/labels/filters/I18N_FILTER_OPERATOR");
7
+ const I18N_FILTER_SCOPE_1 = require("../../../globalization/labels/filters/I18N_FILTER_SCOPE");
8
+ const FILTER_OPERATOR_1 = require("../../constants/common/FILTER_OPERATOR");
9
+ const getVerboseFilterDatasets_1 = require("./getVerboseFilterDatasets");
10
+ const getVerboseFilters_1 = require("./getVerboseFilters");
11
+ /**
12
+ * Gets an string that describes the filter scopes content
13
+ * @param {IFUScope[]} filters The filters scopes to verbose
14
+ * @param {IFFGetVerboseFilters} settings the settings to the function
15
+ * @returns A string
16
+ */
17
+ function getVerboseFilterScopes(scopes, settings) {
18
+ if ((0, isEmpty_1.isEmpty)(scopes) || !Array.isArray(scopes))
19
+ return "";
20
+ const defaultSettings = (0, getVerboseFilters_1.getVerboseFiltersSettings)(settings);
21
+ const filteredScopes = getScopes(scopes, defaultSettings);
22
+ return filteredScopes.reduce((verbose, scope, currentIndex, array) => {
23
+ let newVerbose = "";
24
+ const title = getTitle(scope, defaultSettings);
25
+ const titleSeparator = getTitleSeparator(defaultSettings);
26
+ const datasetsVerbose = (0, getVerboseFilterDatasets_1.getVerboseFilterDatasets)(scope.datasets, defaultSettings);
27
+ const newSeparator = getSeparator(defaultSettings, currentIndex >= array.length - 1);
28
+ newVerbose += `${(0, isEmpty_1.isEmpty)(title) ? "" : `${title}${titleSeparator}`}${datasetsVerbose}${newSeparator}`;
29
+ return `${verbose}${newVerbose}`;
30
+ }, "");
31
+ }
32
+ exports.getVerboseFilterScopes = getVerboseFilterScopes;
33
+ /**
34
+ * Gets the scopes by some conditions
35
+ * @param {IFUScope[]} filters The filtered scopes to verbose
36
+ * @param {IFFGetVerboseFilters} settings the settings to the function
37
+ * @returns {IFUScope[]} the collection of the scopes
38
+ */
39
+ function getScopes(scopes, settings) {
40
+ return scopes.filter((scope) => (0, isObject_1.isObject)(scope) &&
41
+ (settings.scopeDisplayDisplayed || scope.displayed) &&
42
+ (settings.scopeEnableDisplayed || scope.enabled));
43
+ }
44
+ /**
45
+ * Gets the title of the filter scope
46
+ * @param {IFUScope} scope the filter scope info
47
+ * @param {IFFGetVerboseFilters} settings the settings of the function
48
+ * @returns {string} the title of the filter scope
49
+ */
50
+ function getTitle(scope, settings) {
51
+ if (settings.scopeTitleDisplayed) {
52
+ return (0, isEmpty_1.isEmpty)(settings.translate)
53
+ ? scope.label || I18N_FILTER_SCOPE_1.I18N_FILTER_SCOPE[scope.scope.toLowerCase()] || ""
54
+ : settings.translate(`filter.scope_title.${scope.scope.toLowerCase()}`);
55
+ }
56
+ return "";
57
+ }
58
+ /**
59
+ * Gets the separators for the title. It would be
60
+ * - New Line
61
+ * - An string from argument
62
+ * @param {IFFGetVerboseFilters} settings the settings of the module
63
+ * @returns {string} the string of the title separator
64
+ */
65
+ function getTitleSeparator(settings) {
66
+ let newLine = "";
67
+ if (settings.scopeTitleNewLine) {
68
+ newLine = "\n";
69
+ }
70
+ else if (!(0, isEmpty_1.isEmpty)(settings.scopeTitleSeparator)) {
71
+ newLine = settings.scopeTitleSeparator;
72
+ }
73
+ return newLine;
74
+ }
75
+ /**
76
+ * Gets the separators of each filter. It would be
77
+ * - New Line
78
+ * - The operator
79
+ * - An string from argument
80
+ * @param {IFFGetVerboseFilters} settings the settings of the module
81
+ * @returns {string} the string of the separator
82
+ */
83
+ function getSeparator(settings, lastValue = false) {
84
+ let newLine = "";
85
+ if (lastValue)
86
+ return newLine;
87
+ if (settings.scopeNewLine) {
88
+ newLine = "\n";
89
+ }
90
+ else if (settings.scopeOperatorDisplayed) {
91
+ newLine = (0, isEmpty_1.isEmpty)(settings.translate)
92
+ ? I18N_FILTER_OPERATOR_1.I18N_FILTER_OPERATOR.and
93
+ : settings.translate(`filter.operators.${FILTER_OPERATOR_1.FILTER_OPERATOR.AND.toLowerCase()}`);
94
+ newLine = ` ${newLine} `;
95
+ }
96
+ else {
97
+ newLine = settings.scopeSeparator;
98
+ }
99
+ return newLine;
100
+ }
@@ -0,0 +1,9 @@
1
+ import { IFFGetVerboseFilters } from "../../interfaces/functions/IFFGetVerboseFilters";
2
+ import { IFUFilter } from "../../interfaces/ui/IFUFilter";
3
+ /**
4
+ * Gets an string that describes the filter values content
5
+ * @param {IFValue[]} filters The filter values to verbose
6
+ * @param {IFFGetVerboseFilters} settings the settings to the function
7
+ * @returns the description of the filter values
8
+ */
9
+ export declare function getVerboseFilterValues(filter: IFUFilter, settings?: IFFGetVerboseFilters): string;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVerboseFilterValues = void 0;
4
+ const COLUMN_1 = require("../../../columns/constants/COLUMN");
5
+ const isEmpty_1 = require("../../../general/mix/isEmpty");
6
+ const isObject_1 = require("../../../general/object/isObject");
7
+ const I18N_FILTER_OPERATOR_1 = require("../../../globalization/labels/filters/I18N_FILTER_OPERATOR");
8
+ const I18N_FILTER_PANEL_1 = require("../../../globalization/labels/filters/I18N_FILTER_PANEL");
9
+ const FILTER_OPERATOR_1 = require("../../constants/common/FILTER_OPERATOR");
10
+ const getUIValues_1 = require("../ui/getUIValues");
11
+ const getVerboseFilters_1 = require("./getVerboseFilters");
12
+ /**
13
+ * Gets an string that describes the filter values content
14
+ * @param {IFValue[]} filters The filter values to verbose
15
+ * @param {IFFGetVerboseFilters} settings the settings to the function
16
+ * @returns the description of the filter values
17
+ */
18
+ function getVerboseFilterValues(filter, settings) {
19
+ if ((0, isEmpty_1.isEmpty)(filter) ||
20
+ !(0, isObject_1.isObject)(filter) ||
21
+ (!filter.selectAll && (0, isEmpty_1.isEmpty)(filter.values)))
22
+ return "";
23
+ const defaultSettings = (0, getVerboseFilters_1.getVerboseFiltersSettings)(settings);
24
+ const values = getValues(filter, defaultSettings);
25
+ const newSeparator = getSeparator(defaultSettings);
26
+ const stringValues = values.join(newSeparator);
27
+ if (filter.selectAll) {
28
+ if ((0, isEmpty_1.isEmpty)(values)) {
29
+ return (0, isEmpty_1.isEmpty)(defaultSettings.translate)
30
+ ? I18N_FILTER_PANEL_1.I18N_FILTER_PANEL.card_all_selected
31
+ : defaultSettings.translate("filter_panel.card_all_selected");
32
+ }
33
+ return `${(0, isEmpty_1.isEmpty)(defaultSettings.translate)
34
+ ? I18N_FILTER_PANEL_1.I18N_FILTER_PANEL.card_all_except
35
+ : defaultSettings.translate("filter_panel.card_all_except")} ${stringValues}`;
36
+ }
37
+ else if ((0, isEmpty_1.isEmpty)(values)) {
38
+ return (0, isEmpty_1.isEmpty)(defaultSettings.translate)
39
+ ? I18N_FILTER_PANEL_1.I18N_FILTER_PANEL.card_none_selected
40
+ : defaultSettings.translate("filter_panel.card_none_selected");
41
+ }
42
+ return stringValues;
43
+ }
44
+ exports.getVerboseFilterValues = getVerboseFilterValues;
45
+ /**
46
+ * Gets the value collection of the filter by some conditions
47
+ * @param {IFValue} filter The filter to get the values
48
+ * @param {IFFGetVerboseFilters} settings the settings to the function
49
+ * @returns {string[]} the collection of the filter values
50
+ */
51
+ function getValues(filter, settings) {
52
+ const uiValues = (0, getUIValues_1.getUIValues)(filter, Object.assign(Object.assign({}, settings), { addEnableds: true }));
53
+ return uiValues
54
+ .map((uiValue) => {
55
+ if ((settings.valueDisplayDisplayed || uiValue.displayed) &&
56
+ (settings.valueEnableDisplayed || uiValue.enabled))
57
+ return getValue(filter, uiValue);
58
+ })
59
+ .filter(Boolean);
60
+ }
61
+ /**
62
+ * Gets the separators of each values. It would be
63
+ * - New Line
64
+ * - The operator
65
+ * - An string from argument
66
+ * @param {number} currentIndex the iteration index of the value
67
+ * @param {IFUValue[]} values the collection of values
68
+ * @param {IFFGetVerboseFilters} settings the settings of the module
69
+ * @returns {string} the string of the separator
70
+ */
71
+ function getSeparator(settings) {
72
+ let newLine = "";
73
+ if (settings.valueNewLine) {
74
+ newLine = "\n";
75
+ }
76
+ else if (settings.valueOperatorDisplayed) {
77
+ newLine = (0, isEmpty_1.isEmpty)(settings.translate)
78
+ ? I18N_FILTER_OPERATOR_1.I18N_FILTER_OPERATOR.or
79
+ : settings.translate(`filter.operators.${FILTER_OPERATOR_1.FILTER_OPERATOR.OR.toLowerCase()}`);
80
+ newLine = ` ${newLine} `;
81
+ }
82
+ else {
83
+ newLine = settings.valueSeparator;
84
+ }
85
+ return newLine;
86
+ }
87
+ /**
88
+ * Gets the value according to the filter info
89
+ * - When the filter column type is image the URL should be returned in case value is undefined.
90
+ * @param {IFUFilter} filter the filter object
91
+ * @param {IFUValue} value the value item
92
+ * @returns {string} the resulting value
93
+ */
94
+ function getValue(filter, value) {
95
+ let newValue = value.value || "";
96
+ if (filter.column.type === COLUMN_1.COLUMN.IMAGE) {
97
+ newValue = value.value || value.imageUrl || "";
98
+ }
99
+ return newValue;
100
+ }
@@ -0,0 +1,10 @@
1
+ import { IFFGetVerboseFilters } from "../../interfaces/functions/IFFGetVerboseFilters";
2
+ import { IFUData } from "../../interfaces/ui/IFUData";
3
+ /**
4
+ * Gets an string that describes the filter data content
5
+ * @param {IFUData} filters The filters object to verbose
6
+ * @param {IGetVerboseFiltersSettings} settings the settings to the function
7
+ * @returns A string
8
+ */
9
+ export declare function getVerboseFilters(filterData: IFUData, settings?: IFFGetVerboseFilters): string;
10
+ export declare function getVerboseFiltersSettings(settings?: IFFGetVerboseFilters): IFFGetVerboseFilters;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVerboseFiltersSettings = exports.getVerboseFilters = void 0;
4
+ const isEmpty_1 = require("../../../general/mix/isEmpty");
5
+ const getVerboseFilterScopes_1 = require("./getVerboseFilterScopes");
6
+ /**
7
+ * Gets an string that describes the filter data content
8
+ * @param {IFUData} filters The filters object to verbose
9
+ * @param {IGetVerboseFiltersSettings} settings the settings to the function
10
+ * @returns A string
11
+ */
12
+ function getVerboseFilters(filterData, settings) {
13
+ if ((0, isEmpty_1.isEmpty)(filterData) || (0, isEmpty_1.isEmpty)(filterData.scopes))
14
+ return "";
15
+ return (0, getVerboseFilterScopes_1.getVerboseFilterScopes)(filterData.scopes, settings);
16
+ }
17
+ exports.getVerboseFilters = getVerboseFilters;
18
+ function getVerboseFiltersSettings(settings) {
19
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
20
+ return {
21
+ chartLabelDisplayed: (_a = settings === null || settings === void 0 ? void 0 : settings.chartLabelDisplayed) !== null && _a !== void 0 ? _a : true,
22
+ datasetDisplayDisplayed: (_b = settings === null || settings === void 0 ? void 0 : settings.datasetDisplayDisplayed) !== null && _b !== void 0 ? _b : true,
23
+ datasetEnableDisplayed: (_c = settings === null || settings === void 0 ? void 0 : settings.datasetEnableDisplayed) !== null && _c !== void 0 ? _c : true,
24
+ datasetTitleDisplayed: (_d = settings === null || settings === void 0 ? void 0 : settings.datasetTitleDisplayed) !== null && _d !== void 0 ? _d : true,
25
+ datasetTitleNewLine: (_e = settings === null || settings === void 0 ? void 0 : settings.datasetTitleNewLine) !== null && _e !== void 0 ? _e : false,
26
+ datasetTitleSeparator: (settings === null || settings === void 0 ? void 0 : settings.datasetTitleSeparator) || ": ",
27
+ datasetNewLine: (_f = settings === null || settings === void 0 ? void 0 : settings.datasetNewLine) !== null && _f !== void 0 ? _f : false,
28
+ datasetOperatorDisplayed: (_g = settings === null || settings === void 0 ? void 0 : settings.datasetOperatorDisplayed) !== null && _g !== void 0 ? _g : false,
29
+ datasetSeparator: (settings === null || settings === void 0 ? void 0 : settings.datasetSeparator) || ", ",
30
+ filterDisplayDisplayed: (_h = settings === null || settings === void 0 ? void 0 : settings.filterDisplayDisplayed) !== null && _h !== void 0 ? _h : true,
31
+ filterEnableDisplayed: (_j = settings === null || settings === void 0 ? void 0 : settings.filterEnableDisplayed) !== null && _j !== void 0 ? _j : true,
32
+ filterTitleDisplayed: (_k = settings === null || settings === void 0 ? void 0 : settings.filterTitleDisplayed) !== null && _k !== void 0 ? _k : true,
33
+ filterTitleNewLine: (_l = settings === null || settings === void 0 ? void 0 : settings.filterTitleNewLine) !== null && _l !== void 0 ? _l : false,
34
+ filterTitleSeparator: (settings === null || settings === void 0 ? void 0 : settings.filterTitleSeparator) || ": ",
35
+ filterNewLine: (_m = settings === null || settings === void 0 ? void 0 : settings.filterNewLine) !== null && _m !== void 0 ? _m : false,
36
+ filterOperatorDisplayed: (_o = settings === null || settings === void 0 ? void 0 : settings.filterOperatorDisplayed) !== null && _o !== void 0 ? _o : false,
37
+ filterSeparator: (settings === null || settings === void 0 ? void 0 : settings.filterSeparator) || ", ",
38
+ scopeDisplayDisplayed: (_p = settings === null || settings === void 0 ? void 0 : settings.scopeDisplayDisplayed) !== null && _p !== void 0 ? _p : true,
39
+ scopeEnableDisplayed: (_q = settings === null || settings === void 0 ? void 0 : settings.scopeEnableDisplayed) !== null && _q !== void 0 ? _q : true,
40
+ scopeTitleDisplayed: (_r = settings === null || settings === void 0 ? void 0 : settings.scopeTitleDisplayed) !== null && _r !== void 0 ? _r : true,
41
+ scopeTitleNewLine: (_s = settings === null || settings === void 0 ? void 0 : settings.scopeTitleNewLine) !== null && _s !== void 0 ? _s : false,
42
+ scopeTitleSeparator: (settings === null || settings === void 0 ? void 0 : settings.scopeTitleSeparator) || ": ",
43
+ scopeNewLine: (_t = settings === null || settings === void 0 ? void 0 : settings.scopeNewLine) !== null && _t !== void 0 ? _t : false,
44
+ scopeOperatorDisplayed: (_u = settings === null || settings === void 0 ? void 0 : settings.scopeOperatorDisplayed) !== null && _u !== void 0 ? _u : false,
45
+ scopeSeparator: (settings === null || settings === void 0 ? void 0 : settings.scopeSeparator) || ", ",
46
+ valueDisplayDisplayed: (_v = settings === null || settings === void 0 ? void 0 : settings.valueDisplayDisplayed) !== null && _v !== void 0 ? _v : true,
47
+ valueEnableDisplayed: (_w = settings === null || settings === void 0 ? void 0 : settings.valueEnableDisplayed) !== null && _w !== void 0 ? _w : true,
48
+ valueNewLine: (_x = settings === null || settings === void 0 ? void 0 : settings.valueNewLine) !== null && _x !== void 0 ? _x : false,
49
+ valueOperatorDisplayed: (_y = settings === null || settings === void 0 ? void 0 : settings.valueOperatorDisplayed) !== null && _y !== void 0 ? _y : false,
50
+ valueSeparator: (settings === null || settings === void 0 ? void 0 : settings.valueSeparator) || ", ",
51
+ translate: settings === null || settings === void 0 ? void 0 : settings.translate,
52
+ };
53
+ }
54
+ exports.getVerboseFiltersSettings = getVerboseFiltersSettings;
@@ -16,6 +16,11 @@ export * from "./getMergeFiltersSettings";
16
16
  export * from "./getParamsToGetFilterSettings";
17
17
  export * from "./getValuesFromModel";
18
18
  export * from "./getValuesFromDataset";
19
+ export * from "./getVerboseFilterDatasets";
20
+ export * from "./getVerboseFilterFilters";
21
+ export * from "./getVerboseFilters";
22
+ export * from "./getVerboseFilterScopes";
23
+ export * from "./getVerboseFilterValues";
19
24
  export * from "./haveFiltersByDataset";
20
25
  export * from "./isBetweenValidator";
21
26
  export * from "./isDateDistinctProperty";
@@ -32,6 +32,11 @@ __exportStar(require("./getMergeFiltersSettings"), exports);
32
32
  __exportStar(require("./getParamsToGetFilterSettings"), exports);
33
33
  __exportStar(require("./getValuesFromModel"), exports);
34
34
  __exportStar(require("./getValuesFromDataset"), exports);
35
+ __exportStar(require("./getVerboseFilterDatasets"), exports);
36
+ __exportStar(require("./getVerboseFilterFilters"), exports);
37
+ __exportStar(require("./getVerboseFilters"), exports);
38
+ __exportStar(require("./getVerboseFilterScopes"), exports);
39
+ __exportStar(require("./getVerboseFilterValues"), exports);
35
40
  __exportStar(require("./haveFiltersByDataset"), exports);
36
41
  __exportStar(require("./isBetweenValidator"), exports);
37
42
  __exportStar(require("./isDateDistinctProperty"), exports);
@@ -17,8 +17,10 @@ const isRankingFilter_1 = require("../common/isRankingFilter");
17
17
  * @returns an array of values
18
18
  */
19
19
  function getUIValues(filter, settings) {
20
- const defaultSettings = getUiValuesSettings(settings);
21
20
  const values = filter.values || [];
21
+ if ((0, isEmpty_1.isEmpty)(values) || !Array.isArray(values))
22
+ return [];
23
+ const defaultSettings = getUiValuesSettings(settings);
22
24
  switch (filter.validator) {
23
25
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.AFTER:
24
26
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.GREATER_THAN: