@quillsql/react 2.12.38 → 2.12.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  2. package/dist/cjs/ChartBuilder.js +2 -2
  3. package/dist/cjs/Context.d.ts.map +1 -1
  4. package/dist/cjs/Context.js +2 -0
  5. package/dist/cjs/Dashboard.d.ts +35 -3
  6. package/dist/cjs/Dashboard.d.ts.map +1 -1
  7. package/dist/cjs/Dashboard.js +72 -72
  8. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  9. package/dist/cjs/components/Dashboard/ChartComponent.js +1 -0
  10. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +12 -0
  11. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -0
  12. package/dist/cjs/components/Dashboard/DashboardTemplate.js +69 -0
  13. package/dist/cjs/components/Dashboard/TemplateChartComponent.d.ts +4 -0
  14. package/dist/cjs/components/Dashboard/TemplateChartComponent.d.ts.map +1 -0
  15. package/dist/cjs/components/Dashboard/TemplateChartComponent.js +23 -0
  16. package/dist/cjs/components/Dashboard/TemplateMetricComponent.d.ts +4 -0
  17. package/dist/cjs/components/Dashboard/TemplateMetricComponent.d.ts.map +1 -0
  18. package/dist/cjs/components/Dashboard/TemplateMetricComponent.js +23 -0
  19. package/dist/cjs/components/Dashboard/TemplateTableComponent.d.ts +15 -0
  20. package/dist/cjs/components/Dashboard/TemplateTableComponent.d.ts.map +1 -0
  21. package/dist/cjs/components/Dashboard/TemplateTableComponent.js +23 -0
  22. package/dist/cjs/components/Dashboard/util.d.ts +6 -0
  23. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -0
  24. package/dist/cjs/components/Dashboard/util.js +85 -0
  25. package/dist/cjs/components/UiComponents.d.ts +1 -23
  26. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  27. package/dist/cjs/components/UiComponents.js +67 -25
  28. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  29. package/dist/cjs/hooks/useDashboard.js +7 -5
  30. package/dist/cjs/models/Report.d.ts +4 -0
  31. package/dist/cjs/models/Report.d.ts.map +1 -1
  32. package/dist/cjs/utils/constants.d.ts +1 -0
  33. package/dist/cjs/utils/constants.d.ts.map +1 -1
  34. package/dist/cjs/utils/constants.js +2 -1
  35. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  36. package/dist/cjs/utils/dashboard.js +2 -0
  37. package/dist/cjs/utils/dates.d.ts +1 -1
  38. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  39. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  40. package/dist/cjs/utils/pivotProcessing.js +5 -2
  41. package/dist/cjs/utils/schema.d.ts.map +1 -1
  42. package/dist/cjs/utils/schema.js +5 -2
  43. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  44. package/dist/cjs/utils/tableProcessing.js +2 -1
  45. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  46. package/dist/esm/ChartBuilder.js +2 -2
  47. package/dist/esm/Context.d.ts.map +1 -1
  48. package/dist/esm/Context.js +2 -0
  49. package/dist/esm/Dashboard.d.ts +35 -3
  50. package/dist/esm/Dashboard.d.ts.map +1 -1
  51. package/dist/esm/Dashboard.js +73 -73
  52. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  53. package/dist/esm/components/Dashboard/ChartComponent.js +1 -0
  54. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +12 -0
  55. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -0
  56. package/dist/esm/components/Dashboard/DashboardTemplate.js +63 -0
  57. package/dist/esm/components/Dashboard/TemplateChartComponent.d.ts +4 -0
  58. package/dist/esm/components/Dashboard/TemplateChartComponent.d.ts.map +1 -0
  59. package/dist/esm/components/Dashboard/TemplateChartComponent.js +17 -0
  60. package/dist/esm/components/Dashboard/TemplateMetricComponent.d.ts +4 -0
  61. package/dist/esm/components/Dashboard/TemplateMetricComponent.d.ts.map +1 -0
  62. package/dist/esm/components/Dashboard/TemplateMetricComponent.js +17 -0
  63. package/dist/esm/components/Dashboard/TemplateTableComponent.d.ts +15 -0
  64. package/dist/esm/components/Dashboard/TemplateTableComponent.d.ts.map +1 -0
  65. package/dist/esm/components/Dashboard/TemplateTableComponent.js +17 -0
  66. package/dist/esm/components/Dashboard/util.d.ts +6 -0
  67. package/dist/esm/components/Dashboard/util.d.ts.map +1 -0
  68. package/dist/esm/components/Dashboard/util.js +80 -0
  69. package/dist/esm/components/UiComponents.d.ts +1 -23
  70. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  71. package/dist/esm/components/UiComponents.js +65 -23
  72. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  73. package/dist/esm/hooks/useDashboard.js +7 -5
  74. package/dist/esm/models/Report.d.ts +4 -0
  75. package/dist/esm/models/Report.d.ts.map +1 -1
  76. package/dist/esm/utils/constants.d.ts +1 -0
  77. package/dist/esm/utils/constants.d.ts.map +1 -1
  78. package/dist/esm/utils/constants.js +1 -0
  79. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  80. package/dist/esm/utils/dashboard.js +2 -0
  81. package/dist/esm/utils/dates.d.ts +1 -1
  82. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  83. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  84. package/dist/esm/utils/pivotProcessing.js +5 -2
  85. package/dist/esm/utils/schema.d.ts.map +1 -1
  86. package/dist/esm/utils/schema.js +5 -2
  87. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  88. package/dist/esm/utils/tableProcessing.js +2 -1
  89. package/package.json +1 -1
@@ -65,6 +65,36 @@ export interface DashboardProps {
65
65
  direction: string;
66
66
  }) => void;
67
67
  }) => JSX.Element;
68
+ /** A component (to be used in a template) that wraps a dashboard item for 'metric' chart types. */
69
+ TemplateMetricComponent?: ({ report, onClick, isLoading, error, }: {
70
+ report: QuillReport;
71
+ onClick?: (report: QuillReport) => void;
72
+ isLoading?: boolean;
73
+ error?: string;
74
+ }) => JSX.Element;
75
+ /** A component (to be used in a template) that wraps a dashboard item for non-table, non-metric chart types. */
76
+ TemplateChartComponent?: ({ report, onClick, isLoading, error, dateBucket, children, onClickChartElement, }: {
77
+ report: QuillReport;
78
+ onClick?: (report: QuillReport) => void;
79
+ isLoading?: boolean;
80
+ error?: string;
81
+ children?: ReactNode;
82
+ dateBucket?: string;
83
+ onClickChartElement?: (data: any) => void;
84
+ }) => JSX.Element;
85
+ /** A component (to be used in a template) that wraps a dashboard item for 'table' chart types. */
86
+ TemplateTableComponent?: ({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }: {
87
+ report: QuillReport;
88
+ onClick?: (report: QuillReport) => void;
89
+ isLoading?: boolean;
90
+ error?: string;
91
+ rowCount?: number;
92
+ onPageChange?: (page: number) => void;
93
+ onSortChange?: (sort: {
94
+ field: string;
95
+ direction: string;
96
+ }) => void;
97
+ }) => JSX.Element;
68
98
  /** A select component. */
69
99
  SelectComponent?: ({ label, value, options, onChange, width, }: {
70
100
  value: string;
@@ -108,8 +138,8 @@ export interface DashboardProps {
108
138
  filterLabel: string;
109
139
  onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
110
140
  }) => JSX.Element;
111
- /** A modal for user filters */
112
- UserFilterModalComponent?: (props: {
141
+ /** A modal component */
142
+ ModalComponent?: (props: {
113
143
  children: ReactNode;
114
144
  isOpen: boolean;
115
145
  title: string;
@@ -243,6 +273,8 @@ export interface DashboardProps {
243
273
  };
244
274
  /** Flag for displaying admin errors */
245
275
  hideAdminErrors?: boolean;
276
+ /** Template dashboard */
277
+ templateDashboardName?: string;
246
278
  }
247
279
  /**
248
280
  * ### Quill Dashboard
@@ -275,5 +307,5 @@ export interface DashboardProps {
275
307
  * ### API Reference
276
308
  * @see https://docs.quillsql.com/components/dashboard
277
309
  */
278
- export default function Dashboard({ name, hidden, SelectComponent, MultiSelectComponent, UserFilterModalComponent, ButtonComponent, SecondaryButtonComponent, FilterTagComponent, PopoverComponent, TextInputComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, DashboardLoadingComponent, ErrorComponent, onClickReport, onChangeLoading, hideFilters, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors, }: DashboardProps): import("react/jsx-runtime").JSX.Element | null;
310
+ export default function Dashboard({ name, hidden, SelectComponent, MultiSelectComponent, ModalComponent, ButtonComponent, SecondaryButtonComponent, FilterTagComponent, PopoverComponent, TextInputComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, TemplateMetricComponent, TemplateChartComponent, TemplateTableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, DashboardLoadingComponent, ErrorComponent, onClickReport, onChangeLoading, hideFilters, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors, templateDashboardName, }: DashboardProps): import("react/jsx-runtime").JSX.Element | null;
279
311
  //# sourceMappingURL=Dashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
@@ -9,11 +9,12 @@ import DashboardSectionContainer from './components/Dashboard/DashboardSectionCo
9
9
  import QuillMetricComponent from './components/Dashboard/MetricComponent';
10
10
  import QuillTableComponent from './components/Dashboard/TableComponent';
11
11
  import QuillChartComponent from './components/Dashboard/ChartComponent';
12
+ import QuillTemplateChartComponent from './components/Dashboard/TemplateChartComponent';
12
13
  import DashboardSection from './components/Dashboard/DashboardSection';
13
14
  import { styleToProps } from './utils/styles';
14
15
  import { QuillDateRangePicker } from './DateRangePicker/QuillDateRangePicker';
15
16
  import DataLoader, { ChartDataLoader, } from './components/Dashboard/DataLoader';
16
- import { QuillEmptyDashboardComponent, QuillFilterContainerComponent, QuillLoadingDashboardComponent, QuillUserFilterModalComponent, MemoizedButton, MemoizedSecondaryButton, QuillTextInput, MemoizedPopover, QuillErrorMessageComponent, } from './components/UiComponents';
17
+ import { QuillEmptyDashboardComponent, QuillFilterContainerComponent, QuillLoadingDashboardComponent, QuillModalComponent, MemoizedButton, MemoizedSecondaryButton, QuillTextInput, MemoizedPopover, QuillErrorMessageComponent, } from './components/UiComponents';
17
18
  import { DashboardFilter } from './components/Dashboard/DashboardFilter';
18
19
  import { BoolOperator, FieldTypes, NullOperator, NumberOperator, StringOperator, } from './models/Filter';
19
20
  import { QuillMultiSelectComponentWithCombo } from './components/QuillMultiSelectWithCombo';
@@ -26,6 +27,9 @@ import { filterSentence, getType } from './utils/filterProcessing';
26
27
  import { QuillChartErrorWithAction } from './components/Chart/ChartError';
27
28
  import { FilterPopoverWrapper, QuillFilterPopover, } from './components/ReportBuilder/ui';
28
29
  import FilterModal from './components/ReportBuilder/FilterModal';
30
+ import QuillTemplateMetricComponent from './components/Dashboard/TemplateMetricComponent';
31
+ import QuillTemplateTableComponent from './components/Dashboard/TemplateTableComponent';
32
+ import QuillDashboardTemplate from './components/Dashboard/DashboardTemplate';
29
33
  const defaultChartContainerStyles = {
30
34
  display: 'flex',
31
35
  width: '100%',
@@ -63,7 +67,7 @@ const defaultChartContainerStyles = {
63
67
  * ### API Reference
64
68
  * @see https://docs.quillsql.com/components/dashboard
65
69
  */
66
- export default function Dashboard({ name, hidden = false, SelectComponent = QuillSelectComponentWithCombo, MultiSelectComponent = QuillMultiSelectComponentWithCombo, UserFilterModalComponent = QuillUserFilterModalComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, FilterTagComponent = QuillFilterPopover, PopoverComponent = MemoizedPopover, TextInputComponent = QuillTextInput, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent = QuillDateRangePicker, MetricComponent = QuillMetricComponent, ChartComponent = QuillChartComponent, TableComponent = QuillTableComponent, DashboardSectionComponent = DashboardSection, DashboardSectionContainerComponent = DashboardSectionContainer, FilterContainerComponent = QuillFilterContainerComponent, DashboardLoadingComponent = QuillLoadingDashboardComponent, ErrorComponent = QuillChartErrorWithAction, onClickReport, onChangeLoading, hideFilters, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, comparisonLineStyle = 'solid', containerStyle, className, chartContainerStyle = defaultChartContainerStyles, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors = true, }) {
70
+ export default function Dashboard({ name, hidden = false, SelectComponent = QuillSelectComponentWithCombo, MultiSelectComponent = QuillMultiSelectComponentWithCombo, ModalComponent = QuillModalComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, FilterTagComponent = QuillFilterPopover, PopoverComponent = MemoizedPopover, TextInputComponent = QuillTextInput, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent = QuillDateRangePicker, MetricComponent = QuillMetricComponent, ChartComponent = QuillChartComponent, TableComponent = QuillTableComponent, TemplateMetricComponent = QuillTemplateMetricComponent, TemplateChartComponent = QuillTemplateChartComponent, TemplateTableComponent = QuillTemplateTableComponent, DashboardSectionComponent = DashboardSection, DashboardSectionContainerComponent = DashboardSectionContainer, FilterContainerComponent = QuillFilterContainerComponent, DashboardLoadingComponent = QuillLoadingDashboardComponent, ErrorComponent = QuillChartErrorWithAction, onClickReport, onChangeLoading, hideFilters, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, comparisonLineStyle = 'solid', containerStyle, className, chartContainerStyle = defaultChartContainerStyles, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors = true, templateDashboardName, }) {
67
71
  const [dashboard] = useContext(DashboardContext);
68
72
  const { isLoading: isDataLoading, data, reload, } = useDashboard(name);
69
73
  const [dashboardSections, setDashboardSections] = useState(null);
@@ -85,8 +89,12 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
85
89
  const [filterListIsOpen, setFilterListIsOpen] = useState(false);
86
90
  const [filterListAddFilterPopoverIsOpen, setFilterListAddFilterPopoverIsOpen,] = useState(false);
87
91
  const [uniqueCounter, setUniqueCounter] = useState(0);
88
- const [userFilters, setUserFilters] = useState([]);
89
- const [adminFilters, setAdminFilters] = useState([]);
92
+ const userFilters = appliedFilters
93
+ .map((filter, index) => {
94
+ return { filter, index };
95
+ })
96
+ .filter((filter) => filter.filter.isUserFilter);
97
+ const adminFilters = appliedFilters.filter((filter) => !filter.isUserFilter);
90
98
  const customOperatorOptions = {
91
99
  [FieldTypes.Numeric]: [
92
100
  NumberOperator.EqualTo,
@@ -159,12 +167,6 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
159
167
  };
160
168
  fetchData();
161
169
  }, [referencedTables]);
162
- useEffect(() => {
163
- setUserFilters([...appliedFilters.filter((filter) => filter.isUserFilter)]);
164
- setAdminFilters([
165
- ...appliedFilters.filter((filter) => !filter.isUserFilter),
166
- ]);
167
- }, [appliedFilters]);
168
170
  const getUniqueStringValues = async (columns, tableName) => {
169
171
  const convertedStringColumns = columns
170
172
  .filter((column) => {
@@ -548,80 +550,78 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
548
550
  const tables = (section) => dashboardSections[section]
549
551
  .filter(({ chartType }) => chartType === 'table')
550
552
  .sort(sortByOrdering);
551
- if (hidden || isLoading) {
553
+ if (hidden || isLoading || !dashboardSections) {
552
554
  return (_jsx(DashboardLoadingComponent, { containerStyle: containerStyle, chartContainerStyle: chartContainerStyle }));
553
555
  }
554
- if (!dashboardSections || Object.keys(dashboardSections).length == 0) {
556
+ if (Object.keys(dashboardSections).length == 0) {
555
557
  if (initialLoad || isLoading)
556
558
  return null;
557
559
  return _jsx(EmptyDashboardComponent, {});
558
560
  }
559
- return (_jsxs("div", { className: className, ...styleToProps(containerStyle), children: [filterSchemaIsLoaded &&
561
+ return (_jsxs("div", { className: className, ...styleToProps(containerStyle), children: [data &&
562
+ data.customFiltersEnabled &&
563
+ filterSchemaIsLoaded &&
560
564
  !hideAdminErrors &&
561
565
  !hideFilters &&
566
+ data &&
567
+ data.customFiltersEnabled &&
562
568
  filterSchema &&
563
- filterSchema.columns.length === 0 && (_jsx("div", { style: { marginBottom: 10 }, children: _jsx(QuillErrorMessageComponent, { errorMessage: "Warning: No custom filter options because there are no common views among the charts in the dashboard" }) })), !hideFilters && (_jsxs(FilterContainerComponent, { children: [adminFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: updateFilter, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))), _jsxs("div", { style: {
564
- display: 'flex',
565
- flexDirection: 'column',
566
- }, children: [data && data.customFiltersEnabled && (_jsx(SecondaryButtonComponent, { onClick: () => {
567
- if (fieldValuesIsLoaded) {
568
- setAddFilterPopoverIsOpen(true);
569
- setFilterListIsOpen(false);
570
- }
571
- }, label: `Add Filter` })), _jsx(PopoverComponent, { isOpen: addFilterPopoverIsOpen, setIsOpen: setAddFilterPopoverIsOpen, popoverTitle: "Add Filter", popoverChildren: _jsx(FilterModal, { schema: filterSchema, fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
572
- setAddFilterPopoverIsOpen(false);
573
- updateUserFilter(filter, appliedFilters.length);
574
- }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, TextInputComponent: TextInputComponent }), containerStyle: { position: 'relative', top: 10 } })] }), userFilters.length > 0 && (_jsx(UserFilterModalComponent, { triggerLabel: `Filters${userFilters.length > 0 ? ` (${userFilters.length})` : ''}`, isOpen: filterListIsOpen, setIsOpen: setFilterListIsOpen, title: "Filters", children: _jsxs("div", { style: {
575
- display: 'flex',
576
- flexDirection: 'column',
577
- alignItems: 'start',
578
- }, children: [userFilters.map((filter, index) => (_jsx(FilterPopoverWrapper, { schema: filterSchema, filter: {
579
- name: filter.name,
580
- type: filter.type,
581
- field: filter.field,
582
- operator: filter.operator,
583
- value: filter.value,
584
- }, filterLabel: filter ? filterSentence(filter) : '', index: index, fieldValuesMap: fieldValuesMap, customOperatorOptions: customOperatorOptions, FilterTagComponent: FilterTagComponent, FilterModal: FilterModal, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (newFilter) => {
585
- const updatedFilter = getUserFilter(newFilter, filter._id, filter);
586
- const updateIndex = appliedFilters.findIndex((val) => {
587
- return val._id === filter._id;
588
- });
589
- dashboardFiltersDispatch({
590
- type: 'UPDATE_DASHBOARD_FILTER',
591
- id: updatedFilter._id,
592
- data: updateFilter,
593
- });
594
- setAppliedFilters([
595
- ...appliedFilters.slice(0, updateIndex),
596
- updatedFilter,
597
- ...appliedFilters.slice(updateIndex + 1),
598
- ]);
599
- }, handleFilterDelete: () => {
600
- const deleteIndex = appliedFilters.findIndex((val) => {
601
- return val._id === filter._id;
602
- });
603
- dashboardFiltersDispatch({
604
- type: 'DELETE_DASHBOARD_FILTER',
605
- id: appliedFilters[deleteIndex]._id,
606
- });
607
- setAppliedFilters([
608
- ...appliedFilters.slice(0, deleteIndex),
609
- ...appliedFilters.slice(deleteIndex + 1),
610
- ]);
611
- }, containerStyle: { width: 300, marginBottom: 10 } }, `userFilter_${index}`))), _jsxs("div", { style: {
569
+ filterSchema.columns.length === 0 && (_jsx("div", { style: { marginBottom: 10 }, children: _jsx(QuillErrorMessageComponent, { errorMessage: "Warning: No custom filter options because there are no common views among the charts in the dashboard" }) })), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: [!hideFilters && (_jsxs(FilterContainerComponent, { children: [adminFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: updateFilter, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))), _jsxs("div", { style: {
570
+ display: 'flex',
571
+ flexDirection: 'column',
572
+ }, children: [data && data.customFiltersEnabled && (_jsx(SecondaryButtonComponent, { onClick: () => {
573
+ if (fieldValuesIsLoaded) {
574
+ setAddFilterPopoverIsOpen(true);
575
+ setFilterListIsOpen(false);
576
+ }
577
+ }, label: `Add Filter` })), _jsx(PopoverComponent, { isOpen: addFilterPopoverIsOpen, setIsOpen: setAddFilterPopoverIsOpen, popoverTitle: "Add Filter", popoverChildren: _jsx(FilterModal, { schema: filterSchema, fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
578
+ setAddFilterPopoverIsOpen(false);
579
+ updateUserFilter(filter, appliedFilters.length);
580
+ }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, TextInputComponent: TextInputComponent }), containerStyle: { position: 'relative', top: 10 } })] }), userFilters.length > 0 && (_jsx(ModalComponent, { triggerLabel: `Filters${userFilters.length > 0 ? ` (${userFilters.length})` : ''}`, isOpen: filterListIsOpen, setIsOpen: setFilterListIsOpen, title: "Filters", children: _jsxs("div", { style: {
612
581
  display: 'flex',
613
582
  flexDirection: 'column',
614
- }, children: [_jsx(SecondaryButtonComponent, { onClick: () => {
615
- if (fieldValuesIsLoaded) {
616
- setFilterListAddFilterPopoverIsOpen(true);
617
- }
618
- }, label: `Add Filter` }), _jsx(PopoverComponent, { isOpen: filterListAddFilterPopoverIsOpen, setIsOpen: setFilterListAddFilterPopoverIsOpen, popoverTitle: "Add Filter", popoverChildren: _jsx(FilterModal, { schema: filterSchema, fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
619
- setFilterListAddFilterPopoverIsOpen(false);
620
- setFilterListIsOpen(false);
621
- const id = uniqueCounter;
622
- setUniqueCounter(uniqueCounter + 1);
623
- updateUserFilter(filter, id);
624
- }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, TextInputComponent: TextInputComponent }), containerStyle: { position: 'relative', top: 10 } })] })] }) }))] })), Object.keys(dashboardSections)
583
+ alignItems: 'start',
584
+ }, children: [userFilters.map(({ filter, index }) => (_jsx(FilterPopoverWrapper, { schema: filterSchema, filter: {
585
+ name: filter.name,
586
+ type: filter.type,
587
+ field: filter.field,
588
+ operator: filter.operator,
589
+ value: filter.value,
590
+ }, filterLabel: filter ? filterSentence(filter) : '', index: index, fieldValuesMap: fieldValuesMap, customOperatorOptions: customOperatorOptions, FilterTagComponent: FilterTagComponent, FilterModal: FilterModal, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (newFilter) => {
591
+ const updatedFilter = getUserFilter(newFilter, filter._id, filter);
592
+ dashboardFiltersDispatch({
593
+ type: 'UPDATE_DASHBOARD_FILTER',
594
+ id: updatedFilter._id,
595
+ data: updateFilter,
596
+ });
597
+ setAppliedFilters([
598
+ ...appliedFilters.slice(0, index),
599
+ updatedFilter,
600
+ ...appliedFilters.slice(index + 1),
601
+ ]);
602
+ }, handleFilterDelete: () => {
603
+ dashboardFiltersDispatch({
604
+ type: 'DELETE_DASHBOARD_FILTER',
605
+ id: appliedFilters[index]._id,
606
+ });
607
+ setAppliedFilters([
608
+ ...appliedFilters.slice(0, index),
609
+ ...appliedFilters.slice(index + 1),
610
+ ]);
611
+ }, containerStyle: { width: 300, marginBottom: 10 } }, `userFilter_${index}_${filter ? filterSentence(filter) : ''}`))), _jsxs("div", { style: {
612
+ display: 'flex',
613
+ flexDirection: 'column',
614
+ }, children: [_jsx(SecondaryButtonComponent, { onClick: () => {
615
+ if (fieldValuesIsLoaded) {
616
+ setFilterListAddFilterPopoverIsOpen(true);
617
+ }
618
+ }, label: `Add Filter` }), _jsx(PopoverComponent, { isOpen: filterListAddFilterPopoverIsOpen, setIsOpen: setFilterListAddFilterPopoverIsOpen, popoverTitle: "Add Filter", popoverChildren: _jsx(FilterModal, { schema: filterSchema, fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
619
+ setFilterListAddFilterPopoverIsOpen(false);
620
+ setFilterListIsOpen(false);
621
+ const id = uniqueCounter;
622
+ setUniqueCounter(uniqueCounter + 1);
623
+ updateUserFilter(filter, id);
624
+ }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, TextInputComponent: TextInputComponent }), containerStyle: { position: 'relative', top: 10 } })] })] }) }))] })), templateDashboardName && (_jsx(QuillDashboardTemplate, { name: templateDashboardName, originDashboard: name, client: client, appliedFilters: appliedFilters, ModalComponent: ModalComponent, TemplateChartComponent: TemplateChartComponent, TemplateMetricComponent: TemplateMetricComponent, TemplateTableComponent: TemplateTableComponent, ButtonComponent: SecondaryButtonComponent }))] }), Object.keys(dashboardSections)
625
625
  .sort(function (a, b) {
626
626
  return a.length - b.length;
627
627
  })
@@ -1 +1 @@
1
- {"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAsGhC"}
1
+ {"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAuGhC"}
@@ -6,6 +6,7 @@ export default function QuillChartComponent({ report, onClick, children, isLoadi
6
6
  return (_jsx("div", { onClick: () => onClick && onClick(report), style: {
7
7
  cursor: 'pointer',
8
8
  boxSizing: 'content-box',
9
+ height: '100%',
9
10
  minHeight: 400,
10
11
  borderRadius: 8,
11
12
  }, children: _jsx("div", { style: {
@@ -0,0 +1,12 @@
1
+ export default function QuillDashboardTemplate({ name, originDashboard, client, appliedFilters, ModalComponent, TemplateChartComponent, TemplateMetricComponent, TemplateTableComponent, ButtonComponent, }: {
2
+ name: string;
3
+ originDashboard: string;
4
+ client: any;
5
+ appliedFilters: any;
6
+ ModalComponent: any;
7
+ TemplateChartComponent: any;
8
+ TemplateMetricComponent: any;
9
+ TemplateTableComponent: any;
10
+ ButtonComponent: any;
11
+ }): import("react/jsx-runtime").JSX.Element | null;
12
+ //# sourceMappingURL=DashboardTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardTemplate.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardTemplate.tsx"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,IAAI,EACJ,eAAe,EACf,MAAM,EACN,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,GAChB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,uBAAuB,EAAE,GAAG,CAAC;IAC7B,sBAAsB,EAAE,GAAG,CAAC;IAC5B,eAAe,EAAE,GAAG,CAAC;CACtB,kDAyGA"}
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext, useState } from 'react';
3
+ import { addTemplatesToDashboard, validateTemplatesAgainstFilters, } from './util';
4
+ import { useDashboard } from '../../hooks/useDashboard';
5
+ import { DashboardDataContext } from '../../Context';
6
+ import Dashboard from '../../Dashboard';
7
+ export default function QuillDashboardTemplate({ name, originDashboard, client, appliedFilters, ModalComponent, TemplateChartComponent, TemplateMetricComponent, TemplateTableComponent, ButtonComponent, }) {
8
+ const { isLoading, data } = useDashboard(name ?? '');
9
+ const { dashboardData, dashboardDataDispatch } = useContext(DashboardDataContext);
10
+ const [addItemModalIsOpen, setAddItemModalIsOpen] = useState(false);
11
+ const [selectedTemplates, setSelectedTemplates] = useState([]);
12
+ const [selectingTemplate, setSelectingTemplate] = useState(false);
13
+ const [submittingTemplate, setSubmittingTemplate] = useState(false);
14
+ const templateSections = data?.sections;
15
+ const onSubmitTemplates = async () => {
16
+ setSubmittingTemplate(true);
17
+ // validate that filters don't conflict
18
+ const { valid, error } = validateTemplatesAgainstFilters(appliedFilters, selectedTemplates);
19
+ if (!valid) {
20
+ alert(error);
21
+ }
22
+ else {
23
+ setAddItemModalIsOpen(false);
24
+ const newTemplates = selectedTemplates;
25
+ setSelectedTemplates([]);
26
+ const newData = await addTemplatesToDashboard(originDashboard, newTemplates, client, dashboardData);
27
+ console.log('updating context with', newData);
28
+ if (newData) {
29
+ // Dispatch the action to update the dashboard state
30
+ dashboardDataDispatch({
31
+ type: 'UPDATE_DASHBOARD',
32
+ id: originDashboard,
33
+ data: newData,
34
+ });
35
+ }
36
+ }
37
+ setSubmittingTemplate(false);
38
+ };
39
+ return data ? (_jsxs(ModalComponent, { isOpen: addItemModalIsOpen, setIsOpen: setAddItemModalIsOpen, triggerLabel: "Add Items To Dashboard", title: "Add Items To Dashboard", children: [_jsx("div", { style: {
40
+ overflow: 'scroll',
41
+ }, children: _jsx(Dashboard, { name: name, ChartComponent: TemplateChartComponent, TableComponent: TemplateTableComponent, MetricComponent: TemplateMetricComponent, onClickReport: (report) => {
42
+ if (!selectingTemplate) {
43
+ setSelectingTemplate(true);
44
+ if (selectedTemplates.some((template) => template._id === report._id)) {
45
+ setSelectedTemplates(selectedTemplates.filter((template) => template._id !== report._id));
46
+ }
47
+ else {
48
+ setSelectedTemplates([...selectedTemplates, report]);
49
+ }
50
+ setSelectingTemplate(false);
51
+ }
52
+ }, hideFilters: true }) }), _jsx("div", { style: {
53
+ display: 'flex',
54
+ justifyContent: 'flex-end',
55
+ flexDirection: 'row',
56
+ marginTop: '20px',
57
+ width: '100%',
58
+ }, children: _jsx(ButtonComponent, { disabled: isLoading || !templateSections, label: 'Add to dashboard', onClick: () => {
59
+ if (!submittingTemplate) {
60
+ onSubmitTemplates();
61
+ }
62
+ } }) })] })) : null;
63
+ }
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { QuillReportProps } from '../../Dashboard';
3
+ export default function QuillTemplateChartComponent({ report, onClick, children, isLoading, }: QuillReportProps): JSX.Element;
4
+ //# sourceMappingURL=TemplateChartComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TemplateChartComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAyBhC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import QuillChartComponent from './ChartComponent';
4
+ export default function QuillTemplateChartComponent({ report, onClick, children, isLoading, }) {
5
+ const [isSelected, setIsSelected] = useState(false);
6
+ return (_jsx("div", { onClick: () => {
7
+ if (onClick) {
8
+ setIsSelected(!isSelected);
9
+ onClick(report);
10
+ }
11
+ }, style: {
12
+ backgroundColor: isSelected ? 'lightgrey' : 'white',
13
+ borderRadius: '15px',
14
+ padding: '10px',
15
+ cursor: 'pointer',
16
+ }, children: _jsx(QuillChartComponent, { report: report, children: children, isLoading: isLoading }) }));
17
+ }
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { QuillReportProps } from '../../Dashboard';
3
+ export default function QuillTemplateMetricComponent({ report, onClick, children, isLoading, }: QuillReportProps): JSX.Element;
4
+ //# sourceMappingURL=TemplateMetricComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateMetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TemplateMetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAAC,EACnD,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAyBhC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import QuillMetricComponent from './MetricComponent';
4
+ export default function QuillTemplateMetricComponent({ report, onClick, children, isLoading, }) {
5
+ const [isSelected, setIsSelected] = useState(false);
6
+ return (_jsx("div", { onClick: () => {
7
+ if (onClick) {
8
+ setIsSelected(!isSelected);
9
+ onClick(report);
10
+ }
11
+ }, style: {
12
+ backgroundColor: isSelected ? 'lightgrey' : 'white',
13
+ borderRadius: '15px',
14
+ padding: '10px',
15
+ cursor: 'pointer',
16
+ }, children: _jsx(QuillMetricComponent, { report: report, children: children, isLoading: isLoading }) }));
17
+ }
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { QuillReport } from '../../models/Report';
3
+ export default function QuillTemplateTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }: {
4
+ report: QuillReport;
5
+ onClick?: (report: QuillReport) => void;
6
+ isLoading?: boolean;
7
+ error?: string;
8
+ rowCount?: number;
9
+ onPageChange?: (page: number) => void;
10
+ onSortChange?: (sort: {
11
+ field: string;
12
+ direction: string;
13
+ }) => void;
14
+ }): JSX.Element;
15
+ //# sourceMappingURL=TemplateTableComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateTableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TemplateTableComponent.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE,GAAG,GAAG,CAAC,OAAO,CA4Bd"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import QuillTableComponent from './TableComponent';
4
+ export default function QuillTemplateTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }) {
5
+ const [isSelected, setIsSelected] = useState(false);
6
+ return (_jsx("div", { onClick: () => {
7
+ if (onClick) {
8
+ setIsSelected(!isSelected);
9
+ onClick(report);
10
+ }
11
+ }, style: {
12
+ backgroundColor: isSelected ? 'lightgrey' : 'white',
13
+ borderRadius: '15px',
14
+ padding: '10px',
15
+ cursor: 'pointer',
16
+ }, children: _jsx(QuillTableComponent, { report: report, isLoading: isLoading, error: error, rowCount: rowCount, onPageChange: onPageChange, onSortChange: onSortChange }) }));
17
+ }
@@ -0,0 +1,6 @@
1
+ export declare function validateTemplatesAgainstFilters(filters: any[], templates: any[]): {
2
+ valid: boolean;
3
+ error: string;
4
+ };
5
+ export declare function addTemplatesToDashboard(name: any, newTemplates: any[], client: any, dashboardData: any): Promise<any>;
6
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/util.ts"],"names":[],"mappings":"AAEA,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,GAAG,EAAE,EACd,SAAS,EAAE,GAAG,EAAE,GACf;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiCnC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EAAE,EACnB,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,GAAG,CAAC,CAiDd"}
@@ -0,0 +1,80 @@
1
+ import { getData } from '../../utils/dataFetcher';
2
+ export function validateTemplatesAgainstFilters(filters, templates) {
3
+ let error = '';
4
+ filters.every((filter) => {
5
+ if (filter.filterType === 'date_range') {
6
+ templates.every((template) => {
7
+ if (!template.dateField?.field) {
8
+ error = `Please remove the date filter or unselect ${template.name}`;
9
+ return false;
10
+ }
11
+ return true;
12
+ });
13
+ }
14
+ else {
15
+ templates.every((template) => {
16
+ if (!template.referencedTables?.includes(filter.table)) {
17
+ error = `Please remove filters on ${filter.table} or unselect ${template.name}`;
18
+ return false;
19
+ }
20
+ return true;
21
+ });
22
+ }
23
+ if (error !== '') {
24
+ return false;
25
+ }
26
+ else {
27
+ return true;
28
+ }
29
+ });
30
+ if (error === '') {
31
+ return { valid: true, error };
32
+ }
33
+ else {
34
+ return { valid: false, error };
35
+ }
36
+ }
37
+ export async function addTemplatesToDashboard(name, newTemplates, client, dashboardData) {
38
+ try {
39
+ const { publicKey, customerId } = client;
40
+ const hostedBody = {
41
+ metadata: {
42
+ dashboardName: name,
43
+ task: 'add-from-template',
44
+ clientId: publicKey,
45
+ orgId: customerId || '*',
46
+ templateReportIds: newTemplates.map((template) => template._id),
47
+ },
48
+ };
49
+ const resp = await getData(client, ``, // no cloud fallback
50
+ 'omit', hostedBody, null);
51
+ if (resp.success && resp.newItems && resp.newItems.length > 0) {
52
+ const newData = {
53
+ newQueries: {
54
+ ...(dashboardData[name]?.newQueries ?? []),
55
+ ...resp.newItems.reduce((acc, item) => {
56
+ acc[item._id] = item;
57
+ return acc;
58
+ }, {}),
59
+ },
60
+ sections: {
61
+ ...dashboardData[name].sections,
62
+ '': [
63
+ ...(dashboardData[name]?.sections?.[''] ?? []),
64
+ ...resp.newItems.map((item) => ({
65
+ ...item,
66
+ id: item._id,
67
+ })),
68
+ ],
69
+ },
70
+ };
71
+ return newData;
72
+ }
73
+ else {
74
+ return null;
75
+ }
76
+ }
77
+ catch (error) {
78
+ console.error('Error while updating dashboard:', error);
79
+ }
80
+ }