@quillsql/react 2.11.7 → 2.11.9

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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState, useContext, useMemo, } from 'react';
3
3
  import { ClientContext, DashboardContext, DashboardFiltersContext, SchemaContext, ThemeContext, } from './Context';
4
4
  import { getData, getDataFromCloud } from './utils/dataFetcher';
@@ -7,7 +7,6 @@ import { PivotModal, generatePivotTable, isDateField, } from './internals/Report
7
7
  import { PivotCard } from './internals/ReportBuilder/PivotList';
8
8
  import Chart from './Chart';
9
9
  import { MemoizedModal, QuillTextInput, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, } from './components/UiComponents';
10
- import Banner from './components/Banner';
11
10
  import { mergeComparisonRange } from './utils/merge';
12
11
  import { QuillSelectComponent } from './components/QuillSelect';
13
12
  import { removeDoubleQuotes, snakeCaseToTitleCase, } from './utils/textProcessing';
@@ -82,6 +81,7 @@ export const dateFormatOptions = [
82
81
  'MMM_dd_yyyy',
83
82
  'MMM_dd_hh:mm_ap_pm',
84
83
  'hh_ap_pm',
84
+ 'date',
85
85
  ];
86
86
  const NUMBER_OPTIONS = [
87
87
  { value: 'whole_number', label: 'whole number' },
@@ -103,17 +103,22 @@ const formatOptions = [
103
103
  { value: 'percent', label: 'percent' },
104
104
  { value: 'string', label: 'string' },
105
105
  ];
106
- export default function ChartBuilder(props) {
106
+ export function ChartBuilderWithModal(props) {
107
107
  const [theme] = useContext(ThemeContext);
108
- return (_jsx(_Fragment, { children: props.Modal ? (_jsx(props.Modal, { isOpen: props.isOpen, setIsOpen: props.setIsOpen, title: props.title || 'Add to dashboard', onClose: () => props.setIsOpen(false), theme: theme, children: _jsx(ChartBuilderForm, { ...props }) })) : (_jsx(MemoizedModal, { setIsOpen: props.setIsOpen, isOpen: props.isOpen, onClose: () => props.setIsOpen(false), title: props.title || 'Add to dashboard', theme: theme, children: _jsx(ChartBuilderForm, { ...props }) })) }));
108
+ const Modal = props.Modal ?? MemoizedModal;
109
+ return (_jsx(Modal, { isOpen: props.isOpen, setIsOpen: props.setIsOpen, onClose: () => props.setIsOpen(false), title: props.title || 'Add to dashboard', style: props.horizontalView
110
+ ? {
111
+ width: 'calc(100vw - 80px)',
112
+ height: 'calc(100vh - 80px)',
113
+ }
114
+ : {}, theme: theme, children: _jsx(ChartBuilder, { ...props }) }));
109
115
  }
110
- function ChartBuilderForm({ TextInput = QuillTextInput, Select = QuillSelectComponent, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Popover = 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, }) {
116
+ export default function ChartBuilder({ TextInput = QuillTextInput, Select = QuillSelectComponent, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Popover = 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, }) {
111
117
  const dateRange = dr || [null, null, null];
112
118
  const [client] = useContext(ClientContext);
113
119
  const [theme] = useContext(ThemeContext);
114
120
  const [schema, setSchema] = useContext(SchemaContext);
115
121
  const [isSubmitting, setIsSubmitting] = useState(false);
116
- const [divWidth, setDivWidth] = useState(0);
117
122
  const { dispatch } = useContext(DashboardContext);
118
123
  const fields = fieldsProp?.map((field) => ({
119
124
  field: field.name,
@@ -125,29 +130,6 @@ function ChartBuilderForm({ TextInput = QuillTextInput, Select = QuillSelectComp
125
130
  const deleteRef = useRef(null);
126
131
  const modalPadding = 20;
127
132
  const deleteButtonMargin = -13;
128
- useEffect(() => {
129
- const calculateWidth = () => {
130
- return ((parentRef.current?.offsetWidth || 0) -
131
- (deleteRef?.current
132
- ? deleteRef?.current.offsetWidth - deleteButtonMargin
133
- : 0));
134
- };
135
- // Measure the width of the div and update state
136
- if (parentRef.current) {
137
- setDivWidth(calculateWidth());
138
- }
139
- // Optional: Handle window resize
140
- const handleResize = () => {
141
- if (parentRef.current) {
142
- setDivWidth(calculateWidth());
143
- }
144
- };
145
- window.addEventListener('resize', handleResize);
146
- // Cleanup listener
147
- return () => {
148
- window.removeEventListener('resize', handleResize);
149
- };
150
- }, []);
151
133
  // get schema
152
134
  useEffect(() => {
153
135
  let isSubscribed = true;
@@ -233,7 +215,7 @@ function ChartBuilderForm({ TextInput = QuillTextInput, Select = QuillSelectComp
233
215
  const result = await getReferencedTables(client, query, schema);
234
216
  setDateFieldOptions(result);
235
217
  setTableName(result[0]?.name);
236
- if (!formData.dateField.table) {
218
+ if (!formData.dateField?.table) {
237
219
  setFormData({
238
220
  ...formData,
239
221
  dateField: {
@@ -247,7 +229,7 @@ function ChartBuilderForm({ TextInput = QuillTextInput, Select = QuillSelectComp
247
229
  }
248
230
  };
249
231
  fetchReferencedTables();
250
- }, [query, schema]);
232
+ }, [query]);
251
233
  const defaultDateField = {
252
234
  table: dateFieldOptions[0]?.name,
253
235
  field: dateFieldOptions[0]?.columns[0]?.name,
@@ -550,174 +532,231 @@ function ChartBuilderForm({ TextInput = QuillTextInput, Select = QuillSelectComp
550
532
  if (!schema) {
551
533
  return;
552
534
  }
553
- return (_jsxs("div", { id: "quill-chart-modal", style: { padding: modalPadding }, children: [isEditMode && (_jsxs(_Fragment, { children: [_jsx(Banner, { dashboardItemName: dashboardItem.name, dashboardName: dashboardItem.dashboardName, style: {
554
- position: 'fixed',
555
- top: 0,
556
- left: 0,
557
- right: 0,
558
- margin: 0,
559
- }, onExit: () => {
560
- const msg = 'Are you sure you want to exit edit mode? Your changes will not be saved.';
561
- if (!confirm(msg))
562
- return;
563
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
564
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
565
- } }), _jsxs("style", { children: [" ", `#quill-modal-header { padding-top: 41px; }`, " "] })] })), _jsx("div", { children: _jsx(Chart, { config: { ...formData, rows }, colors: theme.chartColors, containerStyle: {
566
- width: formData.chartType === 'table' ? 640 : 'calc(100% - 24px)',
567
- height: 300,
568
- } }) }), _jsx("div", { style: { height: 20 } }), _jsxs("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Name" }), _jsx(TextInput, { id: "chart-builder-name", value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name", theme: theme })] }), showDashboardDropdown && !destinationDashboard && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Dashboard" }), _jsx(Select, { value: formData.dashboardName || '', onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
569
- label: elem.label,
570
- value: elem.label,
571
- })), theme: theme })] })), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Chart type" }), _jsx(Select, { value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
572
- // filter out metric for all pivots
573
- // filter out bar and pie for row and column pivot
574
- options: CHART_TYPES.filter((elem) => !((formData.pivot && elem === 'metric') ||
575
- (formData.pivot &&
576
- formData.pivot.columnField &&
577
- (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })), theme: theme })] })] }), _jsx("br", {}), _jsxs("div", { style: {
578
- display: 'flex',
579
- flexDirection: 'column',
580
- gap: 12,
581
- marginTop: 6,
582
- }, children: [_jsx(Header, { children: "Pivot" }), _jsxs("div", { style: { fontFamily: theme?.fontFamily }, children: [_jsx("div", { style: {
583
- maxWidth: 200,
584
- // marginTop: 6,
585
- display: 'flex',
586
- flexDirection: 'column',
587
- }, children: _jsx(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 && (_jsx("div", { style: {
588
- // width: 592,
589
- paddingRight: deleteRef?.current ? 42 : 0,
590
- maxWidth: 750,
591
- }, children: _jsx("div", { style: { width: divWidth }, children: _jsx(PivotCard, { pivotTable: {
592
- pivot: formData.pivot,
593
- rows: selectedPivotTable?.rows,
594
- columns: selectedPivotTable?.columns,
595
- }, theme: theme, index: 0, onSelectPivot: () => {
596
- setIsEdittingPivot(true);
597
- setShowPivotPopover(true);
598
- setPivotRowField(formData.pivot?.rowField);
599
- setPivotColumnField(formData.pivot?.columnField);
600
- setPivotValueField(formData.pivot?.valueField);
601
- setPivotAggregation(formData.pivot?.aggregationType);
602
- setPivotPopUpTitle('Edit Pivot');
603
- }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: Button, HeaderComponent: Header, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: Label, TextComponent: Text }) }) }))] })] }), _jsx("br", {}), (formData.pivot || formData.chartType !== 'table') && (_jsxs("div", { children: [CHART_TO_LABELS[formData.chartType]?.xAxisLabel && (_jsx("div", { style: {
604
- display: 'flex',
605
- flexDirection: 'column',
606
- gap: 6,
607
- marginTop: 6,
608
- }, children: _jsx(Header, { children: "Chart" }) })), CHART_TO_LABELS[formData.chartType]?.xAxisLabel && (_jsxs("div", { children: [_jsx(Label, { children: CHART_TO_LABELS[formData.chartType]?.xAxisLabel }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), options: formData.pivot
609
- ? [
610
- {
611
- label: `Pivot Row (${formData.pivot.rowField})`,
612
- value: formData.pivot.rowField,
613
- },
614
- ]
615
- : fieldOptions.map((elem) => ({
616
- label: elem.field,
617
- value: elem.field,
618
- })), theme: theme }), _jsx(TextInput, { id: "chart-builder-x-axis-label", value: formData.pivot
619
- ? formData.pivot.rowField
620
- : formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel'), theme: theme }), _jsx(Select, { value: formData.pivot && isDateField(formData.pivot.rowFieldType)
621
- ? 'pivot_date'
622
- : formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formData.pivot && isDateField(formData.pivot.rowFieldType)
623
- ? [{ value: 'pivot_date', label: 'date' }]
624
- : formatOptions, theme: theme })] }, 'xAxisField'), _jsx("br", {})] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && (_jsxs("div", { children: [_jsx(Label, { children: CHART_TO_LABELS[formData.chartType]?.yAxisLabel }), _jsx("div", { style: {
625
- display: 'flex',
626
- flexDirection: 'column',
627
- gap: 10,
628
- }, children: formData.yAxisFields.map((yAxisField, index) => (_jsxs("div", { style: {
535
+ // if (horizontalView && !isEditMode) {
536
+ // console.log(horizontalView, isEditMode);
537
+ // return;
538
+ // }
539
+ return (_jsx("div", { style: { width: '100%', height: '100%', flexGrow: 1 }, children: _jsxs("div", { id: "quill-chart-modal", style: {
540
+ width: '100%',
541
+ height: '100%',
542
+ maxWidth: '100%',
543
+ display: 'flex',
544
+ padding: modalPadding,
545
+ gap: '20px',
546
+ flexDirection: horizontalView ? 'row' : 'column',
547
+ }, children: [_jsxs("div", { style: {
548
+ display: 'flex',
549
+ flexDirection: 'column',
550
+ gap: '20px',
551
+ ...(horizontalView && {
552
+ flexGrow: 1,
553
+ maxWidth: !isOpen ? '100%' : 'calc(100% - 665px - 20px)', // width of left sidebar plus gap
554
+ }),
555
+ }, children: [(!horizontalView || formData.chartType !== 'table') && (_jsx(Chart, { colors: theme.chartColors, config: { ...formData, rows }, containerStyle: {
556
+ width: '100%',
557
+ height: 400,
558
+ ...(horizontalView && { flexGrow: 1 }),
559
+ } })),
560
+ // Make sure to display non-pivoted table when using pivot chart
561
+ horizontalView && formData.chartType !== 'table' ? (_jsx(Chart, { config: {
562
+ ...formData,
563
+ pivot: undefined,
564
+ chartType: 'table',
565
+ rows,
566
+ rowsPerPage: 20,
567
+ }, containerStyle: {
568
+ height: '100%',
569
+ width: '100%',
570
+ flexGrow: 1,
571
+ } })) : (horizontalView && (_jsx(Chart, { config: {
572
+ ...formData,
573
+ chartType: 'table',
574
+ rows,
575
+ rowsPerPage: 20,
576
+ }, containerStyle: {
577
+ height: '100%',
578
+ width: '100%',
579
+ flexGrow: 1,
580
+ } })))] }), (isOpen || !horizontalView) && (_jsxs("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, style: {
581
+ display: 'flex',
582
+ flexDirection: 'column',
583
+ height: '100%',
584
+ ...(horizontalView && {
585
+ minWidth: 665,
586
+ maxWidth: 665,
587
+ width: 665,
588
+ gap: 20,
589
+ }),
590
+ }, children: [_jsxs("div", { style: { overflow: 'auto' }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Name" }), _jsx(TextInput, { id: "chart-builder-name", value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name", theme: theme })] }), showDashboardDropdown && !destinationDashboard && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Dashboard" }), _jsx(Select, { value: formData.dashboardName || '', onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
591
+ label: elem.label,
592
+ value: elem.label,
593
+ })), theme: theme })] })), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Chart type" }), _jsx(Select, { value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
594
+ // filter out metric for all pivots
595
+ // filter out bar and pie for row and column pivot
596
+ options: CHART_TYPES.filter((elem) => !((formData.pivot && elem === 'metric') ||
597
+ (formData.pivot &&
598
+ formData.pivot.columnField &&
599
+ (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })), theme: theme })] })] }), _jsx("br", {}), _jsxs("div", { style: {
600
+ display: 'flex',
601
+ flexDirection: 'column',
602
+ gap: 12,
603
+ marginTop: 6,
604
+ }, children: [_jsx(Header, { children: "Pivot" }), _jsxs("div", { style: { fontFamily: theme?.fontFamily }, children: [_jsx("div", { style: {
605
+ maxWidth: 200,
606
+ // marginTop: 6,
607
+ display: 'flex',
608
+ flexDirection: 'column',
609
+ }, children: _jsx(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 && (_jsx("div", { style: {
610
+ // width: 592,
611
+ paddingRight: 42,
612
+ maxWidth: 750,
613
+ }, children: _jsx(PivotCard, { pivotTable: {
614
+ pivot: formData.pivot,
615
+ rows: selectedPivotTable?.rows,
616
+ columns: selectedPivotTable?.columns,
617
+ }, theme: theme, index: 0, onSelectPivot: () => {
618
+ setIsEdittingPivot(true);
619
+ setShowPivotPopover(true);
620
+ setPivotRowField(formData.pivot?.rowField);
621
+ setPivotColumnField(formData.pivot?.columnField);
622
+ setPivotValueField(formData.pivot?.valueField);
623
+ setPivotAggregation(formData.pivot?.aggregationType);
624
+ setPivotPopUpTitle('Edit Pivot');
625
+ }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: Button, HeaderComponent: Header, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: Label, TextComponent: Text }) }))] })] }), _jsx("br", {}), (formData.pivot || formData.chartType !== 'table') && (_jsxs("div", { children: [CHART_TO_LABELS[formData.chartType]?.xAxisLabel && (_jsx("div", { style: {
629
626
  display: 'flex',
630
- flexDirection: 'row',
631
- gap: 12,
632
- }, children: [_jsx(Select, { value: formData.pivot
633
- ? formData.pivot.valueField
634
- : yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), theme: theme, options: formData.pivot
635
- ? [
636
- {
637
- label: `Pivot Column (${formData.pivot.valueField})`,
638
- value: formData.pivot.valueField,
639
- },
640
- ]
641
- : fieldOptions
642
- .filter((elem) => {
643
- return numberFormatOptions.includes(columns.find((col) => col.field === elem.field)?.format || '');
644
- })
645
- .map((elem) => ({
646
- label: elem.field,
647
- value: elem.field,
648
- })) }), _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 }), _jsx(Select, { theme: theme, value: formData.pivot
649
- ? !!NUMBER_OPTIONS.find((option) => {
650
- return option.value === yAxisField.format;
651
- })
652
- ? // @ts-ignore
653
- NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
654
- : 'whole_number'
655
- : yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: formData.pivot ? NUMBER_OPTIONS : formatOptions }), formData.pivot === null && (_jsx("div", { ref: deleteRef, children: _jsx(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))) }), formData.pivot === null && (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsx(SecondaryButton, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" })] }))] })), _jsx("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && (_jsxs("div", { children: [_jsxs("div", { style: {
656
- display: 'flex',
657
- flexDirection: 'column',
658
- gap: 6,
659
- marginTop: 6,
660
- }, children: [_jsx(Header, { children: "Table" }), _jsx(Label, { children: "Columns" })] }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.pivot &&
661
- selectedPivotTable &&
662
- selectedPivotTable.columns &&
663
- formData.chartType === 'table'
664
- ? // THIS CASE IF FOR PIVOT TABLES ONLY
665
- selectedPivotTable.columns.map((column, index) => (_jsxs("div", { style: {
627
+ flexDirection: 'column',
628
+ gap: 6,
629
+ marginTop: 6,
630
+ }, children: _jsx(Header, { children: "Chart" }) })), CHART_TO_LABELS[formData.chartType]?.xAxisLabel && (_jsxs("div", { children: [_jsx(Label, { children: CHART_TO_LABELS[formData.chartType]?.xAxisLabel }), _jsxs("div", { style: {
631
+ display: 'flex',
632
+ flexDirection: 'row',
633
+ gap: 12,
634
+ }, children: [_jsx(Select, { value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), options: formData.pivot
635
+ ? [
636
+ {
637
+ label: `Pivot Row (${formData.pivot.rowField})`,
638
+ value: formData.pivot.rowField,
639
+ },
640
+ ]
641
+ : fieldOptions.map((elem) => ({
642
+ label: elem.field,
643
+ value: elem.field,
644
+ })), theme: theme }), _jsx(TextInput, { id: "chart-builder-x-axis-label", value: formData.pivot
645
+ ? formData.pivot.rowField
646
+ : formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel'), theme: theme }), _jsx(Select, { value: formData.pivot &&
647
+ isDateField(formData.pivot.rowFieldType)
648
+ ? 'pivot_date'
649
+ : formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formData.pivot &&
650
+ isDateField(formData.pivot.rowFieldType)
651
+ ? [{ value: 'pivot_date', label: 'date' }]
652
+ : formatOptions, theme: theme })] }, 'xAxisField'), _jsx("br", {})] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && (_jsxs("div", { children: [_jsx(Label, { children: CHART_TO_LABELS[formData.chartType]?.yAxisLabel }), _jsx("div", { style: {
653
+ display: 'flex',
654
+ flexDirection: 'column',
655
+ gap: 10,
656
+ }, children: formData.yAxisFields.map((yAxisField, index) => (_jsxs("div", { style: {
657
+ display: 'flex',
658
+ flexDirection: 'row',
659
+ gap: 12,
660
+ }, children: [_jsx(Select, { value: formData.pivot
661
+ ? formData.pivot.valueField
662
+ : yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), theme: theme, options: formData.pivot
663
+ ? [
664
+ {
665
+ label: `Pivot Column (${formData.pivot.valueField})`,
666
+ value: formData.pivot.valueField,
667
+ },
668
+ ]
669
+ : fieldOptions
670
+ .filter((elem) => {
671
+ return numberFormatOptions.includes(columns.find((col) => col.field === elem.field)?.format || '');
672
+ })
673
+ .map((elem) => ({
674
+ label: elem.field,
675
+ value: elem.field,
676
+ })) }), _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 }), _jsx(Select, { theme: theme, value: formData.pivot
677
+ ? !!NUMBER_OPTIONS.find((option) => {
678
+ return (option.value === yAxisField.format);
679
+ })
680
+ ? // @ts-ignore
681
+ NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
682
+ : 'whole_number'
683
+ : yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: formData.pivot
684
+ ? NUMBER_OPTIONS
685
+ : formatOptions }), formData.pivot === null && (_jsx("div", { ref: deleteRef, children: _jsx(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))) }), formData.pivot === null && (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsx(SecondaryButton, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" })] }))] })), _jsx("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && (_jsxs("div", { children: [_jsxs("div", { style: {
686
+ display: 'flex',
687
+ flexDirection: 'column',
688
+ gap: 6,
689
+ marginTop: 6,
690
+ }, children: [_jsx(Header, { children: "Table" }), _jsx(Label, { children: "Columns" })] }), _jsx("div", { style: {
691
+ display: 'flex',
692
+ flexDirection: 'column',
693
+ gap: 10,
694
+ }, children: formData.pivot &&
695
+ selectedPivotTable &&
696
+ selectedPivotTable.columns &&
697
+ formData.chartType === 'table'
698
+ ? // THIS CASE IF FOR PIVOT TABLES ONLY
699
+ selectedPivotTable.columns.map((column, index) => (_jsxs("div", { style: {
700
+ display: 'flex',
701
+ flexDirection: 'row',
702
+ gap: 12,
703
+ }, children: [_jsx(Select, { theme: theme, value: column.label, onChange: (e) => handleChange(e, 'columns.field', index), options: selectedPivotTable.columns.map((elem) => ({
704
+ label: elem.label,
705
+ value: elem.label,
706
+ })) }), _jsx(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), _jsx(Select, { theme: theme, value:
707
+ // The first index use rowField for the rest of them use value fields
708
+ formData.pivot &&
709
+ column.field === formData.pivot.rowField
710
+ ? formData.pivot &&
711
+ isDateField(formData.pivot.rowFieldType)
712
+ ? 'pivot_date'
713
+ : 'string'
714
+ : formData.pivot?.valueFieldType ||
715
+ 'whole_number', onChange: (e) => handleChange(e, 'pivotColumn', index), options: formData.pivot && index === 0
716
+ ? isDateField(formData.pivot.rowFieldType)
717
+ ? [{ label: 'date', value: 'pivot_date' }]
718
+ : [{ label: 'string', value: 'string' }]
719
+ : [...NUMBER_OPTIONS] })] }, 'column' + index)))
720
+ : formData.columns.map((column, index) => (_jsxs("div", { style: {
721
+ display: 'flex',
722
+ flexDirection: 'row',
723
+ gap: 12,
724
+ }, children: [_jsx(Select, { theme: theme, value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: fields.map((elem) => ({
725
+ label: elem.field,
726
+ value: elem.field,
727
+ })) }), _jsx(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), _jsx(Select, { theme: theme, value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: formatOptions }), _jsx("div", { ref: deleteRef, children: _jsx(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))) }), _jsx("br", {}), _jsx(SecondaryButton, { onClick: () => handleAddField('columns'), label: "Add column +" }), _jsx("br", {}), _jsx("br", {})] })), showDateFieldOptions && formData.dateField && (_jsxs("div", { style: {
728
+ display: 'flex',
729
+ flexDirection: 'column',
730
+ gap: 6,
731
+ marginTop: 6,
732
+ }, children: [_jsx(Header, { children: "Date field" }), _jsxs("div", { style: {
666
733
  display: 'flex',
667
734
  flexDirection: 'row',
668
735
  gap: 12,
669
- }, children: [_jsx(Select, { theme: theme, value: column.label, onChange: (e) => handleChange(e, 'columns.field', index), options: selectedPivotTable.columns.map((elem) => ({
670
- label: elem.label,
671
- value: elem.label,
672
- })) }), _jsx(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), _jsx(Select, { theme: theme, value:
673
- // The first index use rowField for the rest of them use value fields
674
- formData.pivot &&
675
- column.field === formData.pivot.rowField
676
- ? formData.pivot &&
677
- isDateField(formData.pivot.rowFieldType)
678
- ? 'pivot_date'
679
- : 'string'
680
- : formData.pivot?.valueFieldType || 'whole_number', onChange: (e) => handleChange(e, 'pivotColumn', index), options: formData.pivot && index === 0
681
- ? isDateField(formData.pivot.rowFieldType)
682
- ? [{ label: 'date', value: 'pivot_date' }]
683
- : [{ label: 'string', value: 'string' }]
684
- : [...NUMBER_OPTIONS] })] }, 'column' + index)))
685
- : formData.columns.map((column, index) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { theme: theme, value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: fields.map((elem) => ({
686
- label: elem.field,
687
- value: elem.field,
688
- })) }), _jsx(TextInput, { id: `chart-builder-column-label-${index}`, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index), theme: theme }), _jsx(Select, { theme: theme, value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: formatOptions }), _jsx("div", { ref: deleteRef, children: _jsx(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))) }), _jsx("br", {}), _jsx(SecondaryButton, { onClick: () => handleAddField('columns'), label: "Add column +" }), _jsx("br", {}), _jsx("br", {})] })), showDateFieldOptions && (_jsxs("div", { style: {
689
- display: 'flex',
690
- flexDirection: 'column',
691
- gap: 6,
692
- marginTop: 6,
693
- }, children: [_jsx(Header, { children: "Date field" }), _jsxs("div", { style: {
694
- display: 'flex',
695
- flexDirection: 'row',
696
- gap: 12,
697
- // lmao part 2
698
- }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Table" }), _jsx(Select, { theme: theme, value: formData.dateField.table, onChange: (e) => handleChange(e, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
699
- label: elem.name,
700
- value: elem.name,
701
- })) })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Field" }), _jsx(Select, { theme: theme, value: removeDoubleQuotes(formData.dateField.field), onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
702
- ?.find((elem) => elem.name === formData.dateField.table)
703
- ?.columns?.map((elem) => ({
704
- label: elem.name,
705
- value: elem.name,
706
- })) || [] })] })] }), _jsx("br", {})] })), showAccessControlOptions && (_jsxs("div", { style: {
707
- display: 'flex',
708
- flexDirection: 'column',
709
- gap: 12,
710
- marginTop: 6,
711
- }, children: [_jsx(Header, { children: "Organization access" }), _jsx(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme, organizationName: organizationName || 'This Organization' }), _jsx("br", {}), _jsx("br", {})] })), _jsxs("div", { style: {
712
- display: 'flex',
713
- flexDirection: 'row',
714
- justifyContent: 'flex-end',
715
- gap: 10,
716
- }, children: [dashboardItem && (_jsx(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), _jsx(Button, { onClick: editChart, label: buttonLabel
717
- ? buttonLabel
718
- : dashboardItem
719
- ? 'Save changes'
720
- : 'Add to dashboard' })] })] })] }));
736
+ }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Table" }), _jsx(Select, { theme: theme, value: formData.dateField?.table, onChange: (e) => handleChange(e, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
737
+ label: elem.name,
738
+ value: elem.name,
739
+ })) })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Field" }), _jsx(Select, { theme: theme, value: removeDoubleQuotes(formData.dateField?.field), onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
740
+ ?.find((elem) => elem.name === formData.dateField?.table)
741
+ ?.columns?.map((elem) => ({
742
+ label: elem.name,
743
+ value: elem.name,
744
+ })) || [] })] })] }), _jsx("br", {})] })), showAccessControlOptions && (_jsxs("div", { style: {
745
+ display: 'flex',
746
+ flexDirection: 'column',
747
+ gap: 12,
748
+ marginTop: 6,
749
+ }, children: [_jsx(Header, { children: "Organization access" }), _jsx(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme, organizationName: organizationName || 'This Organization' })] }))] }), _jsxs("div", { style: {
750
+ display: 'flex',
751
+ flexDirection: 'row',
752
+ justifyContent: 'flex-end',
753
+ marginTop: 'auto',
754
+ gap: 10,
755
+ }, children: [!horizontalView && dashboardItem && (_jsx(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), _jsx(Button, { onClick: editChart, label: buttonLabel
756
+ ? buttonLabel
757
+ : dashboardItem
758
+ ? 'Save changes'
759
+ : 'Add to dashboard' })] })] }))] }) }));
721
760
  }
722
761
  function SegmentedControl({ onChange, value, theme, organizationName, }) {
723
762
  return (_jsxs("div", { style: {
@@ -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"}