@quillsql/react 2.9.1 → 2.9.2

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 (309) hide show
  1. package/dist/AddToDashboardModal.d.ts +1 -0
  2. package/dist/AddToDashboardModal.d.ts.map +1 -1
  3. package/dist/AddToDashboardModal.js +152 -181
  4. package/dist/AddToDashboardModal.js.map +1 -1
  5. package/dist/BarList.d.ts +1 -0
  6. package/dist/BarList.js +36 -44
  7. package/dist/Chart.d.ts +5 -24
  8. package/dist/Chart.d.ts.map +1 -1
  9. package/dist/Chart.js +203 -802
  10. package/dist/Chart.js.map +1 -1
  11. package/dist/ChartBuilder.d.ts +1 -0
  12. package/dist/ChartBuilder.d.ts.map +1 -1
  13. package/dist/ChartBuilder.js +89 -91
  14. package/dist/ChartBuilder.js.map +1 -1
  15. package/dist/ChartEditor.d.ts +1 -0
  16. package/dist/ChartEditor.d.ts.map +1 -1
  17. package/dist/ChartEditor.js +23 -22
  18. package/dist/ChartEditor.js.map +1 -1
  19. package/dist/Context.d.ts +20 -0
  20. package/dist/Context.d.ts.map +1 -1
  21. package/dist/Context.js +81 -61
  22. package/dist/Context.js.map +1 -1
  23. package/dist/Dashboard.d.ts +4 -1
  24. package/dist/Dashboard.d.ts.map +1 -1
  25. package/dist/Dashboard.js +250 -251
  26. package/dist/Dashboard.js.map +1 -1
  27. package/dist/DateRangePicker/Calendar.d.ts +1 -0
  28. package/dist/DateRangePicker/Calendar.js +41 -46
  29. package/dist/DateRangePicker/DateRangePicker.d.ts +1 -0
  30. package/dist/DateRangePicker/DateRangePicker.js +32 -61
  31. package/dist/DateRangePicker/DateRangePickerButton.d.ts +1 -0
  32. package/dist/DateRangePicker/DateRangePickerButton.js +14 -17
  33. package/dist/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  34. package/dist/DateRangePicker/dateRangePickerUtils.js +76 -90
  35. package/dist/DateRangePicker/index.d.ts +1 -0
  36. package/dist/DateRangePicker/index.js +1 -9
  37. package/dist/PieChart.d.ts +1 -0
  38. package/dist/PieChart.js +35 -70
  39. package/dist/QuillProvider.d.ts +1 -0
  40. package/dist/QuillProvider.js +4 -7
  41. package/dist/ReportBuilder.d.ts +1 -0
  42. package/dist/ReportBuilder.js +120 -129
  43. package/dist/SQLEditor.d.ts +1 -0
  44. package/dist/SQLEditor.js +56 -65
  45. package/dist/SQLEditor.js.map +1 -1
  46. package/dist/Table.d.ts +1 -0
  47. package/dist/Table.d.ts.map +1 -1
  48. package/dist/Table.js +65 -65
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TableChart.d.ts +1 -0
  51. package/dist/TableChart.js +17 -45
  52. package/dist/api/ServerClient.d.ts +30 -0
  53. package/dist/api/ServerClient.d.ts.map +1 -0
  54. package/dist/api/ServerClient.js +39 -0
  55. package/dist/api/ServerClient.js.map +1 -0
  56. package/dist/assets/ArrowDownHeadIcon.d.ts +1 -0
  57. package/dist/assets/ArrowDownHeadIcon.js +3 -6
  58. package/dist/assets/ArrowDownIcon.d.ts +1 -0
  59. package/dist/assets/ArrowDownIcon.js +3 -6
  60. package/dist/assets/ArrowDownRightIcon.d.ts +1 -0
  61. package/dist/assets/ArrowDownRightIcon.js +3 -6
  62. package/dist/assets/ArrowLeftHeadIcon.d.ts +1 -0
  63. package/dist/assets/ArrowLeftHeadIcon.js +3 -6
  64. package/dist/assets/ArrowRightHeadIcon.d.ts +1 -0
  65. package/dist/assets/ArrowRightHeadIcon.js +3 -6
  66. package/dist/assets/ArrowRightIcon.d.ts +1 -0
  67. package/dist/assets/ArrowRightIcon.js +3 -6
  68. package/dist/assets/ArrowUpHeadIcon.d.ts +1 -0
  69. package/dist/assets/ArrowUpHeadIcon.js +3 -6
  70. package/dist/assets/ArrowUpIcon.d.ts +1 -0
  71. package/dist/assets/ArrowUpIcon.js +3 -6
  72. package/dist/assets/ArrowUpRightIcon.d.ts +1 -0
  73. package/dist/assets/ArrowUpRightIcon.js +3 -6
  74. package/dist/assets/CalendarIcon.d.ts +1 -0
  75. package/dist/assets/CalendarIcon.js +3 -6
  76. package/dist/assets/CalendarNormalIcon.d.ts +1 -0
  77. package/dist/assets/CalendarNormalIcon.js +3 -6
  78. package/dist/assets/DoubleArrowLeftHeadIcon.d.ts +1 -0
  79. package/dist/assets/DoubleArrowLeftHeadIcon.js +3 -6
  80. package/dist/assets/DoubleArrowRightHeadIcon.d.ts +1 -0
  81. package/dist/assets/DoubleArrowRightHeadIcon.js +3 -6
  82. package/dist/assets/ExclamationFilledIcon.d.ts +1 -0
  83. package/dist/assets/ExclamationFilledIcon.js +3 -6
  84. package/dist/assets/FilterIcon.d.ts +1 -0
  85. package/dist/assets/FilterIcon.js +3 -6
  86. package/dist/assets/LoadingSpinner.d.ts +1 -0
  87. package/dist/assets/LoadingSpinner.js +3 -6
  88. package/dist/assets/RefreshIcon.d.ts +1 -0
  89. package/dist/assets/RefreshIcon.js +3 -6
  90. package/dist/assets/SearchIcon.d.ts +1 -0
  91. package/dist/assets/SearchIcon.js +3 -6
  92. package/dist/assets/UpLeftArrowsIcon.d.ts +1 -0
  93. package/dist/assets/UpLeftArrowsIcon.js +3 -6
  94. package/dist/assets/XCircleIcon.d.ts +1 -0
  95. package/dist/assets/XCircleIcon.js +3 -6
  96. package/dist/assets/XIcon.d.ts +1 -0
  97. package/dist/assets/XIcon.js +3 -6
  98. package/dist/assets/index.d.ts +1 -0
  99. package/dist/assets/index.js +21 -49
  100. package/dist/components/Banner/index.d.ts +1 -0
  101. package/dist/components/Banner/index.js +6 -10
  102. package/dist/components/BigModal/BigModal.d.ts +1 -0
  103. package/dist/components/BigModal/BigModal.js +13 -39
  104. package/dist/components/Chart/BarChart.d.ts +15 -0
  105. package/dist/components/Chart/BarChart.d.ts.map +1 -0
  106. package/dist/components/Chart/BarChart.js +57 -0
  107. package/dist/components/Chart/BarChart.js.map +1 -0
  108. package/dist/components/Chart/ChartTooltip.d.ts +29 -0
  109. package/dist/components/Chart/ChartTooltip.d.ts.map +1 -0
  110. package/dist/components/Chart/ChartTooltip.js +229 -0
  111. package/dist/components/Chart/ChartTooltip.js.map +1 -0
  112. package/dist/components/Chart/ChartTooltipFrame.d.ts +6 -0
  113. package/dist/components/Chart/ChartTooltipFrame.d.ts.map +1 -0
  114. package/dist/components/Chart/ChartTooltipFrame.js +12 -0
  115. package/dist/components/Chart/ChartTooltipFrame.js.map +1 -0
  116. package/dist/components/Chart/ChartTooltipGroup.d.ts +11 -0
  117. package/dist/components/Chart/ChartTooltipGroup.d.ts.map +1 -0
  118. package/dist/components/Chart/ChartTooltipGroup.js +23 -0
  119. package/dist/components/Chart/ChartTooltipGroup.js.map +1 -0
  120. package/dist/components/Chart/ChartTooltipRow.d.ts +8 -0
  121. package/dist/components/Chart/ChartTooltipRow.d.ts.map +1 -0
  122. package/dist/components/Chart/ChartTooltipRow.js +41 -0
  123. package/dist/components/Chart/ChartTooltipRow.js.map +1 -0
  124. package/dist/components/Chart/LineChart.d.ts +13 -0
  125. package/dist/components/Chart/LineChart.d.ts.map +1 -0
  126. package/dist/components/Chart/LineChart.js +68 -0
  127. package/dist/components/Chart/LineChart.js.map +1 -0
  128. package/dist/components/Dropdown/Dropdown.d.ts +1 -0
  129. package/dist/components/Dropdown/Dropdown.js +24 -53
  130. package/dist/components/Dropdown/DropdownItem.d.ts +1 -0
  131. package/dist/components/Dropdown/DropdownItem.js +9 -35
  132. package/dist/components/Dropdown/index.d.ts +1 -0
  133. package/dist/components/Dropdown/index.js +2 -11
  134. package/dist/components/Modal/Modal.d.ts +1 -0
  135. package/dist/components/Modal/Modal.js +13 -39
  136. package/dist/components/Modal/index.d.ts +1 -0
  137. package/dist/components/Modal/index.js +1 -9
  138. package/dist/components/QuillCard.d.ts +1 -0
  139. package/dist/components/QuillCard.js +8 -13
  140. package/dist/components/ReportBuilder/ColumnSelector.d.ts +24 -6
  141. package/dist/components/ReportBuilder/ColumnSelector.d.ts.map +1 -1
  142. package/dist/components/ReportBuilder/ColumnSelector.js +56 -8
  143. package/dist/components/ReportBuilder/ColumnSelector.js.map +1 -0
  144. package/dist/components/ReportBuilder/FiltersModal.d.ts +40 -0
  145. package/dist/components/ReportBuilder/FiltersModal.d.ts.map +1 -0
  146. package/dist/components/ReportBuilder/FiltersModal.js +273 -0
  147. package/dist/components/ReportBuilder/FiltersModal.js.map +1 -0
  148. package/dist/components/ReportBuilder/SortModal.d.ts +28 -0
  149. package/dist/components/ReportBuilder/SortModal.d.ts.map +1 -0
  150. package/dist/components/ReportBuilder/SortModal.js +41 -0
  151. package/dist/components/ReportBuilder/SortModal.js.map +1 -0
  152. package/dist/components/SqlTextEditor.d.ts +1 -0
  153. package/dist/components/SqlTextEditor.js +4 -11
  154. package/dist/components/UiComponents.d.ts +1 -0
  155. package/dist/components/UiComponents.js +37 -51
  156. package/dist/components/selectUtils.d.ts +1 -0
  157. package/dist/components/selectUtils.js +6 -17
  158. package/dist/contexts/BaseColorContext.d.ts +1 -0
  159. package/dist/contexts/BaseColorContext.js +3 -6
  160. package/dist/contexts/HoveredValueContext.d.ts +1 -0
  161. package/dist/contexts/HoveredValueContext.js +3 -6
  162. package/dist/contexts/RootStylesContext.d.ts +1 -0
  163. package/dist/contexts/RootStylesContext.js +3 -6
  164. package/dist/contexts/SelectedValueContext.d.ts +1 -0
  165. package/dist/contexts/SelectedValueContext.js +3 -6
  166. package/dist/contexts/index.d.ts +1 -0
  167. package/dist/contexts/index.js +4 -15
  168. package/dist/hooks/index.d.ts +1 -0
  169. package/dist/hooks/index.js +4 -15
  170. package/dist/hooks/useDashboard.d.ts +1 -0
  171. package/dist/hooks/useDashboard.js +10 -15
  172. package/dist/hooks/useInternalState.d.ts +1 -0
  173. package/dist/hooks/useInternalState.js +3 -6
  174. package/dist/hooks/useOnClickOutside.d.ts +1 -0
  175. package/dist/hooks/useOnClickOutside.js +3 -6
  176. package/dist/hooks/useOnWindowResize.d.ts +1 -0
  177. package/dist/hooks/useOnWindowResize.js +4 -7
  178. package/dist/hooks/useQuill.d.ts +3 -2
  179. package/dist/hooks/useQuill.d.ts.map +1 -1
  180. package/dist/hooks/useQuill.js +37 -28
  181. package/dist/hooks/useQuill.js.map +1 -1
  182. package/dist/hooks/useSelectOnKeyDown.d.ts +1 -0
  183. package/dist/hooks/useSelectOnKeyDown.js +4 -7
  184. package/dist/index.d.ts +1 -0
  185. package/dist/index.js +13 -33
  186. package/dist/internals/ReportBuilder/PivotList.d.ts +1 -0
  187. package/dist/internals/ReportBuilder/PivotList.js +14 -20
  188. package/dist/internals/ReportBuilder/PivotModal.d.ts +3 -2
  189. package/dist/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  190. package/dist/internals/ReportBuilder/PivotModal.js +280 -115
  191. package/dist/internals/ReportBuilder/PivotModal.js.map +1 -1
  192. package/dist/internals/ReportBuilder/PivotModal.spec.d.ts +1 -0
  193. package/dist/internals/ReportBuilder/PivotModal.spec.js +70 -73
  194. package/dist/lib/font.d.ts +1 -0
  195. package/dist/lib/font.js +2 -6
  196. package/dist/lib/index.d.ts +1 -0
  197. package/dist/lib/index.js +3 -20
  198. package/dist/lib/inputTypes.d.ts +1 -0
  199. package/dist/lib/inputTypes.js +1 -3
  200. package/dist/lib/utils.d.ts +1 -0
  201. package/dist/lib/utils.js +8 -19
  202. package/dist/test-data/tables.d.ts.map +1 -1
  203. package/dist/test-data/tables.js +27 -585
  204. package/dist/test-data/tables.js.map +1 -0
  205. package/dist/utils/aggregate.d.ts +1 -0
  206. package/dist/utils/aggregate.js +28 -35
  207. package/dist/utils/ast.d.ts +18 -0
  208. package/dist/utils/ast.d.ts.map +1 -0
  209. package/dist/utils/ast.js +310 -0
  210. package/dist/utils/ast.js.map +1 -0
  211. package/dist/utils/axisFormatter.d.ts +1 -0
  212. package/dist/utils/axisFormatter.js +19 -24
  213. package/dist/utils/color.d.ts +13 -0
  214. package/dist/utils/color.d.ts.map +1 -0
  215. package/dist/utils/color.js +247 -0
  216. package/dist/utils/color.js.map +1 -0
  217. package/dist/utils/colorToHex.d.ts +1 -0
  218. package/dist/utils/colorToHex.js +1 -5
  219. package/dist/utils/crypto.d.ts +2 -0
  220. package/dist/utils/crypto.d.ts.map +1 -0
  221. package/dist/utils/crypto.js +6 -0
  222. package/dist/utils/crypto.js.map +1 -0
  223. package/dist/utils/dataFetcher.d.ts +1 -0
  224. package/dist/utils/dataFetcher.d.ts.map +1 -1
  225. package/dist/utils/dataFetcher.js +8 -9
  226. package/dist/utils/dataFetcher.js.map +1 -1
  227. package/dist/utils/dates.d.ts +10 -0
  228. package/dist/utils/dates.d.ts.map +1 -0
  229. package/dist/utils/dates.js +32 -0
  230. package/dist/utils/dates.js.map +1 -0
  231. package/dist/utils/downloadCSV.d.ts +1 -0
  232. package/dist/utils/downloadCSV.js +1 -6
  233. package/dist/utils/getDomain.d.ts +8 -0
  234. package/dist/utils/getDomain.d.ts.map +1 -0
  235. package/dist/utils/getDomain.js +28 -0
  236. package/dist/utils/getDomain.js.map +1 -0
  237. package/dist/utils/merge.d.ts +2 -0
  238. package/dist/utils/merge.d.ts.map +1 -0
  239. package/dist/utils/merge.js +45 -0
  240. package/dist/utils/merge.js.map +1 -0
  241. package/dist/utils/schema.d.ts +7 -2
  242. package/dist/utils/schema.d.ts.map +1 -1
  243. package/dist/utils/schema.js +13 -7
  244. package/dist/utils/schema.js.map +1 -0
  245. package/dist/utils/sorting.d.ts +5 -0
  246. package/dist/utils/sorting.d.ts.map +1 -0
  247. package/dist/utils/sorting.js +14 -0
  248. package/dist/utils/sorting.js.map +1 -0
  249. package/dist/utils/textFormatting.d.ts.map +1 -1
  250. package/dist/utils/textFormatting.js +0 -1
  251. package/dist/utils/textFormatting.js.map +1 -0
  252. package/dist/utils/valueFormatter.d.ts +1 -0
  253. package/dist/utils/valueFormatter.js +19 -24
  254. package/dist/utils/valueFormatterCSV.d.ts +1 -0
  255. package/dist/utils/valueFormatterCSV.js +19 -24
  256. package/package.json +2 -3
  257. package/dist/DateRangePicker/Calendar.js.map +0 -1
  258. package/dist/DateRangePicker/dateRangePickerUtils.js.map +0 -1
  259. package/dist/DateRangePicker/index.js.map +0 -1
  260. package/dist/PieChart.js.map +0 -1
  261. package/dist/QuillProvider.js.map +0 -1
  262. package/dist/assets/ArrowDownIcon.js.map +0 -1
  263. package/dist/assets/ArrowDownRightIcon.js.map +0 -1
  264. package/dist/assets/ArrowLeftHeadIcon.js.map +0 -1
  265. package/dist/assets/ArrowRightHeadIcon.js.map +0 -1
  266. package/dist/assets/ArrowRightIcon.js.map +0 -1
  267. package/dist/assets/ArrowUpHeadIcon.js.map +0 -1
  268. package/dist/assets/ArrowUpIcon.js.map +0 -1
  269. package/dist/assets/ArrowUpRightIcon.js.map +0 -1
  270. package/dist/assets/CalendarIcon.js.map +0 -1
  271. package/dist/assets/CalendarNormalIcon.js.map +0 -1
  272. package/dist/assets/DoubleArrowLeftHeadIcon.js.map +0 -1
  273. package/dist/assets/DoubleArrowRightHeadIcon.js.map +0 -1
  274. package/dist/assets/ExclamationFilledIcon.js.map +0 -1
  275. package/dist/assets/FilterIcon.js.map +0 -1
  276. package/dist/assets/LoadingSpinner.js.map +0 -1
  277. package/dist/assets/RefreshIcon.js.map +0 -1
  278. package/dist/assets/SearchIcon.js.map +0 -1
  279. package/dist/assets/UpLeftArrowsIcon.js.map +0 -1
  280. package/dist/assets/XCircleIcon.js.map +0 -1
  281. package/dist/assets/XIcon.js.map +0 -1
  282. package/dist/assets/index.js.map +0 -1
  283. package/dist/components/BigModal/BigModal.js.map +0 -1
  284. package/dist/components/Dropdown/Dropdown.js.map +0 -1
  285. package/dist/components/Dropdown/DropdownItem.js.map +0 -1
  286. package/dist/components/Dropdown/index.js.map +0 -1
  287. package/dist/components/Modal/Modal.js.map +0 -1
  288. package/dist/components/Modal/index.js.map +0 -1
  289. package/dist/components/QuillCard.js.map +0 -1
  290. package/dist/components/selectUtils.js.map +0 -1
  291. package/dist/contexts/BaseColorContext.js.map +0 -1
  292. package/dist/contexts/HoveredValueContext.js.map +0 -1
  293. package/dist/contexts/RootStylesContext.js.map +0 -1
  294. package/dist/contexts/SelectedValueContext.js.map +0 -1
  295. package/dist/contexts/index.js.map +0 -1
  296. package/dist/hooks/index.js.map +0 -1
  297. package/dist/hooks/useDashboard.js.map +0 -1
  298. package/dist/hooks/useInternalState.js.map +0 -1
  299. package/dist/hooks/useOnClickOutside.js.map +0 -1
  300. package/dist/hooks/useOnWindowResize.js.map +0 -1
  301. package/dist/hooks/useSelectOnKeyDown.js.map +0 -1
  302. package/dist/index.js.map +0 -1
  303. package/dist/internals/ReportBuilder/PivotModal.spec.js.map +0 -1
  304. package/dist/lib/font.js.map +0 -1
  305. package/dist/lib/index.js.map +0 -1
  306. package/dist/lib/inputTypes.js.map +0 -1
  307. package/dist/lib/utils.js.map +0 -1
  308. package/dist/utils/aggregate.js.map +0 -1
  309. package/dist/utils/downloadCSV.js.map +0 -1
@@ -1,22 +1,17 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.numberFormatOptions = exports.snakeCaseToTitleCase = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
2
  // @ts-nocheck
9
- const react_1 = require("react");
10
- const Context_1 = require("./Context");
11
- const dataFetcher_1 = require("./utils/dataFetcher");
12
- const ReportBuilder_1 = require("./ReportBuilder");
13
- const PivotModal_1 = require("./internals/ReportBuilder/PivotModal");
14
- const PivotList_1 = require("./internals/ReportBuilder/PivotList");
15
- const Chart_1 = __importDefault(require("./Chart"));
16
- const UiComponents_1 = require("./components/UiComponents");
17
- const Banner_1 = __importDefault(require("./components/Banner"));
3
+ import { useEffect, useRef, useState, useContext, useMemo } from 'react';
4
+ import { ClientContext, DashboardContext, DashboardFiltersContext, SchemaContext, ThemeContext, } from './Context';
5
+ import { getData, getDataFromCloud } from './utils/dataFetcher';
6
+ import { getPostgresBasicType } from './ReportBuilder';
7
+ import { PivotModal, generatePivotTable, isDateField, } from './internals/ReportBuilder/PivotModal';
8
+ import { PivotCard } from './internals/ReportBuilder/PivotList';
9
+ import Chart from './Chart';
10
+ import { MemoizedModal, MemoizedTextInput, MemoizedSelect, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, } from './components/UiComponents';
11
+ import Banner from './components/Banner';
12
+ import { mergeComparisonRange } from './utils/merge';
18
13
  const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
19
- function snakeCaseToTitleCase(str) {
14
+ export function snakeCaseToTitleCase(str) {
20
15
  if (!str) {
21
16
  return str;
22
17
  }
@@ -28,7 +23,6 @@ function snakeCaseToTitleCase(str) {
28
23
  : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
29
24
  .join(' ');
30
25
  }
31
- exports.snakeCaseToTitleCase = snakeCaseToTitleCase;
32
26
  const POSTGRES_DATE_TYPES = [
33
27
  'timestamp',
34
28
  'date',
@@ -40,7 +34,7 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
40
34
  // const parser = new Parser();
41
35
  const tables = [];
42
36
  const withAliases = [];
43
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `astify`, { query: sqlQuery });
37
+ const resp = await getDataFromCloud(client, `astify`, { query: sqlQuery });
44
38
  let ast = resp.ast;
45
39
  ast = ast.length ? ast[0] : ast;
46
40
  if (ast.with && ast.with.length) {
@@ -74,7 +68,7 @@ const AGGREGATION_TYPES = [
74
68
  { label: 'count', value: 'count' },
75
69
  { label: 'average', value: 'avg' },
76
70
  ];
77
- exports.numberFormatOptions = [
71
+ export const numberFormatOptions = [
78
72
  'whole_number',
79
73
  'one_decimal_place',
80
74
  'two_decimal_places',
@@ -98,30 +92,29 @@ const formatOptions = [
98
92
  { value: 'percent', label: 'percent' },
99
93
  { value: 'string', label: 'string' },
100
94
  ];
101
- function ChartBuilder(props) {
102
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
103
- 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 }) })) }));
95
+ export default function ChartBuilder(props) {
96
+ const [theme] = useContext(ThemeContext);
97
+ 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 }) })) }));
104
98
  }
105
- exports.default = ChartBuilder;
106
- 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, }) {
99
+ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSelect, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Modal = MemoizedModal, 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, }) {
107
100
  const dateRange = dr || [null, null, null];
108
- const [client] = (0, react_1.useContext)(Context_1.ClientContext);
109
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
110
- const [schema, setSchema] = (0, react_1.useContext)(Context_1.SchemaContext);
111
- const [isSubmitting, setIsSubmitting] = (0, react_1.useState)(false);
112
- const [divWidth, setDivWidth] = (0, react_1.useState)(0);
113
- const { dispatch } = (0, react_1.useContext)(Context_1.DashboardContext);
101
+ const [client] = useContext(ClientContext);
102
+ const [theme] = useContext(ThemeContext);
103
+ const [schema, setSchema] = useContext(SchemaContext);
104
+ const [isSubmitting, setIsSubmitting] = useState(false);
105
+ const [divWidth, setDivWidth] = useState(0);
106
+ const { dispatch } = useContext(DashboardContext);
114
107
  const fields = fieldsProp?.map((field) => ({
115
108
  field: field.name,
116
- type: (0, ReportBuilder_1.getPostgresBasicType)(field),
109
+ type: getPostgresBasicType(field),
117
110
  format: field.format,
118
111
  label: field.name,
119
112
  })) || [];
120
- const parentRef = (0, react_1.useRef)();
121
- const deleteRef = (0, react_1.useRef)();
113
+ const parentRef = useRef();
114
+ const deleteRef = useRef();
122
115
  const modalPadding = 20;
123
116
  const deleteButtonMargin = -13;
124
- (0, react_1.useEffect)(() => {
117
+ useEffect(() => {
125
118
  const calculateWidth = () => {
126
119
  return (parentRef.current.offsetWidth -
127
120
  (deleteRef?.current
@@ -145,11 +138,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
145
138
  };
146
139
  }, []);
147
140
  // get schema
148
- (0, react_1.useEffect)(() => {
141
+ useEffect(() => {
149
142
  let isSubscribed = true;
150
143
  async function getSchema() {
151
144
  if (!schema || !schema.length) {
152
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `schema2/${client.publicKey}/`, null, 'GET');
145
+ const resp = await getDataFromCloud(client, `schema2/${client.publicKey}/`, null, 'GET');
153
146
  if (isSubscribed) {
154
147
  setSchema(resp.tables);
155
148
  }
@@ -163,11 +156,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
163
156
  };
164
157
  }, [schema]);
165
158
  // get dashboards
166
- const [dashboardOptions, setDashboardOptions] = (0, react_1.useState)([]);
167
- const [defaultDashboardName, setDefaultDashboardName] = (0, react_1.useState)(destinationDashboard ||
159
+ const [dashboardOptions, setDashboardOptions] = useState([]);
160
+ const [defaultDashboardName, setDefaultDashboardName] = useState(destinationDashboard ||
168
161
  dashboardItem?.dashboardName ||
169
162
  dashboardOptions[0]?.label);
170
- (0, react_1.useEffect)(() => {
163
+ useEffect(() => {
171
164
  if (!destinationDashboard &&
172
165
  !dashboardItem &&
173
166
  dashboardOptions &&
@@ -175,31 +168,32 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
175
168
  setDefaultDashboardName(dashboardOptions[0]?.label);
176
169
  }
177
170
  }, [dashboardOptions]);
178
- (0, react_1.useEffect)(() => {
171
+ useEffect(() => {
179
172
  async function getDashNames() {
180
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `dashnames/${client.publicKey}/`, null, 'GET');
173
+ const resp = await getDataFromCloud(client, `dashnames/${client.publicKey}/`, null, 'GET');
181
174
  setDashboardOptions(resp.dashboardNames
182
175
  .filter((elem) => elem !== null)
183
176
  .map((key) => ({ label: key, value: key })));
184
177
  }
185
178
  getDashNames();
186
179
  }, []);
187
- const [showPivotPopover, setShowPivotPopover] = (0, react_1.useState)(false);
188
- const [isEdittingPivot, setIsEdittingPivot] = (0, react_1.useState)(false);
189
- const [selectedPivotIndex, setSelectedPivotIndex] = (0, react_1.useState)(-1);
190
- const [tableName, setTableName] = (0, react_1.useState)(null);
180
+ const { dashboardFilters } = useContext(DashboardFiltersContext);
181
+ const [showPivotPopover, setShowPivotPopover] = useState(false);
182
+ const [isEdittingPivot, setIsEdittingPivot] = useState(false);
183
+ const [selectedPivotIndex, setSelectedPivotIndex] = useState(-1);
184
+ const [tableName, setTableName] = useState(null);
191
185
  const selectedTable = schema?.find((t) => t.displayName === tableName);
192
- const [pivotPopUpTitle, setPivotPopUpTitle] = (0, react_1.useState)('Add Pivot');
193
- const [createdPivots, setCreatedPivots] = (0, react_1.useState)(pivot ? [pivot] : dashboardItem?.pivot ? [dashboardItem.pivot] : cp);
194
- const [recommendedPivots, setRecommendedPivots] = (0, react_1.useState)(rp);
195
- const [pivotRowField, setPivotRowField] = (0, react_1.useState)(undefined);
196
- const [pivotColumnField, setPivotColumnField] = (0, react_1.useState)(undefined);
197
- const [pivotValueField, setPivotValueField] = (0, react_1.useState)(undefined);
198
- const [pivotAggregation, setPivotAggregation] = (0, react_1.useState)(undefined);
186
+ const [pivotPopUpTitle, setPivotPopUpTitle] = useState('Add Pivot');
187
+ const [createdPivots, setCreatedPivots] = useState(pivot ? [pivot] : dashboardItem?.pivot ? [dashboardItem.pivot] : cp);
188
+ const [recommendedPivots, setRecommendedPivots] = useState(rp);
189
+ const [pivotRowField, setPivotRowField] = useState(undefined);
190
+ const [pivotColumnField, setPivotColumnField] = useState(undefined);
191
+ const [pivotValueField, setPivotValueField] = useState(undefined);
192
+ const [pivotAggregation, setPivotAggregation] = useState(undefined);
199
193
  // initial state is the fields array passed in, but can eventually be changed to be the pivot fields
200
- const [fieldOptions, setFieldOptions] = (0, react_1.useState)(fields);
201
- const [dateFieldOptions, setDateFieldOptions] = (0, react_1.useState)([]);
202
- (0, react_1.useEffect)(() => {
194
+ const [fieldOptions, setFieldOptions] = useState(fields);
195
+ const [dateFieldOptions, setDateFieldOptions] = useState([]);
196
+ useEffect(() => {
203
197
  const fetchReferencedTables = async () => {
204
198
  if (!query) {
205
199
  return;
@@ -224,7 +218,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
224
218
  table: dateFieldOptions[0]?.name,
225
219
  field: dateFieldOptions[0]?.columns[0]?.name,
226
220
  };
227
- const firstNumberColumn = columns?.find((col) => exports.numberFormatOptions.includes(col.format));
221
+ const firstNumberColumn = columns?.find((col) => numberFormatOptions.includes(col.format));
228
222
  const formEmptyState = {
229
223
  name: '',
230
224
  dashboardName: dashboardOptions?.[0]?.label,
@@ -251,13 +245,13 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
251
245
  // date labels for pivots should be treated like strings since they are
252
246
  // formatted in generatePivotTable
253
247
  const yAxisIsDate = pivot.columnField
254
- ? (0, PivotModal_1.isDateField)(pivot.columnFieldType)
248
+ ? isDateField(pivot.columnFieldType)
255
249
  : false;
256
250
  return {
257
251
  pivot,
258
252
  chartType: 'column',
259
253
  xAxisField: pivot.rowField,
260
- xAxisFormat: (0, PivotModal_1.isDateField)(pivot.rowFieldType)
254
+ xAxisFormat: isDateField(pivot.rowFieldType)
261
255
  ? 'string'
262
256
  : columns.find((col) => col.field === pivot.rowField)?.format ||
263
257
  'whole_number',
@@ -274,12 +268,12 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
274
268
  ],
275
269
  };
276
270
  };
277
- const [formData, setFormData] = (0, react_1.useState)(pivot
271
+ const [formData, setFormData] = useState(pivot
278
272
  ? { ...formEmptyState, ...pivotFormData(pivot) }
279
273
  : dashboardItem || formEmptyState);
280
- const selectedPivotTable = (0, react_1.useMemo)(() => {
274
+ const selectedPivotTable = useMemo(() => {
281
275
  if (formData.pivot && rows) {
282
- return (0, PivotModal_1.generatePivotTable)(formData.pivot, rows, dateRange);
276
+ return generatePivotTable(formData.pivot, rows, dateRange);
283
277
  }
284
278
  else {
285
279
  return {};
@@ -412,7 +406,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
412
406
  customerId: customerId,
413
407
  }
414
408
  : { clientId: publicKey }).toString();
415
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `deletedash/${publicKey}/${customerId}/?${searchParams}`, cloudBody);
409
+ const resp = await getDataFromCloud(client, `deletedash/${publicKey}/${customerId}/?${searchParams}`, cloudBody);
416
410
  if (resp) {
417
411
  if (onDelete) {
418
412
  onDelete();
@@ -445,6 +439,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
445
439
  };
446
440
  if (cloudBody['rows']) {
447
441
  delete cloudBody['rows'];
442
+ delete cloudBody['compareRows'];
448
443
  }
449
444
  // add orgId: customerId if present for hostedBody
450
445
  // set defaultDateField if date field not present
@@ -462,8 +457,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
462
457
  customerId: customerId,
463
458
  }
464
459
  : { clientId: publicKey }).toString();
465
- const resp = await (0, dataFetcher_1.getData)(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
460
+ const resp = await getData(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
466
461
  if (resp) {
462
+ if (resp.compareRows) {
463
+ mergeComparisonRange(resp);
464
+ }
467
465
  dispatch({
468
466
  type: 'UPDATE_DASHBOARD_ITEM',
469
467
  id: resp._id,
@@ -471,6 +469,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
471
469
  ...resp,
472
470
  rows,
473
471
  fields,
472
+ filtersApplied: dashboardFilters
474
473
  },
475
474
  });
476
475
  }
@@ -483,7 +482,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
483
482
  if (!schema) {
484
483
  return;
485
484
  }
486
- 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: {
485
+ return (_jsxs("div", { id: "quill-chart-modal", style: { padding: modalPadding }, children: [isEditMode && (_jsxs(_Fragment, { children: [_jsx(Banner, { dashboardItemName: dashboardItem.name, dashboardName: dashboardItem.dashboardName, style: {
487
486
  position: 'fixed',
488
487
  top: 0,
489
488
  left: 0,
@@ -495,13 +494,13 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
495
494
  return;
496
495
  dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
497
496
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
498
- } }), (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: {
497
+ } }), _jsxs("style", { children: [" ", `#quill-modal-header { padding-top: 41px; }`, " "] })] })), _jsx("div", { children: _jsx(Chart, { config: { ...formData, rows }, colors: theme.chartColors, containerStyle: {
499
498
  width: formData.chartType === 'table' ? 640 : 'calc(100% - 24px)',
500
499
  height: 300,
501
- } }) }), (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) => ({
500
+ } }) }), _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, { value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name" })] }), showDashboardDropdown && !destinationDashboard && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Dashboard" }), _jsx(Select, { label: 'Dashboard', value: formData.dashboardName, onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
502
501
  label: elem.label,
503
502
  value: elem.label,
504
- })) })] })), (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'),
503
+ })) })] })), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Chart type" }), _jsx(Select, { label: 'Chart Type', value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
505
504
  // filter out metric for all pivots
506
505
  // filter out bar and pie for row and column pivot
507
506
  options: CHART_TYPES.filter((elem) => !firstNumberColumn
@@ -509,21 +508,21 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
509
508
  : !((formData.pivot && elem === 'metric') ||
510
509
  (formData.pivot &&
511
510
  formData.pivot.columnField &&
512
- (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })) })] })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
511
+ (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })) })] })] }), _jsx("br", {}), _jsxs("div", { style: {
513
512
  display: 'flex',
514
513
  flexDirection: 'column',
515
514
  gap: 12,
516
515
  marginTop: 6,
517
- }, 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: {
516
+ }, children: [_jsx(Header, { children: "Pivot" }), _jsxs("div", { style: { fontFamily: theme?.fontFamily }, children: [_jsx("div", { style: {
518
517
  maxWidth: 200,
519
518
  // marginTop: 6,
520
519
  display: 'flex',
521
520
  flexDirection: 'column',
522
- }, 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: {
521
+ }, 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: {
523
522
  // width: 592,
524
523
  paddingRight: deleteRef?.current ? 42 : 0,
525
524
  maxWidth: 750,
526
- }, children: (0, jsx_runtime_1.jsx)("div", { style: { width: divWidth }, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: {
525
+ }, children: _jsx("div", { style: { width: divWidth }, children: _jsx(PivotCard, { pivotTable: {
527
526
  pivot: formData.pivot,
528
527
  rows: selectedPivotTable?.rows,
529
528
  columns: selectedPivotTable?.columns,
@@ -535,23 +534,23 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
535
534
  setPivotValueField(formData.pivot?.valueField);
536
535
  setPivotAggregation(formData.pivot?.aggregationType);
537
536
  setPivotPopUpTitle('Edit Pivot');
538
- }, 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: {
537
+ }, 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: [_jsxs("div", { style: {
539
538
  display: 'flex',
540
539
  flexDirection: 'column',
541
540
  gap: 6,
542
541
  marginTop: 6,
543
- }, 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) => ({
542
+ }, children: [_jsx(Header, { children: "Chart" }), _jsx(Label, { children: "X-axis" })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { label: 'X-axis Field', value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), disabled: formData.pivot !== null, options: fieldOptions.map((elem) => ({
544
543
  label: formData.pivot
545
544
  ? `pivot row (${elem.field})`
546
545
  : elem.field,
547
546
  value: elem.field,
548
- })) }), (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: [
547
+ })) }), _jsx(TextInput, { value: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel') }), _jsx(Select, { label: 'X-axis Format', value: formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formatOptions })] }, 'xAxisField0'), _jsx("br", {}), _jsx(Label, { children: "Y-axis" }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.yAxisFields.map((yAxisField, index) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { label: 'Y-axis Field', value: yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), disabled: formData.pivot !== null, options: [
549
548
  { label: 'Select', value: '' },
550
549
  ...fieldOptions
551
550
  .filter((elem) => {
552
551
  return (formData.chartType === 'table' ||
553
552
  formData.pivot ||
554
- exports.numberFormatOptions.includes(columns.find((col) => col.field === elem.field)
553
+ numberFormatOptions.includes(columns.find((col) => col.field === elem.field)
555
554
  ?.format));
556
555
  })
557
556
  .map((elem) => ({
@@ -560,28 +559,28 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
560
559
  : elem.field,
561
560
  value: elem.field,
562
561
  })),
563
- ] }), (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: {
562
+ ] }), _jsx(TextInput, { value: yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'yAxisFields.label', index) }), _jsx(Select, { label: 'Y-axis Format', value: yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: [{ label: 'Select', value: '' }, ...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", {}), _jsx("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && (_jsxs("div", { children: [_jsxs("div", { style: {
564
563
  display: 'flex',
565
564
  flexDirection: 'column',
566
565
  gap: 6,
567
566
  marginTop: 6,
568
- }, 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: [
567
+ }, children: [_jsx(Header, { children: "Table" }), _jsx(Label, { children: "Columns" })] }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.columns.map((column, index) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { label: 'Column Field', value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: [
569
568
  { label: 'Select', value: '' },
570
569
  ...fields.map((elem) => ({
571
570
  label: elem.field,
572
571
  value: elem.field,
573
572
  })),
574
- ] }), (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: {
573
+ ] }), _jsx(TextInput, { name: "label", value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index) }), _jsx(Select, { label: 'Column Format', value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: [{ label: 'Select', value: '' }, ...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: {
575
574
  display: 'flex',
576
575
  flexDirection: 'column',
577
576
  gap: 6,
578
577
  marginTop: 6,
579
- }, children: [(0, jsx_runtime_1.jsx)(Header, { children: "Date field" }), (0, jsx_runtime_1.jsxs)("div", { style: {
578
+ }, children: [_jsx(Header, { children: "Date field" }), _jsxs("div", { style: {
580
579
  display: 'flex',
581
580
  flexDirection: 'row',
582
581
  gap: 12,
583
582
  // lmao part 2
584
- }, 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: [
583
+ }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Table" }), _jsx(Select, { label: 'Date Table', value: formData.dateField.table, onChange: (e) => handleChange(e, 'dateField.table'), options: [
585
584
  {
586
585
  label: 'Select',
587
586
  value: '',
@@ -590,29 +589,29 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
590
589
  label: elem.name,
591
590
  value: elem.name,
592
591
  })),
593
- ] })] }), (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
592
+ ] })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Field" }), _jsx(Select, { label: 'Date Field', value: formData.dateField.field, onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
594
593
  ?.find((elem) => elem.name === formData.dateField.table)
595
594
  ?.columns?.map((elem) => ({
596
595
  label: elem.name,
597
596
  value: elem.name,
598
- })) || [] })] })] }), (0, jsx_runtime_1.jsx)("br", {})] })), showAccessControlOptions && ((0, jsx_runtime_1.jsxs)("div", { style: {
597
+ })) || [] })] })] }), _jsx("br", {})] })), showAccessControlOptions && (_jsxs("div", { style: {
599
598
  display: 'flex',
600
599
  flexDirection: 'column',
601
600
  gap: 12,
602
601
  marginTop: 6,
603
- }, 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 }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {})] })), (0, jsx_runtime_1.jsxs)("div", { style: {
602
+ }, children: [_jsx(Header, { children: "Organization access" }), _jsx(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme }), _jsx("br", {}), _jsx("br", {})] })), _jsxs("div", { style: {
604
603
  display: 'flex',
605
604
  flexDirection: 'row',
606
605
  justifyContent: 'flex-end',
607
606
  gap: 10,
608
- }, children: [dashboardItem && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), (0, jsx_runtime_1.jsx)(Button, { onClick: editChart, label: buttonLabel
607
+ }, children: [dashboardItem && (_jsx(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), _jsx(Button, { onClick: editChart, label: buttonLabel
609
608
  ? buttonLabel
610
609
  : dashboardItem
611
610
  ? 'Save changes'
612
611
  : 'Add to dashboard' })] })] })] }));
613
612
  }
614
613
  function SegmentedControl({ onChange, value, theme }) {
615
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
614
+ return (_jsxs("div", { style: {
616
615
  display: 'flex',
617
616
  flexDirection: 'row',
618
617
  alignItems: 'center',
@@ -620,7 +619,7 @@ function SegmentedControl({ onChange, value, theme }) {
620
619
  maxWidth: 418,
621
620
  padding: 4,
622
621
  borderRadius: 6,
623
- }, children: [(0, jsx_runtime_1.jsxs)("button", { className: "quill-tab", onClick: () => onChange(true), style: {
622
+ }, children: [_jsxs("button", { className: "quill-tab", onClick: () => onChange(true), style: {
624
623
  border: value === true ? '1px solid #E7E7E7' : '1px solid transparent',
625
624
  outline: 'none',
626
625
  width: '100%',
@@ -633,7 +632,7 @@ function SegmentedControl({ onChange, value, theme }) {
633
632
  fontWeight: value === true ? 600 : 500,
634
633
  fontSize: 14,
635
634
  fontFamily: theme?.fontFamily,
636
- }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
635
+ }, children: [_jsx("style", { children: `
637
636
  .quill-tab {
638
637
  background-color: ${value === true ? 'white' : 'transparent'};
639
638
  }
@@ -643,7 +642,7 @@ function SegmentedControl({ onChange, value, theme }) {
643
642
  .quill-tab:active {
644
643
  background-color: "rgba(56, 65, 81, 0.15)";
645
644
  }
646
- ` }), 'All Organizations'] }), (0, jsx_runtime_1.jsxs)("button", { className: "quill-tab2", onClick: () => onChange(false), style: {
645
+ ` }), 'All Organizations'] }), _jsxs("button", { className: "quill-tab2", onClick: () => onChange(false), style: {
647
646
  border: value === false ? '1px solid #E7E7E7' : '1px solid transparent',
648
647
  boxShadow: value === false
649
648
  ? '0px 1px 4px 0px rgba(56, 65, 81, 0.08)'
@@ -656,7 +655,7 @@ function SegmentedControl({ onChange, value, theme }) {
656
655
  fontWeight: value === false ? 600 : 500,
657
656
  fontSize: 14,
658
657
  fontFamily: theme?.fontFamily,
659
- }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
658
+ }, children: [_jsx("style", { children: `
660
659
  .quill-tab2 {
661
660
  background-color: ${value === false ? 'white' : 'transparent'};
662
661
  }
@@ -671,4 +670,3 @@ function SegmentedControl({ onChange, value, theme }) {
671
670
  }
672
671
  ` }), 'This Organization'] })] }));
673
672
  }
674
- //# sourceMappingURL=ChartBuilder.js.map