@qrvey/utils 1.4.0-2 → 1.4.0-5

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 (122) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/column_format/helpers/defineTableChartFormat.js +8 -18
  3. package/dist/cjs/columns/helpers/getDatasetColumn.js +1 -3
  4. package/dist/cjs/dates/adapters/mdyDateToDate.d.ts +1 -1
  5. package/dist/cjs/dates/adapters/mdyDateToDate.js +12 -5
  6. package/dist/cjs/dates/adapters/monthYearToDate.d.ts +1 -1
  7. package/dist/cjs/dates/adapters/monthYearToDate.js +8 -7
  8. package/dist/cjs/dates/adapters/quarterYearToDate.d.ts +1 -1
  9. package/dist/cjs/dates/adapters/quarterYearToDate.js +8 -7
  10. package/dist/cjs/dates/adapters/weekYearToDate.d.ts +1 -1
  11. package/dist/cjs/dates/adapters/weekYearToDate.js +20 -19
  12. package/dist/cjs/dates/adapters/yearToDate.d.ts +1 -1
  13. package/dist/cjs/dates/adapters/yearToDate.js +7 -6
  14. package/dist/cjs/dates/constants/DATE_FORMAT_BY_PROPERTY.d.ts +16 -0
  15. package/dist/cjs/dates/constants/DATE_FORMAT_BY_PROPERTY.js +21 -0
  16. package/dist/cjs/dates/helpers/getDateFormatByProperty.js +2 -31
  17. package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -1
  18. package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.js +2 -7
  19. package/dist/cjs/dates/helpers/getDatePickerPickLevel.js +7 -1
  20. package/dist/cjs/dates/helpers/getSeparatorByDateFormat.js +1 -18
  21. package/dist/cjs/dates/helpers/index.d.ts +0 -1
  22. package/dist/cjs/dates/helpers/index.js +0 -1
  23. package/dist/cjs/dates/helpers/validateDate.js +14 -3
  24. package/dist/cjs/dates/range/getDateRange.js +15 -25
  25. package/dist/cjs/dates/relative/RelativeStatementAdapter.js +15 -10
  26. package/dist/cjs/dates/relative/helpers/getStatementCase.js +10 -7
  27. package/dist/cjs/filters/adapters/adaptDateGroupingProperty.js +9 -13
  28. package/dist/cjs/filters/adapters/logicToUI.js +1 -2
  29. package/dist/cjs/filters/adapters/transformFilters.js +1 -3
  30. package/dist/cjs/filters/helpers/OLD_getAggFilters.js +1 -3
  31. package/dist/cjs/filters/helpers/backend/buildFilters.js +5 -2
  32. package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +1 -2
  33. package/dist/cjs/filters/helpers/backend/getBackendValues.js +53 -31
  34. package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.d.ts +2 -2
  35. package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.js +57 -20
  36. package/dist/cjs/filters/helpers/common/excludeFiltersByParams.js +1 -2
  37. package/dist/cjs/filters/helpers/common/getFiltersByDatasetsColumns.js +28 -18
  38. package/dist/cjs/filters/helpers/common/getFiltersByParams.js +1 -2
  39. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +0 -1
  40. package/dist/cjs/filters/helpers/getScopesByHierarchy.js +7 -5
  41. package/dist/cjs/filters/helpers/ui/getUIValues.js +76 -85
  42. package/dist/cjs/filters/interfaces/functions/IFFGetLogicByDatasetsColumns.d.ts +3 -0
  43. package/dist/cjs/filters/services/UChartApi.d.ts +17 -3
  44. package/dist/cjs/filters/services/UChartApi.js +49 -26
  45. package/dist/cjs/filters/services/UChartPaginationApi.d.ts +17 -3
  46. package/dist/cjs/filters/services/UChartPaginationApi.js +45 -24
  47. package/dist/cjs/format/localization.js +1 -1
  48. package/dist/cjs/general/mix/isNaNV2.d.ts +10 -3
  49. package/dist/cjs/general/mix/isNaNV2.js +11 -4
  50. package/dist/cjs/general/string/parseUrl.js +2 -2
  51. package/dist/cjs/globalization/helpers/getI18nCalendar.js +10 -7
  52. package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderListModal.d.ts +2 -1
  53. package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +2 -1
  54. package/dist/cjs/globalization/service/i18nextBuilder.js +1 -3
  55. package/dist/cjs/globalization/service/initI18n.js +1 -12
  56. package/dist/cjs/qrvey/helpers/getDataAnswersByColumn.js +6 -5
  57. package/dist/cjs/qrvey/helpers/getExpressionAnswers.js +15 -11
  58. package/dist/cjs/qrvey/helpers/getImageAnswers.js +1 -1
  59. package/dist/cjs/tokens/isTokenLabel.js +1 -2
  60. package/dist/column_format/helpers/defineTableChartFormat.js +8 -18
  61. package/dist/columns/helpers/getDatasetColumn.js +1 -3
  62. package/dist/dates/adapters/mdyDateToDate.d.ts +1 -1
  63. package/dist/dates/adapters/mdyDateToDate.js +12 -5
  64. package/dist/dates/adapters/monthYearToDate.d.ts +1 -1
  65. package/dist/dates/adapters/monthYearToDate.js +8 -7
  66. package/dist/dates/adapters/quarterYearToDate.d.ts +1 -1
  67. package/dist/dates/adapters/quarterYearToDate.js +8 -7
  68. package/dist/dates/adapters/weekYearToDate.d.ts +1 -1
  69. package/dist/dates/adapters/weekYearToDate.js +20 -19
  70. package/dist/dates/adapters/yearToDate.d.ts +1 -1
  71. package/dist/dates/adapters/yearToDate.js +7 -6
  72. package/dist/dates/constants/DATE_FORMAT_BY_PROPERTY.d.ts +16 -0
  73. package/dist/dates/constants/DATE_FORMAT_BY_PROPERTY.js +18 -0
  74. package/dist/dates/helpers/getDateFormatByProperty.js +2 -31
  75. package/dist/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -1
  76. package/dist/dates/helpers/getDateFormatRegularExpressionInArray.js +2 -7
  77. package/dist/dates/helpers/getDatePickerPickLevel.js +7 -1
  78. package/dist/dates/helpers/getSeparatorByDateFormat.js +1 -18
  79. package/dist/dates/helpers/index.d.ts +0 -1
  80. package/dist/dates/helpers/index.js +0 -1
  81. package/dist/dates/helpers/validateDate.js +14 -3
  82. package/dist/dates/range/getDateRange.js +15 -25
  83. package/dist/dates/relative/RelativeStatementAdapter.js +15 -10
  84. package/dist/dates/relative/helpers/getStatementCase.js +10 -7
  85. package/dist/filters/adapters/adaptDateGroupingProperty.js +9 -13
  86. package/dist/filters/adapters/logicToUI.js +1 -2
  87. package/dist/filters/adapters/transformFilters.js +1 -3
  88. package/dist/filters/helpers/OLD_getAggFilters.js +1 -3
  89. package/dist/filters/helpers/backend/buildFilters.js +5 -2
  90. package/dist/filters/helpers/backend/getBackendGroupValue.js +1 -2
  91. package/dist/filters/helpers/backend/getBackendValues.js +53 -31
  92. package/dist/filters/helpers/backend/getLogicByDatasetsColumns.d.ts +2 -2
  93. package/dist/filters/helpers/backend/getLogicByDatasetsColumns.js +56 -19
  94. package/dist/filters/helpers/common/excludeFiltersByParams.js +1 -2
  95. package/dist/filters/helpers/common/getFiltersByDatasetsColumns.js +28 -18
  96. package/dist/filters/helpers/common/getFiltersByParams.js +1 -2
  97. package/dist/filters/helpers/getAggFiltersFromFilterData.js +0 -1
  98. package/dist/filters/helpers/getScopesByHierarchy.js +7 -5
  99. package/dist/filters/helpers/ui/getUIValues.js +76 -85
  100. package/dist/filters/interfaces/functions/IFFGetLogicByDatasetsColumns.d.ts +3 -0
  101. package/dist/filters/services/UChartApi.d.ts +17 -3
  102. package/dist/filters/services/UChartApi.js +49 -26
  103. package/dist/filters/services/UChartPaginationApi.d.ts +17 -3
  104. package/dist/filters/services/UChartPaginationApi.js +45 -24
  105. package/dist/format/localization.js +1 -1
  106. package/dist/general/mix/isNaNV2.d.ts +10 -3
  107. package/dist/general/mix/isNaNV2.js +11 -4
  108. package/dist/general/string/parseUrl.js +2 -2
  109. package/dist/globalization/helpers/getI18nCalendar.js +10 -7
  110. package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderListModal.d.ts +2 -1
  111. package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +2 -1
  112. package/dist/globalization/service/i18nextBuilder.js +1 -3
  113. package/dist/globalization/service/initI18n.js +1 -12
  114. package/dist/qrvey/helpers/getDataAnswersByColumn.js +6 -5
  115. package/dist/qrvey/helpers/getExpressionAnswers.js +14 -10
  116. package/dist/qrvey/helpers/getImageAnswers.js +1 -1
  117. package/dist/tokens/isTokenLabel.js +1 -2
  118. package/package.json +4 -4
  119. package/dist/cjs/dates/helpers/validateDateByDateFormat.d.ts +0 -8
  120. package/dist/cjs/dates/helpers/validateDateByDateFormat.js +0 -27
  121. package/dist/dates/helpers/validateDateByDateFormat.d.ts +0 -8
  122. package/dist/dates/helpers/validateDateByDateFormat.js +0 -23
@@ -9,6 +9,7 @@ const isEmpty_1 = require("../../../general/mix/isEmpty");
9
9
  const flattenDeep_1 = require("../../../general/array/flattenDeep");
10
10
  const RELATIVE_CURSOR_INFO_1 = require("../../../dates/relative/constants/RELATIVE_CURSOR_INFO");
11
11
  const getI18nDateGroupLabel_1 = require("../../../globalization/helpers/getI18nDateGroupLabel");
12
+ const I18N_RELATIVE_CONTAINER_1 = require("../../../globalization/labels/filters/I18N_RELATIVE_CONTAINER");
12
13
  /**
13
14
  * Gets the UI Values generated depending on the validator
14
15
  * @param filter the filter structure
@@ -16,7 +17,6 @@ const getI18nDateGroupLabel_1 = require("../../../globalization/helpers/getI18nD
16
17
  * @returns an array of values
17
18
  */
18
19
  function getUIValues(filter, settings) {
19
- var _a, _b;
20
20
  settings = getUiValuesSettings(settings);
21
21
  const values = filter.values || [];
22
22
  switch (filter.validator) {
@@ -24,92 +24,93 @@ function getUIValues(filter, settings) {
24
24
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.GREATER_THAN:
25
25
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.AFTER_ON:
26
26
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.GREATER_THAN_EQUAL:
27
- return values.map((value) => ({
28
- value: getValueLabel(value.min, filter, settings),
29
- displayed: value.displayed != null ? value.displayed : true,
30
- enabled: settings.addEnableds
31
- ? value.enabled != null
32
- ? value.enabled
33
- : true
34
- : undefined,
35
- }));
27
+ return getUiRangeAfterValues(values, filter, settings);
36
28
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BEFORE_ON:
37
29
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.LESS_THAN_EQUAL:
38
30
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BEFORE:
39
31
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.LESS_THAN:
40
- return values.map((value) => ({
41
- value: getValueLabel(value.max, filter, settings),
42
- displayed: value.displayed != null ? value.displayed : true,
43
- enabled: settings.addEnableds
44
- ? value.enabled != null
45
- ? value.enabled
46
- : true
47
- : undefined,
48
- }));
32
+ return getUiRangeBeforeValues(values, filter, settings);
49
33
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BETWEEN_INCLUSIVE:
50
34
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BETWEEN_EXCLUSIVE:
51
- return values.map((value) => ({
52
- value: `${getValueLabel(value.min, filter, settings)} ${getRangeSeparator(settings)} ${getValueLabel(value.max, filter, settings)}`,
53
- displayed: value.displayed != null ? value.displayed : true,
54
- enabled: settings.addEnableds
55
- ? value.enabled != null
56
- ? value.enabled
57
- : true
58
- : undefined,
59
- }));
35
+ return getUiRangeBetweenValues(values, filter, settings);
60
36
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IS_NULL:
61
37
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IS_NOT_NULL:
62
- return [
63
- {
64
- value: (settings === null || settings === void 0 ? void 0 : settings.translate)
65
- ? settings.translate("filter.validators." + filter.validator.toLowerCase() + "_label")
66
- : FILTER_VALIDATOR_INFO_1.FILTER_VALIDATOR_INFO[filter.validator].label,
67
- displayed: (_a = values[0]) === null || _a === void 0 ? void 0 : _a.displayed,
68
- enabled: settings.addEnableds
69
- ? (_b = values[0]) === null || _b === void 0 ? void 0 : _b.enabled
70
- : undefined,
71
- },
72
- ];
38
+ return getUiNullValues(values, filter, settings);
73
39
  case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IN:
74
- return values.map((value) => {
75
- const cursor = (settings === null || settings === void 0 ? void 0 : settings.translate)
76
- ? settings.translate(RELATIVE_CURSOR_INFO_1.RELATIVE_CURSOR_INFO[value.cursor].i18nLabelPath)
77
- : RELATIVE_CURSOR_INFO_1.RELATIVE_CURSOR_INFO[value.cursor].i18nLabelPath;
78
- const from = (settings === null || settings === void 0 ? void 0 : settings.translate)
79
- ? settings.translate("filter.relative_container.from_label")
80
- : "from";
81
- const anchor = (settings === null || settings === void 0 ? void 0 : settings.translate)
82
- ? settings === null || settings === void 0 ? void 0 : settings.translate("filter.relative_container.current_date")
83
- : "current date";
84
- return {
85
- value: `${cursor} ${value.cursor !== RELATIVE_CURSOR_1.RELATIVE_CURSOR.THIS && value.number > 1
86
- ? value.number
87
- : ""} ${getValueUiUnitRelativeDate(value, settings)} ${value.cursor !== RELATIVE_CURSOR_1.RELATIVE_CURSOR.THIS
88
- ? `${from} ${value.anchor || anchor}`
89
- : ""}`,
90
- displayed: value.displayed != null ? value.displayed : true,
91
- enabled: settings.addEnableds ? value.enabled : undefined,
92
- };
93
- });
40
+ return getUiInValues(values, settings);
94
41
  default:
95
- if (filter.column.type === COLUMN_1.COLUMN.RANKING &&
96
- (0, isEmpty_1.isEmpty)(filter.column.aggregate)) {
97
- return getRankingUIValues(values, settings.addEnableds, settings.rankingGroupIndex);
98
- }
99
- return values.map((value) => ({
100
- imageUrl: value.imageUrl,
101
- value: getValueLabel(value.value, filter, settings),
102
- displayed: value.displayed != null ? value.displayed : true,
103
- enabled: settings.addEnableds
104
- ? value.enabled != null
105
- ? value.enabled
106
- : true
107
- : undefined,
108
- valueid: value.valueid,
109
- }));
42
+ return getUiEqualValues(values, filter, settings);
110
43
  }
111
44
  }
112
45
  exports.getUIValues = getUIValues;
46
+ function getUiRangeAfterValues(values, filter, settings) {
47
+ return values.map((value) => getRegularValue(Object.assign(Object.assign({}, value), { value: getValueLabel(value.min, filter, settings) }), settings));
48
+ }
49
+ function getUiRangeBeforeValues(values, filter, settings) {
50
+ return values.map((value) => getRegularValue(Object.assign(Object.assign({}, value), { value: getValueLabel(value.max, filter, settings) }), settings));
51
+ }
52
+ function getUiRangeBetweenValues(values, filter, settings) {
53
+ return values.map((value) => {
54
+ const valueLabel = `${getValueLabel(value.min, filter, settings)} ${getRangeSeparator(settings)} ${getValueLabel(value.max, filter, settings)}`;
55
+ return getRegularValue(Object.assign(Object.assign({}, value), { value: getValueLabel(valueLabel, filter, settings) }), settings);
56
+ });
57
+ }
58
+ function getUiNullValues(values, filter, settings) {
59
+ const value = values[0];
60
+ const valueLabel = (settings === null || settings === void 0 ? void 0 : settings.translate)
61
+ ? settings.translate("filter.validators." + filter.validator.toLowerCase() + "_label")
62
+ : FILTER_VALIDATOR_INFO_1.FILTER_VALIDATOR_INFO[filter.validator].label;
63
+ return [getRegularValue(Object.assign(Object.assign({}, value), { value: valueLabel }), settings)];
64
+ }
65
+ function getUiInValues(values, settings) {
66
+ return values.map((value) => {
67
+ const cursor = (settings === null || settings === void 0 ? void 0 : settings.translate)
68
+ ? settings.translate(RELATIVE_CURSOR_INFO_1.RELATIVE_CURSOR_INFO[value.cursor].i18nLabelPath)
69
+ : RELATIVE_CURSOR_INFO_1.RELATIVE_CURSOR_INFO[value.cursor].i18nLabelPath;
70
+ const from = (settings === null || settings === void 0 ? void 0 : settings.translate)
71
+ ? settings.translate("filter.relative_container.from_label")
72
+ : I18N_RELATIVE_CONTAINER_1.I18N_RELATIVE_CONTAINER.from_label;
73
+ const anchor = (settings === null || settings === void 0 ? void 0 : settings.translate)
74
+ ? settings === null || settings === void 0 ? void 0 : settings.translate("filter.relative_container.current_date")
75
+ : I18N_RELATIVE_CONTAINER_1.I18N_RELATIVE_CONTAINER.current_date;
76
+ const valueLabel = `${cursor} ${value.cursor !== RELATIVE_CURSOR_1.RELATIVE_CURSOR.THIS && value.number > 1
77
+ ? value.number
78
+ : ""} ${getValueUiUnitRelativeDate(value, settings)} ${value.cursor !== RELATIVE_CURSOR_1.RELATIVE_CURSOR.THIS
79
+ ? `${from} ${value.anchor || anchor}`
80
+ : ""}`;
81
+ return getRegularValue(Object.assign(Object.assign({}, value), { value: valueLabel }), settings);
82
+ });
83
+ }
84
+ function getUiEqualValues(values, filter, settings) {
85
+ if (filter.column.type === COLUMN_1.COLUMN.RANKING &&
86
+ (0, isEmpty_1.isEmpty)(filter.column.aggregate)) {
87
+ return getRankingUIValues(values, settings.addEnableds, settings.rankingGroupIndex);
88
+ }
89
+ return values.map((value) => getRegularValue(Object.assign(Object.assign({}, value), { value: getValueLabel(value.value, filter, settings) }), settings));
90
+ }
91
+ function getRankingUIValues(values, addEnableds = false, rankingGroupIndex) {
92
+ const flattenValues = rankingGroupIndex == null ? (0, flattenDeep_1.flattenDeep)(values) : values[rankingGroupIndex];
93
+ return flattenValues.map((rankingValue) => ({
94
+ rankingIndex: rankingGroupIndex,
95
+ value: `${rankingValue.value.value} - ${rankingValue.position}`,
96
+ valueid: rankingValue.value.valueid,
97
+ displayed: rankingValue.displayed != null ? rankingValue.displayed : true,
98
+ enabled: addEnableds ? rankingValue.enabled : undefined,
99
+ }));
100
+ }
101
+ function getRegularValue(value, settings) {
102
+ let enabled;
103
+ if (settings.addEnableds) {
104
+ enabled = (0, isEmpty_1.isEmpty)(value.enabled) ? true : value.enabled;
105
+ }
106
+ return {
107
+ displayed: (0, isEmpty_1.isEmpty)(value.displayed) ? true : value.displayed,
108
+ enabled,
109
+ imageUrl: (0, isEmpty_1.isEmpty)(value.imageUrl) ? undefined : value.imageUrl,
110
+ value: value.value,
111
+ valueid: (0, isEmpty_1.isEmpty)(value.valueid) ? undefined : value.valueid,
112
+ };
113
+ }
113
114
  function getValueLabel(value, filter, settings) {
114
115
  return settings.translate
115
116
  ? (0, getI18nDateGroupLabel_1.getI18nDateGroupLabel)(value, filter.property, settings.translate)
@@ -127,22 +128,12 @@ function getUiValuesSettings(settings) {
127
128
  }
128
129
  function getValueUiUnitRelativeDate(relative, settings) {
129
130
  const unit = settings.translate
130
- ? `${settings.translate(`common.units.${relative.unit}`)}`
131
+ ? settings.translate(`common.units.${relative.unit}`)
131
132
  : relative.unit;
132
133
  return relative.cursor !== RELATIVE_CURSOR_1.RELATIVE_CURSOR.THIS && relative.number > 1
133
134
  ? `${unit}s`
134
135
  : unit;
135
136
  }
136
- function getRankingUIValues(values, addEnableds = false, rankingGroupIndex) {
137
- const flattenValues = rankingGroupIndex == null ? (0, flattenDeep_1.flattenDeep)(values) : values[rankingGroupIndex];
138
- return flattenValues.map((rankingValue) => ({
139
- rankingIndex: rankingGroupIndex,
140
- value: `${rankingValue.value.value} - ${rankingValue.position}`,
141
- valueid: rankingValue.value.valueid,
142
- displayed: rankingValue.displayed != null ? rankingValue.displayed : true,
143
- enabled: addEnableds ? rankingValue.enabled : undefined,
144
- }));
145
- }
146
137
  function getRangeSeparator(settings) {
147
138
  if (!(0, isEmpty_1.isEmpty)(settings.translate) && !(0, isEmpty_1.isEmpty)(settings.rangeSeparatorPath)) {
148
139
  return settings.translate(settings.rangeSeparatorPath);
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Object for the getLogicByDatasetsColumns Settings
3
+ */
1
4
  export interface IFFGetLogicByDatasetsColumns {
2
5
  letPassUndefinedProperties?: {
3
6
  qrveyid?: boolean;
@@ -15,12 +15,26 @@ export default class UChartApi {
15
15
  getChartResult: (config: IFilterConfig, uFilter: IFUFlattenedFilter, filterLogic?: IFBLogic[], chartSettings?: IFUChartSettings, _resetApi?: boolean) => Promise<IFBData>;
16
16
  /**
17
17
  * Gets request body structure
18
- * @param uFilter The filter Builder filter
19
- * @param filterLogic Additional filter logic to apply in the preview
20
- * @param chartSettings The settings of the chart. For Aggregate Columns.
18
+ * @param {IFUFlattenedFilter} uFilter The filter object
19
+ * @param {IFBLogic[]} filterLogic Additional filter logic to apply in the preview
20
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
21
21
  * @returns the request body structure
22
22
  */
23
23
  private _getPreviewRequestBody;
24
+ /**
25
+ * Gets the filter object structure for the searching text
26
+ * @param {IFUFlattenedFilter} uFilter The filter object
27
+ * @returns the filter object structure
28
+ */
29
+ private _getSearchLogic;
30
+ /**
31
+ * Gets the filters from the chart settings
32
+ * @param {IFUFlattenedFilter} uFilter The filter object
33
+ * @param {OLD_IFilterData} searchLogic Additional filter object for the searching text
34
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
35
+ * @returns the filters from the chart settings
36
+ */
37
+ private _getFilterCharts;
24
38
  /**
25
39
  * Gets chart body structure
26
40
  * @param uFilter The filter Builder filter
@@ -42,34 +42,14 @@ class UChartApi {
42
42
  };
43
43
  /**
44
44
  * Gets request body structure
45
- * @param uFilter The filter Builder filter
46
- * @param filterLogic Additional filter logic to apply in the preview
47
- * @param chartSettings The settings of the chart. For Aggregate Columns.
45
+ * @param {IFUFlattenedFilter} uFilter The filter object
46
+ * @param {IFBLogic[]} filterLogic Additional filter logic to apply in the preview
47
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
48
48
  * @returns the request body structure
49
49
  */
50
50
  this._getPreviewRequestBody = (uFilter, filterLogic = [], chartSettings) => {
51
- const { column, validator } = uFilter;
52
- const haveAggFilters = ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.aggregateColumns) || []).length &&
53
- ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart) || []).length;
54
- let searchLogic;
55
- if (!(0, isEmpty_1.isEmpty)(uFilter.values)) {
56
- searchLogic = (0, flatUIToOldLogic_1.flatUIToOldLogic)([
57
- Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(column, validator), column: Object.assign(Object.assign({}, uFilter.column), { linkid: undefined }) }),
58
- ]);
59
- }
60
- let filterCharts = [];
61
- if (haveAggFilters) {
62
- filterCharts = chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart.map((chart) => {
63
- if (uFilter.column.type === COLUMN_1.COLUMN.AGGREGATED_FORMULA)
64
- return chart;
65
- const summaryIndex = (chart.summaries || []).findIndex((s) => s.questionid === uFilter.column.id &&
66
- s.aggregate === uFilter.column.aggregate);
67
- const summary = summaryIndex !== -1 && chart.summaries[summaryIndex];
68
- const chartAggFilters = (0, getAggFiltersBySummaryIndex_1.getAggFiltersBySummaryIndex)(chart.aggFilters, summaryIndex);
69
- const searchAggFilters = (0, OLD_getAggFilters_1.getAggFilters)((searchLogic === null || searchLogic === void 0 ? void 0 : searchLogic.logic) || [], summary ? [summary] : []);
70
- return Object.assign(Object.assign({}, chart), { aggFilters: searchAggFilters || chartAggFilters, summaries: summary ? [summary] : [] });
71
- }).filter((chart) => chart.summaries.length);
72
- }
51
+ const searchLogic = this._getSearchLogic(uFilter);
52
+ const filterCharts = this._getFilterCharts(uFilter, searchLogic, chartSettings);
73
53
  const chartsBody = !filterCharts[0]
74
54
  ? [this._getChartBody(uFilter)]
75
55
  : [filterCharts[0]];
@@ -77,7 +57,11 @@ class UChartApi {
77
57
  ...filterLogic,
78
58
  ...(!filterCharts[0] ? (searchLogic === null || searchLogic === void 0 ? void 0 : searchLogic.logic) || [] : []),
79
59
  ];
80
- return { charts: chartsBody, logic: filters, qrveyid: column.qrveyid };
60
+ return {
61
+ charts: chartsBody,
62
+ logic: filters,
63
+ qrveyid: uFilter.column.qrveyid,
64
+ };
81
65
  };
82
66
  /**
83
67
  * Gets chart body structure
@@ -273,5 +257,44 @@ class UChartApi {
273
257
  return validation;
274
258
  };
275
259
  }
260
+ /**
261
+ * Gets the filter object structure for the searching text
262
+ * @param {IFUFlattenedFilter} uFilter The filter object
263
+ * @returns the filter object structure
264
+ */
265
+ _getSearchLogic(uFilter) {
266
+ let searchLogic;
267
+ if (!(0, isEmpty_1.isEmpty)(uFilter.values)) {
268
+ searchLogic = (0, flatUIToOldLogic_1.flatUIToOldLogic)([
269
+ Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(uFilter.column, uFilter.validator), column: Object.assign(Object.assign({}, uFilter.column), { linkid: undefined }) }),
270
+ ]);
271
+ }
272
+ return searchLogic;
273
+ }
274
+ /**
275
+ * Gets the filters from the chart settings
276
+ * @param {IFUFlattenedFilter} uFilter The filter object
277
+ * @param {OLD_IFilterData} searchLogic Additional filter object for the searching text
278
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
279
+ * @returns the filters from the chart settings
280
+ */
281
+ _getFilterCharts(uFilter, searchLogic, chartSettings) {
282
+ let filterCharts = [];
283
+ const haveAggFilters = ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.aggregateColumns) || []).length &&
284
+ ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart) || []).length;
285
+ if (haveAggFilters) {
286
+ filterCharts = chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart.map((chart) => {
287
+ if (uFilter.column.type === COLUMN_1.COLUMN.AGGREGATED_FORMULA)
288
+ return chart;
289
+ const summaryIndex = (chart.summaries || []).findIndex((s) => s.questionid === uFilter.column.id &&
290
+ s.aggregate === uFilter.column.aggregate);
291
+ const summary = summaryIndex !== -1 && chart.summaries[summaryIndex];
292
+ const chartAggFilters = (0, getAggFiltersBySummaryIndex_1.getAggFiltersBySummaryIndex)(chart.aggFilters, summaryIndex);
293
+ const searchAggFilters = (0, OLD_getAggFilters_1.getAggFilters)((searchLogic === null || searchLogic === void 0 ? void 0 : searchLogic.logic) || [], summary ? [summary] : []);
294
+ return Object.assign(Object.assign({}, chart), { aggFilters: searchAggFilters || chartAggFilters, summaries: summary ? [summary] : [] });
295
+ }).filter((chart) => chart.summaries.length);
296
+ }
297
+ return filterCharts;
298
+ }
276
299
  }
277
300
  exports.default = UChartApi;
@@ -23,12 +23,26 @@ export default class UChartPaginationApi {
23
23
  getChartResult: (config: IFilterConfig, uFilter: IFUFlattenedFilter, filterLogic?: IFBLogic[], chartSettings?: IFUChartSettings, resetApi?: boolean) => Promise<IFBData>;
24
24
  /**
25
25
  * Gets request body structure
26
- * @param uFilter The filter Builder filter
27
- * @param filterLogic Additional filter logic to apply in the preview
28
- * @param chartSettings The settings of the chart. For Aggregate Columns.
26
+ * @param {IFUFlattenedFilter} uFilter The filter object
27
+ * @param {IFBLogic[]} filterLogic Additional filter logic to apply in the preview
28
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
29
29
  * @returns the request body structure
30
30
  */
31
31
  private _getPreviewRequestBody;
32
+ /**
33
+ * Gets the filter object structure for the searching text
34
+ * @param {IFUFlattenedFilter} uFilter The filter object
35
+ * @returns the filter object structure
36
+ */
37
+ private _getSearchLogic;
38
+ /**
39
+ * Gets the filters from the chart settings
40
+ * @param {IFUFlattenedFilter} uFilter The filter object
41
+ * @param {OLD_IFilterData} searchLogic Additional filter object for the searching text
42
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
43
+ * @returns the filters from the chart settings
44
+ */
45
+ private _getFilterCharts;
32
46
  /**
33
47
  * Gets dimension body structure
34
48
  * @param uFilter The filter Builder filter
@@ -52,39 +52,21 @@ class UChartPaginationApi {
52
52
  };
53
53
  /**
54
54
  * Gets request body structure
55
- * @param uFilter The filter Builder filter
56
- * @param filterLogic Additional filter logic to apply in the preview
57
- * @param chartSettings The settings of the chart. For Aggregate Columns.
55
+ * @param {IFUFlattenedFilter} uFilter The filter object
56
+ * @param {IFBLogic[]} filterLogic Additional filter logic to apply in the preview
57
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
58
58
  * @returns the request body structure
59
59
  */
60
60
  this._getPreviewRequestBody = (uFilter, filterLogic = [], chartSettings, afterKey) => {
61
- const { column, validator } = uFilter;
62
- const haveAggFilters = ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.aggregateColumns) || []).length &&
63
- ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart) || []).length;
64
- let searchLogic;
65
- if (!(0, isEmpty_1.isEmpty)(uFilter.values)) {
66
- searchLogic = (0, flatUIToOldLogic_1.flatUIToOldLogic)([
67
- Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(column, validator), column: Object.assign(Object.assign({}, uFilter.column), { linkid: undefined }) }),
68
- ]);
69
- }
70
- let filterCharts = [];
71
- if (haveAggFilters) {
72
- filterCharts = chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart.map((chart) => {
73
- const summaryIndex = (chart.summaries || []).findIndex((s) => s.questionid === uFilter.column.id &&
74
- s.aggregate === uFilter.column.aggregate);
75
- const summary = summaryIndex !== -1 && chart.summaries[summaryIndex];
76
- const chartAggFilters = (0, getAggFiltersBySummaryIndex_1.getAggFiltersBySummaryIndex)(chart.aggFilters, summaryIndex);
77
- const searchAggFilters = (0, OLD_getAggFilters_1.getAggFilters)((searchLogic === null || searchLogic === void 0 ? void 0 : searchLogic.logic) || [], summary ? [summary] : []);
78
- return Object.assign(Object.assign({}, chart), { aggFilters: searchAggFilters || chartAggFilters, summaries: summary ? [summary] : [] });
79
- }).filter((chart) => chart.summaries.length);
80
- }
61
+ const searchLogic = this._getSearchLogic(uFilter);
62
+ const filterCharts = this._getFilterCharts(uFilter, searchLogic, chartSettings);
81
63
  const dimensions = !filterCharts[0]
82
64
  ? this._getDimensionsBody(uFilter)
83
65
  : this._getDimensionsBodyAdapter(filterCharts[0].dimensions);
84
66
  const summaries = !filterCharts[0]
85
67
  ? this._getSummariesBody(uFilter)
86
68
  : filterCharts[0].summaries;
87
- const maxDataPoints = this._getMaxDataPoints(column, chartSettings);
69
+ const maxDataPoints = this._getMaxDataPoints(uFilter.column, chartSettings);
88
70
  const filters = [
89
71
  ...filterLogic,
90
72
  ...(!filterCharts[0] ? (searchLogic === null || searchLogic === void 0 ? void 0 : searchLogic.logic) || [] : []),
@@ -315,5 +297,44 @@ class UChartPaginationApi {
315
297
  return (0, isEmpty_1.isEmpty)(result);
316
298
  };
317
299
  }
300
+ /**
301
+ * Gets the filter object structure for the searching text
302
+ * @param {IFUFlattenedFilter} uFilter The filter object
303
+ * @returns the filter object structure
304
+ */
305
+ _getSearchLogic(uFilter) {
306
+ let searchLogic;
307
+ if (!(0, isEmpty_1.isEmpty)(uFilter.values)) {
308
+ searchLogic = (0, flatUIToOldLogic_1.flatUIToOldLogic)([
309
+ Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(uFilter.column, uFilter.validator), column: Object.assign(Object.assign({}, uFilter.column), { linkid: undefined }) }),
310
+ ]);
311
+ }
312
+ return searchLogic;
313
+ }
314
+ /**
315
+ * Gets the filters from the chart settings
316
+ * @param {IFUFlattenedFilter} uFilter The filter object
317
+ * @param {OLD_IFilterData} searchLogic Additional filter object for the searching text
318
+ * @param {IFUChartSettings} chartSettings The settings of the chart. For Aggregate Columns.
319
+ * @returns the filters from the chart settings
320
+ */
321
+ _getFilterCharts(uFilter, searchLogic, chartSettings) {
322
+ let filterCharts = [];
323
+ const haveAggFilters = ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.aggregateColumns) || []).length &&
324
+ ((chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart) || []).length;
325
+ if (haveAggFilters) {
326
+ filterCharts = chartSettings === null || chartSettings === void 0 ? void 0 : chartSettings.chart.map((chart) => {
327
+ if (uFilter.column.type === COLUMN_1.COLUMN.AGGREGATED_FORMULA)
328
+ return chart;
329
+ const summaryIndex = (chart.summaries || []).findIndex((s) => s.questionid === uFilter.column.id &&
330
+ s.aggregate === uFilter.column.aggregate);
331
+ const summary = summaryIndex !== -1 && chart.summaries[summaryIndex];
332
+ const chartAggFilters = (0, getAggFiltersBySummaryIndex_1.getAggFiltersBySummaryIndex)(chart.aggFilters, summaryIndex);
333
+ const searchAggFilters = (0, OLD_getAggFilters_1.getAggFilters)((searchLogic === null || searchLogic === void 0 ? void 0 : searchLogic.logic) || [], summary ? [summary] : []);
334
+ return Object.assign(Object.assign({}, chart), { aggFilters: searchAggFilters || chartAggFilters, summaries: summary ? [summary] : [] });
335
+ }).filter((chart) => chart.summaries.length);
336
+ }
337
+ return filterCharts;
338
+ }
318
339
  }
319
340
  exports.default = UChartPaginationApi;
@@ -15,7 +15,7 @@ const getLang = (locale) => {
15
15
  exports.getLang = getLang;
16
16
  const chooseLang = (config) => {
17
17
  var _a;
18
- const lang = ((_a = config === null || config === void 0 ? void 0 : config.i18n) === null || _a === void 0 ? void 0 : _a.lang) || config.lang;
18
+ const lang = ((_a = config === null || config === void 0 ? void 0 : config.i18n) === null || _a === void 0 ? void 0 : _a.lang) || (config === null || config === void 0 ? void 0 : config.lang);
19
19
  return (lang === null || lang === void 0 ? void 0 : lang.lang) || lang || definition_1.LANG_DEFAULT;
20
20
  };
21
21
  exports.chooseLang = chooseLang;
@@ -1,8 +1,15 @@
1
1
  /**
2
2
  * Validates if the recieved number is NaN type.
3
- * This function recieves any variable but will return false.
4
- * Validates if variable is null, undefined, or an empty string, also, the function uses isNaN native function.
3
+ *
4
+ * Conditions:
5
+ * - This function recieves any variable but will return true if it is different to number.
6
+ * - Empty variables as undefined, null, empty string will return true.
7
+ *
8
+ * Special case for isNaN
9
+ * - The isNaN('') is considered as false statement. The empty string is converted to 0 which is not NaN.
10
+ * - Boolean variables is considered as false statement.
11
+ *
5
12
  * @param variable the variable to validate
6
- * @return True if variable is a NaN or false otherwise
13
+ * @return True: variable is a NaN; False: The variable is a number
7
14
  */
8
15
  export declare function isNaNV2(variable: any): boolean;
@@ -4,12 +4,19 @@ exports.isNaNV2 = void 0;
4
4
  const _1 = require(".");
5
5
  /**
6
6
  * Validates if the recieved number is NaN type.
7
- * This function recieves any variable but will return false.
8
- * Validates if variable is null, undefined, or an empty string, also, the function uses isNaN native function.
7
+ *
8
+ * Conditions:
9
+ * - This function recieves any variable but will return true if it is different to number.
10
+ * - Empty variables as undefined, null, empty string will return true.
11
+ *
12
+ * Special case for isNaN
13
+ * - The isNaN('') is considered as false statement. The empty string is converted to 0 which is not NaN.
14
+ * - Boolean variables is considered as false statement.
15
+ *
9
16
  * @param variable the variable to validate
10
- * @return True if variable is a NaN or false otherwise
17
+ * @return True: variable is a NaN; False: The variable is a number
11
18
  */
12
19
  function isNaNV2(variable) {
13
- return (0, _1.isEmpty)(variable) || isNaN(variable);
20
+ return (0, _1.isEmpty)(variable) || typeof variable == "boolean" || isNaN(variable);
14
21
  }
15
22
  exports.isNaNV2 = isNaNV2;
@@ -11,9 +11,9 @@ const parseUrl = (url, transformer) => {
11
11
  if (!match)
12
12
  return url;
13
13
  return match.reduce((newUrl, curr) => {
14
- const key = curr.substr(2);
14
+ const key = curr.substring(2);
15
15
  const value = typeof transformer === "function" ? transformer(key) : transformer[key];
16
- return newUrl.replace(curr.substr(1), value);
16
+ return newUrl.replace(curr.substring(1), value);
17
17
  }, url);
18
18
  };
19
19
  exports.parseUrl = parseUrl;
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getI18nCalendar = void 0;
4
+ const isEmpty_1 = require("../../general/mix/isEmpty");
4
5
  const i18nextBuilder_1 = require("../service/i18nextBuilder");
5
6
  function getI18nCalendar(locale) {
6
- const localeOverride = locale instanceof i18nextBuilder_1.I18nService
7
- ? locale
8
- : typeof locale === "function"
9
- ? { translate: locale }
10
- : undefined;
11
- if (!localeOverride)
12
- return undefined;
7
+ let localeOverride;
8
+ if (locale instanceof i18nextBuilder_1.I18nService) {
9
+ localeOverride = locale;
10
+ }
11
+ else if (typeof locale === "function") {
12
+ localeOverride = { translate: locale };
13
+ }
14
+ if ((0, isEmpty_1.isEmpty)(localeOverride))
15
+ return;
13
16
  return {
14
17
  clear: localeOverride.translate("common.calendar.clear"),
15
18
  days: [
@@ -1,7 +1,8 @@
1
1
  export interface II18nFormulaBuilderListModal {
2
- title_header: string;
3
2
  create_button: string;
3
+ create_button_tooltip: string;
4
4
  empty_message: string;
5
5
  information_text_link: string;
6
6
  information_text_text: string;
7
+ title_header: string;
7
8
  }
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.I18N_FORMULA_BUILDER = void 0;
4
4
  exports.I18N_FORMULA_BUILDER = {
5
5
  list_modal: {
6
- title_header: "Formulas",
7
6
  create_button: "Create Formula",
7
+ create_button_tooltip: "Add some records to create formulas",
8
8
  empty_message: "No Formulas Yet",
9
9
  information_text_link: "Learn how to",
10
10
  information_text_text: "create and work with formulas",
11
+ title_header: "Formulas",
11
12
  },
12
13
  list_table: {
13
14
  duplicate_copy: "Copy",
@@ -17,9 +17,7 @@ const i18next_1 = __importDefault(require("i18next"));
17
17
  const mergeDeep_1 = require("../../general/object/mergeDeep");
18
18
  class I18nServiceBuilder {
19
19
  static buildI18n(i18nDefault, i18nResource) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- return yield this._initI18n(i18nDefault, i18nResource);
22
- });
20
+ return this._initI18n(i18nDefault, i18nResource);
23
21
  }
24
22
  static _initI18n(i18nDefault, i18nResource) {
25
23
  return __awaiter(this, void 0, void 0, function* () {
@@ -1,19 +1,8 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.initI18n = void 0;
13
4
  const i18nextBuilder_1 = require("../service/i18nextBuilder");
14
5
  function initI18n(i18nConfig = {}, i18nDefault = {}) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- return yield i18nextBuilder_1.I18nServiceBuilder.buildI18n(i18nDefault, i18nConfig);
17
- });
6
+ return i18nextBuilder_1.I18nServiceBuilder.buildI18n(i18nDefault, i18nConfig);
18
7
  }
19
8
  exports.initI18n = initI18n;
@@ -50,9 +50,10 @@ function getDataAnswersByColumn(settings) {
50
50
  }
51
51
  exports.getDataAnswersByColumn = getDataAnswersByColumn;
52
52
  function getColumnFromData(settings) {
53
- return !(0, isEmpty_1.isEmpty)(settings.dataset)
54
- ? (0, getDatasetColumn_1.getDatasetColumn)(settings.column, settings.dataset)
55
- : !(0, isEmpty_1.isEmpty)(settings.model)
56
- ? (0, getModelColumn_1.getModelColumn)(settings.column, settings.model)
57
- : undefined;
53
+ if (!(0, isEmpty_1.isEmpty)(settings.dataset)) {
54
+ return (0, getDatasetColumn_1.getDatasetColumn)(settings.column, settings.dataset);
55
+ }
56
+ else if (!(0, isEmpty_1.isEmpty)(settings.model)) {
57
+ return (0, getModelColumn_1.getModelColumn)(settings.column, settings.model);
58
+ }
58
59
  }