@quillsql/react 2.13.35 → 2.13.37

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 (196) hide show
  1. package/dist/cjs/Chart.d.ts +0 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +17 -14
  4. package/dist/cjs/ChartBuilder.d.ts +1 -0
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +178 -96
  7. package/dist/cjs/Context.d.ts.map +1 -1
  8. package/dist/cjs/Context.js +6 -8
  9. package/dist/cjs/Dashboard.d.ts +2 -1
  10. package/dist/cjs/Dashboard.d.ts.map +1 -1
  11. package/dist/cjs/Dashboard.js +18 -8
  12. package/dist/cjs/ReportBuilder.d.ts +2 -0
  13. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  14. package/dist/cjs/ReportBuilder.js +398 -271
  15. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  16. package/dist/cjs/SQLEditor.js +33 -11
  17. package/dist/cjs/Table.d.ts.map +1 -1
  18. package/dist/cjs/Table.js +17 -1
  19. package/dist/cjs/components/Chart/InternalChart.d.ts +0 -1
  20. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  21. package/dist/cjs/components/Chart/InternalChart.js +6 -7
  22. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  23. package/dist/cjs/components/Dashboard/DataLoader.js +75 -30
  24. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +1 -1
  25. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  26. package/dist/cjs/components/Dashboard/MetricComponent.js +98 -106
  27. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  28. package/dist/cjs/components/QuillMultiSelectSectionList.js +21 -16
  29. package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -8
  30. package/dist/cjs/components/QuillSelectWithCombo.js +17 -7
  31. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  32. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  33. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  34. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  35. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  36. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +9 -18
  37. package/dist/cjs/components/UiComponents.d.ts +2 -1
  38. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  39. package/dist/cjs/components/UiComponents.js +44 -28
  40. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  41. package/dist/cjs/hooks/useAskQuill.js +28 -4
  42. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  43. package/dist/cjs/hooks/useQuill.js +9 -1
  44. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  45. package/dist/cjs/hooks/useVirtualTables.js +11 -35
  46. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  47. package/dist/cjs/internals/ReportBuilder/PivotForm.js +14 -2
  48. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +12 -11
  49. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  50. package/dist/cjs/internals/ReportBuilder/PivotModal.js +63 -18
  51. package/dist/cjs/models/Client.d.ts +4 -5
  52. package/dist/cjs/models/Client.d.ts.map +1 -1
  53. package/dist/cjs/models/Pivot.d.ts +10 -0
  54. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  55. package/dist/cjs/models/Report.d.ts +13 -1
  56. package/dist/cjs/models/Report.d.ts.map +1 -1
  57. package/dist/cjs/utils/astFilterProcessing.d.ts +1 -1
  58. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  59. package/dist/cjs/utils/astFilterProcessing.js +799 -64
  60. package/dist/cjs/utils/astProcessing.d.ts +4 -1
  61. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  62. package/dist/cjs/utils/astProcessing.js +2 -2
  63. package/dist/cjs/utils/client.d.ts.map +1 -1
  64. package/dist/cjs/utils/client.js +6 -3
  65. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  66. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  67. package/dist/cjs/utils/columnProcessing.js +1 -0
  68. package/dist/cjs/utils/dashboard.d.ts +2 -1
  69. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  70. package/dist/cjs/utils/dashboard.js +38 -10
  71. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  72. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  73. package/dist/cjs/utils/merge.d.ts +16 -0
  74. package/dist/cjs/utils/merge.d.ts.map +1 -1
  75. package/dist/cjs/utils/merge.js +210 -0
  76. package/dist/cjs/utils/paginationProcessing.d.ts +1 -1
  77. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -1
  78. package/dist/cjs/utils/paginationProcessing.js +3 -2
  79. package/dist/cjs/utils/pivotConstructor.d.ts +19 -9
  80. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  81. package/dist/cjs/utils/pivotConstructor.js +90 -34
  82. package/dist/cjs/utils/queryConstructor.d.ts +8 -1
  83. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  84. package/dist/cjs/utils/queryConstructor.js +276 -310
  85. package/dist/cjs/utils/report.d.ts +25 -12
  86. package/dist/cjs/utils/report.d.ts.map +1 -1
  87. package/dist/cjs/utils/report.js +13 -7
  88. package/dist/cjs/utils/schema.d.ts +1 -1
  89. package/dist/cjs/utils/schema.d.ts.map +1 -1
  90. package/dist/cjs/utils/schema.js +3 -32
  91. package/dist/cjs/utils/tableProcessing.d.ts +43 -13
  92. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  93. package/dist/cjs/utils/tableProcessing.js +140 -75
  94. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  95. package/dist/cjs/utils/textProcessing.js +10 -1
  96. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  97. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  98. package/dist/cjs/utils/valueFormatter.js +18 -14
  99. package/dist/esm/Chart.d.ts +0 -1
  100. package/dist/esm/Chart.d.ts.map +1 -1
  101. package/dist/esm/Chart.js +0 -6
  102. package/dist/esm/ChartBuilder.d.ts +1 -0
  103. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  104. package/dist/esm/ChartBuilder.js +179 -97
  105. package/dist/esm/Context.d.ts.map +1 -1
  106. package/dist/esm/Context.js +7 -9
  107. package/dist/esm/Dashboard.d.ts +2 -1
  108. package/dist/esm/Dashboard.d.ts.map +1 -1
  109. package/dist/esm/Dashboard.js +1 -1
  110. package/dist/esm/ReportBuilder.d.ts +2 -0
  111. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  112. package/dist/esm/ReportBuilder.js +399 -272
  113. package/dist/esm/SQLEditor.d.ts.map +1 -1
  114. package/dist/esm/SQLEditor.js +33 -11
  115. package/dist/esm/Table.d.ts.map +1 -1
  116. package/dist/esm/Table.js +17 -1
  117. package/dist/esm/components/Chart/InternalChart.d.ts +0 -1
  118. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  119. package/dist/esm/components/Chart/InternalChart.js +6 -6
  120. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  121. package/dist/esm/components/Dashboard/DataLoader.js +75 -30
  122. package/dist/esm/components/Dashboard/MetricComponent.d.ts +1 -1
  123. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  124. package/dist/esm/components/Dashboard/MetricComponent.js +98 -106
  125. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  126. package/dist/esm/components/QuillMultiSelectSectionList.js +5 -12
  127. package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
  128. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  129. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  130. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  131. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  132. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  133. package/dist/esm/components/ReportBuilder/AddSortPopover.js +9 -18
  134. package/dist/esm/components/UiComponents.d.ts +2 -1
  135. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  136. package/dist/esm/components/UiComponents.js +27 -21
  137. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  138. package/dist/esm/hooks/useAskQuill.js +28 -4
  139. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  140. package/dist/esm/hooks/useQuill.js +10 -2
  141. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  142. package/dist/esm/hooks/useVirtualTables.js +12 -36
  143. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  144. package/dist/esm/internals/ReportBuilder/PivotForm.js +14 -2
  145. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +12 -11
  146. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  147. package/dist/esm/internals/ReportBuilder/PivotModal.js +63 -18
  148. package/dist/esm/models/Client.d.ts +4 -5
  149. package/dist/esm/models/Client.d.ts.map +1 -1
  150. package/dist/esm/models/Pivot.d.ts +10 -0
  151. package/dist/esm/models/Pivot.d.ts.map +1 -1
  152. package/dist/esm/models/Report.d.ts +13 -1
  153. package/dist/esm/models/Report.d.ts.map +1 -1
  154. package/dist/esm/utils/astFilterProcessing.d.ts +1 -1
  155. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  156. package/dist/esm/utils/astFilterProcessing.js +799 -64
  157. package/dist/esm/utils/astProcessing.d.ts +4 -1
  158. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  159. package/dist/esm/utils/astProcessing.js +2 -2
  160. package/dist/esm/utils/client.d.ts.map +1 -1
  161. package/dist/esm/utils/client.js +6 -3
  162. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  163. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  164. package/dist/esm/utils/columnProcessing.js +1 -1
  165. package/dist/esm/utils/dashboard.d.ts +2 -1
  166. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  167. package/dist/esm/utils/dashboard.js +39 -11
  168. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  169. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  170. package/dist/esm/utils/merge.d.ts +16 -0
  171. package/dist/esm/utils/merge.d.ts.map +1 -1
  172. package/dist/esm/utils/merge.js +207 -0
  173. package/dist/esm/utils/paginationProcessing.d.ts +1 -1
  174. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -1
  175. package/dist/esm/utils/paginationProcessing.js +3 -2
  176. package/dist/esm/utils/pivotConstructor.d.ts +19 -9
  177. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  178. package/dist/esm/utils/pivotConstructor.js +91 -35
  179. package/dist/esm/utils/queryConstructor.d.ts +8 -1
  180. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  181. package/dist/esm/utils/queryConstructor.js +274 -314
  182. package/dist/esm/utils/report.d.ts +25 -12
  183. package/dist/esm/utils/report.d.ts.map +1 -1
  184. package/dist/esm/utils/report.js +13 -7
  185. package/dist/esm/utils/schema.d.ts +1 -1
  186. package/dist/esm/utils/schema.d.ts.map +1 -1
  187. package/dist/esm/utils/schema.js +1 -30
  188. package/dist/esm/utils/tableProcessing.d.ts +43 -13
  189. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  190. package/dist/esm/utils/tableProcessing.js +140 -75
  191. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  192. package/dist/esm/utils/textProcessing.js +10 -1
  193. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  194. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  195. package/dist/esm/utils/valueFormatter.js +18 -14
  196. package/package.json +1 -1
@@ -54,7 +54,10 @@ export declare const createBasicSelectASTFromColumns: (columns: ColumnInternal[]
54
54
  orderby: null;
55
55
  limit: null;
56
56
  };
57
- export declare const fetchAndProcessASTFromPrompt: (aiPrompt: string, schema: Table[], client: QuillProviderClient, prevPivot?: Pivot, currentQuery?: string, prevTable?: string, dashboardName?: string) => Promise<{
57
+ export declare const fetchAndProcessASTFromPrompt: (aiPrompt: string, schema: Table[], client: QuillProviderClient, prevPivot?: Pivot, currentQuery?: string, prevTable?: string, dashboardName?: string, tenants?: {
58
+ tenantField: string;
59
+ tenantIds: (string | number)[];
60
+ }[] | (string | number)[]) => Promise<{
58
61
  ast: any;
59
62
  pivot: Pivot | null | undefined;
60
63
  whereAST: any;
@@ -1 +1 @@
1
- {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"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"}
@@ -344,7 +344,7 @@ const createBasicSelectASTFromColumns = (columns, tableName) => {
344
344
  };
345
345
  exports.createBasicSelectASTFromColumns = createBasicSelectASTFromColumns;
346
346
  //TODO: Move all fetches to a /sdk route
347
- const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot, currentQuery, prevTable, dashboardName) => {
347
+ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot, currentQuery, prevTable, dashboardName, tenants) => {
348
348
  let res, data, ast, newAst, pivot;
349
349
  let numRetries = 0;
350
350
  let whereAST;
@@ -409,7 +409,7 @@ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot,
409
409
  if (!tableInfo) {
410
410
  throw new Error('Table info not found');
411
411
  }
412
- const uniqueValues = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, processedName, client, undefined, undefined, undefined, undefined, dashboardName);
412
+ const uniqueValues = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, processedName, client, tenants, undefined, undefined, undefined, undefined, dashboardName);
413
413
  newAst = (0, convert_1.convertUnaryToBinary)(newAst);
414
414
  newAst = (0, util_1.removeNonSelectedTableReferences)(newAst, processedName, tableInfo.columns.map((col) => col.field), uniqueValues);
415
415
  if (pivot) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAgDtD;AAED,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,eAAe,EACf,MAAM,EACN,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,WAAW,GAAG;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;;;GAyCA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAK1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAoDtD;AAED,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,eAAe,EACf,MAAM,EACN,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,WAAW,GAAG;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;;;GAyCA"}
@@ -7,7 +7,6 @@ exports.EMPTY_CLIENT = {
7
7
  name: '',
8
8
  _id: '',
9
9
  databaseType: '',
10
- adminCustomerId: '',
11
10
  domainName: '',
12
11
  };
13
12
  async function fetchClient(publicKey, queryEndpoint, withCredentials = false, queryHeaders) {
@@ -31,7 +30,10 @@ async function fetchClient(publicKey, queryEndpoint, withCredentials = false, qu
31
30
  });
32
31
  const json = await response.json();
33
32
  result = json.data?.data?.client || json.data?.client;
34
- clientTenantIds = await Promise.all(result.allTenantTypes?.map(async (tenant) => {
33
+ if (!result) {
34
+ throw new Error('No client found');
35
+ }
36
+ clientTenantIds = await Promise.all(result?.allTenantTypes?.map(async (tenant) => {
35
37
  return await getClientTenantIds({
36
38
  queryEndpoint,
37
39
  queryHeaders,
@@ -43,10 +45,11 @@ async function fetchClient(publicKey, queryEndpoint, withCredentials = false, qu
43
45
  }
44
46
  catch (error) {
45
47
  console.error('ERROR:', error);
48
+ throw error;
46
49
  }
47
50
  return {
48
51
  ...result,
49
- allTenantTypes: result.allTenantTypes?.map((tenant) => ({
52
+ allTenantTypes: result?.allTenantTypes?.map((tenant) => ({
50
53
  ...tenant,
51
54
  tenantIds: clientTenantIds?.find((clientTenant) => clientTenant.id === tenant.id)
52
55
  ?.tenantIds || [],
@@ -13,6 +13,7 @@ interface ConvertPostgresColumnParamsWithField {
13
13
  type ConvertPostgresColumnParams = ConvertPostgresColumnParamsWithColumnInternal | ConvertPostgresColumnParamsWithField;
14
14
  export declare function convertPostgresColumn(field: ConvertPostgresColumnParams): ColumnInternal;
15
15
  export declare function convertColumnInfoToColumnInternal(columnInfo: ColumnInfo): ColumnInternal;
16
+ export declare function fieldTypeToDataTypeID(fieldType: string): number;
16
17
  export declare function convertFieldTypeToJSType(fieldType: string): string;
17
18
  export declare function convertFormatToJsType(column: Column): string;
18
19
  export declare function processColumnName(columnName: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"columnProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/columnProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,6CAA6C;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oCAAoC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,2BAA2B,GAC5B,6CAA6C,GAC7C,oCAAoC,CAAC;AAEzC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,2BAA2B,GACjC,cAAc,CAmJhB;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AAsED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwDlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASrD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAavD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,eAAO,MAAM,cAAc,WACjB,mBAAmB,oBACT,eAAe,EAAE,UAqDpC,CAAC"}
1
+ {"version":3,"file":"columnProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/columnProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,6CAA6C;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oCAAoC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,2BAA2B,GAC5B,6CAA6C,GAC7C,oCAAoC,CAAC;AAEzC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,2BAA2B,GACjC,cAAc,CAmJhB;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AA0BD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA0C/D;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwDlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASrD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAavD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,eAAO,MAAM,cAAc,WACjB,mBAAmB,oBACT,eAAe,EAAE,UAqDpC,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getYAxisFields = void 0;
4
4
  exports.convertPostgresColumn = convertPostgresColumn;
5
5
  exports.convertColumnInfoToColumnInternal = convertColumnInfoToColumnInternal;
6
+ exports.fieldTypeToDataTypeID = fieldTypeToDataTypeID;
6
7
  exports.convertFieldTypeToJSType = convertFieldTypeToJSType;
7
8
  exports.convertFormatToJsType = convertFormatToJsType;
8
9
  exports.processColumnName = processColumnName;
@@ -1,5 +1,6 @@
1
1
  import { QuillReportInternal } from '../models/Report';
2
2
  import { QuillProviderClient } from '../models/Client';
3
+ import { AdditionalProcessing } from './tableProcessing';
3
4
  /**
4
5
  * Returns a cleaned version of the dashboard item we store in state. We clean
5
6
  * the dashboard item so that we aren't exposing unnecessary details to the
@@ -9,7 +10,7 @@ import { QuillProviderClient } from '../models/Client';
9
10
  */
10
11
  export declare function cleanDashboardItem(item: {
11
12
  [key: string]: any;
12
- } | undefined, dashboardFilters: any, client: QuillProviderClient, dateBucket?: string): Promise<QuillReportInternal>;
13
+ } | undefined, dashboardFilters: any, client: QuillProviderClient, dateBucket?: string, additionalProcessing?: AdditionalProcessing): Promise<QuillReportInternal>;
13
14
  export declare function getDashboard(dashboardName: string, client: QuillProviderClient, tenants?: {
14
15
  tenantField: string;
15
16
  tenantIds: (string | number)[];
@@ -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;AAWvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAuBvD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAiE9B;AA4HD,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;AA2BzD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,mBAAmB,CAAC,CAyE9B;AAuID,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"}
@@ -7,6 +7,7 @@ const textProcessing_1 = require("./textProcessing");
7
7
  const dataFetcher_1 = require("./dataFetcher");
8
8
  const dates_1 = require("./dates");
9
9
  const pivotConstructor_1 = require("./pivotConstructor");
10
+ const columnProcessing_1 = require("./columnProcessing");
10
11
  const defaultDashboardItem = {
11
12
  id: '',
12
13
  name: '',
@@ -33,7 +34,7 @@ const defaultDashboardItem = {
33
34
  * interface to build amazing dashboards on top of.
34
35
  * @param item
35
36
  */
36
- async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
37
+ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, additionalProcessing) {
37
38
  if (!item)
38
39
  return defaultDashboardItem;
39
40
  if (!item.rows) {
@@ -49,7 +50,7 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
49
50
  let pivotTable;
50
51
  let pivotError;
51
52
  try {
52
- pivotTable = await getPivotTable(item, dashboardFilters, client, dateBucket, item.dashboardName);
53
+ pivotTable = await getPivotTable(item, dashboardFilters, client, dateBucket, additionalProcessing, item.dashboardName);
53
54
  }
54
55
  catch (e) {
55
56
  pivotTable = undefined;
@@ -74,7 +75,11 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
74
75
  columnInternal: processedColumns,
75
76
  chartType: item.chartType,
76
77
  dateField: item.dateField,
77
- pivot: pivotError ? undefined : item.pivot,
78
+ pivot: pivotError
79
+ ? undefined
80
+ : item.pivot
81
+ ? { ...item.pivot, columnValues: item.distinctStrings }
82
+ : undefined,
78
83
  yAxisFields: pivotTable
79
84
  ? extractPivotedYAxis(pivotTable, item)
80
85
  : item.yAxisFields,
@@ -86,10 +91,13 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
86
91
  filterMap: item.filterMap,
87
92
  flags: item.flags,
88
93
  rowCount: item.rowCount ? parseInt(item.rowCount) : item.rows.length,
94
+ pivotRowCount: pivotTable ? pivotTable.rowCount : undefined,
89
95
  template: item.template,
90
96
  sort: item.sort,
91
97
  itemQuery: item.itemQuery,
92
98
  queryString: item.queryString,
99
+ pivotQuery: pivotTable?.pivotQuery,
100
+ comparisonPivotQuery: pivotTable?.comparisonPivotQuery,
93
101
  referencedTables: item?.referencedTables || [],
94
102
  referencedColumns: item?.referencedColumns || {},
95
103
  error: item.error ?? pivotError,
@@ -98,7 +106,7 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
98
106
  /**
99
107
  * Extract and transform the data from itemInfo.
100
108
  */
101
- async function getPivotTable(report, dashboardFilters, client, dateBucketInitial, dashboardName, tenants) {
109
+ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial, additionalProcessing, dashboardName, tenants) {
102
110
  if (!report)
103
111
  return undefined;
104
112
  const dateFilter = Object.values(dashboardFilters ?? {}).find((filter) => filter.filterType === 'date_range' || filter.operator === 'BETWEEN');
@@ -114,20 +122,27 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
114
122
  if (pivot.rowField) {
115
123
  columns.push({
116
124
  field: pivot.rowField,
117
- label: pivot.rowField.charAt(0).toUpperCase() + pivot.rowField.slice(1),
118
- format: pivot.rowFieldType,
125
+ label: (0, textProcessing_1.snakeCaseToTitleCase)((0, columnProcessing_1.processColumnName)(pivot.rowField)),
126
+ format: pivot.rowFieldType || 'string',
127
+ jsType: (0, columnProcessing_1.convertFieldTypeToJSType)(pivot.rowFieldType || 'string'),
128
+ fieldType: pivot.rowFieldType || 'string',
129
+ dataTypeID: (0, columnProcessing_1.fieldTypeToDataTypeID)(pivot.rowFieldType || 'string'),
119
130
  });
120
131
  }
121
132
  if (pivot.valueField) {
122
133
  columns.push({
123
134
  field: pivot.valueField,
124
- label: pivot.valueField.charAt(0).toUpperCase() +
125
- pivot.valueField.slice(1),
126
- format: pivot.valueFieldType,
135
+ label: (0, textProcessing_1.snakeCaseToTitleCase)((0, columnProcessing_1.processColumnName)(pivot.valueField)),
136
+ format: pivot.valueFieldType || 'string',
137
+ jsType: (0, columnProcessing_1.convertFieldTypeToJSType)(pivot.valueFieldType || 'string'),
138
+ fieldType: pivot.valueFieldType || 'string',
139
+ dataTypeID: (0, columnProcessing_1.fieldTypeToDataTypeID)(pivot.valueFieldType || 'string'),
127
140
  });
128
141
  }
129
142
  return {
130
143
  rows: [],
144
+ rowCount: 0,
145
+ pivotQuery: '',
131
146
  columns: columns,
132
147
  };
133
148
  }
@@ -146,7 +161,17 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
146
161
  if (!dateBucket && filterDateRange) {
147
162
  dateBucket = (0, dates_1.getDateBucketFromRange)(filterDateRange);
148
163
  }
149
- const pivotTable = await (0, pivotConstructor_1.generatePivotWithSQL)(pivot, report, client, dateBucket, dateFilter, report.distinctStrings, undefined, dashboardName, tenants);
164
+ const pivotTable = await (0, pivotConstructor_1.generatePivotWithSQL)({
165
+ pivot,
166
+ report,
167
+ client,
168
+ dateBucket,
169
+ dateFilter,
170
+ distinctStrings: report.distinctStrings,
171
+ dashboardName,
172
+ tenants,
173
+ additionalProcessing,
174
+ });
150
175
  return pivotTable;
151
176
  }
152
177
  catch (e) {
@@ -159,8 +184,11 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
159
184
  pivot,
160
185
  report,
161
186
  client,
187
+ uniqueValues: report.distinctStrings,
162
188
  dashboardName,
163
189
  tenants,
190
+ dateFilter,
191
+ additionalProcessing,
164
192
  })
165
193
  : undefined;
166
194
  }
@@ -3,7 +3,7 @@ import { QuillReport } from '../models/Report';
3
3
  import { FilterTreeNode } from './astFilterProcessing';
4
4
  export declare function findAndProcessDateFilter(filters: any[]): any;
5
5
  export declare function processFilterFromBackend(filter: any): any;
6
- export declare function updateFilter(filter: any, value: any, comparison: any, dashboardName: string): any;
6
+ export declare function updateFilter(filter: any, value: any | undefined, comparison: any | undefined, dashboardName: string): any;
7
7
  export declare const getType: (t: string) => FieldType;
8
8
  /**
9
9
  * Returns a sentence to describe a Filter
@@ -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,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAGxE,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,GAAU,EACjB,UAAU,EAAE,GAAU,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,OAAO,EAAE,GAAG,EACZ,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,CA4B/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;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE;IACpD,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB,CASA;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":"AAQA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAGxE,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,OAAO,EAAE,GAAG,EACZ,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,CA4B/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;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE;IACpD,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB,CASA;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,2 +1,18 @@
1
+ import { Pivot } from '../models/Pivot';
1
2
  export declare function mergeComparisonRange(resp: any): any;
3
+ export declare function dateAdder(date: Date | string, interval: string): Date;
4
+ export declare function mergeComparisonPivotColumns({ pivot, rows, compRows, }: {
5
+ pivot: Pivot;
6
+ rows: any[];
7
+ compRows: any[];
8
+ }): any[];
9
+ export declare function mergeComparisonPivotRows({ pivot, rows, compRows, databaseType, dateBucket, comparisonInterval, columnFieldValues, }: {
10
+ pivot: Pivot;
11
+ rows: any[];
12
+ compRows: any[];
13
+ databaseType: string;
14
+ dateBucket?: string;
15
+ comparisonInterval?: string;
16
+ columnFieldValues?: string[];
17
+ }): any[];
2
18
  //# sourceMappingURL=merge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/utils/merge.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAgBnD"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/utils/merge.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAgBnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAsBrE;AAyBD,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB,GAAG,GAAG,EAAE,CAMR;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,GAAG,GAAG,EAAE,CAyBR"}
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mergeComparisonRange = mergeComparisonRange;
4
+ exports.dateAdder = dateAdder;
5
+ exports.mergeComparisonPivotColumns = mergeComparisonPivotColumns;
6
+ exports.mergeComparisonPivotRows = mergeComparisonPivotRows;
7
+ const date_fns_1 = require("date-fns");
8
+ const columnProcessing_1 = require("./columnProcessing");
9
+ const date_fns_tz_1 = require("date-fns-tz");
4
10
  function mergeComparisonRange(resp) {
5
11
  if (resp.chartType === 'table')
6
12
  return resp;
@@ -20,3 +26,207 @@ function mergeComparisonRange(resp) {
20
26
  });
21
27
  return { ...resp, rows: newRows };
22
28
  }
29
+ function dateAdder(date, interval) {
30
+ const match = interval.match(/^(\d+)\s+(day|month|year)$/);
31
+ if (!match) {
32
+ throw new Error(`Invalid interval format: ${interval}`);
33
+ }
34
+ const [, valueStr, unit] = match;
35
+ if (!valueStr || !unit) {
36
+ throw new Error('Could not parse interval');
37
+ }
38
+ const value = parseInt(valueStr, 10);
39
+ const parsedDate = typeof date === 'string' ? new Date(date) : date;
40
+ switch (unit) {
41
+ case 'day':
42
+ return (0, date_fns_1.add)(parsedDate, { days: value });
43
+ case 'month':
44
+ return (0, date_fns_1.add)(parsedDate, { months: value });
45
+ case 'year':
46
+ return (0, date_fns_1.add)(parsedDate, { years: value });
47
+ default:
48
+ throw new Error(`Unsupported interval unit: ${unit}`);
49
+ }
50
+ }
51
+ function dateTrunc(date, granularity = 'day', databaseType) {
52
+ const weekStartsOn = databaseType === 'mssql' ? 0 : 1;
53
+ const timeZone = 'UTC'; // standardize
54
+ const zonedDate = (0, date_fns_tz_1.utcToZonedTime)(date, timeZone);
55
+ switch (granularity.toLowerCase()) {
56
+ case 'week':
57
+ return (0, date_fns_1.startOfWeek)(zonedDate, { weekStartsOn });
58
+ case 'month':
59
+ return (0, date_fns_1.startOfMonth)(zonedDate);
60
+ case 'day':
61
+ return (0, date_fns_1.startOfDay)(zonedDate);
62
+ case 'year':
63
+ return (0, date_fns_1.startOfYear)(zonedDate);
64
+ default:
65
+ throw new Error(`Unsupported granularity: ${granularity}`);
66
+ }
67
+ }
68
+ function mergeComparisonPivotColumns({ pivot, rows, compRows, }) {
69
+ if (!compRows || !compRows.length)
70
+ return rows;
71
+ const mappedCompRows = compRows
72
+ .filter((compRow) => compRow.name !== pivot.rowField)
73
+ .map((compRow) => ({ ...compRow, name: `comparison_${compRow.name}` }));
74
+ return rows.concat(mappedCompRows);
75
+ }
76
+ function mergeComparisonPivotRows({ pivot, rows, compRows, databaseType, dateBucket, comparisonInterval, columnFieldValues, }) {
77
+ if (!compRows || !compRows.length)
78
+ return rows;
79
+ if (pivot.columnField && columnFieldValues && columnFieldValues.length > 0) {
80
+ return merge2DPivotRows(pivot, rows, compRows, columnFieldValues, databaseType, dateBucket, comparisonInterval);
81
+ }
82
+ if (pivot.rowField) {
83
+ return merge1DPivotRows(pivot, rows, compRows, databaseType, dateBucket, comparisonInterval);
84
+ }
85
+ return mergeAggregatedRows(pivot, rows, compRows);
86
+ }
87
+ function merge2DPivotRows(pivot, rows, compRows, columnFieldValues, databaseType, dateBucket, comparisonInterval) {
88
+ if (!pivot || !pivot.columnField) {
89
+ return [];
90
+ }
91
+ if ((0, columnProcessing_1.isStringType)(pivot.rowFieldType || '') || !pivot.rowFieldType) {
92
+ return merge2DStringPivotRows(pivot, rows, compRows, columnFieldValues);
93
+ }
94
+ return merge2DDatePivotRows(pivot, rows, compRows, columnFieldValues, databaseType, dateBucket, comparisonInterval);
95
+ }
96
+ function merge2DStringPivotRows(pivot, rows, compRows, columnFieldValues) {
97
+ if (!pivot.rowField || !pivot.valueField) {
98
+ return rows;
99
+ }
100
+ return rows.map((row) => {
101
+ const matchingCompRow = compRows.find((compRow) => compRow[pivot.rowField] === row[pivot.rowField]);
102
+ const comparisonFields = columnFieldValues.reduce((acc, fieldValue) => {
103
+ acc[`comparison_${fieldValue}`] = matchingCompRow
104
+ ? matchingCompRow[fieldValue] || null
105
+ : null;
106
+ return acc;
107
+ }, {});
108
+ return {
109
+ ...row,
110
+ ...comparisonFields,
111
+ };
112
+ });
113
+ }
114
+ function merge2DDatePivotRows(pivot, rows, compRows, columnFieldValues, databaseType, dateBucket, comparisonInterval) {
115
+ if (!comparisonInterval || !pivot.rowField) {
116
+ return rows;
117
+ }
118
+ return rows.map((row) => {
119
+ // Truncate the row date to match the SQL behavior
120
+ const rowDate = typeof row[pivot.rowField] === 'string'
121
+ ? new Date(row[pivot.rowField])
122
+ : row[pivot.rowField];
123
+ const truncatedRowDate = dateTrunc(rowDate, dateBucket, databaseType);
124
+ // Find a matching compRow where adding the interval matches the truncatedRowDate
125
+ const matchingCompRow = compRows.find((compRow) => {
126
+ const comparisonDateWithInterval = dateAdder(compRow[pivot.rowField], comparisonInterval);
127
+ const truncatedCompRowDate = dateTrunc(comparisonDateWithInterval, dateBucket, databaseType);
128
+ return (truncatedRowDate.toISOString() === truncatedCompRowDate.toISOString());
129
+ });
130
+ // Create comparison fields for each column value
131
+ const comparisonFields = columnFieldValues.reduce((acc, fieldValue) => {
132
+ acc[`comparison_${fieldValue}`] = matchingCompRow
133
+ ? matchingCompRow[fieldValue] || null
134
+ : null;
135
+ return acc;
136
+ }, {});
137
+ return {
138
+ ...row,
139
+ ...comparisonFields,
140
+ };
141
+ });
142
+ }
143
+ function merge1DPivotRows(pivot, rows, compRows, databaseType, dateBucket, comparisonInterval) {
144
+ if ((0, columnProcessing_1.isStringType)(pivot.rowFieldType || '') || !pivot.rowFieldType) {
145
+ return merge1DStringPivotRows(pivot, rows, compRows);
146
+ }
147
+ return merge1DDatePivotRows(pivot, rows, compRows, databaseType, dateBucket, comparisonInterval);
148
+ }
149
+ function merge1DStringPivotRows(pivot, rows, compRows) {
150
+ if (!pivot.rowField || !pivot.valueField) {
151
+ return rows;
152
+ }
153
+ return rows.map((row) => {
154
+ const matchingCompRow = compRows.find((compRow) => compRow[pivot.rowField] === row[pivot.rowField]);
155
+ let aggregationSuffix = '';
156
+ // match 'percentage' casing
157
+ if (matchingCompRow && pivot.aggregationType === 'percentage') {
158
+ if (matchingCompRow[`${pivot.valueField}_Percentage`]) {
159
+ aggregationSuffix = '_Percentage';
160
+ }
161
+ else if (matchingCompRow[`${pivot.valueField}_PERCENTAGE`]) {
162
+ aggregationSuffix = '_PERCENTAGE';
163
+ }
164
+ else {
165
+ aggregationSuffix = '_percentage';
166
+ }
167
+ }
168
+ // Return the merged row with the value from compRows, or null if no match is found
169
+ return {
170
+ ...row,
171
+ [`comparison_${pivot.valueField}${aggregationSuffix}`]: matchingCompRow
172
+ ? matchingCompRow[`${pivot.valueField}${aggregationSuffix}`]
173
+ : null,
174
+ };
175
+ });
176
+ }
177
+ function merge1DDatePivotRows(pivot, rows, compRows, databaseType, dateBucket, comparisonInterval) {
178
+ if (!comparisonInterval || !pivot.rowField) {
179
+ return rows;
180
+ }
181
+ return rows.map((row) => {
182
+ // Truncate the row date to match the SQL behavior
183
+ const rowDate = typeof row[pivot.rowField] === 'string'
184
+ ? new Date(row[pivot.rowField])
185
+ : row[pivot.rowField];
186
+ const truncatedRowDate = dateTrunc(rowDate, dateBucket, databaseType);
187
+ // Find a matching compRow where adding the interval matches the truncatedRowDate
188
+ const matchingCompRow = compRows.find((compRow) => {
189
+ const comparisonDateWithInterval = dateAdder(compRow[`${pivot.rowField}`], comparisonInterval);
190
+ const truncatedCompRowDate = dateTrunc(comparisonDateWithInterval, dateBucket, databaseType);
191
+ return (truncatedRowDate.toISOString() === truncatedCompRowDate.toISOString());
192
+ });
193
+ let aggregationSuffix = '';
194
+ // match 'percentage' casing
195
+ if (matchingCompRow && pivot.aggregationType === 'percentage') {
196
+ if (matchingCompRow[`${pivot.valueField}_Percentage`]) {
197
+ aggregationSuffix = '_Percentage';
198
+ }
199
+ else if (matchingCompRow[`${pivot.valueField}_PERCENTAGE`]) {
200
+ aggregationSuffix = '_PERCENTAGE';
201
+ }
202
+ else {
203
+ aggregationSuffix = '_percentage';
204
+ }
205
+ }
206
+ return {
207
+ ...row,
208
+ [`comparison_${pivot.valueField}${aggregationSuffix}`]: matchingCompRow?.[`${pivot.valueField}${aggregationSuffix}`] || null,
209
+ };
210
+ });
211
+ }
212
+ function mergeAggregatedRows(pivot, rows, compRows) {
213
+ return rows.map((row, i) => {
214
+ let aggregationSuffix = '';
215
+ // match 'percentage' casing
216
+ if (compRows[i] && pivot.aggregationType === 'percentage') {
217
+ if (compRows[i][`${pivot.valueField}_Percentage`]) {
218
+ aggregationSuffix = '_Percentage';
219
+ }
220
+ else if (compRows[i][`${pivot.valueField}_PERCENTAGE`]) {
221
+ aggregationSuffix = '_PERCENTAGE';
222
+ }
223
+ else {
224
+ aggregationSuffix = '_percentage';
225
+ }
226
+ }
227
+ const compRow = {
228
+ [`comparison_${pivot.valueField}${aggregationSuffix}`]: compRows[i]?.[`${pivot.valueField}${aggregationSuffix}`],
229
+ };
230
+ return { ...row, ...compRow };
231
+ });
232
+ }
@@ -1,5 +1,5 @@
1
1
  import { Pagination } from '../models/Pagination';
2
2
  export declare const DEFAULT_PAGINATION: Pagination;
3
- export declare function shouldFetchMore(pagination: Pagination, page: number, maxPage: number): boolean;
3
+ export declare function shouldFetchMore(pagination: Pagination, page: number, maxPage: number, currentRowCount?: number): boolean;
4
4
  export declare function shouldSortInMemory(pagination: Pagination, rowCount?: number): boolean;
5
5
  //# sourceMappingURL=paginationProcessing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paginationProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/paginationProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,eAAO,MAAM,kBAAkB,EAAE,UAIhC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,WAehB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,WAK3E"}
1
+ {"version":3,"file":"paginationProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/paginationProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,eAAO,MAAM,kBAAkB,EAAE,UAIhC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,WAkBzB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,WAK3E"}
@@ -8,8 +8,9 @@ exports.DEFAULT_PAGINATION = {
8
8
  rowsPerPage: 10,
9
9
  rowsPerRequest: 600,
10
10
  };
11
- function shouldFetchMore(pagination, page, maxPage) {
12
- if (!pagination) {
11
+ function shouldFetchMore(pagination, page, maxPage, currentRowCount) {
12
+ if (!pagination ||
13
+ (currentRowCount && currentRowCount >= pagination.rowsPerPage * (page + 1))) {
13
14
  return false;
14
15
  }
15
16
  const indexAdjustedPage = page;
@@ -1,12 +1,22 @@
1
1
  import { QuillProviderClient } from '../models/Client';
2
- import { ColumnInternal } from '../models/Columns';
3
- import { Pivot } from '../models/Pivot';
2
+ import { Pivot, PivotData } from '../models/Pivot';
4
3
  import { QuillReportInternal } from '../models/Report';
5
- export declare function generatePivotWithSQL(pivot: Pivot, report: QuillReportInternal, client: QuillProviderClient, dateBucket?: string, dateFilter?: any, distinctStrings?: string[], rowLimit?: number, dashboardName?: string, tenants?: {
6
- tenantField: string;
7
- tenantIds: (string | number)[];
8
- }[] | (string | number)[]): Promise<{
9
- rows: any[];
10
- columns: ColumnInternal[];
11
- }>;
4
+ import { AdditionalProcessing } from './tableProcessing';
5
+ export declare function generatePivotWithSQL({ pivot, report, client, dateBucket, dateFilter, distinctStrings, dashboardName, tenants, additionalProcessing, pivotQuery, comparisonPivotQuery, getPivotRowCount, }: {
6
+ pivot: Pivot;
7
+ report?: QuillReportInternal;
8
+ client: QuillProviderClient;
9
+ dateBucket?: string;
10
+ dateFilter?: any;
11
+ distinctStrings?: string[];
12
+ dashboardName?: string;
13
+ tenants?: {
14
+ tenantField: string;
15
+ tenantIds: (string | number)[];
16
+ }[] | (string | number)[];
17
+ additionalProcessing?: AdditionalProcessing;
18
+ pivotQuery?: string;
19
+ comparisonPivotQuery?: string;
20
+ getPivotRowCount?: boolean;
21
+ }): Promise<PivotData>;
12
22
  //# 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,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,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,GACtB,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CA8OrD"}
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,GACxB,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;CAC5B,GAAG,OAAO,CAAC,SAAS,CAAC,CAiVrB"}