@quillsql/react 2.11.17 → 2.11.18
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 +0 -8
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.d.ts +11 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +6 -5
- package/dist/cjs/ChartEditor.d.ts +11 -3
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +3 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +7 -9
- package/dist/cjs/ReportBuilder.d.ts +7 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +112 -37
- package/dist/cjs/SQLEditor.d.ts +7 -5
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +3 -2
- package/dist/cjs/Table.d.ts +2 -2
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/components/QuillCard.d.ts +2 -7
- package/dist/cjs/components/QuillCard.d.ts.map +1 -1
- package/dist/cjs/components/QuillCard.js +15 -9
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +2 -0
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +1 -0
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +20 -1
- package/dist/cjs/components/ReportBuilder/operators.d.ts +15 -10
- package/dist/cjs/components/ReportBuilder/operators.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/operators.js +23 -10
- package/dist/cjs/components/ReportBuilder/ui.d.ts +1 -2
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +4 -4
- package/dist/cjs/components/ReportBuilder/util.d.ts +8 -3
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +110 -64
- package/dist/cjs/components/UiComponents.d.ts +0 -6
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +2 -44
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +5 -2
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +11 -11
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +4 -3
- package/dist/cjs/utils/parserBigQuery.d.ts +6 -0
- package/dist/cjs/utils/parserBigQuery.d.ts.map +1 -0
- package/dist/cjs/utils/parserBigQuery.js +60 -0
- package/dist/cjs/utils/parserPostgres.d.ts +3 -0
- package/dist/cjs/utils/parserPostgres.d.ts.map +1 -0
- package/dist/cjs/utils/parserPostgres.js +42 -0
- package/dist/esm/Chart.d.ts +0 -8
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.d.ts +11 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +6 -5
- package/dist/esm/ChartEditor.d.ts +11 -3
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +3 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +8 -10
- package/dist/esm/ReportBuilder.d.ts +7 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +113 -38
- package/dist/esm/SQLEditor.d.ts +7 -5
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +3 -2
- package/dist/esm/Table.d.ts +2 -2
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/components/QuillCard.d.ts +2 -7
- package/dist/esm/components/QuillCard.d.ts.map +1 -1
- package/dist/esm/components/QuillCard.js +15 -9
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +2 -0
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +1 -0
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +18 -0
- package/dist/esm/components/ReportBuilder/operators.d.ts +15 -10
- package/dist/esm/components/ReportBuilder/operators.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/operators.js +23 -10
- package/dist/esm/components/ReportBuilder/ui.d.ts +1 -2
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +4 -4
- package/dist/esm/components/ReportBuilder/util.d.ts +8 -3
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +101 -60
- package/dist/esm/components/UiComponents.d.ts +0 -6
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +3 -44
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts +5 -2
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +11 -11
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +4 -3
- package/dist/esm/utils/parserBigQuery.d.ts +6 -0
- package/dist/esm/utils/parserBigQuery.d.ts.map +1 -0
- package/dist/esm/utils/parserBigQuery.js +52 -0
- package/dist/esm/utils/parserPostgres.d.ts +3 -0
- package/dist/esm/utils/parserPostgres.d.ts.map +1 -0
- package/dist/esm/utils/parserPostgres.js +37 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.convertRemoveSimpleParentheses = exports.convertStringComparison = exports.applyPivot = exports.convertGroupBy = exports.convertWildcardColumns = exports.convertBigQuery = exports.recursiveSearchAndReplace = exports.convertDateComparison = void 0;
|
|
3
|
+
exports.convertRemoveSimpleParentheses = exports.convertStringComparison = exports.applyPivot = exports.convertGroupBy = exports.convertWildcardColumns = exports.convertBigQuery = exports.recursiveSearchAndReplaceByKey = exports.recursiveSearchAndReplace = exports.convertDateComparison = void 0;
|
|
4
4
|
const ast_1 = require("./ast");
|
|
5
5
|
const util_1 = require("./util");
|
|
6
6
|
// Helper functions that preprocess the AST.
|
|
@@ -49,6 +49,21 @@ function recursiveSearchAndReplace(node, search, replace) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
exports.recursiveSearchAndReplace = recursiveSearchAndReplace;
|
|
52
|
+
// THIS IS USED TO REPLACE UNITS IN INTERVALS FOR BIGQUERY
|
|
53
|
+
function recursiveSearchAndReplaceByKey(node, search, replace, searchKey) {
|
|
54
|
+
if (typeof node !== 'object') {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (node) {
|
|
58
|
+
Object.keys(node).forEach((key) => {
|
|
59
|
+
recursiveSearchAndReplaceByKey(node[key], search, replace, searchKey);
|
|
60
|
+
if (searchKey === key && node[key] === search) {
|
|
61
|
+
node[key] = replace;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.recursiveSearchAndReplaceByKey = recursiveSearchAndReplaceByKey;
|
|
52
67
|
/**
|
|
53
68
|
* Takes a bigquery AST as input, cleans it, and returns a Select AST.
|
|
54
69
|
*/
|
|
@@ -71,6 +86,10 @@ function convertBigQuery(ast) {
|
|
|
71
86
|
recursiveSearchAndReplace(newAst.where, 'CURRENT_DATE', 'CURRENT_TIMESTAMP');
|
|
72
87
|
recursiveSearchAndReplace(newAst.where, 'DATE_TRUNC', 'TIMESTAMP_TRUNC');
|
|
73
88
|
recursiveSearchAndReplace(newAst.where, 'DATE', 'TIMESTAMP');
|
|
89
|
+
// JANK: If anyone is here this is how you have to do intervals in BigQuery no joke
|
|
90
|
+
recursiveSearchAndReplaceByKey(newAst.where, 'year', '* 365 DAY', 'unit');
|
|
91
|
+
recursiveSearchAndReplaceByKey(newAst.where, 'week', '* 7 DAY', 'unit');
|
|
92
|
+
recursiveSearchAndReplaceByKey(newAst.where, 'month', '* 30 DAY', 'unit');
|
|
74
93
|
// TODO: handle joins nicely
|
|
75
94
|
if (newAst.from?.length > 1) {
|
|
76
95
|
newAst.from = [newAst.from[0]];
|
|
@@ -17,6 +17,8 @@ export declare const OPERATOR_GROUPS: {
|
|
|
17
17
|
between: string;
|
|
18
18
|
'IS NOT': string;
|
|
19
19
|
IS: string;
|
|
20
|
+
EQUALS: string;
|
|
21
|
+
equals: string;
|
|
20
22
|
};
|
|
21
23
|
export declare const getDefaultOperatorSubtrees: (key: any, operator: any, left: any, right: any, databaseType: string) => any;
|
|
22
24
|
export declare const DEFAULT_OPERATOR_SUBTREES: {
|
|
@@ -416,29 +418,32 @@ export declare const DEFAULT_BIG_QUERY_OPERATOR_SUBTREES: {
|
|
|
416
418
|
name: string;
|
|
417
419
|
args: {
|
|
418
420
|
type: string;
|
|
419
|
-
value:
|
|
420
|
-
type: string;
|
|
421
|
-
value: string;
|
|
422
|
-
table?: undefined;
|
|
423
|
-
column?: undefined;
|
|
424
|
-
} | {
|
|
421
|
+
value: {
|
|
425
422
|
type: string;
|
|
426
423
|
table: null;
|
|
427
424
|
column: string;
|
|
428
|
-
|
|
429
|
-
})[];
|
|
425
|
+
}[];
|
|
430
426
|
};
|
|
427
|
+
over: null;
|
|
431
428
|
};
|
|
432
429
|
right: {
|
|
433
430
|
type: string;
|
|
434
431
|
name: string;
|
|
435
432
|
args: {
|
|
436
433
|
type: string;
|
|
437
|
-
value: {
|
|
434
|
+
value: ({
|
|
438
435
|
type: string;
|
|
439
436
|
value: string;
|
|
440
|
-
|
|
437
|
+
table?: undefined;
|
|
438
|
+
column?: undefined;
|
|
439
|
+
} | {
|
|
440
|
+
type: string;
|
|
441
|
+
table: null;
|
|
442
|
+
column: string;
|
|
443
|
+
value?: undefined;
|
|
444
|
+
})[];
|
|
441
445
|
};
|
|
446
|
+
over: null;
|
|
442
447
|
};
|
|
443
448
|
};
|
|
444
449
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/operators.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/operators.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;CAqB3B,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAChC,GAAG,YACE,GAAG,QACP,GAAG,SACF,GAAG,gBACI,MAAM,QAoErB,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQrC,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmM/C,CAAC"}
|
|
@@ -24,6 +24,8 @@ exports.OPERATOR_GROUPS = {
|
|
|
24
24
|
between: 'in_the_last',
|
|
25
25
|
'IS NOT': 'null_comp',
|
|
26
26
|
IS: 'null_comp',
|
|
27
|
+
EQUALS: 'equals',
|
|
28
|
+
equals: 'equals',
|
|
27
29
|
};
|
|
28
30
|
const getDefaultOperatorSubtrees = (key, operator, left, right, databaseType) => {
|
|
29
31
|
let result = exports.DEFAULT_OPERATOR_SUBTREES[key];
|
|
@@ -84,7 +86,14 @@ const getDefaultOperatorSubtrees = (key, operator, left, right, databaseType) =>
|
|
|
84
86
|
result.left.column = left;
|
|
85
87
|
}
|
|
86
88
|
else if (key === 'equals') {
|
|
87
|
-
|
|
89
|
+
if (databaseType === 'BigQuery') {
|
|
90
|
+
result = exports.DEFAULT_BIG_QUERY_OPERATOR_SUBTREES['equals'];
|
|
91
|
+
result.left.args.value[0].column = left;
|
|
92
|
+
result.left.column = left;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
result.left.args.value[1].column = left;
|
|
96
|
+
}
|
|
88
97
|
}
|
|
89
98
|
else if (key === 'date') {
|
|
90
99
|
result.operator = operator;
|
|
@@ -515,38 +524,42 @@ exports.DEFAULT_BIG_QUERY_OPERATOR_SUBTREES = {
|
|
|
515
524
|
operator: '=',
|
|
516
525
|
left: {
|
|
517
526
|
type: 'function',
|
|
518
|
-
name: '
|
|
527
|
+
name: 'timestamp_trunc',
|
|
519
528
|
args: {
|
|
520
529
|
type: 'expr_list',
|
|
521
530
|
value: [
|
|
522
531
|
{
|
|
523
|
-
type: '
|
|
524
|
-
|
|
532
|
+
type: 'column_ref',
|
|
533
|
+
table: null,
|
|
534
|
+
column: '',
|
|
525
535
|
},
|
|
526
536
|
{
|
|
527
537
|
type: 'column_ref',
|
|
528
538
|
table: null,
|
|
529
|
-
column: '',
|
|
539
|
+
column: 'YEAR',
|
|
530
540
|
},
|
|
531
541
|
],
|
|
532
542
|
},
|
|
543
|
+
over: null,
|
|
533
544
|
},
|
|
534
545
|
right: {
|
|
535
546
|
type: 'function',
|
|
536
|
-
name: '
|
|
547
|
+
name: 'timestamp_trunc',
|
|
537
548
|
args: {
|
|
538
549
|
type: 'expr_list',
|
|
539
550
|
value: [
|
|
540
|
-
{
|
|
541
|
-
type: 'single_quote_string',
|
|
542
|
-
value: 'month',
|
|
543
|
-
},
|
|
544
551
|
{
|
|
545
552
|
type: 'timestamp',
|
|
546
553
|
value: '2024-01-01',
|
|
547
554
|
},
|
|
555
|
+
{
|
|
556
|
+
type: 'column_ref',
|
|
557
|
+
table: null,
|
|
558
|
+
column: 'YEAR',
|
|
559
|
+
},
|
|
548
560
|
],
|
|
549
561
|
},
|
|
562
|
+
over: null,
|
|
550
563
|
},
|
|
551
564
|
},
|
|
552
565
|
};
|
|
@@ -83,7 +83,6 @@ export interface TagWrapperProps {
|
|
|
83
83
|
setOpenPopover: any;
|
|
84
84
|
setIsPending: any;
|
|
85
85
|
clearCheckboxes: any;
|
|
86
|
-
fetchSqlQuery: any;
|
|
87
86
|
handleDelete: any;
|
|
88
87
|
setCheckboxes: any;
|
|
89
88
|
handleReplaceSubtree: any;
|
|
@@ -94,6 +93,6 @@ export interface TagWrapperProps {
|
|
|
94
93
|
renderNode: any;
|
|
95
94
|
children: any;
|
|
96
95
|
}
|
|
97
|
-
export declare const TagWrapper: ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes,
|
|
96
|
+
export declare const TagWrapper: ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }: TagWrapperProps) => import("react/jsx-runtime").JSX.Element;
|
|
98
97
|
export declare const AddFilterPopover: ({ onSave, Button, renderNode, activeEditItem, }: any) => import("react/jsx-runtime").JSX.Element;
|
|
99
98
|
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -288,7 +288,7 @@ const QuillLimitPopover = ({ limitLabel, onClickDelete, popoverTitle, popoverChi
|
|
|
288
288
|
} }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
|
|
289
289
|
};
|
|
290
290
|
exports.QuillLimitPopover = QuillLimitPopover;
|
|
291
|
-
const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes,
|
|
291
|
+
const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }) => {
|
|
292
292
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
293
293
|
const onOpen = () => {
|
|
294
294
|
setActiveEditItem(getByKey(formData, keyPrefix));
|
|
@@ -322,7 +322,6 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
|
|
|
322
322
|
setActivePath(null);
|
|
323
323
|
setOpenPopover(null);
|
|
324
324
|
setEditPopoverKey(null);
|
|
325
|
-
fetchSqlQuery();
|
|
326
325
|
clearCheckboxes();
|
|
327
326
|
};
|
|
328
327
|
return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDelete: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
|
|
@@ -333,7 +332,7 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
|
|
|
333
332
|
setOpenPopover(null);
|
|
334
333
|
setEditPopoverKey(null);
|
|
335
334
|
handleDelete(keyPrefix);
|
|
336
|
-
|
|
335
|
+
setIsOpen(false);
|
|
337
336
|
clearCheckboxes();
|
|
338
337
|
}
|
|
339
338
|
else {
|
|
@@ -343,6 +342,7 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
|
|
|
343
342
|
setActiveEditItem(null);
|
|
344
343
|
setActivePath(null);
|
|
345
344
|
setOpenPopover(null);
|
|
345
|
+
setIsOpen(false);
|
|
346
346
|
clearCheckboxes();
|
|
347
347
|
}
|
|
348
348
|
}, onDelete: () => {
|
|
@@ -351,8 +351,8 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
|
|
|
351
351
|
setActivePath(null);
|
|
352
352
|
setOpenPopover(null);
|
|
353
353
|
setEditPopoverKey(null);
|
|
354
|
+
setIsOpen(false);
|
|
354
355
|
handleDelete(keyPrefix);
|
|
355
|
-
fetchSqlQuery();
|
|
356
356
|
clearCheckboxes();
|
|
357
357
|
} }) }) })); // Make sure to close the <Tag> correctly
|
|
358
358
|
}
|
|
@@ -21,11 +21,15 @@ export declare function formatDateComparisonNode(node: any): string | null;
|
|
|
21
21
|
export declare function getInTheCurrentIntervalSentence(node: any, databaseType: string): string | null;
|
|
22
22
|
export declare function getInTheLastIntervalSentence(node: any, databaseType: string): string | null;
|
|
23
23
|
export declare function getInThePreviousIntervalSentence(node: any, databaseType: string): string | null;
|
|
24
|
+
export declare function getIsEqualsSentence(node: any, databaseType: string): string | null;
|
|
25
|
+
export declare function getIsAfterSentence(node: any, databaseType: string): string | null;
|
|
26
|
+
export declare function getIsBeforeSentence(node: any, databaseType: string): string | null;
|
|
24
27
|
export declare const isInTheLastInterval: (node: any, databaseType: string) => boolean;
|
|
25
|
-
export declare const
|
|
28
|
+
export declare const isAfter: (node: any, databaseType: string) => boolean | undefined;
|
|
29
|
+
export declare const isBefore: (node: any, databaseType: string) => boolean | undefined;
|
|
26
30
|
export declare const isTheCurrentInterval: (node: any, databaseType: string) => boolean;
|
|
31
|
+
export declare const isEquals: (node: any, databaseType: string) => boolean;
|
|
27
32
|
export declare const isThePreviousInterval: (node: any, databaseType: string) => any;
|
|
28
|
-
export declare const isTheCurrentIntervalBigQuery: (node: any) => boolean;
|
|
29
33
|
/**
|
|
30
34
|
* Returns whether this node is the root of a binary expression
|
|
31
35
|
* where the left child is a string but really should be
|
|
@@ -56,7 +60,7 @@ export declare function tryConvertDateEquality(node: any, databaseType?: string)
|
|
|
56
60
|
* Returns whether this node is an equality of a date column with a
|
|
57
61
|
* date trunc.
|
|
58
62
|
*/
|
|
59
|
-
export declare const isDateTruncEquals: (node: any) => boolean;
|
|
63
|
+
export declare const isDateTruncEquals: (node: any, databaseType?: string) => boolean;
|
|
60
64
|
/**
|
|
61
65
|
* Returns whether this node is an equality of a date column with extract.
|
|
62
66
|
*/
|
|
@@ -76,4 +80,5 @@ export declare const getDateFilterInfo: (node: any) => {
|
|
|
76
80
|
export declare function removeNonSelectedTableReferences(ast: any, table: string, columns: string[]): any;
|
|
77
81
|
export declare function allNumericNodesValidInTree(node: any): boolean;
|
|
78
82
|
export declare function isIdColumn(columnName?: string): boolean | "" | undefined;
|
|
83
|
+
export declare function getCustomSentence(node: any, databaseType: string): string | null;
|
|
79
84
|
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAaf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAaf;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAaf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YAKlE,CAAC;AAEF,eAAO,MAAM,OAAO,SAAU,GAAG,gBAAgB,MAAM,wBAItD,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,GAAG,gBAAgB,MAAM,wBAIvD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAKF,CAAC;AAIF,eAAO,MAAM,QAAQ,SAAU,GAAG,gBAAgB,MAAM,KAAG,OAK1D,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,iBAAiB,MAAM,YAUjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AAsDF,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,OAQlB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAc7D;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,4BAO7C;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,iBAehE"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// A collection of reusable, pure, utility functions for the Report Builder.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.isIdColumn = exports.allNumericNodesValidInTree = exports.removeNonSelectedTableReferences = exports.getDateFilterInfo = exports.trimEndS = exports.deepCopy = exports.getPostgresBasicType = exports.showNodeAsRow = exports.isExtractEquals = exports.isDateTruncEquals = exports.tryConvertDateEquality = exports.extractSuffixToString = exports.dateTruncSuffixToString = exports.newUTCDate = exports.isColumnComparison = exports.
|
|
4
|
+
exports.getCustomSentence = exports.isIdColumn = exports.allNumericNodesValidInTree = exports.removeNonSelectedTableReferences = exports.getDateFilterInfo = exports.trimEndS = exports.deepCopy = exports.getPostgresBasicType = exports.showNodeAsRow = exports.isExtractEquals = exports.isDateTruncEquals = exports.tryConvertDateEquality = exports.extractSuffixToString = exports.dateTruncSuffixToString = exports.newUTCDate = exports.isColumnComparison = exports.isThePreviousInterval = exports.isEquals = exports.isTheCurrentInterval = exports.isBefore = exports.isAfter = exports.isInTheLastInterval = exports.getIsBeforeSentence = exports.getIsAfterSentence = exports.getIsEqualsSentence = exports.getInThePreviousIntervalSentence = exports.getInTheLastIntervalSentence = exports.getInTheCurrentIntervalSentence = exports.formatDateComparisonNode = exports.areObjectsEqualish = exports.isColumnDateish = exports.generateColumnExpr = exports.isColumnReferenceish = exports.isDateTrunc = exports.hasTopLevelOrBoolean = exports.isTopLevelBoolean = exports.isNodeEmptyCollection = void 0;
|
|
5
5
|
const date_fns_1 = require("date-fns");
|
|
6
6
|
const bigDateMap_1 = require("./bigDateMap");
|
|
7
7
|
const textProcessing_1 = require("../../utils/textProcessing");
|
|
8
|
+
const parserBigQuery_1 = require("../../utils/parserBigQuery");
|
|
9
|
+
const parserPostgres_1 = require("../../utils/parserPostgres");
|
|
8
10
|
/**
|
|
9
11
|
* A node that is "in" or "not in" where none of the variants are selected.
|
|
10
12
|
*/
|
|
@@ -147,7 +149,7 @@ const BIG_QUERY_DAY_TO_INTERVAL_MAP = {
|
|
|
147
149
|
};
|
|
148
150
|
function getInTheLastIntervalSentence(node, databaseType) {
|
|
149
151
|
if (databaseType === 'BigQuery') {
|
|
150
|
-
const dateColumn = (0, textProcessing_1.snakeCaseToTitleCase)(node.left.column);
|
|
152
|
+
const dateColumn = (0, textProcessing_1.snakeCaseToTitleCase)(node.left.column || node.left.args.value[0].columns || '');
|
|
151
153
|
const amount = node.right.args.value[1].expr.value;
|
|
152
154
|
let unit = node.right.args.value[1].unit.toLowerCase();
|
|
153
155
|
if (unit.includes('*')) {
|
|
@@ -167,70 +169,92 @@ function getInThePreviousIntervalSentence(node, databaseType) {
|
|
|
167
169
|
return null;
|
|
168
170
|
}
|
|
169
171
|
exports.getInThePreviousIntervalSentence = getInThePreviousIntervalSentence;
|
|
172
|
+
function getIsEqualsSentence(node, databaseType) {
|
|
173
|
+
if (databaseType === 'BigQuery') {
|
|
174
|
+
const dateColumn = (0, textProcessing_1.snakeCaseToTitleCase)(node.left.args.value[1].column);
|
|
175
|
+
const type = node.right.args.value[1].column.toLowerCase();
|
|
176
|
+
const value = node.right.args.value[0].value;
|
|
177
|
+
// using date-fns can I parse the date to short month year
|
|
178
|
+
const date = new Date(value);
|
|
179
|
+
if (type === 'year') {
|
|
180
|
+
return `${dateColumn} is in ${(0, date_fns_1.format)((0, date_fns_1.addMinutes)(date, date.getTimezoneOffset()), 'yyyy')}`;
|
|
181
|
+
}
|
|
182
|
+
else if (type === 'month') {
|
|
183
|
+
return `${dateColumn} is in ${(0, date_fns_1.format)((0, date_fns_1.addMinutes)(date, date.getTimezoneOffset()), 'MMM yyyy')}`;
|
|
184
|
+
}
|
|
185
|
+
else if (type === 'quarter') {
|
|
186
|
+
return `${dateColumn} is in ${(0, date_fns_1.format)((0, date_fns_1.addMinutes)(date, date.getTimezoneOffset()), 'QQQ yyyy')}`;
|
|
187
|
+
}
|
|
188
|
+
return `${dateColumn} is in the ${type} of ${value}`;
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
exports.getIsEqualsSentence = getIsEqualsSentence;
|
|
193
|
+
function getIsAfterSentence(node, databaseType) {
|
|
194
|
+
if (databaseType === 'BigQuery') {
|
|
195
|
+
const dateColumn = (0, textProcessing_1.snakeCaseToTitleCase)(node.left?.column || node.left?.args?.value[0]?.columns || '');
|
|
196
|
+
const value = node.right?.value || node.right?.args?.value[0]?.value || '';
|
|
197
|
+
if (!dateColumn || !value) {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
return `${dateColumn} is after ${value}`;
|
|
201
|
+
}
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
exports.getIsAfterSentence = getIsAfterSentence;
|
|
205
|
+
function getIsBeforeSentence(node, databaseType) {
|
|
206
|
+
if (databaseType === 'BigQuery') {
|
|
207
|
+
const dateColumn = (0, textProcessing_1.snakeCaseToTitleCase)(node.left?.column || node.left?.args?.value[0]?.columns || '');
|
|
208
|
+
const value = node.right?.value || node.right?.args?.value[0]?.value || '';
|
|
209
|
+
if (!dateColumn || !value) {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
return `${dateColumn} is before ${value}`;
|
|
213
|
+
}
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
exports.getIsBeforeSentence = getIsBeforeSentence;
|
|
170
217
|
// "created_at" >= date_trunc ('year', CURRENT_DATE) - INTERVAL '1 year'
|
|
171
218
|
// or
|
|
172
219
|
// "created_at" >= CURRENT_DATE - INTERVAL '1 year'
|
|
173
220
|
// in the last year aka one interval from today
|
|
174
221
|
const isInTheLastInterval = (node, databaseType) => {
|
|
175
222
|
if (databaseType && databaseType.toLowerCase() === 'bigquery') {
|
|
176
|
-
return (0,
|
|
223
|
+
return (0, parserBigQuery_1.isInTheLastIntervalBigQuery)(node);
|
|
177
224
|
}
|
|
178
|
-
|
|
179
|
-
node.left.type === 'column_ref' &&
|
|
180
|
-
node.right.type === 'binary_expr' &&
|
|
181
|
-
node.right.operator === '-' &&
|
|
182
|
-
node.right.left.type === 'function' &&
|
|
183
|
-
node.right.left.name.toLowerCase() === 'date_trunc' &&
|
|
184
|
-
node.right.left.args.value[0].type === 'single_quote_string' &&
|
|
185
|
-
node.right.left.args.value[1].type === 'function' &&
|
|
186
|
-
['current_date', 'now'].includes(node.right.left.args.value[1].name.toLowerCase()) &&
|
|
187
|
-
node.right.right.type.toLowerCase() === 'interval' &&
|
|
188
|
-
node.right.right.expr.type === 'single_quote_string';
|
|
189
|
-
const noDateTrunc = ['>=', '>'].includes(node.operator) &&
|
|
190
|
-
node.left.type === 'column_ref' &&
|
|
191
|
-
node.right.type === 'binary_expr' &&
|
|
192
|
-
node.right.operator === '-' &&
|
|
193
|
-
node.right.left.type === 'function' &&
|
|
194
|
-
['current_date', 'now'].includes(node.right.left.name.toLowerCase()) &&
|
|
195
|
-
node.right.right.type.toLowerCase() === 'interval' &&
|
|
196
|
-
node.right.right.expr.type === 'single_quote_string';
|
|
197
|
-
return isOutsideOfDateTrunc || noDateTrunc;
|
|
225
|
+
return (0, parserPostgres_1.isInTheLastIntervalPostgres)(node);
|
|
198
226
|
};
|
|
199
227
|
exports.isInTheLastInterval = isInTheLastInterval;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
node.left.type === 'column_ref' &&
|
|
205
|
-
node.right.type === 'function' &&
|
|
206
|
-
node.right.name.toLowerCase() === 'timestamp_sub' &&
|
|
207
|
-
node.right.args.value[0].type === 'function' &&
|
|
208
|
-
node.right.args.value[1].type === 'interval' &&
|
|
209
|
-
['current_timestamp'].includes(node.right.args.value[0].name.toLowerCase());
|
|
210
|
-
return isOutsideOfDateTrunc;
|
|
228
|
+
const isAfter = (node, databaseType) => {
|
|
229
|
+
if (databaseType && databaseType.toLowerCase() === 'bigquery') {
|
|
230
|
+
return (0, parserBigQuery_1.isAfterBigQuery)(node);
|
|
231
|
+
}
|
|
211
232
|
};
|
|
212
|
-
exports.
|
|
233
|
+
exports.isAfter = isAfter;
|
|
234
|
+
const isBefore = (node, databaseType) => {
|
|
235
|
+
if (databaseType && databaseType.toLowerCase() === 'bigquery') {
|
|
236
|
+
return (0, parserBigQuery_1.isBeforeBigQuery)(node);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
exports.isBefore = isBefore;
|
|
213
240
|
// "created_at" >= date_trunc ('year', CURRENT_DATE - INTERVAL '1 year')
|
|
214
241
|
// this year
|
|
215
242
|
const isTheCurrentInterval = (node, databaseType) => {
|
|
216
243
|
if (databaseType && databaseType.toLowerCase() === 'bigquery') {
|
|
217
|
-
return (0,
|
|
244
|
+
return (0, parserBigQuery_1.isTheCurrentIntervalBigQuery)(node);
|
|
218
245
|
}
|
|
219
|
-
|
|
220
|
-
(node.left.operator === '=' || node.left.type === 'double_quote_string') &&
|
|
221
|
-
node.right.operator === '=' &&
|
|
222
|
-
node.right.name &&
|
|
223
|
-
node.right.name.toLowerCase() === 'date_trunc' &&
|
|
224
|
-
node.args.value[0].type === 'single_quote_string' &&
|
|
225
|
-
node.args.value[1].type === 'binary_expr' &&
|
|
226
|
-
node.args.value[1].operator === '-' &&
|
|
227
|
-
node.args.value[1].left.type === 'function' &&
|
|
228
|
-
['now', 'current_date'].includes(node.args.value[1].left.name.toLowerCase()) &&
|
|
229
|
-
node.args.value[1].right.type === 'interval' &&
|
|
230
|
-
node.args.value[1].right.expr.type === 'single_quote_string';
|
|
231
|
-
return isInsideOfDateTrunc;
|
|
246
|
+
return (0, parserPostgres_1.isTheCurrentIntervalPostgres)(node);
|
|
232
247
|
};
|
|
233
248
|
exports.isTheCurrentInterval = isTheCurrentInterval;
|
|
249
|
+
// "created_at" >= date_trunc ('year', CURRENT_DATE - INTERVAL '1 year')
|
|
250
|
+
// this year
|
|
251
|
+
const isEquals = (node, databaseType) => {
|
|
252
|
+
if (databaseType && databaseType.toLowerCase() === 'bigquery') {
|
|
253
|
+
return (0, parserBigQuery_1.isEqualsBigQuery)(node);
|
|
254
|
+
}
|
|
255
|
+
return false;
|
|
256
|
+
};
|
|
257
|
+
exports.isEquals = isEquals;
|
|
234
258
|
const isThePreviousInterval = (node, databaseType) => {
|
|
235
259
|
const isInsideOfDateTrunc = ['='].includes(node.operator) &&
|
|
236
260
|
node.left.name &&
|
|
@@ -238,23 +262,12 @@ const isThePreviousInterval = (node, databaseType) => {
|
|
|
238
262
|
node.left.type === 'function' &&
|
|
239
263
|
node.right.name &&
|
|
240
264
|
node.right.name.toLowerCase() === 'timestamp_trunc' &&
|
|
241
|
-
node.right.args.value[0]
|
|
265
|
+
node.right.args.value[0]?.name?.toLowerCase() === 'timestamp_sub' &&
|
|
242
266
|
node.right.args.value[0].args.value[0].name.toLowerCase() ===
|
|
243
267
|
'current_timestamp';
|
|
244
268
|
return isInsideOfDateTrunc;
|
|
245
269
|
};
|
|
246
270
|
exports.isThePreviousInterval = isThePreviousInterval;
|
|
247
|
-
const isTheCurrentIntervalBigQuery = (node) => {
|
|
248
|
-
const isInsideOfDateTrunc = ['='].includes(node.operator) &&
|
|
249
|
-
node.left.type === 'function' &&
|
|
250
|
-
node.left.name &&
|
|
251
|
-
node.left.name.toLowerCase() === 'timestamp_trunc' &&
|
|
252
|
-
node.right.type === 'function' &&
|
|
253
|
-
node.right.name.toLowerCase() === 'timestamp_trunc' &&
|
|
254
|
-
node.right.args.value[0].name.toLowerCase() === 'current_timestamp';
|
|
255
|
-
return isInsideOfDateTrunc;
|
|
256
|
-
};
|
|
257
|
-
exports.isTheCurrentIntervalBigQuery = isTheCurrentIntervalBigQuery;
|
|
258
271
|
/**
|
|
259
272
|
* Returns whether this node is the root of a binary expression
|
|
260
273
|
* where the left child is a string but really should be
|
|
@@ -379,7 +392,7 @@ function extractSuffixToString(node) {
|
|
|
379
392
|
}
|
|
380
393
|
exports.extractSuffixToString = extractSuffixToString;
|
|
381
394
|
function tryConvertDateEquality(node, databaseType) {
|
|
382
|
-
if ((0, exports.isDateTruncEquals)(node)) {
|
|
395
|
+
if ((0, exports.isDateTruncEquals)(node, databaseType)) {
|
|
383
396
|
const columnNode = node.left.args.value[1];
|
|
384
397
|
const columnName = columnNode.column ?? columnNode.value;
|
|
385
398
|
const cleanColumnName = (0, textProcessing_1.snakeCaseToTitleCase)(columnName.replaceAll('_at', ''));
|
|
@@ -400,7 +413,7 @@ exports.tryConvertDateEquality = tryConvertDateEquality;
|
|
|
400
413
|
* Returns whether this node is an equality of a date column with a
|
|
401
414
|
* date trunc.
|
|
402
415
|
*/
|
|
403
|
-
const isDateTruncEquals = (node) => {
|
|
416
|
+
const isDateTruncEquals = (node, databaseType) => {
|
|
404
417
|
return (node.type === 'binary_expr' &&
|
|
405
418
|
node.operator === '=' &&
|
|
406
419
|
(0, exports.isDateTrunc)(node.left) &&
|
|
@@ -662,12 +675,21 @@ function getNodeTable(node) {
|
|
|
662
675
|
function removeNonSelectedTableFilters(node, table, columns) {
|
|
663
676
|
if (node.left.type !== 'binary_expr') {
|
|
664
677
|
const referencedTable = getNodeTable(node.left);
|
|
665
|
-
const referencedColumn = node.left.column ||
|
|
678
|
+
const referencedColumn = node.left.column ||
|
|
679
|
+
node.left.value ||
|
|
680
|
+
node.left.args?.value[0]?.column ||
|
|
681
|
+
node.left.args?.value[0]?.value;
|
|
666
682
|
if ((referencedTable && referencedTable !== table) ||
|
|
667
683
|
!columns.includes(referencedColumn)) {
|
|
668
684
|
return null;
|
|
669
685
|
}
|
|
670
686
|
else {
|
|
687
|
+
if (node.left.value) {
|
|
688
|
+
node.left.column = node.left.value;
|
|
689
|
+
}
|
|
690
|
+
else if (node.left.args?.value[0].value) {
|
|
691
|
+
node.left.args.value[0].column = node.left.args.value[0].value;
|
|
692
|
+
}
|
|
671
693
|
return node;
|
|
672
694
|
}
|
|
673
695
|
}
|
|
@@ -721,3 +743,27 @@ function isIdColumn(columnName) {
|
|
|
721
743
|
columnName.endsWith('Id')));
|
|
722
744
|
}
|
|
723
745
|
exports.isIdColumn = isIdColumn;
|
|
746
|
+
// This function determines if a node is a custom node type.
|
|
747
|
+
// This will parse out date filters and some numeric filters that are unique (between).
|
|
748
|
+
function getCustomSentence(node, databaseType) {
|
|
749
|
+
if ((0, exports.isTheCurrentInterval)(node, databaseType)) {
|
|
750
|
+
return getInTheCurrentIntervalSentence(node, databaseType);
|
|
751
|
+
}
|
|
752
|
+
else if ((0, exports.isInTheLastInterval)(node, databaseType)) {
|
|
753
|
+
return getInTheLastIntervalSentence(node, databaseType);
|
|
754
|
+
}
|
|
755
|
+
else if ((0, exports.isAfter)(node, databaseType)) {
|
|
756
|
+
return getIsAfterSentence(node, databaseType);
|
|
757
|
+
}
|
|
758
|
+
else if ((0, exports.isBefore)(node, databaseType)) {
|
|
759
|
+
return getIsBeforeSentence(node, databaseType);
|
|
760
|
+
}
|
|
761
|
+
else if ((0, exports.isThePreviousInterval)(node, databaseType)) {
|
|
762
|
+
return getInThePreviousIntervalSentence(node, databaseType);
|
|
763
|
+
}
|
|
764
|
+
else if ((0, exports.isEquals)(node, databaseType)) {
|
|
765
|
+
return getIsEqualsSentence(node, databaseType);
|
|
766
|
+
}
|
|
767
|
+
return null;
|
|
768
|
+
}
|
|
769
|
+
exports.getCustomSentence = getCustomSentence;
|
|
@@ -133,11 +133,5 @@ export interface TableComponentProps {
|
|
|
133
133
|
isLoading?: boolean;
|
|
134
134
|
}
|
|
135
135
|
export declare const QuillTableComponent: ({ rows, columns, isLoading, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
136
|
-
export declare const QuillDropdownComponent: ({ onChange, value, label, options, }: {
|
|
137
|
-
onChange: (event: ChangeEvent<HTMLSelectElement>) => void;
|
|
138
|
-
value: string;
|
|
139
|
-
options: Option[];
|
|
140
|
-
label?: string | undefined;
|
|
141
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
142
136
|
export declare const QuillEmptyDashboardComponent: () => import("react/jsx-runtime").JSX.Element;
|
|
143
137
|
//# sourceMappingURL=UiComponents.d.ts.map
|
|
@@ -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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"}
|