@quillsql/react 2.13.48 → 2.13.49

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 (279) hide show
  1. package/dist/cjs/Chart.d.ts +2 -2
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +28 -41
  4. package/dist/cjs/ChartBuilder.d.ts +2 -2
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +157 -134
  7. package/dist/cjs/ChartEditor.d.ts +2 -2
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +3 -1
  10. package/dist/cjs/Context.d.ts +10 -3
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +324 -249
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +10 -23
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +0 -3
  16. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +24 -10
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +472 -96
  19. package/dist/cjs/QuillProvider.d.ts +3 -1
  20. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  21. package/dist/cjs/QuillProvider.js +2 -2
  22. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  23. package/dist/cjs/ReportBuilder.js +19 -10
  24. package/dist/cjs/SQLEditor.d.ts +1 -1
  25. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  26. package/dist/cjs/SQLEditor.js +50 -16
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +20 -7
  29. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  31. package/dist/cjs/components/Chart/BarChart.js +2 -1
  32. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +1 -1
  33. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -1
  34. package/dist/cjs/components/Chart/CustomReferenceLine.js +7 -6
  35. package/dist/cjs/components/Chart/GaugeChart.d.ts +1 -1
  36. package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -1
  37. package/dist/cjs/components/Chart/GaugeChart.js +62 -35
  38. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  39. package/dist/cjs/components/Chart/InternalChart.js +30 -33
  40. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  41. package/dist/cjs/components/Chart/LineChart.js +3 -1
  42. package/dist/cjs/components/Chart/MapChart.d.ts +3 -3
  43. package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -1
  44. package/dist/cjs/components/Chart/MapChart.js +62 -34
  45. package/dist/cjs/components/Chart/PieChart.d.ts +3 -1
  46. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  47. package/dist/cjs/components/Chart/PieChart.js +80 -39
  48. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  49. package/dist/cjs/components/Dashboard/DashboardFilter.js +4 -20
  50. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  51. package/dist/cjs/components/Dashboard/DashboardTemplate.js +2 -1
  52. package/dist/cjs/components/Dashboard/DataLoader.d.ts +4 -4
  53. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  54. package/dist/cjs/components/Dashboard/DataLoader.js +31 -14
  55. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  56. package/dist/cjs/components/Dashboard/MetricComponent.js +2 -2
  57. package/dist/cjs/components/Dashboard/util.d.ts +1 -1
  58. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  59. package/dist/cjs/components/Dashboard/util.js +7 -6
  60. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  61. package/dist/cjs/components/QuillMultiSelectSectionList.js +32 -22
  62. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  63. package/dist/cjs/components/QuillMultiSelectWithCombo.js +186 -159
  64. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  65. package/dist/cjs/components/QuillSelect.js +83 -75
  66. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  67. package/dist/cjs/components/QuillSelectWithCombo.js +18 -11
  68. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  69. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  70. package/dist/cjs/components/ReportBuilder/FilterStack.js +3 -4
  71. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -2
  72. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  73. package/dist/cjs/components/ReportBuilder/ui.js +4 -7
  74. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  75. package/dist/cjs/hooks/useAskQuill.js +5 -1
  76. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  77. package/dist/cjs/hooks/useDashboard.js +96 -58
  78. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  79. package/dist/cjs/hooks/useExport.js +23 -13
  80. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  81. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  82. package/dist/cjs/hooks/useQuill.js +8 -10
  83. package/dist/cjs/hooks/useReport.d.ts.map +1 -1
  84. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  85. package/dist/cjs/hooks/useVirtualTables.js +16 -22
  86. package/dist/cjs/index.d.ts +2 -2
  87. package/dist/cjs/index.d.ts.map +1 -1
  88. package/dist/cjs/index.js +2 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  90. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  91. package/dist/cjs/internals/ReportBuilder/PivotModal.js +19 -7
  92. package/dist/cjs/models/Client.d.ts +0 -1
  93. package/dist/cjs/models/Client.d.ts.map +1 -1
  94. package/dist/cjs/models/Data.d.ts +20 -0
  95. package/dist/cjs/models/Data.d.ts.map +1 -0
  96. package/dist/cjs/models/Data.js +2 -0
  97. package/dist/cjs/models/Filter.d.ts +42 -4
  98. package/dist/cjs/models/Filter.d.ts.map +1 -1
  99. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  100. package/dist/cjs/utils/astProcessing.d.ts +3 -2
  101. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  102. package/dist/cjs/utils/astProcessing.js +28 -37
  103. package/dist/cjs/utils/client.d.ts +3 -2
  104. package/dist/cjs/utils/client.d.ts.map +1 -1
  105. package/dist/cjs/utils/client.js +38 -39
  106. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  107. package/dist/cjs/utils/columnProcessing.js +14 -3
  108. package/dist/cjs/utils/constants.d.ts +1 -0
  109. package/dist/cjs/utils/constants.d.ts.map +1 -1
  110. package/dist/cjs/utils/constants.js +2 -1
  111. package/dist/cjs/utils/dashboard.d.ts +3 -2
  112. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  113. package/dist/cjs/utils/dashboard.js +30 -12
  114. package/dist/cjs/utils/dataFetcher.d.ts +8 -5
  115. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  116. package/dist/cjs/utils/dataFetcher.js +189 -65
  117. package/dist/cjs/utils/filterProcessing.d.ts +2 -1
  118. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  119. package/dist/cjs/utils/filterProcessing.js +24 -38
  120. package/dist/cjs/utils/getDomain.d.ts.map +1 -1
  121. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  122. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  123. package/dist/cjs/utils/pivotConstructor.js +15 -11
  124. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  125. package/dist/cjs/utils/pivotProcessing.js +3 -5
  126. package/dist/cjs/utils/queryConstructor.js +1 -1
  127. package/dist/cjs/utils/report.d.ts +10 -7
  128. package/dist/cjs/utils/report.d.ts.map +1 -1
  129. package/dist/cjs/utils/report.js +52 -60
  130. package/dist/cjs/utils/schema.d.ts +4 -3
  131. package/dist/cjs/utils/schema.d.ts.map +1 -1
  132. package/dist/cjs/utils/schema.js +30 -44
  133. package/dist/cjs/utils/tableProcessing.d.ts +16 -10
  134. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  135. package/dist/cjs/utils/tableProcessing.js +91 -90
  136. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  137. package/dist/cjs/utils/textProcessing.js +2 -1
  138. package/dist/cjs/utils/ui.d.ts.map +1 -1
  139. package/dist/esm/Chart.d.ts +2 -2
  140. package/dist/esm/Chart.d.ts.map +1 -1
  141. package/dist/esm/Chart.js +30 -43
  142. package/dist/esm/ChartBuilder.d.ts +2 -2
  143. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  144. package/dist/esm/ChartBuilder.js +158 -135
  145. package/dist/esm/ChartEditor.d.ts +2 -2
  146. package/dist/esm/ChartEditor.d.ts.map +1 -1
  147. package/dist/esm/ChartEditor.js +4 -2
  148. package/dist/esm/Context.d.ts +10 -3
  149. package/dist/esm/Context.d.ts.map +1 -1
  150. package/dist/esm/Context.js +326 -251
  151. package/dist/esm/Dashboard.d.ts.map +1 -1
  152. package/dist/esm/Dashboard.js +12 -25
  153. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +0 -3
  154. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +24 -10
  155. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  156. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +471 -95
  157. package/dist/esm/QuillProvider.d.ts +3 -1
  158. package/dist/esm/QuillProvider.d.ts.map +1 -1
  159. package/dist/esm/QuillProvider.js +2 -2
  160. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  161. package/dist/esm/ReportBuilder.js +21 -12
  162. package/dist/esm/SQLEditor.d.ts +1 -1
  163. package/dist/esm/SQLEditor.d.ts.map +1 -1
  164. package/dist/esm/SQLEditor.js +53 -19
  165. package/dist/esm/Table.d.ts.map +1 -1
  166. package/dist/esm/Table.js +21 -8
  167. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +1 -1
  168. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  169. package/dist/esm/components/Chart/BarChart.js +2 -1
  170. package/dist/esm/components/Chart/CustomReferenceLine.d.ts +1 -1
  171. package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -1
  172. package/dist/esm/components/Chart/CustomReferenceLine.js +8 -7
  173. package/dist/esm/components/Chart/GaugeChart.d.ts +1 -1
  174. package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -1
  175. package/dist/esm/components/Chart/GaugeChart.js +64 -37
  176. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  177. package/dist/esm/components/Chart/InternalChart.js +32 -35
  178. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  179. package/dist/esm/components/Chart/LineChart.js +3 -1
  180. package/dist/esm/components/Chart/MapChart.d.ts +3 -3
  181. package/dist/esm/components/Chart/MapChart.d.ts.map +1 -1
  182. package/dist/esm/components/Chart/MapChart.js +67 -39
  183. package/dist/esm/components/Chart/PieChart.d.ts +3 -1
  184. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  185. package/dist/esm/components/Chart/PieChart.js +80 -39
  186. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  187. package/dist/esm/components/Dashboard/DashboardFilter.js +5 -21
  188. package/dist/esm/components/Dashboard/DashboardSection.js +2 -2
  189. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  190. package/dist/esm/components/Dashboard/DashboardTemplate.js +3 -2
  191. package/dist/esm/components/Dashboard/DataLoader.d.ts +4 -4
  192. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  193. package/dist/esm/components/Dashboard/DataLoader.js +32 -15
  194. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  195. package/dist/esm/components/Dashboard/MetricComponent.js +2 -2
  196. package/dist/esm/components/Dashboard/util.d.ts +1 -1
  197. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  198. package/dist/esm/components/Dashboard/util.js +8 -7
  199. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  200. package/dist/esm/components/QuillMultiSelectSectionList.js +32 -22
  201. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  202. package/dist/esm/components/QuillMultiSelectWithCombo.js +187 -160
  203. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  204. package/dist/esm/components/QuillSelect.js +85 -77
  205. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  206. package/dist/esm/components/QuillSelectWithCombo.js +18 -11
  207. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  208. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  209. package/dist/esm/components/ReportBuilder/FilterStack.js +3 -4
  210. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -2
  211. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  212. package/dist/esm/components/ReportBuilder/ui.js +4 -7
  213. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  214. package/dist/esm/hooks/useAskQuill.js +6 -2
  215. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  216. package/dist/esm/hooks/useDashboard.js +98 -60
  217. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  218. package/dist/esm/hooks/useExport.js +25 -15
  219. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  220. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  221. package/dist/esm/hooks/useQuill.js +9 -11
  222. package/dist/esm/hooks/useReport.d.ts.map +1 -1
  223. package/dist/esm/hooks/useReport.js +1 -1
  224. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  225. package/dist/esm/hooks/useVirtualTables.js +17 -23
  226. package/dist/esm/index.d.ts +2 -2
  227. package/dist/esm/index.d.ts.map +1 -1
  228. package/dist/esm/index.js +1 -1
  229. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  230. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  231. package/dist/esm/internals/ReportBuilder/PivotModal.js +20 -8
  232. package/dist/esm/models/Client.d.ts +0 -1
  233. package/dist/esm/models/Client.d.ts.map +1 -1
  234. package/dist/esm/models/Data.d.ts +20 -0
  235. package/dist/esm/models/Data.d.ts.map +1 -0
  236. package/dist/esm/models/Data.js +1 -0
  237. package/dist/esm/models/Filter.d.ts +42 -4
  238. package/dist/esm/models/Filter.d.ts.map +1 -1
  239. package/dist/esm/models/Pivot.d.ts.map +1 -1
  240. package/dist/esm/utils/astProcessing.d.ts +3 -2
  241. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  242. package/dist/esm/utils/astProcessing.js +28 -37
  243. package/dist/esm/utils/client.d.ts +3 -2
  244. package/dist/esm/utils/client.d.ts.map +1 -1
  245. package/dist/esm/utils/client.js +38 -39
  246. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  247. package/dist/esm/utils/columnProcessing.js +14 -3
  248. package/dist/esm/utils/constants.d.ts +1 -0
  249. package/dist/esm/utils/constants.d.ts.map +1 -1
  250. package/dist/esm/utils/constants.js +1 -0
  251. package/dist/esm/utils/dashboard.d.ts +3 -2
  252. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  253. package/dist/esm/utils/dashboard.js +31 -13
  254. package/dist/esm/utils/dataFetcher.d.ts +8 -5
  255. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  256. package/dist/esm/utils/dataFetcher.js +187 -65
  257. package/dist/esm/utils/filterProcessing.d.ts +2 -1
  258. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  259. package/dist/esm/utils/filterProcessing.js +25 -39
  260. package/dist/esm/utils/getDomain.d.ts.map +1 -1
  261. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  262. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  263. package/dist/esm/utils/pivotConstructor.js +16 -12
  264. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  265. package/dist/esm/utils/pivotProcessing.js +5 -7
  266. package/dist/esm/utils/queryConstructor.js +1 -1
  267. package/dist/esm/utils/report.d.ts +10 -7
  268. package/dist/esm/utils/report.d.ts.map +1 -1
  269. package/dist/esm/utils/report.js +53 -61
  270. package/dist/esm/utils/schema.d.ts +4 -3
  271. package/dist/esm/utils/schema.d.ts.map +1 -1
  272. package/dist/esm/utils/schema.js +30 -44
  273. package/dist/esm/utils/tableProcessing.d.ts +16 -10
  274. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  275. package/dist/esm/utils/tableProcessing.js +93 -92
  276. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  277. package/dist/esm/utils/textProcessing.js +2 -1
  278. package/dist/esm/utils/ui.d.ts.map +1 -1
  279. package/package.json +2 -1
@@ -8,4 +8,5 @@ export const QUILL_QUERY_ENDPOINT = typeof process !== 'undefined' && process.en
8
8
  : '/cloud';
9
9
  export const ALL_TENANTS = 'QUILL_ALL_TENANTS';
10
10
  export const SINGLE_TENANT = 'QUILL_SINGLE_TENANT';
11
+ export const SAVED_QUERIES_DASHBOARD = 'quill-saved-queries';
11
12
  export const REFERENCE_LINE = 'QUILL_REFERENCE_LINE';
@@ -9,11 +9,12 @@ import { CustomField } from '../models/Schema';
9
9
  * interface to build amazing dashboards on top of.
10
10
  * @param item
11
11
  */
12
- export declare function cleanDashboardItem({ item, dashboardFilters, client, dateBucket, additionalProcessing, customFields, skipPivotFetch, }: {
12
+ export declare function cleanDashboardItem({ item, dashboardFilters, getToken, client, dateBucket, additionalProcessing, customFields, skipPivotFetch, }: {
13
13
  item: {
14
14
  [key: string]: any;
15
15
  } | undefined;
16
16
  dashboardFilters: any;
17
+ getToken: () => Promise<string>;
17
18
  client: QuillProviderClient;
18
19
  dateBucket?: string;
19
20
  additionalProcessing?: AdditionalProcessing;
@@ -22,7 +23,7 @@ export declare function cleanDashboardItem({ item, dashboardFilters, client, dat
22
23
  } | null;
23
24
  skipPivotFetch?: boolean;
24
25
  }): Promise<QuillReportInternal>;
25
- export declare function getDashboard(dashboardName: string, client: QuillProviderClient, tenants?: {
26
+ export declare function getDashboard(dashboardName: string, client: QuillProviderClient, getToken: () => Promise<string>, tenants?: {
26
27
  tenantField: string;
27
28
  tenantIds: (string | number)[];
28
29
  }[] | (string | number)[], flags?: string[]): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAcvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsB/C;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,EAAE;IACD,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IACzC,gBAAgB,EAAE,GAAG,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,YAAY,CAAC,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsL/B;AA2ID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACvB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,CAAC,CA6Bd"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAcvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAuB/C;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,EAAE;IACD,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IACzC,gBAAgB,EAAE,GAAG,CAAC;IACtB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,YAAY,CAAC,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuL/B;AA8ID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACvB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,CAAC,CA6Cd"}
@@ -1,6 +1,6 @@
1
1
  import { generatePivotTable, generatePivotTableYAxis, } from '../internals/ReportBuilder/PivotModal';
2
2
  import { snakeAndCamelCaseToTitleCase, snakeCaseToTitleCase, } from './textProcessing';
3
- import { getData } from './dataFetcher';
3
+ import { quillFetch } from './dataFetcher';
4
4
  import { getDateBucketFromRange } from './dates';
5
5
  import { generatePivotWithSQL } from './pivotConstructor';
6
6
  import { convertFieldTypeToJSType, convertPostgresColumn, fieldTypeToDataTypeID, processColumnName, } from './columnProcessing';
@@ -30,7 +30,7 @@ const defaultDashboardItem = {
30
30
  * interface to build amazing dashboards on top of.
31
31
  * @param item
32
32
  */
33
- export async function cleanDashboardItem({ item, dashboardFilters, client, dateBucket, additionalProcessing, customFields, skipPivotFetch, }) {
33
+ export async function cleanDashboardItem({ item, dashboardFilters, getToken, client, dateBucket, additionalProcessing, customFields, skipPivotFetch, }) {
34
34
  if (!item)
35
35
  return defaultDashboardItem;
36
36
  if (!item.rows) {
@@ -98,7 +98,7 @@ export async function cleanDashboardItem({ item, dashboardFilters, client, dateB
98
98
  ],
99
99
  }
100
100
  : undefined,
101
- }, dashboardFilters, client, dateBucket, additionalProcessing, item.dashboardName);
101
+ }, dashboardFilters, getToken, client, dateBucket, additionalProcessing, item.dashboardName);
102
102
  }
103
103
  catch (e) {
104
104
  pivotTable = undefined;
@@ -201,7 +201,7 @@ export async function cleanDashboardItem({ item, dashboardFilters, client, dateB
201
201
  /**
202
202
  * Extract and transform the data from itemInfo.
203
203
  */
204
- async function getPivotTable(report, dashboardFilters, client, dateBucketInitial, additionalProcessing, dashboardName, tenants) {
204
+ async function getPivotTable(report, dashboardFilters, getToken, client, dateBucketInitial, additionalProcessing, dashboardName, tenants) {
205
205
  if (!report)
206
206
  return undefined;
207
207
  const dateFilter = Object.values(dashboardFilters ?? {}).find((filter) => filter.filterType === 'date_range' || filter.operator === 'BETWEEN');
@@ -270,6 +270,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
270
270
  dashboardName,
271
271
  tenants,
272
272
  additionalProcessing,
273
+ getToken,
273
274
  });
274
275
  return pivotTable;
275
276
  }
@@ -288,6 +289,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
288
289
  tenants,
289
290
  dateFilter,
290
291
  additionalProcessing,
292
+ getToken,
291
293
  })
292
294
  : undefined;
293
295
  }
@@ -314,25 +316,41 @@ function extractPivotedYAxis(pivotTable, itemInfo, config = undefined) {
314
316
  // }
315
317
  // return fields;
316
318
  }
317
- export async function getDashboard(dashboardName, client, tenants, flags) {
318
- const hostedBody = {
319
+ export async function getDashboard(dashboardName, client, getToken, tenants, flags) {
320
+ const { data: resp } = await quillFetch({
321
+ client,
322
+ task: 'dashboard',
319
323
  metadata: {
320
324
  name: dashboardName,
321
- task: 'dashboard',
322
325
  clientId: client.publicKey,
323
326
  databaseType: client.databaseType,
324
327
  useNewNodeSql: true,
325
328
  tenants,
326
329
  flags,
327
330
  },
328
- };
329
- const searchParams = new URLSearchParams({
330
- publicKey: client.publicKey,
331
- name: dashboardName,
332
- }).toString();
333
- const resp = await getData(client, `dashconfig?${searchParams}`, 'omit', hostedBody, null, 'GET');
331
+ getToken,
332
+ });
334
333
  return {
335
334
  ...resp,
336
335
  createdAt: resp.createdAt && new Date(resp.createdAt),
336
+ dateFilter: resp.dateFilter
337
+ ? {
338
+ ...resp.dateFilter,
339
+ presetOptions: resp.dateFilter.presetOptions?.map((preset) => ({
340
+ ...preset,
341
+ loopStart: preset.loopStart
342
+ ? new Date(preset.loopStart)
343
+ : undefined,
344
+ loopEnd: preset.loopEnd ? new Date(preset.loopEnd) : undefined,
345
+ })),
346
+ defaultPresetRanges: resp.dateFilter.defaultPresetRanges?.map((preset) => ({
347
+ ...preset,
348
+ loopStart: preset.loopStart
349
+ ? new Date(preset.loopStart)
350
+ : undefined,
351
+ loopEnd: preset.loopEnd ? new Date(preset.loopEnd) : undefined,
352
+ })),
353
+ }
354
+ : undefined,
337
355
  };
338
356
  }
@@ -1,9 +1,12 @@
1
1
  import { QuillProviderClient } from '../models/Client';
2
- export declare function getData(client: QuillProviderClient, cloudQueryEndpoint: string, noCred: RequestCredentials, hostedRequestBody: any, cloudRequestBody: any, method?: string, queryParam?: string, abortSignal?: AbortSignal): Promise<any>;
3
- export declare function useQuillCloud(): {
4
- getDataFromCloud: (client: QuillProviderClient, cloudQueryEndpoint: string, cloudRequestBody: any, method?: string, abortSignal?: AbortSignal) => Promise<any>;
5
- };
6
- export declare function fetchSqlQuery(ast: any, client: QuillProviderClient, formData?: any): Promise<{
2
+ import { QuillFetchOptions, QuillResults } from '../models/Data';
3
+ export declare const quillFetch: ({ client, task, method, metadata, abortSignal, credentials, urlParameters, getToken, }: QuillFetchOptions) => Promise<QuillResults>;
4
+ export declare const parseFetchResponse: (client: QuillProviderClient, task: string, response: QuillResults, getToken: () => Promise<string>) => Promise<any>;
5
+ /**
6
+ * @deprecated Use quillFetch instead. If post fetch parsing is required, use parseFetchResponse.
7
+ */
8
+ export declare function getData(client: QuillProviderClient, cloudQueryEndpoint: string, noCred: RequestCredentials, hostedRequestBody: any, cloudRequestBody: any, method: string | undefined, getToken: () => Promise<string>, queryParam?: string, abortSignal?: AbortSignal): Promise<any>;
9
+ export declare function fetchSqlQuery(ast: any, client: QuillProviderClient, getToken: () => Promise<string>, formData?: any): Promise<{
7
10
  query: string;
8
11
  error?: string;
9
12
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAgFvD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,gBAgL1B;AAED,wBAAgB,aAAa;+BAGjB,mBAAmB,sBACP,MAAM,oBACR,GAAG,iCAEP,WAAW;EAoC5B;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB5C"}
1
+ {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA6EjE,eAAO,MAAM,UAAU,2FASpB,iBAAiB,KAAG,OAAO,CAAC,YAAY,CAuD1C,CAAC;AAIF,eAAO,MAAM,kBAAkB,WACrB,mBAAmB,QACrB,MAAM,YACF,YAAY,YACZ,MAAM,OAAO,CAAC,MAAM,CAAC,iBA0EhC,CAAC;AAEF;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,oBAAS,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,gBAgL1B;AA+CD,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB5C"}
@@ -1,6 +1,4 @@
1
- import { useContext } from 'react';
2
- import { QUILL_SERVER } from './constants';
3
- import { TenantContext } from '../Context';
1
+ import { QUILL_QUERY_ENDPOINT, QUILL_SERVER } from './constants';
4
2
  function fetchQuillData(responseData) {
5
3
  if (!responseData) {
6
4
  return null;
@@ -32,39 +30,159 @@ function parseData(rows, queryType) {
32
30
  return rows;
33
31
  }
34
32
  }
35
- async function testSqlViewState(hostedRequestBody, client, referencedTables) {
33
+ async function testSqlViewState(client, referencedTables, getToken) {
36
34
  let errorMessage = null;
37
35
  await Promise.all(referencedTables.map(async (table) => {
38
36
  if (!table) {
39
37
  return;
40
38
  }
41
- const hostedBody = {
39
+ const { data: resp } = await quillFetch({
40
+ client,
41
+ task: 'test-view',
42
42
  metadata: {
43
43
  tables: [table],
44
- task: 'test-view',
45
- clientId: hostedRequestBody.metadata.clientId,
44
+ clientId: client.clientId,
46
45
  },
47
- };
48
- const cloudBody = { ...hostedBody };
49
- const resp = await getData(client, 'test-view', 'same-origin', hostedBody, cloudBody);
46
+ getToken,
47
+ });
50
48
  if (resp.success === false) {
51
49
  const brokenBody = {
52
50
  metadata: {
53
51
  table: table,
54
52
  task: 'set-broken-view',
55
- clientId: hostedRequestBody.metadata.clientId,
53
+ clientId: client.clientId,
56
54
  },
57
55
  };
58
- getData(client, 'test-view', 'same-origin', brokenBody, cloudBody);
56
+ quillFetch({
57
+ client,
58
+ task: 'set-broken-view',
59
+ metadata: brokenBody,
60
+ credentials: 'same-origin',
61
+ getToken,
62
+ });
59
63
  errorMessage = `Virtual Table Error: '${table}' is out of sync with datasource.`;
60
64
  }
61
65
  }));
62
66
  return errorMessage;
63
67
  }
64
- // this function gets the data either from the self hosted endpoint or
65
- // our cloud server
66
- // Tenants and Flags must be passed in as part of the body explicity
67
- export async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cloudRequestBody, method = 'POST', queryParam, abortSignal) {
68
+ export const quillFetch = async ({ client, task, method = 'POST', metadata, abortSignal, credentials = 'omit', urlParameters, getToken, }) => {
69
+ const token = await getToken();
70
+ const queryString = urlParameters ?? `task=${task}`;
71
+ const endpoint = client.queryEndpoint
72
+ ? `${client.queryEndpoint}?${queryString}`
73
+ : `${QUILL_SERVER}${QUILL_QUERY_ENDPOINT}?${queryString}`;
74
+ try {
75
+ const response = await fetch(endpoint, {
76
+ method,
77
+ headers: {
78
+ ...(token ? { Authorization: `Bearer ${token}` } : {}),
79
+ ...client.queryHeaders,
80
+ 'Content-Type': 'application/json',
81
+ 'Vercel-Env': process.env.NEXT_PUBLIC_VERCEL_ENV ?? 'production',
82
+ },
83
+ body: JSON.stringify({
84
+ metadata: {
85
+ task,
86
+ clientId: client.clientId,
87
+ ...metadata,
88
+ },
89
+ }),
90
+ credentials: client.withCredentials ? 'include' : credentials,
91
+ signal: abortSignal,
92
+ });
93
+ if (!response.ok) {
94
+ throw new Error('API request failed');
95
+ }
96
+ let result = await response.json();
97
+ // Not sure if this is required, but putting it here just in case
98
+ // based on other lines of code I've seen
99
+ // Probably happens if self-hosted endpoint was not set up correctly and
100
+ // the response was wrapped in an additional data object
101
+ if (result.data?.data &&
102
+ (result.data.queries || result.data.status || result.data.error)) {
103
+ result = result.data;
104
+ }
105
+ return {
106
+ data: result.data,
107
+ queries: result.queries,
108
+ status: result.status,
109
+ error: result.error,
110
+ };
111
+ }
112
+ catch (e) {
113
+ if (e instanceof Error && e.name === 'AbortError') {
114
+ throw e;
115
+ }
116
+ console.error('Failed to fetch:', e);
117
+ return { error: 'Failed to fetch data' };
118
+ }
119
+ };
120
+ // This function parses the response from the fetch call,
121
+ // which is what getData used to do after fetching data
122
+ export const parseFetchResponse = async (client, task, response, getToken) => {
123
+ try {
124
+ if (response.status === 'error' || response.data?.error) {
125
+ let errorPrefix = 'Error: ';
126
+ let errorMessage = 'Failed to fetch report: ' + (response.error || response.data?.error);
127
+ if (task === 'query' || task === 'patterns') {
128
+ errorPrefix = response.error?.includes('Query Parsing Error')
129
+ ? ''
130
+ : 'SQL Error: ';
131
+ errorMessage = errorPrefix + response.error;
132
+ }
133
+ else if (response.error?.includes('Virtual Table Error')) {
134
+ errorMessage = response.error;
135
+ }
136
+ let adminErrorMessage = undefined;
137
+ if (response?.data?.referencedTables) {
138
+ adminErrorMessage =
139
+ (await testSqlViewState(client, response.data.referencedTables, getToken)) ?? undefined;
140
+ }
141
+ return {
142
+ success: false,
143
+ errorMessage,
144
+ adminErrorMessage,
145
+ data: response,
146
+ };
147
+ }
148
+ if (response.error) {
149
+ return {
150
+ success: false,
151
+ errorMessage: response.error,
152
+ ...response,
153
+ };
154
+ }
155
+ const result = {
156
+ ...response.data,
157
+ };
158
+ const fields = response.queries?.queryResults[0]?.fields;
159
+ const rows = response.queries?.queryResults[0]?.rows;
160
+ const compareRows = response.queries?.queryResults[1]?.rows;
161
+ if (fields) {
162
+ result.fields = fields;
163
+ }
164
+ if (rows) {
165
+ result.rows = rows;
166
+ }
167
+ if (compareRows && task !== 'report') {
168
+ result.compareRows = compareRows;
169
+ }
170
+ if (response.data?.queryOrder) {
171
+ response.data.queryOrder.forEach((queryKey, index) => {
172
+ result[queryKey] = parseData(response.queries?.queryResults?.[index]?.rows, queryKey);
173
+ });
174
+ }
175
+ return result;
176
+ }
177
+ catch (e) {
178
+ console.error('Failed to parse response:', e);
179
+ return null;
180
+ }
181
+ };
182
+ /**
183
+ * @deprecated Use quillFetch instead. If post fetch parsing is required, use parseFetchResponse.
184
+ */
185
+ export async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cloudRequestBody, method = 'POST', getToken, queryParam, abortSignal) {
68
186
  if (!client) {
69
187
  return null;
70
188
  }
@@ -105,7 +223,7 @@ export async function getData(client, cloudQueryEndpoint, noCred, hostedRequestB
105
223
  processedData.data &&
106
224
  processedData.data.referencedTables) {
107
225
  adminErrorMessage =
108
- (await testSqlViewState(hostedRequestBody, client, processedData.data.referencedTables)) ?? undefined;
226
+ (await testSqlViewState(client, processedData.data.referencedTables, getToken)) ?? undefined;
109
227
  }
110
228
  return {
111
229
  success: false,
@@ -214,58 +332,62 @@ export async function getData(client, cloudQueryEndpoint, noCred, hostedRequestB
214
332
  return null;
215
333
  }
216
334
  }
217
- export function useQuillCloud() {
218
- const { tenants, flags } = useContext(TenantContext);
219
- const getDataFromCloud = async (client, cloudQueryEndpoint, cloudRequestBody, method = 'POST', abortSignal) => {
220
- try {
221
- const url = `${QUILL_SERVER}/${cloudQueryEndpoint}`;
222
- const resp = await fetch(url, {
223
- method,
224
- headers: {
225
- Authorization: 'Bearer ',
226
- 'Content-Type': 'application/json',
227
- },
228
- body: method === 'POST'
229
- ? JSON.stringify({
230
- ...cloudRequestBody,
231
- ...{
232
- publicKey: client?.publicKey,
233
- tenants: tenants,
234
- flags: flags,
235
- },
236
- })
237
- : null,
238
- signal: abortSignal,
239
- });
240
- return await resp.json();
241
- }
242
- catch (e) {
243
- if (e instanceof Error && e.name === 'AbortError') {
244
- throw e;
245
- }
246
- console.error('Failed to parse JSON:', e);
247
- return null;
248
- }
249
- };
250
- return {
251
- getDataFromCloud,
252
- };
253
- }
254
- export async function fetchSqlQuery(ast, client, formData) {
335
+ // export function useQuillCloud() {
336
+ // const { tenants, flags } = useContext(TenantContext);
337
+ // const getDataFromCloud = async (
338
+ // client: QuillProviderClient,
339
+ // cloudQueryEndpoint: string,
340
+ // cloudRequestBody: any,
341
+ // method = 'POST',
342
+ // abortSignal?: AbortSignal,
343
+ // ) => {
344
+ // try {
345
+ // const url = `${QUILL_SERVER}/${cloudQueryEndpoint}`;
346
+ // const resp = await fetch(url, {
347
+ // method,
348
+ // headers: {
349
+ // Authorization: 'Bearer ',
350
+ // 'Content-Type': 'application/json',
351
+ // },
352
+ // body:
353
+ // method === 'POST'
354
+ // ? JSON.stringify({
355
+ // ...cloudRequestBody,
356
+ // ...{
357
+ // publicKey: client?.publicKey,
358
+ // tenants: tenants,
359
+ // flags: flags,
360
+ // },
361
+ // })
362
+ // : null,
363
+ // signal: abortSignal,
364
+ // });
365
+ // return await resp.json();
366
+ // } catch (e) {
367
+ // if (e instanceof Error && e.name === 'AbortError') {
368
+ // throw e;
369
+ // }
370
+ // console.error('Failed to parse JSON:', e);
371
+ // return null;
372
+ // }
373
+ // };
374
+ // return {
375
+ // getDataFromCloud,
376
+ // };
377
+ // }
378
+ export async function fetchSqlQuery(ast, client, getToken, formData) {
255
379
  try {
256
380
  const where = formData ? formData : ast?.where || null;
257
- const response = await fetch(`${QUILL_SERVER}/sqlify`, {
258
- method: 'POST',
259
- headers: {
260
- 'Content-Type': 'application/json',
261
- },
262
- body: JSON.stringify({
381
+ const { data } = await quillFetch({
382
+ client,
383
+ task: 'sqlify',
384
+ metadata: {
385
+ clientId: client.clientId,
386
+ useNewNodeSql: true,
263
387
  ast: { ...ast, where },
264
- publicKey: client.publicKey,
265
- useNewNodeSql: true, // new flag
266
- }),
388
+ },
389
+ getToken,
267
390
  });
268
- const data = await response.json();
269
391
  return { query: data.query };
270
392
  }
271
393
  catch (error) {
@@ -2,6 +2,7 @@ import { FieldType, InternalFilter, DashboardDateFilter, Filter, DashboardFilter
2
2
  import { QuillReport } from '../models/Report';
3
3
  import { FilterTreeNode } from './astFilterProcessing';
4
4
  import { ReportBuilderState } from '../models/ReportBuilder';
5
+ import { QuillProviderClient } from '../models/Client';
5
6
  export declare function findAndProcessDateFilter(filters: any[]): any;
6
7
  export declare function processFilterFromBackend(filter: any): any;
7
8
  export declare function updateFilter(filter: any, value: any | undefined, comparison: any | undefined, dashboardName: string): any;
@@ -22,7 +23,7 @@ export declare function filterStackToFilterTree(stack: any[]): FilterTreeNode |
22
23
  /**
23
24
  * This function uses the baseAst and forms a SQL query using the a filters array
24
25
  */
25
- export declare function buildQueryFromFilters(reportBuilderState: ReportBuilderState, filters: FilterTreeNode[], endpoint: string, client: any): Promise<{
26
+ export declare function buildQueryFromFilters(reportBuilderState: ReportBuilderState, filters: FilterTreeNode[], client: QuillProviderClient, getToken: () => Promise<string>): Promise<{
26
27
  success: boolean;
27
28
  query?: string;
28
29
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAoB5D;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,OAkBnD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG,YAAO,EACjB,UAAU,EAAE,GAAG,YAAO,EACtB,aAAa,EAAE,MAAM,OAmGtB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,cA0DhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,cAAc,EAAE,CAoCrE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,yBAgCnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC/D;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,mBAAmB,GACvC,mBAAmB,CAkKrB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,cAAc,EAAE,GAC9B,GAAG,EAAE,CA+CP;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,GAC1B,OAAO,CA+BT;AAED,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,WAClB,WAAW,EAAE,iBACP,MAAM,KACpB,CAAC,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAAG,SAqDpD,CAAC"}
1
+ {"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAoB5D;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,OAkBnD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG,YAAO,EACjB,UAAU,EAAE,GAAG,YAAO,EACtB,aAAa,EAAE,MAAM,OAqFtB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,cA0DhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,cAAc,EAAE,CAoCrE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,yBAgCnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC/D;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,mBAAmB,GACvC,mBAAmB,CAkKrB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,cAAc,EAAE,GAC9B,GAAG,EAAE,CAgDP;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,GAC1B,OAAO,CA+BT;AAED,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,WAClB,WAAW,EAAE,iBACP,MAAM,KACpB,CAAC,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAAG,SAkDpD,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { endOfDay, parse, startOfDay, sub } from 'date-fns';
2
- import { COMPARISON_RANGE, PRIMARY_RANGE, defaultOptionsV2, getRangeFromPresetOptions, } from '../DateRangePicker/dateRangePickerUtils';
2
+ import { COMPARISON_RANGE, PRIMARY_RANGE, convertPresetOptionsToSelectableList, defaultOptionsV2, getRangeFromPresetOptions, } from '../DateRangePicker/dateRangePickerUtils';
3
3
  import { DateOperator, FieldType, InternalFilterType, DashboardFilterType, TimeUnit, FilterType, } from '../models/Filter';
4
4
  import { filterTreeToAst } from './astFilterProcessing';
5
5
  import { snakeAndCamelCaseToTitleCase } from './textProcessing';
6
6
  import { reportBuilderStateToAst } from './reportBuilder';
7
+ import { quillFetch } from './dataFetcher';
7
8
  export function findAndProcessDateFilter(filters) {
8
9
  let dateFilter = filters.find((filter) => filter.filterType === 'date_range');
9
10
  if (dateFilter) {
@@ -70,25 +71,8 @@ export function updateFilter(filter, value = null, comparison = null, dashboardN
70
71
  }
71
72
  if (filter.filterType === 'date' || filter.filterType === 'date_range') {
72
73
  let presetsOptions = defaultOptionsV2;
73
- if (filter.presetRanges) {
74
- presetsOptions = filter.presetRanges.map((elem) => {
75
- if (!elem.isStatic) {
76
- return {
77
- label: elem.label,
78
- value: elem.value,
79
- startDate: (PRIMARY_RANGE[elem.value] ??
80
- PRIMARY_RANGE['LAST_30_DAYS']).startDate,
81
- endDate: (PRIMARY_RANGE[elem.value] ??
82
- PRIMARY_RANGE['LAST_30_DAYS']).endDate,
83
- };
84
- }
85
- return {
86
- label: elem.label,
87
- value: elem.value,
88
- startDate: new Date(elem.startDate),
89
- endDate: new Date(elem.endDate),
90
- };
91
- });
74
+ if (filter.presetOptions || filter.defaultPresetRanges) {
75
+ presetsOptions = convertPresetOptionsToSelectableList(filter.presetOptions ?? [], filter.defaultPresetRanges ?? []);
92
76
  }
93
77
  if (comparison ||
94
78
  (filter.comparison && filter.comparisonRange.value !== 'NO_COMPARISON')) {
@@ -307,29 +291,26 @@ export function filterStackToFilterTree(stack) {
307
291
  /**
308
292
  * This function uses the baseAst and forms a SQL query using the a filters array
309
293
  */
310
- export async function buildQueryFromFilters(reportBuilderState, filters, endpoint, client) {
294
+ export async function buildQueryFromFilters(reportBuilderState, filters, client, getToken) {
311
295
  const subTree = filterStackToFilterTree(filters);
312
296
  let whereNode = null;
313
297
  if (subTree) {
314
- whereNode = filterTreeToAst(subTree, client.databaseType.toLowerCase());
298
+ whereNode = filterTreeToAst(subTree, client.databaseType?.toLowerCase() || 'postgresql');
315
299
  }
316
- const ast = reportBuilderStateToAst({ ...reportBuilderState, filterStack: filters }, client.databaseType.toLowerCase());
300
+ const ast = reportBuilderStateToAst({ ...reportBuilderState, filterStack: filters }, client.databaseType?.toLowerCase() || 'postgresql');
317
301
  const queryAst = { ...ast, where: whereNode };
318
302
  try {
319
- const response = await fetch(`${endpoint}/sqlify`, {
320
- method: 'POST',
321
- headers: {
322
- 'Content-Type': 'application/json',
323
- },
324
- body: JSON.stringify({
325
- ast: queryAst,
326
- publicKey: client.publicKey,
303
+ const { data } = await quillFetch({
304
+ client,
305
+ task: 'sqlify',
306
+ metadata: {
307
+ clientId: client.clientId,
327
308
  useNewNodeSql: true,
328
- }),
329
- credentials: client.withCredentials ? 'include' : 'omit',
309
+ ast: queryAst,
310
+ },
311
+ getToken,
330
312
  });
331
- const data = await response.json();
332
- const query = data.query;
313
+ const query = data?.query;
333
314
  return { success: true, query };
334
315
  }
335
316
  catch (error) {
@@ -506,7 +487,8 @@ export function mergeCustomFilters(filters, customFilters) {
506
487
  value: 'LAST_30_DAYS',
507
488
  },
508
489
  dashboardName: 'none',
509
- presetRanges: defaultOptionsV2,
490
+ presetOptions: [],
491
+ defaultPresetRanges: [],
510
492
  preset: {
511
493
  label: 'Last 30 Days',
512
494
  value: 'LAST_30_DAYS',
@@ -544,8 +526,7 @@ export function filtersAreEquivalent(filters1, filters2) {
544
526
  export const createDefaultDateFilter = (filter, reports, dashboardName) => {
545
527
  const comparisonRangeStart = getComparisonRange(filter, 'startDate');
546
528
  const comparisonRangeEnd = getComparisonRange(filter, 'endDate');
547
- const range = filter?.presetRanges?.find((range) => range.value === filter.primaryRange?.value) ??
548
- PRIMARY_RANGE[filter.primaryRange?.value ?? 'LAST_30_DAYS'] ??
529
+ const range = PRIMARY_RANGE[filter.primaryRange?.value ?? 'LAST_30_DAYS'] ??
549
530
  PRIMARY_RANGE['LAST_30_DAYS'];
550
531
  return filter
551
532
  ? {
@@ -579,7 +560,12 @@ export const createDefaultDateFilter = (filter, reports, dashboardName) => {
579
560
  : undefined;
580
561
  };
581
562
  const getComparisonRange = (dateFilter, rangeType) => {
582
- const range = dateFilter?.presetRanges?.find((range) => range.value === dateFilter?.primaryRange?.value) ?? PRIMARY_RANGE[dateFilter?.primaryRange?.value ?? 'LAST_30_DAYS'];
563
+ const range = convertPresetOptionsToSelectableList(dateFilter?.presetOptions ?? [], dateFilter?.defaultPresetRanges ?? []).find((option) => option.value === dateFilter?.primaryRange?.value) ??
564
+ PRIMARY_RANGE[dateFilter?.primaryRange?.value ?? 'LAST_30_DAYS'] ??
565
+ PRIMARY_RANGE['LAST_30_DAYS'];
566
+ if (!range.startDate || !range.endDate) {
567
+ return undefined;
568
+ }
583
569
  return (dateFilter?.comparisonRange?.[rangeType] ??
584
570
  COMPARISON_RANGE[dateFilter?.defaultComparisonRange ??
585
571
  'NO_COMPARISON']({
@@ -1 +1 @@
1
- {"version":3,"file":"getDomain.d.ts","sourceRoot":"","sources":["../../../src/utils/getDomain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CA6CtI"}
1
+ {"version":3,"file":"getDomain.d.ts","sourceRoot":"","sources":["../../../src/utils/getDomain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,IAAI,EAAE,GAAG,EAAE,EACX,MAAM,EAAE,GAAG,EAAE,EACb,cAAc,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,GAAG,SAAS,GAC/D,MAAM,EAAE,CA6CV"}
@@ -2,7 +2,7 @@ import { QuillProviderClient } from '../models/Client';
2
2
  import { Pivot, PivotData } from '../models/Pivot';
3
3
  import { QuillReportInternal } from '../models/Report';
4
4
  import { AdditionalProcessing } from './tableProcessing';
5
- export declare function generatePivotWithSQL({ pivot, report, client, dateBucket, dateFilter, distinctStrings, dashboardName, tenants, additionalProcessing, pivotQuery, comparisonPivotQuery, getPivotRowCount, caller, }: {
5
+ export declare function generatePivotWithSQL({ pivot, report, client, dateBucket, dateFilter, distinctStrings, dashboardName, tenants, additionalProcessing, pivotQuery, comparisonPivotQuery, getPivotRowCount, caller, getToken, }: {
6
6
  pivot: Pivot;
7
7
  report?: QuillReportInternal;
8
8
  client: QuillProviderClient;
@@ -19,6 +19,7 @@ export declare function generatePivotWithSQL({ pivot, report, client, dateBucket
19
19
  comparisonPivotQuery?: string;
20
20
  getPivotRowCount?: boolean;
21
21
  caller?: string;
22
+ getToken: () => Promise<string>;
22
23
  }): Promise<PivotData>;
23
24
  export declare function disambiguatedValueField(pivot: Pivot): string | undefined;
24
25
  //# sourceMappingURL=pivotConstructor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAYvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,wBAAsB,oBAAoB,CAAC,EACzC,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,gBAAuB,EACvB,MAAM,GACP,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,SAAS,CAAC,CA2WrB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,sBAYnD"}
1
+ {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAYvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,wBAAsB,oBAAoB,CAAC,EACzC,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,gBAAuB,EACvB,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACjC,GAAG,OAAO,CAAC,SAAS,CAAC,CA6WrB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,sBAYnD"}