@quillsql/admin 1.5.2 → 1.6.0

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/Admin.d.ts +19 -72
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +200 -994
  4. package/dist/cjs/AdminProvider.d.ts +0 -11
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +16 -10
  7. package/dist/cjs/api/ConnectionClient.d.ts +11 -0
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +71 -10
  10. package/dist/cjs/components/DropDownMenu.js +1 -1
  11. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  12. package/dist/cjs/components/DropDownMenuWithLabel.js +16 -54
  13. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  14. package/dist/cjs/components/OrgSelect.js +10 -20
  15. package/dist/cjs/components/QuillSelect.d.ts +3 -0
  16. package/dist/cjs/components/QuillSelect.d.ts.map +1 -0
  17. package/dist/cjs/components/QuillSelect.js +137 -0
  18. package/dist/cjs/components/SegmentedControl.d.ts +7 -0
  19. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -0
  20. package/dist/cjs/components/SegmentedControl.js +54 -0
  21. package/dist/cjs/components/UiComponents.d.ts +18 -30
  22. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  23. package/dist/cjs/components/UiComponents.js +39 -84
  24. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +2 -1
  25. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  26. package/dist/cjs/forms/client_onboard/ConnectSchema.js +143 -68
  27. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  28. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +39 -10
  29. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +7 -4
  30. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  31. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +28 -25
  32. package/dist/cjs/hooks/useOnClickOutside.d.ts +3 -0
  33. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -0
  34. package/dist/cjs/hooks/useOnClickOutside.js +20 -0
  35. package/dist/cjs/modals/EditFiltersModal.d.ts +17 -0
  36. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -0
  37. package/dist/cjs/modals/EditFiltersModal.js +345 -0
  38. package/dist/cjs/modals/NewDashboardModal.d.ts +1 -3
  39. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  40. package/dist/cjs/modals/NewDashboardModal.js +62 -45
  41. package/dist/cjs/modals/PromoteDashModal.d.ts.map +1 -1
  42. package/dist/cjs/modals/PromoteDashModal.js +10 -3
  43. package/dist/cjs/modals/ReorderDashboardModal.d.ts.map +1 -1
  44. package/dist/cjs/modals/ReorderDashboardModal.js +42 -45
  45. package/dist/cjs/modals/index.d.ts +0 -1
  46. package/dist/cjs/modals/index.d.ts.map +1 -1
  47. package/dist/cjs/modals/index.js +1 -3
  48. package/dist/cjs/primitives/ButtonPrimitive.d.ts +3 -1
  49. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  50. package/dist/cjs/primitives/ButtonPrimitive.js +5 -3
  51. package/dist/cjs/primitives/TogglePrimitive.js +5 -5
  52. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  53. package/dist/cjs/public_components/CreateEnvironment.js +1 -1
  54. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  55. package/dist/cjs/public_components/DashboardBuilder.js +41 -6
  56. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  57. package/dist/cjs/public_components/DashboardManager.js +47 -83
  58. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  59. package/dist/cjs/public_components/SQLViewManager.js +69 -20
  60. package/dist/cjs/utils/schema.d.ts +6 -0
  61. package/dist/cjs/utils/schema.d.ts.map +1 -1
  62. package/dist/cjs/utils/table.d.ts +1 -0
  63. package/dist/cjs/utils/table.d.ts.map +1 -1
  64. package/dist/cjs/utils/table.js +13 -0
  65. package/dist/cjs/utils/textProcessing.d.ts +2 -0
  66. package/dist/cjs/utils/textProcessing.d.ts.map +1 -0
  67. package/dist/cjs/utils/textProcessing.js +9 -0
  68. package/dist/esm/Admin.d.ts +19 -72
  69. package/dist/esm/Admin.d.ts.map +1 -1
  70. package/dist/esm/Admin.js +203 -987
  71. package/dist/esm/AdminProvider.d.ts +0 -11
  72. package/dist/esm/AdminProvider.d.ts.map +1 -1
  73. package/dist/esm/AdminProvider.js +16 -10
  74. package/dist/esm/api/ConnectionClient.d.ts +11 -0
  75. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  76. package/dist/esm/api/ConnectionClient.js +69 -9
  77. package/dist/esm/components/DropDownMenu.js +1 -1
  78. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  79. package/dist/esm/components/DropDownMenuWithLabel.js +16 -54
  80. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  81. package/dist/esm/components/OrgSelect.js +6 -19
  82. package/dist/esm/components/QuillSelect.d.ts +3 -0
  83. package/dist/esm/components/QuillSelect.d.ts.map +1 -0
  84. package/dist/esm/components/QuillSelect.js +130 -0
  85. package/dist/esm/components/SegmentedControl.d.ts +7 -0
  86. package/dist/esm/components/SegmentedControl.d.ts.map +1 -0
  87. package/dist/esm/components/SegmentedControl.js +50 -0
  88. package/dist/esm/components/UiComponents.d.ts +18 -30
  89. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  90. package/dist/esm/components/UiComponents.js +36 -83
  91. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +2 -1
  92. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  93. package/dist/esm/forms/client_onboard/ConnectSchema.js +145 -70
  94. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  95. package/dist/esm/forms/client_onboard/CreateSqlViews.js +40 -11
  96. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +7 -4
  97. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  98. package/dist/esm/forms/sql_views/CreateEditSqlView.js +29 -26
  99. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
  100. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
  101. package/dist/esm/hooks/useOnClickOutside.js +18 -0
  102. package/dist/esm/modals/EditFiltersModal.d.ts +17 -0
  103. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -0
  104. package/dist/esm/modals/EditFiltersModal.js +338 -0
  105. package/dist/esm/modals/NewDashboardModal.d.ts +1 -3
  106. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  107. package/dist/esm/modals/NewDashboardModal.js +62 -45
  108. package/dist/esm/modals/PromoteDashModal.d.ts.map +1 -1
  109. package/dist/esm/modals/PromoteDashModal.js +10 -3
  110. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +1 -1
  111. package/dist/esm/modals/ReorderDashboardModal.js +43 -46
  112. package/dist/esm/modals/index.d.ts +0 -1
  113. package/dist/esm/modals/index.d.ts.map +1 -1
  114. package/dist/esm/modals/index.js +0 -1
  115. package/dist/esm/primitives/ButtonPrimitive.d.ts +3 -1
  116. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  117. package/dist/esm/primitives/ButtonPrimitive.js +5 -3
  118. package/dist/esm/primitives/TogglePrimitive.js +5 -5
  119. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  120. package/dist/esm/public_components/CreateEnvironment.js +1 -1
  121. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  122. package/dist/esm/public_components/DashboardBuilder.js +41 -6
  123. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  124. package/dist/esm/public_components/DashboardManager.js +49 -85
  125. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  126. package/dist/esm/public_components/SQLViewManager.js +69 -20
  127. package/dist/esm/utils/schema.d.ts +6 -0
  128. package/dist/esm/utils/schema.d.ts.map +1 -1
  129. package/dist/esm/utils/table.d.ts +1 -0
  130. package/dist/esm/utils/table.d.ts.map +1 -1
  131. package/dist/esm/utils/table.js +11 -1
  132. package/dist/esm/utils/textProcessing.d.ts +2 -0
  133. package/dist/esm/utils/textProcessing.d.ts.map +1 -0
  134. package/dist/esm/utils/textProcessing.js +5 -0
  135. package/package.json +1 -1
  136. package/dist/cjs/modals/EditDashboardsModal.d.ts +0 -20
  137. package/dist/cjs/modals/EditDashboardsModal.d.ts.map +0 -1
  138. package/dist/cjs/modals/EditDashboardsModal.js +0 -94
  139. package/dist/esm/modals/EditDashboardsModal.d.ts +0 -20
  140. package/dist/esm/modals/EditDashboardsModal.d.ts.map +0 -1
  141. package/dist/esm/modals/EditDashboardsModal.js +0 -91
@@ -21,8 +21,6 @@ interface State {
21
21
  theme: QuillTheme;
22
22
  dashboards: any[];
23
23
  selectedDashboard: any;
24
- selectedEditDashboard: any;
25
- editDashboardData: any;
26
24
  organizationIdSet: boolean;
27
25
  dateFilter: any;
28
26
  navigateToDashboardManager?: () => void;
@@ -90,15 +88,6 @@ type Action = {
90
88
  } | {
91
89
  type: 'SET_SELECTED_DASHBOARD';
92
90
  payload: any;
93
- } | {
94
- type: 'SET_SELECTED_EDIT_DASHBOARD';
95
- payload: any;
96
- } | {
97
- type: 'SET_EDIT_DASHBOARD_DATA';
98
- payload: any;
99
- } | {
100
- type: 'SET_DATE_FILTER';
101
- payload: any;
102
91
  } | {
103
92
  type: 'SET_NAVIGATE_TO_DASHBOARD_MANAGER';
104
93
  payload: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AdminProvider.d.ts","sourceRoot":"","sources":["../../src/AdminProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdminProvider.d.ts","sourceRoot":"","sources":["../../src/AdminProvider.tsx"],"names":[],"mappings":"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"}
@@ -43,12 +43,6 @@ function reducer(state, action) {
43
43
  return { ...state, dashboards: action.payload };
44
44
  case 'SET_SELECTED_DASHBOARD':
45
45
  return { ...state, selectedDashboard: action.payload };
46
- case 'SET_SELECTED_EDIT_DASHBOARD':
47
- return { ...state, selectedEditDashboard: action.payload };
48
- case 'SET_EDIT_DASHBOARD_DATA':
49
- return { ...state, editDashboardData: action.payload };
50
- case 'SET_DATE_FILTER':
51
- return { ...state, dateFilter: action.payload };
52
46
  case 'SET_NAVIGATE_TO_DASHBOARD_MANAGER':
53
47
  return { ...state, navigateToDashboardManager: action.payload };
54
48
  case 'SET_NAVIGATE_TO_DASHBOARD_BUILDER':
@@ -109,8 +103,6 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
109
103
  activeComponent: 'Dashboards',
110
104
  dashboards: [],
111
105
  selectedDashboard: null,
112
- selectedEditDashboard: null,
113
- editDashboardData: null,
114
106
  reportId: null,
115
107
  theme: customTheme || theme,
116
108
  organizationIdSet: false,
@@ -254,7 +246,7 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
254
246
  type: 'SET_DATABASE_TYPE_MISMATCH',
255
247
  payload: {
256
248
  show: true,
257
- backendDatabaseType: data.queries.backendDatbaseType, // TYPO NEED TO FIX IN NODE and Python SDK
249
+ backendDatabaseType: data.queries.backendDatabaseType
258
250
  },
259
251
  });
260
252
  setLoading(false);
@@ -296,6 +288,20 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
296
288
  isSubscribed = false;
297
289
  };
298
290
  }, [state.environment, state.client, state.organizationId, publicKey]);
299
- return (_jsxs(AdminContext.Provider, { value: { state, dispatch }, children: [!state.client && !loading && _jsx(CreateEnvironment, {}), state.client && (_jsx(QuillProvider, { organizationId: state.organizationId, queryEndpoint: state.queryEndpoint ?? '', withCredentials: state.withCredentials, queryHeaders: state.queryHeaders ?? {}, publicKey: state.client._id, environment: state.environment, theme: state.theme, children: children }))] }));
291
+ return (_jsxs(AdminContext.Provider, { value: { state, dispatch }, children: [!state.client && !loading && _jsx(CreateEnvironment, {}), state.client && (_jsx(QuillProvider, { organizationId: state.organizationId, queryEndpoint: state.queryEndpoint ?? '', withCredentials: state.withCredentials, queryHeaders: state.queryHeaders ?? {}, publicKey: state.client._id, environment: state.environment, theme: state.theme, children: children })), _jsx("style", { children: `/* For WebKit-based browsers (Chrome, Safari, Opera) */
292
+ ::-webkit-scrollbar {
293
+ width: 0;
294
+ height: 0;
295
+ }
296
+
297
+ /* For Internet Explorer and Edge */
298
+ * {
299
+ -ms-overflow-style: none;
300
+ }
301
+
302
+ /* For Firefox */
303
+ * {
304
+ scrollbar-width: none;
305
+ }` })] }));
300
306
  }
301
307
  export { AdminProvider, useAdmin };
@@ -23,4 +23,15 @@ export declare function createSQLView(connectionType: ConnectionType, allSchemaI
23
23
  rows: object[];
24
24
  fields: Column[];
25
25
  } | undefined, currentTableNames: string[], override: boolean | undefined, clientId: string): Promise<any>;
26
+ export declare function processCustomerOrgViewQuery(query: string, schema: string, clientId: string): Promise<{
27
+ success: boolean;
28
+ message: string;
29
+ table?: undefined;
30
+ fkInfo?: undefined;
31
+ } | {
32
+ success: boolean;
33
+ table: string;
34
+ fkInfo: string[];
35
+ message?: undefined;
36
+ }>;
26
37
  //# sourceMappingURL=ConnectionClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../../src/api/ConnectionClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../../src/api/ConnectionClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { QUILL_SERVER } from '../utils/constants';
2
+ import { wrapInQuotes } from '../utils/textProcessing';
2
3
  export async function testConnectionString(connectionString, databaseType, clientId) {
3
4
  const localURL = `${QUILL_SERVER}/sdk/test-connection`;
4
5
  const response = await fetch(localURL, {
@@ -288,22 +289,34 @@ export async function createSQLView(connectionType, allSchemaInfo, columnsByTabl
288
289
  message: `No foreign key (${allSchemaInfo.selectedFields.foreignKey}) detected in the view. If this is a utility table override this error but if it isn’t you should rework your query.`,
289
290
  };
290
291
  }
291
- // if queryAst.ast[0] has a columns of * with a table of customers, the we can assume the customer id is in the query
292
+ // append the next smallest number to the SQL View so the new view can be created
292
293
  if (currentTableNames.includes(queryName)) {
293
- return { success: false, message: 'Query name already exists' };
294
+ let nextSmallestNumber = 1;
295
+ while (currentTableNames.includes(`${queryName}${nextSmallestNumber}`)) {
296
+ nextSmallestNumber++;
297
+ }
298
+ queryName = queryName + nextSmallestNumber;
294
299
  }
295
- const columns = columnsByTable.find((table) => table.tableName === `${allSchemaInfo.selectedFields.schema}.${allSchemaInfo.selectedFields.table}`).columns;
300
+ const columns = columnsByTable.find((table) => table.tableName ===
301
+ `${allSchemaInfo.selectedFields.schema}.${allSchemaInfo.selectedFields.table}`).columns;
296
302
  const customerFieldType = columns.find((column) => column.columnName === allSchemaInfo.selectedFields.organizationIdField).fieldType;
297
- const fuzzyType = customerFieldType === 'string' || customerFieldType === 'uuid'
303
+ const fuzzyType = customerFieldType === 'string' ||
304
+ customerFieldType === 'uuid' ||
305
+ customerFieldType === 'text' ||
306
+ customerFieldType === 'varchar' ||
307
+ customerFieldType === 'object'
298
308
  ? 'text'
299
309
  : 'number';
300
310
  localURL = `${QUILL_SERVER}/sdk/create-environment`;
311
+ const wrapQuotes = connectionType.type.toLocaleLowerCase() === 'postgresql' ||
312
+ connectionType.type.toLocaleLowerCase() === 'snowflake';
301
313
  const payload = {
302
- customerFieldName: allSchemaInfo.selectedFields.foreignKey,
303
- customerTableName: `${allSchemaInfo.selectedFields.schema}.${allSchemaInfo.selectedFields.table}`,
304
- customerTableFieldName: allSchemaInfo.selectedFields.organizationIdField,
314
+ customerFieldName: wrapInQuotes(allSchemaInfo.selectedFields.foreignKey, wrapQuotes),
315
+ customerTableName: `${wrapInQuotes(allSchemaInfo.selectedFields.schema, wrapQuotes)}.${wrapInQuotes(allSchemaInfo.selectedFields.table, wrapQuotes)}`,
316
+ customerTableFieldName: wrapInQuotes(allSchemaInfo.selectedFields.organizationIdField, wrapQuotes),
305
317
  adminCustomerId: allSchemaInfo.selectedFields.defaultOrg?.id,
306
- customerTableTitleFieldName: allSchemaInfo.selectedFields.customerNameField,
318
+ customerTableTitleFieldName: wrapInQuotes(allSchemaInfo.selectedFields.customerNameField, wrapQuotes),
319
+ customerView: allSchemaInfo.selectedFields.customerView,
307
320
  columns: tableData?.fields,
308
321
  task: 'create-environment',
309
322
  viewQuery: viewInfo.query,
@@ -312,7 +325,7 @@ export async function createSQLView(connectionType, allSchemaInfo, columnsByTabl
312
325
  client,
313
326
  domainName,
314
327
  schemaName: allSchemaInfo.selectedFields.schema,
315
- schemaNames: [allSchemaInfo.selectedFields.schema],
328
+ schemaNames: [wrapInQuotes(allSchemaInfo.selectedFields.schema)],
316
329
  clientId,
317
330
  };
318
331
  const response = await fetch(localURL, {
@@ -325,3 +338,50 @@ export async function createSQLView(connectionType, allSchemaInfo, columnsByTabl
325
338
  const results = await response.json();
326
339
  return { ...results, success: true };
327
340
  }
341
+ export async function processCustomerOrgViewQuery(query, schema, clientId) {
342
+ let localURL = `${QUILL_SERVER}/astify`;
343
+ const astResponse = await fetch(localURL, {
344
+ method: 'POST',
345
+ headers: {
346
+ 'Content-Type': 'application/json',
347
+ },
348
+ body: JSON.stringify({ query }),
349
+ });
350
+ const ast = await astResponse.json();
351
+ let fkInfo = [];
352
+ // make sure ast.ast.columns only has to values
353
+ let hasId = false;
354
+ let hasName = false;
355
+ if (ast.ast.columns && ast.ast.columns.length === 2) {
356
+ ast.ast.columns.forEach((column) => {
357
+ const columnName = column.as || column.expr.column;
358
+ if (columnName === 'id') {
359
+ hasId = true;
360
+ }
361
+ else if (columnName === 'name') {
362
+ hasName = true;
363
+ }
364
+ if (columnName === 'id' && column.as) {
365
+ fkInfo = [column.expr.column];
366
+ }
367
+ });
368
+ }
369
+ if (!hasId || !hasName) {
370
+ return {
371
+ success: false,
372
+ message: 'Query must have an "id" and "name" column.',
373
+ };
374
+ }
375
+ let table = '';
376
+ try {
377
+ table = ast.ast.from[0].table;
378
+ }
379
+ catch {
380
+ return {
381
+ success: false,
382
+ message: 'Query must have a table',
383
+ };
384
+ }
385
+ fkInfo = await getFKInfo(clientId, schema, table, 'id');
386
+ return { success: true, table, fkInfo };
387
+ }
@@ -18,7 +18,7 @@ export default function DropdownMenu({ items, setSelected, selected, theme, disa
18
18
  WebkitAppearance: 'none',
19
19
  paddingLeft: 12,
20
20
  paddingRight: 12,
21
- height: 38,
21
+ height: 40,
22
22
  borderWidth: theme?.borderWidth,
23
23
  borderColor: theme?.borderColor,
24
24
  background: theme?.backgroundColor,
@@ -1 +1 @@
1
- {"version":3,"file":"DropDownMenuWithLabel.d.ts","sourceRoot":"","sources":["../../../src/components/DropDownMenuWithLabel.tsx"],"names":[],"mappings":"AAIA,UAAU,0BAA0B;IAClC,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,kBAA8B,EAC9B,SAAS,GACV,EAAE,0BAA0B,2CAqH5B"}
1
+ {"version":3,"file":"DropDownMenuWithLabel.d.ts","sourceRoot":"","sources":["../../../src/components/DropDownMenuWithLabel.tsx"],"names":[],"mappings":"AAIA,UAAU,0BAA0B;IAClC,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,kBAA8B,EAC9B,SAAS,GACV,EAAE,0BAA0B,2CA8E5B"}
@@ -4,13 +4,26 @@ import { ListboxTextInput, Popover } from './OrgSelect';
4
4
  export default function DropdownMenuWithLabel({ items, setSelected, selected, theme, label, disabled = false, secondaryTextColor = '#6e6e6e', parentRef, }) {
5
5
  const [isOpen, setIsOpen] = React.useState(false);
6
6
  const [searchQuery, setSearchQuery] = React.useState('');
7
- const [filteredItems, setFilteredItems] = React.useState(items);
7
+ const [filteredItems, setFilteredItems] = React.useState(items.slice(0, 20));
8
8
  useEffect(() => {
9
- setFilteredItems(items);
9
+ setFilteredItems(items.slice(0, 10));
10
10
  }, [items]);
11
11
  const handleSearchChange = (value) => {
12
12
  setSearchQuery(value);
13
- setFilteredItems(items.filter((item) => item.toLowerCase().includes(value.toLowerCase())));
13
+ const curFilteredItems = searchQuery === ''
14
+ ? items.slice(0, 10)
15
+ : items
16
+ .filter((value) => {
17
+ if (!value) {
18
+ return false;
19
+ }
20
+ return value
21
+ .toLowerCase()
22
+ .replace(/\s+/g, '')
23
+ .includes(searchQuery.toLowerCase().replace(/\s+/g, ''));
24
+ })
25
+ .slice(0, 10);
26
+ setFilteredItems(curFilteredItems);
14
27
  };
15
28
  return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
16
29
  fontSize: '14px',
@@ -24,57 +37,6 @@ export default function DropdownMenuWithLabel({ items, setSelected, selected, th
24
37
  fontSize: 14,
25
38
  // padding: 11,
26
39
  }, setIsOpen: setIsOpen, children: [_jsx(ListboxTextInput, { id: "quill-search-bar", placeholder: 'Search', value: searchQuery, onChange: handleSearchChange }), _jsx("div", { style: { height: 9, width: 230, borderTop: '1px solid #e7e7e7' } }), _jsx("div", { style: { gap: 2, maxHeight: '50vh' }, children: filteredItems.map((item, index) => (_jsx(ListboxRow, { setSelected: setSelected, setIsOpen: setIsOpen, item: item }, index))) }), _jsx("div", { style: { height: 8, width: 230 } })] })] }));
27
- {
28
- /* return (
29
- <div style={{ position: 'relative', minWidth: 230 }}>
30
- <h1
31
- style={{
32
- fontSize: '14px',
33
- paddingTop: '0px',
34
- marginTop: '0px',
35
- marginBottom: '4px',
36
- fontWeight: '600',
37
- color: secondaryTextColor,
38
- userSelect: 'none',
39
- }}
40
- >
41
- {label}
42
- </h1>
43
- <MemoizedPopover
44
- parentRef={parentRef}
45
- label={selected}
46
- isOpen={isOpen}
47
- onClose={() => setIsOpen(false)}
48
- // style={{
49
- // boxSizing: 'border-box',
50
- // fontSize: 14,
51
- // }}
52
- setIsOpen={setIsOpen}
53
- onClick={() => console.log()}
54
- >
55
- <MemoizedTextInput
56
- id="quill-search-bar"
57
- placeholder="Search"
58
- value={searchQuery}
59
- onChange={handleSearchChange}
60
- />
61
- <div
62
- style={{ height: 9, width: 230, borderTop: '1px solid #e7e7e7' }}
63
- />
64
- <div style={{ gap: 2, maxHeight: '50vh' }}>
65
- {filteredItems.map((item, index) => (
66
- <DropdownRow setSelected={setSelected} item={item} key={index} />
67
- ))}
68
- {filteredItems.length === 0 && (
69
- <DropdownRow item={{ name: `No ${label} found` }} />
70
- )}
71
- </div>
72
- </Popover>
73
-
74
- </div>
75
- </div>
76
- ); */
77
- }
78
40
  }
79
41
  function ListboxRow({ item, setSelected, setIsOpen, }) {
80
42
  return (_jsxs("div", { onClick: setSelected
@@ -1 +1 @@
1
- {"version":3,"file":"OrgSelect.d.ts","sourceRoot":"","sources":["../../../src/components/OrgSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,UAAU,cAAc;IACtB,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAsBD,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAU,EACV,OAAO,EACP,KAAK,EACL,WAAkB,EAClB,MAAM,EACN,SAAS,GACV,EAAE,qBAAqB,2CAqGvB;AAED,eAAO,MAAM,gBAAgB;WAMpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;QACf,MAAM;6CA0DX,CAAC;AAwCF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,WAAW,EACX,cAAc,EACd,aAAa,EACb,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,EAAE,cAAc,2CAoGhB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,GACZ,EAAE;IACD,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CACnC,2CA0CA"}
1
+ {"version":3,"file":"OrgSelect.d.ts","sourceRoot":"","sources":["../../../src/components/OrgSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAMf,UAAU,cAAc;IACtB,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAU,EACV,OAAO,EACP,KAAK,EACL,WAAkB,EAClB,MAAM,EACN,SAAS,GACV,EAAE,qBAAqB,2CAqGvB;AAED,eAAO,MAAM,gBAAgB;WAMpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;QACf,MAAM;6CA0DX,CAAC;AAwCF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,WAAW,EACX,cAAc,EACd,aAAa,EACb,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,EAAE,cAAc,2CAsGhB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,GACZ,EAAE;IACD,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CACnC,2CA0CA"}
@@ -2,22 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef, useState, } from 'react';
3
3
  import { ArrowDownHeadIcon } from '../icons';
4
4
  import { useAdmin } from '../AdminProvider';
5
- const useOnClickOutside = (ref, handler) => {
6
- useEffect(() => {
7
- const listener = (event) => {
8
- if (!ref.current || ref.current.contains(event.target)) {
9
- return;
10
- }
11
- handler(event);
12
- };
13
- document.addEventListener('mousedown', listener);
14
- document.addEventListener('touchstart', listener);
15
- return () => {
16
- document.removeEventListener('mousedown', listener);
17
- document.removeEventListener('touchstart', listener);
18
- };
19
- }, [ref, handler]);
20
- };
5
+ import useOnClickOutside from '../hooks/useOnClickOutside';
21
6
  export function Popover({ onClose, parentRef, children, style = {}, onClick, label, showTrigger = true, isOpen, setIsOpen, }) {
22
7
  const modalRef = useRef(null);
23
8
  useOnClickOutside(modalRef, (e) => {
@@ -173,8 +158,9 @@ export default function OrgSelect({ environment, setEnvironment, organizations,
173
158
  };
174
159
  const selectedOrganization = dropDownItems.find((item) => item.id === organizationId);
175
160
  const filteredOrganizations = searchQuery === ''
176
- ? dropDownItems
177
- : dropDownItems.filter((org) => {
161
+ ? dropDownItems.slice(0, 20)
162
+ : dropDownItems
163
+ .filter((org) => {
178
164
  if (!org.name) {
179
165
  return false;
180
166
  }
@@ -182,7 +168,8 @@ export default function OrgSelect({ environment, setEnvironment, organizations,
182
168
  .toLowerCase()
183
169
  .replace(/\s+/g, '')
184
170
  .includes(searchQuery.toLowerCase().replace(/\s+/g, ''));
185
- });
171
+ })
172
+ .slice(0, 20);
186
173
  return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
187
174
  fontSize: '14px',
188
175
  paddingTop: '0px',
@@ -0,0 +1,3 @@
1
+ import { SelectComponentProps } from './UiComponents';
2
+ export declare function QuillSelectComponent({ options, value, onChange, theme, label, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=QuillSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAoB,EACpB,KAAK,GACN,EAAE,oBAAoB,2CAuMtB"}
@@ -0,0 +1,130 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import useOnClickOutside from '../hooks/useOnClickOutside';
3
+ import { useRef, useState } from 'react';
4
+ import { theme as defaultTheme } from '../Admin';
5
+ export function QuillSelectComponent({ options, value, onChange, theme = defaultTheme, label, }) {
6
+ const [showModal, setShowModal] = useState(false);
7
+ const modalRef = useRef(null);
8
+ useOnClickOutside(modalRef, (e) => {
9
+ setShowModal(false);
10
+ });
11
+ return (_jsxs("div", { style: {
12
+ position: 'relative',
13
+ width: 200,
14
+ minWidth: 200,
15
+ borderRadius: '6px',
16
+ }, children: [label && (_jsx("div", { style: {
17
+ fontSize: 14,
18
+ color: theme.primaryTextColor,
19
+ fontFamily: theme.fontFamily,
20
+ paddingBottom: 5,
21
+ fontWeight: 600,
22
+ }, children: label })), _jsxs("button", { style: {
23
+ fontFamily: theme.fontFamily,
24
+ color: theme.primaryTextColor,
25
+ width: '100%',
26
+ display: 'flex',
27
+ alignItems: 'center',
28
+ justifyContent: 'space-between',
29
+ fontWeight: 'inherit',
30
+ lineHeight: 'inherit',
31
+ padding: '8px 12px',
32
+ fontSize: 14,
33
+ margin: 0,
34
+ boxSizing: 'border-box',
35
+ borderWidth: 1,
36
+ borderStyle: 'solid',
37
+ borderColor: theme.borderColor,
38
+ borderRadius: 6,
39
+ paddingTop: 9,
40
+ paddingBottom: 9,
41
+ height: 40,
42
+ minHeight: 40,
43
+ maxHeight: 40,
44
+ }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [_jsx("style", { children: ` .quill-select-button { background: ${theme.backgroundColor}; } .quill-select-button:hover { background: ${theme.hoverBackgroundColor}; }` }), _jsx("span", { style: {
45
+ textOverflow: 'ellipsis',
46
+ whiteSpace: 'nowrap',
47
+ overflow: 'hidden',
48
+ }, children: options.find((elem) => elem.value === value)?.label || 'Select' }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && (_jsxs("div", { ref: modalRef, style: {
49
+ position: 'absolute',
50
+ width: '100%',
51
+ display: 'flex',
52
+ flexDirection: 'column',
53
+ boxSizing: 'border-box',
54
+ borderWidth: 1,
55
+ borderStyle: 'solid',
56
+ borderColor: theme.borderColor,
57
+ borderRadius: 6,
58
+ background: 'white',
59
+ marginTop: 12,
60
+ zIndex: 100,
61
+ paddingTop: 6,
62
+ paddingBottom: 6,
63
+ paddingLeft: 6,
64
+ paddingRight: 6,
65
+ boxShadow: '0px 1px 12px 0px rgba(56, 65, 81, 0.1)',
66
+ fontFamily: theme.fontFamily,
67
+ maxHeight: '50vh',
68
+ overflow: 'scroll',
69
+ }, children: [_jsxs("button", { style: {
70
+ display: 'flex',
71
+ alignItems: 'center',
72
+ justifyContent: 'space-between',
73
+ padding: '8px 8px',
74
+ margin: 0,
75
+ boxSizing: 'border-box',
76
+ borderWidth: 0,
77
+ fontSize: 14,
78
+ borderStyle: 'solid',
79
+ borderColor: theme.borderColor,
80
+ borderRadius: 4,
81
+ fontFamily: theme.fontFamily,
82
+ textOverflow: 'ellipsis',
83
+ whiteSpace: 'nowrap',
84
+ overflow: 'hidden',
85
+ height: 34,
86
+ minHeight: 34,
87
+ }, className: "quill-option", onClick: () => {
88
+ onChange('');
89
+ setShowModal(false);
90
+ }, children: [_jsx("style", { children: `
91
+ .quill-option {
92
+ background: white;
93
+ }
94
+ .quill-option:hover {
95
+ background: #F4F4F5;
96
+ }
97
+ ` }), 'Select'] }), options.map((option) => (_jsxs("button", { style: {
98
+ display: 'flex',
99
+ alignItems: 'center',
100
+ justifyContent: 'space-between',
101
+ padding: '8px 8px',
102
+ margin: 0,
103
+ boxSizing: 'border-box',
104
+ borderWidth: 0,
105
+ fontSize: 14,
106
+ borderStyle: 'solid',
107
+ borderColor: theme.borderColor,
108
+ borderRadius: 4,
109
+ fontFamily: theme.fontFamily,
110
+ textOverflow: 'ellipsis',
111
+ whiteSpace: 'nowrap',
112
+ height: 34,
113
+ minHeight: 34,
114
+ overflow: 'hidden',
115
+ }, className: "quill-option", onClick: () => {
116
+ onChange(option.value);
117
+ setShowModal(false);
118
+ }, children: [_jsx("style", { children: `
119
+ .quill-option {
120
+ background: white;
121
+ }
122
+ .quill-option:hover {
123
+ background: #F4F4F5;
124
+ }
125
+ ` }), _jsx("span", { style: {
126
+ textOverflow: 'ellipsis',
127
+ whiteSpace: 'nowrap',
128
+ overflow: 'hidden',
129
+ }, children: option.label })] }, option.value)))] }))] }));
130
+ }
@@ -0,0 +1,7 @@
1
+ import { QuillTheme } from '@quillsql/react';
2
+ export declare function SegmentedControl({ onChange, value, theme, }: {
3
+ onChange: (e: any) => void;
4
+ value: string;
5
+ theme: QuillTheme;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=SegmentedControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedControl.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACnB,2CA0EA"}
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function SegmentedControl({ onChange, value, theme, }) {
3
+ return (_jsxs("div", { style: {
4
+ display: 'flex',
5
+ flexDirection: 'row',
6
+ alignItems: 'center',
7
+ background: '#F5F5F6',
8
+ maxWidth: 209,
9
+ padding: 4,
10
+ borderRadius: 6,
11
+ height: 40,
12
+ }, children: [_jsx("button", { className: "quill-tab", onClick: () => onChange('default'), style: {
13
+ border: value === 'default' ? '1px solid #E7E7E7' : '1px solid transparent',
14
+ outline: 'none',
15
+ width: '100%',
16
+ borderRadius: 4,
17
+ padding: 10,
18
+ boxShadow: value === 'default'
19
+ ? '0px 1px 4px 0px rgba(56, 65, 81, 0.08)'
20
+ : undefined,
21
+ color: value === 'default'
22
+ ? 'rgba(56, 65, 81, 1)'
23
+ : 'rgba(56, 65, 81, 0.85)',
24
+ fontWeight: value === 'default' ? 600 : 500,
25
+ fontSize: 14,
26
+ fontFamily: theme?.fontFamily,
27
+ height: '40px',
28
+ boxSizing: 'border-box',
29
+ backgroundColor: value === 'default' ? 'white' : 'transparent',
30
+ }, children: 'Default' }), _jsx("button", { className: "quill-tab2", onClick: () => onChange('multiselect'), style: {
31
+ border: value === 'multiselect'
32
+ ? '1px solid #E7E7E7'
33
+ : '1px solid transparent',
34
+ boxShadow: value === 'multiselect'
35
+ ? '0px 1px 4px 0px rgba(56, 65, 81, 0.08)'
36
+ : undefined,
37
+ outline: 'none',
38
+ width: '100%',
39
+ borderRadius: 4,
40
+ color: value === 'multiselect'
41
+ ? 'rgba(56, 65, 81, 1)'
42
+ : 'rgba(56, 65, 81, 0.85)',
43
+ padding: 10,
44
+ fontWeight: value === 'multiselect' ? 600 : 500,
45
+ fontSize: 14,
46
+ fontFamily: theme?.fontFamily,
47
+ height: '40px',
48
+ backgroundColor: value === 'multiselect' ? 'white' : 'transparent',
49
+ }, children: 'Multiselect' })] }));
50
+ }