@isoftdata/utility-dashboard-backend 3.0.1 → 3.0.3

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.
package/README.md CHANGED
@@ -1,185 +1,185 @@
1
- # utility-dashboard-backend
2
- A backend utility for formatting and loading dashboard chart and report data to be usable by the [frontend dashboard component](https://github.com/ISoft-Data-Systems/ractive-component-web-dashboard).
3
-
4
- ## Installation
5
-
6
- ```bash
7
- npm i @isoftdata/utility-dashboard-backend
8
- ```
9
-
10
- > Breaking change in version 3: ESM style exports
11
-
12
- ## Prerequisites
13
- > Version 3.Y.Z of the frontend component is required for use with version 2.Y.Z of the backend component.
14
- * A MySQL database schema as outlined in [schema.md](schema.md)
15
- * A backend that can fetches rows from the chart, report, and report chart tables from the database with their primary keys. Any json columns should be parsed as objects.
16
- * A connection or pool of connections from the `mysql` NPM module for running the charts' queries
17
- * The [dashboard Ractive component](https://github.com/ISoft-Data-Systems/ractive-component-web-dashboard) on the client
18
-
19
- ## API
20
-
21
- ### formatReportMetadata
22
-
23
- This function returns data in the format expected for the `loadReportMetadata` function on the dashboard client component.
24
-
25
- #### Function signature
26
-
27
- ```js
28
- async formatReportMetadata(mysqlConnection, { report, chartsInReport, session })
29
- ```
30
-
31
- #### Example Usage (From Pro Web `server/chart-loader.js`)
32
-
33
- ```js
34
- async function loadReportMetadata({ dashboardReportId, chartId, session }) {
35
- const report = await db.dashboardReport.loadById({ dashboardReportId }) // gets a report by its id
36
- const chartsInReport = await db.dashboardChart.loadByReport({ dashboardReportId, chartId }) // gets all charts for a specified report, or if `chartId` is specified, only gets that chart for that report.
37
- return await formatReportMetadata(db.pool, { report, chartsInReport, session })
38
- }
39
- ```
40
-
41
- #### mysqlConnection
42
- A connection or pool of connections from the `mysql` npm module.
43
-
44
- #### report
45
-
46
- A report `object`, a single row from the `dashboard_report`/`wa_dashboard_report` table/view. The `parameters` Array from the `json` column should also be parsed from JSON and appended to this object.
47
-
48
- Example:
49
-
50
- ```js
51
- {
52
- dashboardReportId: 1,
53
- reportName: 'report_overview',
54
- reportTitle: 'Overview',
55
- shareType: 'everyone',
56
- shareId: null,
57
- ownerId: null,
58
- parameters: [ // parameters deconstructed from `json` column after parsing
59
- {
60
- name: 'date_range',
61
- type: 'dateRange',
62
- title: 'Date Range',
63
- default: 'This Year'
64
- }
65
- ]
66
- }
67
- ```
68
-
69
- #### chartsInReport
70
-
71
- An `Array` of chart `object`s, one for each chart in the report, multiple rows from the `dashboard_chart`/`wa_dashboard_chart` table/view joined with `dashboard_report_chart`/`wa_dashboard_report_chart` to get the chart's rank.
72
-
73
- Example:
74
-
75
- ```js
76
- [
77
- {
78
- chartId: 10,
79
- name: 'line_sales_over_time_and_previous_period',
80
- title: 'Sales over Time',
81
- supertype: 'google',
82
- formatting: { Sales: [Object] },
83
- multiSeries: {
84
- value: 'Sales',
85
- series: 'Period',
86
- tooltip: 'Tooltip',
87
- groupXAxisBy: 'Date'
88
- },
89
- chartWrapper: { options: [Object], chartType: 'LineChart' },
90
- rank: 1
91
- },
92
- {
93
- chartId: 16,
94
- name: 'map_sales_by_lat_long',
95
- title: 'Sales Map',
96
- supertype: 'google',
97
- formatting: { Sales: [Object] },
98
- chartWrapper: { options: [Object], chartType: 'GeoChart' },
99
- rank: 2
100
- }
101
- ]
102
- ```
103
-
104
- #### session
105
- Session object from the Auth Module
106
-
107
- #### site (optional)
108
- The 'type' of site for the product this is used in. Determines the MySQL table to query for site selection parameters, and used to calculate `siteIdColumn` if that is not specified.
109
- #### siteIdColumn (optional)
110
- The name of the column that stores the site id in the site table. Defaults to `${site}id`.
111
- #### siteNameColumn (optional)
112
- The store name column.
113
-
114
- ### formatChartDataForReport
115
-
116
- This function returns data in the format expected for the `loadChartDataForReport` function on the dashboard client component, including applying any report-specific chart options overrides and running the chart's query.
117
-
118
- #### Function signature
119
-
120
- ```js
121
- async formatChartDataForReport(mysqlConnection, { reportParameters, chart, reportChart, parameterSelectionList, session })
122
- ```
123
-
124
- #### Example usage: (from Pro Web `server/chart-loader.js`)
125
-
126
- ```js
127
- async function loadChartDataForReport ({ dashboardReportId, chartId, parameterSelectionList, session }) {
128
- const report = await db.dashboardReport.loadById({ dashboardReportId }) // get the report object
129
- const chart = await db.dashboardChart.loadById({ chartId }) // get the chart object
130
- const reportChart = await db.dashboardReportChart.loadByReportAndChartId({ chartId, dashboardReportId }) // get the report chart for the rank/overrides
131
- try {
132
- const chartData = await formatChartDataForReport(db.pool, { reportParameters: report.parameters, chart, reportChart, parameterSelectionList, session })
133
- return chartData
134
- } catch (err) {
135
- console.error(err)
136
- return { isErrored: true }
137
- }
138
- }
139
- ```
140
-
141
- #### mysqlConnection
142
- A connection or pool of connections from the `mysql` npm module.
143
-
144
- #### reportParameters
145
- The `parameters` array from a report object.
146
-
147
- #### chartId
148
- The id of a chart row in `wa_dashboard_chart`.
149
-
150
- #### parameterSelectionList
151
- The array of selected parameters sent from the client dashboard.
152
-
153
- #### session
154
- Session object from the Auth Module
155
-
156
- ### loadOutputParameterValues
157
-
158
- This function outputs the report's parameter values in the format expected by the dashboard client and backend. When sending to the client, including `forClient: true` will not include the properties only needed by the backend.
159
-
160
- ### Function signature
161
-
162
- ```js
163
- async function loadOutputParameterValues(mysqlConnection, { definitionList, selectionList = [], forClient = false })
164
- ```
165
-
166
- #### Example Usage
167
-
168
- #### mysqlConnection
169
- A connection or pool of connections from the `mysql` npm module.
170
-
171
- #### definitionList
172
-
173
- The `parameters` property from the `json` column of a row in the `dashboard_report` table.
174
-
175
- #### selectionList
176
-
177
- An array of objects representing the selected parameters sent from the client. Only needed when loading the chart data, not when loading the report "metadata". Each parameter object should match the format specified in [schema.md](schema.md).
178
-
179
- #### forClient
180
-
181
- If this value is truthy, parameters' `queryValues` properties will be excluded, as the client does not need them.
182
-
183
- ### Returns
184
-
185
- An array of objects matching the format outlined in [schema.md](schema.md)
1
+ # utility-dashboard-backend
2
+ A backend utility for formatting and loading dashboard chart and report data to be usable by the [frontend dashboard component](https://github.com/ISoft-Data-Systems/ractive-component-web-dashboard).
3
+
4
+ ## Installation
5
+
6
+ ```bash
7
+ npm i @isoftdata/utility-dashboard-backend
8
+ ```
9
+
10
+ > Breaking change in version 3: ESM style exports
11
+
12
+ ## Prerequisites
13
+ > Version 3.Y.Z of the frontend component is required for use with version 2.Y.Z of the backend component.
14
+ * A MySQL database schema as outlined in [schema.md](schema.md)
15
+ * A backend that can fetches rows from the chart, report, and report chart tables from the database with their primary keys. Any json columns should be parsed as objects.
16
+ * A connection or pool of connections from the `mysql` NPM module for running the charts' queries
17
+ * The [dashboard Ractive component](https://github.com/ISoft-Data-Systems/ractive-component-web-dashboard) on the client
18
+
19
+ ## API
20
+
21
+ ### formatReportMetadata
22
+
23
+ This function returns data in the format expected for the `loadReportMetadata` function on the dashboard client component.
24
+
25
+ #### Function signature
26
+
27
+ ```js
28
+ async formatReportMetadata(mysqlConnection, { report, chartsInReport, session })
29
+ ```
30
+
31
+ #### Example Usage (From Pro Web `server/chart-loader.js`)
32
+
33
+ ```js
34
+ async function loadReportMetadata({ dashboardReportId, chartId, session }) {
35
+ const report = await db.dashboardReport.loadById({ dashboardReportId }) // gets a report by its id
36
+ const chartsInReport = await db.dashboardChart.loadByReport({ dashboardReportId, chartId }) // gets all charts for a specified report, or if `chartId` is specified, only gets that chart for that report.
37
+ return await formatReportMetadata(db.pool, { report, chartsInReport, session })
38
+ }
39
+ ```
40
+
41
+ #### mysqlConnection
42
+ A connection or pool of connections from the `mysql` npm module.
43
+
44
+ #### report
45
+
46
+ A report `object`, a single row from the `dashboard_report`/`wa_dashboard_report` table/view. The `parameters` Array from the `json` column should also be parsed from JSON and appended to this object.
47
+
48
+ Example:
49
+
50
+ ```js
51
+ {
52
+ dashboardReportId: 1,
53
+ reportName: 'report_overview',
54
+ reportTitle: 'Overview',
55
+ shareType: 'everyone',
56
+ shareId: null,
57
+ ownerId: null,
58
+ parameters: [ // parameters deconstructed from `json` column after parsing
59
+ {
60
+ name: 'date_range',
61
+ type: 'dateRange',
62
+ title: 'Date Range',
63
+ default: 'This Year'
64
+ }
65
+ ]
66
+ }
67
+ ```
68
+
69
+ #### chartsInReport
70
+
71
+ An `Array` of chart `object`s, one for each chart in the report, multiple rows from the `dashboard_chart`/`wa_dashboard_chart` table/view joined with `dashboard_report_chart`/`wa_dashboard_report_chart` to get the chart's rank.
72
+
73
+ Example:
74
+
75
+ ```js
76
+ [
77
+ {
78
+ chartId: 10,
79
+ name: 'line_sales_over_time_and_previous_period',
80
+ title: 'Sales over Time',
81
+ supertype: 'google',
82
+ formatting: { Sales: [Object] },
83
+ multiSeries: {
84
+ value: 'Sales',
85
+ series: 'Period',
86
+ tooltip: 'Tooltip',
87
+ groupXAxisBy: 'Date'
88
+ },
89
+ chartWrapper: { options: [Object], chartType: 'LineChart' },
90
+ rank: 1
91
+ },
92
+ {
93
+ chartId: 16,
94
+ name: 'map_sales_by_lat_long',
95
+ title: 'Sales Map',
96
+ supertype: 'google',
97
+ formatting: { Sales: [Object] },
98
+ chartWrapper: { options: [Object], chartType: 'GeoChart' },
99
+ rank: 2
100
+ }
101
+ ]
102
+ ```
103
+
104
+ #### session
105
+ Session object from the Auth Module
106
+
107
+ #### site (optional)
108
+ The 'type' of site for the product this is used in. Determines the MySQL table to query for site selection parameters, and used to calculate `siteIdColumn` if that is not specified.
109
+ #### siteIdColumn (optional)
110
+ The name of the column that stores the site id in the site table. Defaults to `${site}id`.
111
+ #### siteNameColumn (optional)
112
+ The store name column.
113
+
114
+ ### formatChartDataForReport
115
+
116
+ This function returns data in the format expected for the `loadChartDataForReport` function on the dashboard client component, including applying any report-specific chart options overrides and running the chart's query.
117
+
118
+ #### Function signature
119
+
120
+ ```js
121
+ async formatChartDataForReport(mysqlConnection, { reportParameters, chart, reportChart, parameterSelectionList, session })
122
+ ```
123
+
124
+ #### Example usage: (from Pro Web `server/chart-loader.js`)
125
+
126
+ ```js
127
+ async function loadChartDataForReport ({ dashboardReportId, chartId, parameterSelectionList, session }) {
128
+ const report = await db.dashboardReport.loadById({ dashboardReportId }) // get the report object
129
+ const chart = await db.dashboardChart.loadById({ chartId }) // get the chart object
130
+ const reportChart = await db.dashboardReportChart.loadByReportAndChartId({ chartId, dashboardReportId }) // get the report chart for the rank/overrides
131
+ try {
132
+ const chartData = await formatChartDataForReport(db.pool, { reportParameters: report.parameters, chart, reportChart, parameterSelectionList, session })
133
+ return chartData
134
+ } catch (err) {
135
+ console.error(err)
136
+ return { isErrored: true }
137
+ }
138
+ }
139
+ ```
140
+
141
+ #### mysqlConnection
142
+ A connection or pool of connections from the `mysql` npm module.
143
+
144
+ #### reportParameters
145
+ The `parameters` array from a report object.
146
+
147
+ #### chartId
148
+ The id of a chart row in `wa_dashboard_chart`.
149
+
150
+ #### parameterSelectionList
151
+ The array of selected parameters sent from the client dashboard.
152
+
153
+ #### session
154
+ Session object from the Auth Module
155
+
156
+ ### loadOutputParameterValues
157
+
158
+ This function outputs the report's parameter values in the format expected by the dashboard client and backend. When sending to the client, including `forClient: true` will not include the properties only needed by the backend.
159
+
160
+ ### Function signature
161
+
162
+ ```js
163
+ async function loadOutputParameterValues(mysqlConnection, { definitionList, selectionList = [], forClient = false })
164
+ ```
165
+
166
+ #### Example Usage
167
+
168
+ #### mysqlConnection
169
+ A connection or pool of connections from the `mysql` npm module.
170
+
171
+ #### definitionList
172
+
173
+ The `parameters` property from the `json` column of a row in the `dashboard_report` table.
174
+
175
+ #### selectionList
176
+
177
+ An array of objects representing the selected parameters sent from the client. Only needed when loading the chart data, not when loading the report "metadata". Each parameter object should match the format specified in [schema.md](schema.md).
178
+
179
+ #### forClient
180
+
181
+ If this value is truthy, parameters' `queryValues` properties will be excluded, as the client does not need them.
182
+
183
+ ### Returns
184
+
185
+ An array of objects matching the format outlined in [schema.md](schema.md)
File without changes
File without changes
File without changes
File without changes
package/dist/index.d.ts CHANGED
@@ -5,8 +5,8 @@ import type { MultiSeriesOptions, Formatting, Chart, Table, GoogleDataTable, Pro
5
5
  import type { Connection, RowDataPacket } from 'mysql';
6
6
  import type { Report, ReportInput } from './types/report';
7
7
  export * as formatterTemplates from './formatting-templates.js';
8
+ export type * from './types';
8
9
  export { handleFormattingTemplates } from './chart-helper.js';
9
- export type { ReportInput } from './types/report';
10
10
  export type CustomDataSourceFunction = (query: string, values?: unknown[]) => Promise<{
11
11
  results: RowDataPacket[];
12
12
  fields: QueryFieldsObject;
package/dist/index.js CHANGED
@@ -333,4 +333,4 @@ export async function formatChartDataForReport(mysqlConnection, { reportParamete
333
333
  throw err;
334
334
  }
335
335
  }
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzdDLE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsNkJBQTZCLEVBQzdCLGdCQUFnQixFQUNoQix5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIseUJBQXlCLEdBRXpCLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzdELE9BQU8sRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQy9DLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBTWpDLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQU03RCxNQUFNLDZCQUE2QixHQUFHLENBQUMsU0FBaUIsRUFBRSxTQUEwQixFQUFFLEVBQUU7SUFDdkYsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNuQixLQUFLLFVBQVU7Z0JBRWQsU0FBUyxHQUFHLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUNwRCxNQUFLO1lBQ04sS0FBSyxTQUFTO2dCQUViLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dCQUNyRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzVCLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFBO2dCQUM1QixDQUFDO2dCQUNELE1BQUs7WUFDTjtnQkFFQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUN2RSxDQUFDO0lBQ0YsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2pCLENBQUMsQ0FBQTtBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsZUFBMkIsRUFBRSxLQUFZLEVBQUUsV0FBK0MsRUFBRSxnQkFBa0Q7SUFFMUssSUFBSSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUNwRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFJRCxVQUFVLEdBQUcsVUFBVSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsS0FBSyxXQUFXLElBQUksVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFBO0lBRTNGLElBQUksU0FBUyxHQUFHLEVBQUUsRUFDakIsbUJBQW1CLEdBQUcsRUFBRSxDQUFBO0lBQ3pCLElBQUksQ0FBQztRQUNKLE1BQU0sK0JBQStCLEdBQUcsTUFBTSxtQ0FBbUMsQ0FBQyxlQUFlLEVBQUU7WUFDbEcsS0FBSyxFQUFFLFdBQVc7WUFDbEIsV0FBVztZQUNYLFVBQVU7WUFDVixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7WUFDakMsVUFBVTtZQUNWLEtBQUs7WUFDTCxnQkFBZ0I7U0FDaEIsQ0FBQyxDQUFBO1FBQ0YsU0FBUyxHQUFHLCtCQUErQixDQUFDLFNBQVMsQ0FBQTtRQUNyRCxtQkFBbUIsR0FBRywrQkFBK0IsQ0FBQyxtQkFBbUIsQ0FBQTtJQUMxRSxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQTtRQUM5RCxNQUFNLEdBQUcsQ0FBQTtJQUNWLENBQUM7SUFFRCxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPO1lBQ04sR0FBRyxPQUFPO1lBQ1YsU0FBUztZQUNULFlBQVk7WUFDWixLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFJLFNBQW1CLEVBQUU7WUFDNUMsVUFBVSxFQUFFLG1CQUFtQjtTQUMvQixDQUFBO0lBQ0YsQ0FBQztTQUFNLElBQUksU0FBUyxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLE9BQU87WUFDTixHQUFHLE9BQU87WUFDVixTQUFTO1lBQ1QsWUFBWTtZQUNaLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRTtZQUNkLFVBQVUsRUFBRSxtQkFBbUI7U0FDL0IsQ0FBQTtJQUNGLENBQUM7U0FBTSxDQUFDO1FBQ1AsT0FBTztZQUNOLEdBQUcsT0FBTztZQUNWLFVBQVU7WUFDVixTQUFTO1lBQ1QsWUFBWSxFQUFFO2dCQUNiLEdBQUcsWUFBWTtnQkFDZixTQUFTLEVBQUUsU0FBNEI7YUFDdkM7WUFDRCxVQUFVLEVBQUUsbUJBQW1CO1NBQy9CLENBQUE7SUFDRixDQUFDO0FBQ0YsQ0FBQztBQWdCRCxNQUFNLENBQUMsS0FBSyxVQUFVLG1DQUFtQyxDQUN4RCxlQUEyQixFQUMzQixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBVyxFQUFFLGdCQUFnQixFQUE4QztJQU1qSyxJQUFJLE9BQU8sR0FBb0IsRUFBRSxDQUFBO0lBQ2pDLElBQUksTUFBTSxHQUFzQixFQUFFLENBQUE7SUFFbEMsSUFBSSxPQUFPLGdCQUFnQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBRTVDLENBQUM7UUFBQSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNyRixDQUFDO1NBQU0sSUFBSSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUFBLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVELElBQUksSUFBSSxHQUFHLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUU1RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFBQSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztZQUNuRCxJQUFJO1lBQ0osYUFBYSxFQUFFLFdBQVc7WUFDMUIsVUFBVTtZQUNWLE1BQU07U0FDTixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRWpFLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUseUJBQXlCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUE7SUFDOUgsQ0FBQztJQUVELElBQUksU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFJN0QsSUFBSSxVQUFVLElBQUksU0FBUyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQzdDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVELE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUE7QUFDbEQsQ0FBQztBQU9ELE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYSxDQUFDLGVBQTJCLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUF3QjtJQUNoSixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxtQ0FBbUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUM1SSxPQUFPLFNBQTRCLENBQUE7QUFDcEMsQ0FBQztBQUVELE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxlQUEyQixFQUFFLGVBQXdCLEVBQUUsYUFBeUIsRUFBRSxFQUFFLEVBQUU7SUFDbkgsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGVBQWUsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBRW5HLE9BQU8sQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQXVCLEVBQW1CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2hJLENBQUMsQ0FBQTtBQWNELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFhLEVBQXVELEVBQUU7SUFDcEcsT0FBTztRQUNOLFFBQVE7UUFDUixPQUFPO1FBQ1AsV0FBVztRQUNYLGFBQWE7UUFDYixjQUFjO1FBQ2QsY0FBYztRQUNkLGVBQWU7UUFDZixXQUFXO1FBQ1gsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLFFBQVE7S0FDUixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM5QyxlQUEyQixFQUMzQixFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUUsYUFBYSxHQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUcsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQW9DO0lBR3ZKLElBQUksQ0FBQyxDQUFDLGNBQWMsWUFBWSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEVBQUUsQ0FBQTtJQUNWLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBK0IsRUFBRSxDQUFBO0lBRXRELEtBQUssTUFBTSxVQUFVLElBQUksY0FBYyxFQUFFLENBQUM7UUFDekMsTUFBTSwwQkFBMEIsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFOUYsSUFBSSxjQUFjLEdBQTZCO1lBQzlDLEdBQUcsVUFBVTtZQUNiLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxJQUFJO1lBQzFDLFdBQVcsRUFBRSxFQUFFO1NBQ2YsQ0FBQTtRQUVELE1BQU0sS0FBSyxHQUFHLDBCQUEwQixFQUFFLEtBQUssSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFBO1FBRXJFLElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN6QyxjQUFjLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUM3QixDQUFDO1FBRUQsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1lBQ2pGLGNBQWMsR0FBRztnQkFDaEIsR0FBRyxjQUFjO2dCQUNqQixLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFHLDBCQUF5RSxFQUFFLEtBQUssSUFBSSxDQUFDLG1CQUFtQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDM0wsQ0FBQTtZQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDaEIsY0FBYyxDQUFDLFdBQVcsR0FBRztvQkFDNUIsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSTtvQkFDaEUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtpQkFDNUQsQ0FBQTtZQUNGLENBQUM7UUFDRixDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzVDLGNBQWMsR0FBRztnQkFDaEIsR0FBRyxjQUFjO2dCQUNqQixJQUFJLEVBQUUsV0FBVztnQkFDakIsZUFBZSxFQUFFLFVBQVUsRUFBRSxlQUFlO2dCQUM1QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7YUFDbEMsQ0FBQTtZQUlELGNBQWMsQ0FBQyxVQUFVLEdBQUcsTUFBTSxjQUFjLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRTVILElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLGNBQWMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQTtZQUN0RSxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUV0RyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2hCLGNBQWMsQ0FBQyxXQUFXLEdBQUc7b0JBRTVCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSztpQkFDOUYsQ0FBQTtZQUNGLENBQUM7UUFDRixDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQ2hELGNBQWMsR0FBRztnQkFDaEIsR0FBRyxjQUFjO2dCQUNqQixJQUFJLEVBQUUsZUFBZTtnQkFDckIsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO2dCQUNsQyxVQUFVLEVBQUUsRUFBRTthQUNkLENBQUE7WUFFRCxjQUFjLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFBO1lBRXJGLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFBO1lBQzVHLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtZQUNuRixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRXBELElBQUksY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUUvQixjQUFjLENBQUMsVUFBVSxHQUFHLE1BQU0sS0FBSyxDQUFDLGVBQWUsRUFBRTtvQkFDeEQsR0FBRyxFQUFFLFVBQVUsWUFBWSxXQUFXLGNBQWMscUJBQXFCLGFBQWEsd0NBQXdDLFlBQVksR0FBRztvQkFDN0ksTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDO2lCQUN0RCxDQUFDLENBQUE7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBRVAsY0FBYyxDQUFDLFVBQVUsR0FBRyxNQUFNLEtBQUssQ0FBQyxlQUFlLEVBQUU7b0JBQ3hELEdBQUcsRUFBRSxVQUFVLFlBQVksV0FBVyxjQUFjLHFCQUFxQixhQUFhLDJDQUEyQyxZQUFZLEdBQUc7b0JBQ2hKLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7aUJBQy9CLENBQUMsQ0FBQTtZQUNILENBQUM7WUFHRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxjQUFjLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQ3JHLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzNFLENBQUM7WUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMzRyxjQUFjLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDckUsQ0FBQztZQUVELElBQUksQ0FBQyxTQUFTLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDNUQsY0FBYyxDQUFDLFdBQVcsR0FBRztvQkFFNUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDO2lCQUN6RyxDQUFBO1lBQ0YsQ0FBQztpQkFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3ZCLGNBQWMsQ0FBQyxXQUFXLEdBQUc7b0JBQzVCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztpQkFDN0MsQ0FBQTtZQUNGLENBQUM7UUFDRixDQUFDO2FBQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUNuRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2hCLGNBQWMsQ0FBQyxXQUFXLEdBQUc7b0JBQzVCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsQ0FBQyxLQUFLO2lCQUMzQyxDQUFBO1lBQ0YsQ0FBQztRQUNGLENBQUM7YUFBTSxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFFOUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWtCLENBQUE7WUFDakUsY0FBYyxDQUFDLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUVoRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2hCLGNBQWMsQ0FBQyxXQUFXLEdBQUc7b0JBQzVCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsQ0FBQyxLQUFLO2lCQUMzQyxDQUFBO1lBQ0YsQ0FBQztRQUNGLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDdEUsQ0FBQztRQUVELGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFBO0FBQ3ZCLENBQUM7QUFHRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFBO0FBUTVDLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUFtQixFQUFFLGVBQTJDO0lBRWpHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQixPQUFPO1lBQ04sR0FBRyxFQUFFLEVBQUU7WUFDUCxNQUFNLEVBQUUsRUFBRTtTQUNWLENBQUE7SUFDRixDQUFDO0lBQ0QsTUFBTSxvQkFBb0IsR0FBOEIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMzRixPQUFPLEdBQUcsQ0FBQyxXQUFXO1lBQ3JCLENBQUMsQ0FBQztnQkFDQSxHQUFHLEdBQUc7Z0JBQ04sR0FBRyxHQUFHLENBQUMsV0FBVzthQUNsQjtZQUNGLENBQUMsQ0FBQyxHQUFHLENBQUE7SUFDUCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUVqSCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUV4RixPQUFPO1FBQ04sR0FBRyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQztRQUM3QyxNQUFNLEVBQUUsZUFBZTtLQUN2QixDQUFBO0FBQ0YsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBVyxFQUFFLGVBQTJDO0lBRXZGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNWLE9BQU8sRUFBRSxDQUFBO0lBQ1YsQ0FBQztJQUNELE1BQU0sb0JBQW9CLEdBQThCLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDM0YsT0FBTyxHQUFHLENBQUMsV0FBVztZQUNyQixDQUFDLENBQUM7Z0JBQ0EsR0FBRyxHQUFHO2dCQUNOLEdBQUcsR0FBRyxDQUFDLFdBQVc7YUFDbEI7WUFDRixDQUFDLENBQUMsR0FBRyxDQUFBO0lBQ1AsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFFekcsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzNELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUVQLE9BQU8sWUFBWSxDQUFBO0FBQ3BCLENBQUM7QUFXRCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUN6QyxlQUEyQixFQUMzQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxHQUFHLEVBQWEsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBK0I7SUFFcEgsSUFBSSxDQUFDO1FBQ0osTUFBTSxlQUFlLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxlQUFlLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUE7UUFFN0ssT0FBTztZQUNOLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7WUFDM0MsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQ3ZCLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVztZQUN6QixNQUFNLEVBQUUsY0FBYztZQUN0QixlQUFlO1lBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUI7WUFDL0MsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRTtTQUNyQyxDQUFBO0lBQ0YsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLE1BQU0sR0FBRyxDQUFBO0lBQ1YsQ0FBQztBQUNGLENBQUM7QUFtQkQsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FDN0MsZUFBMkIsRUFDM0IsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sR0FBRyxFQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQW1DO0lBRWhMLElBQUksQ0FBQztRQUNKLE1BQU0sZUFBZSxHQUFHLE1BQU0seUJBQXlCLENBQUMsZUFBZSxFQUFFLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFBO1FBQ2xNLElBQUksV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFFeEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFBO1lBQzVFLFdBQVcsQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUNyRCxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBVSxDQUFBO1FBQy9FLE9BQU8sTUFBTSxhQUFhLENBQ3pCLGVBQWUsRUFDZjtZQUNDLEdBQUcsYUFBYTtZQUNoQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7WUFDdEIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxhQUFhO1lBQ3hDLFdBQVcsRUFBRSxhQUFhLENBQUMsV0FBVyxJQUFJLEVBQUU7U0FDNUMsRUFDRCxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxFQUMvQyxnQkFBZ0IsQ0FDaEIsQ0FBQTtJQUNGLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNsQixNQUFNLEdBQUcsQ0FBQTtJQUNWLENBQUM7QUFDRixDQUFDIn0=
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzdDLE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsNkJBQTZCLEVBQzdCLGdCQUFnQixFQUNoQix5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIseUJBQXlCLEdBRXpCLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzdELE9BQU8sRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQy9DLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBTWpDLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwyQkFBMkIsQ0FBQTtBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUs3RCxNQUFNLDZCQUE2QixHQUFHLENBQUMsU0FBaUIsRUFBRSxTQUEwQixFQUFFLEVBQUU7SUFDdkYsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNuQixLQUFLLFVBQVU7Z0JBRWQsU0FBUyxHQUFHLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUNwRCxNQUFLO1lBQ04sS0FBSyxTQUFTO2dCQUViLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dCQUNyRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFF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
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- import type { NumberFormatOptions, MediumDateFormatOptions, LongDateFormatOptions } from "../formatting-templates";
1
+ import type { NumberFormatOptions, MediumDateFormatOptions, LongDateFormatOptions } from '../formatting-templates';
2
2
  export type GoogleDataTableCell = {
3
3
  v?: unknown;
4
4
  f?: string | undefined;
@@ -27,71 +27,71 @@ interface WidthAndHeight {
27
27
  export type ChartWrapper = {
28
28
  options: google.visualization.TreeMapOptions & WidthAndHeight;
29
29
  dataTable?: GoogleDataTable;
30
- chartType: "TreeMap";
30
+ chartType: 'TreeMap';
31
31
  } | {
32
32
  options: google.visualization.GeoChartOptions & WidthAndHeight;
33
33
  dataTable?: GoogleDataTable;
34
- chartType: "GeoChart";
34
+ chartType: 'GeoChart';
35
35
  } | {
36
36
  options: google.visualization.ScatterChartOptions & WidthAndHeight;
37
37
  dataTable?: GoogleDataTable;
38
- chartType: "ScatterChart";
38
+ chartType: 'ScatterChart';
39
39
  } | {
40
40
  options: google.visualization.ColumnChartOptions & WidthAndHeight;
41
41
  dataTable?: GoogleDataTable;
42
- chartType: "ColumnChart";
42
+ chartType: 'ColumnChart';
43
43
  } | {
44
44
  options: google.visualization.HistogramOptions & WidthAndHeight;
45
45
  dataTable?: GoogleDataTable;
46
- chartType: "HistogramOptions";
46
+ chartType: 'HistogramOptions';
47
47
  } | {
48
48
  options: google.visualization.BarChartOptions & WidthAndHeight;
49
49
  dataTable?: GoogleDataTable;
50
- chartType: "BarChart";
50
+ chartType: 'BarChart';
51
51
  } | {
52
52
  options: google.visualization.ComboChartOptions & WidthAndHeight;
53
53
  dataTable?: GoogleDataTable;
54
- chartType: "ComboChart";
54
+ chartType: 'ComboChart';
55
55
  } | {
56
56
  options: google.visualization.AreaChartOptions & WidthAndHeight;
57
57
  dataTable?: GoogleDataTable;
58
- chartType: "AreaChart";
58
+ chartType: 'AreaChart';
59
59
  } | {
60
60
  options: google.visualization.SteppedAreaChartOptions & WidthAndHeight;
61
61
  dataTable?: GoogleDataTable;
62
- chartType: "SteppedAreaChart";
62
+ chartType: 'SteppedAreaChart';
63
63
  } | {
64
64
  options: google.visualization.LineChartOptions & WidthAndHeight;
65
65
  dataTable?: GoogleDataTable;
66
- chartType: "LineChart";
66
+ chartType: 'LineChart';
67
67
  } | {
68
68
  options: google.visualization.PieChartOptions & WidthAndHeight;
69
69
  dataTable?: GoogleDataTable;
70
- chartType: "PieChart";
70
+ chartType: 'PieChart';
71
71
  } | {
72
72
  options: google.visualization.BubbleChartOptions & WidthAndHeight;
73
73
  dataTable?: GoogleDataTable;
74
- chartType: "BubbleChart";
74
+ chartType: 'BubbleChart';
75
75
  } | {
76
76
  options: google.visualization.OrgChartOptions & WidthAndHeight;
77
77
  dataTable?: GoogleDataTable;
78
- chartType: "OrgChart";
78
+ chartType: 'OrgChart';
79
79
  } | {
80
80
  options: google.visualization.TimelineOptions & WidthAndHeight;
81
81
  dataTable?: GoogleDataTable;
82
- chartType: "Timeline";
82
+ chartType: 'Timeline';
83
83
  } | {
84
84
  options: google.visualization.GaugeChartOptions & WidthAndHeight;
85
85
  dataTable?: GoogleDataTable;
86
- chartType: "GaugeChart";
86
+ chartType: 'GaugeChart';
87
87
  } | {
88
88
  options: google.visualization.CandlestickChartOptions & WidthAndHeight;
89
89
  dataTable?: GoogleDataTable;
90
- chartType: "CandlestickChart";
90
+ chartType: 'CandlestickChart';
91
91
  } | {
92
92
  options: google.visualization.TableOptions & WidthAndHeight;
93
93
  dataTable?: GoogleDataTable;
94
- chartType: "Table";
94
+ chartType: 'Table';
95
95
  };
96
96
  export type MultiSeriesOptions = {
97
97
  value: string;
@@ -99,12 +99,12 @@ export type MultiSeriesOptions = {
99
99
  groupXAxisBy: string;
100
100
  tooltip?: string;
101
101
  };
102
- export type FormattingType = "DateFormat" | "NumberFormat";
102
+ export type FormattingType = 'DateFormat' | 'NumberFormat';
103
103
  export type FormattingRule = {
104
- type: "DateFormat";
104
+ type: 'DateFormat';
105
105
  format: LongDateFormatOptions | MediumDateFormatOptions;
106
106
  } | {
107
- type: "NumberFormat";
107
+ type: 'NumberFormat';
108
108
  format: NumberFormatOptions;
109
109
  };
110
110
  export type Formatting = Record<string, FormattingRule>;
@@ -147,8 +147,8 @@ export type TableStyleTemplate = {
147
147
  html?: string;
148
148
  [key: string]: string | undefined;
149
149
  };
150
- export type ChartSuperType = "google" | "table" | "embed";
151
- export type ChartBase = {
150
+ export type ChartSuperType = 'google' | 'table' | 'embed';
151
+ export interface ChartBase {
152
152
  chartId: number;
153
153
  query: string;
154
154
  multiSeries?: MultiSeriesOptions;
@@ -168,17 +168,17 @@ export type ChartBase = {
168
168
  rank?: number;
169
169
  reportChartId?: number;
170
170
  url?: string;
171
- };
172
- type GoogleChart = ChartBase & {
173
- supertype: "google";
174
- };
175
- type TableChart = ChartBase & {
176
- supertype: "table";
177
- table: NonNullable<ChartBase["table"]>;
178
- };
179
- type EmbedChart = ChartBase & {
180
- supertype: "embed";
181
- url: string;
182
- };
171
+ }
172
+ interface GoogleChart extends ChartBase {
173
+ supertype: 'google';
174
+ }
175
+ interface TableChart extends ChartBase {
176
+ supertype: 'table';
177
+ table: NonNullable<ChartBase['table']>;
178
+ }
179
+ interface EmbedChart extends ChartBase {
180
+ supertype: 'embed';
181
+ url: NonNullable<ChartBase['url']>;
182
+ }
183
183
  export type Chart = GoogleChart | TableChart | EmbedChart;
184
184
  export {};
File without changes
@@ -0,0 +1,4 @@
1
+ export type * from './chart';
2
+ export type * from './parameter';
3
+ export type * from './report';
4
+ export type * from './session';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,55 +1,57 @@
1
1
  {
2
- "name": "@isoftdata/utility-dashboard-backend",
3
- "version": "3.0.1",
4
- "description": "A utility for formatting chart and report data to be usable by the frontend dashboard component.",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1",
9
- "build": "tsc",
10
- "prepublishOnly": "npm run build"
11
- },
12
- "author": "Charles Kaup",
13
- "license": "ISC",
14
- "files": [
15
- "dist/**/*.*"
16
- ],
17
- "types": "dist/index.d.ts",
18
- "eslintConfig": {
19
- "extends": [
20
- "@isoftdata/typescript",
21
- "prettier"
22
- ],
23
- "ignorePatterns": "dist/**",
24
- "rules": {
25
- "@typescript-eslint/no-var-requires": 0
26
- }
27
- },
28
- "dependencies": {
29
- "@isoftdata/utility-date-time": "^4.0.1",
30
- "@isoftdata/utility-db": "^3.2.1",
31
- "@types/to-snake-case": "^1.0.2",
32
- "camelcase": "^6.3.0",
33
- "date-fns": "^3.6.0",
34
- "deepmerge": "^4.2.2",
35
- "klona": "^2.0.5",
36
- "mathjs": "^11.5.0",
37
- "mysql": "^2.18.1",
38
- "snakecase-keys": "^5.4.4",
39
- "snakeize": "^0.1.0",
40
- "to-snake-case": "^1.0.0"
41
- },
42
- "devDependencies": {
43
- "@isoftdata/eslint-config-typescript": "^2.0.0",
44
- "@isoftdata/prettier-config": "^1.0.3",
45
- "@types/google.visualization": "^0.0.68",
46
- "@types/mysql": "github:types/mysql",
47
- "@types/node": "^18.11.18",
48
- "eslint": "^7.32.0",
49
- "package-preview": "^4.0.0",
50
- "prettier": "^3.3.3",
51
- "type-fest": "^4.26.1",
52
- "typescript": "^5.6.2"
53
- },
54
- "prettier": "@isoftdata/prettier-config"
55
- }
2
+ "name": "@isoftdata/utility-dashboard-backend",
3
+ "version": "3.0.3",
4
+ "description": "A utility for formatting chart and report data to be usable by the frontend dashboard component.",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "author": "Charles Kaup",
8
+ "license": "ISC",
9
+ "files": [
10
+ "dist/**/*.*"
11
+ ],
12
+ "types": "dist/index.d.ts",
13
+ "eslintConfig": {
14
+ "extends": [
15
+ "@isoftdata/typescript",
16
+ "prettier"
17
+ ],
18
+ "ignorePatterns": "dist/**",
19
+ "rules": {
20
+ "@typescript-eslint/no-var-requires": 0
21
+ }
22
+ },
23
+ "dependencies": {
24
+ "@isoftdata/utility-date-time": "^4.0.1",
25
+ "@isoftdata/utility-db": "^3.2.1",
26
+ "@types/to-snake-case": "^1.0.2",
27
+ "camelcase": "^6.3.0",
28
+ "date-fns": "^3.6.0",
29
+ "deepmerge": "^4.2.2",
30
+ "klona": "^2.0.5",
31
+ "mathjs": "^11.5.0",
32
+ "mysql": "^2.18.1",
33
+ "snakecase-keys": "^5.4.4",
34
+ "snakeize": "^0.1.0",
35
+ "to-snake-case": "^1.0.0"
36
+ },
37
+ "devDependencies": {
38
+ "@isoftdata/eslint-config-typescript": "^2.0.0",
39
+ "@isoftdata/prettier-config": "^1.0.3",
40
+ "@types/google.visualization": "^0.0.68",
41
+ "@types/mysql": "github:types/mysql",
42
+ "@types/node": "^18.11.18",
43
+ "eslint": "^7.32.0",
44
+ "package-preview": "^4.0.0",
45
+ "prettier": "^3.3.3",
46
+ "type-fest": "^4.26.1",
47
+ "typescript": "^5.6.2"
48
+ },
49
+ "prettier": "@isoftdata/prettier-config",
50
+ "engines": {
51
+ "pnpm": "10.x"
52
+ },
53
+ "scripts": {
54
+ "test": "echo \"Error: no test specified\" && exit 1",
55
+ "build": "tsc"
56
+ }
57
+ }