@quillsql/react 2.14.12 → 2.14.13

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.
@@ -197,7 +197,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
197
197
  const [pivotData, setPivotData] = (0, react_1.useState)(null);
198
198
  const [numberOfRows, setNumberOfRows] = (0, react_1.useState)(0);
199
199
  const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
200
- const reportColumnsToStateColumns = (() => {
200
+ const reportColumnsToStateColumns = (0, react_1.useMemo)(() => {
201
201
  const positionMap = {};
202
202
  columns.forEach((column, index) => {
203
203
  positionMap[column.field] = index;
@@ -213,7 +213,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
213
213
  const posB = positionMap[b.field];
214
214
  return posA && posB ? posA - posB : 0;
215
215
  });
216
- })();
216
+ }, [columns, reportColumns]);
217
217
  // Pivot form states
218
218
  const [pivotRowField, setPivotRowField] = (0, react_1.useState)(undefined);
219
219
  const [pivotColumnField, setPivotColumnField] = (0, react_1.useState)(undefined);
@@ -1,12 +1,15 @@
1
1
  import { QuillReport } from '../models/Report';
2
+ interface DownloadOptions {
3
+ usePivotRows?: boolean;
4
+ }
2
5
  export declare const useExport: (reportId?: string, { CustomDocumentComponent, maximumRowsPerPage, sectionField, }?: {
3
6
  CustomDocumentComponent?: (props: QuillPDFProps) => JSX.Element;
4
7
  maximumRowsPerPage?: number;
5
8
  sectionField?: string;
6
9
  }) => {
7
- downloadPDF: () => Promise<void>;
10
+ downloadPDF: (downloadOptions?: DownloadOptions) => Promise<void>;
8
11
  isPDFLoading: boolean;
9
- downloadCSV: () => Promise<void>;
12
+ downloadCSV: (downloadOptions?: DownloadOptions) => Promise<void>;
10
13
  isCSVLoading: boolean;
11
14
  };
12
15
  interface QuillPDFProps {
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CAiRvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkE/C,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;CA2RvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -98,7 +98,7 @@ sectionField, } = {}) => {
98
98
  };
99
99
  }
100
100
  return {
101
- downloadCSV: async () => {
101
+ downloadCSV: async (downloadOptions) => {
102
102
  if (!client) {
103
103
  return;
104
104
  }
@@ -111,13 +111,17 @@ sectionField, } = {}) => {
111
111
  dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
112
112
  []), reportId, getToken, tenants, flags, schemaData?.customFields);
113
113
  (0, csv_1.downloadCSV)({
114
- rows: resp.pivot && resp.pivotRows ? resp.pivotRows : resp.rows,
115
- fields: resp.pivot && resp.pivotColumns ? resp.pivotColumns : resp.columns,
114
+ rows: resp.pivot && resp.pivotRows && downloadOptions?.usePivotRows
115
+ ? resp.pivotRows
116
+ : resp.rows,
117
+ fields: resp.pivot && resp.pivotColumns && downloadOptions?.usePivotRows
118
+ ? resp.pivotColumns
119
+ : resp.columns,
116
120
  name: resp.name,
117
121
  });
118
122
  setIsCSVLoading(false);
119
123
  },
120
- downloadPDF: async () => {
124
+ downloadPDF: async (downloadOptions) => {
121
125
  setIsPDFLoading(true);
122
126
  const filters = specificReportFilters.length > 0
123
127
  ? specificReportFilters
@@ -138,7 +142,10 @@ sectionField, } = {}) => {
138
142
  return;
139
143
  }
140
144
  const report = fetchedReport;
141
- if (report.pivot && report.pivotRows && report.pivotColumns) {
145
+ if (report.pivot &&
146
+ report.pivotRows &&
147
+ report.pivotColumns &&
148
+ downloadOptions?.usePivotRows) {
142
149
  report.rows = report.pivotRows;
143
150
  report.columns = report.pivotColumns;
144
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,eAAO,MAAM,WAAW,SAAU;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,SA2FA,CAAC"}
1
+ {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,eAAO,MAAM,WAAW,SAAU;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,SAuFA,CAAC"}
@@ -3,11 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.downloadCSV = void 0;
4
4
  const valueFormatter_1 = require("./valueFormatter");
5
5
  const downloadCSV = (data) => {
6
- const { rows, fields, name } = data;
7
- // report.rows
8
- if (rows && !rows.length) {
9
- return;
10
- }
6
+ const { rows = [], fields, name } = data;
11
7
  // if table chart, use columns and valueFormatter
12
8
  if (fields) {
13
9
  const newRows = [];
@@ -58,7 +54,7 @@ const downloadCSV = (data) => {
58
54
  return;
59
55
  }
60
56
  const json = rows; // JSON data passed as a prop
61
- const fieldsProcessed = Object.keys(json[0]); // Assumes all objects have same keys
57
+ const fieldsProcessed = Object.keys(json[0] ?? {}); // Assumes all objects have same keys
62
58
  const csvRows = [];
63
59
  // Header row
64
60
  csvRows.push(fieldsProcessed.join(','));
@@ -191,7 +191,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
191
191
  const [pivotData, setPivotData] = useState(null);
192
192
  const [numberOfRows, setNumberOfRows] = useState(0);
193
193
  const [rowCountIsLoading, setRowCountIsLoading] = useState(false);
194
- const reportColumnsToStateColumns = (() => {
194
+ const reportColumnsToStateColumns = useMemo(() => {
195
195
  const positionMap = {};
196
196
  columns.forEach((column, index) => {
197
197
  positionMap[column.field] = index;
@@ -207,7 +207,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
207
207
  const posB = positionMap[b.field];
208
208
  return posA && posB ? posA - posB : 0;
209
209
  });
210
- })();
210
+ }, [columns, reportColumns]);
211
211
  // Pivot form states
212
212
  const [pivotRowField, setPivotRowField] = useState(undefined);
213
213
  const [pivotColumnField, setPivotColumnField] = useState(undefined);
@@ -1,12 +1,15 @@
1
1
  import { QuillReport } from '../models/Report';
2
+ interface DownloadOptions {
3
+ usePivotRows?: boolean;
4
+ }
2
5
  export declare const useExport: (reportId?: string, { CustomDocumentComponent, maximumRowsPerPage, sectionField, }?: {
3
6
  CustomDocumentComponent?: (props: QuillPDFProps) => JSX.Element;
4
7
  maximumRowsPerPage?: number;
5
8
  sectionField?: string;
6
9
  }) => {
7
- downloadPDF: () => Promise<void>;
10
+ downloadPDF: (downloadOptions?: DownloadOptions) => Promise<void>;
8
11
  isPDFLoading: boolean;
9
- downloadCSV: () => Promise<void>;
12
+ downloadCSV: (downloadOptions?: DownloadOptions) => Promise<void>;
10
13
  isCSVLoading: boolean;
11
14
  };
12
15
  interface QuillPDFProps {
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CAiRvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkE/C,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;CA2RvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -92,7 +92,7 @@ sectionField, } = {}) => {
92
92
  };
93
93
  }
94
94
  return {
95
- downloadCSV: async () => {
95
+ downloadCSV: async (downloadOptions) => {
96
96
  if (!client) {
97
97
  return;
98
98
  }
@@ -105,13 +105,17 @@ sectionField, } = {}) => {
105
105
  dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
106
106
  []), reportId, getToken, tenants, flags, schemaData?.customFields);
107
107
  downloadCSV({
108
- rows: resp.pivot && resp.pivotRows ? resp.pivotRows : resp.rows,
109
- fields: resp.pivot && resp.pivotColumns ? resp.pivotColumns : resp.columns,
108
+ rows: resp.pivot && resp.pivotRows && downloadOptions?.usePivotRows
109
+ ? resp.pivotRows
110
+ : resp.rows,
111
+ fields: resp.pivot && resp.pivotColumns && downloadOptions?.usePivotRows
112
+ ? resp.pivotColumns
113
+ : resp.columns,
110
114
  name: resp.name,
111
115
  });
112
116
  setIsCSVLoading(false);
113
117
  },
114
- downloadPDF: async () => {
118
+ downloadPDF: async (downloadOptions) => {
115
119
  setIsPDFLoading(true);
116
120
  const filters = specificReportFilters.length > 0
117
121
  ? specificReportFilters
@@ -132,7 +136,10 @@ sectionField, } = {}) => {
132
136
  return;
133
137
  }
134
138
  const report = fetchedReport;
135
- if (report.pivot && report.pivotRows && report.pivotColumns) {
139
+ if (report.pivot &&
140
+ report.pivotRows &&
141
+ report.pivotColumns &&
142
+ downloadOptions?.usePivotRows) {
136
143
  report.rows = report.pivotRows;
137
144
  report.columns = report.pivotColumns;
138
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,eAAO,MAAM,WAAW,SAAU;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,SA2FA,CAAC"}
1
+ {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,eAAO,MAAM,WAAW,SAAU;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,SAuFA,CAAC"}
@@ -1,10 +1,6 @@
1
1
  import { quillFormat } from './valueFormatter';
2
2
  export const downloadCSV = (data) => {
3
- const { rows, fields, name } = data;
4
- // report.rows
5
- if (rows && !rows.length) {
6
- return;
7
- }
3
+ const { rows = [], fields, name } = data;
8
4
  // if table chart, use columns and valueFormatter
9
5
  if (fields) {
10
6
  const newRows = [];
@@ -55,7 +51,7 @@ export const downloadCSV = (data) => {
55
51
  return;
56
52
  }
57
53
  const json = rows; // JSON data passed as a prop
58
- const fieldsProcessed = Object.keys(json[0]); // Assumes all objects have same keys
54
+ const fieldsProcessed = Object.keys(json[0] ?? {}); // Assumes all objects have same keys
59
55
  const csvRows = [];
60
56
  // Header row
61
57
  csvRows.push(fieldsProcessed.join(','));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.14.12",
3
+ "version": "2.14.13",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",