@quillsql/react 2.12.3 → 2.12.4
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/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +2 -0
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +21 -30
- package/dist/cjs/Context.d.ts +1 -0
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +58 -30
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +14 -60
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +12 -26
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +2 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +4 -0
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +2 -0
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +2 -1
- package/dist/cjs/utils/schema.d.ts +6 -0
- package/dist/cjs/utils/schema.d.ts.map +1 -0
- package/dist/cjs/utils/schema.js +118 -0
- package/dist/cjs/utils/tableProcessing.d.ts +1 -1
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +5 -3
- package/dist/cjs/utils/valueFormatter.js +1 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +3 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +21 -30
- package/dist/esm/Context.d.ts +1 -0
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +57 -29
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +15 -61
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +13 -27
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +3 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +5 -1
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +3 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +3 -2
- package/dist/esm/utils/schema.d.ts +6 -0
- package/dist/esm/utils/schema.d.ts.map +1 -0
- package/dist/esm/utils/schema.js +113 -0
- package/dist/esm/utils/tableProcessing.d.ts +1 -1
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +5 -3
- package/dist/esm/utils/valueFormatter.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const parseResponse = (results) => {
|
|
2
|
+
if (results.data?.data) {
|
|
3
|
+
if (results.data.data.queries &&
|
|
4
|
+
results.data.data.queries.queryResults.length > 0) {
|
|
5
|
+
return results.data.data.queries.queryResults;
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
return results.data.data.tables;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
if (results.queries &&
|
|
13
|
+
results.queries.queryResults &&
|
|
14
|
+
results.queries.queryResults.length > 0) {
|
|
15
|
+
return results.queries.queryResults;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return results.data.tables;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
export const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
23
|
+
let customFieldsByTableUnique = [];
|
|
24
|
+
try {
|
|
25
|
+
const { queryEndpoint, queryHeaders, publicKey, databaseType, customerId } = client;
|
|
26
|
+
let response = await fetch(`${queryEndpoint}?cfr-${caller}`, {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
headers: {
|
|
29
|
+
...queryHeaders,
|
|
30
|
+
'Content-Type': 'application/json',
|
|
31
|
+
},
|
|
32
|
+
body: JSON.stringify({
|
|
33
|
+
metadata: {
|
|
34
|
+
clientId: publicKey,
|
|
35
|
+
publicKey,
|
|
36
|
+
task: 'custom-field-records',
|
|
37
|
+
databaseType: databaseType,
|
|
38
|
+
orgId: customerId,
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
});
|
|
42
|
+
let result = await response.json();
|
|
43
|
+
const extractedData = parseResponse(result);
|
|
44
|
+
const customFieldsByTable = [];
|
|
45
|
+
extractedData.forEach((table) => {
|
|
46
|
+
if (!table.rows) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
table.rows.forEach((row) => {
|
|
50
|
+
customFieldsByTable.push({
|
|
51
|
+
ref_table: row.ref_table,
|
|
52
|
+
field: row.field,
|
|
53
|
+
ref_column: row.ref_column,
|
|
54
|
+
type: row.type,
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
// make sure the are no duplicate records in extractedData
|
|
59
|
+
const customFieldsByTableSet = new Set();
|
|
60
|
+
customFieldsByTableUnique = customFieldsByTable.filter((item) => {
|
|
61
|
+
if (customFieldsByTableSet.has(item.ref_table + item.field + item.ref_column + item.type)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
customFieldsByTableSet.add(item.ref_table + item.field + item.ref_column + item.type);
|
|
65
|
+
return true;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.error('CUSTOM FIELDS DISABLED');
|
|
70
|
+
}
|
|
71
|
+
return customFieldsByTableUnique;
|
|
72
|
+
};
|
|
73
|
+
export const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
|
|
74
|
+
const { queryEndpoint, queryHeaders, publicKey, databaseType, customerId } = client;
|
|
75
|
+
let customFieldsByTableUnique = [];
|
|
76
|
+
let getCustomFields = true;
|
|
77
|
+
if (!customerId || customerId !== '*') {
|
|
78
|
+
try {
|
|
79
|
+
customFieldsByTableUnique = await getCustomFieldInfo(client, caller);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
getCustomFields = false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const response = await fetch(`${queryEndpoint}?schema-${caller}`, {
|
|
86
|
+
method: 'POST',
|
|
87
|
+
headers: {
|
|
88
|
+
...queryHeaders,
|
|
89
|
+
'Content-Type': 'application/json',
|
|
90
|
+
},
|
|
91
|
+
body: JSON.stringify({
|
|
92
|
+
metadata: {
|
|
93
|
+
clientId: publicKey,
|
|
94
|
+
publicKey: publicKey,
|
|
95
|
+
task: 'schema',
|
|
96
|
+
removeCustomerField: true,
|
|
97
|
+
getCustomFields: !client.customerId ||
|
|
98
|
+
client.customerId === '*' ||
|
|
99
|
+
(customFieldsByTableUnique.length === 0 && !getCustomFields)
|
|
100
|
+
? false
|
|
101
|
+
: true,
|
|
102
|
+
orgId: client.customerId || '*',
|
|
103
|
+
customFieldsByTable: customFieldsByTableUnique,
|
|
104
|
+
gatherSchemaData: true,
|
|
105
|
+
},
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
const result = await response.json();
|
|
109
|
+
return {
|
|
110
|
+
schemaData: parseResponse(result),
|
|
111
|
+
customFieldsByTable: customFieldsByTableUnique,
|
|
112
|
+
};
|
|
113
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Column } from '../models/Columns';
|
|
2
2
|
export declare const hasColumnAlias: (columns: Column[], referencedColumns: string[]) => boolean;
|
|
3
|
-
export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: any) => Promise<{
|
|
3
|
+
export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: any, customFields: any[]) => Promise<{
|
|
4
4
|
[column: string]: {
|
|
5
5
|
[value: string]: boolean;
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG;;;;
|
|
1
|
+
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG,gBACG,GAAG,EAAE;;;;SA6DpB,CAAC"}
|
|
@@ -11,7 +11,7 @@ export const hasColumnAlias = (columns, referencedColumns) => {
|
|
|
11
11
|
}
|
|
12
12
|
return false;
|
|
13
13
|
};
|
|
14
|
-
export const getUniqueValuesByColumns = async (columns, query, rows, client) => {
|
|
14
|
+
export const getUniqueValuesByColumns = async (columns, query, rows, client, customFields) => {
|
|
15
15
|
const stringNames = columns.map((column) => column.field);
|
|
16
16
|
const uniqueValues = {};
|
|
17
17
|
if (!client.databaseType ||
|
|
@@ -24,6 +24,7 @@ export const getUniqueValuesByColumns = async (columns, query, rows, client) =>
|
|
|
24
24
|
orgId: client.customerId || '*',
|
|
25
25
|
clientId: client.publicKey,
|
|
26
26
|
databaseType: client?.databaseType,
|
|
27
|
+
customFieldsByTable: customFields,
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
30
|
const cloudBody = { query };
|
|
@@ -46,7 +47,7 @@ export const getUniqueValuesByColumns = async (columns, query, rows, client) =>
|
|
|
46
47
|
}
|
|
47
48
|
else {
|
|
48
49
|
const distinctValueQuery = generateDistinctQuery(stringNames, query);
|
|
49
|
-
const distinctStrings = await fetchDistinctStrings(distinctValueQuery, client);
|
|
50
|
+
const distinctStrings = await fetchDistinctStrings(distinctValueQuery, client, customFields);
|
|
50
51
|
if (!distinctStrings) {
|
|
51
52
|
return {};
|
|
52
53
|
}
|
|
@@ -56,7 +57,7 @@ export const getUniqueValuesByColumns = async (columns, query, rows, client) =>
|
|
|
56
57
|
}
|
|
57
58
|
return uniqueValues;
|
|
58
59
|
};
|
|
59
|
-
const fetchDistinctStrings = async (query, client) => {
|
|
60
|
+
const fetchDistinctStrings = async (query, client, customFields) => {
|
|
60
61
|
try {
|
|
61
62
|
const hostedBody = {
|
|
62
63
|
metadata: {
|
|
@@ -65,6 +66,7 @@ const fetchDistinctStrings = async (query, client) => {
|
|
|
65
66
|
orgId: client.customerId || '*',
|
|
66
67
|
clientId: client.publicKey,
|
|
67
68
|
databaseType: client?.databaseType,
|
|
69
|
+
customFieldsByTable: customFields,
|
|
68
70
|
},
|
|
69
71
|
};
|
|
70
72
|
const cloudBody = { query };
|
|
@@ -100,7 +100,7 @@ export const quillFormat = ({ value, format, }) => {
|
|
|
100
100
|
*/
|
|
101
101
|
const formatString = (value) => {
|
|
102
102
|
if (value === null || value === undefined) {
|
|
103
|
-
return '
|
|
103
|
+
return '-';
|
|
104
104
|
}
|
|
105
105
|
if (typeof value === 'object') {
|
|
106
106
|
return JSON.stringify(value);
|