@quillsql/react 2.14.13 → 2.14.14
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 +12 -0
- package/dist/cjs/ChartBuilder.d.ts +3 -2
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +105 -16
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +2 -0
- package/dist/cjs/Context.d.ts +6 -2
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +163 -35
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +93 -16
- package/dist/cjs/QuillProvider.d.ts +40 -1
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +2 -2
- package/dist/cjs/ReportBuilder.d.ts +4 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +103 -1262
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +50 -6
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +12 -0
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +14 -9
- package/dist/cjs/components/Chart/CustomBar.d.ts +18 -0
- package/dist/cjs/components/Chart/CustomBar.d.ts.map +1 -0
- package/dist/cjs/components/Chart/CustomBar.js +70 -0
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +24 -1
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardTemplate.js +2 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +73 -2
- package/dist/cjs/components/Dashboard/util.d.ts +2 -1
- package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/util.js +12 -1
- package/dist/cjs/components/QuillTable.d.ts +2 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +7 -1
- package/dist/cjs/components/ReportBuilder/ColumnComponent.d.ts +48 -0
- package/dist/cjs/components/ReportBuilder/ColumnComponent.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/ColumnComponent.js +46 -0
- package/dist/cjs/components/ReportBuilder/FilterComponent.d.ts +65 -0
- package/dist/cjs/components/ReportBuilder/FilterComponent.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/FilterComponent.js +51 -0
- package/dist/cjs/components/ReportBuilder/LimitComponent.d.ts +42 -0
- package/dist/cjs/components/ReportBuilder/LimitComponent.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/LimitComponent.js +50 -0
- package/dist/cjs/components/ReportBuilder/PivotComponent.d.ts +66 -0
- package/dist/cjs/components/ReportBuilder/PivotComponent.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/PivotComponent.js +47 -0
- package/dist/cjs/components/ReportBuilder/SaveReport.d.ts +162 -0
- package/dist/cjs/components/ReportBuilder/SaveReport.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/SaveReport.js +31 -0
- package/dist/cjs/components/ReportBuilder/SortComponent.d.ts +42 -0
- package/dist/cjs/components/ReportBuilder/SortComponent.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/SortComponent.js +50 -0
- package/dist/cjs/components/ReportBuilder/TableComponent.d.ts +28 -0
- package/dist/cjs/components/ReportBuilder/TableComponent.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/TableComponent.js +24 -0
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +3 -1
- package/dist/cjs/components/UiComponents.d.ts +5 -2
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +6 -5
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +38 -0
- package/dist/cjs/hooks/useDashboard.d.ts +3 -1
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +91 -6
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +17 -9
- package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
- package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
- package/dist/cjs/hooks/useLongLoading.js +67 -0
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +25 -1
- package/dist/cjs/hooks/useReportBuilder.d.ts +178 -0
- package/dist/cjs/hooks/useReportBuilder.d.ts.map +1 -0
- package/dist/cjs/hooks/useReportBuilder.js +1476 -0
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +27 -2
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +14 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +86 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +19 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +421 -141
- package/dist/cjs/models/Client.d.ts +6 -2
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.d.ts +4 -2
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +25 -2
- package/dist/cjs/utils/client.d.ts +2 -1
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +13 -2
- package/dist/cjs/utils/dashboard.d.ts +3 -1
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +44 -3
- package/dist/cjs/utils/filterProcessing.d.ts +2 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +12 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +11 -9
- package/dist/cjs/utils/report.d.ts +11 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +55 -8
- package/dist/cjs/utils/reportBuilder.d.ts.map +1 -1
- package/dist/cjs/utils/reportBuilder.js +5 -2
- package/dist/cjs/utils/schema.d.ts +5 -2
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +14 -2
- package/dist/cjs/utils/tableProcessing.d.ts +17 -10
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +99 -17
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +13 -1
- package/dist/esm/ChartBuilder.d.ts +3 -2
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +107 -18
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +3 -1
- package/dist/esm/Context.d.ts +6 -2
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +162 -34
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +94 -17
- package/dist/esm/QuillProvider.d.ts +40 -1
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +2 -2
- package/dist/esm/ReportBuilder.d.ts +4 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +106 -1262
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +51 -7
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +13 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +15 -10
- package/dist/esm/components/Chart/CustomBar.d.ts +18 -0
- package/dist/esm/components/Chart/CustomBar.d.ts.map +1 -0
- package/dist/esm/components/Chart/CustomBar.js +68 -0
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +25 -2
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardTemplate.js +3 -2
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +74 -3
- package/dist/esm/components/Dashboard/util.d.ts +2 -1
- package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/util.js +12 -1
- package/dist/esm/components/QuillTable.d.ts +2 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +2 -2
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +7 -1
- package/dist/esm/components/ReportBuilder/ColumnComponent.d.ts +48 -0
- package/dist/esm/components/ReportBuilder/ColumnComponent.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/ColumnComponent.js +39 -0
- package/dist/esm/components/ReportBuilder/FilterComponent.d.ts +65 -0
- package/dist/esm/components/ReportBuilder/FilterComponent.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/FilterComponent.js +44 -0
- package/dist/esm/components/ReportBuilder/LimitComponent.d.ts +42 -0
- package/dist/esm/components/ReportBuilder/LimitComponent.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/LimitComponent.js +46 -0
- package/dist/esm/components/ReportBuilder/PivotComponent.d.ts +66 -0
- package/dist/esm/components/ReportBuilder/PivotComponent.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/PivotComponent.js +40 -0
- package/dist/esm/components/ReportBuilder/SaveReport.d.ts +162 -0
- package/dist/esm/components/ReportBuilder/SaveReport.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/SaveReport.js +31 -0
- package/dist/esm/components/ReportBuilder/SortComponent.d.ts +42 -0
- package/dist/esm/components/ReportBuilder/SortComponent.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/SortComponent.js +46 -0
- package/dist/esm/components/ReportBuilder/TableComponent.d.ts +28 -0
- package/dist/esm/components/ReportBuilder/TableComponent.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/TableComponent.js +20 -0
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +4 -2
- package/dist/esm/components/UiComponents.d.ts +5 -2
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +6 -5
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +39 -1
- package/dist/esm/hooks/useDashboard.d.ts +3 -1
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +92 -7
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +18 -10
- package/dist/esm/hooks/useLongLoading.d.ts +13 -0
- package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
- package/dist/esm/hooks/useLongLoading.js +64 -0
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +26 -2
- package/dist/esm/hooks/useReportBuilder.d.ts +178 -0
- package/dist/esm/hooks/useReportBuilder.d.ts.map +1 -0
- package/dist/esm/hooks/useReportBuilder.js +1471 -0
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +28 -3
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -0
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +14 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +87 -4
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +19 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +423 -143
- package/dist/esm/models/Client.d.ts +6 -2
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.d.ts +4 -2
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +25 -2
- package/dist/esm/utils/client.d.ts +2 -1
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +13 -2
- package/dist/esm/utils/dashboard.d.ts +3 -1
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +44 -3
- package/dist/esm/utils/filterProcessing.d.ts +2 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +12 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +11 -9
- package/dist/esm/utils/report.d.ts +11 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +55 -8
- package/dist/esm/utils/reportBuilder.d.ts.map +1 -1
- package/dist/esm/utils/reportBuilder.js +5 -2
- package/dist/esm/utils/schema.d.ts +5 -2
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +14 -2
- package/dist/esm/utils/tableProcessing.d.ts +17 -10
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +99 -17
- package/package.json +1 -1
|
@@ -297,7 +297,7 @@ exports.MemoizedText = MemoizedText;
|
|
|
297
297
|
/**
|
|
298
298
|
* The one, true Quill popover component.
|
|
299
299
|
*/
|
|
300
|
-
const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undefined, popoverChildren, containerStyle, disabled, ignoredRefs, }) => {
|
|
300
|
+
const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undefined, popoverChildren, containerStyle, disabled, ignoredRefs, horizontalPadding = 20, titlePaddingLeft = 0, }) => {
|
|
301
301
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
302
302
|
const [rightAlignment, setRightAlignment] = (0, react_1.useState)('auto');
|
|
303
303
|
const modalRef = (0, react_1.useRef)(null);
|
|
@@ -357,7 +357,7 @@ const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undef
|
|
|
357
357
|
zIndex: 999,
|
|
358
358
|
// top: 12,
|
|
359
359
|
borderRadius: 6,
|
|
360
|
-
padding:
|
|
360
|
+
padding: `20px ${horizontalPadding}px 20px ${horizontalPadding}px`,
|
|
361
361
|
right: rightAlignment,
|
|
362
362
|
}, children: [popoverTitle && ((0, jsx_runtime_1.jsx)("h1", { style: {
|
|
363
363
|
fontWeight: '600',
|
|
@@ -367,6 +367,7 @@ const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undef
|
|
|
367
367
|
marginBottom: 5,
|
|
368
368
|
color: theme?.primaryTextColor,
|
|
369
369
|
fontFamily: theme?.fontFamily,
|
|
370
|
+
paddingLeft: titlePaddingLeft,
|
|
370
371
|
}, children: popoverTitle })), popoverChildren] }) }))] }));
|
|
371
372
|
};
|
|
372
373
|
exports.MemoizedPopover = MemoizedPopover;
|
|
@@ -495,7 +496,7 @@ const QuillTableReportBuilderComponent = ({ rows, columns, isLoading = false, ro
|
|
|
495
496
|
setCurrentPage && setCurrentPage(0);
|
|
496
497
|
setPage(0);
|
|
497
498
|
onSortChange && onSortChange(sort);
|
|
498
|
-
}, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle, disableSort: disableSort }));
|
|
499
|
+
}, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle, disableSort: disableSort, overrideInMemortSort: true }));
|
|
499
500
|
};
|
|
500
501
|
exports.QuillTableReportBuilderComponent = QuillTableReportBuilderComponent;
|
|
501
502
|
const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, rowCountIsLoading, onPageChange, onSortChange, currentPage, hideLabels, }) => {
|
|
@@ -762,7 +763,7 @@ const QuillLoadingComponent = () => {
|
|
|
762
763
|
, stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] })] }));
|
|
763
764
|
};
|
|
764
765
|
exports.QuillLoadingComponent = QuillLoadingComponent;
|
|
765
|
-
const OverflowContainer = ({ children }) => {
|
|
766
|
+
const OverflowContainer = ({ children, style, }) => {
|
|
766
767
|
const containerRef = (0, react_1.useRef)(null);
|
|
767
768
|
const [showTopShadow, setShowTopShadow] = (0, react_1.useState)(false);
|
|
768
769
|
const [showBottomShadow, setShowBottomShadow] = (0, react_1.useState)(false);
|
|
@@ -797,7 +798,7 @@ const OverflowContainer = ({ children }) => {
|
|
|
797
798
|
const containerStyle = {
|
|
798
799
|
position: 'relative',
|
|
799
800
|
overflowY: 'auto',
|
|
800
|
-
|
|
801
|
+
...style,
|
|
801
802
|
};
|
|
802
803
|
const shadowStyle = {
|
|
803
804
|
position: 'sticky',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB;AA6BD,eAAO,MAAM,WAAW,kBACP,MAAM,KACpB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;KAE/B,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAyPtD,CAAC"}
|
|
@@ -40,6 +40,7 @@ const useAskQuill = (dashboardName) => {
|
|
|
40
40
|
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
41
41
|
const { tenants } = (0, react_1.useContext)(Context_1.TenantContext);
|
|
42
42
|
const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
|
|
43
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
43
44
|
const [astInfo, setAstInfo] = (0, react_1.useState)(undefined);
|
|
44
45
|
const [data, setData] = (0, react_1.useState)({
|
|
45
46
|
rows: [],
|
|
@@ -76,6 +77,7 @@ const useAskQuill = (dashboardName) => {
|
|
|
76
77
|
dashboardName,
|
|
77
78
|
tenants,
|
|
78
79
|
getToken,
|
|
80
|
+
eventTracking,
|
|
79
81
|
});
|
|
80
82
|
if (astInfo.error) {
|
|
81
83
|
throw new Error(astInfo.error);
|
|
@@ -88,6 +90,7 @@ const useAskQuill = (dashboardName) => {
|
|
|
88
90
|
pivot: astInfo.pivot,
|
|
89
91
|
dashboardName,
|
|
90
92
|
getToken,
|
|
93
|
+
eventTracking,
|
|
91
94
|
});
|
|
92
95
|
if (!reportBuilderInfo) {
|
|
93
96
|
throw new Error('Error fetching report');
|
|
@@ -105,6 +108,17 @@ const useAskQuill = (dashboardName) => {
|
|
|
105
108
|
setError(err.message);
|
|
106
109
|
setLoading(false);
|
|
107
110
|
}
|
|
111
|
+
eventTracking?.logError?.({
|
|
112
|
+
type: 'bug', // TODO: determine type
|
|
113
|
+
severity: 'high',
|
|
114
|
+
message: 'Error fetching ask quill',
|
|
115
|
+
errorMessage: err.message,
|
|
116
|
+
errorStack: err.stack,
|
|
117
|
+
errorData: {
|
|
118
|
+
caller: 'useAskQuill',
|
|
119
|
+
function: 'askHelper',
|
|
120
|
+
},
|
|
121
|
+
});
|
|
108
122
|
return;
|
|
109
123
|
}
|
|
110
124
|
const convertedColumns = convertColumnInternalToAskQuillColumn(reportBuilderInfo?.pivotData?.columns || reportBuilderInfo?.columns || []);
|
|
@@ -138,6 +152,7 @@ const useAskQuill = (dashboardName) => {
|
|
|
138
152
|
pivot: newPivot,
|
|
139
153
|
dashboardName,
|
|
140
154
|
getToken,
|
|
155
|
+
eventTracking,
|
|
141
156
|
});
|
|
142
157
|
setLoading(false);
|
|
143
158
|
if (!reportBuilderInfo) {
|
|
@@ -145,6 +160,17 @@ const useAskQuill = (dashboardName) => {
|
|
|
145
160
|
}
|
|
146
161
|
}
|
|
147
162
|
catch (err) {
|
|
163
|
+
eventTracking?.logError?.({
|
|
164
|
+
type: 'bug', // TODO: determine type
|
|
165
|
+
severity: 'high',
|
|
166
|
+
message: 'Error fetching ask quill',
|
|
167
|
+
errorMessage: err.message,
|
|
168
|
+
errorStack: err.stack,
|
|
169
|
+
errorData: {
|
|
170
|
+
caller: 'useAskQuill',
|
|
171
|
+
function: 'onChangePivot',
|
|
172
|
+
},
|
|
173
|
+
});
|
|
148
174
|
if (err instanceof Error) {
|
|
149
175
|
setError(err.message);
|
|
150
176
|
setLoading(false);
|
|
@@ -182,10 +208,22 @@ const useAskQuill = (dashboardName) => {
|
|
|
182
208
|
pivot: data.pivot || undefined,
|
|
183
209
|
dashboardName,
|
|
184
210
|
getToken,
|
|
211
|
+
eventTracking,
|
|
185
212
|
});
|
|
186
213
|
setLoading(false);
|
|
187
214
|
}
|
|
188
215
|
catch (err) {
|
|
216
|
+
eventTracking?.logError?.({
|
|
217
|
+
type: 'bug', // TODO: determine type
|
|
218
|
+
severity: 'high',
|
|
219
|
+
message: 'Error fetching ask quill',
|
|
220
|
+
errorMessage: err.message,
|
|
221
|
+
errorStack: err.stack,
|
|
222
|
+
errorData: {
|
|
223
|
+
caller: 'useAskQuill',
|
|
224
|
+
function: 'onChangeFilterTree',
|
|
225
|
+
},
|
|
226
|
+
});
|
|
189
227
|
if (err instanceof Error) {
|
|
190
228
|
setError(err.message);
|
|
191
229
|
setLoading(false);
|
|
@@ -75,7 +75,9 @@ export declare const useDashboard: (dashboardName: string) => {
|
|
|
75
75
|
};
|
|
76
76
|
} | Filter>) => void;
|
|
77
77
|
};
|
|
78
|
-
export declare const useDashboardReport: (reportId: string
|
|
78
|
+
export declare const useDashboardReport: (reportId: string, config?: {
|
|
79
|
+
initialFilters?: Filter[];
|
|
80
|
+
}) => {
|
|
79
81
|
report: QuillReport | null;
|
|
80
82
|
loading: boolean;
|
|
81
83
|
applyFilters: (filters: Filter[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAGL,uBAAuB,EAGvB,MAAM,EACN,cAAc,EAGd,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,eAAO,MAAM,oBAAoB,kBAChB,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CAoNc,MAAM;qCAjL1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;oCAmFa;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE;CAmG3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,MAAM;;;;yBAK5B,OAAO,CAAC,mBAAmB,CAAC;sBAiB/B,mBAAmB;CAoB7C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAqBzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;uEAuCrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,uBAAuB,CAAC;KACtC;4BA2EO,MAAM,gEAOT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,UAAU,CAAC,EAAE,uBAAuB,CAAC;QACrC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB;4BAiQkC,MAAM;CAwB5C,CAAC;AAGF,eAAO,MAAM,YAAY,kBACR,MAAM,KAEpB;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,EAAE,CACZ,OAAO,EAAE,KAAK,CACV;QACE,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG;YAAE,SAAS,CAAC,EAAE,IAAI,CAAC;YAAC,OAAO,CAAC,EAAE,IAAI,CAAA;SAAE,CAAC;KACjE,GACD,MAAM,CACT,KACE,IAAI,CAAC;CA2PX,CAAC;AAGF,eAAO,MAAM,kBAAkB,aACnB,MAAM,WACP;IACP,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,KACA;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAC;CA+I1B,CAAC"}
|
|
@@ -17,13 +17,12 @@ const useDashboardInternal = (dashboardName, customFilters) => {
|
|
|
17
17
|
// const [error, setError] = useState<any>(null);
|
|
18
18
|
const [client, isClientLoading] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
19
19
|
const { quillFetchWithToken } = (0, react_1.useContext)(Context_1.FetchContext);
|
|
20
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
20
21
|
const loading = (0, react_1.useMemo)(() => {
|
|
21
22
|
return (!dashboardName ||
|
|
22
23
|
isClientLoading ||
|
|
23
24
|
isDashboardsLoading ||
|
|
24
|
-
dashboardConfig[dashboardName]?.loading
|
|
25
|
-
(dashboardConfig[dashboardName] &&
|
|
26
|
-
!dashboardConfig[dashboardName]?.config.sections));
|
|
25
|
+
dashboardConfig[dashboardName]?.loading);
|
|
27
26
|
}, [isClientLoading, dashboardConfig, dashboardName, isDashboardsLoading]);
|
|
28
27
|
const populatedDashboardFilters = (0, react_1.useMemo)(() => {
|
|
29
28
|
return dashboardName && dashboardFilters[dashboardName] !== undefined
|
|
@@ -143,6 +142,17 @@ const useDashboardInternal = (dashboardName, customFilters) => {
|
|
|
143
142
|
}
|
|
144
143
|
catch (e) {
|
|
145
144
|
console.error(e);
|
|
145
|
+
eventTracking?.logError?.({
|
|
146
|
+
type: 'bug', // TODO: determine type
|
|
147
|
+
severity: 'high',
|
|
148
|
+
message: 'Error setting section order',
|
|
149
|
+
errorMessage: e.message,
|
|
150
|
+
errorStack: e.stack,
|
|
151
|
+
errorData: {
|
|
152
|
+
caller: 'useDashboard',
|
|
153
|
+
function: 'setSectionOrder',
|
|
154
|
+
},
|
|
155
|
+
});
|
|
146
156
|
}
|
|
147
157
|
}
|
|
148
158
|
};
|
|
@@ -234,6 +244,7 @@ const useDashboards = () => {
|
|
|
234
244
|
const { reportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
|
|
235
245
|
const [client, isLoading] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
236
246
|
const { quillFetchWithToken } = (0, react_1.useContext)(Context_1.FetchContext);
|
|
247
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
237
248
|
const dashboards = (0, react_1.useMemo)(() => {
|
|
238
249
|
return Object.values(dashboardConfig)
|
|
239
250
|
.map((dashboard) => {
|
|
@@ -283,6 +294,15 @@ const useDashboards = () => {
|
|
|
283
294
|
task: 'edit-dashboard',
|
|
284
295
|
metadata: body,
|
|
285
296
|
});
|
|
297
|
+
eventTracking?.logEvent?.('create-dashboard', {
|
|
298
|
+
dashboardName: name,
|
|
299
|
+
});
|
|
300
|
+
if (filters.length > 0 || dateFilter) {
|
|
301
|
+
eventTracking?.logEvent?.('update-dashboard-filters', {
|
|
302
|
+
dashboardName: name,
|
|
303
|
+
numFilters: filters.length + (dateFilter ? 1 : 0),
|
|
304
|
+
});
|
|
305
|
+
}
|
|
286
306
|
dashboardConfigDispatch({
|
|
287
307
|
type: 'UPDATE_DASHBOARD',
|
|
288
308
|
id: name,
|
|
@@ -297,6 +317,17 @@ const useDashboards = () => {
|
|
|
297
317
|
}
|
|
298
318
|
catch (e) {
|
|
299
319
|
console.error(e);
|
|
320
|
+
eventTracking?.logError?.({
|
|
321
|
+
type: 'bug', // TODO: determine type
|
|
322
|
+
severity: 'high',
|
|
323
|
+
message: 'Error creating dashboard',
|
|
324
|
+
errorMessage: e.message,
|
|
325
|
+
errorStack: e.stack,
|
|
326
|
+
errorData: {
|
|
327
|
+
caller: 'useDashboards',
|
|
328
|
+
function: 'createDashboard',
|
|
329
|
+
},
|
|
330
|
+
});
|
|
300
331
|
}
|
|
301
332
|
};
|
|
302
333
|
const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, }) => {
|
|
@@ -330,6 +361,16 @@ const useDashboards = () => {
|
|
|
330
361
|
task: 'edit-dashboard',
|
|
331
362
|
metadata: body,
|
|
332
363
|
});
|
|
364
|
+
eventTracking?.logEvent?.('update-dashboard', {
|
|
365
|
+
dashboardName: updated.data.dashboard.name,
|
|
366
|
+
dashboardId: updated.data.dashboard.dashboardId,
|
|
367
|
+
});
|
|
368
|
+
if (filters.length > 0 || dateFilter) {
|
|
369
|
+
eventTracking?.logEvent?.('update-dashboard-filters', {
|
|
370
|
+
dashboardName: name,
|
|
371
|
+
numFilters: filters.length + (dateFilter ? 1 : 0),
|
|
372
|
+
});
|
|
373
|
+
}
|
|
333
374
|
dashboardConfigDispatch({
|
|
334
375
|
type: 'UPDATE_DASHBOARD',
|
|
335
376
|
id: updated.data.dashboard.name,
|
|
@@ -481,6 +522,17 @@ const useDashboards = () => {
|
|
|
481
522
|
}
|
|
482
523
|
catch (e) {
|
|
483
524
|
console.error(e);
|
|
525
|
+
eventTracking?.logError?.({
|
|
526
|
+
type: 'bug', // TODO: determine type
|
|
527
|
+
severity: 'high',
|
|
528
|
+
message: 'Error updating dashboard',
|
|
529
|
+
errorMessage: e.message,
|
|
530
|
+
errorStack: e.stack,
|
|
531
|
+
errorData: {
|
|
532
|
+
caller: 'useDashboards',
|
|
533
|
+
function: 'updateDashboard',
|
|
534
|
+
},
|
|
535
|
+
});
|
|
484
536
|
}
|
|
485
537
|
};
|
|
486
538
|
const deleteDashboard = async (name) => {
|
|
@@ -520,6 +572,12 @@ const useDashboard = (dashboardName) => {
|
|
|
520
572
|
const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
|
|
521
573
|
const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
|
|
522
574
|
const { customReportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
|
|
575
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
576
|
+
const customFiltersRef = (0, react_1.useRef)(customReportFilters);
|
|
577
|
+
// Keep ref updated with latest filters
|
|
578
|
+
(0, react_1.useEffect)(() => {
|
|
579
|
+
customFiltersRef.current = customReportFilters;
|
|
580
|
+
}, [customReportFilters]);
|
|
523
581
|
// If useDashboard is being used before Dashboard Context is set, we need to
|
|
524
582
|
// actively load the dashboard
|
|
525
583
|
(0, react_1.useEffect)(() => {
|
|
@@ -642,6 +700,20 @@ const useDashboard = (dashboardName) => {
|
|
|
642
700
|
const newDashboardFilters = applyDashboardFilters(dashboardFilters);
|
|
643
701
|
fetchReports(newCustomFilters, newDashboardFilters);
|
|
644
702
|
};
|
|
703
|
+
// In case useDashboardReport set initial custom filters
|
|
704
|
+
const waitForCustomFilters = async (reportId) => {
|
|
705
|
+
let attempts = 0;
|
|
706
|
+
const maxAttempts = 10; // Prevent infinite loops
|
|
707
|
+
while (attempts < maxAttempts) {
|
|
708
|
+
const filters = customFiltersRef.current[reportId];
|
|
709
|
+
if (filters && filters.length > 0) {
|
|
710
|
+
return filters;
|
|
711
|
+
}
|
|
712
|
+
await new Promise((resolve) => setTimeout(resolve, 100)); // Wait 100ms between checks
|
|
713
|
+
attempts++;
|
|
714
|
+
}
|
|
715
|
+
return [];
|
|
716
|
+
};
|
|
645
717
|
const fetchReports = async (customFilters, dashboardFilters) => {
|
|
646
718
|
if (!client || !sections)
|
|
647
719
|
return;
|
|
@@ -652,7 +724,7 @@ const useDashboard = (dashboardName) => {
|
|
|
652
724
|
id: reportId,
|
|
653
725
|
data: true,
|
|
654
726
|
});
|
|
655
|
-
const customReportFiltersArray =
|
|
727
|
+
const customReportFiltersArray = await waitForCustomFilters(reportId);
|
|
656
728
|
const { report, error } = await (0, report_1.fetchReport)({
|
|
657
729
|
reportId,
|
|
658
730
|
client,
|
|
@@ -662,6 +734,7 @@ const useDashboard = (dashboardName) => {
|
|
|
662
734
|
.concat(customFilters)
|
|
663
735
|
.concat(customReportFiltersArray),
|
|
664
736
|
getToken,
|
|
737
|
+
eventTracking,
|
|
665
738
|
});
|
|
666
739
|
if (error) {
|
|
667
740
|
console.error(error);
|
|
@@ -689,20 +762,31 @@ const useDashboard = (dashboardName) => {
|
|
|
689
762
|
};
|
|
690
763
|
exports.useDashboard = useDashboard;
|
|
691
764
|
// useDashboard accompanying hook
|
|
692
|
-
const useDashboardReport = (reportId) => {
|
|
765
|
+
const useDashboardReport = (reportId, config) => {
|
|
693
766
|
const { reports, reportsLoadingState, reportsDispatch, reportsLoadingStateDispatch, } = (0, react_1.useContext)(Context_1.ReportsContext);
|
|
694
767
|
const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
|
|
695
768
|
const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
|
|
696
769
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
697
770
|
const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
|
|
771
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
698
772
|
const { customReportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
|
|
699
773
|
const { dashboardCustomFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
|
|
700
774
|
const { data: dashboardData, dashboardFilters: dashboardFiltersInternal, reload: reloadDashboard, } = (0, exports.useDashboardInternal)(reports[reportId]?.dashboardName ?? null);
|
|
775
|
+
// Add initial custom filters to context
|
|
776
|
+
(0, react_1.useEffect)(() => {
|
|
777
|
+
if (config?.initialFilters) {
|
|
778
|
+
customReportFiltersDispatch({
|
|
779
|
+
type: 'ADD_CUSTOM_REPORT_FILTERS',
|
|
780
|
+
reportId,
|
|
781
|
+
data: config.initialFilters.map(Filter_1.convertCustomFilter),
|
|
782
|
+
});
|
|
783
|
+
}
|
|
784
|
+
}, []);
|
|
701
785
|
const processedReport = (0, react_1.useMemo)(() => {
|
|
702
786
|
if (!reports[reportId])
|
|
703
787
|
return null;
|
|
704
788
|
const dashboardName = reports[reportId].dashboardName;
|
|
705
|
-
return (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(reports[reportId]), Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter), 'useDashboardReport');
|
|
789
|
+
return (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(reports[reportId]), Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter), eventTracking, 'useDashboardReport');
|
|
706
790
|
}, [reports, reportId, dashboardFilters]);
|
|
707
791
|
const setReportFilters = (filters) => {
|
|
708
792
|
updateReport(filters);
|
|
@@ -733,6 +817,7 @@ const useDashboardReport = (reportId) => {
|
|
|
733
817
|
flags,
|
|
734
818
|
filters: requestFilters,
|
|
735
819
|
getToken,
|
|
820
|
+
eventTracking,
|
|
736
821
|
});
|
|
737
822
|
if (error) {
|
|
738
823
|
console.error(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqE/C,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;CA+RvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -16,7 +16,7 @@ const report_1 = require("../utils/report");
|
|
|
16
16
|
const jspdf_1 = __importDefault(require("jspdf"));
|
|
17
17
|
const valueFormatter_1 = require("../utils/valueFormatter");
|
|
18
18
|
const useDashboard_1 = require("./useDashboard");
|
|
19
|
-
async function getExportData(client, dashboardFilters, reportId, getToken, tenants, flags, customFields) {
|
|
19
|
+
async function getExportData(client, dashboardFilters, reportId, getToken, eventTracking, tenants, flags, customFields) {
|
|
20
20
|
const minimalFilters = Object.values(dashboardFilters).length
|
|
21
21
|
? Object.values(dashboardFilters).map((filter) => {
|
|
22
22
|
const newFilter = { ...filter };
|
|
@@ -51,6 +51,7 @@ async function getExportData(client, dashboardFilters, reportId, getToken, tenan
|
|
|
51
51
|
customFields,
|
|
52
52
|
getToken,
|
|
53
53
|
tenants,
|
|
54
|
+
eventTracking,
|
|
54
55
|
});
|
|
55
56
|
if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
|
|
56
57
|
cleanedReport.columns = cleanedReport.yAxisFields;
|
|
@@ -68,6 +69,7 @@ sectionField, } = {}) => {
|
|
|
68
69
|
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
69
70
|
const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
|
|
70
71
|
const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
|
|
72
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
71
73
|
const specificDashboardFilters = (0, react_1.useMemo)(() => {
|
|
72
74
|
if (!reportId) {
|
|
73
75
|
return [];
|
|
@@ -104,12 +106,14 @@ sectionField, } = {}) => {
|
|
|
104
106
|
}
|
|
105
107
|
setIsCSVLoading(true);
|
|
106
108
|
const resp = await getExportData(client, specificReportFilters.length > 0
|
|
107
|
-
? specificReportFilters.concat(
|
|
108
|
-
|
|
109
|
-
[])
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
[]
|
|
109
|
+
? specificReportFilters.concat([
|
|
110
|
+
...(customReportFilters[reportId] ?? []),
|
|
111
|
+
...(dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ?? []),
|
|
112
|
+
])
|
|
113
|
+
: specificDashboardFilters.concat([
|
|
114
|
+
...(customReportFilters[reportId] ?? []),
|
|
115
|
+
...(dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ?? []),
|
|
116
|
+
]), reportId, getToken, eventTracking, tenants, flags, schemaData?.customFields);
|
|
113
117
|
(0, csv_1.downloadCSV)({
|
|
114
118
|
rows: resp.pivot && resp.pivotRows && downloadOptions?.usePivotRows
|
|
115
119
|
? resp.pivotRows
|
|
@@ -132,10 +136,14 @@ sectionField, } = {}) => {
|
|
|
132
136
|
tenants,
|
|
133
137
|
flags,
|
|
134
138
|
useReportTask: true,
|
|
135
|
-
filters: filters.concat(
|
|
136
|
-
|
|
139
|
+
filters: filters.concat([
|
|
140
|
+
...(customReportFilters[reportId] ?? []),
|
|
141
|
+
...(dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
|
|
142
|
+
[]),
|
|
143
|
+
]),
|
|
137
144
|
customFields: schemaData?.customFields,
|
|
138
145
|
getToken,
|
|
146
|
+
eventTracking,
|
|
139
147
|
});
|
|
140
148
|
if (error) {
|
|
141
149
|
console.error(error);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type LongLoadingMeta = {
|
|
2
|
+
origin: string;
|
|
3
|
+
loadDescription: string;
|
|
4
|
+
expectedLoadTime?: number;
|
|
5
|
+
abnormalLoadTime?: number;
|
|
6
|
+
};
|
|
7
|
+
type LoadingState = {
|
|
8
|
+
isLongLoading: boolean;
|
|
9
|
+
isAbnormalLoading: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function useLongLoading(isLoading: boolean, meta: LongLoadingMeta): LoadingState;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=useLongLoading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLongLoading.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLongLoading.tsx"],"names":[],"mappings":"AAGA,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,eAAe,GACpB,YAAY,CAoEd"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLongLoading = useLongLoading;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const Context_1 = require("../Context");
|
|
6
|
+
function useLongLoading(isLoading, meta) {
|
|
7
|
+
const { origin, expectedLoadTime = 5000, abnormalLoadTime = 15000, loadDescription, } = meta;
|
|
8
|
+
const [isLongLoading, setIsLongLoading] = (0, react_1.useState)(false);
|
|
9
|
+
const [isAbnormalLoading, setIsAbnormalLoading] = (0, react_1.useState)(false);
|
|
10
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
11
|
+
(0, react_1.useEffect)(() => {
|
|
12
|
+
let longTimer = null;
|
|
13
|
+
let abnormalTimer = null;
|
|
14
|
+
if (isLoading) {
|
|
15
|
+
// Set timer for long loading
|
|
16
|
+
longTimer = setTimeout(() => {
|
|
17
|
+
setIsLongLoading(true);
|
|
18
|
+
eventTracking?.logError?.({
|
|
19
|
+
type: 'timeout',
|
|
20
|
+
severity: 'medium',
|
|
21
|
+
message: `${origin} loading is taking longer than expected`,
|
|
22
|
+
errorData: {
|
|
23
|
+
loadDescription,
|
|
24
|
+
expectedLoadTime,
|
|
25
|
+
currentTime: Date.now(),
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
// Set timer for abnormal loading
|
|
29
|
+
abnormalTimer = setTimeout(() => {
|
|
30
|
+
setIsAbnormalLoading(true);
|
|
31
|
+
eventTracking?.logError?.({
|
|
32
|
+
type: 'timeout',
|
|
33
|
+
severity: 'high',
|
|
34
|
+
message: `${origin} loading is taking abnormally long`,
|
|
35
|
+
errorData: {
|
|
36
|
+
loadDescription,
|
|
37
|
+
expectedLoadTime,
|
|
38
|
+
abnormalLoadTime,
|
|
39
|
+
currentTime: Date.now(),
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}, abnormalLoadTime - expectedLoadTime);
|
|
43
|
+
}, expectedLoadTime);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
setIsLongLoading(false);
|
|
47
|
+
setIsAbnormalLoading(false);
|
|
48
|
+
}
|
|
49
|
+
return () => {
|
|
50
|
+
if (longTimer)
|
|
51
|
+
clearTimeout(longTimer);
|
|
52
|
+
if (abnormalTimer)
|
|
53
|
+
clearTimeout(abnormalTimer);
|
|
54
|
+
};
|
|
55
|
+
}, [
|
|
56
|
+
isLoading,
|
|
57
|
+
origin,
|
|
58
|
+
expectedLoadTime,
|
|
59
|
+
abnormalLoadTime,
|
|
60
|
+
loadDescription,
|
|
61
|
+
eventTracking,
|
|
62
|
+
]);
|
|
63
|
+
return {
|
|
64
|
+
isLongLoading,
|
|
65
|
+
isAbnormalLoading,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;CA+P1B,CAAC"}
|
|
@@ -26,12 +26,13 @@ const useQuill = (reportId, pagination) => {
|
|
|
26
26
|
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
27
27
|
const [client, isClientLoading] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
28
28
|
const { tenants } = (0, react_1.useContext)(Context_1.TenantContext);
|
|
29
|
+
const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
|
|
29
30
|
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
30
31
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
31
32
|
const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
|
|
32
33
|
const processedReport = (0, react_1.useMemo)(() => {
|
|
33
34
|
return reportId && allReportsById[reportId]
|
|
34
|
-
? (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(allReportsById[reportId]), specificReportFilters ?? [], 'useQuill')
|
|
35
|
+
? (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(allReportsById[reportId]), specificReportFilters ?? [], eventTracking, 'useQuill')
|
|
35
36
|
: undefined;
|
|
36
37
|
}, [reportId, reportId && allReportsById[reportId], specificReportFilters]);
|
|
37
38
|
const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)(pagination
|
|
@@ -98,6 +99,7 @@ const useQuill = (reportId, pagination) => {
|
|
|
98
99
|
filters: reportFilters[reportId],
|
|
99
100
|
customFields: schemaData.customFields,
|
|
100
101
|
getToken,
|
|
102
|
+
eventTracking,
|
|
101
103
|
});
|
|
102
104
|
if (paginatedRows.error) {
|
|
103
105
|
throw new Error('Error fetching chart');
|
|
@@ -117,6 +119,17 @@ const useQuill = (reportId, pagination) => {
|
|
|
117
119
|
}
|
|
118
120
|
catch (e) {
|
|
119
121
|
console.log(e);
|
|
122
|
+
eventTracking?.logError?.({
|
|
123
|
+
type: 'bug', // TODO: determine type
|
|
124
|
+
severity: 'high',
|
|
125
|
+
message: 'Error fetching report',
|
|
126
|
+
errorMessage: e.message,
|
|
127
|
+
errorStack: e.stack,
|
|
128
|
+
errorData: {
|
|
129
|
+
caller: 'useQuill',
|
|
130
|
+
function: 'updateTableRows',
|
|
131
|
+
},
|
|
132
|
+
});
|
|
120
133
|
}
|
|
121
134
|
finally {
|
|
122
135
|
setTimeout(() => {
|
|
@@ -159,6 +172,17 @@ const useQuill = (reportId, pagination) => {
|
|
|
159
172
|
}
|
|
160
173
|
catch (error) {
|
|
161
174
|
setError(error.message ?? 'Error fetching report');
|
|
175
|
+
eventTracking?.logError?.({
|
|
176
|
+
type: 'bug', // TODO: determine type
|
|
177
|
+
severity: 'high',
|
|
178
|
+
message: 'Error fetching report',
|
|
179
|
+
errorMessage: error.message,
|
|
180
|
+
errorStack: error.stack,
|
|
181
|
+
errorData: {
|
|
182
|
+
caller: 'useQuill',
|
|
183
|
+
function: 'fetchReportHelper',
|
|
184
|
+
},
|
|
185
|
+
});
|
|
162
186
|
}
|
|
163
187
|
finally {
|
|
164
188
|
setLoading(false);
|