@quillsql/react 2.11.28 → 2.11.29

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.
Files changed (33) hide show
  1. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  2. package/dist/cjs/ChartBuilder.js +81 -48
  3. package/dist/cjs/ReportBuilder.d.ts +22 -1
  4. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ReportBuilder.js +562 -527
  6. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  7. package/dist/cjs/components/UiComponents.js +0 -1
  8. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +28 -0
  9. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -0
  10. package/dist/cjs/internals/ReportBuilder/PivotForm.js +58 -0
  11. package/dist/cjs/utils/astProcessing.d.ts +23 -0
  12. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  13. package/dist/cjs/utils/astProcessing.js +241 -1
  14. package/dist/cjs/utils/tableProcessing.d.ts +1 -0
  15. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  16. package/dist/cjs/utils/tableProcessing.js +13 -1
  17. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  18. package/dist/esm/ChartBuilder.js +81 -48
  19. package/dist/esm/ReportBuilder.d.ts +22 -1
  20. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  21. package/dist/esm/ReportBuilder.js +563 -528
  22. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  23. package/dist/esm/components/UiComponents.js +0 -1
  24. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +28 -0
  25. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -0
  26. package/dist/esm/internals/ReportBuilder/PivotForm.js +55 -0
  27. package/dist/esm/utils/astProcessing.d.ts +23 -0
  28. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  29. package/dist/esm/utils/astProcessing.js +231 -0
  30. package/dist/esm/utils/tableProcessing.d.ts +1 -0
  31. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  32. package/dist/esm/utils/tableProcessing.js +11 -0
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
@@ -410,7 +410,6 @@ export const QuillColumnSearchEmptyState = () => {
410
410
  export const QuillLoadingComponent = () => {
411
411
  const theme = useTheme();
412
412
  return (_jsxs("div", { style: {
413
- background: theme.backgroundColor,
414
413
  width: 250,
415
414
  minWidth: 250,
416
415
  height: '100%',
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { Column } from '../../models/Columns';
3
+ interface PivotFormProps {
4
+ pivotRowField: any;
5
+ setPivotRowField: any;
6
+ pivotColumnField: any;
7
+ setPivotColumnField: any;
8
+ pivotValueField: any;
9
+ setPivotValueField: any;
10
+ pivotAggregation: any;
11
+ setPivotAggregation: any;
12
+ columns: Column[];
13
+ uniqueValues?: any;
14
+ onDelete: any;
15
+ SecondaryButtonComponent: (props: {
16
+ onClick: () => void;
17
+ label: string;
18
+ disabled?: boolean;
19
+ icon?: ReactNode;
20
+ }) => JSX.Element;
21
+ SelectComponent: any;
22
+ PivotColumnContainer?: (props: {
23
+ children: ReactNode;
24
+ }) => JSX.Element;
25
+ }
26
+ export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, columns, uniqueValues, onDelete, SecondaryButtonComponent, SelectComponent, PivotColumnContainer, }: PivotFormProps): import("react/jsx-runtime").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=PivotForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PivotForm.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotForm.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAQ9D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,UAAU,cAAc;IACtB,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC;IACd,wBAAwB,EAAE,CAAC,KAAK,EAAE;QAChC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;CACxE;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,eAAe,EACf,oBAAgD,GACjD,EAAE,cAAc,2CAmGhB"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { QuillPivotColumnContainer, } from '../../components/UiComponents';
4
+ import { snakeCaseToTitleCase } from '../../utils/textProcessing';
5
+ import { numberFormatOptions } from '../../ChartBuilder';
6
+ import { getPossiblePivotFieldOptions } from '../../utils/pivotProcessing';
7
+ export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, columns, uniqueValues, onDelete, SecondaryButtonComponent, SelectComponent, PivotColumnContainer = QuillPivotColumnContainer, }) {
8
+ const [allowedColumnFields, setAllowedColumnFields] = useState([]);
9
+ const [allowedRowFields, setAllowedRowFields] = useState([]);
10
+ const [allowedValueFields, setAllowedValueFields] = useState([]);
11
+ useEffect(() => {
12
+ const possibleColumns = getPossiblePivotFieldOptions(columns, uniqueValues);
13
+ setAllowedRowFields(possibleColumns.rowFields);
14
+ setAllowedColumnFields(possibleColumns.columnFields);
15
+ setAllowedValueFields(possibleColumns.valueFields);
16
+ }, [columns, uniqueValues]);
17
+ return (_jsxs(PivotColumnContainer, { children: [_jsx(SelectComponent, { id: "pivot-row-field", label: "Row field", value: pivotRowField, onChange: (e) => {
18
+ setPivotRowField(e.target.value === '' ? undefined : e.target.value);
19
+ }, options: allowedRowFields.map((field) => {
20
+ return {
21
+ label: snakeCaseToTitleCase(field),
22
+ value: field,
23
+ };
24
+ }), width: 200 }), _jsx(SelectComponent, { id: "pivot-row-field", label: "Column field", value: pivotColumnField, onChange: (e) => {
25
+ setPivotColumnField(e.target.value === '' ? undefined : e.target.value);
26
+ }, options: allowedColumnFields.map((field) => {
27
+ return {
28
+ label: snakeCaseToTitleCase(field),
29
+ value: field,
30
+ };
31
+ }), width: 200 }), _jsx(SelectComponent, { id: "pivot-row-field", label: "Value field", value: pivotValueField, onChange: (e) => {
32
+ setPivotValueField(e.target.value === '' ? undefined : e.target.value);
33
+ }, options: allowedValueFields.map((field) => {
34
+ return {
35
+ label: snakeCaseToTitleCase(field),
36
+ value: field,
37
+ };
38
+ }), width: 200 }), _jsx(SelectComponent, { id: "pivot-row-field", label: "Aggregation type", value: pivotAggregation, onChange: (e) => {
39
+ if (e.target.value !== 'count' &&
40
+ pivotValueField &&
41
+ !numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)
42
+ .format)) {
43
+ setPivotValueField(null);
44
+ }
45
+ setPivotAggregation(e.target.value === '' ? undefined : e.target.value);
46
+ }, options: [
47
+ ...['sum', 'average', 'count', 'max', 'min'].map((option) => {
48
+ return { label: option, value: option };
49
+ }),
50
+ ], width: 200 }), _jsx("div", { style: {
51
+ display: 'flex',
52
+ alignItems: 'flex-start',
53
+ flexDirection: 'column',
54
+ }, children: _jsx(SecondaryButtonComponent, { onClick: onDelete, label: "Delete Pivot" }) })] }));
55
+ }
@@ -1,3 +1,26 @@
1
1
  import { Column } from '../models/Columns';
2
+ export declare function getSelectFromAST(ast: any): any;
2
3
  export declare function processStarColumn(ast: any, columns: Column[]): any;
4
+ export declare function recursiveSearchByKey(node: any, searchKey: string): any;
5
+ export declare function recursiveSearchByKeys(node: any, searchKeys: string[]): any;
6
+ export declare function createTableNameToTableAliasMap(ast: any): {
7
+ [key: string]: string;
8
+ };
9
+ export declare function getColumnsByTableName(ast: any, tableName: string): {
10
+ columns: {
11
+ field: string;
12
+ }[];
13
+ name: string;
14
+ };
15
+ export declare function processApostrophe(node: any, searchKeys: string[]): any;
16
+ export declare function recursiveSearchByKeysFindAllOccurances(node: any, searchKeys: string[], results: any[]): any;
17
+ export declare function getColumnAndTableInfo(tableAliasMap: {
18
+ [alias: string]: string;
19
+ }, column: any, schemaInfo: any): {
20
+ tableName: string;
21
+ columnName: string;
22
+ } | undefined;
23
+ export declare function getColumnsByTableFromASTAndSchema(ast: any, tables: any, tableAliasMap: any): {
24
+ [table: string]: string[];
25
+ };
3
26
  //# sourceMappingURL=astProcessing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D"}
1
+ {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,OAQxC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAgBtE;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAgB1E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG;;EA2BtD;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAahD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CActE;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE,GACb,GAAG,CAYL;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC1C,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,GAAG,GACd;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgCvD;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,GAAG,GACjB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAoG/B"}
@@ -1,3 +1,14 @@
1
+ export function getSelectFromAST(ast) {
2
+ if (Array.isArray(ast)) {
3
+ return ast[0];
4
+ }
5
+ else if (ast.select) {
6
+ return ast.select;
7
+ }
8
+ else {
9
+ return ast;
10
+ }
11
+ }
1
12
  export function processStarColumn(ast, columns) {
2
13
  if (ast.columns === '*') {
3
14
  ast.columns = columns.map((column) => {
@@ -14,3 +25,223 @@ export function processStarColumn(ast, columns) {
14
25
  }
15
26
  return ast;
16
27
  }
28
+ // a useful function to search for a specific keywork and return the value
29
+ export function recursiveSearchByKey(node, searchKey) {
30
+ let result = undefined;
31
+ if (!node || typeof node !== 'object') {
32
+ return undefined;
33
+ }
34
+ if (node[searchKey]) {
35
+ return node[searchKey];
36
+ }
37
+ const keys = Object.keys(node);
38
+ for (const key of keys) {
39
+ result = recursiveSearchByKey(node[key], searchKey);
40
+ if (result) {
41
+ return result;
42
+ }
43
+ }
44
+ return result;
45
+ }
46
+ // If the object has all the requested keys, return the object
47
+ export function recursiveSearchByKeys(node, searchKeys) {
48
+ let result = undefined;
49
+ if (!node || typeof node !== 'object') {
50
+ return undefined;
51
+ }
52
+ const nodeKeys = Object.keys(node);
53
+ if (searchKeys.every((key) => nodeKeys.includes(key))) {
54
+ return node;
55
+ }
56
+ for (const key of nodeKeys) {
57
+ result = recursiveSearchByKeys(node[key], searchKeys);
58
+ if (result) {
59
+ return result;
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ export function createTableNameToTableAliasMap(ast) {
65
+ const tableNameToTableAliasMap = {};
66
+ if (ast.from) {
67
+ for (const table of ast.from) {
68
+ const tableObject = recursiveSearchByKeys(table, ['table', 'as']);
69
+ if (tableObject.as) {
70
+ tableNameToTableAliasMap[tableObject.as] = tableObject.table;
71
+ }
72
+ else {
73
+ tableNameToTableAliasMap[tableObject.table] = tableObject.table;
74
+ }
75
+ }
76
+ }
77
+ if (ast.with) {
78
+ for (const withStmt of ast.with) {
79
+ if (withStmt.stmt.ast.from) {
80
+ for (const table of withStmt.stmt.ast.from) {
81
+ const tableObject = recursiveSearchByKeys(table, ['table', 'as']);
82
+ if (tableObject.as) {
83
+ tableNameToTableAliasMap[tableObject.as] = tableObject.table;
84
+ }
85
+ else {
86
+ tableNameToTableAliasMap[tableObject.table] = tableObject.table;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ return tableNameToTableAliasMap;
93
+ }
94
+ export function getColumnsByTableName(ast, tableName) {
95
+ const tableNameToTableAliasMap = createTableNameToTableAliasMap(ast);
96
+ const columns = [];
97
+ ast.columns.forEach((col) => {
98
+ const columnInfo = recursiveSearchByKeys(col, ['table', 'column']);
99
+ if (columnInfo.table === tableName ||
100
+ columnInfo.table === tableNameToTableAliasMap[tableName]) {
101
+ columns.push({ field: columnInfo.column });
102
+ }
103
+ });
104
+ return { columns, name: tableName };
105
+ }
106
+ export function processApostrophe(node, searchKeys) {
107
+ if (!node || typeof node !== 'object') {
108
+ return;
109
+ }
110
+ const nodeKeys = Object.keys(node);
111
+ if (searchKeys.every((key) => nodeKeys.includes(key))) {
112
+ if (node.type === 'single_quote_string') {
113
+ node.value = node.value.replace("''", "'").replace("\\'", "'");
114
+ }
115
+ }
116
+ for (const key of nodeKeys) {
117
+ processApostrophe(node[key], searchKeys);
118
+ }
119
+ return;
120
+ }
121
+ export function recursiveSearchByKeysFindAllOccurances(node, searchKeys, results) {
122
+ if (!node || typeof node !== 'object') {
123
+ return;
124
+ }
125
+ const nodeKeys = Object.keys(node);
126
+ if (searchKeys.every((key) => nodeKeys.includes(key))) {
127
+ return results.push(node);
128
+ }
129
+ for (const key of nodeKeys) {
130
+ recursiveSearchByKeysFindAllOccurances(node[key], searchKeys, results);
131
+ }
132
+ return results;
133
+ }
134
+ export function getColumnAndTableInfo(tableAliasMap, column, schemaInfo) {
135
+ let columnsInfo = recursiveSearchByKeys(column, ['table', 'column']);
136
+ if (!columnsInfo) {
137
+ const quoteStringColumn = recursiveSearchByKeys(column, ['type', 'value']);
138
+ columnsInfo = { table: null, column: quoteStringColumn.value };
139
+ }
140
+ let columnName = columnsInfo.column;
141
+ if (typeof columnsInfo.column !== 'string') {
142
+ columnName = columnsInfo.column.expr.value;
143
+ }
144
+ let tableName = '';
145
+ if (columnsInfo.table) {
146
+ tableName = tableAliasMap[columnsInfo.table];
147
+ }
148
+ else {
149
+ // If there is no column name search through the schemaInfo to find an accurate table name
150
+ const tableNames = Object.values(tableAliasMap);
151
+ for (const table of tableNames) {
152
+ const tableInfo = schemaInfo.find((tableInfo) => tableInfo.name === table);
153
+ const columnNames = tableInfo.columns.map((column) => column.name);
154
+ if (columnNames.includes(columnName)) {
155
+ tableName = table;
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ // const tableName = columnsInfo.table
161
+ // ? tableAliasMap[columnsInfo.table]
162
+ // : //@ts-ignore
163
+ // tableAliasMap[Object.keys(tableAliasMap)[0]];
164
+ return { tableName, columnName };
165
+ }
166
+ export function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
167
+ let referencedColumns = {};
168
+ if (ast.columns === '*' || ast.columns[0].expr.column === '*') {
169
+ // Be sure to select everything from stars
170
+ const tableList = ast.from.map((table) => recursiveSearchByKey(table, 'table'));
171
+ tableList.forEach((table) => {
172
+ const tableInfo = tables.find((tableInfo) => tableInfo.name === table);
173
+ if (tableInfo) {
174
+ if (!referencedColumns[table]) {
175
+ referencedColumns[table] = [];
176
+ }
177
+ referencedColumns[table] = tableInfo.columns.map((column) => column.name || '');
178
+ }
179
+ });
180
+ }
181
+ else {
182
+ // look through all the columns
183
+ ast.columns.forEach((column) => {
184
+ const result = getColumnAndTableInfo(tableAliasMap, column, tables);
185
+ if (!result || !result.tableName)
186
+ return;
187
+ if (!referencedColumns[result.tableName]) {
188
+ referencedColumns[result.tableName] = [];
189
+ }
190
+ // @ts-ignore
191
+ referencedColumns[result.tableName].push(result.columnName);
192
+ });
193
+ }
194
+ // Look through every join reference
195
+ if (ast.from) {
196
+ const allColumnReferncesInFrom = recursiveSearchByKeysFindAllOccurances(ast.from, ['column', 'table'], []);
197
+ allColumnReferncesInFrom.forEach((column) => {
198
+ const result = getColumnAndTableInfo(tableAliasMap, column, tables);
199
+ if (!result || !result.tableName)
200
+ return;
201
+ if (!referencedColumns[result.tableName]) {
202
+ referencedColumns[result.tableName] = [];
203
+ }
204
+ // @ts-ignore
205
+ referencedColumns[result.tableName].push(result.columnName);
206
+ });
207
+ }
208
+ // Look through the where's
209
+ if (ast.where) {
210
+ let allColumnReferncesInWhere = recursiveSearchByKeysFindAllOccurances(ast.where, ['column', 'table'], []);
211
+ allColumnReferncesInWhere.forEach((column) => {
212
+ const result = getColumnAndTableInfo(tableAliasMap, column, tables);
213
+ if (!result || !result.tableName || !result.columnName)
214
+ return;
215
+ if (!referencedColumns[result.tableName]) {
216
+ referencedColumns[result.tableName] = [];
217
+ }
218
+ // @ts-ignore
219
+ referencedColumns[result.tableName].push(result.columnName);
220
+ });
221
+ // NEED TO SEARCH FOR ALL DOUBLE QUOTE STRINGS AS WELL
222
+ allColumnReferncesInWhere = recursiveSearchByKeysFindAllOccurances(ast.where, ['type', 'value'], []);
223
+ allColumnReferncesInWhere.forEach((column) => {
224
+ if (column.type === 'double_quote_string') {
225
+ let tableName = '';
226
+ const tableNames = Object.values(tableAliasMap);
227
+ for (const table of tableNames) {
228
+ const tableInfo = tables.find((tableInfo) => tableInfo.name === table);
229
+ const columnNames = tableInfo.columns.map((column) => column.name);
230
+ if (columnNames.includes(column.value)) {
231
+ tableName = table;
232
+ break;
233
+ }
234
+ }
235
+ if (!referencedColumns[tableName]) {
236
+ referencedColumns[tableName] = [];
237
+ }
238
+ // @ts-ignore
239
+ referencedColumns[tableName].push(column.value);
240
+ }
241
+ });
242
+ }
243
+ for (const table in referencedColumns) {
244
+ referencedColumns[table] = Array.from(new Set(referencedColumns[table]));
245
+ }
246
+ return referencedColumns;
247
+ }
@@ -1,4 +1,5 @@
1
1
  import { Column } from '../models/Columns';
2
+ export declare const hasColumnAlias: (columns: Column[], referencedColumns: string[]) => boolean;
2
3
  export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: any) => Promise<{
3
4
  [column: string]: {
4
5
  [value: string]: boolean;
@@ -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,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG;;;;SAwDZ,CAAC"}
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;;;;SAwDZ,CAAC"}
@@ -1,5 +1,16 @@
1
1
  import { getData } from './dataFetcher';
2
2
  import { generateDistinctQuery } from './queryConstructor';
3
+ export const hasColumnAlias = (columns, referencedColumns) => {
4
+ if (!referencedColumns) {
5
+ return true;
6
+ }
7
+ for (const column of columns) {
8
+ if (!referencedColumns.includes(column.field)) {
9
+ return true;
10
+ }
11
+ }
12
+ return false;
13
+ };
3
14
  export const getUniqueValuesByColumns = async (columns, query, rows, client) => {
4
15
  const stringNames = columns.map((column) => column.field);
5
16
  const uniqueValues = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.11.28",
3
+ "version": "2.11.29",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",