@quillsql/react 2.13.45 → 2.13.47

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 (141) hide show
  1. package/dist/cjs/Chart.d.ts +3 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +27 -30
  4. package/dist/cjs/ChartBuilder.d.ts +1 -2
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +46 -26
  7. package/dist/cjs/ChartEditor.d.ts +1 -1
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +6 -8
  10. package/dist/cjs/Context.d.ts +18 -6
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +98 -54
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +67 -17
  15. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  16. package/dist/cjs/ReportBuilder.js +201 -76
  17. package/dist/cjs/Table.d.ts.map +1 -1
  18. package/dist/cjs/Table.js +3 -3
  19. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  20. package/dist/cjs/components/Chart/BarChart.js +1 -2
  21. package/dist/cjs/components/Chart/GaugeChart.js +1 -1
  22. package/dist/cjs/components/Chart/LineChart.js +1 -1
  23. package/dist/cjs/components/Chart/MapChart.js +1 -1
  24. package/dist/cjs/components/Chart/PieChart.js +1 -1
  25. package/dist/cjs/components/Dashboard/DashboardFilter.js +6 -4
  26. package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
  27. package/dist/cjs/components/Dashboard/DashboardSection.js +0 -1
  28. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -1
  29. package/dist/cjs/components/Dashboard/DashboardSectionContainer.js +0 -1
  30. package/dist/cjs/components/Dashboard/DataLoader.d.ts +6 -4
  31. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  32. package/dist/cjs/components/Dashboard/DataLoader.js +108 -139
  33. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  34. package/dist/cjs/components/QuillTable.js +61 -59
  35. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +4 -1
  36. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  37. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +59 -63
  38. package/dist/cjs/components/ReportBuilder/schema.d.ts +7 -0
  39. package/dist/cjs/components/ReportBuilder/schema.d.ts.map +1 -1
  40. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  41. package/dist/cjs/components/UiComponents.js +11 -3
  42. package/dist/cjs/hooks/useDashboard.d.ts +23 -2
  43. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  44. package/dist/cjs/hooks/useDashboard.js +133 -3
  45. package/dist/cjs/hooks/useExport.js +3 -3
  46. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  47. package/dist/cjs/hooks/useQuill.js +8 -7
  48. package/dist/cjs/hooks/useReport.d.ts.map +1 -1
  49. package/dist/cjs/hooks/useReport.js +13 -12
  50. package/dist/cjs/index.d.ts +1 -1
  51. package/dist/cjs/index.d.ts.map +1 -1
  52. package/dist/cjs/index.js +2 -1
  53. package/dist/cjs/models/Client.d.ts +1 -0
  54. package/dist/cjs/models/Client.d.ts.map +1 -1
  55. package/dist/cjs/models/Dashboard.d.ts +5 -1
  56. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  57. package/dist/cjs/models/Filter.d.ts.map +1 -1
  58. package/dist/cjs/models/Filter.js +0 -2
  59. package/dist/cjs/models/Report.d.ts +1 -2
  60. package/dist/cjs/models/Report.d.ts.map +1 -1
  61. package/dist/cjs/utils/client.d.ts.map +1 -1
  62. package/dist/cjs/utils/dashboard.js +1 -1
  63. package/dist/cjs/utils/report.d.ts.map +1 -1
  64. package/dist/cjs/utils/report.js +2 -2
  65. package/dist/cjs/utils/reportBuilder.d.ts +11 -2
  66. package/dist/cjs/utils/reportBuilder.d.ts.map +1 -1
  67. package/dist/cjs/utils/reportBuilder.js +127 -1
  68. package/dist/cjs/utils/schema.d.ts +2 -7
  69. package/dist/cjs/utils/schema.d.ts.map +1 -1
  70. package/dist/cjs/utils/schema.js +4 -0
  71. package/dist/esm/Chart.d.ts +3 -1
  72. package/dist/esm/Chart.d.ts.map +1 -1
  73. package/dist/esm/Chart.js +28 -31
  74. package/dist/esm/ChartBuilder.d.ts +1 -2
  75. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  76. package/dist/esm/ChartBuilder.js +47 -27
  77. package/dist/esm/ChartEditor.d.ts +1 -1
  78. package/dist/esm/ChartEditor.d.ts.map +1 -1
  79. package/dist/esm/ChartEditor.js +7 -9
  80. package/dist/esm/Context.d.ts +18 -6
  81. package/dist/esm/Context.d.ts.map +1 -1
  82. package/dist/esm/Context.js +100 -56
  83. package/dist/esm/Dashboard.d.ts.map +1 -1
  84. package/dist/esm/Dashboard.js +67 -17
  85. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  86. package/dist/esm/ReportBuilder.js +206 -81
  87. package/dist/esm/Table.d.ts.map +1 -1
  88. package/dist/esm/Table.js +3 -3
  89. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  90. package/dist/esm/components/Chart/BarChart.js +1 -2
  91. package/dist/esm/components/Chart/GaugeChart.js +1 -1
  92. package/dist/esm/components/Chart/LineChart.js +1 -1
  93. package/dist/esm/components/Chart/MapChart.js +1 -1
  94. package/dist/esm/components/Chart/PieChart.js +1 -1
  95. package/dist/esm/components/Dashboard/DashboardFilter.js +6 -4
  96. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
  97. package/dist/esm/components/Dashboard/DashboardSection.js +0 -1
  98. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -1
  99. package/dist/esm/components/Dashboard/DashboardSectionContainer.js +0 -1
  100. package/dist/esm/components/Dashboard/DataLoader.d.ts +6 -4
  101. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  102. package/dist/esm/components/Dashboard/DataLoader.js +109 -140
  103. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  104. package/dist/esm/components/QuillTable.js +61 -59
  105. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +4 -1
  106. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  107. package/dist/esm/components/ReportBuilder/AddColumnModal.js +59 -63
  108. package/dist/esm/components/ReportBuilder/schema.d.ts +7 -0
  109. package/dist/esm/components/ReportBuilder/schema.d.ts.map +1 -1
  110. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  111. package/dist/esm/components/UiComponents.js +11 -3
  112. package/dist/esm/hooks/useDashboard.d.ts +23 -2
  113. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  114. package/dist/esm/hooks/useDashboard.js +131 -3
  115. package/dist/esm/hooks/useExport.js +4 -4
  116. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  117. package/dist/esm/hooks/useQuill.js +9 -8
  118. package/dist/esm/hooks/useReport.d.ts.map +1 -1
  119. package/dist/esm/hooks/useReport.js +14 -13
  120. package/dist/esm/index.d.ts +1 -1
  121. package/dist/esm/index.d.ts.map +1 -1
  122. package/dist/esm/index.js +1 -1
  123. package/dist/esm/models/Client.d.ts +1 -0
  124. package/dist/esm/models/Client.d.ts.map +1 -1
  125. package/dist/esm/models/Dashboard.d.ts +5 -1
  126. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  127. package/dist/esm/models/Filter.d.ts.map +1 -1
  128. package/dist/esm/models/Filter.js +0 -2
  129. package/dist/esm/models/Report.d.ts +1 -2
  130. package/dist/esm/models/Report.d.ts.map +1 -1
  131. package/dist/esm/utils/client.d.ts.map +1 -1
  132. package/dist/esm/utils/dashboard.js +1 -1
  133. package/dist/esm/utils/report.d.ts.map +1 -1
  134. package/dist/esm/utils/report.js +2 -2
  135. package/dist/esm/utils/reportBuilder.d.ts +11 -2
  136. package/dist/esm/utils/reportBuilder.d.ts.map +1 -1
  137. package/dist/esm/utils/reportBuilder.js +124 -0
  138. package/dist/esm/utils/schema.d.ts +2 -7
  139. package/dist/esm/utils/schema.d.ts.map +1 -1
  140. package/dist/esm/utils/schema.js +4 -0
  141. package/package.json +1 -1
@@ -109,7 +109,7 @@ export default function QuillTable({ rows, rowCount, rowCountIsLoading, columns,
109
109
  }, className: className, children: _jsx("div", { style: {
110
110
  height: '100%',
111
111
  width: '100%',
112
- overflow: 'auto',
112
+ overflow: 'flex',
113
113
  borderRadius: 6,
114
114
  border: '1px solid #E7E7E7',
115
115
  padding: 0,
@@ -124,66 +124,68 @@ export default function QuillTable({ rows, rowCount, rowCountIsLoading, columns,
124
124
  width: '100%',
125
125
  height: '100%',
126
126
  minHeight: '260px',
127
- }, children: [_jsx("div", { style: { overflow: 'auto', flexGrow: 1 }, children: _jsxs("div", { style: { minWidth: '100%', display: 'inline-block' }, children: [_jsx("div", { className: "thead", style: {
128
- position: 'sticky',
129
- top: 0,
130
- zIndex: 1,
131
- background: 'white',
132
- }, children: _jsx("div", { role: "row", className: "tr", style: {
133
- display: 'flex',
134
- flex: '1 0 auto',
135
- minWidth: '100px',
127
+ }, children: [_jsx("div", { className: "thead-container", style: {
128
+ width: '100%',
129
+ background: 'white',
130
+ }, children: _jsx("div", { className: "thead", children: _jsx("div", { role: "row", className: "tr", style: {
131
+ display: 'flex',
132
+ flex: '1 0 auto',
133
+ minWidth: '100px',
134
+ boxSizing: 'border-box',
135
+ marginBottom: '-1px',
136
+ }, children: columns &&
137
+ columns.map((column, index) => (_jsxs("div", { onClick: (e) => {
138
+ toggleSort(column);
139
+ e.stopPropagation();
140
+ }, style: {
136
141
  boxSizing: 'border-box',
137
- marginBottom: '-1px', // avoid double border
138
- }, children: columns &&
139
- columns.map((column, index) => (_jsxs("div", { onClick: (e) => {
140
- toggleSort(column);
141
- e.stopPropagation();
142
- }, style: {
143
- boxSizing: 'border-box',
144
- flex: '150 0 auto',
145
- minWidth: '50px',
146
- width: '150px',
147
- position: 'relative',
148
- cursor: 'pointer',
149
- background: 'rgb(249, 250, 251)',
150
- borderRight: index + 1 === columns.length
151
- ? '0px solid #E7E7E7'
152
- : '1px solid #E7E7E7',
153
- borderBottom: '1px solid #E7E7E7',
154
- whiteSpace: 'nowrap',
155
- alignItems: 'center',
156
- overflowX: 'visible',
157
- margin: '0px',
142
+ flex: '150 0 auto',
143
+ minWidth: '50px',
144
+ width: '150px',
145
+ position: 'relative',
146
+ cursor: 'pointer',
147
+ background: 'rgb(249, 250, 251)',
148
+ borderRight: index + 1 === columns.length
149
+ ? '0px solid #E7E7E7'
150
+ : '1px solid #E7E7E7',
151
+ borderBottom: '1px solid #E7E7E7',
152
+ whiteSpace: 'nowrap',
153
+ alignItems: 'center',
154
+ overflowX: 'visible',
155
+ margin: '0px',
156
+ textOverflow: 'ellipsis',
157
+ minHeight: '36px',
158
+ userSelect: 'none',
159
+ paddingLeft: 16,
160
+ paddingRight: 16,
161
+ display: 'flex',
162
+ flexDirection: 'row',
163
+ justifyContent: 'space-between',
164
+ }, children: [_jsx("div", { "aria-haspopup": "dialog", "aria-expanded": "false", "aria-controls": "mantine-r6-dropdown", style: {
165
+ // fontFamily:
166
+ // 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"',
167
+ WebkitTapHighlightColor: 'transparent',
168
+ fontFamily: theme?.fontFamily,
169
+ // color: 'rgb(55, 65, 81)',
170
+ color: theme?.primaryTextColor,
171
+ textDecoration: 'none',
172
+ fontSize: theme?.fontSizeSmall || '14px',
173
+ fontWeight: theme?.fontWeightMedium || '500',
174
+ lineHeight: '20px', // 1.25rem * 16px = 20px
158
175
  textOverflow: 'ellipsis',
159
- minHeight: '36px',
160
- userSelect: 'none',
161
- paddingLeft: 16,
162
- paddingRight: 16,
163
- display: 'flex',
164
- flexDirection: 'row',
165
- justifyContent: 'space-between',
166
- }, children: [_jsx("div", { "aria-haspopup": "dialog", "aria-expanded": "false", "aria-controls": "mantine-r6-dropdown", style: {
167
- // fontFamily:
168
- // 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"',
169
- WebkitTapHighlightColor: 'transparent',
170
- fontFamily: theme?.fontFamily,
171
- // color: 'rgb(55, 65, 81)',
172
- color: theme?.primaryTextColor,
173
- textDecoration: 'none',
174
- fontSize: theme?.fontSizeSmall || '14px',
175
- fontWeight: theme?.fontWeightMedium || '500',
176
- lineHeight: '20px', // 1.25rem * 16px = 20px
177
- textOverflow: 'ellipsis',
178
- whiteSpace: 'nowrap',
179
- overflow: 'hidden',
180
- }, children: hideLabels || !column.label
181
- ? column.field
182
- : column.label }), column.field === sortColumn && (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.primaryTextColor, height: "14px", width: "14px", style: {
183
- transform: sortDirection === 'desc'
184
- ? 'rotate(180deg)'
185
- : undefined,
186
- }, children: _jsx("path", { fillRule: "evenodd", d: "M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z", clipRule: "evenodd" }) }))] }, 'sqlcol' + index))) }) }), (isPaginating || isLoading) && (_jsx("div", { className: className, style: { position: 'absolute', width: '100%' }, children: _jsx(LoadingComponent, {}) })), (activeRows && activeRows.length === 0) ||
176
+ whiteSpace: 'nowrap',
177
+ overflow: 'hidden',
178
+ }, children: hideLabels || !column.label
179
+ ? column.field
180
+ : column.label }), column.field === sortColumn && (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.primaryTextColor, height: "14px", width: "14px", style: {
181
+ transform: sortDirection === 'desc'
182
+ ? 'rotate(180deg)'
183
+ : undefined,
184
+ }, children: _jsx("path", { fillRule: "evenodd", d: "M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z", clipRule: "evenodd" }) }))] }, 'sqlcol' + index))) }) }) }), _jsx("div", { style: {
185
+ overflow: 'auto',
186
+ flexGrow: 1,
187
+ position: 'relative',
188
+ }, children: _jsxs("div", { style: { minWidth: '100%' }, children: [(isPaginating || isLoading) && (_jsx("div", { className: className, style: { position: 'absolute', width: '100%' }, children: _jsx(LoadingComponent, {}) })), (activeRows && activeRows.length === 0) ||
187
189
  (columns && columns.length === 0) ? (_jsx("div", { style: {
188
190
  padding: '30px 0',
189
191
  display: isPaginating || isLoading ? 'none' : 'flex',
@@ -2,11 +2,14 @@ import React from 'react';
2
2
  import { TextInputComponentProps } from '../UiComponents';
3
3
  import { Table } from '../../models/Tables';
4
4
  import { ReportBuilderColumn, ReportBuilderTable } from '../../models/ReportBuilder';
5
- export default function AddColumnModal({ onSave, selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState, LoadingComponent, }: {
5
+ import { ForeignKeyMap } from './schema';
6
+ export default function AddColumnModal({ onSave, selectedTables, selectedColumns, schema, schemaLoading, foreignKeyMap, TextInputComponent, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState, LoadingComponent, }: {
6
7
  onSave: (newTables: ReportBuilderTable[], newColumns: ReportBuilderColumn[]) => void;
8
+ selectedTables: ReportBuilderTable[];
7
9
  selectedColumns: ReportBuilderColumn[];
8
10
  schema: Table[];
9
11
  schemaLoading?: boolean;
12
+ foreignKeyMap: ForeignKeyMap;
10
13
  TextInputComponent: ((props: TextInputComponentProps) => JSX.Element) | React.ForwardRefExoticComponent<TextInputComponentProps & React.RefAttributes<HTMLInputElement>>;
11
14
  SelectColumn: (props: {
12
15
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAiBpE,OAAO,EAGL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EAEN,eAAe,EACf,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,sBAAoD,EACpD,gBAAwC,GACzC,EAAE;IACD,MAAM,EAAE,CACN,SAAS,EAAE,kBAAkB,EAAE,EAC/B,UAAU,EAAE,mBAAmB,EAAE,KAC9B,IAAI,CAAC;IAEV,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,EACd,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IACN,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;IACZ,sBAAsB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC1C,gBAAgB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CACrC,2CA0UA"}
1
+ {"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAiBpE,OAAO,EAGL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EACN,cAAc,EACd,eAAe,EACf,MAAM,EACN,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,sBAAoD,EACpD,gBAAwC,GACzC,EAAE;IACD,MAAM,EAAE,CACN,SAAS,EAAE,kBAAkB,EAAE,EAC/B,UAAU,EAAE,mBAAmB,EAAE,KAC9B,IAAI,CAAC;IACV,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EACd,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IACN,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;IACZ,sBAAsB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC1C,gBAAgB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CACrC,2CAgUA"}
@@ -6,62 +6,50 @@ import { CSS as DND_CSS } from '@dnd-kit/utilities';
6
6
  import { QuillColumnSearchEmptyState, QuillLoadingComponent, } from '../UiComponents';
7
7
  import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
8
8
  import { JoinType, } from '../../models/ReportBuilder';
9
- import { getSchemaForeignKeyMapping } from '../../utils/schema';
10
- export default function AddColumnModal({ onSave,
11
- // selectedTables,
12
- selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState = QuillColumnSearchEmptyState, LoadingComponent = QuillLoadingComponent, }) {
13
- const [primaryTable, setPrimaryTable] = useState(undefined);
9
+ export default function AddColumnModal({ onSave, selectedTables, selectedColumns, schema, schemaLoading, foreignKeyMap, TextInputComponent, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState = QuillColumnSearchEmptyState, LoadingComponent = QuillLoadingComponent, }) {
10
+ const [primaryTable, setPrimaryTable] = useState(selectedTables[0]?.name);
14
11
  const [search, setSearch] = useState('');
15
12
  const textInputContainerRef = useRef(null);
16
13
  const [modalSelectedColumns, setModalSelectedColumns] = useState(selectedColumns.map((col) => `${col.table}.${col.field}`));
17
- const foreignKeyMap = useMemo(() => {
18
- return getSchemaForeignKeyMapping(schema);
19
- }, [schema]);
20
- const columnOptions = schema
21
- .filter((table) => {
22
- if (!primaryTable)
23
- return true;
24
- return (table.name === primaryTable ||
25
- foreignKeyMap[primaryTable]?.some((tableInfo) => tableInfo.foreignTable === table.name) ||
26
- foreignKeyMap[table.name]?.some((tableInfo) => tableInfo.foreignTable === primaryTable));
27
- })
28
- .sort((a, b) => {
29
- // Ensure primaryTable is always first, this is essential for SELECT ALL
30
- if (primaryTable) {
31
- if (a.name === primaryTable)
32
- return -1;
33
- if (b.name === primaryTable)
14
+ const columnOptions = useMemo(() => {
15
+ return schema
16
+ .filter((table) => {
17
+ if (!primaryTable)
18
+ return true;
19
+ return (table.name === primaryTable ||
20
+ foreignKeyMap[primaryTable]?.some((tableInfo) => tableInfo.foreignTable === table.name) ||
21
+ foreignKeyMap[table.name]?.some((tableInfo) => tableInfo.foreignTable === primaryTable));
22
+ })
23
+ .sort((a, b) => {
24
+ // Ensure primaryTable is always first, this is essential for SELECT ALL
25
+ if (primaryTable) {
26
+ if (a.name === primaryTable)
27
+ return -1;
28
+ if (b.name === primaryTable)
29
+ return 1;
30
+ }
31
+ return 0; // Keep original order otherwise
32
+ })
33
+ .flatMap((table) => table.columns
34
+ .map((col) => `${table.name}.${col.field}`)
35
+ .sort((a, b) => {
36
+ const aIsId = a.endsWith('.id') ||
37
+ a.endsWith('_id') ||
38
+ a.endsWith('Id') ||
39
+ a === 'id';
40
+ const bIsId = b.endsWith('.id') ||
41
+ b.endsWith('_id') ||
42
+ b.endsWith('Id') ||
43
+ b === 'id';
44
+ if (aIsId && !bIsId)
34
45
  return 1;
35
- }
36
- return 0; // Keep original order otherwise
37
- })
38
- .flatMap((table) => table.columns
39
- .map((col) => `${table.name}.${col.field}`)
40
- .sort((a, b) => {
41
- const aIsId = a.endsWith('.id') ||
42
- a.endsWith('_id') ||
43
- a.endsWith('Id') ||
44
- a === 'id';
45
- const bIsId = b.endsWith('.id') ||
46
- b.endsWith('_id') ||
47
- b.endsWith('Id') ||
48
- b === 'id';
49
- if (aIsId && !bIsId)
50
- return 1;
51
- if (bIsId && !aIsId)
52
- return -1;
53
- return 0;
54
- }));
55
- const [orderedColumnNames, setOrderedColumnNames] = useState(columnOptions);
46
+ if (bIsId && !aIsId)
47
+ return -1;
48
+ return 0;
49
+ }));
50
+ }, [schema, primaryTable]);
51
+ const [orderedColumnNames, setOrderedColumnNames] = useState([]);
56
52
  const isSelectedAllColumns = columnOptions.length === modalSelectedColumns.length;
57
- const duplicateColumnNames = useMemo(() => {
58
- const columnNames = modalSelectedColumns.map((col) => {
59
- const [, ...rest] = col.split('.');
60
- return rest.join('.');
61
- });
62
- const duplicates = columnNames.filter((name, i) => columnNames.indexOf(name) !== i);
63
- return duplicates;
64
- }, [modalSelectedColumns, schema]);
65
53
  const searchResults = useMemo(() => {
66
54
  return orderedColumnNames.filter((column) => {
67
55
  return (columnOptions.includes(column) &&
@@ -73,13 +61,11 @@ selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, Second
73
61
  });
74
62
  }, [search, columnOptions, orderedColumnNames]);
75
63
  useEffect(() => {
76
- if (modalSelectedColumns.length === 0) {
77
- setPrimaryTable(undefined);
78
- }
79
- else {
80
- setPrimaryTable(modalSelectedColumns[0]?.split('.')[0]);
81
- }
82
- }, [modalSelectedColumns]);
64
+ // Start with selected columns in their current order
65
+ // Add remaining columns from columnOptions that aren't already included
66
+ const remainingColumns = columnOptions.filter((col) => !modalSelectedColumns.includes(col));
67
+ setOrderedColumnNames([...modalSelectedColumns, ...remainingColumns]);
68
+ }, [columnOptions]);
83
69
  const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
84
70
  coordinateGetter: sortableKeyboardCoordinates,
85
71
  }));
@@ -122,6 +108,7 @@ selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, Second
122
108
  return (_jsx(SortableItem, { selectedColumns: modalSelectedColumns, setSelectedColumns: (newSelectedColumns) => {
123
109
  if (!primaryTable) {
124
110
  setModalSelectedColumns(newSelectedColumns);
111
+ setPrimaryTable(newSelectedColumns[0]?.split('.')[0]);
125
112
  }
126
113
  else {
127
114
  // need to check if primary table is in selected columns
@@ -154,7 +141,10 @@ selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, Second
154
141
  gap: 8,
155
142
  justifyContent: 'end',
156
143
  marginTop: 12,
157
- }, children: [modalSelectedColumns.length > 0 && (_jsx(SecondaryButton, { onClick: () => setModalSelectedColumns([]), label: "Clear" })), modalSelectedColumns.length > 0 && !isSelectedAllColumns && (_jsx(SecondaryButton, { onClick: () => setModalSelectedColumns(columnOptions), label: "Select all" })), _jsx(Button, { onClick: () => {
144
+ }, children: [modalSelectedColumns.length > 0 && (_jsx(SecondaryButton, { onClick: () => {
145
+ setModalSelectedColumns([]);
146
+ setPrimaryTable(undefined);
147
+ }, label: "Clear" })), modalSelectedColumns.length > 0 && !isSelectedAllColumns && (_jsx(SecondaryButton, { onClick: () => setModalSelectedColumns(columnOptions), label: "Select all" })), _jsx(Button, { onClick: () => {
158
148
  const newTableNames = [
159
149
  ...new Set(modalSelectedColumns
160
150
  .map((col) => {
@@ -200,7 +190,14 @@ selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, Second
200
190
  return { name: table };
201
191
  }
202
192
  })
203
- .filter((table) => table !== null);
193
+ .filter((table) => table !== null)
194
+ .sort((table1, table2) => {
195
+ if (table1.name === primaryTable)
196
+ return -1;
197
+ if (table2.name === primaryTable)
198
+ return 1;
199
+ return 0;
200
+ });
204
201
  const sortedSelectedColumns = orderedColumnNames.filter((col) => modalSelectedColumns.includes(col));
205
202
  const newColumns = sortedSelectedColumns
206
203
  .map((col) => {
@@ -212,12 +209,11 @@ selectedColumns, schema, schemaLoading, TextInputComponent, SelectColumn, Second
212
209
  return null;
213
210
  }
214
211
  else {
212
+ const alias = newTables.length > 1 ? `${table}_${field}` : undefined;
215
213
  return {
216
214
  table: table || '',
217
215
  field: field || '',
218
- alias: duplicateColumnNames.includes(field)
219
- ? `${table}_${field}`
220
- : undefined,
216
+ alias,
221
217
  };
222
218
  }
223
219
  })
@@ -20,4 +20,11 @@ export type TableInfo = {
20
20
  columns: ColumnInfo[];
21
21
  viewQuery: string;
22
22
  };
23
+ export type ForeignKeyMap = {
24
+ [table: string]: {
25
+ foreignTable: string;
26
+ foreignTablePrimaryKey: string;
27
+ foreignKey: string;
28
+ }[];
29
+ };
23
30
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,KAAK,EAAE,MAAM,GAAG;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;CACL,CAAC"}
@@ -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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"}
@@ -102,14 +102,22 @@ export const MemoizedSecondaryButton = ({ label, onClick, icon, disabled, toolti
102
102
  .quill-secondary-button:disabled {
103
103
  opacity: 0.5;
104
104
  background-color: white;
105
- }
106
- ` }), icon, _jsx("span", { style: {
105
+ }
106
+ .icon-container {
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ width: 24px;
111
+ height: 24px;
112
+ flex-shrink: 0;
113
+ }
114
+ ` }), icon && _jsx("div", { className: "icon-container", children: icon }), label && (_jsx("span", { style: {
107
115
  flexGrow: 1,
108
116
  minWidth: 0,
109
117
  whiteSpace: 'nowrap',
110
118
  textOverflow: 'ellipsis',
111
119
  overflow: 'hidden',
112
- }, children: label })] }) }));
120
+ }, children: label }))] }) }));
113
121
  };
114
122
  export const MemoizedHeader = ({ label }) => {
115
123
  const [theme] = useContext(ThemeContext);
@@ -1,4 +1,4 @@
1
- import { QuillReport } from '../models/Report';
1
+ import { QuillReport, QuillReportInternal } from '../models/Report';
2
2
  import { DashboardFilter, InternalFilter } from '../models/Filter';
3
3
  import { DashboardConfig } from '../models/Dashboard';
4
4
  export declare const useDashboard: (dashboardName: string | null, customFilters?: InternalFilter[]) => {
@@ -15,6 +15,23 @@ export declare const useDashboard: (dashboardName: string | null, customFilters?
15
15
  filters: DashboardFilter[];
16
16
  editedFilterLabel?: string;
17
17
  }) => Promise<void>;
18
+ setSectionOrder: (sectionOrder: {
19
+ section: string;
20
+ _id?: string;
21
+ reportOrder: string[];
22
+ }[]) => Promise<void>;
23
+ };
24
+ export declare const useDashboardReports: (dashboardName?: string) => {
25
+ dashboardReports: {
26
+ [key: string]: QuillReportInternal;
27
+ };
28
+ updateReport: (data: Partial<QuillReportInternal>) => void;
29
+ addReport: (data: QuillReportInternal) => void;
30
+ };
31
+ export declare const useAllReports: () => {
32
+ allReportsById: {
33
+ [key: string]: QuillReportInternal;
34
+ };
18
35
  };
19
36
  export declare const useDashboards: () => {
20
37
  dashboards: {
@@ -23,7 +40,11 @@ export declare const useDashboards: () => {
23
40
  reports: QuillReport[];
24
41
  tenantKeys: string[] | undefined;
25
42
  createdAt: Date;
26
- sectionOrder: string[] | undefined;
43
+ sectionOrder: {
44
+ _id: string;
45
+ section: string;
46
+ reportOrder: string[];
47
+ }[] | undefined;
27
48
  }[] | null;
28
49
  isLoading: boolean;
29
50
  createDashboard: ({ name, filters, dateFilter, dashboardOwners, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACL,eAAe,EAEf,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,YAAY,kBACR,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CAoHc,MAAM;qCApF1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;CAyFJ,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;uEA4BrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;4BAuDO,MAAM,8EAQT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;4BAiHkC,MAAM;CA+B5C,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EACL,eAAe,EAEf,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,YAAY,kBACR,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CAyLc,MAAM;qCAvJ1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;oCA2E0C;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAC,EAAE;CAkFtG,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,MAAM;;;;yBAK5B,OAAO,CAAC,mBAAmB,CAAC;sBAe/B,mBAAmB;CAmB7C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAkBzB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;uEA4BrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;4BAuDO,MAAM,8EAQT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;4BAkHkC,MAAM;CA+B5C,CAAC"}