@quillsql/react 2.11.16 → 2.11.17

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 (203) hide show
  1. package/dist/cjs/Chart.d.ts +117 -42
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +44 -18
  4. package/dist/cjs/ChartBuilder.d.ts +194 -30
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +122 -62
  7. package/dist/cjs/ChartEditor.d.ts +114 -18
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +47 -15
  10. package/dist/cjs/Dashboard.d.ts +148 -91
  11. package/dist/cjs/Dashboard.d.ts.map +1 -1
  12. package/dist/cjs/Dashboard.js +46 -152
  13. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
  16. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  17. package/dist/cjs/QuillProvider.d.ts +105 -2
  18. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  19. package/dist/cjs/QuillProvider.js +59 -0
  20. package/dist/cjs/ReportBuilder.d.ts +188 -42
  21. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  22. package/dist/cjs/ReportBuilder.js +466 -394
  23. package/dist/cjs/SQLEditor.d.ts +158 -23
  24. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  25. package/dist/cjs/SQLEditor.js +35 -30
  26. package/dist/cjs/Table.d.ts +119 -15
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +37 -6
  29. package/dist/cjs/TableChart.d.ts.map +1 -1
  30. package/dist/cjs/TableChart.js +0 -194
  31. package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
  32. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
  33. package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
  34. package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
  35. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  36. package/dist/cjs/components/Chart/LineChart.js +3 -3
  37. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -0
  38. package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
  39. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
  40. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
  42. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
  43. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
  44. package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
  45. package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
  46. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  47. package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
  48. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
  49. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  50. package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
  51. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  52. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  53. package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
  54. package/dist/cjs/components/QuillSelect.d.ts +4 -1
  55. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  56. package/dist/cjs/components/QuillSelect.js +13 -8
  57. package/dist/cjs/components/QuillTable.d.ts +16 -2
  58. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  59. package/dist/cjs/components/QuillTable.js +4 -4
  60. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +9 -3
  61. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  62. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +8 -6
  63. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +13 -1
  64. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  65. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +4 -14
  66. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +21 -1
  67. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  68. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +15 -17
  69. package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
  70. package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
  71. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/convert.js +40 -20
  73. package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
  74. package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
  75. package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -18
  76. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  77. package/dist/cjs/components/ReportBuilder/ui.js +52 -100
  78. package/dist/cjs/components/ReportBuilder/util.d.ts +2 -1
  79. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  80. package/dist/cjs/components/ReportBuilder/util.js +16 -9
  81. package/dist/cjs/components/UiComponents.d.ts +86 -86
  82. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  83. package/dist/cjs/components/UiComponents.js +118 -103
  84. package/dist/cjs/hooks/index.d.ts +1 -0
  85. package/dist/cjs/hooks/index.d.ts.map +1 -1
  86. package/dist/cjs/hooks/index.js +3 -1
  87. package/dist/cjs/hooks/useTheme.d.ts +7 -0
  88. package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
  89. package/dist/cjs/hooks/useTheme.js +12 -0
  90. package/dist/cjs/index.d.ts +10 -2
  91. package/dist/cjs/index.d.ts.map +1 -1
  92. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  93. package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
  94. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
  95. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  96. package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
  97. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  98. package/dist/cjs/utils/dataFetcher.js +2 -0
  99. package/dist/esm/Chart.d.ts +117 -42
  100. package/dist/esm/Chart.d.ts.map +1 -1
  101. package/dist/esm/Chart.js +45 -19
  102. package/dist/esm/ChartBuilder.d.ts +194 -30
  103. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  104. package/dist/esm/ChartBuilder.js +122 -62
  105. package/dist/esm/ChartEditor.d.ts +114 -18
  106. package/dist/esm/ChartEditor.d.ts.map +1 -1
  107. package/dist/esm/ChartEditor.js +51 -19
  108. package/dist/esm/Dashboard.d.ts +148 -91
  109. package/dist/esm/Dashboard.d.ts.map +1 -1
  110. package/dist/esm/Dashboard.js +49 -153
  111. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
  112. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  113. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
  114. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  115. package/dist/esm/QuillProvider.d.ts +105 -2
  116. package/dist/esm/QuillProvider.d.ts.map +1 -1
  117. package/dist/esm/QuillProvider.js +59 -0
  118. package/dist/esm/ReportBuilder.d.ts +188 -42
  119. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  120. package/dist/esm/ReportBuilder.js +468 -396
  121. package/dist/esm/SQLEditor.d.ts +158 -23
  122. package/dist/esm/SQLEditor.d.ts.map +1 -1
  123. package/dist/esm/SQLEditor.js +35 -30
  124. package/dist/esm/Table.d.ts +119 -15
  125. package/dist/esm/Table.d.ts.map +1 -1
  126. package/dist/esm/Table.js +38 -7
  127. package/dist/esm/TableChart.d.ts.map +1 -1
  128. package/dist/esm/TableChart.js +0 -194
  129. package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
  130. package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
  131. package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
  132. package/dist/esm/components/Chart/LineChart.d.ts +2 -3
  133. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  134. package/dist/esm/components/Chart/LineChart.js +3 -3
  135. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -0
  136. package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
  137. package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
  138. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  139. package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
  140. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
  141. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
  142. package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
  143. package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
  144. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  145. package/dist/esm/components/Dashboard/DataLoader.js +1 -1
  146. package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
  147. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  148. package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
  149. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  150. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  151. package/dist/esm/components/Dashboard/TableComponent.js +6 -9
  152. package/dist/esm/components/QuillSelect.d.ts +4 -1
  153. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  154. package/dist/esm/components/QuillSelect.js +14 -9
  155. package/dist/esm/components/QuillTable.d.ts +16 -2
  156. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  157. package/dist/esm/components/QuillTable.js +4 -4
  158. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +9 -3
  159. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  160. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +8 -6
  161. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +13 -1
  162. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  163. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +4 -14
  164. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +21 -1
  165. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  166. package/dist/esm/components/ReportBuilder/AddSortPopover.js +17 -19
  167. package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
  168. package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
  169. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  170. package/dist/esm/components/ReportBuilder/convert.js +33 -13
  171. package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
  172. package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
  173. package/dist/esm/components/ReportBuilder/ui.d.ts +83 -18
  174. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  175. package/dist/esm/components/ReportBuilder/ui.js +50 -98
  176. package/dist/esm/components/ReportBuilder/util.d.ts +2 -1
  177. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  178. package/dist/esm/components/ReportBuilder/util.js +14 -8
  179. package/dist/esm/components/UiComponents.d.ts +86 -86
  180. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  181. package/dist/esm/components/UiComponents.js +111 -101
  182. package/dist/esm/hooks/index.d.ts +1 -0
  183. package/dist/esm/hooks/index.d.ts.map +1 -1
  184. package/dist/esm/hooks/index.js +1 -0
  185. package/dist/esm/hooks/useTheme.d.ts +7 -0
  186. package/dist/esm/hooks/useTheme.d.ts.map +1 -0
  187. package/dist/esm/hooks/useTheme.js +10 -0
  188. package/dist/esm/index.d.ts +10 -2
  189. package/dist/esm/index.d.ts.map +1 -1
  190. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  191. package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
  192. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
  193. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  194. package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
  195. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  196. package/dist/esm/utils/dataFetcher.js +2 -0
  197. package/package.json +1 -1
  198. package/dist/cjs/BarList.d.ts.map +0 -1
  199. package/dist/cjs/PieChart.d.ts.map +0 -1
  200. package/dist/esm/BarList.d.ts.map +0 -1
  201. package/dist/esm/PieChart.d.ts.map +0 -1
  202. /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
  203. /package/dist/esm/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
@@ -4,25 +4,47 @@ 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");
7
8
  const dateRangePickerUtils_1 = require("../../DateRangePicker/dateRangePickerUtils");
8
9
  const valueFormatter_1 = require("../../utils/valueFormatter");
9
10
  const ChartError_1 = __importDefault(require("../Chart/ChartError"));
10
11
  const ChartSkeleton_1 = __importDefault(require("../Chart/ChartSkeleton"));
11
- function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLoading, theme, style, }) {
12
+ const PivotModal_1 = require("../../internals/ReportBuilder/PivotModal");
13
+ const Context_1 = require("../../Context");
14
+ const hooks_1 = require("../../hooks");
15
+ function QuillMetricComponent({ dashboardItem, onClick, error, isLoading, }) {
16
+ const theme = (0, hooks_1.useTheme)();
17
+ const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
12
18
  const data = dashboardItem;
13
- const isComparison = data.rows.length > 0 &&
14
- Object.keys(data.rows[0]).includes(`comparison_${data.xAxisField}`);
19
+ const config = dashboardItem;
20
+ const dateFilter = Object.values(dashboardFilters).find((filter) => filter.filterType == 'date_range');
21
+ const pivotTable = (0, react_1.useMemo)(() => {
22
+ const pivot = config?.pivot;
23
+ const data = config;
24
+ return pivot && data?.rows
25
+ ? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
26
+ dateFilter
27
+ ? [dateFilter.startDate || null, dateFilter.endDate || null, null]
28
+ : [null, null, null], Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate
29
+ ? [
30
+ dateFilter?.comparisonRange.startDate,
31
+ dateFilter?.comparisonRange.endDate,
32
+ null,
33
+ ]
34
+ : [null, null, null])
35
+ : null;
36
+ }, [config?.pivot]);
15
37
  const primaryMetricLabel = data?.filtersApplied?.date_range?.preset?.label;
16
38
  const comparisonKey = data?.filtersApplied?.date_range?.comparisonRange?.value;
17
39
  const comparisonLabel = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((opt) => opt.value === comparisonKey)?.text;
18
- return ((0, jsx_runtime_1.jsx)("div", { onClick: onClickDashboardItem
19
- ? () => onClickDashboardItem(dashboardItem)
20
- : () => { }, style: {
40
+ const rows = pivotTable?.rows ?? data.rows ?? [];
41
+ const isComparison = rows.length > 0 &&
42
+ Object.keys(rows[0]).includes(`comparison_${data.xAxisField}`);
43
+ return ((0, jsx_runtime_1.jsx)("div", { onClick: () => onClick && onClick(dashboardItem), style: {
21
44
  cursor: 'pointer',
22
45
  boxSizing: 'content-box',
23
46
  borderRadius: 8,
24
47
  paddingBottom: isLoading ? 0 : 30,
25
- ...style,
26
48
  }, children: (0, jsx_runtime_1.jsx)("div", { style: {
27
49
  width: '100%',
28
50
  height: '100%',
@@ -55,7 +77,7 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
55
77
  display: 'block',
56
78
  maxWidth: '100%',
57
79
  overflow: 'hidden',
58
- }, children: dashboardItem?.name }), onClickDashboardItem ? ((0, jsx_runtime_1.jsx)("div", { style: {
80
+ }, children: dashboardItem?.name }), onClick ? ((0, jsx_runtime_1.jsx)("div", { style: {
59
81
  fontFamily: theme.fontFamily,
60
82
  color: theme.primaryTextColor,
61
83
  boxSizing: 'content-box',
@@ -65,11 +87,13 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
65
87
  display: 'flex',
66
88
  alignItems: 'center',
67
89
  justifyContent: 'flex-end',
68
- }, children: 'view report →' })) : null] }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: { maxHeight: '78px', height: style?.height ?? '100%' } })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, {})) : data.rows?.length === 0 ||
69
- data.rows[0][data.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
90
+ }, children: 'view report →' })) : null] }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: {
91
+ maxHeight: '78px',
92
+ height: '100%',
93
+ } })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, {})) : rows?.length === 0 || rows[0][data.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
70
94
  display: 'flex',
71
95
  flex: '1 0 auto',
72
- height: style?.height ?? '100%',
96
+ height: '100%',
73
97
  margin: 'auto',
74
98
  justifyContent: 'center',
75
99
  alignItems: 'center',
@@ -77,7 +101,6 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
77
101
  color: theme.secondaryTextColor,
78
102
  maxWidth: '100%',
79
103
  width: '100%',
80
- ...style,
81
104
  }, children: "No results" })) : ((0, jsx_runtime_1.jsx)("div", { style: {
82
105
  padding: 0,
83
106
  height: '100%',
@@ -104,9 +127,9 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
104
127
  gap: 4,
105
128
  alignItems: 'baseline',
106
129
  marginRight: 'auto',
107
- }, children: [(0, jsx_runtime_1.jsx)("span", { children: data.rows.length > 0 &&
130
+ }, children: [(0, jsx_runtime_1.jsx)("span", { children: rows.length > 0 &&
108
131
  (0, valueFormatter_1.valueFormatter)({
109
- value: data.rows[0][data.xAxisField] ?? 0,
132
+ value: rows[0][data.xAxisField] ?? 0,
110
133
  field: data.xAxisField,
111
134
  fields: [
112
135
  {
@@ -135,10 +158,9 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
135
158
  fontWeight: '500',
136
159
  fontFamily: theme?.fontFamily,
137
160
  color: theme?.secondaryTextColor,
138
- }, children: data.rows.length > 0 &&
161
+ }, children: rows.length > 0 &&
139
162
  (0, valueFormatter_1.valueFormatter)({
140
- value: data.rows[0][`comparison_${data.xAxisField}`] ??
141
- 0,
163
+ value: rows[0][`comparison_${data.xAxisField}`] ?? 0,
142
164
  field: data.xAxisField,
143
165
  fields: [
144
166
  {
@@ -1,3 +1,4 @@
1
1
  /// <reference types="react" />
2
- export default function QuillTableComponent({ dashboardItem, onClickDashboardItem, isLoading, error, theme, style, children, }: any): JSX.Element;
2
+ import { DashboardItemProps } from '../../Dashboard';
3
+ export default function QuillTableComponent({ dashboardItem, onClick, isLoading, error, }: DashboardItemProps): JSX.Element;
3
4
  //# sourceMappingURL=TableComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AASA,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAiKnB"}
1
+ {"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA2JlC"}
@@ -12,7 +12,9 @@ const Context_1 = require("../../Context");
12
12
  const valueFormatter_1 = require("../../utils/valueFormatter");
13
13
  const ChartSkeleton_1 = __importDefault(require("../Chart/ChartSkeleton"));
14
14
  const ChartError_1 = __importDefault(require("../Chart/ChartError"));
15
- function QuillTableComponent({ dashboardItem, onClickDashboardItem, isLoading, error, theme, style, children, }) {
15
+ const hooks_1 = require("../../hooks");
16
+ function QuillTableComponent({ dashboardItem, onClick, isLoading, error, }) {
17
+ const theme = (0, hooks_1.useTheme)();
16
18
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
17
19
  const config = dashboardItem;
18
20
  const data = dashboardItem;
@@ -62,12 +64,7 @@ function QuillTableComponent({ dashboardItem, onClickDashboardItem, isLoading, e
62
64
  return formattedRow;
63
65
  }, {});
64
66
  });
65
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
66
- cursor: 'pointer',
67
- ...style,
68
- }, onClick: onClickDashboardItem
69
- ? () => onClickDashboardItem(dashboardItem)
70
- : () => { }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
67
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { cursor: 'pointer' }, onClick: () => onClick && onClick(dashboardItem), children: [(0, jsx_runtime_1.jsxs)("div", { style: {
71
68
  display: 'flex',
72
69
  flexDirection: 'row',
73
70
  justifyContent: 'space-between',
@@ -86,7 +83,7 @@ function QuillTableComponent({ dashboardItem, onClickDashboardItem, isLoading, e
86
83
  display: 'block',
87
84
  maxWidth: '100%',
88
85
  overflow: 'hidden',
89
- }, children: dashboardItem?.name }), onClickDashboardItem ? ((0, jsx_runtime_1.jsx)("div", { style: {
86
+ }, children: dashboardItem?.name }), onClick ? ((0, jsx_runtime_1.jsx)("div", { style: {
90
87
  fontFamily: theme.fontFamily,
91
88
  color: theme.primaryTextColor,
92
89
  boxSizing: 'content-box',
@@ -102,7 +99,7 @@ function QuillTableComponent({ dashboardItem, onClickDashboardItem, isLoading, e
102
99
  } })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, { containerStyle: {
103
100
  width: '100%',
104
101
  height: '400px',
105
- } })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: formattedRows ?? [], columns: columns ?? data.yAxisFields, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
102
+ } })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: formattedRows ?? [], columns: columns ?? data.yAxisFields, rowsPerPage: 10, containerStyle: {
106
103
  width: '100%',
107
104
  height: '400px',
108
105
  }, showDownloadCSVButton: true, downloadCSV: () => {
@@ -1,3 +1,6 @@
1
1
  import { SelectComponentProps } from './UiComponents';
2
- export declare function QuillSelectComponent({ options, value, onChange, theme, label, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
2
+ /**
3
+ * A robust select component that implements the new minimal Select interface.
4
+ */
5
+ export declare function QuillSelectComponent({ options, value, onChange, label, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
3
6
  //# sourceMappingURL=QuillSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE,oBAAoB,2CAwMtB"}
1
+ {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,oBAAoB,2CA0MtB"}
@@ -4,17 +4,19 @@ exports.QuillSelectComponent = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const hooks_1 = require("../hooks");
6
6
  const react_1 = require("react");
7
- function QuillSelectComponent({ options, value, onChange, theme, label, }) {
7
+ const Context_1 = require("../Context");
8
+ /**
9
+ * A robust select component that implements the new minimal Select interface.
10
+ */
11
+ function QuillSelectComponent({ options, value, onChange, label, }) {
12
+ const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
8
13
  const [showModal, setShowModal] = (0, react_1.useState)(false);
9
14
  const modalRef = (0, react_1.useRef)(null);
10
- (0, hooks_1.useOnClickOutside)(modalRef, (e) => {
11
- setShowModal(false);
12
- });
15
+ (0, hooks_1.useOnClickOutside)(modalRef, (e) => setShowModal(false));
13
16
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
14
17
  position: 'relative',
15
18
  width: 200,
16
19
  minWidth: 200,
17
- boxShadow: 'rgba(0, 0, 0, 0.1) 0px 1px 5px 0px',
18
20
  borderRadius: '6px',
19
21
  }, children: [label && ((0, jsx_runtime_1.jsx)("div", { style: {
20
22
  fontSize: 14,
@@ -65,7 +67,6 @@ function QuillSelectComponent({ options, value, onChange, theme, label, }) {
65
67
  paddingBottom: 6,
66
68
  paddingLeft: 6,
67
69
  paddingRight: 6,
68
- boxShadow: '0px 1px 12px 0px rgba(56, 65, 81, 0.1)',
69
70
  fontFamily: theme.fontFamily,
70
71
  maxHeight: '50vh',
71
72
  overflow: 'scroll',
@@ -88,7 +89,9 @@ function QuillSelectComponent({ options, value, onChange, theme, label, }) {
88
89
  height: 34,
89
90
  minHeight: 34,
90
91
  }, className: "quill-option", onClick: () => {
91
- onChange('');
92
+ // Manually create a synthetic ChangeEvent and pass it to callback
93
+ const changeEvent = { target: { value: '' } };
94
+ onChange(changeEvent);
92
95
  setShowModal(false);
93
96
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
94
97
  .quill-option {
@@ -116,7 +119,9 @@ function QuillSelectComponent({ options, value, onChange, theme, label, }) {
116
119
  minHeight: 34,
117
120
  overflow: 'hidden',
118
121
  }, className: "quill-option", onClick: () => {
119
- onChange(option.value);
122
+ // Manually create a synthetic ChangeEvent and pass it to callback
123
+ const changeEvent = { target: { value: option.value } };
124
+ onChange(changeEvent);
120
125
  setShowModal(false);
121
126
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
122
127
  .quill-option {
@@ -1,3 +1,17 @@
1
- import { TableComponentProps } from './UiComponents';
2
- export default function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFileName, containerStyle, LoadingComponent, rowsPerPage, emptyStateLabel, downloadCSV, }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
1
+ import React from 'react';
2
+ import { ButtonComponentProps } from './UiComponents';
3
+ export interface TableComponentProps {
4
+ rows: any[];
5
+ columns: any[];
6
+ containerStyle?: React.CSSProperties;
7
+ isLoading?: boolean;
8
+ showDownloadCSVButton?: boolean;
9
+ downloadFileName?: string;
10
+ downloadCSV?: () => void;
11
+ LoadingComponent?: () => JSX.Element;
12
+ DownloadCSVButtonComponent?: (props: ButtonComponentProps) => JSX.Element;
13
+ rowsPerPage?: number;
14
+ emptyStateLabel?: string;
15
+ }
16
+ export default function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadFileName, containerStyle, LoadingComponent, rowsPerPage, emptyStateLabel, downloadCSV, }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
3
17
  //# sourceMappingURL=QuillTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMrD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,2CAwZrB"}
1
+ {"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,2CAwZrB"}
@@ -8,7 +8,7 @@ const react_1 = require("react");
8
8
  const valueFormatter_1 = require("../utils/valueFormatter");
9
9
  const Context_1 = require("../Context");
10
10
  const ChartSkeleton_1 = __importDefault(require("./Chart/ChartSkeleton"));
11
- function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFileName, containerStyle, LoadingComponent = () => (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {}), rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, }) {
11
+ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadFileName, containerStyle, LoadingComponent = () => (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {}), rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, }) {
12
12
  const [activeRows, setActiveRows] = (0, react_1.useState)([]);
13
13
  const [page, setPage] = (0, react_1.useState)(1);
14
14
  const [maxPage, setMaxPage] = (0, react_1.useState)(1);
@@ -18,7 +18,7 @@ function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFil
18
18
  const [isPaginating, setIsPaginating] = (0, react_1.useState)(true);
19
19
  (0, react_1.useEffect)(() => {
20
20
  setIsPaginating(true);
21
- if (rows.length === 0 && loading) {
21
+ if (rows.length === 0 && isLoading) {
22
22
  return;
23
23
  }
24
24
  const sortedRows = [...rows];
@@ -35,7 +35,7 @@ function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFil
35
35
  }
36
36
  setActiveRows(sortedRows.slice(start, end));
37
37
  setIsPaginating(false);
38
- }, [page, rows, sortColumn, sortDirection, loading, columns]);
38
+ }, [page, rows, sortColumn, sortDirection, isLoading, columns]);
39
39
  const increasePage = () => {
40
40
  if (page === maxPage) {
41
41
  return;
@@ -57,7 +57,7 @@ function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFil
57
57
  setSortDirection('desc');
58
58
  }
59
59
  };
60
- if (loading || isPaginating) {
60
+ if (isLoading || isPaginating) {
61
61
  return ((0, jsx_runtime_1.jsx)("div", { style: {
62
62
  ...containerStyle,
63
63
  }, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) }));
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TextInputComponentProps } from '../UiComponents';
3
- export default function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, HandleButton, }: {
3
+ export default function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, }: {
4
4
  onSave: any;
5
5
  orderedColumnNames: any;
6
6
  setOrderedColumnNames: any;
@@ -17,9 +17,15 @@ export default function AddColumnPopover({ onSave, orderedColumnNames, setOrdere
17
17
  defaultTable: any;
18
18
  setPivot: any;
19
19
  TextInput: (props: TextInputComponentProps) => JSX.Element;
20
- SelectColumn: any;
20
+ SelectColumn: (props: {
21
+ label: string;
22
+ isSelected: boolean;
23
+ setSelected: () => void;
24
+ DragHandle: ({ dragIcon }: {
25
+ dragIcon: () => JSX.Element;
26
+ }) => JSX.Element;
27
+ }) => JSX.Element;
21
28
  SecondaryButton: any;
22
29
  Button: any;
23
- HandleButton: any;
24
30
  }): import("react/jsx-runtime").JSX.Element;
25
31
  //# sourceMappingURL=AddColumnPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddColumnPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnPopover.tsx"],"names":[],"mappings":";AAmBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,EACN,YAAY,GACb,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,YAAY,EAAE,GAAG,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,GAAG,CAAC;CACnB,2CAsNA"}
1
+ {"version":3,"file":"AddColumnPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnPopover.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAA;SAAE,KAAK,GAAG,CAAC,OAAO,CAAC;KAC5E,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;CACb,2CAoNA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
+ /* eslint-disable no-unused-vars */
4
5
  const react_1 = require("react");
5
6
  const core_1 = require("@dnd-kit/core");
6
7
  const sortable_1 = require("@dnd-kit/sortable");
@@ -8,7 +9,7 @@ const utilities_1 = require("@dnd-kit/utilities");
8
9
  const Context_1 = require("../../Context");
9
10
  const width_1 = require("../../utils/width");
10
11
  const textProcessing_1 = require("../../utils/textProcessing");
11
- function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, HandleButton, }) {
12
+ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, }) {
12
13
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
13
14
  const [search, setSearch] = (0, react_1.useState)('');
14
15
  const [searchResults, setSearchResults] = (0, react_1.useState)(orderedColumnNames);
@@ -43,7 +44,8 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
43
44
  setSearchResults(orderedColumnNames
44
45
  .filter((row) => {
45
46
  const [table, _column] = row.split('.');
46
- return (selectedColumns.length === 0 || selectedColumns[0].startsWith(table));
47
+ const selectedTable = selectedColumns[0]?.split('.')[0];
48
+ return selectedColumns.length === 0 || selectedTable === table;
47
49
  })
48
50
  .filter((row) => search.length === 0 ||
49
51
  row.includes(search) ||
@@ -71,7 +73,7 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
71
73
  overflowY: 'auto',
72
74
  maxWidth: '300px',
73
75
  }, children: [searchResults.map((value) => {
74
- return ((0, jsx_runtime_1.jsx)(SortableItem, { theme: theme, selectedColumns: selectedColumns, setSelectedColumns: setSelectedColumns, id: value, label: value.replace('.', ' | '), SelectColumn: SelectColumn, HandleButton: HandleButton }, value));
76
+ return ((0, jsx_runtime_1.jsx)(SortableItem, { selectedColumns: selectedColumns, setSelectedColumns: setSelectedColumns, id: value, label: value.replace('.', ' | '), SelectColumn: SelectColumn }, value));
75
77
  }), search.length > 0 && searchResults.length === 0 && ((0, jsx_runtime_1.jsx)("div", { style: { fontFamily: theme?.fontFamily }, children: "No results found" }))] }) }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
76
78
  display: 'flex',
77
79
  width: '100%',
@@ -125,7 +127,7 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
125
127
  }, label: "Select columns" })] })] }));
126
128
  }
127
129
  exports.default = AddColumnPopover;
128
- const SortableItem = ({ id, label, setSelectedColumns, theme, selectedColumns, SelectColumn, HandleButton, }) => {
130
+ const SortableItem = ({ id, label, setSelectedColumns, selectedColumns, SelectColumn, }) => {
129
131
  const { attributes, listeners, setNodeRef, transform, transition } = (0, sortable_1.useSortable)({ id: id });
130
132
  const style = {
131
133
  transform: utilities_1.CSS.Transform.toString(transform),
@@ -141,7 +143,7 @@ const SortableItem = ({ id, label, setSelectedColumns, theme, selectedColumns, S
141
143
  }
142
144
  });
143
145
  };
144
- return ((0, jsx_runtime_1.jsx)("div", { style: { userSelect: 'none', ...style }, ref: setNodeRef, children: (0, jsx_runtime_1.jsx)(SelectColumn, { selected: selectedColumns?.includes(id), setSelected: handleSelect, label: label, children: (0, jsx_runtime_1.jsx)("div", { style: {
146
+ return ((0, jsx_runtime_1.jsx)("div", { style: { userSelect: 'none', ...style }, ref: setNodeRef, children: (0, jsx_runtime_1.jsx)(SelectColumn, { isSelected: selectedColumns?.includes(id), setSelected: handleSelect, label: label, DragHandle: (props) => ((0, jsx_runtime_1.jsx)("div", { style: {
145
147
  cursor: 'grab',
146
- }, ...attributes, ...listeners, children: (0, jsx_runtime_1.jsx)(HandleButton, {}) }) }) }));
148
+ }, ...attributes, ...listeners, children: (0, jsx_runtime_1.jsx)(props.dragIcon, {}) })) }) }));
147
149
  };
@@ -1,6 +1,18 @@
1
1
  /// <reference types="react" />
2
2
  import { ButtonComponentProps, TextInputComponentProps } from '../UiComponents';
3
- export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle, LimitPopover, EditPopover, TextInput, Button, SecondaryButton, children, }: any) => import("react/jsx-runtime").JSX.Element;
3
+ import { LimitPopoverComponentProps } from './ui';
4
+ export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle, LimitPopover, EditPopover, TextInput, Button, SecondaryButton, }: {
5
+ limit: any;
6
+ handleDelete: () => void;
7
+ setOpenPopover: (arg: any) => void;
8
+ onSave: (column: any, direction: any) => void;
9
+ popoverTitle?: string | undefined;
10
+ LimitPopover: (props: LimitPopoverComponentProps) => JSX.Element;
11
+ EditPopover: any;
12
+ TextInput: any;
13
+ Button: (props: ButtonComponentProps) => JSX.Element;
14
+ SecondaryButton: (props: ButtonComponentProps) => JSX.Element;
15
+ }) => import("react/jsx-runtime").JSX.Element;
4
16
  export interface AddLimitPopoverProps {
5
17
  onSave: (limit: number) => void;
6
18
  initialLimit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,aAAa,4IAYvB,GAAG,4CAoCL,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,oFAQzB,oBAAoB,4CA+CtB,CAAC"}
1
+ {"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,MAAM,CAAC;AAElD,eAAO,MAAM,aAAa;WAYjB,GAAG;kBACI,MAAM,IAAI;0BACF,GAAG,KAAK,IAAI;qBACjB,GAAG,aAAa,GAAG,KAAK,IAAI;;0BAEvB,0BAA0B,KAAK,WAAW;iBACnD,GAAG;eACL,GAAG;oBACE,oBAAoB,KAAK,WAAW;6BAC3B,oBAAoB,KAAK,WAAW;6CAiC9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,oFAQzB,oBAAoB,4CA8CtB,CAAC"}
@@ -5,26 +5,16 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const UiComponents_1 = require("../UiComponents");
7
7
  const Context_1 = require("../../Context");
8
- const SORT_VALUE_TO_LABEL = {
9
- ASC: 'ascending',
10
- DESC: 'descending',
11
- };
12
- const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle = 'Edit limit', LimitPopover, EditPopover, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, children, }) => {
8
+ const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle = 'Edit limit', LimitPopover, EditPopover, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
13
9
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
14
10
  const handleClickDelete = (e) => {
15
11
  setOpenPopover(null);
16
12
  handleDelete();
17
13
  };
18
- return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(LimitPopover
19
- // @ts-ignore
20
- , {
21
- // @ts-ignore
22
- filterLabel: `limit ${limit.value[0].value}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
14
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(LimitPopover, { isOpen: isOpen, setIsOpen: setIsOpen, limitLabel: `limit ${limit.value[0].value}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
23
15
  setIsOpen(false);
24
16
  onSave(column, direction);
25
- }, isEdit: true, onDelete: handleClickDelete, initialLimit: limit.value[0].value, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
26
- handleDelete();
27
- } }) }));
17
+ }, isEdit: true, onDelete: handleClickDelete, initialLimit: limit.value[0].value, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton }) }) }));
28
18
  };
29
19
  exports.LimitSentence = LimitSentence;
30
20
  const AddLimitPopover = ({ onSave, initialLimit = 0, isEdit = false, onDelete = () => { }, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
@@ -35,7 +25,7 @@ const AddLimitPopover = ({ onSave, initialLimit = 0, isEdit = false, onDelete =
35
25
  flexDirection: 'row',
36
26
  gap: 12,
37
27
  padding: '6px 0px',
38
- }, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_limit_input', value: limit, width: 200,
28
+ }, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_limit_input', value: limit.toString() ?? initialLimit.toString(), width: 200,
39
29
  // style={{ minHeight: 32, padding: '6px 12px' }}
40
30
  onChange: (e) => {
41
31
  if (Number.isNaN(parseFloat(e.target.value || '0'))) {
@@ -1,3 +1,23 @@
1
- export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle, SortPopover, EditPopover, Select, Button, SecondaryButton, children, }: any) => import("react/jsx-runtime").JSX.Element | null;
1
+ /// <reference types="react" />
2
+ import { ButtonComponentProps, SelectComponentProps } from '../UiComponents';
3
+ import { SortPopoverComponentProps } from './ui';
4
+ export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle, SortPopover, EditPopover, Select, Button, SecondaryButton, }: {
5
+ sortData: any;
6
+ columns: any;
7
+ setIsPending: any;
8
+ setEditPopoverKey: any;
9
+ setActiveEditItem: any;
10
+ setOpenPopover: any;
11
+ setActivePath: any;
12
+ keyPrefix?: any;
13
+ handleDelete: any;
14
+ onSave: any;
15
+ popoverTitle?: string | undefined;
16
+ SortPopover: (props: SortPopoverComponentProps) => JSX.Element;
17
+ EditPopover: any;
18
+ Select?: ((props: SelectComponentProps) => JSX.Element) | undefined;
19
+ Button?: ((props: ButtonComponentProps) => JSX.Element) | undefined;
20
+ SecondaryButton?: ((props: ButtonComponentProps) => JSX.Element) | undefined;
21
+ }) => import("react/jsx-runtime").JSX.Element | null;
2
22
  export declare const AddSortPopover: ({ onSave, columns, isEdit, onDelete, column, Select, Button, SecondaryButton, }: any) => import("react/jsx-runtime").JSX.Element;
3
23
  //# sourceMappingURL=AddSortPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,kOAkBtB,GAAG,mDA8CL,CAAC;AAEF,eAAO,MAAM,cAAc,oFASxB,GAAG,4CAiEL,CAAC"}
1
+ {"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAGpB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAC;AAOjD,eAAO,MAAM,YAAY;cAkBb,GAAG;aACJ,GAAG;kBACE,GAAG;uBACE,GAAG;uBACH,GAAG;oBACN,GAAG;mBACJ,GAAG;gBACN,GAAG;kBACD,GAAG;YACT,GAAG;;yBAEU,yBAAyB,KAAK,WAAW;iBACjD,GAAG;sBACC,oBAAoB,KAAK,WAAW;sBACpC,oBAAoB,KAAK,WAAW;+BAC3B,oBAAoB,KAAK,WAAW;oDAoD/D,CAAC;AAEF,eAAO,MAAM,cAAc,oFASxB,GAAG,4CA6DL,CAAC"}
@@ -5,14 +5,21 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const QuillSelect_1 = require("../QuillSelect");
7
7
  const UiComponents_1 = require("../UiComponents");
8
- const Context_1 = require("../../Context");
9
8
  const textProcessing_1 = require("../../utils/textProcessing");
10
9
  const SORT_VALUE_TO_LABEL = {
11
10
  ASC: 'ascending',
12
11
  DESC: 'descending',
13
12
  };
14
- const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle = 'Edit Sort', SortPopover, EditPopover, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, children, }) => {
13
+ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle = 'Edit Sort', SortPopover, EditPopover, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
15
14
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
15
+ const handleSetIsOpen = (isOpen) => {
16
+ setIsOpen(isOpen);
17
+ if (!isOpen) {
18
+ setIsPending(false);
19
+ setActiveEditItem(null);
20
+ setActivePath(null);
21
+ }
22
+ };
16
23
  const handleClickDelete = (e) => {
17
24
  e.stopPropagation(); // don't call onClick handler
18
25
  setIsPending(false);
@@ -24,38 +31,29 @@ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopov
24
31
  if (!sortData && (!sortData.expr.column || !sortData.expr.value)) {
25
32
  return null;
26
33
  }
27
- return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SortPopover
28
- // @ts-ignore
29
- , {
30
- // @ts-ignore
31
- filterLabel: `${(0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.column) || (0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.value)} ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
34
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SortPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, sortLabel: `${(0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.column) || (0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.value)} ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
32
35
  setIsOpen(false);
33
36
  onSave(column, direction);
34
- }, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, Select: Select, Button: Button, SecondaryButton: SecondaryButton }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
35
- setIsPending(false);
36
- setActiveEditItem(null);
37
- setActivePath(null);
38
- } }) }));
37
+ }, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, Select: Select, Button: Button, SecondaryButton: SecondaryButton }) }) }));
39
38
  };
40
39
  exports.SortSentence = SortSentence;
41
40
  const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
42
41
  const [sortColumn, setSortColumn] = (0, react_1.useState)(column || '');
43
42
  const [sortDirection, setSortDirection] = (0, react_1.useState)('ASC');
44
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
45
43
  return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
46
44
  display: 'flex',
47
45
  flexDirection: 'row',
48
46
  gap: 12,
49
47
  padding: '6px 0px',
50
- }, children: [(0, jsx_runtime_1.jsx)(Select, { theme: theme, value: sortColumn, onChange: (value) => {
51
- setSortColumn(value);
48
+ }, children: [(0, jsx_runtime_1.jsx)(Select, { value: sortColumn, onChange: (e) => {
49
+ setSortColumn(e.target.value);
52
50
  }, options: [
53
51
  ...columns.map((column) => ({
54
52
  label: (0, textProcessing_1.snakeCaseToTitleCase)(column.split('.')[1] || ''),
55
53
  value: column.split('.')[1],
56
54
  })),
57
- ] }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: sortDirection, onChange: (value) => {
58
- setSortDirection(value);
55
+ ] }), (0, jsx_runtime_1.jsx)(Select, { value: sortDirection, onChange: (e) => {
56
+ setSortDirection(e.target.value);
59
57
  }, options: [
60
58
  { label: 'Ascending', value: 'ASC' },
61
59
  { label: 'Descending', value: 'DESC' },
@@ -251,7 +251,7 @@ exports.DATE_DESCRIPTION_MAP = {
251
251
  },
252
252
  },
253
253
  },
254
- })]: (node) => `${cleanDateFieldName(node.left.args.value[1].column)} in the last ${node.right.right.expr.value.toLowerCase()}`,
254
+ })]: (node) => `${cleanDateFieldName(node.left.args.value[1].column)} in the previous ${node.right.right.expr.value.toLowerCase()}`,
255
255
  [JSON.stringify({
256
256
  type: 'binary_expr',
257
257
  left: {
@@ -20,8 +20,9 @@ export declare function convertGroupBy(ast: AST, prevPivot: Pivot | undefined, s
20
20
  pivot: Pivot;
21
21
  } | {
22
22
  pivot: Partial<{
23
- aggregationType: "sum" | "average" | "count" | "min" | "max";
23
+ aggregationType: "sum" | "average" | "count" | "min" | "max" | "avg";
24
24
  valueField: string;
25
+ valueFieldType?: string | undefined;
25
26
  rowField?: string | undefined;
26
27
  rowFieldType?: string | undefined;
27
28
  columnField?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAMJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AASjD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAuCpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CAwBZ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,SAAS,mBAAc,EACvB,YAAY,EAAE,SAAS,EAAE;;;;;;;;;;;;;;EA8b1B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;;;EA6G5D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyJtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAMJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AASjD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAuCpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CAwBZ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,SAAS,mBAAc,EACvB,YAAY,EAAE,SAAS,EAAE;;;;;;;;;;;;;;;EAwd1B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;;;EA6G5D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyJtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E"}