@quillsql/react 2.12.30 → 2.12.32

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 (201) hide show
  1. package/dist/cjs/Chart.d.ts +6 -37
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +86 -327
  4. package/dist/cjs/ChartBuilder.d.ts +12 -49
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +68 -36
  7. package/dist/cjs/ChartEditor.d.ts +1 -1
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +11 -7
  10. package/dist/cjs/Context.d.ts +4 -1
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +10 -4
  13. package/dist/cjs/Dashboard.d.ts +61 -114
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +261 -30
  16. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  17. package/dist/cjs/DateRangePicker/DateRangePicker.js +0 -26
  18. package/dist/cjs/ReportBuilder.d.ts +1 -1
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +62 -97
  21. package/dist/cjs/SQLEditor.d.ts +2 -2
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +10 -5
  24. package/dist/cjs/Table.d.ts.map +1 -1
  25. package/dist/cjs/Table.js +41 -43
  26. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/BarChart.js +12 -1
  28. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  29. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/LineChart.js +25 -1
  31. package/dist/cjs/components/Dashboard/DataLoader.d.ts +7 -7
  32. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  33. package/dist/cjs/components/Dashboard/DataLoader.js +64 -28
  34. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  35. package/dist/cjs/components/Dashboard/MetricComponent.js +11 -45
  36. package/dist/cjs/components/Dashboard/TableComponent.d.ts +1 -1
  37. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  38. package/dist/cjs/components/Dashboard/TableComponent.js +1 -30
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.js +16 -1
  41. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  42. package/dist/cjs/components/QuillSelectWithCombo.js +4 -1
  43. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +10 -2
  44. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  45. package/dist/cjs/components/ReportBuilder/FilterModal.js +94 -70
  46. package/dist/cjs/components/ReportBuilder/convert.d.ts +7 -2
  47. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  48. package/dist/cjs/components/ReportBuilder/convert.js +53 -1
  49. package/dist/cjs/components/ReportBuilder/ui.d.ts +6 -6
  50. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  51. package/dist/cjs/components/ReportBuilder/ui.js +6 -22
  52. package/dist/cjs/components/UiComponents.d.ts +26 -1
  53. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  54. package/dist/cjs/components/UiComponents.js +97 -4
  55. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  56. package/dist/cjs/hooks/useQuill.js +19 -3
  57. package/dist/cjs/index.d.ts +2 -1
  58. package/dist/cjs/index.d.ts.map +1 -1
  59. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -0
  60. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  61. package/dist/cjs/models/Columns.d.ts +2 -1
  62. package/dist/cjs/models/Columns.d.ts.map +1 -1
  63. package/dist/cjs/models/Filter.d.ts +15 -4
  64. package/dist/cjs/models/Filter.d.ts.map +1 -1
  65. package/dist/cjs/models/Filter.js +9 -1
  66. package/dist/cjs/models/Report.d.ts +10 -23
  67. package/dist/cjs/models/Report.d.ts.map +1 -1
  68. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  69. package/dist/cjs/utils/astFilterProcessing.js +37 -2
  70. package/dist/cjs/utils/columnProcessing.d.ts +2 -0
  71. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  72. package/dist/cjs/utils/columnProcessing.js +54 -1
  73. package/dist/cjs/utils/dashboard.d.ts +1 -1
  74. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  75. package/dist/cjs/utils/dashboard.js +3 -56
  76. package/dist/cjs/utils/dataProcessing.d.ts +4 -2
  77. package/dist/cjs/utils/dataProcessing.d.ts.map +1 -1
  78. package/dist/cjs/utils/dataProcessing.js +18 -1
  79. package/dist/cjs/utils/dates.d.ts +2 -1
  80. package/dist/cjs/utils/dates.d.ts.map +1 -1
  81. package/dist/cjs/utils/dates.js +23 -1
  82. package/dist/cjs/utils/filterProcessing.d.ts +7 -1
  83. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  84. package/dist/cjs/utils/filterProcessing.js +100 -13
  85. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  86. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  87. package/dist/cjs/utils/pivotConstructor.js +7 -1
  88. package/dist/cjs/utils/report.d.ts +4 -1
  89. package/dist/cjs/utils/report.d.ts.map +1 -1
  90. package/dist/cjs/utils/report.js +94 -7
  91. package/dist/cjs/utils/tableProcessing.d.ts +1 -1
  92. package/dist/esm/Chart.d.ts +6 -37
  93. package/dist/esm/Chart.d.ts.map +1 -1
  94. package/dist/esm/Chart.js +87 -329
  95. package/dist/esm/ChartBuilder.d.ts +12 -49
  96. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  97. package/dist/esm/ChartBuilder.js +68 -33
  98. package/dist/esm/ChartEditor.d.ts +1 -1
  99. package/dist/esm/ChartEditor.d.ts.map +1 -1
  100. package/dist/esm/ChartEditor.js +11 -7
  101. package/dist/esm/Context.d.ts +4 -1
  102. package/dist/esm/Context.d.ts.map +1 -1
  103. package/dist/esm/Context.js +9 -3
  104. package/dist/esm/Dashboard.d.ts +61 -114
  105. package/dist/esm/Dashboard.d.ts.map +1 -1
  106. package/dist/esm/Dashboard.js +263 -32
  107. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  108. package/dist/esm/DateRangePicker/DateRangePicker.js +0 -26
  109. package/dist/esm/ReportBuilder.d.ts +1 -1
  110. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  111. package/dist/esm/ReportBuilder.js +64 -99
  112. package/dist/esm/SQLEditor.d.ts +2 -2
  113. package/dist/esm/SQLEditor.d.ts.map +1 -1
  114. package/dist/esm/SQLEditor.js +11 -6
  115. package/dist/esm/Table.d.ts.map +1 -1
  116. package/dist/esm/Table.js +42 -44
  117. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  118. package/dist/esm/components/Chart/BarChart.js +13 -2
  119. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  120. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  121. package/dist/esm/components/Chart/LineChart.js +26 -2
  122. package/dist/esm/components/Dashboard/DataLoader.d.ts +7 -7
  123. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  124. package/dist/esm/components/Dashboard/DataLoader.js +65 -29
  125. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  126. package/dist/esm/components/Dashboard/MetricComponent.js +11 -45
  127. package/dist/esm/components/Dashboard/TableComponent.d.ts +1 -1
  128. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  129. package/dist/esm/components/Dashboard/TableComponent.js +1 -30
  130. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  131. package/dist/esm/components/QuillMultiSelectWithCombo.js +16 -1
  132. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  133. package/dist/esm/components/QuillSelectWithCombo.js +5 -2
  134. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +10 -2
  135. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  136. package/dist/esm/components/ReportBuilder/FilterModal.js +94 -70
  137. package/dist/esm/components/ReportBuilder/convert.d.ts +7 -2
  138. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  139. package/dist/esm/components/ReportBuilder/convert.js +51 -0
  140. package/dist/esm/components/ReportBuilder/ui.d.ts +6 -6
  141. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  142. package/dist/esm/components/ReportBuilder/ui.js +6 -22
  143. package/dist/esm/components/UiComponents.d.ts +26 -1
  144. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  145. package/dist/esm/components/UiComponents.js +95 -3
  146. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  147. package/dist/esm/hooks/useQuill.js +19 -3
  148. package/dist/esm/index.d.ts +2 -1
  149. package/dist/esm/index.d.ts.map +1 -1
  150. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -0
  151. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  152. package/dist/esm/models/Columns.d.ts +2 -1
  153. package/dist/esm/models/Columns.d.ts.map +1 -1
  154. package/dist/esm/models/Filter.d.ts +15 -4
  155. package/dist/esm/models/Filter.d.ts.map +1 -1
  156. package/dist/esm/models/Filter.js +8 -0
  157. package/dist/esm/models/Report.d.ts +10 -23
  158. package/dist/esm/models/Report.d.ts.map +1 -1
  159. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  160. package/dist/esm/utils/astFilterProcessing.js +38 -3
  161. package/dist/esm/utils/columnProcessing.d.ts +2 -0
  162. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  163. package/dist/esm/utils/columnProcessing.js +52 -0
  164. package/dist/esm/utils/dashboard.d.ts +1 -1
  165. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  166. package/dist/esm/utils/dashboard.js +3 -56
  167. package/dist/esm/utils/dataProcessing.d.ts +4 -2
  168. package/dist/esm/utils/dataProcessing.d.ts.map +1 -1
  169. package/dist/esm/utils/dataProcessing.js +16 -0
  170. package/dist/esm/utils/dates.d.ts +2 -1
  171. package/dist/esm/utils/dates.d.ts.map +1 -1
  172. package/dist/esm/utils/dates.js +21 -0
  173. package/dist/esm/utils/filterProcessing.d.ts +7 -1
  174. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  175. package/dist/esm/utils/filterProcessing.js +97 -12
  176. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  177. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  178. package/dist/esm/utils/pivotConstructor.js +7 -1
  179. package/dist/esm/utils/report.d.ts +4 -1
  180. package/dist/esm/utils/report.d.ts.map +1 -1
  181. package/dist/esm/utils/report.js +92 -6
  182. package/dist/esm/utils/tableProcessing.d.ts +1 -1
  183. package/package.json +1 -1
  184. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts +0 -2
  185. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts.map +0 -1
  186. package/dist/esm/components/ReportBuilder/convert.uspec.js +0 -1152
  187. package/dist/esm/utils/astFilterProcessing.uspec.d.ts +0 -2
  188. package/dist/esm/utils/astFilterProcessing.uspec.d.ts.map +0 -1
  189. package/dist/esm/utils/astFilterProcessing.uspec.js +0 -2729
  190. package/dist/esm/utils/dataProcessing.uspec.d.ts +0 -2
  191. package/dist/esm/utils/dataProcessing.uspec.d.ts.map +0 -1
  192. package/dist/esm/utils/dataProcessing.uspec.js +0 -204
  193. package/dist/esm/utils/queryConstructor.uspec.d.ts +0 -2
  194. package/dist/esm/utils/queryConstructor.uspec.d.ts.map +0 -1
  195. package/dist/esm/utils/queryConstructor.uspec.js +0 -223
  196. package/dist/esm/utils/report.ispec.d.ts +0 -2
  197. package/dist/esm/utils/report.ispec.d.ts.map +0 -1
  198. package/dist/esm/utils/report.ispec.js +0 -46
  199. package/dist/esm/utils/tableProcessing.ispec.d.ts +0 -2
  200. package/dist/esm/utils/tableProcessing.ispec.d.ts.map +0 -1
  201. package/dist/esm/utils/tableProcessing.ispec.js +0 -61
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { QuillReport } from '../../Dashboard';
2
+ import { QuillReport } from '../../models/Report';
3
3
  import { QuillTheme } from '../../QuillProvider';
4
4
  export type DataLoaderChildProps = {
5
5
  isLoading: boolean;
@@ -9,10 +9,10 @@ export type DataLoaderChildProps = {
9
9
  field: string;
10
10
  direction: string;
11
11
  }) => void;
12
- data?: any;
12
+ data: QuillReport;
13
13
  };
14
- export default function DataLoader({ id, children, filters, }: {
15
- id: string;
14
+ export default function DataLoader({ item, children, filters, }: {
15
+ item: any;
16
16
  filters?: any;
17
17
  children: ({ isLoading, error, onPageChange, onSortChange, data, }: DataLoaderChildProps) => JSX.Element;
18
18
  }): JSX.Element;
@@ -29,11 +29,11 @@ type ColorMapType = {
29
29
  export type ChartDataLoaderChildProps = {
30
30
  isLoading: boolean;
31
31
  error?: string;
32
- data?: any;
32
+ data: QuillReport;
33
33
  dateBucket?: string;
34
34
  };
35
- export declare const ChartDataLoader: ({ id, children, dateBucket, additionalProcessing, filters, }: {
36
- id: string;
35
+ export declare const ChartDataLoader: ({ item, children, dateBucket, additionalProcessing, filters, }: {
36
+ item: any;
37
37
  dateBucket?: string | undefined;
38
38
  mapColorsToFields?: ((_report: QuillReport, _theme: QuillTheme) => ColorMapType) | undefined;
39
39
  additionalProcessing?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,EAAE,EACF,QAAQ,EACR,OAAO,GACR,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CA4Hd;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe;QAOtB,MAAM;;mCAGC,WAAW,UACZ,UAAU,KACf,YAAY;2BACM,GAAG;cAChB,GAAG;wDAMV,yBAAyB,KAAK,WAAW;MAC1C,WAgEH,CAAC"}
1
+ {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAmCjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,GACR,EAAE;IACD,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CA4Id;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe;UAOpB,GAAG;;mCAGE,WAAW,UACZ,UAAU,KACf,YAAY;2BACM,GAAG;cAChB,GAAG;wDAMV,yBAAyB,KAAK,WAAW;MAC1C,WAsEH,CAAC"}
@@ -8,14 +8,34 @@ const Context_1 = require("../../Context");
8
8
  const report_1 = require("../../utils/report");
9
9
  const paginationProcessing_1 = require("../../utils/paginationProcessing");
10
10
  const tableProcessing_1 = require("../../utils/tableProcessing");
11
- function DataLoader({ id, children, filters, }) {
11
+ const constructReportFromItem = (item) => {
12
+ return {
13
+ ...report_1.EMPTY_REPORT,
14
+ id: item._id,
15
+ name: item.name,
16
+ dashboardName: item.dashboardName,
17
+ rows: [],
18
+ columns: [],
19
+ chartType: item.chartType,
20
+ dateField: item.dateField,
21
+ pivot: item.pivot,
22
+ xAxisLabel: item.xAxisLabel,
23
+ xAxisField: item.xAxisField,
24
+ xAxisFormat: item.xAxisFormat,
25
+ yAxisFields: item.yAxisFields,
26
+ order: item.order,
27
+ compareRows: item.compareRows,
28
+ filtersApplied: item.filtersApplied,
29
+ };
30
+ };
31
+ function DataLoader({ item, children, filters, }) {
12
32
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
13
- const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
33
+ const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
14
34
  const [customFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
15
35
  const [loading, setLoading] = (0, react_1.useState)(false);
16
36
  const [error, setError] = (0, react_1.useState)(undefined);
17
37
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
18
- const [report, setReport] = (0, react_1.useState)(dashboard[id]);
38
+ const [report, setReport] = (0, react_1.useState)(dashboard[item._id] ?? constructReportFromItem(item));
19
39
  const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)({
20
40
  page: paginationProcessing_1.DEFAULT_PAGINATION,
21
41
  });
@@ -36,7 +56,7 @@ function DataLoader({ id, children, filters, }) {
36
56
  }
37
57
  };
38
58
  const onSortChange = (sort) => {
39
- if ((0, paginationProcessing_1.shouldSortInMemory)(paginationProcessing_1.DEFAULT_PAGINATION, report.rowCount, report.pivot)) {
59
+ if ((0, paginationProcessing_1.shouldSortInMemory)(paginationProcessing_1.DEFAULT_PAGINATION, report.rowCount, !!report.pivot)) {
40
60
  return;
41
61
  }
42
62
  const updatedProcessing = { page: paginationProcessing_1.DEFAULT_PAGINATION, sort };
@@ -57,7 +77,11 @@ function DataLoader({ id, children, filters, }) {
57
77
  if (resetRows) {
58
78
  tempRows = paginatedRows.rows;
59
79
  }
60
- setReport({ ...report, rows: tempRows });
80
+ const convertedReport = (0, report_1.convertInternalReportToReport)({
81
+ ...report,
82
+ rows: tempRows,
83
+ });
84
+ setReport(convertedReport);
61
85
  setAdditionProcessing(updatedProcessing);
62
86
  setTimeout(() => {
63
87
  setLoading(false);
@@ -70,71 +94,82 @@ function DataLoader({ id, children, filters, }) {
70
94
  }
71
95
  };
72
96
  const fetchReportHelper = async (useReportTask = true, processing) => {
73
- if (!(0, Chart_1.didFiltersChange)(dashboard[id], filters) &&
97
+ if (dashboard[item._id] &&
98
+ !(0, Chart_1.didFiltersChange)(dashboard[item._id], filters) &&
74
99
  !loading &&
75
- !dashboard[id].triggerReload) {
100
+ // @ts-ignore
101
+ !dashboard[item._id].triggerReload) {
76
102
  setLoading(false);
77
- setReport(dashboard[id]);
103
+ const convertedReport = (0, report_1.convertInternalReportToReport)(
104
+ // @ts-ignore
105
+ dashboard[item._id]);
106
+ setReport(convertedReport);
78
107
  return;
79
108
  }
80
109
  setLoading(true);
81
- const { report, error } = await (0, report_1.fetchReport)(id, client, useReportTask, filters, processing, undefined, customFields);
110
+ const { report, error } = await (0, report_1.fetchReport)(item._id, client, useReportTask, filters, processing, undefined, customFields);
82
111
  dispatch({
83
112
  type: 'UPDATE_DASHBOARD_ITEM',
84
- id: id,
113
+ id: item._id,
85
114
  data: { ...report, triggerReload: false },
86
115
  });
87
- setReport(report);
116
+ const convertedReport = (0, report_1.convertInternalReportToReport)(report);
117
+ setReport(convertedReport);
88
118
  setAdditionProcessing(processing);
89
119
  setError(error);
90
120
  setLoading(false);
91
121
  };
92
122
  (0, react_1.useEffect)(() => {
93
123
  fetchReportHelper(true, additionalProcessing);
94
- }, [filters, id]);
124
+ }, [filters, item._id]);
95
125
  (0, react_1.useEffect)(() => {
96
- if (dashboard[id] && dashboard[id].triggerReload) {
126
+ // @ts-ignore
127
+ if (dashboard[item._id] && dashboard[item._id].triggerReload) {
97
128
  fetchReportHelper(true, additionalProcessing);
98
129
  }
99
- }, [dashboard[id]]);
130
+ }, [dashboard[item._id]]);
100
131
  return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
101
132
  isLoading: loading,
102
133
  error,
103
134
  onPageChange,
104
135
  onSortChange,
105
- data: report ?? undefined,
136
+ data: report,
106
137
  }) }));
107
138
  }
108
139
  exports.default = DataLoader;
109
140
  // The same data-loader pattern as above, but with special logic for charts
110
141
  // At some point these may be able to get merged into one function.
111
- const ChartDataLoader = ({ id, children, dateBucket, additionalProcessing, filters, }) => {
112
- const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
142
+ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, filters, }) => {
143
+ const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
113
144
  const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
114
145
  const [loading, setLoading] = (0, react_1.useState)(false);
115
146
  const [error, setError] = (0, react_1.useState)(undefined);
116
147
  const [localDateBucket, setLocalDateBucket] = (0, react_1.useState)(undefined);
117
148
  const [localAdditionalProcessing, setLocalAdditionalProcessing] = (0, react_1.useState)();
118
- const [report, setReport] = (0, react_1.useState)(dashboard[id]);
149
+ const [report, setReport] = (0, react_1.useState)(dashboard[item._id] ?? constructReportFromItem(item));
119
150
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
120
151
  const [customFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
121
152
  const fetchReportHelper = async (useReportTask = true) => {
122
- if (!(0, Chart_1.didFiltersChange)(dashboard[id], filters) &&
123
- !dashboard[id].triggerReload &&
153
+ const tempReport = dashboard[item._id];
154
+ if (tempReport &&
155
+ !(0, Chart_1.didFiltersChange)(tempReport, filters) &&
156
+ !tempReport.triggerReload &&
124
157
  dateBucket === localDateBucket &&
125
158
  additionalProcessing?.last === localAdditionalProcessing?.last) {
126
159
  setLoading(false);
127
- setReport(dashboard[id]);
160
+ const convertedReport = (0, report_1.convertInternalReportToReport)(tempReport);
161
+ setReport(convertedReport);
128
162
  return;
129
163
  }
130
164
  setLoading(true);
131
- const { report, error } = await (0, report_1.fetchReport)(id, client, useReportTask, filters, additionalProcessing, dateBucket, customFields);
165
+ const { report, error } = await (0, report_1.fetchReport)(item._id, client, useReportTask, filters, additionalProcessing, dateBucket, customFields);
132
166
  dispatch({
133
167
  type: 'UPDATE_DASHBOARD_ITEM',
134
- id: id,
168
+ id: item._id,
135
169
  data: { ...report, triggerReload: false },
136
170
  });
137
- setReport(report);
171
+ const convertedReport = (0, report_1.convertInternalReportToReport)(report);
172
+ setReport(convertedReport);
138
173
  setLocalDateBucket(dateBucket);
139
174
  setLocalAdditionalProcessing(additionalProcessing);
140
175
  setError(error);
@@ -143,15 +178,16 @@ const ChartDataLoader = ({ id, children, dateBucket, additionalProcessing, filte
143
178
  (0, react_1.useEffect)(() => {
144
179
  setInitialLoad(false);
145
180
  fetchReportHelper();
146
- }, [filters, id, dateBucket, additionalProcessing]);
181
+ }, [filters, item._id, dateBucket, additionalProcessing]);
147
182
  (0, react_1.useEffect)(() => {
148
- if (dashboard[id] && dashboard[id].triggerReload) {
183
+ const tempReport = dashboard[item._id];
184
+ if (tempReport && tempReport.triggerReload) {
149
185
  fetchReportHelper();
150
186
  }
151
- }, [dashboard[id]]);
187
+ }, [dashboard[item._id]]);
152
188
  return children({
153
189
  isLoading: loading || initialLoad,
154
- data: report ?? undefined,
190
+ data: report,
155
191
  error,
156
192
  dateBucket,
157
193
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA8PhC"}
1
+ {"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAgOhC"}
@@ -4,29 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("react");
8
7
  const dateRangePickerUtils_1 = require("../../DateRangePicker/dateRangePickerUtils");
9
- const valueFormatter_1 = require("../../utils/valueFormatter");
10
8
  const ChartError_1 = __importDefault(require("../Chart/ChartError"));
11
9
  const ChartSkeleton_1 = __importDefault(require("../Chart/ChartSkeleton"));
12
10
  const hooks_1 = require("../../hooks");
13
- const useQuill_1 = require("../../hooks/useQuill");
14
11
  function QuillMetricComponent({ report, onClick, error, isLoading, }) {
15
12
  const theme = (0, hooks_1.useTheme)();
16
13
  const dateFilter = report?.filtersApplied?.find((filter) => filter.filterType == 'date_range');
17
- const [rows, setRows] = (0, react_1.useState)(report?.rows ?? []);
18
- const pivotData = (0, useQuill_1.usePivot)(report.id);
19
- (0, react_1.useEffect)(() => {
20
- if (pivotData.data) {
21
- setRows(pivotData.data.rows);
22
- }
23
- else if (report?.rows) {
24
- setRows(report.rows);
25
- }
26
- else {
27
- setRows([]);
28
- }
29
- }, [pivotData?.data?.rows, report?.rows]);
30
14
  const primaryMetricLabel = report?.filtersApplied?.date_range?.preset?.label;
31
15
  const comparisonKey = report?.filtersApplied?.date_range?.comparisonRange?.value;
32
16
  const comparisonLabel = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((opt) => opt.value === comparisonKey)?.text;
@@ -35,6 +19,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
35
19
  boxSizing: 'content-box',
36
20
  borderRadius: 8,
37
21
  paddingBottom: isLoading ? 0 : 30,
22
+ width: '100%',
38
23
  }, children: (0, jsx_runtime_1.jsx)("div", { style: {
39
24
  width: '100%',
40
25
  height: '100%',
@@ -55,7 +40,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
55
40
  justifyContent: 'space-between',
56
41
  boxSizing: 'content-box',
57
42
  paddingBottom: 5,
58
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
43
+ }, children: [onClick && ((0, jsx_runtime_1.jsx)("div", { style: {
59
44
  fontFamily: theme.fontFamily,
60
45
  color: theme.primaryTextColor,
61
46
  boxSizing: 'content-box',
@@ -67,7 +52,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
67
52
  display: 'block',
68
53
  maxWidth: '100%',
69
54
  overflow: 'hidden',
70
- }, children: report?.name }), onClick && report?.name ? ((0, jsx_runtime_1.jsx)("div", { style: {
55
+ }, children: report?.name })), onClick && report?.name ? ((0, jsx_runtime_1.jsx)("div", { style: {
71
56
  fontFamily: theme.fontFamily,
72
57
  color: theme.primaryTextColor,
73
58
  boxSizing: 'content-box',
@@ -80,7 +65,8 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
80
65
  }, children: 'view report →' })) : null] }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: {
81
66
  maxHeight: '78px',
82
67
  height: '100%',
83
- } })) : error ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : rows?.length === 0 || rows[0][report.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
68
+ } })) : error ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : report.rows?.length === 0 ||
69
+ report.rows[0][report.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
84
70
  display: 'flex',
85
71
  flex: '1 0 auto',
86
72
  height: '100%',
@@ -117,19 +103,9 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
117
103
  gap: 4,
118
104
  alignItems: 'baseline',
119
105
  marginRight: 'auto',
120
- }, children: [(0, jsx_runtime_1.jsx)("span", { children: rows.length > 0 &&
121
- (0, valueFormatter_1.valueFormatter)({
122
- value: rows[0][report.xAxisField] ?? 0,
123
- field: report.xAxisField,
124
- fields: [
125
- {
126
- field: report.xAxisField,
127
- format: report.xAxisFormat,
128
- label: report.xAxisLabel,
129
- _id: report.id || 'dummy',
130
- },
131
- ],
132
- }) }), dateFilter?.comparison && ((0, jsx_runtime_1.jsx)("span", { style: {
106
+ }, children: [(0, jsx_runtime_1.jsx)("span", { children: (report.rows.length > 0 &&
107
+ report.rows[0][report.xAxisField]) ??
108
+ 0 }), dateFilter?.comparison && ((0, jsx_runtime_1.jsx)("span", { style: {
133
109
  fontSize: 13,
134
110
  fontWeight: '500',
135
111
  fontFamily: theme?.fontFamily,
@@ -148,19 +124,9 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
148
124
  fontWeight: '500',
149
125
  fontFamily: theme?.fontFamily,
150
126
  color: theme?.secondaryTextColor,
151
- }, children: rows.length > 0 &&
152
- (0, valueFormatter_1.valueFormatter)({
153
- value: rows[0][`comparison_${report.xAxisField}`] ?? 0,
154
- field: report.xAxisField,
155
- fields: [
156
- {
157
- field: report.xAxisField,
158
- format: report.xAxisFormat,
159
- label: report.xAxisLabel,
160
- _id: report.id || 'dummy',
161
- },
162
- ],
163
- }) }), (0, jsx_runtime_1.jsx)("span", { style: {
127
+ }, children: (report.rows.length > 0 &&
128
+ report.rows[0][`comparison_${report.xAxisField}`]) ??
129
+ 0 }), (0, jsx_runtime_1.jsx)("span", { style: {
164
130
  fontSize: 13,
165
131
  fontWeight: '500',
166
132
  fontFamily: theme?.fontFamily,
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { QuillReport } from '../../Dashboard';
2
+ import { QuillReport } from '../../models/Report';
3
3
  export default function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }: {
4
4
  report: QuillReport;
5
5
  onClick?: (report: QuillReport) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE,GAAG,GAAG,CAAC,OAAO,CAyId"}
1
+ {"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE,GAAG,GAAG,CAAC,OAAO,CAwGd"}
@@ -6,48 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = require("react");
8
8
  const QuillTable_1 = __importDefault(require("../QuillTable"));
9
- const valueFormatter_1 = require("../../utils/valueFormatter");
10
9
  const ChartSkeleton_1 = __importDefault(require("../Chart/ChartSkeleton"));
11
10
  const ChartError_1 = __importDefault(require("../Chart/ChartError"));
12
11
  const hooks_1 = require("../../hooks");
13
12
  const useExport_1 = require("../../hooks/useExport");
14
- const useQuill_1 = require("../../hooks/useQuill");
15
13
  function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }) {
16
14
  const theme = (0, hooks_1.useTheme)();
17
15
  const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
18
16
  const { downloadCSV } = (0, useExport_1.useExport)(report?.id);
19
- const pivotData = (0, useQuill_1.usePivot)(report.id);
20
- const [rows, setRows] = (0, react_1.useState)(report?.rows ?? []);
21
- const [columns, setColumns] = (0, react_1.useState)(report?.columns ?? report?.yAxisFields ?? []);
22
- (0, react_1.useEffect)(() => {
23
- if (!report.rows || !report.columns) {
24
- return;
25
- }
26
- if (report.pivot !== null && pivotData.data) {
27
- setRows(pivotData.data.rows);
28
- setColumns(pivotData.data.columns);
29
- }
30
- else {
31
- setRows(report?.rows ?? []);
32
- setColumns(report?.columns ?? report?.yAxisFields ?? []);
33
- }
34
- }, [pivotData, report]);
35
17
  (0, react_1.useEffect)(() => {
36
18
  if (!isLoading) {
37
19
  setInitialLoad(false);
38
20
  }
39
21
  }, [isLoading]);
40
- const formattedRows = rows.map((row) => {
41
- return columns.reduce((formattedRow, column) => {
42
- // Apply the format function to each field in the row
43
- const formattedValue = (0, valueFormatter_1.quillFormat)({
44
- value: row[column.field],
45
- format: column.format,
46
- });
47
- formattedRow[column.field] = formattedValue;
48
- return formattedRow;
49
- }, {});
50
- });
51
22
  return ((0, jsx_runtime_1.jsxs)("div", { style: { cursor: 'pointer' }, onClick: () => onClick && onClick(report), children: [(0, jsx_runtime_1.jsxs)("div", { style: {
52
23
  display: 'flex',
53
24
  flexDirection: 'row',
@@ -83,7 +54,7 @@ function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPa
83
54
  } })) : error ? ((0, jsx_runtime_1.jsx)("div", { style: {
84
55
  width: '100%',
85
56
  height: '400px',
86
- }, children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: formattedRows ?? [], rowCount: rowCount, columns: columns, rowsPerPage: 10, containerStyle: {
57
+ }, children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, columns: report.columns, rowsPerPage: 10, containerStyle: {
87
58
  width: '100%',
88
59
  height: '400px',
89
60
  }, downloadCSV: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAW3D;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE,yBAAyB,2CAqS3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAwDpB,CAAC"}
1
+ {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAiC3D;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE,yBAAyB,2CAqS3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAwDpB,CAAC"}
@@ -28,6 +28,21 @@ const jsx_runtime_1 = require("react/jsx-runtime");
28
28
  const hooks_1 = require("../hooks");
29
29
  const react_1 = __importStar(require("react"));
30
30
  const Context_1 = require("../Context");
31
+ /**
32
+ * Helper function for displaying option labels
33
+ */
34
+ function displaySelectedOptionLabels({ options, value, }) {
35
+ if (!value || !value.length) {
36
+ return 'Select';
37
+ }
38
+ const matchingOptions = options.filter((elem) => value.includes(elem.value));
39
+ if (!matchingOptions.length) {
40
+ return 'Select';
41
+ }
42
+ return matchingOptions
43
+ .map((elem) => elem.label)
44
+ .join(', ');
45
+ }
31
46
  /**
32
47
  * A robust select component that implements the new minimal Select interface.
33
48
  */
@@ -126,7 +141,7 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
126
141
  width: '100%',
127
142
  textAlign: 'left',
128
143
  zIndex: 1,
129
- }, children: value && value.length > 0 ? value.join(', ') : 'Select' }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && ((0, jsx_runtime_1.jsxs)("div", { ref: modalRef, style: {
144
+ }, children: displaySelectedOptionLabels({ options, value }) }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && ((0, jsx_runtime_1.jsxs)("div", { ref: modalRef, style: {
130
145
  position: 'absolute',
131
146
  width: '100%',
132
147
  display: 'flex',
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAMtD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,oBAAoB,2CAgPtB"}
1
+ {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAYtD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,oBAAoB,2CAoPtB"}
@@ -37,8 +37,11 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
37
37
  const [showModal, setShowModal] = (0, react_1.useState)(false);
38
38
  const modalRef = (0, react_1.useRef)(null);
39
39
  const [searchQuery, setSearchQuery] = react_1.default.useState('');
40
- const [filteredItems, setFilteredItems] = react_1.default.useState(options.slice(0, 20));
40
+ const [filteredItems, setFilteredItems] = react_1.default.useState([]);
41
41
  (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false));
42
+ (0, react_1.useEffect)(() => {
43
+ setFilteredItems(options.slice(0, 20));
44
+ }, [options]);
42
45
  const handleSearchChange = (value) => {
43
46
  setSearchQuery(value);
44
47
  const curFilteredItems = value === ''
@@ -1,11 +1,16 @@
1
1
  /// <reference types="react" />
2
- import { Filter } from '../../models/Filter';
2
+ import { Filter, Operator } from '../../models/Filter';
3
3
  interface FilterModalProps {
4
4
  schema: any;
5
5
  filter?: Filter;
6
6
  fieldValuesMap: {
7
7
  [key: string]: string[];
8
+ } | {
9
+ [key: string]: {
10
+ [key: string]: string[];
11
+ };
8
12
  };
13
+ customOperatorOptions?: OperatorOptionsMap;
9
14
  onSubmitFilter: (filter: Filter) => void;
10
15
  onDeleteFilter: () => void;
11
16
  ButtonComponent: React.ComponentType<any>;
@@ -14,9 +19,12 @@ interface FilterModalProps {
14
19
  SecondaryButtonComponent?: React.ComponentType<any>;
15
20
  MultiSelectComponent: React.ComponentType<any>;
16
21
  }
22
+ type OperatorOptionsMap = {
23
+ [key: string]: Operator[];
24
+ };
17
25
  /**
18
26
  * Modal for adding, editing, and deleting Filters
19
27
  */
20
- export default function FilterModal({ schema, filter, fieldValuesMap, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }: FilterModalProps): import("react/jsx-runtime").JSX.Element;
28
+ export default function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }: FilterModalProps): import("react/jsx-runtime").JSX.Element;
21
29
  export {};
22
30
  //# sourceMappingURL=FilterModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterModal.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,MAAM,EAUP,MAAM,qBAAqB,CAAC;AAK7B,UAAU,gBAAgB;IACxB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,wBAAwB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAChD;AAWD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,MAAM,EACN,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,EAAE,gBAAgB,2CAstBlB"}
1
+ {"version":3,"file":"FilterModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterModal.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,MAAM,EAIN,QAAQ,EAOT,MAAM,qBAAqB,CAAC;AAM7B,UAAU,gBAAgB;IACxB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EACZ;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,GACzB;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IACnD,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,wBAAwB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAChD;AAQD,KAAK,kBAAkB,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,EAAE,gBAAgB,2CAwvBlB"}