@quillsql/react 2.11.7 → 2.11.8

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 (113) hide show
  1. package/dist/cjs/BarList.d.ts +1 -0
  2. package/dist/cjs/BarList.d.ts.map +1 -1
  3. package/dist/cjs/BarList.js +55 -46
  4. package/dist/cjs/Chart.d.ts +4 -0
  5. package/dist/cjs/Chart.d.ts.map +1 -1
  6. package/dist/cjs/Chart.js +25 -19
  7. package/dist/cjs/ChartBuilder.d.ts +5 -3
  8. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  9. package/dist/cjs/ChartBuilder.js +236 -196
  10. package/dist/cjs/ChartEditor.d.ts +3 -1
  11. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  12. package/dist/cjs/ChartEditor.js +17 -2
  13. package/dist/cjs/Dashboard.d.ts +2 -1
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +4 -4
  16. package/dist/cjs/PieChart.d.ts +1 -1
  17. package/dist/cjs/PieChart.d.ts.map +1 -1
  18. package/dist/cjs/PieChart.js +95 -357
  19. package/dist/cjs/ReportBuilder.d.ts +11 -3
  20. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  21. package/dist/cjs/ReportBuilder.js +224 -99
  22. package/dist/cjs/SQLEditor.d.ts +4 -2
  23. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  24. package/dist/cjs/SQLEditor.js +9 -6
  25. package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
  26. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/BarChart.js +9 -5
  28. package/dist/cjs/components/Chart/ChartError.js +1 -1
  29. package/dist/cjs/components/Chart/ChartSkeleton.js +2 -2
  30. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  31. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  32. package/dist/cjs/components/Chart/LineChart.js +10 -3
  33. package/dist/cjs/components/Dashboard/TableComponent.d.ts +1 -1
  34. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  35. package/dist/cjs/components/Dashboard/TableComponent.js +1 -1
  36. package/dist/cjs/components/QuillTable.js +1 -1
  37. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  38. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +2 -2
  39. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +3 -0
  40. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -0
  41. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +62 -0
  42. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  43. package/dist/cjs/components/ReportBuilder/convert.js +3 -2
  44. package/dist/cjs/components/ReportBuilder/ui.d.ts +1 -0
  45. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  46. package/dist/cjs/components/ReportBuilder/ui.js +11 -3
  47. package/dist/cjs/components/UiComponents.d.ts +12 -2
  48. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  49. package/dist/cjs/components/UiComponents.js +7 -6
  50. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  51. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  52. package/dist/cjs/internals/ReportBuilder/PivotModal.js +47 -56
  53. package/dist/cjs/utils/aggregate.js +2 -2
  54. package/dist/cjs/utils/color.d.ts +25 -0
  55. package/dist/cjs/utils/color.d.ts.map +1 -1
  56. package/dist/cjs/utils/color.js +164 -1
  57. package/dist/esm/BarList.d.ts +1 -0
  58. package/dist/esm/BarList.d.ts.map +1 -1
  59. package/dist/esm/BarList.js +55 -46
  60. package/dist/esm/Chart.d.ts +4 -0
  61. package/dist/esm/Chart.d.ts.map +1 -1
  62. package/dist/esm/Chart.js +25 -19
  63. package/dist/esm/ChartBuilder.d.ts +5 -3
  64. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  65. package/dist/esm/ChartBuilder.js +234 -195
  66. package/dist/esm/ChartEditor.d.ts +3 -1
  67. package/dist/esm/ChartEditor.d.ts.map +1 -1
  68. package/dist/esm/ChartEditor.js +19 -4
  69. package/dist/esm/Dashboard.d.ts +2 -1
  70. package/dist/esm/Dashboard.d.ts.map +1 -1
  71. package/dist/esm/Dashboard.js +4 -4
  72. package/dist/esm/PieChart.d.ts +1 -1
  73. package/dist/esm/PieChart.d.ts.map +1 -1
  74. package/dist/esm/PieChart.js +93 -334
  75. package/dist/esm/ReportBuilder.d.ts +11 -3
  76. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  77. package/dist/esm/ReportBuilder.js +229 -104
  78. package/dist/esm/SQLEditor.d.ts +4 -2
  79. package/dist/esm/SQLEditor.d.ts.map +1 -1
  80. package/dist/esm/SQLEditor.js +9 -6
  81. package/dist/esm/components/Chart/BarChart.d.ts +2 -1
  82. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  83. package/dist/esm/components/Chart/BarChart.js +9 -5
  84. package/dist/esm/components/Chart/ChartError.js +1 -1
  85. package/dist/esm/components/Chart/ChartSkeleton.js +2 -2
  86. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  87. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  88. package/dist/esm/components/Chart/LineChart.js +10 -3
  89. package/dist/esm/components/Dashboard/TableComponent.d.ts +1 -1
  90. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  91. package/dist/esm/components/Dashboard/TableComponent.js +1 -1
  92. package/dist/esm/components/QuillTable.js +1 -1
  93. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  94. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +2 -2
  95. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +3 -0
  96. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -0
  97. package/dist/esm/components/ReportBuilder/AddSortPopover.js +57 -0
  98. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  99. package/dist/esm/components/ReportBuilder/convert.js +3 -2
  100. package/dist/esm/components/ReportBuilder/ui.d.ts +1 -0
  101. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  102. package/dist/esm/components/ReportBuilder/ui.js +10 -3
  103. package/dist/esm/components/UiComponents.d.ts +12 -2
  104. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  105. package/dist/esm/components/UiComponents.js +7 -6
  106. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  107. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  108. package/dist/esm/internals/ReportBuilder/PivotModal.js +47 -56
  109. package/dist/esm/utils/aggregate.js +2 -2
  110. package/dist/esm/utils/color.d.ts +25 -0
  111. package/dist/esm/utils/color.d.ts.map +1 -1
  112. package/dist/esm/utils/color.js +160 -0
  113. package/package.json +1 -1
@@ -3,7 +3,7 @@ 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.dateFormatOptions = exports.numberFormatOptions = void 0;
6
+ exports.ChartBuilderWithModal = exports.dateFormatOptions = exports.numberFormatOptions = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const Context_1 = require("./Context");
@@ -13,7 +13,6 @@ const PivotModal_1 = require("./internals/ReportBuilder/PivotModal");
13
13
  const PivotList_1 = require("./internals/ReportBuilder/PivotList");
14
14
  const Chart_1 = __importDefault(require("./Chart"));
15
15
  const UiComponents_1 = require("./components/UiComponents");
16
- const Banner_1 = __importDefault(require("./components/Banner"));
17
16
  const merge_1 = require("./utils/merge");
18
17
  const QuillSelect_1 = require("./components/QuillSelect");
19
18
  const textProcessing_1 = require("./utils/textProcessing");
@@ -88,6 +87,7 @@ exports.dateFormatOptions = [
88
87
  'MMM_dd_yyyy',
89
88
  'MMM_dd_hh:mm_ap_pm',
90
89
  'hh_ap_pm',
90
+ 'date',
91
91
  ];
92
92
  const NUMBER_OPTIONS = [
93
93
  { value: 'whole_number', label: 'whole number' },
@@ -109,18 +109,23 @@ const formatOptions = [
109
109
  { value: 'percent', label: 'percent' },
110
110
  { value: 'string', label: 'string' },
111
111
  ];
112
- function ChartBuilder(props) {
112
+ function ChartBuilderWithModal(props) {
113
113
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
114
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: props.Modal ? ((0, jsx_runtime_1.jsx)(props.Modal, { isOpen: props.isOpen, setIsOpen: props.setIsOpen, title: props.title || 'Add to dashboard', onClose: () => props.setIsOpen(false), theme: theme, children: (0, jsx_runtime_1.jsx)(ChartBuilderForm, { ...props }) })) : ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedModal, { setIsOpen: props.setIsOpen, isOpen: props.isOpen, onClose: () => props.setIsOpen(false), title: props.title || 'Add to dashboard', theme: theme, children: (0, jsx_runtime_1.jsx)(ChartBuilderForm, { ...props }) })) }));
114
+ const Modal = props.Modal ?? UiComponents_1.MemoizedModal;
115
+ return ((0, jsx_runtime_1.jsx)(Modal, { isOpen: props.isOpen, setIsOpen: props.setIsOpen, onClose: () => props.setIsOpen(false), title: props.title || 'Add to dashboard', style: props.horizontalView
116
+ ? {
117
+ width: 'calc(100vw - 80px)',
118
+ height: 'calc(100vh - 80px)',
119
+ }
120
+ : {}, theme: theme, children: (0, jsx_runtime_1.jsx)(ChartBuilder, { ...props }) }));
115
121
  }
116
- exports.default = ChartBuilder;
117
- function ChartBuilderForm({ TextInput = UiComponents_1.QuillTextInput, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, Header = UiComponents_1.MemoizedHeader, Label = UiComponents_1.MemoizedLabel, DeleteButton = UiComponents_1.MemoizedDeleteButton, Text = UiComponents_1.MemoizedText, Popover = UiComponents_1.MemoizedPopover, isOpen, isEditMode, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, }) {
122
+ exports.ChartBuilderWithModal = ChartBuilderWithModal;
123
+ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, Header = UiComponents_1.MemoizedHeader, Label = UiComponents_1.MemoizedLabel, DeleteButton = UiComponents_1.MemoizedDeleteButton, Text = UiComponents_1.MemoizedText, Popover = UiComponents_1.MemoizedPopover, isOpen, isEditMode = false, horizontalView = false, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, }) {
118
124
  const dateRange = dr || [null, null, null];
119
125
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
120
126
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
121
127
  const [schema, setSchema] = (0, react_1.useContext)(Context_1.SchemaContext);
122
128
  const [isSubmitting, setIsSubmitting] = (0, react_1.useState)(false);
123
- const [divWidth, setDivWidth] = (0, react_1.useState)(0);
124
129
  const { dispatch } = (0, react_1.useContext)(Context_1.DashboardContext);
125
130
  const fields = fieldsProp?.map((field) => ({
126
131
  field: field.name,
@@ -132,29 +137,6 @@ function ChartBuilderForm({ TextInput = UiComponents_1.QuillTextInput, Select =
132
137
  const deleteRef = (0, react_1.useRef)(null);
133
138
  const modalPadding = 20;
134
139
  const deleteButtonMargin = -13;
135
- (0, react_1.useEffect)(() => {
136
- const calculateWidth = () => {
137
- return ((parentRef.current?.offsetWidth || 0) -
138
- (deleteRef?.current
139
- ? deleteRef?.current.offsetWidth - deleteButtonMargin
140
- : 0));
141
- };
142
- // Measure the width of the div and update state
143
- if (parentRef.current) {
144
- setDivWidth(calculateWidth());
145
- }
146
- // Optional: Handle window resize
147
- const handleResize = () => {
148
- if (parentRef.current) {
149
- setDivWidth(calculateWidth());
150
- }
151
- };
152
- window.addEventListener('resize', handleResize);
153
- // Cleanup listener
154
- return () => {
155
- window.removeEventListener('resize', handleResize);
156
- };
157
- }, []);
158
140
  // get schema
159
141
  (0, react_1.useEffect)(() => {
160
142
  let isSubscribed = true;
@@ -240,7 +222,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.QuillTextInput, Select =
240
222
  const result = await getReferencedTables(client, query, schema);
241
223
  setDateFieldOptions(result);
242
224
  setTableName(result[0]?.name);
243
- if (!formData.dateField.table) {
225
+ if (!formData.dateField?.table) {
244
226
  setFormData({
245
227
  ...formData,
246
228
  dateField: {
@@ -254,7 +236,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.QuillTextInput, Select =
254
236
  }
255
237
  };
256
238
  fetchReferencedTables();
257
- }, [query, schema]);
239
+ }, [query]);
258
240
  const defaultDateField = {
259
241
  table: dateFieldOptions[0]?.name,
260
242
  field: dateFieldOptions[0]?.columns[0]?.name,
@@ -557,175 +539,233 @@ function ChartBuilderForm({ TextInput = UiComponents_1.QuillTextInput, Select =
557
539
  if (!schema) {
558
540
  return;
559
541
  }
560
- return ((0, jsx_runtime_1.jsxs)("div", { id: "quill-chart-modal", style: { padding: modalPadding }, children: [isEditMode && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Banner_1.default, { dashboardItemName: dashboardItem.name, dashboardName: dashboardItem.dashboardName, style: {
561
- position: 'fixed',
562
- top: 0,
563
- left: 0,
564
- right: 0,
565
- margin: 0,
566
- }, onExit: () => {
567
- const msg = 'Are you sure you want to exit edit mode? Your changes will not be saved.';
568
- if (!confirm(msg))
569
- return;
570
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
571
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
572
- } }), (0, jsx_runtime_1.jsxs)("style", { children: [" ", `#quill-modal-header { padding-top: 41px; }`, " "] })] })), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Chart_1.default, { config: { ...formData, rows }, colors: theme.chartColors, containerStyle: {
573
- width: formData.chartType === 'table' ? 640 : 'calc(100% - 24px)',
574
- height: 300,
575
- } }) }), (0, jsx_runtime_1.jsx)("div", { style: { height: 20 } }), (0, jsx_runtime_1.jsxs)("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Name" }), (0, jsx_runtime_1.jsx)(TextInput, { id: "chart-builder-name", value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name", theme: theme })] }), showDashboardDropdown && !destinationDashboard && ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Dashboard" }), (0, jsx_runtime_1.jsx)(Select, { value: formData.dashboardName || '', onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
576
- label: elem.label,
577
- value: elem.label,
578
- })), theme: theme })] })), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Chart type" }), (0, jsx_runtime_1.jsx)(Select, { value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
579
- // filter out metric for all pivots
580
- // filter out bar and pie for row and column pivot
581
- options: CHART_TYPES.filter((elem) => !((formData.pivot && elem === 'metric') ||
582
- (formData.pivot &&
583
- formData.pivot.columnField &&
584
- (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })), theme: theme })] })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
585
- display: 'flex',
586
- flexDirection: 'column',
587
- gap: 12,
588
- marginTop: 6,
589
- }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Pivot" }), (0, jsx_runtime_1.jsxs)("div", { style: { fontFamily: theme?.fontFamily }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
590
- maxWidth: 200,
591
- // marginTop: 6,
592
- display: 'flex',
593
- flexDirection: 'column',
594
- }, children: (0, jsx_runtime_1.jsx)(PivotModal_1.PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: Select, ButtonComponent: Button, PopoverComponent: Popover, LabelComponent: Label, TextComponent: Text, HeaderComponent: Header, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: columns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot }) }), formData.pivot && ((0, jsx_runtime_1.jsx)("div", { style: {
595
- // width: 592,
596
- paddingRight: deleteRef?.current ? 42 : 0,
597
- maxWidth: 750,
598
- }, children: (0, jsx_runtime_1.jsx)("div", { style: { width: divWidth }, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: {
599
- pivot: formData.pivot,
600
- rows: selectedPivotTable?.rows,
601
- columns: selectedPivotTable?.columns,
602
- }, theme: theme, index: 0, onSelectPivot: () => {
603
- setIsEdittingPivot(true);
604
- setShowPivotPopover(true);
605
- setPivotRowField(formData.pivot?.rowField);
606
- setPivotColumnField(formData.pivot?.columnField);
607
- setPivotValueField(formData.pivot?.valueField);
608
- setPivotAggregation(formData.pivot?.aggregationType);
609
- setPivotPopUpTitle('Edit Pivot');
610
- }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: Button, HeaderComponent: Header, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: Label, TextComponent: Text }) }) }))] })] }), (0, jsx_runtime_1.jsx)("br", {}), (formData.pivot || formData.chartType !== 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [CHART_TO_LABELS[formData.chartType]?.xAxisLabel && ((0, jsx_runtime_1.jsx)("div", { style: {
611
- display: 'flex',
612
- flexDirection: 'column',
613
- gap: 6,
614
- marginTop: 6,
615
- }, children: (0, jsx_runtime_1.jsx)(Header, { children: "Chart" }) })), CHART_TO_LABELS[formData.chartType]?.xAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(Label, { children: CHART_TO_LABELS[formData.chartType]?.xAxisLabel }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(Select, { value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), options: formData.pivot
616
- ? [
617
- {
618
- label: `Pivot Row (${formData.pivot.rowField})`,
619
- value: formData.pivot.rowField,
620
- },
621
- ]
622
- : fieldOptions.map((elem) => ({
623
- label: elem.field,
624
- value: elem.field,
625
- })), theme: theme }), (0, jsx_runtime_1.jsx)(TextInput, { id: "chart-builder-x-axis-label", value: formData.pivot
626
- ? formData.pivot.rowField
627
- : formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel'), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { value: formData.pivot && (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
628
- ? 'pivot_date'
629
- : formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formData.pivot && (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
630
- ? [{ value: 'pivot_date', label: 'date' }]
631
- : formatOptions, theme: theme })] }, 'xAxisField'), (0, jsx_runtime_1.jsx)("br", {})] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(Label, { children: CHART_TO_LABELS[formData.chartType]?.yAxisLabel }), (0, jsx_runtime_1.jsx)("div", { style: {
632
- display: 'flex',
633
- flexDirection: 'column',
634
- gap: 10,
635
- }, children: formData.yAxisFields.map((yAxisField, index) => ((0, jsx_runtime_1.jsxs)("div", { style: {
542
+ // if (horizontalView && !isEditMode) {
543
+ // console.log(horizontalView, isEditMode);
544
+ // return;
545
+ // }
546
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%', height: '100%', flexGrow: 1 }, children: (0, jsx_runtime_1.jsxs)("div", { id: "quill-chart-modal", style: {
547
+ width: '100%',
548
+ height: '100%',
549
+ maxWidth: '100%',
550
+ display: 'flex',
551
+ padding: modalPadding,
552
+ gap: '20px',
553
+ flexDirection: horizontalView ? 'row' : 'column',
554
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
555
+ display: 'flex',
556
+ flexDirection: 'column',
557
+ gap: '20px',
558
+ ...(horizontalView && {
559
+ flexGrow: 1,
560
+ maxWidth: !isOpen ? '100%' : 'calc(100% - 665px - 20px)', // width of left sidebar plus gap
561
+ }),
562
+ }, children: [(!horizontalView || formData.chartType !== 'table') && ((0, jsx_runtime_1.jsx)(Chart_1.default, { colors: theme.chartColors, config: { ...formData, rows }, containerStyle: {
563
+ width: '100%',
564
+ height: 400,
565
+ ...(horizontalView && { flexGrow: 1 }),
566
+ } })),
567
+ // Make sure to display non-pivoted table when using pivot chart
568
+ horizontalView && formData.chartType !== 'table' ? ((0, jsx_runtime_1.jsx)(Chart_1.default, { config: {
569
+ ...formData,
570
+ pivot: undefined,
571
+ chartType: 'table',
572
+ rows,
573
+ rowsPerPage: 20,
574
+ }, containerStyle: {
575
+ height: '100%',
576
+ width: '100%',
577
+ flexGrow: 1,
578
+ } })) : (horizontalView && ((0, jsx_runtime_1.jsx)(Chart_1.default, { config: {
579
+ ...formData,
580
+ chartType: 'table',
581
+ rows,
582
+ rowsPerPage: 20,
583
+ }, containerStyle: {
584
+ height: '100%',
585
+ width: '100%',
586
+ flexGrow: 1,
587
+ } })))] }), (isOpen || !horizontalView) && ((0, jsx_runtime_1.jsxs)("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, style: {
588
+ display: 'flex',
589
+ flexDirection: 'column',
590
+ height: '100%',
591
+ ...(horizontalView && {
592
+ minWidth: 665,
593
+ maxWidth: 665,
594
+ width: 665,
595
+ gap: 20,
596
+ }),
597
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { overflow: 'auto' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Name" }), (0, jsx_runtime_1.jsx)(TextInput, { id: "chart-builder-name", value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name", theme: theme })] }), showDashboardDropdown && !destinationDashboard && ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Dashboard" }), (0, jsx_runtime_1.jsx)(Select, { value: formData.dashboardName || '', onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
598
+ label: elem.label,
599
+ value: elem.label,
600
+ })), theme: theme })] })), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Chart type" }), (0, jsx_runtime_1.jsx)(Select, { value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
601
+ // filter out metric for all pivots
602
+ // filter out bar and pie for row and column pivot
603
+ options: CHART_TYPES.filter((elem) => !((formData.pivot && elem === 'metric') ||
604
+ (formData.pivot &&
605
+ formData.pivot.columnField &&
606
+ (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })), theme: theme })] })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
607
+ display: 'flex',
608
+ flexDirection: 'column',
609
+ gap: 12,
610
+ marginTop: 6,
611
+ }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Pivot" }), (0, jsx_runtime_1.jsxs)("div", { style: { fontFamily: theme?.fontFamily }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
612
+ maxWidth: 200,
613
+ // marginTop: 6,
614
+ display: 'flex',
615
+ flexDirection: 'column',
616
+ }, children: (0, jsx_runtime_1.jsx)(PivotModal_1.PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: Select, ButtonComponent: Button, PopoverComponent: Popover, LabelComponent: Label, TextComponent: Text, HeaderComponent: Header, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: columns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot }) }), formData.pivot && ((0, jsx_runtime_1.jsx)("div", { style: {
617
+ // width: 592,
618
+ paddingRight: 42,
619
+ maxWidth: 750,
620
+ }, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: {
621
+ pivot: formData.pivot,
622
+ rows: selectedPivotTable?.rows,
623
+ columns: selectedPivotTable?.columns,
624
+ }, theme: theme, index: 0, onSelectPivot: () => {
625
+ setIsEdittingPivot(true);
626
+ setShowPivotPopover(true);
627
+ setPivotRowField(formData.pivot?.rowField);
628
+ setPivotColumnField(formData.pivot?.columnField);
629
+ setPivotValueField(formData.pivot?.valueField);
630
+ setPivotAggregation(formData.pivot?.aggregationType);
631
+ setPivotPopUpTitle('Edit Pivot');
632
+ }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: Button, HeaderComponent: Header, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: Label, TextComponent: Text }) }))] })] }), (0, jsx_runtime_1.jsx)("br", {}), (formData.pivot || formData.chartType !== 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [CHART_TO_LABELS[formData.chartType]?.xAxisLabel && ((0, jsx_runtime_1.jsx)("div", { style: {
636
633
  display: 'flex',
637
- flexDirection: 'row',
638
- gap: 12,
639
- }, children: [(0, jsx_runtime_1.jsx)(Select, { value: formData.pivot
640
- ? formData.pivot.valueField
641
- : yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), theme: theme, options: formData.pivot
642
- ? [
643
- {
644
- label: `Pivot Column (${formData.pivot.valueField})`,
645
- value: formData.pivot.valueField,
646
- },
647
- ]
648
- : fieldOptions
649
- .filter((elem) => {
650
- return exports.numberFormatOptions.includes(columns.find((col) => col.field === elem.field)?.format || '');
651
- })
652
- .map((elem) => ({
653
- label: elem.field,
654
- value: elem.field,
655
- })) }), (0, jsx_runtime_1.jsx)(TextInput, { id: "chart-builder-y-axis-label", value: formData.pivot?.valueField || yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'yAxisFields.label', index), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: formData.pivot
656
- ? !!NUMBER_OPTIONS.find((option) => {
657
- return option.value === yAxisField.format;
658
- })
659
- ? // @ts-ignore
660
- NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
661
- : 'whole_number'
662
- : yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: formData.pivot ? NUMBER_OPTIONS : formatOptions }), formData.pivot === null && ((0, jsx_runtime_1.jsx)("div", { ref: deleteRef, children: (0, jsx_runtime_1.jsx)(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))) }), formData.pivot === null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" })] }))] })), (0, jsx_runtime_1.jsx)("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { style: {
663
- display: 'flex',
664
- flexDirection: 'column',
665
- gap: 6,
666
- marginTop: 6,
667
- }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Table" }), (0, jsx_runtime_1.jsx)(Label, { children: "Columns" })] }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.pivot &&
668
- selectedPivotTable &&
669
- selectedPivotTable.columns &&
670
- formData.chartType === 'table'
671
- ? // THIS CASE IF FOR PIVOT TABLES ONLY
672
- selectedPivotTable.columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { style: {
634
+ flexDirection: 'column',
635
+ gap: 6,
636
+ marginTop: 6,
637
+ }, children: (0, jsx_runtime_1.jsx)(Header, { children: "Chart" }) })), CHART_TO_LABELS[formData.chartType]?.xAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(Label, { children: CHART_TO_LABELS[formData.chartType]?.xAxisLabel }), (0, jsx_runtime_1.jsxs)("div", { style: {
638
+ display: 'flex',
639
+ flexDirection: 'row',
640
+ gap: 12,
641
+ }, children: [(0, jsx_runtime_1.jsx)(Select, { value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), options: formData.pivot
642
+ ? [
643
+ {
644
+ label: `Pivot Row (${formData.pivot.rowField})`,
645
+ value: formData.pivot.rowField,
646
+ },
647
+ ]
648
+ : fieldOptions.map((elem) => ({
649
+ label: elem.field,
650
+ value: elem.field,
651
+ })), theme: theme }), (0, jsx_runtime_1.jsx)(TextInput, { id: "chart-builder-x-axis-label", value: formData.pivot
652
+ ? formData.pivot.rowField
653
+ : formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel'), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { value: formData.pivot &&
654
+ (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
655
+ ? 'pivot_date'
656
+ : formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formData.pivot &&
657
+ (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
658
+ ? [{ value: 'pivot_date', label: 'date' }]
659
+ : formatOptions, theme: theme })] }, 'xAxisField'), (0, jsx_runtime_1.jsx)("br", {})] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(Label, { children: CHART_TO_LABELS[formData.chartType]?.yAxisLabel }), (0, jsx_runtime_1.jsx)("div", { style: {
660
+ display: 'flex',
661
+ flexDirection: 'column',
662
+ gap: 10,
663
+ }, children: formData.yAxisFields.map((yAxisField, index) => ((0, jsx_runtime_1.jsxs)("div", { style: {
664
+ display: 'flex',
665
+ flexDirection: 'row',
666
+ gap: 12,
667
+ }, children: [(0, jsx_runtime_1.jsx)(Select, { value: formData.pivot
668
+ ? formData.pivot.valueField
669
+ : yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), theme: theme, options: formData.pivot
670
+ ? [
671
+ {
672
+ label: `Pivot Column (${formData.pivot.valueField})`,
673
+ value: formData.pivot.valueField,
674
+ },
675
+ ]
676
+ : fieldOptions
677
+ .filter((elem) => {
678
+ return exports.numberFormatOptions.includes(columns.find((col) => col.field === elem.field)?.format || '');
679
+ })
680
+ .map((elem) => ({
681
+ label: elem.field,
682
+ value: elem.field,
683
+ })) }), (0, jsx_runtime_1.jsx)(TextInput, { id: "chart-builder-y-axis-label", value: formData.pivot?.valueField || yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'yAxisFields.label', index), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: formData.pivot
684
+ ? !!NUMBER_OPTIONS.find((option) => {
685
+ return (option.value === yAxisField.format);
686
+ })
687
+ ? // @ts-ignore
688
+ NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
689
+ : 'whole_number'
690
+ : yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: formData.pivot
691
+ ? NUMBER_OPTIONS
692
+ : formatOptions }), formData.pivot === null && ((0, jsx_runtime_1.jsx)("div", { ref: deleteRef, children: (0, jsx_runtime_1.jsx)(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))) }), formData.pivot === null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" })] }))] })), (0, jsx_runtime_1.jsx)("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { style: {
693
+ display: 'flex',
694
+ flexDirection: 'column',
695
+ gap: 6,
696
+ marginTop: 6,
697
+ }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Table" }), (0, jsx_runtime_1.jsx)(Label, { children: "Columns" })] }), (0, jsx_runtime_1.jsx)("div", { style: {
698
+ display: 'flex',
699
+ flexDirection: 'column',
700
+ gap: 10,
701
+ }, children: formData.pivot &&
702
+ selectedPivotTable &&
703
+ selectedPivotTable.columns &&
704
+ formData.chartType === 'table'
705
+ ? // THIS CASE IF FOR PIVOT TABLES ONLY
706
+ selectedPivotTable.columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { style: {
707
+ display: 'flex',
708
+ flexDirection: 'row',
709
+ gap: 12,
710
+ }, children: [(0, jsx_runtime_1.jsx)(Select, { theme: theme, value: column.label, onChange: (e) => handleChange(e, 'columns.field', index), options: selectedPivotTable.columns.map((elem) => ({
711
+ label: elem.label,
712
+ value: elem.label,
713
+ })) }), (0, jsx_runtime_1.jsx)(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value:
714
+ // The first index use rowField for the rest of them use value fields
715
+ formData.pivot &&
716
+ column.field === formData.pivot.rowField
717
+ ? formData.pivot &&
718
+ (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
719
+ ? 'pivot_date'
720
+ : 'string'
721
+ : formData.pivot?.valueFieldType ||
722
+ 'whole_number', onChange: (e) => handleChange(e, 'pivotColumn', index), options: formData.pivot && index === 0
723
+ ? (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
724
+ ? [{ label: 'date', value: 'pivot_date' }]
725
+ : [{ label: 'string', value: 'string' }]
726
+ : [...NUMBER_OPTIONS] })] }, 'column' + index)))
727
+ : formData.columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { style: {
728
+ display: 'flex',
729
+ flexDirection: 'row',
730
+ gap: 12,
731
+ }, children: [(0, jsx_runtime_1.jsx)(Select, { theme: theme, value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: fields.map((elem) => ({
732
+ label: elem.field,
733
+ value: elem.field,
734
+ })) }), (0, jsx_runtime_1.jsx)(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: formatOptions }), (0, jsx_runtime_1.jsx)("div", { ref: deleteRef, children: (0, jsx_runtime_1.jsx)(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))) }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => handleAddField('columns'), label: "Add column +" }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {})] })), showDateFieldOptions && formData.dateField && ((0, jsx_runtime_1.jsxs)("div", { style: {
735
+ display: 'flex',
736
+ flexDirection: 'column',
737
+ gap: 6,
738
+ marginTop: 6,
739
+ }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Date field" }), (0, jsx_runtime_1.jsxs)("div", { style: {
673
740
  display: 'flex',
674
741
  flexDirection: 'row',
675
742
  gap: 12,
676
- }, children: [(0, jsx_runtime_1.jsx)(Select, { theme: theme, value: column.label, onChange: (e) => handleChange(e, 'columns.field', index), options: selectedPivotTable.columns.map((elem) => ({
677
- label: elem.label,
678
- value: elem.label,
679
- })) }), (0, jsx_runtime_1.jsx)(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value:
680
- // The first index use rowField for the rest of them use value fields
681
- formData.pivot &&
682
- column.field === formData.pivot.rowField
683
- ? formData.pivot &&
684
- (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
685
- ? 'pivot_date'
686
- : 'string'
687
- : formData.pivot?.valueFieldType || 'whole_number', onChange: (e) => handleChange(e, 'pivotColumn', index), options: formData.pivot && index === 0
688
- ? (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
689
- ? [{ label: 'date', value: 'pivot_date' }]
690
- : [{ label: 'string', value: 'string' }]
691
- : [...NUMBER_OPTIONS] })] }, 'column' + index)))
692
- : formData.columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(Select, { theme: theme, value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: fields.map((elem) => ({
693
- label: elem.field,
694
- value: elem.field,
695
- })) }), (0, jsx_runtime_1.jsx)(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: formatOptions }), (0, jsx_runtime_1.jsx)("div", { ref: deleteRef, children: (0, jsx_runtime_1.jsx)(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))) }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => handleAddField('columns'), label: "Add column +" }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {})] })), showDateFieldOptions && ((0, jsx_runtime_1.jsxs)("div", { style: {
696
- display: 'flex',
697
- flexDirection: 'column',
698
- gap: 6,
699
- marginTop: 6,
700
- }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Date field" }), (0, jsx_runtime_1.jsxs)("div", { style: {
701
- display: 'flex',
702
- flexDirection: 'row',
703
- gap: 12,
704
- // lmao part 2
705
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Table" }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: formData.dateField.table, onChange: (e) => handleChange(e, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
706
- label: elem.name,
707
- value: elem.name,
708
- })) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Field" }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: (0, textProcessing_1.removeDoubleQuotes)(formData.dateField.field), onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
709
- ?.find((elem) => elem.name === formData.dateField.table)
710
- ?.columns?.map((elem) => ({
711
- label: elem.name,
712
- value: elem.name,
713
- })) || [] })] })] }), (0, jsx_runtime_1.jsx)("br", {})] })), showAccessControlOptions && ((0, jsx_runtime_1.jsxs)("div", { style: {
714
- display: 'flex',
715
- flexDirection: 'column',
716
- gap: 12,
717
- marginTop: 6,
718
- }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Organization access" }), (0, jsx_runtime_1.jsx)(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme, organizationName: organizationName || 'This Organization' }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {})] })), (0, jsx_runtime_1.jsxs)("div", { style: {
719
- display: 'flex',
720
- flexDirection: 'row',
721
- justifyContent: 'flex-end',
722
- gap: 10,
723
- }, children: [dashboardItem && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), (0, jsx_runtime_1.jsx)(Button, { onClick: editChart, label: buttonLabel
724
- ? buttonLabel
725
- : dashboardItem
726
- ? 'Save changes'
727
- : 'Add to dashboard' })] })] })] }));
743
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Table" }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: formData.dateField?.table, onChange: (e) => handleChange(e, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
744
+ label: elem.name,
745
+ value: elem.name,
746
+ })) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(Label, { children: "Field" }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: (0, textProcessing_1.removeDoubleQuotes)(formData.dateField?.field), onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
747
+ ?.find((elem) => elem.name === formData.dateField?.table)
748
+ ?.columns?.map((elem) => ({
749
+ label: elem.name,
750
+ value: elem.name,
751
+ })) || [] })] })] }), (0, jsx_runtime_1.jsx)("br", {})] })), showAccessControlOptions && ((0, jsx_runtime_1.jsxs)("div", { style: {
752
+ display: 'flex',
753
+ flexDirection: 'column',
754
+ gap: 12,
755
+ marginTop: 6,
756
+ }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Organization access" }), (0, jsx_runtime_1.jsx)(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme, organizationName: organizationName || 'This Organization' })] }))] }), (0, jsx_runtime_1.jsxs)("div", { style: {
757
+ display: 'flex',
758
+ flexDirection: 'row',
759
+ justifyContent: 'flex-end',
760
+ marginTop: 'auto',
761
+ gap: 10,
762
+ }, children: [!horizontalView && dashboardItem && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), (0, jsx_runtime_1.jsx)(Button, { onClick: editChart, label: buttonLabel
763
+ ? buttonLabel
764
+ : dashboardItem
765
+ ? 'Save changes'
766
+ : 'Add to dashboard' })] })] }))] }) }));
728
767
  }
768
+ exports.default = ChartBuilder;
729
769
  function SegmentedControl({ onChange, value, theme, organizationName, }) {
730
770
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
731
771
  display: 'flex',
@@ -7,6 +7,7 @@ interface ChartEditorProps {
7
7
  isEditMode?: boolean;
8
8
  chartBuilderTitle?: string;
9
9
  chartBuilderButtonLabel?: string;
10
+ onAddToDashboardComplete?: () => void;
10
11
  onDelete?: () => void;
11
12
  setIsOpen: (isOpen: boolean) => void;
12
13
  Select?: (props: SelectComponentProps) => JSX.Element;
@@ -21,7 +22,8 @@ interface ChartEditorProps {
21
22
  Popover?: (props: PopoverComponentProps) => JSX.Element;
22
23
  destinationDashboard?: string;
23
24
  organizationName?: string;
25
+ horizontalView?: boolean;
24
26
  }
25
- export default function ChartEditor({ isOpen, chartId, isEditMode, admin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, organizationName, onDelete, setIsOpen, Select, TextInput, Button, SecondaryButton, Header, Label, Text, DeleteButton, Modal, Popover, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
27
+ export default function ChartEditor({ isOpen, chartId, isEditMode, admin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, horizontalView, onDelete, setIsOpen, Select, TextInput, Button, SecondaryButton, Header, Label, Text, DeleteButton, Modal, Popover, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
26
28
  export {};
27
29
  //# sourceMappingURL=ChartEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":";AAQA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAInC,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAa,EACb,oBAAoB,EACpB,iBAAgC,EAChC,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,eAAe,EACf,MAAM,EACN,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,OAAO,GACR,EAAE,gBAAgB,2CAgHlB"}
1
+ {"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":";AASA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAKnC,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAa,EACb,oBAAoB,EACpB,iBAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,eAAe,EACf,MAAM,EACN,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,OAAO,GACR,EAAE,gBAAgB,2CA4LlB"}