@pega/lists-core-utils 10.0.0-build.5.2 → 10.0.0-build.5.21

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.
@@ -124,29 +124,29 @@ export default function grouping(state = {}, dataInput = [], meta = {}) {
124
124
  switch (agg.type) {
125
125
  case 'max':
126
126
  if (typeof acc[name]._.agg[agg.name].max !== 'number') {
127
- acc[name]._.agg[agg.name].max = get(d, agg.name);
127
+ acc[name]._.agg[agg.name].max = aggValue;
128
128
  }
129
129
  else {
130
130
  acc[name]._.agg[agg.name].max =
131
- Math.max(acc[name]._.agg[agg.name].max, get(d, agg.name)) || null;
131
+ Math.max(acc[name]._.agg[agg.name].max, aggValue) || null;
132
132
  }
133
133
  break;
134
134
  case 'min':
135
135
  if (typeof acc[name]._.agg[agg.name].min !== 'number') {
136
- acc[name]._.agg[agg.name].min = get(d, agg.name);
136
+ acc[name]._.agg[agg.name].min = aggValue;
137
137
  }
138
138
  else {
139
139
  acc[name]._.agg[agg.name].min =
140
- Math.min(acc[name]._.agg[agg.name].min, get(d, agg.name)) || null;
140
+ Math.min(acc[name]._.agg[agg.name].min, aggValue) || null;
141
141
  }
142
142
  break;
143
143
  case 'sum':
144
144
  acc[name]._.agg[agg.name].sum =
145
- Math.round(((acc[name]._.agg[agg.name].sum || 0) + get(d, agg.name)) * 100) / 100;
145
+ Math.round(((acc[name]._.agg[agg.name].sum || 0) + aggValue) * 100) / 100;
146
146
  break;
147
147
  case 'avg':
148
148
  acc[name]._.agg[agg.name].nonNullCount += 1;
149
- acc[name]._.agg[agg.name].sum = (acc[name]._.agg[agg.name].sum || 0) + get(d, agg.name);
149
+ acc[name]._.agg[agg.name].sum = (acc[name]._.agg[agg.name].sum || 0) + aggValue;
150
150
  acc[name]._.agg[agg.name].avg =
151
151
  Math.round((acc[name]._.agg[agg.name].sum / acc[name]._.agg[agg.name].nonNullCount) * 100) / 100;
152
152
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"Grouping.js","sourceRoot":"","sources":["../../dataApi/Grouping.js"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash-es/get';\n\nimport { getFieldsMap } from '../stateConversion/PrepareDatapageQuery';\n\nimport filter from './Filter';\nimport { getDateFunctionValue, getFormattedFields } from './utils';\nimport {\n getTextGroupingOrder,\n getTextGroupingValue,\n isTextGroupingCustomFunction\n} from './CustomGrouping';\n\n// eslint-disable-next-line default-param-last\nfunction insertSorted(arr, obj, key, order = 'asc', compareValuesAsNumbers, customOrder) {\n let inserted = false;\n for (let i = 0; i < arr.length; i += 1) {\n const input = arr[i];\n const getSortValue = value => {\n if (customOrder) {\n const customIndex = customOrder.indexOf(value);\n return customIndex === -1 ? customOrder.length : customIndex;\n }\n\n if (compareValuesAsNumbers) {\n return Number(value);\n }\n\n return value;\n };\n const objValue = getSortValue(obj[key]);\n const inputValue = getSortValue(input[key]);\n if (order === 'desc' ? objValue >= inputValue : objValue <= inputValue) {\n arr.splice(i, 0, obj);\n inserted = true;\n break;\n }\n }\n\n if (!arr.length || !inserted) {\n arr.push(obj);\n }\n}\n\n/** Returns the value of a group in the given data row */\nfunction getGroupValueInRow(dataRow, group, field, formattedFields) {\n if (isTextGroupingCustomFunction(group.customFunction)) {\n return getTextGroupingValue(dataRow, group.customFunction, formattedFields);\n }\n\n // If it's a regular group (i.e. without any dateFunction), return the field value directly\n if (!group.dateFunction) {\n return get(dataRow, field.name);\n }\n\n // When a dateFunction is present, format the value to match the conventions from the Data API\n return getDateFunctionValue(dataRow, field.name, group.dateFunction);\n}\n\n/**\n * Cleanup the distinctSet from aggregation info in group nodes.\n * @param groupNodes\n */\nconst cleanupDistinctSet = groupNodes => {\n groupNodes.forEach(node => {\n if (node.agg) {\n Object.keys(node.agg).forEach(aggName => {\n if (node.agg[aggName].distinctSet) {\n delete node.agg[aggName].distinctSet;\n }\n });\n }\n if (node.children) {\n cleanupDistinctSet(node.children);\n }\n });\n};\n\n// Provides grouped information when group state is provided with data.\n// Group information has following properties for each grouped value.\n// name,count:leafnodecount,level,groupBy: key generated using getGroupKey\nexport default function grouping(state = {}, dataInput = [], meta = {}) {\n // if filtered state is there, filter data and then\n // prepare your group info based on filtered data.\n const filteredData = filter(state, dataInput, meta);\n\n // get groups from state in sorted order of level.\n const originalGroups = [...state.groups];\n const groups = originalGroups.sort((g1, g2) => g1.level - g2.level);\n const result = [];\n const object = { _: { children: result } };\n const fieldsMap = getFieldsMap(meta.fieldDefs);\n const formattedFields = getFormattedFields(meta.fieldDefs);\n const aggregationInfo =\n state.aggregationInfo?.map(agg => ({\n ...agg,\n type: agg.type.toLowerCase(),\n name: agg.columnId\n })) || [];\n let hasDistinctCountAggregation = false;\n\n filteredData.forEach(d => {\n let includeDataRow = true;\n groups.reduce((acc, g) => {\n if (!includeDataRow) {\n return acc;\n }\n\n const field = fieldsMap.get(g.columnId);\n const name = getGroupValueInRow(d, g, field, formattedFields);\n\n if (isTextGroupingCustomFunction(g.customFunction) && name === undefined) {\n includeDataRow = false;\n return acc;\n }\n\n if (!acc[name]) {\n acc[name] = {\n _: {\n name,\n count: 0,\n agg: {},\n data: d\n }\n };\n aggregationInfo.forEach(agg => {\n acc[name]._.agg[agg.name] = {\n max: null,\n min: null,\n sum: null,\n avg: null,\n nonNullCount: 0\n };\n });\n acc._.children = acc._.children || [];\n\n const compareValuesAsNumbers = field.type === 'number'; // These need to be parsed as numbers before sorting. DataViews API returns everything as a string\n const customOrder = getTextGroupingOrder(g.customFunction, g.order);\n insertSorted(\n acc._.children,\n acc[name]._,\n 'name',\n g.order,\n compareValuesAsNumbers,\n customOrder\n );\n }\n acc[name]._.count += 1;\n\n aggregationInfo.forEach(agg => {\n const aggValue = get(d, agg.name);\n if (aggValue === null || aggValue === undefined) {\n return;\n }\n switch (agg.type) {\n case 'max':\n if (typeof acc[name]._.agg[agg.name].max !== 'number') {\n acc[name]._.agg[agg.name].max = get(d, agg.name);\n } else {\n acc[name]._.agg[agg.name].max =\n Math.max(acc[name]._.agg[agg.name].max, get(d, agg.name)) || null;\n }\n break;\n case 'min':\n if (typeof acc[name]._.agg[agg.name].min !== 'number') {\n acc[name]._.agg[agg.name].min = get(d, agg.name);\n } else {\n acc[name]._.agg[agg.name].min =\n Math.min(acc[name]._.agg[agg.name].min, get(d, agg.name)) || null;\n }\n break;\n case 'sum':\n acc[name]._.agg[agg.name].sum =\n Math.round(((acc[name]._.agg[agg.name].sum || 0) + get(d, agg.name)) * 100) / 100;\n break;\n case 'avg':\n acc[name]._.agg[agg.name].nonNullCount += 1;\n acc[name]._.agg[agg.name].sum = (acc[name]._.agg[agg.name].sum || 0) + get(d, agg.name);\n acc[name]._.agg[agg.name].avg =\n Math.round(\n (acc[name]._.agg[agg.name].sum / acc[name]._.agg[agg.name].nonNullCount) * 100\n ) / 100;\n break;\n case 'distinctcount': {\n hasDistinctCountAggregation = true;\n if (!acc[name]._.agg[agg.name].distinctSet) {\n acc[name]._.agg[agg.name].distinctSet = new Set();\n }\n acc[name]._.agg[agg.name].distinctSet.add(aggValue);\n acc[name]._.agg[agg.name].distinctCount = acc[name]._.agg[agg.name].distinctSet.size;\n break;\n }\n default:\n break;\n }\n });\n\n return acc[name];\n }, object);\n });\n\n if (hasDistinctCountAggregation) {\n // Cleanup the distinctSet from aggregation info before returning the result.\n cleanupDistinctSet(result);\n }\n\n return result;\n}\n\n// Sample output of grouping.\n\n// 0:\n// name: \"New\"\n// count: 9\n// expanded: true\n// children: Array(3)\n// 0: {name: \"10\", count: 5, expanded: true}\n// 1: {name: \"85\", count: 1, expanded: true}\n// 2: {name: \"86\", count: 3, expanded: true}\n// length: 3\n// __proto__: Array(0)\n// __proto__: Object\n// length: 1\n// __proto__: Array(0)\n"]}
1
+ {"version":3,"file":"Grouping.js","sourceRoot":"","sources":["../../dataApi/Grouping.js"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash-es/get';\n\nimport { getFieldsMap } from '../stateConversion/PrepareDatapageQuery';\n\nimport filter from './Filter';\nimport { getDateFunctionValue, getFormattedFields } from './utils';\nimport {\n getTextGroupingOrder,\n getTextGroupingValue,\n isTextGroupingCustomFunction\n} from './CustomGrouping';\n\n// eslint-disable-next-line default-param-last\nfunction insertSorted(arr, obj, key, order = 'asc', compareValuesAsNumbers, customOrder) {\n let inserted = false;\n for (let i = 0; i < arr.length; i += 1) {\n const input = arr[i];\n const getSortValue = value => {\n if (customOrder) {\n const customIndex = customOrder.indexOf(value);\n return customIndex === -1 ? customOrder.length : customIndex;\n }\n\n if (compareValuesAsNumbers) {\n return Number(value);\n }\n\n return value;\n };\n const objValue = getSortValue(obj[key]);\n const inputValue = getSortValue(input[key]);\n if (order === 'desc' ? objValue >= inputValue : objValue <= inputValue) {\n arr.splice(i, 0, obj);\n inserted = true;\n break;\n }\n }\n\n if (!arr.length || !inserted) {\n arr.push(obj);\n }\n}\n\n/** Returns the value of a group in the given data row */\nfunction getGroupValueInRow(dataRow, group, field, formattedFields) {\n if (isTextGroupingCustomFunction(group.customFunction)) {\n return getTextGroupingValue(dataRow, group.customFunction, formattedFields);\n }\n\n // If it's a regular group (i.e. without any dateFunction), return the field value directly\n if (!group.dateFunction) {\n return get(dataRow, field.name);\n }\n\n // When a dateFunction is present, format the value to match the conventions from the Data API\n return getDateFunctionValue(dataRow, field.name, group.dateFunction);\n}\n\n/**\n * Cleanup the distinctSet from aggregation info in group nodes.\n * @param groupNodes\n */\nconst cleanupDistinctSet = groupNodes => {\n groupNodes.forEach(node => {\n if (node.agg) {\n Object.keys(node.agg).forEach(aggName => {\n if (node.agg[aggName].distinctSet) {\n delete node.agg[aggName].distinctSet;\n }\n });\n }\n if (node.children) {\n cleanupDistinctSet(node.children);\n }\n });\n};\n\n// Provides grouped information when group state is provided with data.\n// Group information has following properties for each grouped value.\n// name,count:leafnodecount,level,groupBy: key generated using getGroupKey\nexport default function grouping(state = {}, dataInput = [], meta = {}) {\n // if filtered state is there, filter data and then\n // prepare your group info based on filtered data.\n const filteredData = filter(state, dataInput, meta);\n\n // get groups from state in sorted order of level.\n const originalGroups = [...state.groups];\n const groups = originalGroups.sort((g1, g2) => g1.level - g2.level);\n const result = [];\n const object = { _: { children: result } };\n const fieldsMap = getFieldsMap(meta.fieldDefs);\n const formattedFields = getFormattedFields(meta.fieldDefs);\n const aggregationInfo =\n state.aggregationInfo?.map(agg => ({\n ...agg,\n type: agg.type.toLowerCase(),\n name: agg.columnId\n })) || [];\n let hasDistinctCountAggregation = false;\n\n filteredData.forEach(d => {\n let includeDataRow = true;\n groups.reduce((acc, g) => {\n if (!includeDataRow) {\n return acc;\n }\n\n const field = fieldsMap.get(g.columnId);\n const name = getGroupValueInRow(d, g, field, formattedFields);\n\n if (isTextGroupingCustomFunction(g.customFunction) && name === undefined) {\n includeDataRow = false;\n return acc;\n }\n\n if (!acc[name]) {\n acc[name] = {\n _: {\n name,\n count: 0,\n agg: {},\n data: d\n }\n };\n aggregationInfo.forEach(agg => {\n acc[name]._.agg[agg.name] = {\n max: null,\n min: null,\n sum: null,\n avg: null,\n nonNullCount: 0\n };\n });\n acc._.children = acc._.children || [];\n\n const compareValuesAsNumbers = field.type === 'number'; // These need to be parsed as numbers before sorting. DataViews API returns everything as a string\n const customOrder = getTextGroupingOrder(g.customFunction, g.order);\n insertSorted(\n acc._.children,\n acc[name]._,\n 'name',\n g.order,\n compareValuesAsNumbers,\n customOrder\n );\n }\n acc[name]._.count += 1;\n\n aggregationInfo.forEach(agg => {\n const aggValue = get(d, agg.name);\n if (aggValue === null || aggValue === undefined) {\n return;\n }\n switch (agg.type) {\n case 'max':\n if (typeof acc[name]._.agg[agg.name].max !== 'number') {\n acc[name]._.agg[agg.name].max = aggValue;\n } else {\n acc[name]._.agg[agg.name].max =\n Math.max(acc[name]._.agg[agg.name].max, aggValue) || null;\n }\n break;\n case 'min':\n if (typeof acc[name]._.agg[agg.name].min !== 'number') {\n acc[name]._.agg[agg.name].min = aggValue;\n } else {\n acc[name]._.agg[agg.name].min =\n Math.min(acc[name]._.agg[agg.name].min, aggValue) || null;\n }\n break;\n case 'sum':\n acc[name]._.agg[agg.name].sum =\n Math.round(((acc[name]._.agg[agg.name].sum || 0) + aggValue) * 100) / 100;\n break;\n case 'avg':\n acc[name]._.agg[agg.name].nonNullCount += 1;\n acc[name]._.agg[agg.name].sum = (acc[name]._.agg[agg.name].sum || 0) + aggValue;\n acc[name]._.agg[agg.name].avg =\n Math.round(\n (acc[name]._.agg[agg.name].sum / acc[name]._.agg[agg.name].nonNullCount) * 100\n ) / 100;\n break;\n case 'distinctcount': {\n hasDistinctCountAggregation = true;\n if (!acc[name]._.agg[agg.name].distinctSet) {\n acc[name]._.agg[agg.name].distinctSet = new Set();\n }\n acc[name]._.agg[agg.name].distinctSet.add(aggValue);\n acc[name]._.agg[agg.name].distinctCount = acc[name]._.agg[agg.name].distinctSet.size;\n break;\n }\n default:\n break;\n }\n });\n\n return acc[name];\n }, object);\n });\n\n if (hasDistinctCountAggregation) {\n // Cleanup the distinctSet from aggregation info before returning the result.\n cleanupDistinctSet(result);\n }\n\n return result;\n}\n\n// Sample output of grouping.\n\n// 0:\n// name: \"New\"\n// count: 9\n// expanded: true\n// children: Array(3)\n// 0: {name: \"10\", count: 5, expanded: true}\n// 1: {name: \"85\", count: 1, expanded: true}\n// 2: {name: \"86\", count: 3, expanded: true}\n// length: 3\n// __proto__: Array(0)\n// __proto__: Object\n// length: 1\n// __proto__: Array(0)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../dataApi/index.js"],"names":[],"mappings":"AA2BO,iCALI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,QACjB,YAAY,CAAC,IAAI,GACf,OAAO,UAAU,EAAE,YAAY,CAAC,iBAAiB,CA4B7D;AAUM,4CANI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,SACjB,MAAM,QACN,YAAY,CAAC,IAAI,GACf,YAAY,CAAC,uBAAuB,CAwBhD;AASM,wCALI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,uBACjB,YAAY,CAAC,IAAI,GACf,YAAY,CAAC,wBAAwB,CASjD;AASM,6CALI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,uBACjB,YAAY,CAAC,IAAI,GACf,YAAY,CAAC,uBAAuB,CAShD;AAEM,4HAsBN;6BAzI4B,UAAU"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../dataApi/index.js"],"names":[],"mappings":"AAoDO,iCALI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,QACjB,YAAY,CAAC,IAAI,GACf,OAAO,UAAU,EAAE,YAAY,CAAC,iBAAiB,CA6B7D;AAUM,4CANI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,SACjB,MAAM,QACN,YAAY,CAAC,IAAI,GACf,YAAY,CAAC,uBAAuB,CAwBhD;AASM,wCALI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,uBACjB,YAAY,CAAC,IAAI,GACf,YAAY,CAAC,wBAAwB,CAUjD;AASM,6CALI,YAAY,CAAC,gBAAgB,QAC7B,YAAY,CAAC,IAAI,uBACjB,YAAY,CAAC,IAAI,GACf,YAAY,CAAC,uBAAuB,CAUhD;AAEM,4HAsBN;6BAnK4B,UAAU"}
@@ -1,4 +1,6 @@
1
+ import cloneDeep from 'lodash-es/cloneDeep';
1
2
  import get from 'lodash-es/get';
3
+ import set from 'lodash-es/set';
2
4
  // This should be converted to "import type" once this file is TS.
3
5
  // eslint-disable-next-line no-unused-vars
4
6
  import { DataApiTypes } from '../types';
@@ -11,6 +13,25 @@ import { isTextGroupingCustomFunction } from './CustomGrouping';
11
13
  const hasUnsupportedCustomGrouping = query => {
12
14
  return query?.query?.groupBy?.some(group => group.customFunction && !isTextGroupingCustomFunction(group.customFunction));
13
15
  };
16
+ const normalizeNumericData = (data = [], fieldDefs = []) => {
17
+ const numericFieldNames = fieldDefs
18
+ .filter(field => field.type?.toLowerCase() === 'number')
19
+ .map(field => field.name);
20
+ if (numericFieldNames.length <= 0)
21
+ return data;
22
+ return data.map(row => {
23
+ let normalizedRow = row;
24
+ numericFieldNames.forEach(fieldName => {
25
+ const value = get(row, fieldName);
26
+ const numericValue = Number(value);
27
+ if (typeof value === 'string' && value.trim() !== '' && Number.isFinite(numericValue)) {
28
+ normalizedRow = normalizedRow === row ? cloneDeep(row) : normalizedRow;
29
+ set(normalizedRow, fieldName, numericValue);
30
+ }
31
+ });
32
+ return normalizedRow;
33
+ });
34
+ };
14
35
  /**
15
36
  * This api is used to fetch a list of raw data rows (excluding aggregations) for a given group or at the top level when no groups
16
37
  * from the provided {@link data} using {@link query} and {@link meta}
@@ -23,9 +44,10 @@ export const fetchData = (query, meta, data) => {
23
44
  if (hasUnsupportedCustomGrouping(query)) {
24
45
  return Promise.resolve({ data: [], totalRecordCount: 0, filteredRecordCount: 0 });
25
46
  }
26
- const stateFromTable = convertQueryToListState(query, data);
47
+ const normalizedData = normalizeNumericData(data, meta.fieldDefs);
48
+ const stateFromTable = convertQueryToListState(query, normalizedData);
27
49
  const serverData = {
28
- data: data || []
50
+ data: normalizedData
29
51
  };
30
52
  serverData.totalRecordCount = serverData.data.length;
31
53
  serverData.filteredRecordCount = serverData.data.length;
@@ -89,9 +111,10 @@ export const fetchUniqueColValues = (query, meta, colId, data) => {
89
111
  export const fetchGroupedInfo = (query, meta, clonedFormattedData) => {
90
112
  if (hasUnsupportedCustomGrouping(query))
91
113
  return Promise.resolve([]);
92
- const state = convertQueryToListState(query, clonedFormattedData || []);
114
+ const normalizedData = normalizeNumericData(clonedFormattedData, meta.fieldDefs);
115
+ const state = convertQueryToListState(query, normalizedData);
93
116
  return new Promise(resolve => {
94
- resolve(grouping(state, clonedFormattedData || [], { ...meta, typeMap }));
117
+ resolve(grouping(state, normalizedData, { ...meta, typeMap }));
95
118
  });
96
119
  };
97
120
  /**
@@ -104,9 +127,10 @@ export const fetchGroupedInfo = (query, meta, clonedFormattedData) => {
104
127
  export const fetchAggregatedValues = (query, meta, clonedFormattedData) => {
105
128
  if (hasUnsupportedCustomGrouping(query))
106
129
  return Promise.resolve({});
107
- const state = convertQueryToListState(query, clonedFormattedData || []);
130
+ const normalizedData = normalizeNumericData(clonedFormattedData, meta.fieldDefs);
131
+ const state = convertQueryToListState(query, normalizedData);
108
132
  return new Promise(resolve => {
109
- resolve(aggregation(state, clonedFormattedData || [], meta));
133
+ resolve(aggregation(state, normalizedData, meta));
110
134
  });
111
135
  };
112
136
  export const fetchGroupAdditionalFieldUniqueValues = (query, meta, additionalField, data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../dataApi/index.js"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash-es/get';\n\n// This should be converted to \"import type\" once this file is TS.\n// eslint-disable-next-line no-unused-vars\nimport { DataApiTypes } from '../types';\nimport convertQueryToListState from '../stateConversion/QueryToListsState';\n\nimport getDataFeatures from './DataFeatures';\nimport grouping from './Grouping';\nimport aggregation from './Aggregation';\nimport { typeMap } from './utils';\nimport { isTextGroupingCustomFunction } from './CustomGrouping';\n\nconst hasUnsupportedCustomGrouping = query => {\n return query?.query?.groupBy?.some(\n group => group.customFunction && !isTextGroupingCustomFunction(group.customFunction)\n );\n};\n\n/**\n * This api is used to fetch a list of raw data rows (excluding aggregations) for a given group or at the top level when no groups\n * from the provided {@link data} using {@link query} and {@link meta}\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link data}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {DataApiTypes.Data} data The whole dataset on which this {@link query} operation needs to be performed\n * @returns {import('../types').DataApiTypes.FetchDataResponse} {@link DataApiTypes.FetchDataResponse}\n */\nexport const fetchData = (query, meta, data) => {\n if (hasUnsupportedCustomGrouping(query)) {\n return Promise.resolve({ data: [], totalRecordCount: 0, filteredRecordCount: 0 });\n }\n\n const stateFromTable = convertQueryToListState(query, data);\n const serverData = {\n data: data || []\n };\n serverData.totalRecordCount = serverData.data.length;\n serverData.filteredRecordCount = serverData.data.length;\n const features = getDataFeatures();\n Object.entries(features).forEach(([key, feature]) => {\n if (key !== 'paginate' || (key === 'paginate' && stateFromTable.paginationOptions)) {\n if (key === 'paginate') {\n serverData.data = feature(stateFromTable, serverData.data, meta);\n } else {\n serverData.data = feature(stateFromTable, serverData.data, meta);\n serverData.totalRecordCount = serverData.data.length;\n serverData.filteredRecordCount = serverData.data.length;\n }\n }\n });\n return new Promise(resolve => {\n resolve(serverData);\n });\n};\n\n/**\n * This api is used to fetch the unique values for a given colId. The {@link colId} should be equal to {@link DataApiTypes.FieldDef.id fieldDef id} for which unique values needs to be fetched.\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link data}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {string} colId It should be equal to {@link DataApiTypes.FieldDef.id fieldDef id} for which unique values needs to be fetched.\n * @param {DataApiTypes.Data} data The whole dataset on which this {@link query} operation needs to be performed\n * @returns {DataApiTypes.UniqueColValuesResponse} {@link DataApiTypes.UniqueColValuesResponse}\n */\nexport const fetchUniqueColValues = (query, meta, colId, data) => {\n if (hasUnsupportedCustomGrouping(query)) return Promise.resolve([]);\n\n const column = meta.fieldDefs ? meta.fieldDefs.find(col => col.id === colId) : null;\n const colName = column ? column.name : null;\n if (!colName) return Promise.resolve([]);\n delete query.paging;\n delete query.query.filter;\n const resultSet = new Set();\n return new Promise((success, failure) => {\n fetchData(query, meta, data || [])\n .then(({ data: resData }) => {\n resData.forEach(obj => {\n const value = get(obj, colName);\n if (value !== null && value !== undefined) resultSet.add(value);\n });\n success([...resultSet]);\n })\n .catch(error => {\n failure(error);\n });\n });\n};\n\n/**\n * This api is used to fetch details for any group/sub-group for a given {@link clonedFormattedData}. It returns labels, counts, aggregation values at each group node.\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link clonedFormattedData}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {DataApiTypes.Data} clonedFormattedData The whole dataset on which this {@link query} operation needs to be performed\n * @returns {DataApiTypes.FetchGroupedInfoResponse} {@link DataApiTypes.FetchGroupedInfoResponse}\n */\nexport const fetchGroupedInfo = (query, meta, clonedFormattedData) => {\n if (hasUnsupportedCustomGrouping(query)) return Promise.resolve([]);\n\n const state = convertQueryToListState(query, clonedFormattedData || []);\n return new Promise(resolve => {\n resolve(grouping(state, clonedFormattedData || [], { ...meta, typeMap }));\n });\n};\n\n/**\n * This api is used to fetch aggregation results for a given aggregation type(sum/min/max/count) in the {@link query}.\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link clonedFormattedData}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {DataApiTypes.Data} clonedFormattedData The whole dataset on which this {@link query} operation needs to be performed\n * @returns {DataApiTypes.AggregateValuesResponse} {@link DataApiTypes.AggregateValuesResponse}\n */\nexport const fetchAggregatedValues = (query, meta, clonedFormattedData) => {\n if (hasUnsupportedCustomGrouping(query)) return Promise.resolve({});\n\n const state = convertQueryToListState(query, clonedFormattedData || []);\n return new Promise(resolve => {\n resolve(aggregation(state, clonedFormattedData || [], meta));\n });\n};\n\nexport const fetchGroupAdditionalFieldUniqueValues = (query, meta, additionalField, data) => {\n if (hasUnsupportedCustomGrouping(query)) {\n return Promise.resolve({ values: [], hasMore: false });\n }\n\n const column = meta.fieldDefs ? meta.fieldDefs.find(col => col.id === additionalField.id) : null;\n const colName = column ? column.name : null;\n if (!colName) return Promise.resolve({ values: [], hasMore: false });\n const resultSet = new Set();\n return new Promise((success, failure) => {\n fetchData(query, meta, data || [])\n .then(({ data: resData }) => {\n resData.forEach(obj => {\n const value = get(obj, colName);\n if (value !== null && value !== undefined) resultSet.add(value);\n });\n success({ values: [...resultSet], hasMore: false });\n })\n .catch(error => {\n failure(error);\n });\n });\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../dataApi/index.js"],"names":[],"mappings":"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","sourcesContent":["import cloneDeep from 'lodash-es/cloneDeep';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\n// This should be converted to \"import type\" once this file is TS.\n// eslint-disable-next-line no-unused-vars\nimport { DataApiTypes } from '../types';\nimport convertQueryToListState from '../stateConversion/QueryToListsState';\n\nimport getDataFeatures from './DataFeatures';\nimport grouping from './Grouping';\nimport aggregation from './Aggregation';\nimport { typeMap } from './utils';\nimport { isTextGroupingCustomFunction } from './CustomGrouping';\n\nconst hasUnsupportedCustomGrouping = query => {\n return query?.query?.groupBy?.some(\n group => group.customFunction && !isTextGroupingCustomFunction(group.customFunction)\n );\n};\n\nconst normalizeNumericData = (data = [], fieldDefs = []) => {\n const numericFieldNames = fieldDefs\n .filter(field => field.type?.toLowerCase() === 'number')\n .map(field => field.name);\n\n if (numericFieldNames.length <= 0) return data;\n\n return data.map(row => {\n let normalizedRow = row;\n\n numericFieldNames.forEach(fieldName => {\n const value = get(row, fieldName);\n const numericValue = Number(value);\n if (typeof value === 'string' && value.trim() !== '' && Number.isFinite(numericValue)) {\n normalizedRow = normalizedRow === row ? cloneDeep(row) : normalizedRow;\n set(normalizedRow, fieldName, numericValue);\n }\n });\n\n return normalizedRow;\n });\n};\n\n/**\n * This api is used to fetch a list of raw data rows (excluding aggregations) for a given group or at the top level when no groups\n * from the provided {@link data} using {@link query} and {@link meta}\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link data}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {DataApiTypes.Data} data The whole dataset on which this {@link query} operation needs to be performed\n * @returns {import('../types').DataApiTypes.FetchDataResponse} {@link DataApiTypes.FetchDataResponse}\n */\nexport const fetchData = (query, meta, data) => {\n if (hasUnsupportedCustomGrouping(query)) {\n return Promise.resolve({ data: [], totalRecordCount: 0, filteredRecordCount: 0 });\n }\n\n const normalizedData = normalizeNumericData(data, meta.fieldDefs);\n const stateFromTable = convertQueryToListState(query, normalizedData);\n const serverData = {\n data: normalizedData\n };\n serverData.totalRecordCount = serverData.data.length;\n serverData.filteredRecordCount = serverData.data.length;\n const features = getDataFeatures();\n Object.entries(features).forEach(([key, feature]) => {\n if (key !== 'paginate' || (key === 'paginate' && stateFromTable.paginationOptions)) {\n if (key === 'paginate') {\n serverData.data = feature(stateFromTable, serverData.data, meta);\n } else {\n serverData.data = feature(stateFromTable, serverData.data, meta);\n serverData.totalRecordCount = serverData.data.length;\n serverData.filteredRecordCount = serverData.data.length;\n }\n }\n });\n return new Promise(resolve => {\n resolve(serverData);\n });\n};\n\n/**\n * This api is used to fetch the unique values for a given colId. The {@link colId} should be equal to {@link DataApiTypes.FieldDef.id fieldDef id} for which unique values needs to be fetched.\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link data}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {string} colId It should be equal to {@link DataApiTypes.FieldDef.id fieldDef id} for which unique values needs to be fetched.\n * @param {DataApiTypes.Data} data The whole dataset on which this {@link query} operation needs to be performed\n * @returns {DataApiTypes.UniqueColValuesResponse} {@link DataApiTypes.UniqueColValuesResponse}\n */\nexport const fetchUniqueColValues = (query, meta, colId, data) => {\n if (hasUnsupportedCustomGrouping(query)) return Promise.resolve([]);\n\n const column = meta.fieldDefs ? meta.fieldDefs.find(col => col.id === colId) : null;\n const colName = column ? column.name : null;\n if (!colName) return Promise.resolve([]);\n delete query.paging;\n delete query.query.filter;\n const resultSet = new Set();\n return new Promise((success, failure) => {\n fetchData(query, meta, data || [])\n .then(({ data: resData }) => {\n resData.forEach(obj => {\n const value = get(obj, colName);\n if (value !== null && value !== undefined) resultSet.add(value);\n });\n success([...resultSet]);\n })\n .catch(error => {\n failure(error);\n });\n });\n};\n\n/**\n * This api is used to fetch details for any group/sub-group for a given {@link clonedFormattedData}. It returns labels, counts, aggregation values at each group node.\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link clonedFormattedData}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {DataApiTypes.Data} clonedFormattedData The whole dataset on which this {@link query} operation needs to be performed\n * @returns {DataApiTypes.FetchGroupedInfoResponse} {@link DataApiTypes.FetchGroupedInfoResponse}\n */\nexport const fetchGroupedInfo = (query, meta, clonedFormattedData) => {\n if (hasUnsupportedCustomGrouping(query)) return Promise.resolve([]);\n\n const normalizedData = normalizeNumericData(clonedFormattedData, meta.fieldDefs);\n const state = convertQueryToListState(query, normalizedData);\n return new Promise(resolve => {\n resolve(grouping(state, normalizedData, { ...meta, typeMap }));\n });\n};\n\n/**\n * This api is used to fetch aggregation results for a given aggregation type(sum/min/max/count) in the {@link query}.\n * @param {DataApiTypes.DataViewsRequest} query A data view api request object used to query the {@link clonedFormattedData}\n * @param {DataApiTypes.Meta} meta A metadata structure that is used to get extra information that is not present in the query.\n * @param {DataApiTypes.Data} clonedFormattedData The whole dataset on which this {@link query} operation needs to be performed\n * @returns {DataApiTypes.AggregateValuesResponse} {@link DataApiTypes.AggregateValuesResponse}\n */\nexport const fetchAggregatedValues = (query, meta, clonedFormattedData) => {\n if (hasUnsupportedCustomGrouping(query)) return Promise.resolve({});\n\n const normalizedData = normalizeNumericData(clonedFormattedData, meta.fieldDefs);\n const state = convertQueryToListState(query, normalizedData);\n return new Promise(resolve => {\n resolve(aggregation(state, normalizedData, meta));\n });\n};\n\nexport const fetchGroupAdditionalFieldUniqueValues = (query, meta, additionalField, data) => {\n if (hasUnsupportedCustomGrouping(query)) {\n return Promise.resolve({ values: [], hasMore: false });\n }\n\n const column = meta.fieldDefs ? meta.fieldDefs.find(col => col.id === additionalField.id) : null;\n const colName = column ? column.name : null;\n if (!colName) return Promise.resolve({ values: [], hasMore: false });\n const resultSet = new Set();\n return new Promise((success, failure) => {\n fetchData(query, meta, data || [])\n .then(({ data: resData }) => {\n resData.forEach(obj => {\n const value = get(obj, colName);\n if (value !== null && value !== undefined) resultSet.add(value);\n });\n success({ values: [...resultSet], hasMore: false });\n })\n .catch(error => {\n failure(error);\n });\n });\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/lists-core-utils",
3
- "version": "10.0.0-build.5.2",
3
+ "version": "10.0.0-build.5.21",
4
4
  "description": "Data api for data operations like sort, filter, grouping etc. and query builder api's to build Data views api query",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Pegasystems",
@@ -14,12 +14,12 @@
14
14
  "build": "tsc -b tsconfig.build.json"
15
15
  },
16
16
  "dependencies": {
17
- "@pega/cosmos-react-condition-builder": "10.0.0-build.5.2",
18
- "@pega/cosmos-react-core": "10.0.0-build.5.2",
17
+ "@pega/cosmos-react-condition-builder": "10.0.0-build.5.21",
18
+ "@pega/cosmos-react-core": "10.0.0-build.5.21",
19
19
  "@types/lodash-es": "^4.17.12",
20
20
  "dayjs": "^1.11.13",
21
21
  "lodash-es": "^4.18.1",
22
- "pega-repeating-structures-core": "npm:@pega/lists-core@10.0.0-build.5.2"
22
+ "pega-repeating-structures-core": "npm:@pega/lists-core@10.0.0-build.5.21"
23
23
  },
24
24
  "devDependencies": {
25
25
  "typescript": "~6.0.3"