@quillsql/react 2.13.27 → 2.13.29

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 (261) hide show
  1. package/dist/cjs/Chart.d.ts +2 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +2 -2
  4. package/dist/cjs/ChartBuilder.d.ts +20 -2
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +140 -45
  7. package/dist/cjs/ChartEditor.d.ts +5 -3
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +4 -5
  10. package/dist/cjs/Context.d.ts +15 -4
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +43 -61
  13. package/dist/cjs/Dashboard.d.ts +4 -0
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +49 -9
  16. package/dist/cjs/QuillProvider.d.ts +7 -46
  17. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  18. package/dist/cjs/QuillProvider.js +2 -4
  19. package/dist/cjs/ReportBuilder.d.ts +9 -1
  20. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  21. package/dist/cjs/ReportBuilder.js +198 -80
  22. package/dist/cjs/SQLEditor.d.ts +5 -1
  23. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  24. package/dist/cjs/SQLEditor.js +81 -18
  25. package/dist/cjs/Table.d.ts.map +1 -1
  26. package/dist/cjs/Table.js +3 -2
  27. package/dist/cjs/components/Chart/InternalChart.d.ts +2 -1
  28. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  29. package/dist/cjs/components/Chart/InternalChart.js +110 -28
  30. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  31. package/dist/cjs/components/Chart/PieChart.js +10 -7
  32. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +3 -2
  33. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  34. package/dist/cjs/components/Dashboard/DashboardFilter.js +66 -65
  35. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/DataLoader.js +81 -34
  37. package/dist/cjs/components/Dashboard/MetricComponent.js +3 -3
  38. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  39. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  40. package/dist/cjs/components/Dashboard/TableComponent.js +3 -3
  41. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  42. package/dist/cjs/components/Dashboard/util.js +6 -2
  43. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +3 -1
  44. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  45. package/dist/cjs/components/QuillMultiSelectWithCombo.js +29 -20
  46. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  47. package/dist/cjs/components/QuillTable.js +9 -1
  48. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  49. package/dist/cjs/components/ReportBuilder/FilterModal.js +25 -3
  50. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  51. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  52. package/dist/cjs/components/ReportBuilder/FilterStack.js +2 -2
  53. package/dist/cjs/components/ReportBuilder/convert.d.ts +1 -0
  54. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  55. package/dist/cjs/components/ReportBuilder/convert.js +54 -4
  56. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -1
  57. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  58. package/dist/cjs/components/ReportBuilder/ui.js +3 -2
  59. package/dist/cjs/components/UiComponents.d.ts +1 -0
  60. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  61. package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
  62. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  63. package/dist/cjs/hooks/useAskQuill.js +6 -5
  64. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -1
  65. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  66. package/dist/cjs/hooks/useAstToFilterTree.js +3 -3
  67. package/dist/cjs/hooks/useDashboard.d.ts +6 -2
  68. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  69. package/dist/cjs/hooks/useDashboard.js +34 -10
  70. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  71. package/dist/cjs/hooks/useExport.js +6 -4
  72. package/dist/cjs/index.d.ts +2 -1
  73. package/dist/cjs/index.d.ts.map +1 -1
  74. package/dist/cjs/index.js +4 -1
  75. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -2
  76. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  77. package/dist/cjs/internals/ReportBuilder/PivotModal.js +59 -30
  78. package/dist/cjs/models/Client.d.ts +22 -3
  79. package/dist/cjs/models/Client.d.ts.map +1 -1
  80. package/dist/cjs/models/Dashboard.d.ts +2 -0
  81. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  82. package/dist/cjs/models/Report.d.ts +4 -0
  83. package/dist/cjs/models/Report.d.ts.map +1 -1
  84. package/dist/cjs/utils/astFilterProcessing.d.ts +3 -2
  85. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  86. package/dist/cjs/utils/astFilterProcessing.js +3323 -977
  87. package/dist/cjs/utils/astProcessing.d.ts +1 -1
  88. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  89. package/dist/cjs/utils/astProcessing.js +4 -2
  90. package/dist/cjs/utils/client.d.ts +4 -2
  91. package/dist/cjs/utils/client.d.ts.map +1 -1
  92. package/dist/cjs/utils/client.js +48 -1
  93. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  94. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  95. package/dist/cjs/utils/columnProcessing.js +34 -1
  96. package/dist/cjs/utils/constants.d.ts +2 -0
  97. package/dist/cjs/utils/constants.d.ts.map +1 -1
  98. package/dist/cjs/utils/constants.js +3 -1
  99. package/dist/cjs/utils/dashboard.d.ts +4 -3
  100. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  101. package/dist/cjs/utils/dashboard.js +13 -91
  102. package/dist/cjs/utils/dataFetcher.d.ts +3 -1
  103. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  104. package/dist/cjs/utils/dataFetcher.js +66 -30
  105. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  106. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  107. package/dist/cjs/utils/filterProcessing.js +3 -0
  108. package/dist/cjs/utils/pivotConstructor.d.ts +4 -1
  109. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  110. package/dist/cjs/utils/pivotConstructor.js +7 -7
  111. package/dist/cjs/utils/pivotProcessing.d.ts +4 -1
  112. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  113. package/dist/cjs/utils/pivotProcessing.js +27 -20
  114. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  115. package/dist/cjs/utils/queryConstructor.js +104 -88
  116. package/dist/cjs/utils/report.d.ts +17 -5
  117. package/dist/cjs/utils/report.d.ts.map +1 -1
  118. package/dist/cjs/utils/report.js +23 -23
  119. package/dist/cjs/utils/schema.d.ts.map +1 -1
  120. package/dist/cjs/utils/schema.js +21 -21
  121. package/dist/cjs/utils/tableProcessing.d.ts +37 -10
  122. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  123. package/dist/cjs/utils/tableProcessing.js +46 -38
  124. package/dist/cjs/utils/tenants.d.ts +11 -0
  125. package/dist/cjs/utils/tenants.d.ts.map +1 -0
  126. package/dist/cjs/utils/tenants.js +13 -0
  127. package/dist/cjs/utils/textProcessing.d.ts +1 -0
  128. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  129. package/dist/cjs/utils/textProcessing.js +49 -0
  130. package/dist/cjs/utils/validation.js +1 -1
  131. package/dist/esm/Chart.d.ts +2 -1
  132. package/dist/esm/Chart.d.ts.map +1 -1
  133. package/dist/esm/Chart.js +2 -2
  134. package/dist/esm/ChartBuilder.d.ts +20 -2
  135. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  136. package/dist/esm/ChartBuilder.js +144 -50
  137. package/dist/esm/ChartEditor.d.ts +5 -3
  138. package/dist/esm/ChartEditor.d.ts.map +1 -1
  139. package/dist/esm/ChartEditor.js +5 -6
  140. package/dist/esm/Context.d.ts +15 -4
  141. package/dist/esm/Context.d.ts.map +1 -1
  142. package/dist/esm/Context.js +42 -60
  143. package/dist/esm/Dashboard.d.ts +4 -0
  144. package/dist/esm/Dashboard.d.ts.map +1 -1
  145. package/dist/esm/Dashboard.js +50 -10
  146. package/dist/esm/QuillProvider.d.ts +7 -46
  147. package/dist/esm/QuillProvider.d.ts.map +1 -1
  148. package/dist/esm/QuillProvider.js +2 -4
  149. package/dist/esm/ReportBuilder.d.ts +9 -1
  150. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  151. package/dist/esm/ReportBuilder.js +200 -84
  152. package/dist/esm/SQLEditor.d.ts +5 -1
  153. package/dist/esm/SQLEditor.d.ts.map +1 -1
  154. package/dist/esm/SQLEditor.js +80 -17
  155. package/dist/esm/Table.d.ts.map +1 -1
  156. package/dist/esm/Table.js +4 -3
  157. package/dist/esm/components/Chart/InternalChart.d.ts +2 -1
  158. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  159. package/dist/esm/components/Chart/InternalChart.js +111 -29
  160. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  161. package/dist/esm/components/Chart/PieChart.js +10 -7
  162. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +3 -2
  163. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  164. package/dist/esm/components/Dashboard/DashboardFilter.js +66 -65
  165. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  166. package/dist/esm/components/Dashboard/DataLoader.js +82 -35
  167. package/dist/esm/components/Dashboard/MetricComponent.js +3 -3
  168. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  169. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  170. package/dist/esm/components/Dashboard/TableComponent.js +3 -3
  171. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  172. package/dist/esm/components/Dashboard/util.js +6 -2
  173. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +3 -1
  174. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  175. package/dist/esm/components/QuillMultiSelectWithCombo.js +29 -20
  176. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  177. package/dist/esm/components/QuillTable.js +9 -1
  178. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  179. package/dist/esm/components/ReportBuilder/FilterModal.js +26 -4
  180. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  181. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  182. package/dist/esm/components/ReportBuilder/FilterStack.js +2 -2
  183. package/dist/esm/components/ReportBuilder/convert.d.ts +1 -0
  184. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  185. package/dist/esm/components/ReportBuilder/convert.js +54 -5
  186. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -1
  187. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  188. package/dist/esm/components/ReportBuilder/ui.js +4 -3
  189. package/dist/esm/components/UiComponents.d.ts +1 -0
  190. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  191. package/dist/esm/hooks/useAskQuill.d.ts +1 -1
  192. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  193. package/dist/esm/hooks/useAskQuill.js +7 -6
  194. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -1
  195. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  196. package/dist/esm/hooks/useAstToFilterTree.js +3 -3
  197. package/dist/esm/hooks/useDashboard.d.ts +6 -2
  198. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  199. package/dist/esm/hooks/useDashboard.js +34 -10
  200. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  201. package/dist/esm/hooks/useExport.js +7 -5
  202. package/dist/esm/index.d.ts +2 -1
  203. package/dist/esm/index.d.ts.map +1 -1
  204. package/dist/esm/index.js +1 -0
  205. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -2
  206. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  207. package/dist/esm/internals/ReportBuilder/PivotModal.js +59 -30
  208. package/dist/esm/models/Client.d.ts +22 -3
  209. package/dist/esm/models/Client.d.ts.map +1 -1
  210. package/dist/esm/models/Dashboard.d.ts +2 -0
  211. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  212. package/dist/esm/models/Report.d.ts +4 -0
  213. package/dist/esm/models/Report.d.ts.map +1 -1
  214. package/dist/esm/utils/astFilterProcessing.d.ts +3 -2
  215. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  216. package/dist/esm/utils/astFilterProcessing.js +3323 -977
  217. package/dist/esm/utils/astProcessing.d.ts +1 -1
  218. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  219. package/dist/esm/utils/astProcessing.js +5 -3
  220. package/dist/esm/utils/client.d.ts +4 -2
  221. package/dist/esm/utils/client.d.ts.map +1 -1
  222. package/dist/esm/utils/client.js +48 -1
  223. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  224. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  225. package/dist/esm/utils/columnProcessing.js +31 -1
  226. package/dist/esm/utils/constants.d.ts +2 -0
  227. package/dist/esm/utils/constants.d.ts.map +1 -1
  228. package/dist/esm/utils/constants.js +2 -0
  229. package/dist/esm/utils/dashboard.d.ts +4 -3
  230. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  231. package/dist/esm/utils/dashboard.js +13 -90
  232. package/dist/esm/utils/dataFetcher.d.ts +3 -1
  233. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  234. package/dist/esm/utils/dataFetcher.js +65 -29
  235. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  236. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  237. package/dist/esm/utils/filterProcessing.js +3 -0
  238. package/dist/esm/utils/pivotConstructor.d.ts +4 -1
  239. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  240. package/dist/esm/utils/pivotConstructor.js +8 -8
  241. package/dist/esm/utils/pivotProcessing.d.ts +4 -1
  242. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  243. package/dist/esm/utils/pivotProcessing.js +27 -20
  244. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  245. package/dist/esm/utils/queryConstructor.js +104 -88
  246. package/dist/esm/utils/report.d.ts +17 -5
  247. package/dist/esm/utils/report.d.ts.map +1 -1
  248. package/dist/esm/utils/report.js +20 -23
  249. package/dist/esm/utils/schema.d.ts.map +1 -1
  250. package/dist/esm/utils/schema.js +21 -21
  251. package/dist/esm/utils/tableProcessing.d.ts +37 -10
  252. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  253. package/dist/esm/utils/tableProcessing.js +47 -39
  254. package/dist/esm/utils/tenants.d.ts +11 -0
  255. package/dist/esm/utils/tenants.d.ts.map +1 -0
  256. package/dist/esm/utils/tenants.js +9 -0
  257. package/dist/esm/utils/textProcessing.d.ts +1 -0
  258. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  259. package/dist/esm/utils/textProcessing.js +48 -0
  260. package/dist/esm/utils/validation.js +1 -1
  261. package/package.json +1 -1
@@ -15,6 +15,11 @@ export const useDashboard = (dashboardName, customFilters) => {
15
15
  dashboardConfig[dashboardName]?.loading ||
16
16
  (dashboardConfig[dashboardName] &&
17
17
  !dashboardConfig[dashboardName]?.config.sections), [isClientLoading, dashboardConfig, dashboardName]);
18
+ const populatedDashboardFilters = useMemo(() => {
19
+ return dashboardName && dashboardFilters[dashboardName] !== undefined
20
+ ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
21
+ : null;
22
+ }, [dashboardFilters, dashboardName]);
18
23
  const handleReload = async (overrideDashboardName, fetchFromServer = false, reportAction, overrideFilters) => {
19
24
  if (!dashboardName)
20
25
  return;
@@ -65,9 +70,7 @@ export const useDashboard = (dashboardName, customFilters) => {
65
70
  data: loading || !dashboardName
66
71
  ? null
67
72
  : (dashboardConfig[dashboardName]?.config ?? null),
68
- dashboardFilters: dashboardName && dashboardFilters[dashboardName] !== undefined
69
- ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
70
- : null,
73
+ dashboardFilters: populatedDashboardFilters,
71
74
  isLoading: loading,
72
75
  isDashboardFilterLoading,
73
76
  reload: handleReload,
@@ -84,17 +87,23 @@ export const useDashboards = () => {
84
87
  name: dashboard.config.name,
85
88
  id: dashboard.config.dashboardId,
86
89
  reports: Object.values(dashboard.config.sections ?? {}).flat(),
90
+ tenantKeys: dashboard.config.tenantKeys,
91
+ createdAt: dashboard.config.createdAt,
87
92
  };
88
93
  });
89
94
  }, [dashboardConfig]);
90
- const createDashboard = async ({ name, filters, dateFilter, }) => {
95
+ const createDashboard = async ({ name, filters, dateFilter, tenantKeys, }) => {
91
96
  if (!client)
92
97
  return;
98
+ if (tenantKeys?.some((key) => !key)) {
99
+ throw new Error('Tenant keys cannot be empty or undefined');
100
+ }
93
101
  dashboardConfigDispatch({
94
102
  type: 'UPDATE_DASHBOARD',
95
103
  id: name,
96
104
  data: {
97
105
  config: {
106
+ tenantKeys,
98
107
  dashboardId: name,
99
108
  name,
100
109
  filters,
@@ -110,6 +119,7 @@ export const useDashboards = () => {
110
119
  name: name.trim(),
111
120
  task: 'edit-dashboard',
112
121
  clientId: client.clientId,
122
+ tenantKeys,
113
123
  };
114
124
  try {
115
125
  const response = await fetch(client.queryEndpoint, {
@@ -119,21 +129,28 @@ export const useDashboards = () => {
119
129
  'Content-Type': 'application/json',
120
130
  },
121
131
  body: JSON.stringify({ metadata: body }),
132
+ credentials: client.withCredentials ? 'include' : 'omit',
122
133
  });
123
134
  const updated = await response.json();
124
135
  dashboardConfigDispatch({
125
136
  type: 'UPDATE_DASHBOARD',
126
137
  id: name,
127
- data: { config: updated.data.dashboard, loading: false },
138
+ data: { config: {
139
+ ...updated.data.dashboard,
140
+ createdAt: new Date(updated.data.dashboard.createdAt)
141
+ }, loading: false },
128
142
  });
129
143
  }
130
144
  catch (e) {
131
145
  console.error(e);
132
146
  }
133
147
  };
134
- const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, }) => {
148
+ const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, }) => {
135
149
  if (!client)
136
150
  return;
151
+ if (tenantKeys?.some((key) => !key)) {
152
+ throw new Error('Tenant keys cannot be empty or undefined');
153
+ }
137
154
  const dashboard = dashboardConfig[name]?.config;
138
155
  dashboardConfigDispatch({
139
156
  type: 'DELETE_DASHBOARD',
@@ -146,10 +163,11 @@ export const useDashboards = () => {
146
163
  const body = {
147
164
  newDashboardName: newName.trim(),
148
165
  filters,
149
- dateFilter,
166
+ dateFilter: dateFilter ?? null,
150
167
  name: name.trim(),
151
168
  task: 'edit-dashboard',
152
169
  clientId: client.clientId,
170
+ tenantKeys,
153
171
  };
154
172
  try {
155
173
  const response = await fetch(client.queryEndpoint, {
@@ -159,14 +177,19 @@ export const useDashboards = () => {
159
177
  'Content-Type': 'application/json',
160
178
  },
161
179
  body: JSON.stringify({ metadata: body }),
180
+ credentials: client.withCredentials ? 'include' : 'omit',
162
181
  });
163
182
  const updated = await response.json();
164
183
  dashboardConfigDispatch({
165
- type: 'ADD_DASHBOARD',
184
+ type: 'UPDATE_DASHBOARD',
166
185
  id: updated.data.dashboard.name,
167
186
  data: {
168
- ...dashboard,
169
- ...updated.data.dashboard,
187
+ config: {
188
+ ...dashboard,
189
+ ...updated.data.dashboard,
190
+ createdAt: new Date(updated.data.dashboard.createdAt),
191
+ },
192
+ loading: false,
170
193
  },
171
194
  });
172
195
  // For each report in the updated.dashboard.sections, set the filterMap
@@ -233,6 +256,7 @@ export const useDashboards = () => {
233
256
  name,
234
257
  },
235
258
  }),
259
+ credentials: client.withCredentials ? 'include' : 'omit',
236
260
  });
237
261
  dashboardConfigDispatch({
238
262
  type: 'DELETE_DASHBOARD',
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA8D/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;CAgPF,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;CAqPF,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { downloadCSV } from '../utils/csv';
3
3
  import { useContext, useMemo, useState } from 'react';
4
4
  import { getData } from '../utils/dataFetcher';
5
- import { ClientContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, } from '../Context';
5
+ import { ClientContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, TenantContext, } from '../Context';
6
6
  import { cleanDashboardItem } from '../utils/dashboard';
7
7
  import { defaultQuillTheme } from '../QuillProvider';
8
8
  import { createRoot } from 'react-dom/client';
@@ -12,7 +12,7 @@ import { fetchReport } from '../utils/report';
12
12
  import jsPDF from 'jspdf';
13
13
  import { quillFormat } from '../utils/valueFormatter';
14
14
  import { mergeComparisonRange } from '../utils/merge';
15
- async function getExportData(client, dashboardFilters, reportId) {
15
+ async function getExportData(client, dashboardFilters, reportId, tenants, flags) {
16
16
  const minimalFilters = Object.values(dashboardFilters).length
17
17
  ? Object.values(dashboardFilters).map((filter) => {
18
18
  const newFilter = { ...filter };
@@ -27,12 +27,13 @@ async function getExportData(client, dashboardFilters, reportId) {
27
27
  const hostedBody = {
28
28
  metadata: {
29
29
  dashboardItemId: reportId,
30
- orgId: client.organizationId || '*',
31
30
  clientId: client.publicKey,
32
31
  task: 'item',
33
32
  databaseType: client?.databaseType,
34
33
  filters: minimalFilters,
35
34
  useNewNodeSql: true,
35
+ tenants,
36
+ flags,
36
37
  },
37
38
  };
38
39
  const cloudBody = {
@@ -52,6 +53,7 @@ sectionField, } = {}) => {
52
53
  const { dashboardFilters } = useContext(DashboardFiltersContext);
53
54
  const [dashboard] = useContext(DashboardContext);
54
55
  const { reportFilters } = useContext(ReportFiltersContext);
56
+ const { tenants, flags } = useContext(TenantContext);
55
57
  const specificDashboardFilters = useMemo(() => {
56
58
  if (!reportId) {
57
59
  return [];
@@ -89,7 +91,7 @@ sectionField, } = {}) => {
89
91
  setIsCSVLoading(true);
90
92
  const resp = await getExportData(client, specificReportFilters.length > 0
91
93
  ? specificReportFilters
92
- : specificDashboardFilters, reportId);
94
+ : specificDashboardFilters, reportId, tenants, flags);
93
95
  downloadCSV({
94
96
  rows: resp.pivot && resp.pivotRows ? resp.pivotRows : resp.rows,
95
97
  fields: resp.pivot && resp.pivotColumns ? resp.pivotColumns : resp.columns,
@@ -102,7 +104,7 @@ sectionField, } = {}) => {
102
104
  const filters = specificReportFilters.length > 0
103
105
  ? specificReportFilters
104
106
  : specificDashboardFilters;
105
- const { report: fetchedReport } = await fetchReport(reportId, client, true, filters);
107
+ const { report: fetchedReport } = await fetchReport(reportId, client, tenants, flags, true, filters);
106
108
  const report = fetchedReport;
107
109
  if (report.pivot && report.pivotRows && report.pivotColumns) {
108
110
  report.rows = report.pivotRows;
@@ -29,5 +29,6 @@ export type { TableComponentProps } from './components/QuillTable';
29
29
  export type { DateRangePickerComponentProps, DateRangePickerOption, DateRange, } from './DateRangePicker/QuillDateRangePicker';
30
30
  export type { DashboardSectionComponentProps } from './components/Dashboard/DashboardSection';
31
31
  export { Calculation } from './utils/dataProcessing';
32
- export { StringOperator, NullOperator, DateOperator, NumberOperator, FilterType, } from './models/Filter';
32
+ export { StringOperator, NullOperator, DateOperator, NumberOperator, FilterType, type InternalFilter, type DashboardDateFilter, } from './models/Filter';
33
+ export { ALL_TENANTS, SINGLE_TENANT } from './utils/constants';
33
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -18,3 +18,4 @@ export { downloadCSV } from './utils/csv';
18
18
  export { ThemeContext } from './Context';
19
19
  export { Calculation } from './utils/dataProcessing';
20
20
  export { StringOperator, NullOperator, DateOperator, NumberOperator, FilterType, } from './models/Filter';
21
+ export { ALL_TENANTS, SINGLE_TENANT } from './utils/constants';
@@ -81,8 +81,9 @@ export interface PivotModalProps {
81
81
  disabled?: boolean;
82
82
  pivotRecommendationsEnabled?: boolean;
83
83
  report?: QuillReportInternal;
84
+ dashboardName?: string;
84
85
  }
85
- export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent, PivotRowContainer, PivotColumnContainer, LoadingComponent, CardComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, showTrigger, pivotCountRequest, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled, pivotRecommendationsEnabled, report, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
86
+ export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent, PivotRowContainer, PivotColumnContainer, LoadingComponent, CardComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, showTrigger, pivotCountRequest, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled, pivotRecommendationsEnabled, report, dashboardName, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
86
87
  export declare function generatePivotTableYAxis(pivot: Pivot, cols: {
87
88
  label: string;
88
89
  field: string;
@@ -112,13 +113,18 @@ export declare function getDateString(value: string, dateRange?: {
112
113
  end: Date;
113
114
  }, dateBucket?: string): string;
114
115
  export declare function isDateField(fieldType: string): fieldType is "date" | "MMM_dd" | "MMM_yyyy" | "MMM_dd_yyyy" | "hh_ap_pm" | "MMM_dd_hh:mm_ap_pm" | "datetime" | "timestamp" | "timestamptz";
115
- export declare function generatePivotTable({ pivot, rowLimit, dateBucket, report, client, uniqueValues, }: {
116
+ export declare function generatePivotTable({ pivot, rowLimit, dateBucket, report, client, uniqueValues, dashboardName, tenants, }: {
116
117
  pivot: Pivot;
117
118
  rowLimit?: number;
118
119
  dateBucket?: string;
119
120
  report?: any;
120
121
  client: QuillProviderClient | null;
121
122
  uniqueValues?: any;
123
+ dashboardName?: string;
124
+ tenants?: {
125
+ tenantField: string;
126
+ tenantIds: (string | number)[];
127
+ }[] | (string | number)[];
122
128
  }): Promise<{
123
129
  rows: any[];
124
130
  columns: ColumnInternal[];
@@ -1 +1 @@
1
- {"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AAuBf,OAAO,EACL,oBAAoB,EAKrB,MAAM,+BAA+B,CAAC;AAcvC,OAAO,EAAU,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,UAAU,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,wBAAwB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACvE,gBAAgB,EAAE,CAAC,KAAK,EAAE;QACxB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,eAAe,EAAE,SAAS,CAAC;QAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;KACtC,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1D,aAAa,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACzE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACpE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACvE,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,iBAAiB,EAAE,GAAG,CAAC;IACvB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,eAAO,MAAM,UAAU,+4BAsDpB,eAAe,4CAglCjB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,EAAE,EACH,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE;;;YAQ7B,UAAU;IAa9C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAiBvD;AA8BD,wBAAgB,YAAY,CAC1B,SAAS,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,EACjD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GACR;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CA8D5B;AAoCD,wBAAgB,cAAc,CAC5B,SAAS,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,EACjD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,UAAU,CAAC,EAAE,MAAM,UAgBpB;AA+BD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,EACtC,UAAU,CAAC,EAAE,MAAM,UAgDpB;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,8IAY5C;AAgCD,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAa,EACb,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,GACb,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;;;GAuBA;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,GAAG,EAAE,EACX,SAAS,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,EACjD,YAAY,EAAE,OAAO,EACrB,QAAQ,SAAK,EACb,SAAS,GAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAqB,EAC7D,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG;;;;;;EA8enB"}
1
+ {"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
@@ -1,30 +1,32 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useContext, useMemo, useState, useEffect, useRef, } from 'react';
3
- import { ClientContext, SchemaDataContext } from '../../Context';
4
- import { getDataFromCloud } from '../../utils/dataFetcher';
3
+ import { ClientContext, SchemaDataContext, TenantContext } from '../../Context';
5
4
  import { PivotList, PivotCard } from './PivotList';
6
5
  import { differenceInDays, eachDayOfInterval, eachMonthOfInterval, eachWeekOfInterval, eachYearOfInterval, endOfDay, isValid, isWithinInterval, parseISO, subMilliseconds, } from 'date-fns';
7
6
  import { compareValues, getValidDate, valueFormatter, } from '../../utils/valueFormatter';
8
7
  import { numberFormatOptions } from '../../ChartBuilder';
9
8
  import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
10
9
  import { QuillErrorMessageComponent, QuillLoadingComponent, QuillPivotColumnContainer, QuillPivotRowContainer, } from '../../components/UiComponents';
11
- import { isTextColumnType } from '../../components/ReportBuilder/ast';
12
10
  import { QuillCard } from '../../components/QuillCard';
13
11
  import { cleanPivot, getPossiblePivotFieldOptions, isValidPivot, } from '../../utils/pivotProcessing';
14
12
  import { hashCode } from '../../utils/crypto';
15
13
  import { getCountsByColumns, getQueryDateRangeByColumns, getUniqueValuesByColumns, } from '../../utils/tableProcessing';
16
14
  import { generatePivotWithSQL } from '../../utils/pivotConstructor';
17
15
  import { getDateBucketFromRange } from '../../utils/dates';
18
- import Big from 'big.js';
16
+ // import Big from 'big.js';
19
17
  import equal from 'fast-deep-equal';
20
18
  import { uniqueValuesToStringMap } from '../../utils/filterProcessing';
21
- export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, showTrigger = true, pivotCountRequest = 6, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, report, }) => {
19
+ import { isStringType } from '../../utils/columnProcessing';
20
+ import { useQuillCloud } from '../../utils/dataFetcher';
21
+ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, showTrigger = true, pivotCountRequest = 6, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, report, dashboardName, }) => {
22
22
  const [isLoading, setIsLoading] = useState(false);
23
23
  const [previewLoading, setPreviewLoading] = useState(false);
24
24
  const [selectedPivotType, setSelectedPivotType] = useState('recommended');
25
25
  const [errors, setErrors] = useState([]);
26
26
  const [client] = useContext(ClientContext);
27
27
  const [schemaData] = useContext(SchemaDataContext);
28
+ const { tenants } = useContext(TenantContext);
29
+ const { getDataFromCloud } = useQuillCloud();
28
30
  const rowFieldRef = useRef(null);
29
31
  const colFieldRef = useRef(null);
30
32
  const [pivotCardWidth, setPivotCardWidth] = useState(420);
@@ -47,7 +49,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
47
49
  }
48
50
  if (columns && query) {
49
51
  const stringColumns = columns.filter((column) => {
50
- return isTextColumnType(column.fieldType);
52
+ return isStringType(column.fieldType);
51
53
  });
52
54
  if (stringColumns.length === 0) {
53
55
  const possibleColumns = getPossiblePivotFieldOptions(columns, {});
@@ -58,8 +60,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
58
60
  }
59
61
  let newUniqueValues = uniqueValues;
60
62
  if (fetchDistinct || !uniqueValues) {
61
- const { filteredColumns: smallStringColumns } = await getCountsByColumns(stringColumns, query || '', client, schemaData.customFields ?? []);
62
- newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, query || '', data.rows || [], client, schemaData.customFields ?? []);
63
+ const { filteredColumns: smallStringColumns } = await getCountsByColumns(stringColumns, query || '', client, tenants, schemaData.customFields ?? [], dashboardName);
64
+ newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, query || '', data.rows || [], client, tenants, schemaData.customFields ?? [], undefined, dashboardName);
63
65
  }
64
66
  if (!uniqueValues ||
65
67
  hashCode(uniqueValues) !== hashCode(newUniqueValues)) {
@@ -85,7 +87,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
85
87
  if (dateColumns.length === 0) {
86
88
  return;
87
89
  }
88
- const dateRangeByColumn = await getQueryDateRangeByColumns(dateColumns, query || '', client, schemaData.customFields ?? []);
90
+ const dateRangeByColumn = await getQueryDateRangeByColumns(dateColumns, query || '', client, tenants, schemaData.customFields ?? [], dashboardName);
89
91
  setDateRanges(dateRangeByColumn || {});
90
92
  }
91
93
  };
@@ -131,6 +133,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
131
133
  report,
132
134
  client,
133
135
  uniqueValues,
136
+ dashboardName,
137
+ tenants,
134
138
  });
135
139
  setSamplePivotTable({ pivot: pivot, rows, columns });
136
140
  }
@@ -175,6 +179,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
175
179
  report,
176
180
  client,
177
181
  uniqueValues,
182
+ dashboardName,
183
+ tenants,
178
184
  });
179
185
  setSamplePivotTable({ pivot: pivot, rows, columns });
180
186
  }
@@ -233,6 +239,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
233
239
  report,
234
240
  client,
235
241
  uniqueValues,
242
+ dashboardName,
243
+ tenants,
236
244
  });
237
245
  setSelectedPivotTable({
238
246
  pivot: pivot,
@@ -284,6 +292,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
284
292
  };
285
293
  const onEditPivot = async (pivot, index, pivotType) => {
286
294
  setIsLoading(false);
295
+ setErrors([]);
287
296
  setPivotRowField(pivot.rowField);
288
297
  setPivotColumnField(pivot.columnField);
289
298
  setPivotValueField(pivot.valueField);
@@ -296,7 +305,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
296
305
  setSamplePivotTable(recommendedPivotTables[index]);
297
306
  return;
298
307
  }
299
- if (isValidPivot(pivot)) {
308
+ if (isValidPivot(pivot).valid) {
300
309
  let dateBucket = undefined;
301
310
  if (pivotRowField && dateRanges[pivotRowField]) {
302
311
  dateBucket = getDateBucketFromRange(dateRanges[pivotRowField].dateRange);
@@ -308,6 +317,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
308
317
  report,
309
318
  client,
310
319
  uniqueValues,
320
+ dashboardName,
321
+ tenants,
311
322
  });
312
323
  setSamplePivotTable({ pivot, rows, columns });
313
324
  return;
@@ -375,7 +386,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
375
386
  const resp = await getDataFromCloud(client, 'pivotai', cloudBody);
376
387
  const recommendedPivots = resp?.data?.pivotTables.map((pivot) => cleanPivot(pivot, possibleColumns)) || [];
377
388
  const cleanedPivots = recommendedPivots
378
- .filter((pivot) => isValidPivot(pivot) &&
389
+ .filter((pivot) => isValidPivot(pivot).valid &&
379
390
  (!pivot.columnField || pivot.columnField !== pivot.rowField)) // only recommend valid pivots
380
391
  .map((pivot) => {
381
392
  if (pivot.columnField &&
@@ -414,6 +425,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
414
425
  report,
415
426
  client,
416
427
  uniqueValues: trimmedUniqueValues,
428
+ dashboardName,
429
+ tenants,
417
430
  });
418
431
  return { pivot: p, rows, columns };
419
432
  }
@@ -421,7 +434,11 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
421
434
  return undefined;
422
435
  }
423
436
  }));
424
- setRecommendedPivotTables(pts.filter((pt) => pt !== undefined));
437
+ const validPivotTables = pts.filter((pt) => pt !== undefined);
438
+ setRecommendedPivotTables(validPivotTables);
439
+ if (validPivotTables.length === 0) {
440
+ sethasNoRecommendedPivots(true);
441
+ }
425
442
  setSelectedPivotIndex(-1);
426
443
  }
427
444
  catch (e) {
@@ -461,7 +478,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
461
478
  else if (field === 'columnField') {
462
479
  pivot.columnFieldType = columnsToShow[value];
463
480
  }
464
- if (!isValidPivot(pivot)) {
481
+ if (!isValidPivot(pivot).valid) {
465
482
  setSamplePivotTable(null);
466
483
  return;
467
484
  }
@@ -479,6 +496,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
479
496
  report,
480
497
  client,
481
498
  uniqueValues,
499
+ dashboardName,
500
+ tenants,
482
501
  });
483
502
  setSamplePivotTable({ pivot, rows, columns });
484
503
  }
@@ -506,6 +525,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
506
525
  report,
507
526
  client,
508
527
  uniqueValues,
528
+ dashboardName,
529
+ tenants,
509
530
  });
510
531
  return { pivot: p, rows, columns };
511
532
  }
@@ -682,7 +703,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
682
703
  valueField2: pivotValueField2 || '',
683
704
  aggregationType: pivotAggregation || '',
684
705
  };
685
- if (isValidPivot(pivot)) {
706
+ if (isValidPivot(pivot).valid) {
686
707
  pivot.title = generatePivotTitle(pivot);
687
708
  setIsOpen(false);
688
709
  setCreatedPivots([pivot]);
@@ -690,7 +711,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
690
711
  setPopUpTitle('Add pivot');
691
712
  }
692
713
  else {
693
- errors.push('Invalid pivot');
714
+ errors.push(isValidPivot(pivot).reason);
694
715
  }
695
716
  }
696
717
  setErrors(errors);
@@ -1006,15 +1027,15 @@ const fixBigQueryData = (data = []) => {
1006
1027
  }
1007
1028
  return newData;
1008
1029
  };
1009
- export async function generatePivotTable({ pivot, rowLimit = -1, dateBucket, report, client, uniqueValues, }) {
1030
+ export async function generatePivotTable({ pivot, rowLimit = -1, dateBucket, report, client, uniqueValues, dashboardName, tenants, }) {
1010
1031
  try {
1011
1032
  if (report && client) {
1012
1033
  const dateFilter = report
1013
1034
  ? report.filtersApplied.find((f) => f.filterType === 'date_range')
1014
1035
  : undefined;
1015
- const pivotTable = await generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, pivot.columnField && uniqueValues
1036
+ const pivotTable = await generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, pivot.columnField && uniqueValues && uniqueValues[pivot.columnField]
1016
1037
  ? Object.keys(uniqueValues[pivot.columnField])
1017
- : undefined, rowLimit === -1 ? undefined : rowLimit);
1038
+ : undefined, rowLimit === -1 ? undefined : rowLimit, dashboardName, tenants);
1018
1039
  return pivotTable;
1019
1040
  }
1020
1041
  }
@@ -1384,13 +1405,17 @@ function valueFieldAggregation(data, valueField, aggregationType, isComparison)
1384
1405
  let count = 0;
1385
1406
  switch (aggregationType) {
1386
1407
  case 'sum':
1387
- value = data.reduce((sum, item) => Big(sum)
1388
- .add(Big(parseFloat(item[valueField] ?? 0)))
1389
- .toNumber(), 0);
1408
+ value = data.reduce((sum, item) =>
1409
+ // Big(sum)
1410
+ // .add(Big(parseFloat(item[valueField] ?? '0')))
1411
+ // .toNumber(),
1412
+ sum + parseFloat(item[valueField] ?? '0'), 0);
1390
1413
  if (isComparison) {
1391
- comparisonValue = data.reduce((sum, item) => Big(sum)
1392
- .add(Big(parseFloat(item[`comparison_${valueField}`] ?? 0)))
1393
- .toNumber(), 0);
1414
+ comparisonValue = data.reduce((sum, item) =>
1415
+ // Big(sum)
1416
+ // .add(Big(parseFloat(item[`comparison_${valueField}`] ?? '0')))
1417
+ // .toNumber(),
1418
+ sum + parseFloat(item[`comparison_${valueField}`] ?? '0'), 0);
1394
1419
  }
1395
1420
  break;
1396
1421
  case 'count':
@@ -1403,15 +1428,19 @@ function valueFieldAggregation(data, valueField, aggregationType, isComparison)
1403
1428
  case 'average':
1404
1429
  count = data.reduce((count, item) => count + (item[valueField] ? 1 : 0), 0);
1405
1430
  value =
1406
- data.reduce((sum, item) => Big(sum)
1407
- .add(Big(parseFloat(item[valueField] ?? 0)))
1408
- .toNumber(), 0) / (count === 0 ? 1 : count);
1431
+ data.reduce((sum, item) =>
1432
+ // Big(sum)
1433
+ // .add(Big(parseFloat(item[valueField] ?? '0')))
1434
+ // .toNumber(),
1435
+ sum + parseFloat(item[valueField] ?? '0'), 0) / (count === 0 ? 1 : count);
1409
1436
  if (isComparison) {
1410
1437
  const comparisonCount = data.reduce((count, item) => count + (item[`comparison_${valueField}`] ? 1 : 0), 0);
1411
1438
  comparisonValue =
1412
- data.reduce((sum, item) => Big(sum)
1413
- .add(Big(parseFloat(item[`comparison_${valueField}`] ?? 0)))
1414
- .toNumber(), 0) / (comparisonCount === 0 ? 1 : comparisonCount);
1439
+ data.reduce((sum, item) =>
1440
+ // Big(sum)
1441
+ // .add(Big(parseFloat(item[`comparison_${valueField}`] ?? '0')))
1442
+ // .toNumber(),
1443
+ sum + parseFloat(item[`comparison_${valueField}`] ?? '0'), 0) / (comparisonCount === 0 ? 1 : comparisonCount);
1415
1444
  }
1416
1445
  break;
1417
1446
  case 'max':
@@ -2,7 +2,6 @@ export type Client = {
2
2
  name: string;
3
3
  _id: string;
4
4
  databaseType?: string;
5
- multiTenancyDisabled?: boolean;
6
5
  adminCustomerId?: string;
7
6
  recommendedPivotsDisabled?: boolean;
8
7
  featureFlags?: {
@@ -11,7 +10,6 @@ export type Client = {
11
10
  domainName: string;
12
11
  };
13
12
  export type QuillProviderClient = {
14
- organizationId?: string;
15
13
  name: string;
16
14
  clientId: string;
17
15
  publicKey: string;
@@ -19,12 +17,33 @@ export type QuillProviderClient = {
19
17
  queryHeaders?: HeadersInit;
20
18
  withCredentials: boolean;
21
19
  databaseType?: string;
22
- multiTenancyDisabled?: boolean;
23
20
  adminCustomerId?: string;
24
21
  recommendedPivotsDisabled?: boolean;
25
22
  featureFlags?: {
26
23
  [key: string]: boolean;
27
24
  };
28
25
  domainName: string;
26
+ allTenantTypes?: (QuillTenant | QuillDatabaseTenant)[];
27
+ };
28
+ export type QuillTenant = {
29
+ name: string;
30
+ tenantField: string;
31
+ query: string;
32
+ mappings: {
33
+ [key: string]: {
34
+ query: string;
35
+ };
36
+ };
37
+ tenantIds?: {
38
+ id: string;
39
+ flag?: string;
40
+ label?: string;
41
+ }[];
42
+ scope: 'row' | 'schema' | 'database';
43
+ };
44
+ export type QuillDatabaseTenant = {
45
+ scope: 'database';
46
+ flags: string[];
47
+ tenantField: 'QUILL_SINGLE_TENANT';
29
48
  };
30
49
  //# sourceMappingURL=Client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,WAAW,GAAG,mBAAmB,CAAC,EAAE,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/C,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,qBAAqB,CAAC;CACpC,CAAC"}
@@ -10,6 +10,8 @@ export type DashboardConfig = {
10
10
  [key: string]: QuillReport[];
11
11
  };
12
12
  newQueries?: QuillReport[];
13
+ tenantKeys?: string[];
14
+ createdAt: Date;
13
15
  };
14
16
  export type Dashboard = {
15
17
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/models/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/models/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC"}
@@ -114,6 +114,10 @@ export interface QuillReportInternal extends QuillReport {
114
114
  columnInternal: ColumnInternal[];
115
115
  /** Represents if the report is currently loading rows */
116
116
  loadingRows?: boolean;
117
+ /** Flags on this report */
118
+ flags?: {
119
+ [tenantField: string]: string[];
120
+ };
117
121
  }
118
122
  export declare const TEMP_REPORT_ID = "__quillTempReport";
119
123
  //# sourceMappingURL=Report.d.ts.map