@quillsql/react 2.10.36 → 2.10.38

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 (116) hide show
  1. package/dist/cjs/BarList.d.ts +1 -1
  2. package/dist/cjs/BarList.d.ts.map +1 -1
  3. package/dist/cjs/Chart.d.ts +2 -1
  4. package/dist/cjs/Chart.d.ts.map +1 -1
  5. package/dist/cjs/Chart.js +70 -73
  6. package/dist/cjs/ChartBuilder.d.ts +8 -4
  7. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  8. package/dist/cjs/ChartBuilder.js +206 -126
  9. package/dist/cjs/ChartEditor.js +1 -1
  10. package/dist/cjs/Dashboard.d.ts.map +1 -1
  11. package/dist/cjs/Dashboard.js +9 -1
  12. package/dist/cjs/PieChart.d.ts +1 -0
  13. package/dist/cjs/PieChart.d.ts.map +1 -1
  14. package/dist/cjs/PieChart.js +2 -2
  15. package/dist/cjs/QuillProvider.d.ts +1 -0
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/Table.d.ts.map +1 -1
  18. package/dist/cjs/Table.js +0 -4
  19. package/dist/cjs/components/Chart/BarChart.d.ts +1 -1
  20. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  21. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  22. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  23. package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
  24. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  25. package/dist/cjs/components/Dashboard/DataLoader.js +2 -7
  26. package/dist/cjs/components/Dashboard/TableComponent.d.ts +1 -1
  27. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  28. package/dist/cjs/components/Dashboard/TableComponent.js +5 -21
  29. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  30. package/dist/cjs/components/QuillTable.js +5 -2
  31. package/dist/cjs/components/UiComponents.d.ts +6 -18
  32. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  33. package/dist/cjs/components/UiComponents.js +21 -3
  34. package/dist/cjs/hooks/useQuill.d.ts +1 -1
  35. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  36. package/dist/cjs/index.d.ts +3 -2
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +1 -1
  39. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  40. package/dist/cjs/internals/ReportBuilder/PivotList.js +9 -3
  41. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -1
  42. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  43. package/dist/cjs/internals/ReportBuilder/PivotModal.js +31 -28
  44. package/dist/cjs/models/Pivots.d.ts +2 -0
  45. package/dist/cjs/models/Pivots.d.ts.map +1 -0
  46. package/dist/cjs/models/Pivots.js +2 -0
  47. package/dist/cjs/models/Tables.d.ts +16 -0
  48. package/dist/cjs/models/Tables.d.ts.map +1 -0
  49. package/dist/cjs/models/Tables.js +2 -0
  50. package/dist/cjs/utils/aggregate.d.ts.map +1 -1
  51. package/dist/cjs/utils/aggregate.js +26 -23
  52. package/dist/cjs/utils/textProcessing.d.ts +5 -0
  53. package/dist/cjs/utils/textProcessing.d.ts.map +1 -0
  54. package/dist/cjs/utils/textProcessing.js +37 -0
  55. package/dist/cjs/utils/types.d.ts +4 -0
  56. package/dist/cjs/utils/types.d.ts.map +1 -0
  57. package/dist/cjs/utils/types.js +52 -0
  58. package/dist/esm/BarList.d.ts +1 -1
  59. package/dist/esm/BarList.d.ts.map +1 -1
  60. package/dist/esm/Chart.d.ts +2 -1
  61. package/dist/esm/Chart.d.ts.map +1 -1
  62. package/dist/esm/Chart.js +70 -73
  63. package/dist/esm/ChartBuilder.d.ts +8 -4
  64. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  65. package/dist/esm/ChartBuilder.js +206 -125
  66. package/dist/esm/ChartEditor.js +1 -1
  67. package/dist/esm/Dashboard.d.ts.map +1 -1
  68. package/dist/esm/Dashboard.js +9 -1
  69. package/dist/esm/PieChart.d.ts +1 -0
  70. package/dist/esm/PieChart.d.ts.map +1 -1
  71. package/dist/esm/PieChart.js +2 -2
  72. package/dist/esm/QuillProvider.d.ts +1 -0
  73. package/dist/esm/QuillProvider.d.ts.map +1 -1
  74. package/dist/esm/Table.d.ts.map +1 -1
  75. package/dist/esm/Table.js +1 -5
  76. package/dist/esm/components/Chart/BarChart.d.ts +1 -1
  77. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  78. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  79. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  80. package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
  81. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  82. package/dist/esm/components/Dashboard/DataLoader.js +4 -9
  83. package/dist/esm/components/Dashboard/TableComponent.d.ts +1 -1
  84. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  85. package/dist/esm/components/Dashboard/TableComponent.js +5 -18
  86. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  87. package/dist/esm/components/QuillTable.js +2 -2
  88. package/dist/esm/components/UiComponents.d.ts +6 -18
  89. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  90. package/dist/esm/components/UiComponents.js +19 -2
  91. package/dist/esm/hooks/useQuill.d.ts +1 -1
  92. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  93. package/dist/esm/index.d.ts +3 -2
  94. package/dist/esm/index.d.ts.map +1 -1
  95. package/dist/esm/index.js +1 -1
  96. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +1 -1
  97. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  98. package/dist/esm/internals/ReportBuilder/PivotList.js +9 -3
  99. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -1
  100. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  101. package/dist/esm/internals/ReportBuilder/PivotModal.js +28 -25
  102. package/dist/esm/models/Pivots.d.ts +2 -0
  103. package/dist/esm/models/Pivots.d.ts.map +1 -0
  104. package/dist/esm/models/Pivots.js +1 -0
  105. package/dist/esm/models/Tables.d.ts +16 -0
  106. package/dist/esm/models/Tables.d.ts.map +1 -0
  107. package/dist/esm/models/Tables.js +1 -0
  108. package/dist/esm/utils/aggregate.d.ts.map +1 -1
  109. package/dist/esm/utils/aggregate.js +26 -23
  110. package/dist/esm/utils/textProcessing.d.ts +5 -0
  111. package/dist/esm/utils/textProcessing.d.ts.map +1 -0
  112. package/dist/esm/utils/textProcessing.js +30 -0
  113. package/dist/esm/utils/types.d.ts +4 -0
  114. package/dist/esm/utils/types.d.ts.map +1 -0
  115. package/dist/esm/utils/types.js +48 -0
  116. package/package.json +1 -1
@@ -3,9 +3,8 @@ 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.numberFormatOptions = exports.snakeCaseToTitleCase = void 0;
6
+ exports.dateFormatOptions = exports.numberFormatOptions = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- // @ts-nocheck
9
8
  const react_1 = require("react");
10
9
  const Context_1 = require("./Context");
11
10
  const dataFetcher_1 = require("./utils/dataFetcher");
@@ -16,20 +15,9 @@ const Chart_1 = __importDefault(require("./Chart"));
16
15
  const UiComponents_1 = require("./components/UiComponents");
17
16
  const Banner_1 = __importDefault(require("./components/Banner"));
18
17
  const merge_1 = require("./utils/merge");
18
+ const QuillSelect_1 = require("./components/QuillSelect");
19
+ const textProcessing_1 = require("./utils/textProcessing");
19
20
  const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
20
- function snakeCaseToTitleCase(str) {
21
- if (!str) {
22
- return str;
23
- }
24
- return str
25
- .toString()
26
- .split(/_| /)
27
- .map((word) => word === 'id'
28
- ? 'ID'
29
- : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
30
- .join(' ');
31
- }
32
- exports.snakeCaseToTitleCase = snakeCaseToTitleCase;
33
21
  const POSTGRES_DATE_TYPES = [
34
22
  'timestamp',
35
23
  'date',
@@ -37,6 +25,14 @@ const POSTGRES_DATE_TYPES = [
37
25
  'time',
38
26
  'timetz',
39
27
  ];
28
+ const CHART_TO_LABELS = {
29
+ column: { xAxisLabel: 'X-Axis', yAxisLabel: 'Y-Axis' },
30
+ line: { xAxisLabel: 'X-Axis', yAxisLabel: 'Y-Axis' },
31
+ table: {},
32
+ metric: { xAxisLabel: 'Value' },
33
+ bar: { xAxisLabel: 'X-Axis', yAxisLabel: 'Y-Axis' },
34
+ pie: { xAxisLabel: 'Category', yAxisLabel: 'Count' },
35
+ };
40
36
  function getTablesHelper(ast, allTables) {
41
37
  const tables = [];
42
38
  const withAliases = [];
@@ -79,11 +75,6 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
79
75
  const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `astify`, { query: sqlQuery });
80
76
  return getTablesHelper(resp.ast.length ? resp.ast[0] : resp.ast, dbTables);
81
77
  }
82
- const AGGREGATION_TYPES = [
83
- { label: 'sum', value: 'sum' },
84
- { label: 'count', value: 'count' },
85
- { label: 'average', value: 'avg' },
86
- ];
87
78
  exports.numberFormatOptions = [
88
79
  'whole_number',
89
80
  'one_decimal_place',
@@ -91,20 +82,30 @@ exports.numberFormatOptions = [
91
82
  'dollar_amount',
92
83
  'dollar_cents',
93
84
  ];
94
- const NUMBER_FORMAT_OPTIONS = [
85
+ exports.dateFormatOptions = [
86
+ 'MMM_yyyy',
87
+ 'MMM_dd',
88
+ 'MMM_dd_yyyy',
89
+ 'MMM_dd_hh:mm_ap_pm',
90
+ 'hh_ap_pm',
91
+ ];
92
+ const NUMBER_OPTIONS = [
95
93
  { value: 'whole_number', label: 'whole number' },
96
94
  { value: 'one_decimal_place', label: 'one decimal place' },
97
95
  { value: 'two_decimal_places', label: 'two decimal places' },
98
96
  { value: 'dollar_amount', label: 'dollar amount' },
99
97
  { value: 'dollar_cents', label: 'dollar and cent amount' },
100
98
  ];
101
- const formatOptions = [
102
- ...NUMBER_FORMAT_OPTIONS,
99
+ const DATE_OPTIONS = [
103
100
  { value: 'MMM_yyyy', label: 'month' },
104
- { value: 'MMM_dd-MMM_dd', label: 'week' },
105
- { value: 'MMM_dd_yyyy', label: 'day' },
101
+ { value: 'MMM_dd', label: 'day' },
102
+ { value: 'MMM_dd_yyyy', label: 'day and year' },
106
103
  { value: 'MMM_dd_hh:mm_ap_pm', label: 'day and time' },
107
104
  { value: 'hh_ap_pm', label: 'hour' },
105
+ ];
106
+ const formatOptions = [
107
+ ...NUMBER_OPTIONS,
108
+ ...DATE_OPTIONS,
108
109
  { value: 'percent', label: 'percent' },
109
110
  { value: 'string', label: 'string' },
110
111
  ];
@@ -113,7 +114,7 @@ function ChartBuilder(props) {
113
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
115
  }
115
116
  exports.default = ChartBuilder;
116
- function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select = UiComponents_1.MemoizedSelect, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, Header = UiComponents_1.MemoizedHeader, Label = UiComponents_1.MemoizedLabel, DeleteButton = UiComponents_1.MemoizedDeleteButton, Text = UiComponents_1.MemoizedText, Modal = UiComponents_1.MemoizedModal, 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, }) {
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, }) {
117
118
  const dateRange = dr || [null, null, null];
118
119
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
119
120
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
@@ -127,13 +128,13 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
127
128
  format: field.format,
128
129
  label: field.name,
129
130
  })) || [];
130
- const parentRef = (0, react_1.useRef)();
131
- const deleteRef = (0, react_1.useRef)();
131
+ const parentRef = (0, react_1.useRef)(null);
132
+ const deleteRef = (0, react_1.useRef)(null);
132
133
  const modalPadding = 20;
133
134
  const deleteButtonMargin = -13;
134
135
  (0, react_1.useEffect)(() => {
135
136
  const calculateWidth = () => {
136
- return (parentRef.current.offsetWidth -
137
+ return ((parentRef.current?.offsetWidth || 0) -
137
138
  (deleteRef?.current
138
139
  ? deleteRef?.current.offsetWidth - deleteButtonMargin
139
140
  : 0));
@@ -203,6 +204,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
203
204
  dashboardOptions &&
204
205
  dashboardOptions.length) {
205
206
  setDefaultDashboardName(dashboardOptions[0]?.label);
207
+ setFormData({ ...formData, dashboardName: dashboardOptions[0]?.label });
206
208
  }
207
209
  }, [dashboardOptions]);
208
210
  (0, react_1.useEffect)(() => {
@@ -218,7 +220,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
218
220
  const [showPivotPopover, setShowPivotPopover] = (0, react_1.useState)(false);
219
221
  const [isEdittingPivot, setIsEdittingPivot] = (0, react_1.useState)(false);
220
222
  const [selectedPivotIndex, setSelectedPivotIndex] = (0, react_1.useState)(-1);
221
- const [tableName, setTableName] = (0, react_1.useState)(null);
223
+ const [tableName, setTableName] = (0, react_1.useState)(undefined);
222
224
  const selectedTable = schema?.find((t) => t.displayName === tableName);
223
225
  const [pivotPopUpTitle, setPivotPopUpTitle] = (0, react_1.useState)('Add Pivot');
224
226
  const [createdPivots, setCreatedPivots] = (0, react_1.useState)(pivot ? [pivot] : dashboardItem?.pivot ? [dashboardItem.pivot] : cp);
@@ -242,9 +244,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
242
244
  setFormData({
243
245
  ...formData,
244
246
  dateField: {
245
- table: result[0]?.name,
247
+ table: result[0]?.name || '',
246
248
  field: result[0]?.columns?.find((elem) => elem.name === dateColumn)
247
- ?.name || result[0]?.columns[0]?.name,
249
+ ?.name ||
250
+ result[0]?.columns[0]?.name ||
251
+ '',
248
252
  },
249
253
  });
250
254
  }
@@ -260,7 +264,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
260
264
  name: 'My Chart',
261
265
  dashboardName: dashboardOptions?.[0]?.label,
262
266
  columns: columns.map((col) => {
263
- return { ...col, label: snakeCaseToTitleCase(col.label) };
267
+ return { ...col, label: (0, textProcessing_1.snakeCaseToTitleCase)(col.label) };
264
268
  }),
265
269
  xAxisField: columns?.[0]?.field || '',
266
270
  xAxisFormat: columns?.[0]?.format || '',
@@ -286,7 +290,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
286
290
  : false;
287
291
  return {
288
292
  pivot,
289
- chartType: 'column',
293
+ chartType: dashboardItem?.chartType || 'column',
290
294
  xAxisField: pivot.rowField,
291
295
  xAxisFormat: (0, PivotModal_1.isDateField)(pivot.rowFieldType)
292
296
  ? 'string'
@@ -306,74 +310,100 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
306
310
  };
307
311
  };
308
312
  const [formData, setFormData] = (0, react_1.useState)(pivot
309
- ? { ...formEmptyState, ...pivotFormData(pivot) }
313
+ ? { ...formEmptyState, ...dashboardItem, ...pivotFormData(pivot) }
310
314
  : dashboardItem || formEmptyState);
311
315
  const selectedPivotTable = (0, react_1.useMemo)(() => {
312
316
  if (formData.pivot && rows) {
313
- return (0, PivotModal_1.generatePivotTable)(formData.pivot, rows, dateRange);
317
+ return (0, PivotModal_1.generatePivotTable)(formData.pivot, rows, dateRange, false);
314
318
  }
315
319
  else {
316
- return {};
320
+ return undefined;
317
321
  }
318
- }, [formData.pivot, rows]);
322
+ }, [formData.pivot, rows, formData]);
319
323
  const handleChange = (value, fieldName, index) => {
320
- if (index !== undefined) {
321
- // For dynamic array fields
322
- const [field, subfield] = fieldName.split('.');
323
- const updatedArray = formData[field].map((item, i) => i === index ? { ...item, [subfield]: value } : item);
324
- setFormData({ ...formData, [field]: updatedArray });
325
- }
326
- else if (fieldName.includes('.')) {
327
- // For nested fields
328
- const [field, subfield] = fieldName.split('.');
329
- if (field === 'pivot' && subfield !== '') {
330
- const subfieldTypeFieldName = subfield + 'Type';
331
- if (value.length) {
332
- const subfieldType = fields.find((field) => field.field === value).type;
333
- setFormData({
334
- ...formData,
335
- [field]: {
336
- ...formData[field],
337
- [subfield]: value,
338
- [subfieldTypeFieldName]: subfieldType,
339
- },
340
- });
324
+ try {
325
+ // WE NEED TO REPROCESS THE PIVOT TABLE IF THE PIVOT COLUMN CHANGES
326
+ // WE NEED TO UPDATE BOTH VALUEFIELDTYPE AND COLUMN FIELD TYPES
327
+ if (fieldName === 'pivotColumn') {
328
+ // CAN'T EDIT THE TYPE OF THE RowField
329
+ if (index === 0) {
341
330
  return;
342
331
  }
343
- else {
332
+ const updatedPivot = {
333
+ ...formData.pivot,
334
+ valueFieldType: value,
335
+ };
336
+ // @ts-ignore
337
+ setFormData({ ...formData, pivot: updatedPivot });
338
+ return;
339
+ }
340
+ if (index !== undefined) {
341
+ // For dynamic array fields
342
+ const [field, subfield] = fieldName.split('.');
343
+ // @ts-ignore
344
+ const updatedArray = formData[field].map((item, i) => i === index ? { ...item, [subfield]: value } : item);
345
+ setFormData({ ...formData, [field]: updatedArray });
346
+ }
347
+ else if (fieldName.includes('.')) {
348
+ // For nested fields
349
+ const [field, subfield] = fieldName.split('.');
350
+ if (field === 'pivot' && subfield !== '') {
351
+ const subfieldTypeFieldName = subfield + 'Type';
352
+ if (value.length) {
353
+ const subfieldType = fields.find((field) => field.field === value).type;
354
+ setFormData({
355
+ ...formData,
356
+ // @ts-ignore
357
+ [field]: {
358
+ ...formData[field],
359
+ [subfield]: value,
360
+ [subfieldTypeFieldName]: subfieldType,
361
+ },
362
+ });
363
+ return;
364
+ }
365
+ else {
366
+ setFormData({
367
+ ...formData,
368
+ // @ts-ignore
369
+ [field]: {
370
+ ...formData[field],
371
+ [subfield]: '',
372
+ [subfieldTypeFieldName]: '',
373
+ },
374
+ });
375
+ return;
376
+ }
377
+ }
378
+ if (field === 'dateField' &&
379
+ subfield === 'table' &&
380
+ !formData.dateField.field) {
381
+ const field = schema?.find((elem) => elem.name === value)
382
+ ?.columns?.[0]?.name;
344
383
  setFormData({
345
384
  ...formData,
346
- [field]: {
347
- ...formData[field],
348
- [subfield]: '',
349
- [subfieldTypeFieldName]: '',
350
- },
385
+ // @ts-ignore
386
+ dateField: { ...formData[field], [subfield]: value, field: field },
351
387
  });
352
388
  return;
353
389
  }
354
- }
355
- if (field === 'dateField' &&
356
- subfield === 'table' &&
357
- !formData.dateField.field) {
358
- const field = schema?.find((elem) => elem.name === value)?.columns?.[0]
359
- ?.name;
360
390
  setFormData({
361
391
  ...formData,
362
- dateField: { ...formData[field], [subfield]: value, field: field },
392
+ // @ts-ignore
393
+ [field]: { ...formData[field], [subfield]: value },
363
394
  });
364
- return;
365
395
  }
366
- setFormData({
367
- ...formData,
368
- [field]: { ...formData[field], [subfield]: value },
369
- });
396
+ else {
397
+ // For simple fields
398
+ setFormData({ ...formData, [fieldName]: value });
399
+ }
370
400
  }
371
- else {
372
- // For simple fields
401
+ catch (e) {
402
+ console.log('No field or subfield found');
373
403
  setFormData({ ...formData, [fieldName]: value });
374
404
  }
375
405
  };
376
- const handleAddPivot = (pivot, index) => {
406
+ const handleAddPivot = (pivot) => {
377
407
  setFormData((formData) => ({
378
408
  ...formData,
379
409
  ...pivotFormData(pivot),
@@ -389,6 +419,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
389
419
  if (fieldName === 'columns') {
390
420
  setFormData({
391
421
  ...formData,
422
+ // @ts-ignore
392
423
  columns: [...formData.columns, { label: '', field: '', format: '' }],
393
424
  });
394
425
  }
@@ -397,6 +428,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
397
428
  ...formData,
398
429
  yAxisFields: [
399
430
  ...formData.yAxisFields,
431
+ // @ts-ignore
400
432
  { label: '', field: '', chartType: '', format: '' },
401
433
  ],
402
434
  });
@@ -405,6 +437,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
405
437
  setFormData({
406
438
  ...formData,
407
439
  pivot: {
440
+ title: '',
408
441
  rowField: '',
409
442
  rowFieldType: '',
410
443
  columnField: '',
@@ -423,11 +456,12 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
423
456
  });
424
457
  return;
425
458
  }
459
+ // @ts-ignore
426
460
  const updatedArray = formData[fieldName].filter((_, i) => i !== index);
427
461
  setFormData({ ...formData, [fieldName]: updatedArray });
428
462
  };
429
- const handleSubmit = (e) => {
430
- e.preventDefault();
463
+ const handleSubmit = (event) => {
464
+ event.preventDefault();
431
465
  };
432
466
  const deleteChart = async () => {
433
467
  if (!dashboardItem._id || !client) {
@@ -452,7 +486,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
452
486
  setIsOpen(false);
453
487
  setIsSubmitting(false);
454
488
  };
455
- const editChart = async (_e) => {
489
+ const editChart = async () => {
456
490
  if (isSubmitting) {
457
491
  return;
458
492
  }
@@ -474,8 +508,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
474
508
  queryString: queryNoDateColumn || query,
475
509
  pivot: formData.pivot,
476
510
  };
511
+ // @ts-ignore
477
512
  if (cloudBody['rows']) {
513
+ // @ts-ignore
478
514
  delete cloudBody['rows'];
515
+ // @ts-ignore
479
516
  delete cloudBody['compareRows'];
480
517
  }
481
518
  // add orgId: customerId if present for hostedBody
@@ -506,7 +543,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
506
543
  data: {
507
544
  ...resp,
508
545
  rows,
509
- fields,
546
+ fieldOptions,
510
547
  filtersApplied: dashboardFilters,
511
548
  },
512
549
  });
@@ -535,16 +572,16 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
535
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: {
536
573
  width: formData.chartType === 'table' ? 640 : 'calc(100% - 24px)',
537
574
  height: 300,
538
- } }) }), (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, { value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name" })] }), 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, { label: 'Dashboard', value: formData.dashboardName, onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
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) => ({
539
576
  label: elem.label,
540
577
  value: elem.label,
541
- })) })] })), (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, { label: 'Chart Type', value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
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'),
542
579
  // filter out metric for all pivots
543
580
  // filter out bar and pie for row and column pivot
544
581
  options: CHART_TYPES.filter((elem) => !((formData.pivot && elem === 'metric') ||
545
582
  (formData.pivot &&
546
583
  formData.pivot.columnField &&
547
- (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })) })] })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
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: {
548
585
  display: 'flex',
549
586
  flexDirection: 'column',
550
587
  gap: 12,
@@ -570,43 +607,92 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
570
607
  setPivotValueField(formData.pivot?.valueField);
571
608
  setPivotAggregation(formData.pivot?.aggregationType);
572
609
  setPivotPopUpTitle('Edit Pivot');
573
- }, 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: [(0, jsx_runtime_1.jsxs)("div", { style: {
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: {
574
611
  display: 'flex',
575
612
  flexDirection: 'column',
576
613
  gap: 6,
577
614
  marginTop: 6,
578
- }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Chart" }), (0, jsx_runtime_1.jsx)(Label, { children: "X-axis" })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(Select, { label: 'X-axis Field', value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), disabled: formData.pivot !== null, options: fieldOptions.map((elem) => ({
579
- label: formData.pivot
580
- ? `pivot row (${elem.field})`
581
- : elem.field,
582
- value: elem.field,
583
- })) }), (0, jsx_runtime_1.jsx)(TextInput, { value: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel') }), (0, jsx_runtime_1.jsx)(Select, { label: 'X-axis Format', value: formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formatOptions })] }, 'xAxisField0'), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(Label, { children: "Y-axis" }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.yAxisFields.map((yAxisField, index) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(Select, { label: 'Y-axis Field', value: yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), disabled: formData.pivot !== null, options: [
584
- { label: 'Select', value: '' },
585
- ...fieldOptions
586
- .filter((elem) => {
587
- return (formData.chartType === 'table' ||
588
- formData.pivot ||
589
- exports.numberFormatOptions.includes(columns.find((col) => col.field === elem.field)
590
- ?.format));
591
- })
592
- .map((elem) => ({
593
- label: formData.pivot
594
- ? `pivot columns (${formData.pivot.valueField})`
595
- : elem.field,
596
- value: elem.field,
597
- })),
598
- ] }), (0, jsx_runtime_1.jsx)(TextInput, { value: yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'yAxisFields.label', index) }), (0, jsx_runtime_1.jsx)(Select, { label: 'Y-axis Format', value: yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: [{ label: 'Select', value: '' }, ...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", {}), (0, jsx_runtime_1.jsx)("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { style: {
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: {
636
+ 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: {
599
663
  display: 'flex',
600
664
  flexDirection: 'column',
601
665
  gap: 6,
602
666
  marginTop: 6,
603
- }, 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.columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(Select, { label: 'Column Field', value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: [
604
- { label: 'Select', value: '' },
605
- ...fields.map((elem) => ({
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: {
673
+ display: 'flex',
674
+ flexDirection: 'row',
675
+ 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) => ({
606
693
  label: elem.field,
607
694
  value: elem.field,
608
- })),
609
- ] }), (0, jsx_runtime_1.jsx)(TextInput, { name: "label", value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index) }), (0, jsx_runtime_1.jsx)(Select, { label: 'Column Format', value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: [{ label: 'Select', value: '' }, ...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: {
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: {
610
696
  display: 'flex',
611
697
  flexDirection: 'column',
612
698
  gap: 6,
@@ -616,16 +702,10 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
616
702
  flexDirection: 'row',
617
703
  gap: 12,
618
704
  // lmao part 2
619
- }, 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, { label: 'Date Table', value: formData.dateField.table, onChange: (e) => handleChange(e, 'dateField.table'), options: [
620
- {
621
- label: 'Select',
622
- value: '',
623
- },
624
- ...dateFieldOptions.map((elem) => ({
625
- label: elem.name,
626
- value: elem.name,
627
- })),
628
- ] })] }), (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, { label: 'Date Field', value: formData.dateField.field, onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
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
629
709
  ?.find((elem) => elem.name === formData.dateField.table)
630
710
  ?.columns?.map((elem) => ({
631
711
  label: elem.name,
@@ -635,7 +715,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
635
715
  flexDirection: 'column',
636
716
  gap: 12,
637
717
  marginTop: 6,
638
- }, 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 }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {})] })), (0, jsx_runtime_1.jsxs)("div", { style: {
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: {
639
719
  display: 'flex',
640
720
  flexDirection: 'row',
641
721
  justifyContent: 'flex-end',
@@ -646,7 +726,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
646
726
  ? 'Save changes'
647
727
  : 'Add to dashboard' })] })] })] }));
648
728
  }
649
- function SegmentedControl({ onChange, value, theme, organizationName = 'This Organization', }) {
729
+ function SegmentedControl({ onChange, value, theme, organizationName, }) {
650
730
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
651
731
  display: 'flex',
652
732
  flexDirection: 'row',
@@ -73,6 +73,6 @@ function ChartEditor({ isOpen, chartId, isEditMode, admin = false, destinationDa
73
73
  isSubscribed = false;
74
74
  };
75
75
  }, [client, chartId]);
76
- return ((0, jsx_runtime_1.jsx)("div", { children: dashboardItem && ((0, jsx_runtime_1.jsx)(ChartBuilder_1.default, { dashboardItem: dashboardItem, rows: dashboardItem.rows, columns: dashboardItem.columns, fields: dashboardItem.fields, query: dashboardItem.queryString, isOpen: isOpen, isEditMode: isEditMode, setIsOpen: setIsOpen, showTableFormatOptions: admin, showDateFieldOptions: admin, showAccessControlOptions: admin, showDashboardDropdown: admin, destinationDashboard: destinationDashboard, dateRange: dateRange, Select: Select, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton, Header: Header, Label: Label, Text: Text, DeleteButton: DeleteButton, Modal: Modal, Popover: Popover, onDelete: onDelete, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName })) }));
76
+ return ((0, jsx_runtime_1.jsx)("div", { children: dashboardItem && ((0, jsx_runtime_1.jsx)(ChartBuilder_1.default, { dashboardItem: dashboardItem, rows: dashboardItem.rows, columns: dashboardItem.columns, fields: dashboardItem.fields, query: dashboardItem.queryString, pivot: dashboardItem.pivot, isOpen: isOpen, isEditMode: isEditMode, setIsOpen: setIsOpen, showTableFormatOptions: admin, showDateFieldOptions: admin, showAccessControlOptions: admin, showDashboardDropdown: admin, destinationDashboard: destinationDashboard, dateRange: dateRange, Select: Select, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton, Header: Header, Label: Label, Text: Text, DeleteButton: DeleteButton, Modal: Modal, Popover: Popover, onDelete: onDelete, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName })) }));
77
77
  }
78
78
  exports.default = ChartEditor;
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}