@isoftdata/utility-dashboard-backend 2.4.2 → 2.4.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.
@@ -1,5 +1,5 @@
1
- import { Connection, RowDataPacket } from "mysql";
2
- import { Formatting, GoogleDataTable, MultiSeriesOptions, ProcessedFormatting, Table } from "./types/chart";
1
+ import { Connection, RowDataPacket } from 'mysql';
2
+ import { Formatting, GoogleDataTable, MultiSeriesOptions, ProcessedFormatting, Table } from './types/chart';
3
3
  export type FieldType = 'string' | 'number' | 'datetime' | 'timeofday' | 'date';
4
4
  export type QueryFieldsObject = Record<string, FieldType>;
5
5
  export declare function queryWithFields(connection: Connection, query: {
@@ -3,7 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRactiveTableDataFormat = exports.makeDataCumulative = exports.getDataTableFormat = exports.handleFormattingTemplates = exports.coerceNullColumn = exports.makeNegativeNumericValuesZero = exports.getMultiSeriesData = exports.queryWithFields = void 0;
6
+ exports.queryWithFields = queryWithFields;
7
+ exports.getMultiSeriesData = getMultiSeriesData;
8
+ exports.makeNegativeNumericValuesZero = makeNegativeNumericValuesZero;
9
+ exports.coerceNullColumn = coerceNullColumn;
10
+ exports.handleFormattingTemplates = handleFormattingTemplates;
11
+ exports.getDataTableFormat = getDataTableFormat;
12
+ exports.makeDataCumulative = makeDataCumulative;
13
+ exports.getRactiveTableDataFormat = getRactiveTableDataFormat;
7
14
  const formatting_templates_1 = __importDefault(require("./formatting-templates"));
8
15
  const toSnakeCase = require('to-snake-case');
9
16
  const mysqlDataTypes = require('mysql/lib/protocol/constants/types');
@@ -88,7 +95,6 @@ function queryWithFields(connection, query) {
88
95
  });
89
96
  });
90
97
  }
91
- exports.queryWithFields = queryWithFields;
92
98
  function getMultiSeriesData({ data: queryResult, seriesOptions, formatting, fields }) {
93
99
  const { groupXAxisBy, series, value, tooltip } = seriesOptions;
94
100
  const allOfTheKeysInTheSeries = new Set(queryResult.map(row => row[series]));
@@ -136,7 +142,6 @@ function getMultiSeriesData({ data: queryResult, seriesOptions, formatting, fiel
136
142
  fields: seriesFields,
137
143
  };
138
144
  }
139
- exports.getMultiSeriesData = getMultiSeriesData;
140
145
  function makeNegativeNumericValuesZero(resultSet) {
141
146
  const numberCols = Object.keys(resultSet[0]).filter(key => typeof resultSet[0][key] === 'number');
142
147
  return resultSet.map(row => {
@@ -148,7 +153,6 @@ function makeNegativeNumericValuesZero(resultSet) {
148
153
  return row;
149
154
  });
150
155
  }
151
- exports.makeNegativeNumericValuesZero = makeNegativeNumericValuesZero;
152
156
  function coerceNullColumn(columnProp, data, destinationType) {
153
157
  const hasNullValue = data.find(row => row[columnProp] === null);
154
158
  if (hasNullValue) {
@@ -168,22 +172,18 @@ function coerceNullColumn(columnProp, data, destinationType) {
168
172
  return data;
169
173
  }
170
174
  }
171
- exports.coerceNullColumn = coerceNullColumn;
172
175
  function handleFormattingTemplates(formatting) {
173
176
  const formattingOutput = {};
174
177
  if (formatting && typeof formatting === 'object') {
175
- for (const key in formatting) {
176
- formattingOutput[key] = { type: formatting[key].type, format: null };
177
- if (typeof formatting[key].format === 'string') {
178
- if (formatting[key].format in formatting_templates_1.default) {
179
- formattingOutput[key].format = formatting_templates_1.default[formatting[key].format];
180
- }
178
+ for (const chartName in formatting) {
179
+ formattingOutput[chartName] = { type: formatting[chartName].type, format: null };
180
+ if (typeof formatting[chartName].format === 'string' && formatting[chartName].format in formatting_templates_1.default) {
181
+ formattingOutput[chartName].format = formatting_templates_1.default[formatting[chartName].format];
181
182
  }
182
183
  }
183
184
  }
184
185
  return formattingOutput;
185
186
  }
186
- exports.handleFormattingTemplates = handleFormattingTemplates;
187
187
  function getDataTableFormat(data, fields, multiSeries) {
188
188
  let cols = [];
189
189
  if (multiSeries) {
@@ -210,7 +210,6 @@ function getDataTableFormat(data, fields, multiSeries) {
210
210
  });
211
211
  return { cols, rows };
212
212
  }
213
- exports.getDataTableFormat = getDataTableFormat;
214
213
  function makeDataCumulative(dataTable, cumulative = true) {
215
214
  dataTable.rows.forEach((row, rowIndex) => {
216
215
  if (rowIndex > 0) {
@@ -226,7 +225,6 @@ function makeDataCumulative(dataTable, cumulative = true) {
226
225
  });
227
226
  return dataTable;
228
227
  }
229
- exports.makeDataCumulative = makeDataCumulative;
230
228
  function getRactiveTableDataFormat(rows, fields, formatting, styleTemplates = {}) {
231
229
  const columns = Object.keys(fields).map(field => {
232
230
  if (formatting?.[field]?.type === 'NumberFormat' && formatting?.[field]?.format?.prefix === '$') {
@@ -252,5 +250,4 @@ function getRactiveTableDataFormat(rows, fields, formatting, styleTemplates = {}
252
250
  rows,
253
251
  };
254
252
  }
255
- exports.getRactiveTableDataFormat = getRactiveTableDataFormat;
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NoYXJ0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxrRkFBdUQ7QUFDdkQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRXBFLHdFQUE2QztBQUU3QyxTQUFTLDhCQUE4QixDQUFDLGFBQXFCO0lBQzVELFFBQVEsYUFBYSxFQUFFO1FBQ3RCLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFNBQVM7WUFDYixPQUFPLFFBQVEsQ0FBQTtRQUNoQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNO1lBQ1YsT0FBTyxRQUFRLENBQUE7UUFDaEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxZQUFZLENBQUM7UUFDbEIsS0FBSyxXQUFXO1lBQ2YsT0FBTyxVQUFVLENBQUE7UUFDbEIsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFNBQVM7WUFDYixPQUFPLE1BQU0sQ0FBQTtRQUNkLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxPQUFPO1lBQ1gsT0FBTyxXQUFXLENBQUE7UUFDbkI7WUFDQyxPQUFPLFFBQVEsQ0FBQTtLQUNoQjtBQUNGLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEdB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
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NoYXJ0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStEQSwwQ0E2QkM7QUFTRCxnREFtRUM7QUFDRCxzRUFZQztBQUVELDRDQW9CQztBQUVELDhEQVlDO0FBRUQsZ0RBZ0NDO0FBT0QsZ0RBYUM7QUFDRCw4REF5QkM7QUF0U0Qsa0ZBQXdEO0FBQ3hELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUM1QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtBQUVwRSx3RUFBNkM7QUFFN0MsU0FBUyw4QkFBOEIsQ0FBQyxhQUFxQjtJQUM1RCxRQUFRLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFNBQVM7WUFDYixPQUFPLFFBQVEsQ0FBQTtRQUNoQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNO1lBQ1YsT0FBTyxRQUFRLENBQUE7UUFDaEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxZQUFZLENBQUM7UUFDbEIsS0FBSyxXQUFXO1lBQ2YsT0FBTyxVQUFVLENBQUE7UUFDbEIsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFNBQVM7WUFDYixPQUFPLE1BQU0sQ0FBQTtRQUNkLEtBQUssTUFBTSxDQUFDO1FB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
@@ -1,3 +1,14 @@
1
- import { FormattingTemplates } from "./types/chart";
1
+ export type NumberFormatOptions = Pick<NonNullable<ConstructorParameters<typeof google.visualization.NumberFormat>[0]>, 'prefix' | 'fractionDigits' | 'groupingSymbol'>;
2
+ export type MediumDateFormatOptions = {
3
+ format: 'medium';
4
+ };
5
+ export type LongDateFormatOptions = {
6
+ format: 'long';
7
+ };
8
+ export interface FormattingTemplates {
9
+ CURRENCY: NumberFormatOptions;
10
+ MEDIUMDATE: MediumDateFormatOptions;
11
+ LONGDATE: LongDateFormatOptions;
12
+ }
2
13
  declare const formattingTemplates: FormattingTemplates;
3
14
  export default formattingTemplates;
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const formattingTemplates = {
4
- "CURRENCY": {
5
- "prefix": "$",
6
- "fractionDigits": 2,
7
- "groupingSymbol": ",",
4
+ CURRENCY: {
5
+ prefix: '$',
6
+ fractionDigits: 2,
7
+ groupingSymbol: ',',
8
8
  },
9
- "MEDIUMDATE": {
10
- "format": "medium",
9
+ MEDIUMDATE: {
10
+ format: 'medium',
11
11
  },
12
- "LONGDATE": {
13
- "format": "long",
12
+ LONGDATE: {
13
+ format: 'long',
14
14
  },
15
15
  };
16
16
  exports.default = formattingTemplates;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGluZy10ZW1wbGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0dGluZy10ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxNQUFNLG1CQUFtQixHQUF3QjtJQUNoRCxVQUFVLEVBQUU7UUFDWCxRQUFRLEVBQUUsR0FBRztRQUNiLGdCQUFnQixFQUFFLENBQUM7UUFDbkIsZ0JBQWdCLEVBQUUsR0FBRztLQUNyQjtJQUNELFlBQVksRUFBRTtRQUNiLFFBQVEsRUFBRSxRQUFRO0tBQ2xCO0lBQ0QsVUFBVSxFQUFFO1FBQ1gsUUFBUSxFQUFFLE1BQU07S0FDaEI7Q0FDRCxDQUFBO0FBQ0Qsa0JBQWUsbUJBQW1CLENBQUEifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGluZy10ZW1wbGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0dGluZy10ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxNQUFNLG1CQUFtQixHQUF3QjtJQUNoRCxRQUFRLEVBQUU7UUFDVCxNQUFNLEVBQUUsR0FBRztRQUNYLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLGNBQWMsRUFBRSxHQUFHO0tBQ25CO0lBQ0QsVUFBVSxFQUFFO1FBQ1gsTUFBTSxFQUFFLFFBQVE7S0FDaEI7SUFDRCxRQUFRLEVBQUU7UUFDVCxNQUFNLEVBQUUsTUFBTTtLQUNkO0NBQ0QsQ0FBQTtBQUNELGtCQUFlLG1CQUFtQixDQUFBIn0=
package/dist/index.js CHANGED
@@ -26,7 +26,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.formatChartDataForReport = exports.formatReportMetadata = exports.parameterizeUrl = exports.parameterizeQuery = exports.parameterRegex = exports.loadOutputParameterValues = exports.loadDataTable = exports.loadDataTableAndProcessedFormatting = exports.handleFormattingTemplates = exports.formatterTemplates = void 0;
29
+ exports.parameterRegex = exports.handleFormattingTemplates = exports.formatterTemplates = void 0;
30
+ exports.loadDataTableAndProcessedFormatting = loadDataTableAndProcessedFormatting;
31
+ exports.loadDataTable = loadDataTable;
32
+ exports.loadOutputParameterValues = loadOutputParameterValues;
33
+ exports.parameterizeQuery = parameterizeQuery;
34
+ exports.parameterizeUrl = parameterizeUrl;
35
+ exports.formatReportMetadata = formatReportMetadata;
36
+ exports.formatChartDataForReport = formatChartDataForReport;
30
37
  const db = require('@isoftdata/utility-db');
31
38
  const chart_helper_js_1 = require("./chart-helper.js");
32
39
  const utility_date_time_1 = require("@isoftdata/utility-date-time");
@@ -58,17 +65,20 @@ const handleChartTypeSpecificQuirks = (chartType, resultSet) => {
58
65
  async function loadChartData(mysqlConnection, chart, queryObject, customDataSource) {
59
66
  let { formatting, chartWrapper, multiSeries, table, supertype, cumulative, ...theRest } = chart;
60
67
  if (!chartWrapper) {
61
- chartWrapper = {
62
- chartType: supertype,
63
- options: {
64
- height: 450, width: 800,
65
- },
66
- };
68
+ throw new Error('No chartWrapper found in chart!');
67
69
  }
68
- cumulative = cumulative || (chartWrapper?.chartType === 'AreaChart' && cumulative !== false);
70
+ cumulative = cumulative || (chartWrapper.chartType === 'AreaChart' && cumulative !== false);
69
71
  let dataTable = {}, processedFormatting = {};
70
72
  try {
71
- const dataTableAndProcessedFormatting = await loadDataTableAndProcessedFormatting(mysqlConnection, { query: queryObject, multiSeries, formatting, chartType: chartWrapper?.chartType, cumulative, table, customDataSource });
73
+ const dataTableAndProcessedFormatting = await loadDataTableAndProcessedFormatting(mysqlConnection, {
74
+ query: queryObject,
75
+ multiSeries,
76
+ formatting,
77
+ chartType: chartWrapper.chartType,
78
+ cumulative,
79
+ table,
80
+ customDataSource,
81
+ });
72
82
  dataTable = dataTableAndProcessedFormatting.dataTable;
73
83
  processedFormatting = dataTableAndProcessedFormatting.processedFormatting;
74
84
  }
@@ -76,7 +86,7 @@ async function loadChartData(mysqlConnection, chart, queryObject, customDataSour
76
86
  console.error('Error loading dataTable / processedFormatting');
77
87
  throw err;
78
88
  }
79
- if (chartWrapper?.chartType === 'Table') {
89
+ if (chartWrapper.chartType === 'Table') {
80
90
  return {
81
91
  ...theRest,
82
92
  supertype,
@@ -100,13 +110,16 @@ async function loadDataTableAndProcessedFormatting(mysqlConnection, { query: que
100
110
  let results = [];
101
111
  let fields = {};
102
112
  if (typeof customDataSource === 'function') {
113
+ ;
103
114
  ({ results, fields } = await customDataSource(queryObject.sql, queryObject.values));
104
115
  }
105
116
  else if (queryObject?.sql) {
117
+ ;
106
118
  ({ results, fields } = await (0, chart_helper_js_1.queryWithFields)(mysqlConnection, queryObject));
107
119
  }
108
120
  let data = handleChartTypeSpecificQuirks(chartType, results);
109
121
  if (multiSeries) {
122
+ ;
110
123
  ({ data, formatting, fields } = (0, chart_helper_js_1.getMultiSeriesData)({
111
124
  data,
112
125
  seriesOptions: multiSeries,
@@ -124,18 +137,13 @@ async function loadDataTableAndProcessedFormatting(mysqlConnection, { query: que
124
137
  }
125
138
  return { dataTable, processedFormatting, fields };
126
139
  }
127
- exports.loadDataTableAndProcessedFormatting = loadDataTableAndProcessedFormatting;
128
140
  async function loadDataTable(mysqlConnection, { query: queryObject, multiSeries, formatting, chartType }) {
129
141
  const { dataTable } = await loadDataTableAndProcessedFormatting(mysqlConnection, { query: queryObject, multiSeries, formatting, chartType });
130
142
  return dataTable;
131
143
  }
132
- exports.loadDataTable = loadDataTable;
133
144
  const loadOptionList = async (mysqlConnection, optionListQuery, optionList = []) => {
134
- const optionsFromQuery = (optionListQuery && await db.query(mysqlConnection, optionListQuery)) || [];
135
- return [
136
- ...optionList,
137
- ...optionsFromQuery.map((option) => ({ ...option, fromQuery: true })),
138
- ];
145
+ const optionsFromQuery = (optionListQuery && (await db.query(mysqlConnection, optionListQuery))) || [];
146
+ return [...optionList, ...optionsFromQuery.map((option) => ({ ...option, fromQuery: true }))];
139
147
  };
140
148
  async function loadOutputParameterValues(mysqlConnection, { definitionList = [], selectionList = [], forClient = false, session, site = 'store', siteIdColumn, siteNameColumn }) {
141
149
  if (!(definitionList instanceof Array) || !definitionList.length) {
@@ -149,7 +157,7 @@ async function loadOutputParameterValues(mysqlConnection, { definitionList = [],
149
157
  name: definition.name,
150
158
  title: definition.title || definition.name,
151
159
  default: definition.default,
152
- value: (matchingParameterSelection?.value) ?? definition.default,
160
+ value: matchingParameterSelection?.value ?? definition.default,
153
161
  queryValues: {},
154
162
  };
155
163
  if (definition.type === 'dateRange') {
@@ -194,7 +202,7 @@ async function loadOutputParameterValues(mysqlConnection, { definitionList = [],
194
202
  permission: definition?.permission,
195
203
  optionList: [],
196
204
  };
197
- typedParameter.value = typedParameter.value ?? (session.siteId ?? session[`${site}Id`]);
205
+ typedParameter.value = typedParameter.value ?? session.siteId ?? session[`${site}Id`];
198
206
  siteIdColumn = siteIdColumn ? mysqlConnection.escapeId(siteIdColumn) : mysqlConnection.escapeId(`${site}id`);
199
207
  siteNameColumn = siteNameColumn ? mysqlConnection.escapeId(siteNameColumn) : 'name';
200
208
  const siteTableName = mysqlConnection.escapeId(site);
@@ -219,9 +227,7 @@ async function loadOutputParameterValues(mysqlConnection, { definitionList = [],
219
227
  }
220
228
  if (!forClient && typedParameter.value?.toString() === '0') {
221
229
  typedParameter.queryValues = {
222
- [typedParameter.name]: typedParameter.optionList
223
- .map(({ id }) => id?.toString())
224
- .filter(id => id !== '0'),
230
+ [typedParameter.name]: typedParameter.optionList.map(({ id }) => id?.toString()).filter(id => id !== '0'),
225
231
  };
226
232
  }
227
233
  else if (!forClient) {
@@ -262,7 +268,6 @@ async function loadOutputParameterValues(mysqlConnection, { definitionList = [],
262
268
  }
263
269
  return parameterValues;
264
270
  }
265
- exports.loadOutputParameterValues = loadOutputParameterValues;
266
271
  exports.parameterRegex = /\${([^}]+)}/g;
267
272
  function parameterizeQuery(queryString, parameterValues) {
268
273
  if (!queryString) {
@@ -272,10 +277,12 @@ function parameterizeQuery(queryString, parameterValues) {
272
277
  };
273
278
  }
274
279
  const queryParameterValues = parameterValues.reduce((acc, val) => {
275
- return val.queryValues ? {
276
- ...acc,
277
- ...val.queryValues,
278
- } : acc;
280
+ return val.queryValues
281
+ ? {
282
+ ...acc,
283
+ ...val.queryValues,
284
+ }
285
+ : acc;
279
286
  }, {});
280
287
  const queryParameterKeys = [...queryString.matchAll(exports.parameterRegex)].map(([, insideToken]) => insideToken.trim());
281
288
  const queryParameters = queryParameterKeys.map(key => queryParameterValues[key] || null);
@@ -284,16 +291,17 @@ function parameterizeQuery(queryString, parameterValues) {
284
291
  values: queryParameters,
285
292
  };
286
293
  }
287
- exports.parameterizeQuery = parameterizeQuery;
288
294
  function parameterizeUrl(url, parameterValues) {
289
295
  if (!url) {
290
296
  return '';
291
297
  }
292
298
  const queryParameterValues = parameterValues.reduce((acc, val) => {
293
- return val.queryValues ? {
294
- ...acc,
295
- ...val.queryValues,
296
- } : acc;
299
+ return val.queryValues
300
+ ? {
301
+ ...acc,
302
+ ...val.queryValues,
303
+ }
304
+ : acc;
297
305
  }, {});
298
306
  const queryParameterKeys = [...url.matchAll(exports.parameterRegex)].map(([, insideToken]) => insideToken.trim());
299
307
  const formattedUrl = queryParameterKeys.reduce((acc, key) => {
@@ -301,7 +309,6 @@ function parameterizeUrl(url, parameterValues) {
301
309
  }, url);
302
310
  return formattedUrl;
303
311
  }
304
- exports.parameterizeUrl = parameterizeUrl;
305
312
  async function formatReportMetadata(mysqlConnection, { report, chartsInReport, session = {}, site, siteIdColumn, siteNameColumn }) {
306
313
  try {
307
314
  const parameterValues = await loadOutputParameterValues(mysqlConnection, { definitionList: report.parameters, forClient: true, session, site, siteIdColumn, siteNameColumn });
@@ -321,7 +328,6 @@ async function formatReportMetadata(mysqlConnection, { report, chartsInReport, s
321
328
  throw err;
322
329
  }
323
330
  }
324
- exports.formatReportMetadata = formatReportMetadata;
325
331
  async function formatChartDataForReport(mysqlConnection, { reportParameters, chart, reportChart, parameterSelectionList, session = {}, site, siteIdColumn, siteNameColumn, customDataSource }) {
326
332
  try {
327
333
  const parameterValues = await loadOutputParameterValues(mysqlConnection, { definitionList: reportParameters, selectionList: parameterSelectionList, session, site, siteIdColumn, siteNameColumn });
@@ -342,5 +348,4 @@ async function formatChartDataForReport(mysqlConnection, { reportParameters, cha
342
348
  throw err;
343
349
  }
344
350
  }
345
- exports.formatChartDataForReport = formatChartDataForReport;
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQUMzQyx1REFTNkM7QUFDN0Msb0VBQTZEO0FBQzdELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0FBQzdDLDBEQUFpQztBQUNqQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDOUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBTXRDLDZFQUE0RDtBQUM1RCxxREFBNkQ7QUFBcEQsNEhBQUEseUJBQXlCLE9BQUE7QUFLbEMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsU0FBMEIsRUFBRSxFQUFFO0lBQ3ZGLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUNyQixRQUFRLFNBQVMsRUFBRTtZQUNsQixLQUFLLFVBQVU7Z0JBRWQsU0FBUyxHQUFHLElBQUEsK0NBQTZCLEVBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3BELE1BQUs7WUFDTixLQUFLLFNBQVM7Z0JBRWIsU0FBUyxHQUFHLElBQUEsa0NBQWdCLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtnQkFDckUsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDM0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUE7aUJBQzNCO2dCQUNELE1BQUs7WUFDTjtnQkFFQyxTQUFTLEdBQUcsSUFBQSxrQ0FBZ0IsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFD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
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvSEEsa0ZBNENDO0FBT0Qsc0NBR0M7QUFtQkQsOERBaUpDO0FBV0QsOENBeUJDO0FBRUQsMENBcUJDO0FBV0Qsb0RBcUJDO0FBbUJELDREQTJCQztBQXZkRCxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQUMzQyx1REFVMEI7QUFDMUIsb0VBQTZEO0FBQzdELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0FBQzdDLDBEQUFpQztBQUNqQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDOUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBTXRDLDZFQUE0RDtBQUM1RCxxREFBNkQ7QUFBcEQsNEhBQUEseUJBQXlCLE9BQUE7QUFLbEMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsU0FBMEIsRUFBRSxFQUFFO0lBQ3ZGLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLFFBQVEsU0FBUyxFQUFFLENBQUM7WUFDbkIsS0FBSyxVQUFVO2dCQUVkLFNBQVMsR0FBRyxJQUFBLCtDQUE2QixFQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUNwRCxNQUFLO1lBQ04sS0FBSyxTQUFTO2dCQUViLFNBQVMsR0FBRyxJQUFBLGtDQUFnQixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQ3JFLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FB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
@@ -1,4 +1,4 @@
1
- import { RowDataPacket } from "mysql";
2
- import { TableStyleTemplateObject } from "./types/chart";
1
+ import { RowDataPacket } from 'mysql';
2
+ import { TableStyleTemplateObject } from './types/chart';
3
3
  declare function styleRow(row: RowDataPacket, templates: TableStyleTemplateObject): RowDataPacket;
4
4
  export default styleRow;
@@ -35,4 +35,4 @@ function styleRow(row, templates) {
35
35
  return outRow;
36
36
  }
37
37
  exports.default = styleRow;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0eWxlLXRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLG1DQUFvQztBQUVwQyxvRUFBMEM7QUFDMUMsaUNBQTZCO0FBRTdCLE1BQU0sSUFBSSxHQUFHLElBQUEsZUFBTSxFQUFDLFlBQUcsQ0FBQyxDQUFBO0FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDWCxNQUFNLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUU7SUFDakQsUUFBUSxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Q0FDbkUsQ0FBQyxDQUFBO0FBRUYsU0FBUyw2QkFBNkIsQ0FBQyxHQUFrQixFQUFFLGFBQXFCLEVBQUUsU0FBbUM7SUFDcEgsTUFBTSxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFxQyxDQUFBO0lBQ2hGLElBQUksYUFBYSxJQUFJLFNBQVMsRUFBRTtRQUUvQixNQUFNLEtBQUssR0FBRyxJQUFBLHdCQUFhLEVBQUMsSUFBQSxhQUFLLEVBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNwRixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMzQyxJQUFJO2dCQUNILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTthQUMvQztZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUdiLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2FBQ3ZGO1NBQ0Q7S0FDRDtJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2YsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEdBQWtCLEVBQUUsU0FBbUM7SUFDeEUsTUFBTSxNQUFNLEdBQUcsRUFBbUIsQ0FBQTtJQUNsQyxLQUFLLE1BQU0sVUFBVSxJQUFJLEdBQUcsRUFBRTtRQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsNkJBQTZCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQTtLQUM5RTtJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2QsQ0FBQztBQUVELGtCQUFlLFFBQVEsQ0FBQSJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0eWxlLXRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLG1DQUFvQztBQUVwQyxvRUFBMEM7QUFDMUMsaUNBQTZCO0FBRTdCLE1BQU0sSUFBSSxHQUFHLElBQUEsZUFBTSxFQUFDLFlBQUcsQ0FBQyxDQUFBO0FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDWCxNQUFNLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUU7SUFDakQsUUFBUSxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Q0FDbkUsQ0FBQyxDQUFBO0FBRUYsU0FBUyw2QkFBNkIsQ0FBQyxHQUFrQixFQUFFLGFBQXFCLEVBQUUsU0FBbUM7SUFDcEgsTUFBTSxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFxQyxDQUFBO0lBQ2hGLElBQUksYUFBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWhDLE1BQU0sS0FBSyxHQUFHLElBQUEsd0JBQWEsRUFBQyxJQUFBLGFBQUssRUFBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3BGLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNKLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNoRCxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFHZCxPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUN4RixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFrQixFQUFFLFNBQW1DO0lBQ3hFLE1BQU0sTUFBTSxHQUFHLEVBQW1CLENBQUE7SUFDbEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsNkJBQTZCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMvRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZCxDQUFDO0FBRUQsa0JBQWUsUUFBUSxDQUFBIn0=
@@ -1,3 +1,4 @@
1
+ import type { NumberFormatOptions, MediumDateFormatOptions, LongDateFormatOptions } from '../formatting-templates';
1
2
  export type GoogleDataTableCell = {
2
3
  v?: unknown;
3
4
  f?: string | undefined;
@@ -19,10 +20,77 @@ export type GoogleDataTable = {
19
20
  rows: GoogleDataTableRow[];
20
21
  p?: unknown;
21
22
  };
22
- export type ChartWrapper = {
23
- options: Record<string, unknown>;
23
+ export type ChartWrapper = ({
24
+ options: google.visualization.TreeMapOptions;
24
25
  dataTable?: GoogleDataTable;
25
- chartType: string;
26
+ chartType: 'TreeMap';
27
+ } | {
28
+ options: google.visualization.GeoChartOptions;
29
+ dataTable?: GoogleDataTable;
30
+ chartType: 'GeoChart';
31
+ } | {
32
+ options: google.visualization.ScatterChartOptions;
33
+ dataTable?: GoogleDataTable;
34
+ chartType: 'ScatterChart';
35
+ } | {
36
+ options: google.visualization.ColumnChartOptions;
37
+ dataTable?: GoogleDataTable;
38
+ chartType: 'ColumnChart';
39
+ } | {
40
+ options: google.visualization.HistogramOptions;
41
+ dataTable?: GoogleDataTable;
42
+ chartType: 'HistogramOptions';
43
+ } | {
44
+ options: google.visualization.BarChartOptions;
45
+ dataTable?: GoogleDataTable;
46
+ chartType: 'BarChart';
47
+ } | {
48
+ options: google.visualization.ComboChartOptions;
49
+ dataTable?: GoogleDataTable;
50
+ chartType: 'ComboChart';
51
+ } | {
52
+ options: google.visualization.AreaChartOptions;
53
+ dataTable?: GoogleDataTable;
54
+ chartType: 'AreaChart';
55
+ } | {
56
+ options: google.visualization.SteppedAreaChartOptions;
57
+ dataTable?: GoogleDataTable;
58
+ chartType: 'SteppedAreaChart';
59
+ } | {
60
+ options: google.visualization.LineChartOptions;
61
+ dataTable?: GoogleDataTable;
62
+ chartType: 'LineChart';
63
+ } | {
64
+ options: google.visualization.PieChartOptions;
65
+ dataTable?: GoogleDataTable;
66
+ chartType: 'PieChart';
67
+ } | {
68
+ options: google.visualization.BubbleChartOptions;
69
+ dataTable?: GoogleDataTable;
70
+ chartType: 'BubbleChart';
71
+ } | {
72
+ options: google.visualization.OrgChartOptions;
73
+ dataTable?: GoogleDataTable;
74
+ chartType: 'OrgChart';
75
+ } | {
76
+ options: google.visualization.TimelineOptions;
77
+ dataTable?: GoogleDataTable;
78
+ chartType: 'Timeline';
79
+ } | {
80
+ options: google.visualization.GaugeChartOptions;
81
+ dataTable?: GoogleDataTable;
82
+ chartType: 'GaugeChart';
83
+ } | {
84
+ options: google.visualization.CandlestickChartOptions;
85
+ dataTable?: GoogleDataTable;
86
+ chartType: 'CandlestickChart';
87
+ } | {
88
+ options: google.visualization.TableOptions;
89
+ dataTable?: GoogleDataTable;
90
+ chartType: 'Table';
91
+ }) & {
92
+ height: number;
93
+ width: number;
26
94
  };
27
95
  export type MultiSeriesOptions = {
28
96
  value: string;
@@ -30,12 +98,15 @@ export type MultiSeriesOptions = {
30
98
  groupXAxisBy: string;
31
99
  tooltip?: string;
32
100
  };
101
+ export type FormattingType = 'DateFormat' | 'NumberFormat';
33
102
  export type FormattingRule = {
34
- type: string;
35
- format: string;
103
+ type: 'DateFormat';
104
+ format: LongDateFormatOptions | MediumDateFormatOptions;
105
+ } | {
106
+ type: 'NumberFormat';
107
+ format: NumberFormatOptions;
36
108
  };
37
109
  export type Formatting = Record<string, FormattingRule>;
38
- export type FormattingTemplates = Record<string, FormattingTemplate>;
39
110
  export type FormattingTemplate = {
40
111
  prefix?: string;
41
112
  fractionDigits?: number;
@@ -43,9 +114,9 @@ export type FormattingTemplate = {
43
114
  format?: string;
44
115
  };
45
116
  export type ProcessedFormatting = {
46
- [key: string]: {
47
- type: string;
48
- format: FormattingTemplate | null;
117
+ [key: string]: FormattingRule | {
118
+ type: FormattingType;
119
+ format: null;
49
120
  };
50
121
  };
51
122
  export type TableColumn = {
@@ -54,7 +125,11 @@ export type TableColumn = {
54
125
  class: string;
55
126
  };
56
127
  export type TableRow = {
57
- [key: string]: unknown;
128
+ [key: string]: {
129
+ value: string | number;
130
+ class?: string;
131
+ html?: string;
132
+ };
58
133
  };
59
134
  export type Table = {
60
135
  rows: TableRow[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isoftdata/utility-dashboard-backend",
3
- "version": "2.4.2",
3
+ "version": "2.4.5",
4
4
  "description": "A utility for formatting chart and report data to be usable by the frontend dashboard component.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -15,7 +15,10 @@
15
15
  ],
16
16
  "types": "dist/index.d.ts",
17
17
  "eslintConfig": {
18
- "extends": "@isoftdata/typescript",
18
+ "extends": [
19
+ "@isoftdata/typescript",
20
+ "prettier"
21
+ ],
19
22
  "ignorePatterns": "dist/**",
20
23
  "rules": {
21
24
  "@typescript-eslint/no-var-requires": 0
@@ -35,12 +38,16 @@
35
38
  "to-snake-case": "^1.0.0"
36
39
  },
37
40
  "devDependencies": {
38
- "@isoftdata/eslint-config-typescript": "^1.0.13",
41
+ "@isoftdata/eslint-config-typescript": "^2.0.0",
42
+ "@isoftdata/prettier-config": "^1.0.3",
39
43
  "@types/google.visualization": "^0.0.68",
40
44
  "@types/mysql": "github:types/mysql",
41
45
  "@types/node": "^18.11.18",
42
46
  "eslint": "^7.32.0",
43
47
  "package-preview": "^4.0.0",
44
- "typescript": "^4.9.4"
45
- }
48
+ "prettier": "^3.3.3",
49
+ "type-fest": "^4.26.1",
50
+ "typescript": "^5.6.2"
51
+ },
52
+ "prettier": "@isoftdata/prettier-config"
46
53
  }