@quillsql/react 2.13.2 → 2.13.4

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 (123) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +3 -13
  3. package/dist/cjs/ChartBuilder.d.ts +1 -1
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +2 -2
  6. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  7. package/dist/cjs/ChartEditor.js +1 -3
  8. package/dist/cjs/Context.d.ts +51 -15
  9. package/dist/cjs/Context.d.ts.map +1 -1
  10. package/dist/cjs/Context.js +44 -24
  11. package/dist/cjs/Dashboard.d.ts +1 -1
  12. package/dist/cjs/Dashboard.d.ts.map +1 -1
  13. package/dist/cjs/Dashboard.js +39 -39
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +1 -1
  15. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  16. package/dist/cjs/ReportBuilder.js +179 -114
  17. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  18. package/dist/cjs/SQLEditor.js +18 -11
  19. package/dist/cjs/Table.js +1 -1
  20. package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
  21. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  22. package/dist/cjs/components/Dashboard/DataLoader.js +109 -43
  23. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  24. package/dist/cjs/components/Dashboard/MetricComponent.js +14 -3
  25. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +1 -1
  26. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  27. package/dist/cjs/components/QuillMultiSelectWithCombo.js +6 -2
  28. package/dist/cjs/components/QuillSelect.js +3 -3
  29. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  30. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  31. package/dist/cjs/components/QuillSelectWithCombo.js +14 -4
  32. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +33 -0
  33. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -0
  34. package/dist/cjs/components/ReportBuilder/FilterStack.js +121 -0
  35. package/dist/cjs/components/UiComponents.d.ts +1 -0
  36. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  37. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  38. package/dist/cjs/hooks/useDashboard.js +41 -46
  39. package/dist/cjs/hooks/useExport.d.ts +14 -1
  40. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  41. package/dist/cjs/hooks/useExport.js +120 -38
  42. package/dist/cjs/models/Client.d.ts +2 -0
  43. package/dist/cjs/models/Client.d.ts.map +1 -1
  44. package/dist/cjs/models/Filter.d.ts +1 -1
  45. package/dist/cjs/models/Filter.d.ts.map +1 -1
  46. package/dist/cjs/utils/client.d.ts.map +1 -1
  47. package/dist/cjs/utils/client.js +1 -0
  48. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  49. package/dist/cjs/utils/dashboard.js +3 -1
  50. package/dist/cjs/utils/dataFetcher.d.ts +2 -2
  51. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  52. package/dist/cjs/utils/dataFetcher.js +30 -22
  53. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  54. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  55. package/dist/cjs/utils/filterProcessing.js +3 -3
  56. package/dist/cjs/utils/report.d.ts +2 -2
  57. package/dist/cjs/utils/report.d.ts.map +1 -1
  58. package/dist/cjs/utils/report.js +7 -4
  59. package/dist/cjs/utils/tableProcessing.d.ts +1 -1
  60. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  61. package/dist/cjs/utils/tableProcessing.js +6 -2
  62. package/dist/esm/Chart.d.ts.map +1 -1
  63. package/dist/esm/Chart.js +3 -13
  64. package/dist/esm/ChartBuilder.d.ts +1 -1
  65. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  66. package/dist/esm/ChartBuilder.js +2 -2
  67. package/dist/esm/ChartEditor.d.ts.map +1 -1
  68. package/dist/esm/ChartEditor.js +1 -3
  69. package/dist/esm/Context.d.ts +51 -15
  70. package/dist/esm/Context.d.ts.map +1 -1
  71. package/dist/esm/Context.js +44 -24
  72. package/dist/esm/Dashboard.d.ts +1 -1
  73. package/dist/esm/Dashboard.d.ts.map +1 -1
  74. package/dist/esm/Dashboard.js +41 -41
  75. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +1 -1
  76. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  77. package/dist/esm/ReportBuilder.js +182 -117
  78. package/dist/esm/SQLEditor.d.ts.map +1 -1
  79. package/dist/esm/SQLEditor.js +18 -11
  80. package/dist/esm/Table.js +1 -1
  81. package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
  82. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  83. package/dist/esm/components/Dashboard/DataLoader.js +109 -43
  84. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  85. package/dist/esm/components/Dashboard/MetricComponent.js +14 -3
  86. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +1 -1
  87. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  88. package/dist/esm/components/QuillMultiSelectWithCombo.js +6 -2
  89. package/dist/esm/components/QuillSelect.js +3 -3
  90. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  91. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  92. package/dist/esm/components/QuillSelectWithCombo.js +14 -4
  93. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +33 -0
  94. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -0
  95. package/dist/esm/components/ReportBuilder/FilterStack.js +118 -0
  96. package/dist/esm/components/UiComponents.d.ts +1 -0
  97. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  98. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  99. package/dist/esm/hooks/useDashboard.js +41 -46
  100. package/dist/esm/hooks/useExport.d.ts +14 -1
  101. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  102. package/dist/esm/hooks/useExport.js +122 -40
  103. package/dist/esm/models/Client.d.ts +2 -0
  104. package/dist/esm/models/Client.d.ts.map +1 -1
  105. package/dist/esm/models/Filter.d.ts +1 -1
  106. package/dist/esm/models/Filter.d.ts.map +1 -1
  107. package/dist/esm/utils/client.d.ts.map +1 -1
  108. package/dist/esm/utils/client.js +1 -0
  109. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  110. package/dist/esm/utils/dashboard.js +3 -1
  111. package/dist/esm/utils/dataFetcher.d.ts +2 -2
  112. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  113. package/dist/esm/utils/dataFetcher.js +30 -22
  114. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  115. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  116. package/dist/esm/utils/filterProcessing.js +3 -3
  117. package/dist/esm/utils/report.d.ts +2 -2
  118. package/dist/esm/utils/report.d.ts.map +1 -1
  119. package/dist/esm/utils/report.js +7 -4
  120. package/dist/esm/utils/tableProcessing.d.ts +1 -1
  121. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  122. package/dist/esm/utils/tableProcessing.js +6 -2
  123. package/package.json +3 -3
@@ -51,7 +51,9 @@ function filterValuesEquivalent(filters1, filters2) {
51
51
  mappedFilters1[key].table !== mappedFilters2[key]?.table ||
52
52
  mappedFilters1[key].filterType !== mappedFilters2[key]?.filterType ||
53
53
  mappedFilters1[key].startDate !== mappedFilters2[key]?.startDate ||
54
- mappedFilters1[key].endDate !== mappedFilters2[key]?.endDate) {
54
+ mappedFilters1[key].endDate !== mappedFilters2[key]?.endDate ||
55
+ mappedFilters1[key].comparisonRange !==
56
+ mappedFilters2[key]?.comparisonRange) {
55
57
  return false;
56
58
  }
57
59
  }
@@ -69,21 +71,44 @@ function DataLoader({ item, children, filters, additionalProcessing: defaultAddi
69
71
  const previousFilters = (0, react_1.useRef)(null);
70
72
  const [rowCount, setRowCount] = (0, react_1.useState)(dashboard[item.id]?.rowCount ?? 0);
71
73
  const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
74
+ const rowsRequestId = (0, react_1.useRef)(0);
75
+ const rowsAbortController = (0, react_1.useRef)(null);
76
+ const rowCountRequestId = (0, react_1.useRef)(0);
77
+ const rowCountAbortController = (0, react_1.useRef)(null);
78
+ const updateTableRowsRequestId = (0, react_1.useRef)(0);
79
+ const updateTableRowsAbortController = (0, react_1.useRef)(null);
72
80
  const fetchRowCount = async (processing) => {
73
81
  if (!client || !filters) {
74
82
  return;
75
83
  }
84
+ const fetchReportRowCountRequestId = rowCountRequestId.current + 1;
85
+ rowCountRequestId.current = fetchReportRowCountRequestId;
76
86
  setRowCountIsLoading(true);
77
- const rowCount = await (0, report_1.fetchReportRowCount)(item.id, client, true, filters, processing, schemaData.customFields);
78
- if (rowCount) {
79
- dispatch({
80
- type: 'UPDATE_DASHBOARD_ITEM',
81
- id: item.id,
82
- data: { rowCount },
83
- });
84
- setRowCount(rowCount);
87
+ rowCountAbortController.current?.abort();
88
+ rowCountAbortController.current = new AbortController();
89
+ try {
90
+ const rowCount = await (0, report_1.fetchReportRowCount)(item.id, client, true, filters, processing, schemaData.customFields, rowCountAbortController.current.signal);
91
+ rowCountAbortController.current = null;
92
+ if (rowCount) {
93
+ dispatch({
94
+ type: 'UPDATE_DASHBOARD_ITEM',
95
+ id: item.id,
96
+ data: { rowCount },
97
+ });
98
+ setRowCount(rowCount);
99
+ }
100
+ }
101
+ catch (e) {
102
+ if (e instanceof Error && e.name === 'AbortError') {
103
+ // console.log('Aborted fetching row count');
104
+ return;
105
+ }
106
+ }
107
+ finally {
108
+ if (fetchReportRowCountRequestId === rowCountRequestId.current) {
109
+ setRowCountIsLoading(false);
110
+ }
85
111
  }
86
- setRowCountIsLoading(false);
87
112
  };
88
113
  const onPageChange = (page) => {
89
114
  if (additionalProcessing &&
@@ -102,10 +127,10 @@ function DataLoader({ item, children, filters, additionalProcessing: defaultAddi
102
127
  }
103
128
  };
104
129
  const onSortChange = (sort) => {
105
- if ((0, paginationProcessing_1.shouldSortInMemory)(paginationProcessing_1.DEFAULT_PAGINATION, report.rowCount, !!report.pivot)) {
130
+ if ((0, paginationProcessing_1.shouldSortInMemory)(additionalProcessing.page ?? paginationProcessing_1.DEFAULT_PAGINATION, report.rowCount, !!report.pivot)) {
106
131
  return;
107
132
  }
108
- const updatedProcessing = { page: paginationProcessing_1.DEFAULT_PAGINATION, sort };
133
+ const updatedProcessing = { page: additionalProcessing.page, sort };
109
134
  fetchReportHelper(additionalProcessing);
110
135
  updateTableRows(updatedProcessing, true);
111
136
  setPreviousPage(0);
@@ -115,10 +140,15 @@ function DataLoader({ item, children, filters, additionalProcessing: defaultAddi
115
140
  return;
116
141
  }
117
142
  if (!loading) {
143
+ const fetchUpdateTableRowsRequestId = updateTableRowsRequestId.current + 1;
144
+ updateTableRowsRequestId.current = fetchUpdateTableRowsRequestId;
118
145
  setLoading(true);
119
146
  try {
147
+ updateTableRowsAbortController.current?.abort();
148
+ updateTableRowsAbortController.current = new AbortController();
120
149
  const updatedProcessing = { ...additionalProcessing, ...processing };
121
- const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(report.id, client, updatedProcessing, filters, schemaData.customFields, true);
150
+ const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(report.id, client, updatedProcessing, filters, schemaData.customFields, true, undefined, updateTableRowsAbortController.current.signal);
151
+ updateTableRowsAbortController.current = null;
122
152
  if (paginatedRows.error) {
123
153
  throw new Error('Error fetching chart');
124
154
  }
@@ -128,11 +158,14 @@ function DataLoader({ item, children, filters, additionalProcessing: defaultAddi
128
158
  }
129
159
  setReport({ ...report, rows: tempRows });
130
160
  setAdditionProcessing(updatedProcessing);
131
- setLoading(false);
132
161
  }
133
162
  catch (e) {
134
163
  console.log(e);
135
- setLoading(false);
164
+ }
165
+ finally {
166
+ if (fetchUpdateTableRowsRequestId === updateTableRowsRequestId.current) {
167
+ setLoading(false);
168
+ }
136
169
  }
137
170
  }
138
171
  };
@@ -152,19 +185,38 @@ function DataLoader({ item, children, filters, additionalProcessing: defaultAddi
152
185
  setReport(convertedReport);
153
186
  return;
154
187
  }
188
+ const fetchRowsRequestId = rowsRequestId.current + 1;
189
+ rowsRequestId.current = fetchRowsRequestId;
155
190
  setLoading(true);
156
- const { report: fetchedReport, error } = await (0, report_1.fetchReport)(item.id, client, true, filters, processing, undefined, schemaData.customFields, true);
157
- dispatch({
158
- type: 'ADD_DASHBOARD_ITEM',
159
- id: item.id,
160
- data: { ...fetchedReport, triggerReload: false, rowCount: 0 }, // rowCount 0 indicates it's still loading if row length is nonzero
161
- });
162
- fetchRowCount(processing);
163
- const convertedReport = (0, report_1.convertInternalReportToReport)(fetchedReport);
164
- setReport(convertedReport);
165
- setAdditionProcessing(processing);
166
- setError(error);
167
- setLoading(false);
191
+ console.log('fetching', item.id, filters);
192
+ rowsAbortController.current?.abort();
193
+ rowsAbortController.current = new AbortController();
194
+ try {
195
+ const { report: fetchedReport, error } = await (0, report_1.fetchReport)(item.id, client, true, filters, processing, undefined, schemaData.customFields, true, false, rowsAbortController.current.signal);
196
+ rowsAbortController.current = null;
197
+ dispatch({
198
+ type: 'ADD_DASHBOARD_ITEM',
199
+ id: item.id,
200
+ data: { ...fetchedReport, triggerReload: false, rowCount: 0 }, // rowCount 0 indicates it's still loading if row length is nonzero
201
+ });
202
+ fetchRowCount(processing);
203
+ const convertedReport = (0, report_1.convertInternalReportToReport)(fetchedReport);
204
+ setReport(convertedReport);
205
+ setAdditionProcessing(processing);
206
+ setError(error);
207
+ }
208
+ catch (e) {
209
+ if (e instanceof Error && e.name === 'AbortError') {
210
+ // console.log('Aborted fetching rows');
211
+ return;
212
+ }
213
+ throw e;
214
+ }
215
+ finally {
216
+ if (fetchRowsRequestId === rowsRequestId.current) {
217
+ setLoading(false);
218
+ }
219
+ }
168
220
  };
169
221
  (0, react_1.useEffect)(() => {
170
222
  if (!filters) {
@@ -179,8 +231,7 @@ function DataLoader({ item, children, filters, additionalProcessing: defaultAddi
179
231
  fetchReportHelper(additionalProcessing);
180
232
  }, [filters, item.id]);
181
233
  (0, react_1.useEffect)(() => {
182
- // @ts-ignore
183
- if (dashboard[item.id] && dashboard[item.id].triggerReload) {
234
+ if (dashboard[item.id]?.triggerReload) {
184
235
  fetchReportHelper(additionalProcessing);
185
236
  }
186
237
  }, [dashboard[item.id]]);
@@ -207,6 +258,7 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
207
258
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
208
259
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
209
260
  const previousFilters = (0, react_1.useRef)(null);
261
+ const fetchReportAbortController = (0, react_1.useRef)(null);
210
262
  const fetchReportHelper = async (useReportTask = true) => {
211
263
  if (!client || !filters) {
212
264
  return;
@@ -222,20 +274,34 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
222
274
  return;
223
275
  }
224
276
  setLoading(true);
225
- const { report, error } = await (0, report_1.fetchReport)(item.id, client, useReportTask, filters, {
226
- ...additionalProcessing,
227
- ...(item.pivot ? {} : { page: paginationProcessing_1.DEFAULT_PAGINATION }),
228
- }, dateBucket, schemaData.customFields);
229
- dispatch({
230
- type: 'ADD_DASHBOARD_ITEM',
231
- id: item.id,
232
- data: { ...report, triggerReload: false },
233
- });
234
- const convertedReport = (0, report_1.convertInternalReportToReport)(report);
235
- setReport(convertedReport);
236
- setLocalDateBucket(dateBucket);
237
- setError(error);
238
- setLoading(false);
277
+ fetchReportAbortController.current?.abort();
278
+ fetchReportAbortController.current = new AbortController();
279
+ try {
280
+ const { report, error } = await (0, report_1.fetchReport)(item.id, client, useReportTask, filters, {
281
+ ...additionalProcessing,
282
+ ...(item.pivot ? {} : { page: paginationProcessing_1.DEFAULT_PAGINATION }),
283
+ }, dateBucket, schemaData.customFields, undefined, undefined, fetchReportAbortController.current.signal);
284
+ fetchReportAbortController.current = null;
285
+ dispatch({
286
+ type: 'ADD_DASHBOARD_ITEM',
287
+ id: item.id,
288
+ data: { ...report, triggerReload: false },
289
+ });
290
+ const convertedReport = (0, report_1.convertInternalReportToReport)(report);
291
+ setReport(convertedReport);
292
+ setLocalDateBucket(dateBucket);
293
+ setError(error);
294
+ }
295
+ catch (e) {
296
+ if (e instanceof Error && e.name === 'AbortError') {
297
+ // console.log('Aborted fetching rows for chart');
298
+ return;
299
+ }
300
+ throw e;
301
+ }
302
+ finally {
303
+ setLoading(false);
304
+ }
239
305
  };
240
306
  (0, react_1.useEffect)(() => {
241
307
  if (!filters) {
@@ -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;AAMnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA+MhC"}
1
+ {"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,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,CA2NhC"}
@@ -15,8 +15,8 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
15
15
  const primaryMetricLabel = report?.filtersApplied?.date_range?.preset?.label;
16
16
  const comparisonKey = report?.filtersApplied?.date_range?.comparisonRange?.value;
17
17
  const comparisonLabel = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((opt) => opt.value === comparisonKey)?.text;
18
- return ((0, jsx_runtime_1.jsx)("div", { onClick: () => onClick && !error && onClick(report), style: {
19
- cursor: error || !onClick ? 'default' : 'pointer',
18
+ return ((0, jsx_runtime_1.jsx)("div", { onClick: () => onClick && onClick(report), style: {
19
+ cursor: !onClick ? 'default' : 'pointer',
20
20
  boxSizing: 'content-box',
21
21
  borderRadius: 8,
22
22
  paddingBottom: isLoading ? 0 : 30,
@@ -56,7 +56,18 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
56
56
  }, children: report?.name })) }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: {
57
57
  maxHeight: '78px',
58
58
  height: '100%',
59
- } })) : error ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : report.rows?.length === 0 ||
59
+ } })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error, containerStyle: {
60
+ display: 'flex',
61
+ flex: '1 0 auto',
62
+ height: '80%',
63
+ margin: 'auto',
64
+ justifyContent: 'center',
65
+ alignItems: 'center',
66
+ fontSize: 13,
67
+ color: theme?.secondaryTextColor,
68
+ maxWidth: '100%',
69
+ width: '100%',
70
+ } })) : report.rows?.length === 0 ||
60
71
  report.rows[0][report.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
61
72
  display: 'flex',
62
73
  flex: '1 0 auto',
@@ -2,7 +2,7 @@ import { MultiSelectComponentProps } from './UiComponents';
2
2
  /**
3
3
  * A robust select component that implements the new minimal Select interface.
4
4
  */
5
- export declare function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, }: MultiSelectComponentProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, }: MultiSelectComponentProps): import("react/jsx-runtime").JSX.Element;
6
6
  export declare const ListboxTextInput: ({ value, onChange, placeholder, }: {
7
7
  value: string;
8
8
  onChange: (e: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CA4U3B;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,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,yBAAyB,2CAiV3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAwDpB,CAAC"}
@@ -47,7 +47,7 @@ function displaySelectedOptionLabels({ options, value, }) {
47
47
  /**
48
48
  * A robust select component that implements the new minimal Select interface.
49
49
  */
50
- function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, }) {
50
+ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, }) {
51
51
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
52
52
  const [selectedOptions, setSelectedOptions] = (0, react_1.useState)([]);
53
53
  const [showModal, setShowModal] = (0, react_1.useState)(false);
@@ -150,8 +150,12 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
150
150
  height: 40,
151
151
  minHeight: 40,
152
152
  maxHeight: 40,
153
- }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; }
153
+ }, className: 'quill-select-button', onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; }
154
154
  .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
155
+ .quill-select-button:disabled {
156
+ cursor: not-allowed;
157
+ background: ${theme?.hoverBackgroundColor};
158
+ }
155
159
  ` }), (0, jsx_runtime_1.jsx)("span", { style: {
156
160
  textOverflow: 'ellipsis',
157
161
  whiteSpace: 'nowrap',
@@ -66,8 +66,8 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
66
66
  }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: `
67
67
  .quill-select-button { background: ${theme?.backgroundColor}; }
68
68
  .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
69
- .quill-select-button:disabled {
70
- opacity: 0.5;
69
+ .quill-select-button:disabled, {
70
+ background: ${theme?.hoverBackgroundColor};
71
71
  cursor: not-allowed;
72
72
  }
73
73
  ` }), (0, jsx_runtime_1.jsx)("span", { style: {
@@ -94,7 +94,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
94
94
  fontFamily: theme?.fontFamily,
95
95
  maxHeight: '50vh',
96
96
  overflow: 'scroll',
97
- }, children: [!isLoading && !hideEmptyOption && ((0, jsx_runtime_1.jsxs)("button", { style: {
97
+ }, children: [!isLoading && (!hideEmptyOption || !options.length) && ((0, jsx_runtime_1.jsxs)("button", { style: {
98
98
  display: 'flex',
99
99
  alignItems: 'center',
100
100
  justifyContent: 'space-between',
@@ -2,5 +2,5 @@ import { SelectComponentProps } from './UiComponents';
2
2
  /**
3
3
  * A robust select component that implements the new minimal Select interface.
4
4
  */
5
- export declare function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, disabled, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=QuillSelectWithCombo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,GAChB,EAAE,oBAAoB,2CA8QtB"}
1
+ {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,2CA2RtB"}
@@ -33,7 +33,7 @@ const QuillMultiSelectWithCombo_1 = require("./QuillMultiSelectWithCombo");
33
33
  /**
34
34
  * A robust select component that implements the new minimal Select interface.
35
35
  */
36
- function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, }) {
36
+ function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, disabled, }) {
37
37
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
38
38
  const [showModal, setShowModal] = (0, react_1.useState)(false);
39
39
  const modalRef = (0, react_1.useRef)(null);
@@ -116,7 +116,15 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
116
116
  height: 40,
117
117
  minHeight: 40,
118
118
  maxHeight: 40,
119
- }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; } .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }` }), (0, jsx_runtime_1.jsx)("span", { style: {
119
+ }, className: 'quill-select-button', onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: `
120
+ .quill-select-button { background: ${theme?.backgroundColor}; }
121
+ .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
122
+ .quill-select-button:disabled {
123
+ cursor: not-allowed;
124
+ background: ${theme?.hoverBackgroundColor};
125
+ }
126
+
127
+ ` }), (0, jsx_runtime_1.jsx)("span", { style: {
120
128
  textOverflow: 'ellipsis',
121
129
  whiteSpace: 'nowrap',
122
130
  overflow: 'hidden',
@@ -143,7 +151,9 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
143
151
  fontSize: 14,
144
152
  }, children: [options && options.length > 20 && !isLoading && ((0, jsx_runtime_1.jsx)(QuillMultiSelectWithCombo_1.ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
145
153
  setSearchQuery(value);
146
- } })), searchQuery === '' && !isLoading && !hideEmptyOption && ((0, jsx_runtime_1.jsxs)("button", { style: {
154
+ } })), searchQuery === '' &&
155
+ !isLoading &&
156
+ (!hideEmptyOption || !options.length) && ((0, jsx_runtime_1.jsxs)("button", { style: {
147
157
  display: 'flex',
148
158
  alignItems: 'center',
149
159
  justifyContent: 'space-between',
@@ -163,7 +173,7 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
163
173
  minHeight: 34,
164
174
  }, className: "quill-option", onClick: () => {
165
175
  // Manually create a synthetic ChangeEvent and pass it to callback
166
- const changeEvent = { target: { value: '' } };
176
+ const changeEvent = { target: { value: undefined } };
167
177
  onChange(changeEvent);
168
178
  setShowModal(false);
169
179
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
@@ -0,0 +1,33 @@
1
+ import { FilterTreeNode } from '../../utils/astFilterProcessing';
2
+ interface FilterStackProps {
3
+ client: any;
4
+ filterStack: FilterTreeNode[];
5
+ filterTree: FilterTreeNode | null;
6
+ defaultAST: any;
7
+ baseAst: any;
8
+ setBaseAst: any;
9
+ setFormData: any;
10
+ fetchSqlQuery: any;
11
+ schemaData: any;
12
+ defaultColumn: any;
13
+ defaultTable: any;
14
+ currentTable: any;
15
+ initialTableName: string;
16
+ globalUniqueValues: any;
17
+ globalUniqueValuesIsLoading: boolean;
18
+ columns: any;
19
+ removingFilter: any;
20
+ setRemovingFilter: any;
21
+ TabsComponent: any;
22
+ FilterPopoverComponent: any;
23
+ FilterModal: any;
24
+ ButtonComponent: any;
25
+ SecondaryButtonComponent: any;
26
+ SelectComponent: any;
27
+ TextInputComponent: any;
28
+ MultiSelectComponent: any;
29
+ actionsEnabled: boolean;
30
+ }
31
+ export default function FilterStack({ client, filterStack, filterTree, defaultAST, baseAst, setBaseAst, setFormData, fetchSqlQuery, schemaData, defaultColumn, defaultTable, currentTable, initialTableName, globalUniqueValues, globalUniqueValuesIsLoading, columns, removingFilter, setRemovingFilter, TabsComponent, FilterPopoverComponent, FilterModal, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, actionsEnabled, }: FilterStackProps): import("react/jsx-runtime").JSX.Element;
32
+ export {};
33
+ //# sourceMappingURL=FilterStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterStack.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterStack.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EAEf,MAAM,iCAAiC,CAAC;AAUzC,UAAU,gBAAgB;IACxB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,GAAG,CAAC;IACxB,2BAA2B,EAAE,OAAO,CAAC;IACrC,OAAO,EAAE,GAAG,CAAC;IACb,cAAc,EAAE,GAAG,CAAC;IACpB,iBAAiB,EAAE,GAAG,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC;IACnB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC;IACrB,wBAAwB,EAAE,GAAG,CAAC;IAC9B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,cAAqB,GACtB,EAAE,gBAAgB,2CAgLlB"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const ReportBuilder_1 = require("../../ReportBuilder");
5
+ const astFilterProcessing_1 = require("../../utils/astFilterProcessing");
6
+ const astProcessing_1 = require("../../utils/astProcessing");
7
+ const filterProcessing_1 = require("../../utils/filterProcessing");
8
+ const UiComponents_1 = require("../UiComponents");
9
+ const ui_1 = require("./ui");
10
+ const util_1 = require("./util");
11
+ function FilterStack({ client, filterStack, filterTree, defaultAST, baseAst, setBaseAst, setFormData, fetchSqlQuery, schemaData, defaultColumn, defaultTable, currentTable, initialTableName, globalUniqueValues, globalUniqueValuesIsLoading, columns, removingFilter, setRemovingFilter, TabsComponent, FilterPopoverComponent, FilterModal, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, actionsEnabled = true, }) {
12
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
13
+ display: 'flex',
14
+ flexDirection: 'column',
15
+ }, children: filterStack.map((item, index) => {
16
+ if (!item.leaf && (item.operator === 'and' || item.operator === 'or')) {
17
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
18
+ width: 'fit-content',
19
+ marginBottom: '8px',
20
+ marginTop: '8px',
21
+ }, children: (0, jsx_runtime_1.jsx)(TabsComponent, { value: item.operator.toUpperCase(), options: UiComponents_1.DEFAULT_TAB_OPTIONS, onChange: () => {
22
+ if (item.operator === 'and') {
23
+ item.operator = 'or';
24
+ }
25
+ else {
26
+ item.operator = 'and';
27
+ }
28
+ let newFormData = null;
29
+ if (filterTree) {
30
+ newFormData = (0, astFilterProcessing_1.filterTreeToAst)(filterTree, client.databaseType.toLowerCase());
31
+ }
32
+ const newAst = (0, util_1.deepCopy)({
33
+ ...defaultAST,
34
+ ...baseAst,
35
+ ...(!baseAst?.columns && {
36
+ columns: (0, astProcessing_1.getAllPossibleColumns)(baseAst, schemaData.schema).map((c) => {
37
+ const newColumn = (0, util_1.deepCopy)(defaultColumn);
38
+ newColumn.expr.column = c.field;
39
+ return newColumn;
40
+ }),
41
+ }),
42
+ ...(!baseAst?.from && {
43
+ from: [{ ...defaultTable, table: initialTableName }],
44
+ }),
45
+ where: newFormData,
46
+ });
47
+ setBaseAst(newAst);
48
+ setFormData(newFormData);
49
+ fetchSqlQuery(newAst, newFormData);
50
+ } }) }, index));
51
+ }
52
+ else if (item.value) {
53
+ return ((0, jsx_runtime_1.jsx)(ui_1.FilterPopoverWrapper, { schema: schemaData.schema.find((s) => s.name === currentTable || s.displayName === currentTable) ?? schemaData.schema[0], filter: item.value, filterLabel: item.value ? (0, filterProcessing_1.filterSentence)(item.value) : '', index: index, FilterTagComponent: FilterPopoverComponent, FilterModal: FilterModal, fieldValuesMap: globalUniqueValues, fieldValuesMapIsLoading: globalUniqueValuesIsLoading, priorFilters: filterStack.slice(0, index > 0 ? index - 1 : 0), columns: columns, client: client, customFields: schemaData.customFields, baseAst: baseAst, endpoint: ReportBuilder_1.QUILL_SERVER, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (filter) => {
54
+ item.value = filter;
55
+ let newFormData = null;
56
+ if (filterTree) {
57
+ newFormData = (0, astFilterProcessing_1.filterTreeToAst)(filterTree, client.databaseType.toLowerCase());
58
+ }
59
+ const newAst = (0, util_1.deepCopy)({
60
+ ...defaultAST,
61
+ ...baseAst,
62
+ ...(!baseAst?.columns && {
63
+ columns: (0, astProcessing_1.getAllPossibleColumns)(baseAst, schemaData.schema).map((c) => {
64
+ const newColumn = (0, util_1.deepCopy)(defaultColumn);
65
+ newColumn.expr.column = c.field;
66
+ return newColumn;
67
+ }),
68
+ }),
69
+ ...(!baseAst?.from && {
70
+ from: [{ ...defaultTable, table: initialTableName }],
71
+ }),
72
+ where: newFormData,
73
+ });
74
+ setBaseAst(newAst);
75
+ setFormData(newFormData);
76
+ fetchSqlQuery(newAst, newFormData);
77
+ }, handleFilterDelete: (i) => {
78
+ if (!removingFilter) {
79
+ setRemovingFilter(true);
80
+ const newStack = filterStack;
81
+ if (i > 0) {
82
+ newStack.splice(i - 1, 2);
83
+ }
84
+ else {
85
+ if (filterStack.length > 1) {
86
+ newStack.splice(i, 2);
87
+ }
88
+ else {
89
+ newStack.splice(i, 1);
90
+ }
91
+ }
92
+ const tree = (0, filterProcessing_1.filterStackToFilterTree)(newStack);
93
+ let newFormData = null;
94
+ if (tree) {
95
+ newFormData = (0, astFilterProcessing_1.filterTreeToAst)(tree, client.databaseType.toLowerCase());
96
+ }
97
+ const newAst = (0, util_1.deepCopy)({
98
+ ...defaultAST,
99
+ ...baseAst,
100
+ ...(!baseAst?.columns && {
101
+ columns: (0, astProcessing_1.getAllPossibleColumns)(baseAst, schemaData.schema).map((c) => {
102
+ const newColumn = (0, util_1.deepCopy)(defaultColumn);
103
+ newColumn.expr.column = c.field;
104
+ return newColumn;
105
+ }),
106
+ }),
107
+ ...(!baseAst?.from && {
108
+ from: [{ ...defaultTable, table: initialTableName }],
109
+ }),
110
+ where: newFormData,
111
+ });
112
+ setBaseAst(newAst);
113
+ setFormData(newFormData);
114
+ fetchSqlQuery(newAst, newFormData);
115
+ setRemovingFilter(false);
116
+ }
117
+ }, disabled: !actionsEnabled }, `filter_${index}_${item.value ? (0, filterProcessing_1.filterSentence)(item.value) : ''}`));
118
+ }
119
+ }) }));
120
+ }
121
+ exports.default = FilterStack;
@@ -106,6 +106,7 @@ export interface MultiSelectComponentProps {
106
106
  };
107
107
  }) => void;
108
108
  isLoading?: boolean;
109
+ disabled?: boolean;
109
110
  }
110
111
  export interface HeaderComponentProps {
111
112
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;2CAiQF,MAAM;;qCA3O1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;CAqP9E,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;2CA0PF,MAAM;;qCApO1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;CA8O9E,CAAC"}