@qrvey/utils 1.2.10-1 → 1.2.10-2

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 (120) hide show
  1. package/README.md +0 -5855
  2. package/dist/cjs/charts/constants/index.js +5 -1
  3. package/dist/cjs/charts/helpers/index.js +5 -1
  4. package/dist/cjs/charts/index.js +5 -1
  5. package/dist/cjs/charts/interfaces/index.js +5 -1
  6. package/dist/cjs/columns/constants/index.js +5 -1
  7. package/dist/cjs/columns/helpers/index.js +5 -1
  8. package/dist/cjs/columns/index.js +5 -1
  9. package/dist/cjs/columns/interfaces/index.js +5 -1
  10. package/dist/cjs/constants/index.js +5 -1
  11. package/dist/cjs/dates/adapters/index.js +5 -1
  12. package/dist/cjs/dates/constants/index.js +5 -1
  13. package/dist/cjs/dates/helpers/index.js +5 -1
  14. package/dist/cjs/dates/index.js +5 -1
  15. package/dist/cjs/dates/interfaces/index.js +5 -1
  16. package/dist/cjs/dates/range/index.js +5 -1
  17. package/dist/cjs/dates/relative/constants/index.js +5 -1
  18. package/dist/cjs/dates/relative/constants/ui/index.js +5 -1
  19. package/dist/cjs/dates/relative/helpers/dayjs-module.js +5 -1
  20. package/dist/cjs/dates/relative/helpers/index.js +5 -1
  21. package/dist/cjs/dates/relative/index.js +5 -1
  22. package/dist/cjs/dates/relative/interfaces/index.js +5 -1
  23. package/dist/cjs/dates/relative/interfaces/ui/index.js +5 -1
  24. package/dist/cjs/filters/adapters/index.js +5 -1
  25. package/dist/cjs/filters/classes/index.js +5 -1
  26. package/dist/cjs/filters/constants/backend/index.js +5 -1
  27. package/dist/cjs/filters/constants/builder/index.js +5 -1
  28. package/dist/cjs/filters/constants/common/index.js +5 -1
  29. package/dist/cjs/filters/constants/index.js +5 -1
  30. package/dist/cjs/filters/constants/panel/index.js +5 -1
  31. package/dist/cjs/filters/helpers/backend/index.js +5 -1
  32. package/dist/cjs/filters/helpers/builder/index.js +5 -1
  33. package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +4 -3
  34. package/dist/cjs/filters/helpers/common/index.js +5 -1
  35. package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +1 -1
  36. package/dist/cjs/filters/helpers/common/mergeFilters.js +25 -9
  37. package/dist/cjs/filters/helpers/index.js +5 -1
  38. package/dist/cjs/filters/helpers/ui/index.js +5 -1
  39. package/dist/cjs/filters/index.js +5 -1
  40. package/dist/cjs/filters/interfaces/backend/index.js +5 -1
  41. package/dist/cjs/filters/interfaces/builder/index.js +5 -1
  42. package/dist/cjs/filters/interfaces/common/index.js +5 -1
  43. package/dist/cjs/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +1 -0
  44. package/dist/cjs/filters/interfaces/functions/index.js +5 -1
  45. package/dist/cjs/filters/interfaces/index.js +5 -1
  46. package/dist/cjs/filters/interfaces/panel/index.js +5 -1
  47. package/dist/cjs/filters/interfaces/ui/index.js +5 -1
  48. package/dist/cjs/filters/services/index.js +5 -1
  49. package/dist/cjs/format/index.js +5 -1
  50. package/dist/cjs/format/localization.js +2 -2
  51. package/dist/cjs/formulas/constants/index.js +5 -1
  52. package/dist/cjs/formulas/index.js +5 -1
  53. package/dist/cjs/formulas/interfaces/index.js +5 -1
  54. package/dist/cjs/general/array/index.js +5 -1
  55. package/dist/cjs/general/function/index.js +5 -1
  56. package/dist/cjs/general/index.js +5 -1
  57. package/dist/cjs/general/mix/index.js +5 -1
  58. package/dist/cjs/general/object/index.js +5 -1
  59. package/dist/cjs/general/string/index.js +5 -1
  60. package/dist/cjs/globalization/helpers/index.js +5 -1
  61. package/dist/cjs/globalization/index.js +5 -1
  62. package/dist/cjs/globalization/interfaces/bucket_builder/index.js +5 -1
  63. package/dist/cjs/globalization/interfaces/calendar/index.js +5 -1
  64. package/dist/cjs/globalization/interfaces/chart_builder/index.js +5 -1
  65. package/dist/cjs/globalization/interfaces/columns/index.js +5 -1
  66. package/dist/cjs/globalization/interfaces/common/index.js +5 -1
  67. package/dist/cjs/globalization/interfaces/cross_tabs/index.js +5 -1
  68. package/dist/cjs/globalization/interfaces/dashboard/index.js +5 -1
  69. package/dist/cjs/globalization/interfaces/filters/index.js +5 -1
  70. package/dist/cjs/globalization/interfaces/formula_builder/index.js +5 -1
  71. package/dist/cjs/globalization/interfaces/index.js +5 -1
  72. package/dist/cjs/globalization/interfaces/panel/index.js +5 -1
  73. package/dist/cjs/globalization/interfaces/style_themes/index.js +5 -1
  74. package/dist/cjs/globalization/interfaces/table_charts/index.js +5 -1
  75. package/dist/cjs/globalization/labels/bucket_builder/index.js +5 -1
  76. package/dist/cjs/globalization/labels/calendar/index.js +5 -1
  77. package/dist/cjs/globalization/labels/chart_builder/index.js +5 -1
  78. package/dist/cjs/globalization/labels/columns/index.js +5 -1
  79. package/dist/cjs/globalization/labels/common/index.js +5 -1
  80. package/dist/cjs/globalization/labels/cross_tabs/index.js +5 -1
  81. package/dist/cjs/globalization/labels/dashboard/index.js +5 -1
  82. package/dist/cjs/globalization/labels/filters/index.js +5 -1
  83. package/dist/cjs/globalization/labels/formula_builder/index.js +5 -1
  84. package/dist/cjs/globalization/labels/index.js +5 -1
  85. package/dist/cjs/globalization/labels/panel/index.js +5 -1
  86. package/dist/cjs/globalization/labels/style_themes/index.js +5 -1
  87. package/dist/cjs/globalization/labels/table_charts/index.js +5 -1
  88. package/dist/cjs/globalization/service/index.js +5 -1
  89. package/dist/cjs/index.js +5 -1
  90. package/dist/cjs/interfaces/format/index.js +5 -1
  91. package/dist/cjs/interfaces/general/index.js +5 -1
  92. package/dist/cjs/interfaces/index.js +5 -1
  93. package/dist/cjs/qrvey/constants/index.js +5 -1
  94. package/dist/cjs/qrvey/helpers/getLookupAnswers.js +1 -2
  95. package/dist/cjs/qrvey/helpers/index.js +5 -1
  96. package/dist/cjs/qrvey/index.js +5 -1
  97. package/dist/cjs/qrvey/interfaces/index.js +5 -1
  98. package/dist/cjs/services/adapters/index.js +5 -1
  99. package/dist/cjs/services/api/index.js +5 -1
  100. package/dist/cjs/services/constants/index.js +5 -1
  101. package/dist/cjs/services/helpers/index.js +5 -1
  102. package/dist/cjs/services/index.js +5 -1
  103. package/dist/cjs/services/interfaces/index.js +5 -1
  104. package/dist/cjs/stencil/decorators/index.js +5 -1
  105. package/dist/cjs/stencil/index.js +5 -1
  106. package/dist/cjs/stencil/util/index.js +5 -1
  107. package/dist/cjs/tokens/index.js +5 -1
  108. package/dist/cjs/typescript/decorators/index.js +5 -1
  109. package/dist/cjs/typescript/index.js +5 -1
  110. package/dist/filters/helpers/common/getMergeFiltersSettings.js +4 -3
  111. package/dist/filters/helpers/common/mergeFilters.d.ts +1 -1
  112. package/dist/filters/helpers/common/mergeFilters.js +25 -9
  113. package/dist/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +1 -0
  114. package/dist/format/localization.js +2 -2
  115. package/dist/qrvey/helpers/getLookupAnswers.js +1 -2
  116. package/package.json +11 -11
  117. package/prepareToPublish.js +2 -1
  118. package/src/filters/helpers/common/getMergeFiltersSettings.ts +1 -0
  119. package/src/filters/helpers/common/mergeFilters.ts +34 -9
  120. package/src/filters/interfaces/functions/IFFiltersMergeFilters.ts +1 -0
@@ -11,6 +11,7 @@ import { IFSValueRelativeDate } from "../../interfaces/common/IFSValueRelativeDa
11
11
  import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMergeFilters";
12
12
  import { IFValue } from "../../interfaces/IFValue";
13
13
  import { IFUData } from "../../interfaces/ui/IFUData";
14
+ import { getFilterid } from "./getFilterid";
14
15
  import { getMergeFiltersSettings } from "./getMergeFiltersSettings";
15
16
  import { isInValidator } from "./isInValidator";
16
17
  import { isNullValidator } from "./isNullValidator";
@@ -24,7 +25,7 @@ import { resolveScopeConditions } from "./resolveScopeConditions";
24
25
  * Merge filter data structures in a new one. The first Filter Data passed in the argument has the priority
25
26
  * @param filterData1 The target filter data
26
27
  * @param filterData2 the filter data to be merged
27
- * @param overwriteValues Flag to overwrite or not the filter values
28
+ * @param settings configuration of the mergeFilter
28
29
  * @returns a new filter data structure
29
30
  */
30
31
  export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSData | IFUData, settings?: IFFiltersMergeFilters): IFSData | IFUData {
@@ -50,7 +51,7 @@ export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSDat
50
51
  * Gets a new scope structure array by merging two scope structures
51
52
  * @param scopes1 the target scope structure
52
53
  * @param scopes2 the scope to be merged
53
- * @param overwriteValues Flag to overwrite or not the filter values
54
+ * @param settings configuration of the mergeFilter
54
55
  * @returns a new scope structure array
55
56
  */
56
57
  function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], settings?: IFFiltersMergeFilters): IFSScope[] {
@@ -75,7 +76,7 @@ function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], setting
75
76
  * Gets a new dataset structure array by merging two dataset structures
76
77
  * @param datasets1 the target dataset structure
77
78
  * @param datasets2 the dataset to be merged
78
- * @param overwriteValues Flag to overwrite or not the filter values
79
+ * @param settings configuration of the mergeFilter
79
80
  * @returns a new dataset structure array
80
81
  */
81
82
  function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [], settings?: IFFiltersMergeFilters): IFSDataset[] {
@@ -100,18 +101,20 @@ function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [
100
101
  * Gets a new filter structure array by merging two filter structures
101
102
  * @param filters1 the target filter structure
102
103
  * @param filters2 the filter to be merged
103
- * @param overwriteValues Flag to overwrite or not the filter values
104
+ * @param settings configuration of the mergeFilter
104
105
  * @returns a new filter structure array
105
106
  */
106
107
  function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], settings?: IFFiltersMergeFilters): IFSFilter[] {
107
108
  let newFilters = filters1.reduce((filters: IFSFilter[], filter1: IFSFilter) => {
108
109
  const filter2Index = filters2.findIndex(filter2 => resolveFilterConditions(filter2, { column: filter1.column, dateSection: filter1.dateSection, panelid: filter1.extras.panelid, property: filter1.property, validator: filter1.validator }));
109
110
  if (filter2Index > -1) {
110
- filter1 = { ...filter1, values: mergeValues(filter1, filters2[filter2Index], settings.overwriteValues) };
111
+ filter1 = { ...filter1, values: mergeValues(filter1, filters2[filter2Index], settings) };
112
+ filter1 = mergeFilterProps(filter1, filters2[filter2Index], settings);
111
113
  filters2.splice(filter2Index, 1);
112
114
  } else {
113
115
  filter1 = { ...filter1, operator: settings.setGroupedColumnOperator ? FILTER_GROUPED_COLUMN_OPERATOR : filter1.operator };
114
116
  }
117
+ filter1.filterid = getFilterid(filter1);
115
118
  filters.push(filter1);
116
119
  return filters;
117
120
  }, [] as IFSFilter[]);
@@ -120,20 +123,42 @@ function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], s
120
123
  return newFilters;
121
124
  }
122
125
 
126
+ /**
127
+ * Gets a new filter structure when the setting is configured
128
+ * @param filter1 the target filter structure
129
+ * @param filter2 the filter to be used to merge the values
130
+ * @param settings configuration of the mergeFilter
131
+ * @returns a new filter structure with overwritted props
132
+ */
133
+ function mergeFilterProps(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeFilters) {
134
+ if (settings.overwriteFilterProps) {
135
+ filter1 = {
136
+ ...filter1,
137
+ extras: filter2.extras,
138
+ enabled: filter2.enabled || filter1.enabled,
139
+ filterid: filter2.filterid,
140
+ lookupDisplayIndex: filter2.lookupDisplayIndex,
141
+ nullValues: filter2.nullValues,
142
+ selectAll: filter2.selectAll,
143
+ };
144
+ }
145
+ return filter1;
146
+ }
147
+
123
148
  /**
124
149
  * Gets a new value structure array by merging two value structures
125
150
  * @param filter1 the target filter structure
126
151
  * @param filter2 the filter to be used to merge the values
127
- * @param overwrite Flag to overwrite or not the filter values
152
+ * @param settings configuration of the mergeFilter
128
153
  * @returns a new value structure array
129
154
  */
130
- function mergeValues(filter1: IFSFilter, filter2: IFSFilter, overwrite = false): IFValue[] {
155
+ function mergeValues(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeFilters): IFValue[] {
131
156
  if (isEmpty(filter1) && isEmpty(filter2)) return [];
132
157
 
133
158
  let newValues = [];
134
159
  let filter1Values = filter1.values || [];
135
- const filter2Values = filter1.values || [];
136
- if (!overwrite) {
160
+ const filter2Values = filter2.values || [];
161
+ if (!settings.overwriteValues) {
137
162
  if (isInValidator(filter1.validator)) {
138
163
  newValues = filter2Values.reduce((values: IFValue[], value2: IFSValueRelativeDate) => {
139
164
  const value1Index = (filter1Values as IFSValueRelativeDate[]).findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
@@ -3,6 +3,7 @@
3
3
  * Structure for MergeFilters property settings
4
4
  */
5
5
  export interface IFFiltersMergeFilters {
6
+ overwriteFilterProps?: boolean;
6
7
  overwriteValues?: boolean;
7
8
  setGroupedColumnOperator?: boolean;
8
9
  }