@quillsql/react 2.11.25 → 2.11.27
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 +16 -13
- package/dist/cjs/ChartBuilder.d.ts +7 -20
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +25 -25
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +3 -3
- package/dist/cjs/Dashboard.d.ts +2 -1
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +11 -5
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +208 -127
- package/dist/cjs/SQLEditor.d.ts +4 -11
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +57 -124
- package/dist/cjs/Table.d.ts +1 -1
- package/dist/cjs/Table.js +4 -4
- package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +9 -12
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +13 -11
- package/dist/cjs/components/QuillTable.d.ts +6 -3
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +3 -3
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -2
- package/dist/cjs/components/ReportBuilder/ui.js +1 -1
- package/dist/cjs/components/UiComponents.d.ts +1 -0
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +17 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +27 -24
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +9 -7
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +11 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +52 -67
- package/dist/cjs/models/Columns.d.ts +11 -0
- package/dist/cjs/models/Columns.d.ts.map +1 -0
- package/dist/cjs/models/Columns.js +2 -0
- package/dist/cjs/models/Tables.d.ts +0 -8
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.d.ts +3 -0
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/astProcessing.js +20 -0
- package/dist/cjs/utils/columnProcessing.d.ts +9 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/columnProcessing.js +207 -0
- package/dist/cjs/utils/dashboard.js +9 -9
- package/dist/cjs/utils/pivotProcessing.d.ts +2 -1
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +3 -8
- package/dist/cjs/utils/tableProcessing.d.ts +2 -2
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +1 -3
- package/dist/cjs/utils/valueFormatter.d.ts +2 -1
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +12 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +16 -13
- package/dist/esm/ChartBuilder.d.ts +7 -20
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +25 -25
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +3 -3
- package/dist/esm/Dashboard.d.ts +2 -1
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +11 -5
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +205 -124
- package/dist/esm/SQLEditor.d.ts +4 -11
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +57 -123
- package/dist/esm/Table.d.ts +1 -1
- package/dist/esm/Table.js +4 -4
- package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +9 -12
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +13 -11
- package/dist/esm/components/QuillTable.d.ts +6 -3
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +3 -3
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -2
- package/dist/esm/components/ReportBuilder/ui.js +1 -1
- package/dist/esm/components/UiComponents.d.ts +1 -0
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +15 -0
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts +27 -24
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +9 -7
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +11 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +55 -70
- package/dist/esm/models/Columns.d.ts +11 -0
- package/dist/esm/models/Columns.d.ts.map +1 -0
- package/dist/esm/models/Columns.js +1 -0
- package/dist/esm/models/Tables.d.ts +0 -8
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.d.ts +3 -0
- package/dist/esm/utils/astProcessing.d.ts.map +1 -0
- package/dist/esm/utils/astProcessing.js +16 -0
- package/dist/esm/utils/columnProcessing.d.ts +9 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
- package/dist/esm/utils/columnProcessing.js +201 -0
- package/dist/esm/utils/dashboard.js +9 -9
- package/dist/esm/utils/pivotProcessing.d.ts +2 -1
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +3 -8
- package/dist/esm/utils/tableProcessing.d.ts +2 -2
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +1 -3
- package/dist/esm/utils/valueFormatter.d.ts +2 -1
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +11 -0
- package/package.json +1 -1
- package/dist/cjs/utils/types.d.ts +0 -4
- package/dist/cjs/utils/types.d.ts.map +0 -1
- package/dist/cjs/utils/types.js +0 -52
- package/dist/cjs/utils/valueFormatterCSV.d.ts +0 -17
- package/dist/cjs/utils/valueFormatterCSV.d.ts.map +0 -1
- package/dist/cjs/utils/valueFormatterCSV.js +0 -99
- package/dist/esm/utils/types.d.ts +0 -4
- package/dist/esm/utils/types.d.ts.map +0 -1
- package/dist/esm/utils/types.js +0 -48
- package/dist/esm/utils/valueFormatterCSV.d.ts +0 -17
- package/dist/esm/utils/valueFormatterCSV.d.ts.map +0 -1
- package/dist/esm/utils/valueFormatterCSV.js +0 -95
package/dist/cjs/SQLEditor.d.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { DashboardItem } from './Dashboard';
|
|
3
|
-
export declare function convertPostgresColumn(column: any): {
|
|
4
|
-
name: any;
|
|
5
|
-
label: any;
|
|
6
|
-
field: any;
|
|
7
|
-
format: string;
|
|
8
|
-
fieldType: string;
|
|
9
|
-
};
|
|
10
3
|
/**
|
|
11
4
|
* Props for the Quill SQLEditor component.
|
|
12
5
|
*/
|
|
@@ -267,9 +260,9 @@ export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, D
|
|
|
267
260
|
export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
|
|
268
261
|
schema: any;
|
|
269
262
|
theme: any;
|
|
270
|
-
loading:
|
|
271
|
-
LoadingComponent
|
|
272
|
-
width
|
|
273
|
-
onClick
|
|
263
|
+
loading: boolean;
|
|
264
|
+
LoadingComponent?: any;
|
|
265
|
+
width?: any;
|
|
266
|
+
onClick: (event: React.MouseEvent<HTMLDivElement>) => void;
|
|
274
267
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
275
268
|
//# sourceMappingURL=SQLEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAMZ,SAAS,EACV,MAAM,OAAO,CAAC;AA2Bf,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqC5C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,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;IAElB;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,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;IAElB,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;KAChE,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,0BAA0B;IAC1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACf,EAAE,CAAC;QACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,EAAE,CAAC;QAC/B,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,QAAQ,EAAE,SAAS,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;KACvB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,SAAS,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,SAAS,CAAC;KAC5B,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,yBAAyB;IACzB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE3D,0BAA0B;IAC1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE5D,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE/D,+BAA+B;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE1D;;OAEG;IACH,6BAA6B,CAAC,EAAE,CAAC,KAAK,EAAE;QACtC,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,gCAAgC,CAAC,EAAE,CAAC,KAAK,EAAE;QACzC,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAEpE;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAEvE;;OAEG;IACH,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE5E;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzE;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAElE;;;;;;OAMG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,GAAG,CAAC;IAEpC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,eAAgC,EAChC,wBAAkD,EAClD,qBAA4C,EAC5C,kBAAmC,EACnC,eAAsC,EACtC,cAAoC,EACpC,iBAAyB,EACzB,gBAAwC,EACxC,cAA8B,EAC9B,gBAAkC,EAClC,aAAyB,EACzB,cAA8B,EAC9B,eAAgC,EAChC,kBAAsC,EACtC,aAA4B,EAC5B,qBAAkD,EAClD,6BAAkE,EAClE,gCAAwE,EACxE,iBAA0C,EAC1C,oBAAgD,EAChD,yBAA0D,EAC1D,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,qBAA6B,EAC7B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,EACzB,gBAA4B,EAC5B,4BAAmC,EACnC,cAAoC,EACpC,SAAS,GACV,EAAE,cAAc,2CAsYhB;AA+GD,eAAO,MAAM,mBAAmB;YAQtB,GAAG;WACJ,GAAG;aACD,OAAO;uBACG,GAAG;YACd,GAAG;qBACM,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI;6CA+F3D,CAAC"}
|
package/dist/cjs/SQLEditor.js
CHANGED
|
@@ -3,10 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SchemaListComponent =
|
|
6
|
+
exports.SchemaListComponent = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
/* eslint-disable no-unused-vars */
|
|
9
|
-
// @ts-nocheck
|
|
10
9
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
10
|
const react_1 = require("react");
|
|
12
11
|
const react_2 = __importDefault(require("@monaco-editor/react"));
|
|
@@ -18,84 +17,8 @@ const UiComponents_2 = require("./components/UiComponents");
|
|
|
18
17
|
const width_1 = require("./utils/width");
|
|
19
18
|
const QuillCard_1 = require("./components/QuillCard");
|
|
20
19
|
const QuillSelect_1 = require("./components/QuillSelect");
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
let fieldType;
|
|
24
|
-
switch (column.dataTypeID) {
|
|
25
|
-
case 16: // bool
|
|
26
|
-
format = 'string';
|
|
27
|
-
break;
|
|
28
|
-
case 20: // int8
|
|
29
|
-
case 21: // int2
|
|
30
|
-
case 23: // int4
|
|
31
|
-
format = 'whole_number';
|
|
32
|
-
break;
|
|
33
|
-
case 700: // float4
|
|
34
|
-
case 701: // float8
|
|
35
|
-
case 1700: // numeric
|
|
36
|
-
format = 'two_decimal_places';
|
|
37
|
-
break;
|
|
38
|
-
case 1082: // date
|
|
39
|
-
case 1083: // time
|
|
40
|
-
case 1184: // timestamptz
|
|
41
|
-
case 1114: // timestamp
|
|
42
|
-
format = 'MMM_dd_yyyy';
|
|
43
|
-
break;
|
|
44
|
-
case 1186: // interval
|
|
45
|
-
case 1043: // varchar
|
|
46
|
-
default:
|
|
47
|
-
format = 'string';
|
|
48
|
-
}
|
|
49
|
-
switch (column.dataTypeID) {
|
|
50
|
-
case 16: // boolean
|
|
51
|
-
fieldType = 'bool';
|
|
52
|
-
break;
|
|
53
|
-
case 20: // int8
|
|
54
|
-
fieldType = 'int8';
|
|
55
|
-
break;
|
|
56
|
-
case 21: // int2
|
|
57
|
-
fieldType = 'int2';
|
|
58
|
-
break;
|
|
59
|
-
case 23: // int4
|
|
60
|
-
fieldType = 'int4';
|
|
61
|
-
break;
|
|
62
|
-
case 700: // float4
|
|
63
|
-
fieldType = 'float4';
|
|
64
|
-
break;
|
|
65
|
-
case 701: // float8
|
|
66
|
-
fieldType = 'float8';
|
|
67
|
-
break;
|
|
68
|
-
case 1700: // numeric
|
|
69
|
-
fieldType = 'numeric';
|
|
70
|
-
break;
|
|
71
|
-
case 1082: // date
|
|
72
|
-
fieldType = 'date';
|
|
73
|
-
break;
|
|
74
|
-
case 1083: // time
|
|
75
|
-
fieldType = 'time';
|
|
76
|
-
break;
|
|
77
|
-
case 1184: // timestamptz
|
|
78
|
-
fieldType = 'timestamptz';
|
|
79
|
-
break;
|
|
80
|
-
case 1186: // interval
|
|
81
|
-
fieldType = 'interval';
|
|
82
|
-
break;
|
|
83
|
-
case 1114: // timestamp
|
|
84
|
-
fieldType = 'timestamp';
|
|
85
|
-
break;
|
|
86
|
-
case 1043: // varchar
|
|
87
|
-
default:
|
|
88
|
-
fieldType = 'varchar';
|
|
89
|
-
}
|
|
90
|
-
return {
|
|
91
|
-
name: column.name,
|
|
92
|
-
label: column.name,
|
|
93
|
-
field: column.name,
|
|
94
|
-
format,
|
|
95
|
-
fieldType,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
exports.convertPostgresColumn = convertPostgresColumn;
|
|
20
|
+
const valueFormatter_1 = require("./utils/valueFormatter");
|
|
21
|
+
const columnProcessing_1 = require("./utils/columnProcessing");
|
|
99
22
|
function defineEditorTheme(monaco, theme) {
|
|
100
23
|
monaco.editor.defineTheme('onedark', {
|
|
101
24
|
base: theme.darkMode ? 'vs-dark' : 'vs',
|
|
@@ -146,14 +69,13 @@ function setEditorTheme(editor, monaco) {
|
|
|
146
69
|
* ### SQLEditor API
|
|
147
70
|
* @see https://docs.quillsql.com/components/sql-editor
|
|
148
71
|
*/
|
|
149
|
-
function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableComponent, isNewQueryEnabled = false, LoadingComponent, ModalComponent = UiComponents_1.MemoizedModal, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', dashboardItem = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, className, }) {
|
|
72
|
+
function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableComponent, isNewQueryEnabled = false, LoadingComponent = UiComponents_1.QuillLoadingComponent, ModalComponent = UiComponents_1.MemoizedModal, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', dashboardItem = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, className, }) {
|
|
150
73
|
const [sqlPrompt, setSqlPrompt] = (0, react_1.useState)('');
|
|
151
74
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
152
75
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
153
76
|
const [query, setQuery] = (0, react_1.useState)(defaultQuery);
|
|
154
77
|
const [rows, setRows] = (0, react_1.useState)([]);
|
|
155
78
|
const [columns, setColumns] = (0, react_1.useState)([]);
|
|
156
|
-
const [fields, setFields] = (0, react_1.useState)([]);
|
|
157
79
|
const [schema, setSchema] = (0, react_1.useContext)(Context_1.SchemaContext);
|
|
158
80
|
const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
|
|
159
81
|
const [sqlResponseLoading, setSqlResponseLoading] = (0, react_1.useState)(false);
|
|
@@ -163,6 +85,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
163
85
|
const [displayTable, setDisplayTable] = (0, react_1.useState)(false);
|
|
164
86
|
const formRef = (0, react_1.useRef)(null);
|
|
165
87
|
const [searchBarWidth, setSearchBarWidth] = (0, react_1.useState)(200);
|
|
88
|
+
const [formattedRows, setFormattedRows] = (0, react_1.useState)([]);
|
|
166
89
|
(0, react_1.useEffect)(() => {
|
|
167
90
|
// Since the TextInput component takes a required numeric width parameter,
|
|
168
91
|
// we dynamically calculate the width of this component here.
|
|
@@ -175,8 +98,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
175
98
|
window.removeEventListener('resize', handleResize);
|
|
176
99
|
};
|
|
177
100
|
}, []);
|
|
178
|
-
const getSchema = async (
|
|
179
|
-
setSchemaLoading(true);
|
|
101
|
+
const getSchema = async () => {
|
|
180
102
|
const { queryEndpoint, queryHeaders, publicKey } = client;
|
|
181
103
|
const response = await fetch(`${queryEndpoint}`, {
|
|
182
104
|
method: 'POST',
|
|
@@ -194,26 +116,21 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
194
116
|
}),
|
|
195
117
|
});
|
|
196
118
|
const results = await response.json();
|
|
197
|
-
if (
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
setSchemaLoading(false);
|
|
205
|
-
}
|
|
119
|
+
if (results.data?.data) {
|
|
120
|
+
setSchema(results.data.data.tables);
|
|
121
|
+
setSchemaLoading(false);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
setSchema(results.data.tables);
|
|
125
|
+
setSchemaLoading(false);
|
|
206
126
|
}
|
|
207
127
|
};
|
|
208
128
|
(0, react_1.useEffect)(() => {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
getSchema(
|
|
129
|
+
if (client && !schemaLoading) {
|
|
130
|
+
setSchemaLoading(true);
|
|
131
|
+
getSchema();
|
|
212
132
|
}
|
|
213
|
-
|
|
214
|
-
isSubscribed = false;
|
|
215
|
-
};
|
|
216
|
-
}, [client]);
|
|
133
|
+
}, [client.publicKey]);
|
|
217
134
|
const handleRunSqlPrompt = async () => {
|
|
218
135
|
setSqlResponseLoading(true);
|
|
219
136
|
const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `quillai`, {
|
|
@@ -246,7 +163,6 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
246
163
|
setErrorMessage('Failed to run SQL query: ' + resp.errorMessage);
|
|
247
164
|
setRows([]);
|
|
248
165
|
setColumns([]);
|
|
249
|
-
setFields([]);
|
|
250
166
|
return;
|
|
251
167
|
}
|
|
252
168
|
setSqlQueryLoading(false);
|
|
@@ -254,15 +170,27 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
254
170
|
if (resp.rows.length === 0) {
|
|
255
171
|
setErrorMessage('No data found');
|
|
256
172
|
}
|
|
257
|
-
|
|
173
|
+
const temp_rows = resp.rows && resp.rows.length ? resp.rows : [];
|
|
174
|
+
const processedFields = resp.fields.map((elem) => (0, columnProcessing_1.convertPostgresColumn)(elem));
|
|
175
|
+
setRows(temp_rows);
|
|
176
|
+
setFormattedRows(temp_rows.map((row) => {
|
|
177
|
+
return processedFields.reduce((formattedRow, column) => {
|
|
178
|
+
// Apply the format function to each field in the row
|
|
179
|
+
const formattedValue = (0, valueFormatter_1.quillFormat)({
|
|
180
|
+
value: row[column.field],
|
|
181
|
+
format: column.format,
|
|
182
|
+
});
|
|
183
|
+
formattedRow[column.field] = formattedValue;
|
|
184
|
+
return formattedRow;
|
|
185
|
+
}, {});
|
|
186
|
+
}));
|
|
258
187
|
if (onChangeData) {
|
|
259
|
-
onChangeData(
|
|
188
|
+
onChangeData(temp_rows);
|
|
260
189
|
}
|
|
261
|
-
setColumns(
|
|
190
|
+
setColumns(processedFields);
|
|
262
191
|
if (onChangeColumns) {
|
|
263
|
-
onChangeColumns(
|
|
192
|
+
onChangeColumns(processedFields);
|
|
264
193
|
}
|
|
265
|
-
setFields(resp.fields);
|
|
266
194
|
if (onChangeFields) {
|
|
267
195
|
onChangeFields(resp.fields);
|
|
268
196
|
}
|
|
@@ -293,8 +221,8 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
293
221
|
};
|
|
294
222
|
const handleClickSchemaItem = async (event) => {
|
|
295
223
|
const name = event.target.textContent;
|
|
296
|
-
if (query.length > 0) {
|
|
297
|
-
await navigator.clipboard.writeText(name);
|
|
224
|
+
if (query && query.length > 0) {
|
|
225
|
+
await navigator.clipboard.writeText(name || '');
|
|
298
226
|
}
|
|
299
227
|
else {
|
|
300
228
|
setQuery(`SELECT * FROM ${name};`);
|
|
@@ -302,7 +230,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
302
230
|
};
|
|
303
231
|
(0, react_1.useEffect)(() => {
|
|
304
232
|
if (onChangeQuery) {
|
|
305
|
-
onChangeQuery(query);
|
|
233
|
+
onChangeQuery(query || '');
|
|
306
234
|
}
|
|
307
235
|
}, [query]);
|
|
308
236
|
return ((0, jsx_runtime_1.jsxs)("div", { style: { backgroundColor: theme.backgroundColor, ...containerStyle }, className: className, children: [(!isChartBuilderHorizontalView ||
|
|
@@ -333,7 +261,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
333
261
|
gap: 12,
|
|
334
262
|
paddingTop: 16,
|
|
335
263
|
paddingBottom: 16,
|
|
336
|
-
}, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query, setQuery: setQuery, handleRunQuery: handleRunQuery, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
264
|
+
}, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query || '', setQuery: setQuery, handleRunQuery: handleRunQuery, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
337
265
|
display: 'flex',
|
|
338
266
|
flexDirection: 'column',
|
|
339
267
|
height: 'calc(50% - 108px)',
|
|
@@ -358,17 +286,17 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
358
286
|
borderRadius: 6,
|
|
359
287
|
padding: 20,
|
|
360
288
|
width: '100%',
|
|
361
|
-
}, children: [errorMessage, (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" })] }) })), errorMessage || !displayTable ? null : ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: sqlQueryLoading, rows:
|
|
289
|
+
}, children: [errorMessage, (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" })] }) })), errorMessage || !displayTable ? null : ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: sqlQueryLoading, rows: formattedRows, columns: columns }))] }), isChartBuilderEnabled && rows.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
362
290
|
display: 'flex',
|
|
363
291
|
flexDirection: 'row',
|
|
364
292
|
alignItems: 'center',
|
|
365
293
|
justifyContent: 'flex-end',
|
|
366
294
|
width: '100%',
|
|
367
295
|
height: '70px',
|
|
368
|
-
}, children: (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), (0, jsx_runtime_1.jsx)(ChartBuilder_1.ChartBuilderWithModal, { rows: rows, columns: columns,
|
|
296
|
+
}, children: (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), (0, jsx_runtime_1.jsx)(ChartBuilder_1.ChartBuilderWithModal, { rows: rows, columns: columns, query: query, isHorizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, destinationDashboard: destinationDashboard, title: chartBuilderTitle, buttonLabel: addToDashboardButtonLabel, dashboardItem: dashboardItem, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, hideDateRangeFilter: true })] }));
|
|
369
297
|
}
|
|
370
298
|
exports.default = SQLEditor;
|
|
371
|
-
const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, isNewQueryEnabled, theme, loading, LoadingComponent, }) => {
|
|
299
|
+
const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, isNewQueryEnabled, theme, loading, LoadingComponent = UiComponents_1.QuillLoadingComponent, }) => {
|
|
372
300
|
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
373
301
|
// maxHeight: 700,
|
|
374
302
|
width: '100%',
|
|
@@ -384,27 +312,27 @@ const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI,
|
|
|
384
312
|
borderTopRightRadius: 0,
|
|
385
313
|
borderBottomRightRadius: 0,
|
|
386
314
|
overflow: 'hidden',
|
|
387
|
-
}, children: [loading ? ((0, jsx_runtime_1.
|
|
315
|
+
}, children: [loading ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
388
316
|
height: 'calc(100% - 70px)',
|
|
389
317
|
width: '100%',
|
|
390
318
|
display: 'flex',
|
|
391
319
|
alignItems: 'center',
|
|
392
320
|
justifyContent: 'center',
|
|
393
321
|
background: '#F9F9F9',
|
|
394
|
-
}, children:
|
|
322
|
+
}, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) })) : ((0, jsx_runtime_1.jsx)(react_2.default, { height: "calc(100% - 70px)", width: "100%", defaultLanguage: "pgsql", defaultValue: "", value: query, loading: (0, jsx_runtime_1.jsx)("div", {}), options: {
|
|
395
323
|
wordWrap: 'on',
|
|
396
324
|
minimap: {
|
|
397
325
|
enabled: false,
|
|
398
326
|
},
|
|
399
327
|
padding: { top: 16 },
|
|
400
|
-
}, onChange: (query) => setQuery(query), beforeMount: (monaco) => defineEditorTheme(monaco, theme), onMount: setEditorTheme })), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
328
|
+
}, onChange: (query) => setQuery(query || ''), beforeMount: (monaco) => defineEditorTheme(monaco, theme), onMount: setEditorTheme })), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
401
329
|
display: 'flex',
|
|
402
330
|
flexDirection: 'row',
|
|
403
331
|
alignItems: 'center',
|
|
404
332
|
height: 70,
|
|
405
333
|
}, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunQuery, label: "Run query" }), isNewQueryEnabled && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" }))] }) })] }));
|
|
406
334
|
};
|
|
407
|
-
const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick
|
|
335
|
+
const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick, }) => {
|
|
408
336
|
if (loading) {
|
|
409
337
|
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
410
338
|
// maxHeight: 700,
|
|
@@ -433,7 +361,7 @@ const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width,
|
|
|
433
361
|
}, children: schema.map((elem, index) => ((0, jsx_runtime_1.jsx)(SchemaItem, { elem: elem, theme: theme, index: index, onClick: onClick }, elem.displayName + index))) }));
|
|
434
362
|
};
|
|
435
363
|
exports.SchemaListComponent = SchemaListComponent;
|
|
436
|
-
function SchemaItem({ elem, theme, index, onClick }) {
|
|
364
|
+
function SchemaItem({ elem, theme, index, onClick, }) {
|
|
437
365
|
const [isOpen, setIsOpen] = (0, react_1.useState)(index === 0);
|
|
438
366
|
const schemaContainerStyle = {
|
|
439
367
|
display: 'flex',
|
|
@@ -455,7 +383,11 @@ function SchemaItem({ elem, theme, index, onClick }) {
|
|
|
455
383
|
const schemaRowHoverStyle = {
|
|
456
384
|
background: theme.selectUnderlayColor,
|
|
457
385
|
};
|
|
458
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: schemaContainerStyle, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
386
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: schemaContainerStyle, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
387
|
+
cursor: 'pointer',
|
|
388
|
+
...schemaRowStyle,
|
|
389
|
+
...(isOpen && schemaRowHoverStyle),
|
|
390
|
+
}, onClick: () => setIsOpen(!isOpen), children: [(0, jsx_runtime_1.jsx)("p", { style: {
|
|
459
391
|
marginLeft: theme.padding,
|
|
460
392
|
fontSize: 13,
|
|
461
393
|
color: '#384151',
|
|
@@ -465,10 +397,12 @@ function SchemaItem({ elem, theme, index, onClick }) {
|
|
|
465
397
|
margin: 0,
|
|
466
398
|
textOverflow: 'ellipsis',
|
|
467
399
|
overflow: 'hidden',
|
|
468
|
-
cursor: 'pointer',
|
|
469
400
|
userSelect: 'none',
|
|
470
401
|
fontFamily: theme?.fontFamily,
|
|
471
|
-
}, title: elem.displayName, onClick:
|
|
402
|
+
}, title: elem.displayName, onClick: (event) => {
|
|
403
|
+
event.stopPropagation();
|
|
404
|
+
onClick(event);
|
|
405
|
+
}, children: elem.displayName }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
472
406
|
display: 'flex',
|
|
473
407
|
alignItems: 'center',
|
|
474
408
|
justifyContent: 'center',
|
|
@@ -476,9 +410,8 @@ function SchemaItem({ elem, theme, index, onClick }) {
|
|
|
476
410
|
paddingTop: 12,
|
|
477
411
|
paddingBottom: 12,
|
|
478
412
|
paddingLeft: 0,
|
|
479
|
-
cursor: 'pointer',
|
|
480
413
|
userSelect: 'none',
|
|
481
|
-
},
|
|
414
|
+
}, children: isOpen ? ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M12.53 16.28a.75.75 0 01-1.06 0l-7.5-7.5a.75.75 0 011.06-1.06L12 14.69l6.97-6.97a.75.75 0 111.06 1.06l-7.5 7.5z", clipRule: "evenodd" }) })) : ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M16.28 11.47a.75.75 0 010 1.06l-7.5 7.5a.75.75 0 01-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 011.06-1.06l7.5 7.5z", clipRule: "evenodd" }) })) })] }), isOpen ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
482
415
|
paddingBottom: theme.padding,
|
|
483
416
|
display: 'flex',
|
|
484
417
|
flexDirection: 'column',
|
|
@@ -514,5 +447,5 @@ function SchemaItem({ elem, theme, index, onClick }) {
|
|
|
514
447
|
padding: 0,
|
|
515
448
|
margin: 0,
|
|
516
449
|
fontFamily: theme?.fontFamily,
|
|
517
|
-
}, children: elem.fieldType })] }, elem.displayName +
|
|
450
|
+
}, children: elem.fieldType })] }, elem.displayName + index))) })) : null] }));
|
|
518
451
|
}
|
package/dist/cjs/Table.d.ts
CHANGED
package/dist/cjs/Table.js
CHANGED
|
@@ -48,11 +48,11 @@ const Table = (props) => {
|
|
|
48
48
|
const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
|
|
49
49
|
const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
50
50
|
if ('rows' in data && 'columns' in data) {
|
|
51
|
-
return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, {
|
|
51
|
+
return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { hideCSVDownloadButton: data.hideCSVDownloadButton, downloadFileName: data.csvFilename, columns: data.columns, rows: data.rows, className: data.className, containerStyle: data.containerStyle, LoadingComponent: data.LoadingComponent, isLoading: data.isLoading, downloadCSV: data.downloadCSV }));
|
|
52
52
|
}
|
|
53
|
-
return ((0, jsx_runtime_1.jsx)(ChartUpdater, {
|
|
53
|
+
return ((0, jsx_runtime_1.jsx)(ChartUpdater, { hideCSVDownloadButton: data.hideCSVDownloadButton, dispatch: dispatch, dashboard: dashboard, chartId: data.chartId, className: data.className, containerStyle: data.containerStyle, dashboardFilters: dashboardFilters, client: client, csvFilename: data.csvFilename, LoadingComponent: data.LoadingComponent }));
|
|
54
54
|
};
|
|
55
|
-
const ChartUpdater = ({ chartId, containerStyle, className, dashboard, dispatch, client, dashboardFilters, csvFilename,
|
|
55
|
+
const ChartUpdater = ({ chartId, containerStyle, className, dashboard, dispatch, client, dashboardFilters, csvFilename, hideCSVDownloadButton = true, LoadingComponent, }) => {
|
|
56
56
|
const { rows, loading } = (0, useFormat_1.useMemoizedRows)(chartId);
|
|
57
57
|
const { downloadCSV } = (0, useExport_1.useExport)(chartId);
|
|
58
58
|
(0, react_1.useEffect)(() => {
|
|
@@ -99,7 +99,7 @@ const ChartUpdater = ({ chartId, containerStyle, className, dashboard, dispatch,
|
|
|
99
99
|
isSubscribed = false;
|
|
100
100
|
};
|
|
101
101
|
}, [dashboardFilters, client.customerId, chartId]);
|
|
102
|
-
return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, {
|
|
102
|
+
return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { hideCSVDownloadButton: hideCSVDownloadButton,
|
|
103
103
|
// @ts-ignore
|
|
104
104
|
downloadFileName: csvFilename || dashboard[chartId]?.name || '',
|
|
105
105
|
// @ts-ignore
|
|
@@ -13,7 +13,7 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent, DateRangePic
|
|
|
13
13
|
if (filter.filterType === 'string') {
|
|
14
14
|
setFilterValue(filter.selectedValue);
|
|
15
15
|
}
|
|
16
|
-
if (filter.filterType
|
|
16
|
+
if (filter.filterType === 'date_range') {
|
|
17
17
|
setDateFilter(filter.preset.label);
|
|
18
18
|
if (filter?.comparisonRange?.value) {
|
|
19
19
|
const newComparisonRange = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((option) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASrD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASrD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA6QlC"}
|
|
@@ -24,14 +24,14 @@ function QuillMetricComponent({ dashboardItem, onClick, error, isLoading, }) {
|
|
|
24
24
|
return pivot && data?.rows
|
|
25
25
|
? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
|
|
26
26
|
dateFilter
|
|
27
|
-
?
|
|
28
|
-
:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
dateFilter
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
:
|
|
27
|
+
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
28
|
+
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
29
|
+
dateFilter?.comparisonRange?.endDate
|
|
30
|
+
? {
|
|
31
|
+
start: dateFilter.comparisonRange.startDate,
|
|
32
|
+
end: dateFilter.comparisonRange.endDate,
|
|
33
|
+
}
|
|
34
|
+
: undefined)
|
|
35
35
|
: null;
|
|
36
36
|
}, [config?.pivot]);
|
|
37
37
|
const primaryMetricLabel = data?.filtersApplied?.date_range?.preset?.label;
|
|
@@ -101,10 +101,7 @@ function QuillMetricComponent({ dashboardItem, onClick, error, isLoading, }) {
|
|
|
101
101
|
color: theme.secondaryTextColor,
|
|
102
102
|
maxWidth: '100%',
|
|
103
103
|
width: '100%',
|
|
104
|
-
}, children: "No results" })) :
|
|
105
|
-
maxHeight: '78px',
|
|
106
|
-
height: '100%',
|
|
107
|
-
}, label: "Charts can only display 100 rows. Please add a pivot or modify the query." })) : ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
104
|
+
}, children: "No results" })) : ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
108
105
|
padding: 0,
|
|
109
106
|
height: '100%',
|
|
110
107
|
width: '100%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA+JlC"}
|
|
@@ -25,14 +25,14 @@ function QuillTableComponent({ dashboardItem, onClick, isLoading, error, }) {
|
|
|
25
25
|
return pivot && data?.rows
|
|
26
26
|
? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
|
|
27
27
|
dateFilter
|
|
28
|
-
?
|
|
29
|
-
:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
dateFilter
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
:
|
|
28
|
+
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
29
|
+
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
30
|
+
dateFilter?.comparisonRange?.endDate
|
|
31
|
+
? {
|
|
32
|
+
start: dateFilter.comparisonRange.startDate,
|
|
33
|
+
end: dateFilter.comparisonRange.endDate,
|
|
34
|
+
}
|
|
35
|
+
: undefined)
|
|
36
36
|
: null;
|
|
37
37
|
}, [config?.pivot]);
|
|
38
38
|
const columns = pivotTable?.columns ?? data.columns ?? data.yAxisFields;
|
|
@@ -42,8 +42,10 @@ function QuillTableComponent({ dashboardItem, onClick, isLoading, error, }) {
|
|
|
42
42
|
// Walk through data.columns and pick off the labels from yAxisFields
|
|
43
43
|
columns.forEach((col, index) => {
|
|
44
44
|
// ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
|
|
45
|
-
if (valueFieldType
|
|
46
|
-
|
|
45
|
+
if ((valueFieldType ||
|
|
46
|
+
['min', 'max'].includes(config?.pivot?.aggregationType || '')) &&
|
|
47
|
+
index !== 0) {
|
|
48
|
+
col.format = valueFieldType || 'two_decimal_places';
|
|
47
49
|
}
|
|
48
50
|
if (!data.yAxisFields)
|
|
49
51
|
return;
|
|
@@ -102,7 +104,7 @@ function QuillTableComponent({ dashboardItem, onClick, isLoading, error, }) {
|
|
|
102
104
|
} })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: formattedRows ?? [], columns: columns ?? data.yAxisFields, rowsPerPage: 10, containerStyle: {
|
|
103
105
|
width: '100%',
|
|
104
106
|
height: '400px',
|
|
105
|
-
},
|
|
107
|
+
}, hideCSVDownloadButton: true, downloadCSV: () => {
|
|
106
108
|
(0, csv_1.downloadCSV)({
|
|
107
109
|
rows: pivotTable?.rows ?? data.rows ?? [],
|
|
108
110
|
fields: columns ?? data.yAxisFields,
|
|
@@ -2,11 +2,14 @@ import React from 'react';
|
|
|
2
2
|
import { ButtonComponentProps } from './UiComponents';
|
|
3
3
|
export interface TableComponentProps {
|
|
4
4
|
rows: any[];
|
|
5
|
-
columns:
|
|
5
|
+
columns: {
|
|
6
|
+
label: string;
|
|
7
|
+
field: string;
|
|
8
|
+
}[];
|
|
6
9
|
className?: string;
|
|
7
10
|
containerStyle?: React.CSSProperties;
|
|
8
11
|
isLoading?: boolean;
|
|
9
|
-
|
|
12
|
+
hideCSVDownloadButton?: boolean;
|
|
10
13
|
downloadFileName?: string;
|
|
11
14
|
downloadCSV?: () => void;
|
|
12
15
|
LoadingComponent?: () => JSX.Element;
|
|
@@ -14,5 +17,5 @@ export interface TableComponentProps {
|
|
|
14
17
|
rowsPerPage?: number;
|
|
15
18
|
emptyStateLabel?: string;
|
|
16
19
|
}
|
|
17
|
-
export default function QuillTable({ rows, columns, isLoading,
|
|
20
|
+
export default function QuillTable({ rows, columns, isLoading, hideCSVDownloadButton, downloadFileName, containerStyle, className, LoadingComponent, rowsPerPage, emptyStateLabel, downloadCSV, }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
18
21
|
//# sourceMappingURL=QuillTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,qBAA4B,EAC5B,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,2CAyZrB"}
|
|
@@ -8,11 +8,11 @@ const react_1 = require("react");
|
|
|
8
8
|
const valueFormatter_1 = require("../utils/valueFormatter");
|
|
9
9
|
const Context_1 = require("../Context");
|
|
10
10
|
const ChartSkeleton_1 = __importDefault(require("./Chart/ChartSkeleton"));
|
|
11
|
-
function QuillTable({ rows, columns, isLoading,
|
|
11
|
+
function QuillTable({ rows, columns, isLoading, hideCSVDownloadButton = true, downloadFileName, containerStyle, className, LoadingComponent = () => (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {}), rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, }) {
|
|
12
12
|
const [activeRows, setActiveRows] = (0, react_1.useState)([]);
|
|
13
13
|
const [page, setPage] = (0, react_1.useState)(1);
|
|
14
14
|
const [maxPage, setMaxPage] = (0, react_1.useState)(1);
|
|
15
|
-
const [sortColumn, setSortColumn] = (0, react_1.useState)(
|
|
15
|
+
const [sortColumn, setSortColumn] = (0, react_1.useState)('');
|
|
16
16
|
const [sortDirection, setSortDirection] = (0, react_1.useState)('desc');
|
|
17
17
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
18
18
|
const [isPaginating, setIsPaginating] = (0, react_1.useState)(true);
|
|
@@ -207,7 +207,7 @@ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadF
|
|
|
207
207
|
justifyContent: 'space-between',
|
|
208
208
|
width: '100%',
|
|
209
209
|
height: 37,
|
|
210
|
-
}, children: [
|
|
210
|
+
}, children: [!hideCSVDownloadButton ? ((0, jsx_runtime_1.jsx)("button", { onClick: downloadCSV, style: {
|
|
211
211
|
fontSize: 14,
|
|
212
212
|
paddingLeft: 12,
|
|
213
213
|
fontFamily: theme?.fontFamily,
|