@quillsql/react 2.11.9 → 2.11.13

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 (167) hide show
  1. package/dist/cjs/BarList.d.ts +2 -1
  2. package/dist/cjs/BarList.d.ts.map +1 -1
  3. package/dist/cjs/BarList.js +9 -3
  4. package/dist/cjs/Chart.d.ts +11 -5
  5. package/dist/cjs/Chart.d.ts.map +1 -1
  6. package/dist/cjs/Chart.js +57 -20
  7. package/dist/cjs/ChartBuilder.d.ts +16 -1
  8. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  9. package/dist/cjs/ChartBuilder.js +423 -281
  10. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  11. package/dist/cjs/ChartEditor.js +1 -0
  12. package/dist/cjs/Dashboard.d.ts +2 -1
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +6 -20
  15. package/dist/cjs/PieChart.d.ts.map +1 -1
  16. package/dist/cjs/PieChart.js +2 -1
  17. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  18. package/dist/cjs/QuillProvider.js +15 -1
  19. package/dist/cjs/ReportBuilder.d.ts +4 -3
  20. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  21. package/dist/cjs/ReportBuilder.js +238 -108
  22. package/dist/cjs/SQLEditor.d.ts +2 -1
  23. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  24. package/dist/cjs/SQLEditor.js +61 -90
  25. package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
  26. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/BarChart.js +10 -3
  28. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts.map +1 -1
  29. package/dist/cjs/components/Chart/ChartTooltipFrame.js +1 -0
  30. package/dist/cjs/components/Chart/LineChart.d.ts +3 -4
  31. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  32. package/dist/cjs/components/Chart/LineChart.js +35 -15
  33. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  34. package/dist/cjs/components/Dashboard/ChartComponent.js +0 -3
  35. package/dist/cjs/components/Dashboard/DashboardSection.js +4 -4
  36. package/dist/cjs/components/Dashboard/DashboardSectionContainer.js +1 -1
  37. package/dist/cjs/components/Dashboard/DataLoader.d.ts +8 -1
  38. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  39. package/dist/cjs/components/Dashboard/DataLoader.js +12 -3
  40. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +12 -1
  41. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  42. package/dist/cjs/components/Dashboard/MetricComponent.js +105 -9
  43. package/dist/cjs/components/Dashboard/TableComponent.d.ts +1 -1
  44. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  45. package/dist/cjs/components/Dashboard/TableComponent.js +78 -3
  46. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  47. package/dist/cjs/components/QuillSelect.js +7 -1
  48. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  49. package/dist/cjs/components/QuillTable.js +3 -1
  50. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +3 -3
  51. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +3 -0
  52. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -0
  53. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +43 -0
  54. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  55. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +14 -7
  56. package/dist/cjs/components/ReportBuilder/ast.d.ts +4 -0
  57. package/dist/cjs/components/ReportBuilder/ast.d.ts.map +1 -1
  58. package/dist/cjs/components/ReportBuilder/ast.js +10 -1
  59. package/dist/cjs/components/ReportBuilder/bigDateMap.d.ts.map +1 -1
  60. package/dist/cjs/components/ReportBuilder/bigDateMap.js +2 -1
  61. package/dist/cjs/components/ReportBuilder/convert.d.ts +4 -1
  62. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  63. package/dist/cjs/components/ReportBuilder/convert.js +45 -13
  64. package/dist/cjs/components/ReportBuilder/pivot.d.ts +3 -0
  65. package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
  66. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  67. package/dist/cjs/components/ReportBuilder/ui.js +7 -5
  68. package/dist/cjs/components/ReportBuilder/util.d.ts +1 -0
  69. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  70. package/dist/cjs/components/ReportBuilder/util.js +55 -6
  71. package/dist/cjs/components/UiComponents.d.ts +3 -1
  72. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  73. package/dist/cjs/components/UiComponents.js +4 -4
  74. package/dist/cjs/hooks/useQuill.js +1 -1
  75. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  76. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  77. package/dist/cjs/internals/ReportBuilder/PivotModal.js +91 -91
  78. package/dist/cjs/utils/axisFormatter.js +74 -30
  79. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  80. package/dist/cjs/utils/dataFetcher.js +10 -0
  81. package/dist/cjs/utils/getDomain.js +25 -4
  82. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  83. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  84. package/dist/esm/BarList.d.ts +2 -1
  85. package/dist/esm/BarList.d.ts.map +1 -1
  86. package/dist/esm/BarList.js +9 -3
  87. package/dist/esm/Chart.d.ts +11 -5
  88. package/dist/esm/Chart.d.ts.map +1 -1
  89. package/dist/esm/Chart.js +57 -20
  90. package/dist/esm/ChartBuilder.d.ts +16 -1
  91. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  92. package/dist/esm/ChartBuilder.js +421 -280
  93. package/dist/esm/ChartEditor.d.ts.map +1 -1
  94. package/dist/esm/ChartEditor.js +1 -0
  95. package/dist/esm/Dashboard.d.ts +2 -1
  96. package/dist/esm/Dashboard.d.ts.map +1 -1
  97. package/dist/esm/Dashboard.js +6 -20
  98. package/dist/esm/PieChart.d.ts.map +1 -1
  99. package/dist/esm/PieChart.js +2 -1
  100. package/dist/esm/QuillProvider.d.ts.map +1 -1
  101. package/dist/esm/QuillProvider.js +16 -2
  102. package/dist/esm/ReportBuilder.d.ts +4 -3
  103. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  104. package/dist/esm/ReportBuilder.js +242 -112
  105. package/dist/esm/SQLEditor.d.ts +2 -1
  106. package/dist/esm/SQLEditor.d.ts.map +1 -1
  107. package/dist/esm/SQLEditor.js +62 -91
  108. package/dist/esm/components/Chart/BarChart.d.ts +2 -1
  109. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  110. package/dist/esm/components/Chart/BarChart.js +10 -3
  111. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts.map +1 -1
  112. package/dist/esm/components/Chart/ChartTooltipFrame.js +1 -0
  113. package/dist/esm/components/Chart/LineChart.d.ts +3 -4
  114. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  115. package/dist/esm/components/Chart/LineChart.js +35 -15
  116. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  117. package/dist/esm/components/Dashboard/ChartComponent.js +0 -3
  118. package/dist/esm/components/Dashboard/DashboardSection.js +4 -4
  119. package/dist/esm/components/Dashboard/DashboardSectionContainer.js +1 -1
  120. package/dist/esm/components/Dashboard/DataLoader.d.ts +8 -1
  121. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  122. package/dist/esm/components/Dashboard/DataLoader.js +13 -4
  123. package/dist/esm/components/Dashboard/MetricComponent.d.ts +12 -1
  124. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  125. package/dist/esm/components/Dashboard/MetricComponent.js +101 -8
  126. package/dist/esm/components/Dashboard/TableComponent.d.ts +1 -1
  127. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  128. package/dist/esm/components/Dashboard/TableComponent.js +74 -2
  129. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  130. package/dist/esm/components/QuillSelect.js +7 -1
  131. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  132. package/dist/esm/components/QuillTable.js +3 -1
  133. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +3 -3
  134. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +3 -0
  135. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -0
  136. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +38 -0
  137. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  138. package/dist/esm/components/ReportBuilder/AddSortPopover.js +15 -8
  139. package/dist/esm/components/ReportBuilder/ast.d.ts +4 -0
  140. package/dist/esm/components/ReportBuilder/ast.d.ts.map +1 -1
  141. package/dist/esm/components/ReportBuilder/ast.js +8 -0
  142. package/dist/esm/components/ReportBuilder/bigDateMap.d.ts.map +1 -1
  143. package/dist/esm/components/ReportBuilder/bigDateMap.js +2 -1
  144. package/dist/esm/components/ReportBuilder/convert.d.ts +4 -1
  145. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  146. package/dist/esm/components/ReportBuilder/convert.js +45 -13
  147. package/dist/esm/components/ReportBuilder/pivot.d.ts +3 -0
  148. package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
  149. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  150. package/dist/esm/components/ReportBuilder/ui.js +7 -5
  151. package/dist/esm/components/ReportBuilder/util.d.ts +1 -0
  152. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  153. package/dist/esm/components/ReportBuilder/util.js +53 -5
  154. package/dist/esm/components/UiComponents.d.ts +3 -1
  155. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  156. package/dist/esm/components/UiComponents.js +4 -4
  157. package/dist/esm/hooks/useQuill.js +1 -1
  158. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  159. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  160. package/dist/esm/internals/ReportBuilder/PivotModal.js +91 -91
  161. package/dist/esm/utils/axisFormatter.js +74 -30
  162. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  163. package/dist/esm/utils/dataFetcher.js +10 -0
  164. package/dist/esm/utils/getDomain.js +25 -4
  165. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  166. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  167. package/package.json +2 -2
@@ -45,12 +45,13 @@ interface TextInputComponentProps {
45
45
  placeholder?: string;
46
46
  }
47
47
  export default function QueryEditor({ containerStyle, ButtonComponent, SecondaryButtonComponent, TextInputComponent, TableComponent, newQueryEnabled, LoadingComponent, ModalComponent, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isEditMode, chartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel, dashboardItem, organizationName, chartBuilderHorizontalView, }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
48
- export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, }: {
48
+ export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
49
49
  schema: any;
50
50
  theme: any;
51
51
  loading: any;
52
52
  LoadingComponent: any;
53
53
  width: any;
54
+ onClick?: (() => void) | undefined;
54
55
  }) => import("react/jsx-runtime").JSX.Element;
55
56
  export {};
56
57
  //# sourceMappingURL=SQLEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,qBAAqB,CAAC,MAAM,KAAA;;;;;EAwE3C;AA2BD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC9D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAQD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkFD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAoC,EACpC,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAA2B,EAC3B,eAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAkB,EAClB,mBAA2B,EAC3B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,EACzB,gBAA4B,EAC5B,0BAAkC,GACnC,EAAE,cAAc,2CA2VhB;AA8LD,eAAO,MAAM,mBAAmB;;;;;;6CAqG/B,CAAC"}
1
+ {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAMN,MAAM,OAAO,CAAC;AAQf,OAAO,EAGL,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAInC,wBAAgB,qBAAqB,CAAC,MAAM,KAAA;;;;;EAwE3C;AA2BD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC9D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAQD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAuCD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAoC,EACpC,eAAgC,EAChC,wBAAkD,EAClD,kBAAmC,EACnC,cAA2B,EAC3B,eAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAkB,EAClB,mBAA2B,EAC3B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,EACzB,gBAA4B,EAC5B,0BAAkC,GACnC,EAAE,cAAc,2CA+WhB;AA6JD,eAAO,MAAM,mBAAmB;;;;;;;6CAuG/B,CAAC"}
@@ -14,6 +14,8 @@ const Context_1 = require("./Context");
14
14
  const QuillTable_1 = __importDefault(require("./components/QuillTable"));
15
15
  const dataFetcher_1 = require("./utils/dataFetcher");
16
16
  const ChartBuilder_1 = require("./ChartBuilder");
17
+ const UiComponents_1 = require("./components/UiComponents");
18
+ const ui_1 = require("./components/ReportBuilder/ui");
17
19
  function convertPostgresColumn(column) {
18
20
  let format;
19
21
  let fieldType;
@@ -129,29 +131,8 @@ const QuillButton = ({ onClick, label, theme, secondary, }) => ((0, jsx_runtime_
129
131
  fontFamily: theme?.fontFamily,
130
132
  height: 38,
131
133
  }, onClick: onClick, children: label }));
132
- const QuillTextInput = ({ onChange, value, id, placeholder, theme, style = {}, }) => {
133
- return ((0, jsx_runtime_1.jsx)("input", { style: {
134
- display: 'flex',
135
- flexDirection: 'row',
136
- alignItems: 'center',
137
- paddingLeft: '12px',
138
- paddingRight: '12px',
139
- fontWeight: 'medium',
140
- height: 38,
141
- boxShadow: 'rgba(0, 0, 0, 0.1) 0px 1px 5px 0px',
142
- width: '445px',
143
- backgroundColor: theme?.backgroundColor || 'white',
144
- color: theme?.primaryTextColor,
145
- borderWidth: '1px',
146
- borderColor: theme?.borderColor || '#E7E7E7',
147
- borderStyle: 'solid',
148
- borderRadius: '6px',
149
- ...style
150
- }, id: id, onChange: onChange, value: value, placeholder: placeholder }));
151
- };
152
- function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, SecondaryButtonComponent, TextInputComponent, TableComponent = QuillTable_1.default, newQueryEnabled = false, LoadingComponent, ModalComponent, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isEditMode = false, chartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', dashboardItem = undefined, organizationName = undefined, chartBuilderHorizontalView = false, }) {
134
+ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, TextInputComponent = ui_1.QuillTextInput, TableComponent = QuillTable_1.default, newQueryEnabled = false, LoadingComponent, ModalComponent, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isEditMode = false, chartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', dashboardItem = undefined, organizationName = undefined, chartBuilderHorizontalView = false, }) {
153
135
  const [sqlPrompt, setSqlPrompt] = (0, react_1.useState)('');
154
- const [isOpen, setIsOpen] = (0, react_1.useState)(false);
155
136
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
156
137
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
157
138
  const [query, setQuery] = (0, react_1.useState)(defaultQuery);
@@ -179,6 +160,7 @@ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, Se
179
160
  clientId: publicKey,
180
161
  publicKey: publicKey,
181
162
  task: 'schema',
163
+ removeCustomerField: true,
182
164
  },
183
165
  }),
184
166
  });
@@ -243,15 +225,6 @@ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, Se
243
225
  if (resp.rows.length === 0) {
244
226
  setErrorMessage('No data found');
245
227
  }
246
- // stringify all rows that are either jsonb or json
247
- resp.rows = resp.rows.map((row) => {
248
- for (const key in row) {
249
- if (typeof row[key] === 'object') {
250
- row[key] = JSON.stringify(row[key]);
251
- }
252
- }
253
- return row;
254
- });
255
228
  setRows(resp.rows && resp.rows.length ? resp.rows : []);
256
229
  if (onChangeData) {
257
230
  onChangeData(resp.rows && resp.rows.length ? resp.rows : []);
@@ -270,13 +243,39 @@ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, Se
270
243
  return;
271
244
  }
272
245
  };
273
- /* all your useState and useContext calls and your useEffect hooks */
246
+ const handleFixWithAI = async () => {
247
+ try {
248
+ setDisplayTable(false);
249
+ setSqlResponseLoading(true);
250
+ const resp = await (0, dataFetcher_1.getDataFromCloud)(client, 'plsfix', {
251
+ initialQuestion: sqlPrompt,
252
+ brokenQuery: query,
253
+ errorMessage: errorMessage,
254
+ });
255
+ setErrorMessage('');
256
+ setQuery(resp.message);
257
+ setSqlResponseLoading(false);
258
+ }
259
+ catch (e) {
260
+ setErrorMessage('Failed to fix query');
261
+ setSqlResponseLoading(false);
262
+ console.log('ERROR: ', e);
263
+ }
264
+ };
265
+ const handleClickSchemaItem = async (event) => {
266
+ const name = event.target.textContent;
267
+ if (query.length > 0) {
268
+ await navigator.clipboard.writeText(name);
269
+ }
270
+ else {
271
+ setQuery(`SELECT * FROM ${name};`);
272
+ }
273
+ };
274
274
  (0, react_1.useEffect)(() => {
275
275
  if (onChangeQuery) {
276
276
  onChangeQuery(query);
277
277
  }
278
278
  }, [query]);
279
- /* rest of your methods */
280
279
  return ((0, jsx_runtime_1.jsxs)("div", { style: containerStyle, children: [(!chartBuilderHorizontalView ||
281
280
  (chartBuilderHorizontalView && !isChartBuilderOpen)) && ((0, jsx_runtime_1.jsx)("div", { style: {
282
281
  height: '100%',
@@ -289,22 +288,23 @@ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, Se
289
288
  height: '100%',
290
289
  flexDirection: 'row',
291
290
  gap: 20,
292
- }, children: [(0, jsx_runtime_1.jsx)(exports.SchemaListComponent, { schema: schema, theme: theme, LoadingComponent: LoadingComponent, loading: schemaLoading }), (0, jsx_runtime_1.jsxs)("div", { style: {
291
+ }, children: [(0, jsx_runtime_1.jsx)(exports.SchemaListComponent, { schema: schema, theme: theme, LoadingComponent: LoadingComponent, loading: schemaLoading, onClick: handleClickSchemaItem }), (0, jsx_runtime_1.jsxs)("div", { style: {
293
292
  display: 'flex',
294
293
  // gap: 12,
295
294
  flexDirection: 'column',
296
295
  width: 'calc(100% - 290px)',
297
296
  height: '100%',
298
297
  overflowX: 'hidden',
299
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
300
- // TODO: change color
301
- background: 'white',
298
+ }, children: [(0, jsx_runtime_1.jsxs)("form", { onSubmit: (e) => {
299
+ e.preventDefault();
300
+ handleRunSqlPrompt();
301
+ }, style: {
302
302
  display: 'flex',
303
303
  flexDirection: 'row',
304
- alignItems: 'center',
305
- gap: '10px',
306
- height: 80,
307
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: { minWidth: 440, flexGrow: 1 }, children: (TextInputComponent && ((0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, style: { width: '100%' }, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }))) || ((0, jsx_runtime_1.jsx)(QuillTextInput, { id: "ai-search", value: sqlPrompt, style: { width: '100%' }, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question...", theme: theme })) }), (ButtonComponent && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { theme: theme, onClick: handleRunSqlPrompt, label: "Ask AI" }))] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query, setQuery: setQuery, handleRunQuery: handleRunQuery, newQueryEnabled: newQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
304
+ gap: 12,
305
+ paddingTop: 16,
306
+ paddingBottom: 16,
307
+ }, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, style: { width: '100%', fontSize: 14 }, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (ButtonComponent && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { theme: theme, onClick: handleRunSqlPrompt, label: "Ask AI" }))] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query, setQuery: setQuery, handleRunQuery: handleRunQuery, handleFixWithAI: handleFixWithAI, newQueryEnabled: newQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
308
308
  display: 'flex',
309
309
  flexDirection: 'column',
310
310
  height: 'calc(50% - 108px)',
@@ -317,16 +317,19 @@ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, Se
317
317
  color: theme?.primaryTextColor,
318
318
  fontSize: 15,
319
319
  fontWeight: '400',
320
- }, children: (0, jsx_runtime_1.jsx)("div", { style: {
321
- padding: 30,
322
- // TODO: change color
323
- background: 'rgba(0,0,0,0.02)',
324
- display: 'inline-block',
325
- flex: 0,
326
- borderRadius: 6,
320
+ width: '100%',
321
+ }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
322
+ display: 'flex',
323
+ flexDirection: 'row',
324
+ justifyContent: 'space-between',
325
+ gap: 12,
326
+ background: 'rgba(0,0,0,0.02)', // TODO: change color
327
327
  color: theme?.primaryTextColor,
328
328
  fontFamily: theme?.fontFamily,
329
- }, children: errorMessage }) })), errorMessage || !displayTable ? null : ((0, jsx_runtime_1.jsx)(TableComponent, { rows: rows, columns: columns, containerStyle: { height: 'calc(100%)' }, LoadingComponent: LoadingComponent, loading: sqlQueryLoading }))] }), chartBuilderEnabled && rows.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: {
329
+ borderRadius: 6,
330
+ padding: 20,
331
+ width: '100%',
332
+ }, children: [errorMessage, (SecondaryButtonComponent && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { secondary: true, onClick: handleFixWithAI, label: "Fix with AI", theme: theme }))] }) })), errorMessage || !displayTable ? null : ((0, jsx_runtime_1.jsx)(TableComponent, { rows: rows, columns: columns, containerStyle: { height: 'calc(100%)' }, LoadingComponent: LoadingComponent, loading: sqlQueryLoading }))] }), chartBuilderEnabled && rows.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: {
330
333
  display: 'flex',
331
334
  flexDirection: 'row',
332
335
  alignItems: 'center',
@@ -336,7 +339,7 @@ function QueryEditor({ containerStyle = { height: '100vh' }, ButtonComponent, Se
336
339
  }, children: (ButtonComponent && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel, theme: theme })) }))] })] }) }) })), (0, jsx_runtime_1.jsx)(ChartBuilder_1.ChartBuilderWithModal, { rows: rows, columns: columns, fields: fields, query: query, horizontalView: chartBuilderHorizontalView, isEditMode: isEditMode, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, destinationDashboard: destinationDashboard, title: chartBuilderTitle, button: chartBuilderButtonLabel, buttonLabel: addToDashboardButtonLabel, dashboardItem: dashboardItem, organizationName: organizationName, Modal: ModalComponent, Button: ButtonComponent })] }));
337
340
  }
338
341
  exports.default = QueryEditor;
339
- const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, newQueryEnabled, theme, loading, LoadingComponent, }) => {
342
+ const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, newQueryEnabled, theme, loading, LoadingComponent, }) => {
340
343
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
341
344
  background: theme.backgroundColor,
342
345
  // maxHeight: 700,
@@ -371,41 +374,9 @@ const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleClearQuery,
371
374
  flexDirection: 'row',
372
375
  alignItems: 'center',
373
376
  height: 70,
374
- }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex' }, children: [(ButtonComponent && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunQuery, label: "Run query" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { onClick: handleRunQuery, label: "Run query", theme: theme })), newQueryEnabled && ((0, jsx_runtime_1.jsx)("div", { children: (SecondaryButtonComponent && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { secondary: true, onClick: handleClearQuery, label: "Clear query", theme: theme })) }))] }) })] }));
377
+ }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: 12 }, children: [(ButtonComponent && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunQuery, label: "Run query" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { onClick: handleRunQuery, label: "Run query", theme: theme })), newQueryEnabled && ((0, jsx_runtime_1.jsx)("div", { children: (SecondaryButtonComponent && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" }))) || ((0, jsx_runtime_1.jsx)(QuillButton, { secondary: true, onClick: handleClearQuery, label: "Clear query", theme: theme })) }))] }) })] }));
375
378
  };
376
- const styles = {
377
- columnHeader: {
378
- boxSizing: 'border-box',
379
- flex: '150 0 auto',
380
- minWidth: '50px',
381
- width: '150px',
382
- position: 'relative',
383
- cursor: 'pointer',
384
- background: 'rgb(249, 250, 251)',
385
- borderRight: '1px solid rgb(229, 231, 235)',
386
- whiteSpace: 'nowrap',
387
- display: 'flex',
388
- alignItems: 'center',
389
- overflowX: 'visible',
390
- margin: '0px',
391
- textOverflow: 'ellipsis',
392
- minHeight: '36px',
393
- // 2.25rem * 16px = 36px
394
- },
395
- columnHeaderLabel: {
396
- fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"',
397
- WebkitTapHighlightColor: 'transparent',
398
- color: 'rgb(55, 65, 81)',
399
- textDecoration: 'none',
400
- fontWeight: 500,
401
- fontSize: '14px', // 0.875rem * 16px = 14px
402
- lineHeight: '20px', // 1.25rem * 16px = 20px
403
- textOverflow: 'ellipsis',
404
- whiteSpace: 'nowrap',
405
- overflow: 'hidden',
406
- },
407
- };
408
- const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, }) => {
379
+ const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick = () => { }, }) => {
409
380
  if (loading) {
410
381
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
411
382
  background: theme.backgroundColor,
@@ -433,10 +404,10 @@ const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width,
433
404
  // maxHeight: "100%",
434
405
  paddingLeft: 20,
435
406
  paddingRight: 30,
436
- }, children: schema.map((elem, index) => ((0, jsx_runtime_1.jsx)(SchemaItem, { elem: elem, theme: theme, index: index }, elem.displayName + index))) }));
407
+ }, children: schema.map((elem, index) => ((0, jsx_runtime_1.jsx)(SchemaItem, { elem: elem, theme: theme, index: index, onClick: onClick }, elem.displayName + index))) }));
437
408
  };
438
409
  exports.SchemaListComponent = SchemaListComponent;
439
- function SchemaItem({ elem, theme, index }) {
410
+ function SchemaItem({ elem, theme, index, onClick }) {
440
411
  const [isOpen, setIsOpen] = (0, react_1.useState)(index === 0);
441
412
  const schemaContainerStyle = {
442
413
  display: 'flex',
@@ -454,12 +425,11 @@ function SchemaItem({ elem, theme, index }) {
454
425
  alignItems: 'center',
455
426
  width: '100%',
456
427
  justifyContent: 'space-between',
457
- cursor: 'pointer',
458
428
  };
459
429
  const schemaRowHoverStyle = {
460
430
  background: theme.selectUnderlayColor,
461
431
  };
462
- return ((0, jsx_runtime_1.jsxs)("div", { style: schemaContainerStyle, children: [(0, jsx_runtime_1.jsxs)("div", { style: { ...schemaRowStyle, ...(isOpen && schemaRowHoverStyle) }, onClick: () => setIsOpen(!isOpen), children: [(0, jsx_runtime_1.jsx)("p", { style: {
432
+ return ((0, jsx_runtime_1.jsxs)("div", { style: schemaContainerStyle, children: [(0, jsx_runtime_1.jsxs)("div", { style: { ...schemaRowStyle, ...(isOpen && schemaRowHoverStyle) }, children: [(0, jsx_runtime_1.jsx)("p", { style: {
463
433
  marginLeft: theme.padding,
464
434
  fontSize: 13,
465
435
  color: '#384151',
@@ -469,9 +439,10 @@ function SchemaItem({ elem, theme, index }) {
469
439
  margin: 0,
470
440
  textOverflow: 'ellipsis',
471
441
  overflow: 'hidden',
442
+ cursor: 'pointer',
472
443
  userSelect: 'none',
473
444
  fontFamily: theme?.fontFamily,
474
- }, title: elem.displayName, children: elem.displayName }), (0, jsx_runtime_1.jsx)("div", { style: {
445
+ }, title: elem.displayName, onClick: onClick, children: elem.displayName }), (0, jsx_runtime_1.jsx)("div", { style: {
475
446
  display: 'flex',
476
447
  alignItems: 'center',
477
448
  justifyContent: 'center',
@@ -481,7 +452,7 @@ function SchemaItem({ elem, theme, index }) {
481
452
  paddingLeft: 0,
482
453
  cursor: 'pointer',
483
454
  userSelect: 'none',
484
- }, children: isOpen ? ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M12.53 16.28a.75.75 0 01-1.06 0l-7.5-7.5a.75.75 0 011.06-1.06L12 14.69l6.97-6.97a.75.75 0 111.06 1.06l-7.5 7.5z", clipRule: "evenodd" }) })) : ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M16.28 11.47a.75.75 0 010 1.06l-7.5 7.5a.75.75 0 01-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 011.06-1.06l7.5 7.5z", clipRule: "evenodd" }) })) })] }), isOpen ? ((0, jsx_runtime_1.jsx)("div", { style: {
455
+ }, onClick: () => setIsOpen(!isOpen), children: isOpen ? ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M12.53 16.28a.75.75 0 01-1.06 0l-7.5-7.5a.75.75 0 011.06-1.06L12 14.69l6.97-6.97a.75.75 0 111.06 1.06l-7.5 7.5z", clipRule: "evenodd" }) })) : ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M16.28 11.47a.75.75 0 010 1.06l-7.5 7.5a.75.75 0 01-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 011.06-1.06l7.5 7.5z", clipRule: "evenodd" }) })) })] }), isOpen ? ((0, jsx_runtime_1.jsx)("div", { style: {
485
456
  paddingBottom: theme.padding,
486
457
  display: 'flex',
487
458
  flexDirection: 'column',
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
+ import { type ColorMapType } from '../../Chart';
2
3
  export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, }: {
3
4
  colors?: string[];
4
- colorMap?: any;
5
+ colorMap?: ColorMapType;
5
6
  yAxisFields: any[];
6
7
  data: any[];
7
8
  containerStyle?: React.CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAiBA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,GAC1B,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,2CAwKA"}
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,GAC1B,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,2CAgLA"}
@@ -28,6 +28,13 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisFi
28
28
  });
29
29
  setFormattedData(curData);
30
30
  }, [data]);
31
+ const getCustomColor = (field) => {
32
+ const key = field.startsWith('comparison_') ? 'comparison' : 'primary';
33
+ field = field.replace('comparison_', '');
34
+ if (colorMap && colorMap[field])
35
+ return colorMap[field][key];
36
+ return undefined;
37
+ };
31
38
  if (!data || data.length === 0) {
32
39
  return ((0, jsx_runtime_1.jsx)("div", { style: {
33
40
  display: 'flex',
@@ -44,12 +51,12 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisFi
44
51
  return ((0, jsx_runtime_1.jsx)("div", { style: {
45
52
  boxSizing: 'content-box',
46
53
  ...containerStyle,
47
- }, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data: formattedData, layout: 'horizontal', children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal: true, vertical: false, stroke: "#e5e7eb" })), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { width: 44, hide: hideYAxis, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, style: {
54
+ }, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data: formattedData, layout: 'horizontal', children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal: true, vertical: false, stroke: "#e5e7eb" })), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { width: 44, hide: hideYAxis, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
48
55
  fontSize: '12px',
49
56
  fontFamily: theme.chartLabelFontFamily,
50
57
  }, tickFormatter: (tick) => (0, axisFormatter_1.axisFormatter)({
51
58
  value: tick,
52
- field: yAxisFields[0].field || 'what',
59
+ field: yAxisFields[0]?.field,
53
60
  fields: yAxisFields,
54
61
  }) }), (0, jsx_runtime_1.jsx)(recharts_1.XAxis, { hide: hideXAxis, dataKey: xAxisField, tick: { transform: 'translate(0, 6)' }, style: {
55
62
  fontSize: '12px',
@@ -78,7 +85,7 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisFi
78
85
  }, position: { y: 0 } }), yAxisFields.map((elem) => {
79
86
  return ((0, jsx_runtime_1.jsx)(recharts_1.Bar, { name: elem.label, dataKey: elem.field, stackId: isStacked &&
80
87
  (elem.field?.replace('comparison_', '') ??
81
- 'unknown'), type: "linear", fill: (colorMap && colorMap[elem.field]) ??
88
+ 'unknown'), type: "linear", fill: getCustomColor(elem.field) ??
82
89
  (0, color_1.selectColor)(elem, colors, yAxisFields.findIndex((field) => field.field === elem.field?.replace('comparison_', ''))), isAnimationActive: isAnimationActive }, elem.field));
83
90
  })] }) }) }));
84
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChartTooltipFrame.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltipFrame.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;CACZ,2CAkBA"}
1
+ {"version":3,"file":"ChartTooltipFrame.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltipFrame.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;CACZ,2CAmBA"}
@@ -10,6 +10,7 @@ function ChartTooltipFrame({ children, theme, }) {
10
10
  background: theme?.backgroundColor || '#ffffff',
11
11
  borderRadius: '6px',
12
12
  zIndex: 40,
13
+ display: 'block',
13
14
  boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
14
15
  }, children: children }));
15
16
  }
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
- export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, dashedComparison, customPrimaryColor, customComparisonColor, singlePointStyle, }: {
2
+ import { type ColorMapType } from '../../Chart';
3
+ export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, dashedComparison, singlePointStyle, }: {
3
4
  colors?: string[];
4
- colorMap?: any;
5
+ colorMap?: ColorMapType;
5
6
  yAxisFields: any[];
6
7
  data: any[];
7
8
  containerStyle?: React.CSSProperties;
@@ -15,8 +16,6 @@ export default function LineChart({ colors, colorMap, yAxisFields, data, contain
15
16
  hideYAxis: boolean;
16
17
  hideCartesianGrid: boolean;
17
18
  dashedComparison: boolean;
18
- customPrimaryColor: string | undefined;
19
- customComparisonColor: string | undefined;
20
19
  singlePointStyle: 'dot' | 'line';
21
20
  }): import("react/jsx-runtime").JSX.Element | null;
22
21
  //# sourceMappingURL=LineChart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAiBA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,gBAAwB,EACxB,kBAA8B,EAC9B,qBAAiC,EACjC,gBAAwB,GACzB,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,gBAAgB,EAAE,KAAK,GAAG,MAAM,CAAC;CAClC,kDAkOA"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,gBAAwB,EACxB,gBAAwB,GACzB,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,KAAK,GAAG,MAAM,CAAC;CAClC,kDAgPA"}
@@ -12,7 +12,8 @@ const color_1 = require("../../utils/color");
12
12
  const ChartTooltip_1 = __importDefault(require("../../components/Chart/ChartTooltip"));
13
13
  const getDomain_1 = __importDefault(require("../../utils/getDomain"));
14
14
  const react_1 = require("react");
15
- function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, dashedComparison = false, customPrimaryColor = undefined, customComparisonColor = undefined, singlePointStyle = 'dot', }) {
15
+ const crypto_1 = require("../../utils/crypto");
16
+ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, dashedComparison = false, singlePointStyle = 'dot', }) {
16
17
  const [formattedData, setFormattedData] = (0, react_1.useState)([]);
17
18
  if (!yAxisFields || !yAxisFields.length) {
18
19
  return null;
@@ -49,19 +50,22 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, x
49
50
  fontSize: 13,
50
51
  color: theme.secondaryTextColor,
51
52
  ...containerStyle,
52
- }, children: "No results found for specified time period." }));
53
+ }, children: "No results" }));
53
54
  }
54
55
  // Allows the users to override the color scheme on a per-chart basis.
55
- const getCustomColor = (index, field) => {
56
- if (index === 0 && customPrimaryColor) {
57
- return customPrimaryColor;
58
- }
59
- if (index === 1 && comparison && customComparisonColor) {
60
- return customComparisonColor;
61
- }
56
+ const getCustomColor = (index, field, gradient) => {
57
+ let key = index === 0 ? 'primary' : 'comparison';
58
+ field = field.replace('comparison_', '');
62
59
  if (colorMap && colorMap[field]) {
63
- // console.log(field, '->', colorMap[field]);
64
- return colorMap[field];
60
+ if (index === 0 && gradient === 'start')
61
+ key = 'primaryGradientStart';
62
+ if (index === 0 && gradient === 'stop')
63
+ key = 'primaryGradientStop';
64
+ if (index === 1 && gradient === 'start')
65
+ key = 'comparisonGradientStart';
66
+ if (index === 1 && gradient === 'stop')
67
+ key = 'comparisonGradientStop';
68
+ return colorMap[field][key];
65
69
  }
66
70
  return undefined; // use the default colors from the theme
67
71
  };
@@ -77,7 +81,7 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, x
77
81
  field: xAxisField,
78
82
  fields: [{ field: xAxisField, format: xAxisFormat }],
79
83
  });
80
- } }), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { hide: hideYAxis, width: 44, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, style: {
84
+ } }), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { hide: hideYAxis, width: 44, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
81
85
  fontSize: '12px',
82
86
  fontFamily: theme?.chartLabelFontFamily ||
83
87
  theme?.fontFamily ||
@@ -109,8 +113,24 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, x
109
113
  { field: xAxisField, format: xAxisFormat },
110
114
  ],
111
115
  }), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, theme: theme }));
112
- }, position: { y: 0 } }), yAxisFields.map((elem, index) => ((0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: `gradient${elem.field}${index}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "5%", stopColor: getCustomColor(index, elem.field) ??
113
- (0, color_1.selectColor)(elem, colors, index), stopOpacity: 0.4 }), (0, jsx_runtime_1.jsx)("stop", { offset: "95%", stopColor: 'rgba(0,0,0,0)', stopOpacity: 0 })] }) }, `defs${elem.field + index}`))), yAxisFields.map((elem, index) => ((0, jsx_runtime_1.jsx)(recharts_1.Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: getCustomColor(index, elem.field) ??
114
- (0, color_1.selectColor)(elem, colors, index), fill: `url(#gradient${elem.field}${index})`, strokeWidth: 2, dot: false, strokeDasharray: comparison && dashedComparison && index > 0 ? '5 5' : undefined, isAnimationActive: isAnimationActive }, elem.field)))] }) }) }));
116
+ }, position: { y: 0 } }), yAxisFields.map((elem, index) => {
117
+ // hash the color stops so they're stable, valid html ids
118
+ const gradientStart = getCustomColor(index, elem.field, 'start') ??
119
+ getCustomColor(index, elem.field) ??
120
+ (0, color_1.selectColor)(elem, colors, index);
121
+ const gradientStop = getCustomColor(index, elem.field, 'stop') ?? '#00000000';
122
+ const uniqueId = `gradient_${(0, crypto_1.hashCode)(gradientStart)}_${(0, crypto_1.hashCode)(gradientStop)}`;
123
+ return ((0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: uniqueId, x1: "0", y1: "0", x2: "0", y2: "1", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "5%", stopColor: gradientStart, stopOpacity: 0.4 }), (0, jsx_runtime_1.jsx)("stop", { offset: "95%", stopColor: gradientStop, stopOpacity: 0 })] }) }, `defs_${uniqueId}_${index}`));
124
+ }), yAxisFields.map((elem, index) => {
125
+ const gradientStart = (0, crypto_1.hashCode)(getCustomColor(index, elem.field, 'start') ??
126
+ getCustomColor(index, elem.field) ??
127
+ (0, color_1.selectColor)(elem, colors, index));
128
+ const gradientStop = (0, crypto_1.hashCode)(getCustomColor(index, elem.field, 'stop') ?? '#00000000');
129
+ const uniqueId = `gradient_${gradientStart}_${gradientStop}`;
130
+ return ((0, jsx_runtime_1.jsx)(recharts_1.Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: getCustomColor(index, elem.field) ??
131
+ (0, color_1.selectColor)(elem, colors, index), fill: `url(#${uniqueId})`, strokeWidth: 2, dot: false, strokeDasharray: comparison && dashedComparison && index > 0
132
+ ? '5 5'
133
+ : undefined, isAnimationActive: isAnimationActive }, elem.field));
134
+ })] }) }) }));
115
135
  }
116
136
  exports.default = LineChart;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,aAAa,EACb,oBAAoB,EACpB,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAqGnB"}
1
+ {"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,aAAa,EACb,oBAAoB,EACpB,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAkGnB"}
@@ -5,13 +5,10 @@ function DashboardItem({ dashboardItem, onClickDashboardItem, theme, style, chil
5
5
  return ((0, jsx_runtime_1.jsx)("div", { onClick: onClickDashboardItem
6
6
  ? () => onClickDashboardItem(dashboardItem)
7
7
  : () => { }, style: {
8
- // height: '100%',
9
8
  cursor: 'pointer',
10
9
  boxSizing: 'content-box',
11
- paddingRight: 25,
12
10
  minHeight: 400,
13
11
  borderRadius: 8,
14
- paddingTop: 20,
15
12
  ...style,
16
13
  }, children: (0, jsx_runtime_1.jsx)("div", { style: {
17
14
  width: '100%',
@@ -6,8 +6,8 @@ function DashboardSection({ section, children, }) {
6
6
  if (section === 'tables')
7
7
  return ((0, jsx_runtime_1.jsx)("div", { style: {
8
8
  boxSizing: 'content-box',
9
- width: `100%`,
10
- gap: 20,
9
+ width: '100%',
10
+ gap: 40,
11
11
  display: 'flex',
12
12
  flexDirection: 'column',
13
13
  }, children: children }));
@@ -17,8 +17,8 @@ function DashboardSection({ section, children, }) {
17
17
  width: '100%',
18
18
  listStyleType: 'none',
19
19
  display: 'grid',
20
- gap: 20,
21
- gridTemplateColumns: `repeat(auto-fill,minmax(400px, 1fr))`,
20
+ gap: 40,
21
+ gridTemplateColumns: 'repeat(auto-fill,minmax(400px, 1fr))',
22
22
  gridTemplateRows: `repeat(${170}px)`,
23
23
  }, children: children }));
24
24
  }
@@ -6,7 +6,7 @@ function DashboardSectionContainer({ style, children, ...props }) {
6
6
  width: '100%',
7
7
  display: 'flex',
8
8
  flexDirection: 'column',
9
- gap: 20,
9
+ gap: 40,
10
10
  ...style,
11
11
  }, ...props, children: children }));
12
12
  }
@@ -1,3 +1,10 @@
1
1
  /// <reference types="react" />
2
- export default function DataLoader({ id, children }: any): JSX.Element;
2
+ export type DataLoaderChildProps = {
3
+ isLoading: boolean;
4
+ error: string | null;
5
+ };
6
+ export default function DataLoader({ id, children, }: {
7
+ id: string;
8
+ children: ({ isLoading, error }: DataLoaderChildProps) => JSX.Element;
9
+ }): JSX.Element;
3
10
  //# sourceMappingURL=DataLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAWA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAuErE"}
1
+ {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAUA,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,EAAE,EACF,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACvE,GAAG,GAAG,CAAC,OAAO,CA+Ed"}
@@ -6,13 +6,17 @@ const Chart_1 = require("../../Chart");
6
6
  const Context_1 = require("../../Context");
7
7
  const dataFetcher_1 = require("../../utils/dataFetcher");
8
8
  const merge_1 = require("../../utils/merge");
9
- function DataLoader({ id, children }) {
9
+ function DataLoader({ id, children, }) {
10
10
  const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
11
11
  const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
12
12
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
13
+ const [isLoading, setIsLoading] = (0, react_1.useState)(true);
14
+ const [error, setError] = (0, react_1.useState)(null);
13
15
  (0, react_1.useEffect)(() => {
14
16
  async function getChartOptions() {
17
+ setIsLoading(true);
15
18
  if (!(0, Chart_1.didFiltersChange)(dashboard[id], dashboardFilters)) {
19
+ setIsLoading(false);
16
20
  return;
17
21
  }
18
22
  try {
@@ -43,7 +47,7 @@ function DataLoader({ id, children }) {
43
47
  filters: minimalFilters,
44
48
  };
45
49
  const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
46
- if (resp && resp.name !== 'error') {
50
+ if (resp && resp.name !== 'error' && !resp.errorMessage) {
47
51
  if (resp.compareRows) {
48
52
  (0, merge_1.mergeComparisonRange)(resp);
49
53
  }
@@ -57,13 +61,18 @@ function DataLoader({ id, children }) {
57
61
  },
58
62
  });
59
63
  }
64
+ else {
65
+ setError(resp?.errorMessage);
66
+ }
67
+ setIsLoading(false);
60
68
  }
61
69
  catch (e) {
62
70
  console.log('Error fetching chart: ', e);
71
+ setError(e.message);
63
72
  }
64
73
  }
65
74
  getChartOptions();
66
75
  }, [dashboardFilters, client, id]);
67
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
76
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({ isLoading, error }) });
68
77
  }
69
78
  exports.default = DataLoader;