@quillsql/admin 1.3.7 → 1.3.9

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 (153) hide show
  1. package/dist/cjs/Admin.d.ts +0 -5
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +56 -108
  4. package/dist/cjs/AdminProvider.d.ts +9 -5
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +73 -84
  7. package/dist/cjs/api/ConnectionClient.d.ts +12 -10
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +102 -30
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts +5 -0
  11. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -0
  12. package/dist/cjs/assets/ArrowDownHeadIcon.js +5 -0
  13. package/dist/cjs/assets/XIcon.d.ts +5 -0
  14. package/dist/cjs/assets/XIcon.d.ts.map +1 -0
  15. package/dist/cjs/assets/XIcon.js +5 -0
  16. package/dist/cjs/assets/index.d.ts +3 -0
  17. package/dist/cjs/assets/index.d.ts.map +1 -0
  18. package/dist/cjs/assets/index.js +10 -0
  19. package/dist/cjs/components/DatabaseMismatchCard.d.ts +6 -0
  20. package/dist/cjs/components/DatabaseMismatchCard.d.ts.map +1 -0
  21. package/dist/cjs/components/DatabaseMismatchCard.js +18 -0
  22. package/dist/cjs/components/DatabaseSelector.d.ts +2 -1
  23. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  24. package/dist/cjs/components/DatabaseSelector.js +2 -2
  25. package/dist/cjs/components/DropDownMenuWithLabel.d.ts +2 -1
  26. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  27. package/dist/cjs/components/DropDownMenuWithLabel.js +160 -39
  28. package/dist/cjs/components/DynamicBanner.d.ts +11 -0
  29. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -0
  30. package/dist/cjs/components/DynamicBanner.js +22 -0
  31. package/dist/cjs/components/EnvSelectPopover.d.ts.map +1 -1
  32. package/dist/cjs/components/EnvSelectPopover.js +0 -1
  33. package/dist/cjs/components/OrgSelect.d.ts +23 -0
  34. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  35. package/dist/cjs/components/OrgSelect.js +55 -15
  36. package/dist/cjs/components/SqlTextEditor.d.ts +7 -0
  37. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -0
  38. package/dist/cjs/components/SqlTextEditor.js +44 -0
  39. package/dist/cjs/components/UiComponents.d.ts +119 -0
  40. package/dist/cjs/components/UiComponents.d.ts.map +1 -0
  41. package/dist/cjs/components/UiComponents.js +268 -0
  42. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +3 -2
  43. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  44. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +101 -43
  45. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +3 -1
  46. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  47. package/dist/cjs/forms/client_onboard/ConnectSchema.js +13 -14
  48. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts +10 -1
  49. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  50. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +13 -13
  51. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +23 -0
  52. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -0
  53. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +161 -0
  54. package/dist/cjs/modals/NewDashboardModal.js +1 -1
  55. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
  56. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  57. package/dist/cjs/primitives/TextInputPrimitive.js +2 -2
  58. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  59. package/dist/cjs/public_components/CreateEnvironment.js +34 -8
  60. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  61. package/dist/cjs/public_components/DashboardBuilder.js +30 -16
  62. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  63. package/dist/cjs/public_components/DashboardManager.js +114 -104
  64. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  65. package/dist/cjs/public_components/SQLViewManager.js +252 -333
  66. package/dist/cjs/utils/dataEditor.d.ts +4 -0
  67. package/dist/cjs/utils/dataEditor.d.ts.map +1 -0
  68. package/dist/cjs/utils/dataEditor.js +144 -0
  69. package/dist/cjs/utils/dataFetcher.d.ts +3 -0
  70. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -0
  71. package/dist/cjs/utils/dataFetcher.js +68 -0
  72. package/dist/cjs/utils/databases.d.ts +13 -2
  73. package/dist/cjs/utils/databases.d.ts.map +1 -1
  74. package/dist/cjs/utils/databases.js +52 -9
  75. package/dist/cjs/utils/table.d.ts +2 -0
  76. package/dist/cjs/utils/table.d.ts.map +1 -1
  77. package/dist/esm/Admin.d.ts +0 -5
  78. package/dist/esm/Admin.d.ts.map +1 -1
  79. package/dist/esm/Admin.js +56 -107
  80. package/dist/esm/AdminProvider.d.ts +9 -5
  81. package/dist/esm/AdminProvider.d.ts.map +1 -1
  82. package/dist/esm/AdminProvider.js +71 -85
  83. package/dist/esm/api/ConnectionClient.d.ts +12 -10
  84. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  85. package/dist/esm/api/ConnectionClient.js +99 -29
  86. package/dist/esm/assets/ArrowDownHeadIcon.d.ts +5 -0
  87. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -0
  88. package/dist/esm/assets/ArrowDownHeadIcon.js +3 -0
  89. package/dist/esm/assets/XIcon.d.ts +5 -0
  90. package/dist/esm/assets/XIcon.d.ts.map +1 -0
  91. package/dist/esm/assets/XIcon.js +3 -0
  92. package/dist/esm/assets/index.d.ts +3 -0
  93. package/dist/esm/assets/index.d.ts.map +1 -0
  94. package/dist/esm/assets/index.js +2 -0
  95. package/dist/esm/components/DatabaseMismatchCard.d.ts +6 -0
  96. package/dist/esm/components/DatabaseMismatchCard.d.ts.map +1 -0
  97. package/dist/esm/components/DatabaseMismatchCard.js +15 -0
  98. package/dist/esm/components/DatabaseSelector.d.ts +2 -1
  99. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  100. package/dist/esm/components/DatabaseSelector.js +2 -2
  101. package/dist/esm/components/DropDownMenuWithLabel.d.ts +2 -1
  102. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  103. package/dist/esm/components/DropDownMenuWithLabel.js +137 -39
  104. package/dist/esm/components/DynamicBanner.d.ts +11 -0
  105. package/dist/esm/components/DynamicBanner.d.ts.map +1 -0
  106. package/dist/esm/components/DynamicBanner.js +16 -0
  107. package/dist/esm/components/EnvSelectPopover.d.ts.map +1 -1
  108. package/dist/esm/components/EnvSelectPopover.js +0 -1
  109. package/dist/esm/components/OrgSelect.d.ts +23 -0
  110. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  111. package/dist/esm/components/OrgSelect.js +52 -16
  112. package/dist/esm/components/SqlTextEditor.d.ts +7 -0
  113. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -0
  114. package/dist/esm/components/SqlTextEditor.js +38 -0
  115. package/dist/esm/components/UiComponents.d.ts +119 -0
  116. package/dist/esm/components/UiComponents.d.ts.map +1 -0
  117. package/dist/esm/components/UiComponents.js +254 -0
  118. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +3 -2
  119. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  120. package/dist/esm/forms/client_onboard/ConnectDatabase.js +102 -44
  121. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +3 -1
  122. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  123. package/dist/esm/forms/client_onboard/ConnectSchema.js +13 -14
  124. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts +10 -1
  125. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  126. package/dist/esm/forms/client_onboard/CreateSqlViews.js +12 -14
  127. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +23 -0
  128. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -0
  129. package/dist/esm/forms/sql_views/CreateEditSqlView.js +155 -0
  130. package/dist/esm/modals/NewDashboardModal.js +1 -1
  131. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
  132. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  133. package/dist/esm/primitives/TextInputPrimitive.js +2 -2
  134. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  135. package/dist/esm/public_components/CreateEnvironment.js +12 -9
  136. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  137. package/dist/esm/public_components/DashboardBuilder.js +30 -16
  138. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  139. package/dist/esm/public_components/DashboardManager.js +115 -105
  140. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  141. package/dist/esm/public_components/SQLViewManager.js +254 -335
  142. package/dist/esm/utils/dataEditor.d.ts +4 -0
  143. package/dist/esm/utils/dataEditor.d.ts.map +1 -0
  144. package/dist/esm/utils/dataEditor.js +138 -0
  145. package/dist/esm/utils/dataFetcher.d.ts +3 -0
  146. package/dist/esm/utils/dataFetcher.d.ts.map +1 -0
  147. package/dist/esm/utils/dataFetcher.js +63 -0
  148. package/dist/esm/utils/databases.d.ts +13 -2
  149. package/dist/esm/utils/databases.d.ts.map +1 -1
  150. package/dist/esm/utils/databases.js +52 -9
  151. package/dist/esm/utils/table.d.ts +2 -0
  152. package/dist/esm/utils/table.d.ts.map +1 -1
  153. package/package.json +2 -2
@@ -0,0 +1,6 @@
1
+ export default function DatabaseMismatchCard({ environemntName, environemntDatabaseType, backendDatabaseType, }: {
2
+ environemntName: string;
3
+ environemntDatabaseType: string;
4
+ backendDatabaseType: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=DatabaseMismatchCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseMismatchCard.d.ts","sourceRoot":"","sources":["../../../src/components/DatabaseMismatchCard.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,2CAmDA"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export default function DatabaseMismatchCard({ environemntName, environemntDatabaseType, backendDatabaseType, }) {
3
+ return (_jsx("div", { style: {
4
+ display: 'flex',
5
+ flexDirection: 'column',
6
+ alignItems: 'center',
7
+ width: '100%',
8
+ marginTop: 80,
9
+ }, children: _jsxs("div", { style: {
10
+ borderRadius: 10,
11
+ width: 500,
12
+ border: '1px solid #e7e7e7',
13
+ padding: 20,
14
+ }, children: [_jsx("h1", { style: { fontSize: 20, fontWeight: 'bolder' }, children: "Invalid Database Type Connected to Quill Server SDK" }), _jsx("br", {}), _jsxs("p", { children: ["The selected environment ", _jsx("strong", { children: environemntName }), " is running on ", _jsx("strong", { children: environemntDatabaseType }), ", but the", ' ', _jsx("strong", { children: "queryEndpoint " }), "prop passed into ", _jsx("strong", { children: '<AdminProvider />' }), " is connecting to", _jsxs("strong", { children: [" ", backendDatabaseType, "."] }), _jsx("br", {}), _jsx("br", {}), "If you intend to use a different environment that uses", ' ', _jsx("strong", { children: backendDatabaseType }), ", switch to that environment in the ", _jsx("strong", { children: "Environment" }), " dropdown.", _jsx("br", {}), _jsx("br", {}), "If you intend to connect to a different endpoint with a different datasource, you can do so by passing the", ' ', _jsx("strong", { children: "queryEndpoint" }), " prop into", ' ', _jsx("strong", { children: '<AdminProvider />' }), " with the correct endpoint.", _jsx("br", {}), _jsx("br", {}), "If you intend to connect to a different datasource and continue to use the same endpoint, you can do so by passing the credentials of the datasource into the ", _jsx("strong", { children: "databaseCredentials" }), " object in the instantiation of the ", _jsx("strong", { children: "Quill Server SDK" }), "."] })] }) }));
15
+ }
@@ -5,7 +5,8 @@ interface DatabaseSelectorProps {
5
5
  value: string;
6
6
  onDatabaseSelect: (database: string) => void;
7
7
  containerStyle?: CSSProperties;
8
+ databaseType: string;
8
9
  }
9
- export default function DatabaseSelector({ label, imageUrl, value, onDatabaseSelect, containerStyle, }: DatabaseSelectorProps): import("react/jsx-runtime").JSX.Element;
10
+ export default function DatabaseSelector({ label, imageUrl, value, onDatabaseSelect, containerStyle, databaseType, }: DatabaseSelectorProps): import("react/jsx-runtime").JSX.Element;
10
11
  export {};
11
12
  //# sourceMappingURL=DatabaseSelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseSelector.d.ts","sourceRoot":"","sources":["../../../src/components/DatabaseSelector.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAGvD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,cAAc,GACf,EAAE,qBAAqB,2CAqCvB"}
1
+ {"version":3,"file":"DatabaseSelector.d.ts","sourceRoot":"","sources":["../../../src/components/DatabaseSelector.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAGvD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,cAAc,EACd,YAAiB,GAClB,EAAE,qBAAqB,2CAqCvB"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- export default function DatabaseSelector({ label, imageUrl, value, onDatabaseSelect, containerStyle, }) {
2
+ export default function DatabaseSelector({ label, imageUrl, value, onDatabaseSelect, containerStyle, databaseType = '', }) {
3
3
  return (_jsxs("div", { style: {
4
4
  ...containerStyle,
5
5
  height: 128,
@@ -8,7 +8,7 @@ export default function DatabaseSelector({ label, imageUrl, value, onDatabaseSel
8
8
  flexDirection: 'column',
9
9
  justifyContent: 'center',
10
10
  alignItems: 'center',
11
- border: '1px solid #e0e0e0',
11
+ border: `${databaseType === value ? '2px' : '1px'} solid ${databaseType === value ? '#000000' : '#e0e0e0'}`,
12
12
  borderRadius: 6,
13
13
  padding: 12,
14
14
  }, id: "connect-database-form", onClick: () => {
@@ -6,7 +6,8 @@ interface DropdownMenuWithLabelProps {
6
6
  theme?: any;
7
7
  secondaryTextColor?: string;
8
8
  disabled?: boolean;
9
+ parentRef: any;
9
10
  }
10
- export default function DropdownMenuWithLabel({ items, setSelected, selected, theme, label, disabled, secondaryTextColor, }: DropdownMenuWithLabelProps): import("react/jsx-runtime").JSX.Element;
11
+ export default function DropdownMenuWithLabel({ items, setSelected, selected, theme, label, disabled, secondaryTextColor, parentRef, }: DropdownMenuWithLabelProps): import("react/jsx-runtime").JSX.Element;
11
12
  export {};
12
13
  //# sourceMappingURL=DropDownMenuWithLabel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropDownMenuWithLabel.d.ts","sourceRoot":"","sources":["../../../src/components/DropDownMenuWithLabel.tsx"],"names":[],"mappings":"AAEA,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;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,kBAA8B,GAC/B,EAAE,0BAA0B,2CA0F5B"}
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,47 +1,145 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- export default function DropdownMenuWithLabel({ items, setSelected, selected, theme, label, disabled = false, secondaryTextColor = '#6e6e6e', }) {
3
- return (_jsxs("div", { children: [_jsx("h1", { style: {
2
+ import React, { useEffect } from 'react';
3
+ import { ListboxTextInput, Popover } from './OrgSelect';
4
+ export default function DropdownMenuWithLabel({ items, setSelected, selected, theme, label, disabled = false, secondaryTextColor = '#6e6e6e', parentRef, }) {
5
+ const [isOpen, setIsOpen] = React.useState(false);
6
+ const [searchQuery, setSearchQuery] = React.useState('');
7
+ const [filteredItems, setFilteredItems] = React.useState(items);
8
+ useEffect(() => {
9
+ setFilteredItems(items);
10
+ }, [items]);
11
+ const handleSearchChange = (value) => {
12
+ setSearchQuery(value);
13
+ setFilteredItems(items.filter((item) => item.toLowerCase().includes(value.toLowerCase())));
14
+ };
15
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
4
16
  fontSize: '14px',
5
17
  paddingTop: '0px',
6
18
  marginTop: '0px',
7
19
  marginBottom: '4px',
8
20
  fontWeight: '600',
9
21
  color: secondaryTextColor,
10
- userSelect: 'none',
11
- }, children: label }), _jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsxs("div", { style: {
12
- position: 'relative',
13
- fontFamily: theme?.fontFamily,
14
- fontSize: 14,
15
- fontWeight: 500,
16
- }, children: [_jsxs("select", { style: {
17
- width: '100%',
18
- minWidth: 250,
19
- maxWidth: 250,
20
- outline: 'none',
21
- textAlign: 'left',
22
- whiteSpace: 'nowrap',
23
- overflow: 'hidden',
24
- textOverflow: 'ellipsis',
25
- borderRadius: 6,
26
- WebkitAppearance: 'none',
27
- paddingLeft: 12,
28
- paddingRight: 12,
29
- height: 38,
30
- borderWidth: 1,
31
- borderColor: '#e7e7e7',
32
- background: 'white',
33
- color: '#212121',
34
- boxShadow: '0 1px 2px 0 rgba(0,0,0,.05)',
35
- fontFamily: theme?.fontFamily,
36
- }, disabled: disabled, onChange: (e) => {
37
- setSelected(items.find((item) => item === e.target.value));
38
- }, value: selected || '', children: [_jsx("option", { value: "", children: items && items.length !== 0 ? 'Select' : 'N/A' }), items.slice(0, 50).map((item) => (_jsx("option", { value: item, children: item }, item)))] }), _jsxs("svg", { style: {
39
- height: '20px',
40
- width: '20px',
41
- flex: 'none',
42
- position: 'absolute',
43
- right: 8,
44
- top: 9,
45
- color: '#565656',
46
- }, "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "24", height: "24", visibility: disabled ? 'hidden' : 'visible', children: [_jsx("path", { fill: "none", d: "M0 0h24v24H0z" }), _jsx("path", { fill: "currentColor", d: "M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z" })] })] }) })] }));
22
+ }, children: label }), _jsxs(Popover, { parentRef: parentRef, label: items.length === 0 ? 'N/A' : selected ? selected : 'Select', isOpen: isOpen, onClose: () => setIsOpen(false), style: {
23
+ boxSizing: 'border-box',
24
+ fontSize: 14,
25
+ // padding: 11,
26
+ }, 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
+ }
79
+ function ListboxRow({ item, setSelected, setIsOpen, }) {
80
+ return (_jsxs("div", { onClick: setSelected
81
+ ? () => {
82
+ setSelected(item);
83
+ setIsOpen(false);
84
+ }
85
+ : undefined, className: "drop-down", children: [_jsx("style", { children: `
86
+ .drop-down {
87
+ background-color: white;
88
+ height: 42px;
89
+ color: #384151;
90
+ width: 216px;
91
+ borderBottom: 1px solid #e7e7e7;
92
+ border-radius: 6px;
93
+ text-align: left;
94
+ padding-left: 10px;
95
+ padding-right: 12px;
96
+ display: flex;
97
+ flex-direction: row;
98
+ align-items: center;
99
+ cursor: pointer;
100
+ font-weight: 500;
101
+ font-size: 14px;
102
+ text-overflow: ellipsis;
103
+ white-space: nowrap;
104
+ overflow: hidden;
105
+ }
106
+ .quill-org-select:hover {
107
+ background-color: rgba(56, 65, 81, 0.04);
108
+ }` }), _jsx("div", { style: {
109
+ textOverflow: 'ellipsis',
110
+ whiteSpace: 'nowrap',
111
+ overflow: 'hidden',
112
+ display: 'block',
113
+ }, children: item.name || item })] }));
114
+ }
115
+ function DropdownRow({ item, setSelected, }) {
116
+ return (_jsxs("div", { onClick: setSelected ? () => setSelected(item) : undefined, className: "dropdown-row", children: [_jsx("style", { children: `
117
+ .dropdown-row {
118
+ background-color: white;
119
+ height: 42px;
120
+ color: #384151;
121
+ width: 216px;
122
+ borderBottom: 1px solid #e7e7e7;
123
+ border-radius: 6px;
124
+ text-align: left;
125
+ padding-left: 10px;
126
+ padding-right: 12px;
127
+ display: flex;
128
+ flex-direction: row;
129
+ align-items: center;
130
+ cursor: pointer;
131
+ font-weight: 500;
132
+ font-size: 14px;
133
+ text-overflow: ellipsis;
134
+ white-space: nowrap;
135
+ overflow: hidden;
136
+ }
137
+ .dropdown-row:hover {
138
+ background-color: rgba(56, 65, 81, 0.04);
139
+ }` }), _jsx("div", { style: {
140
+ textOverflow: 'ellipsis',
141
+ whiteSpace: 'nowrap',
142
+ overflow: 'hidden',
143
+ display: 'block',
144
+ }, children: item })] }));
47
145
  }
@@ -0,0 +1,11 @@
1
+ import { CSSProperties } from 'react';
2
+ interface DynamicBannerProps {
3
+ header: string;
4
+ message: string;
5
+ onExit: () => void;
6
+ style: CSSProperties;
7
+ fontColor?: string;
8
+ }
9
+ export default function DynamicBanner({ header, message, onExit, style, fontColor, }: DynamicBannerProps): JSX.Element | null;
10
+ export {};
11
+ //# sourceMappingURL=DynamicBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicBanner.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAiCzC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import XMarkIcon from '../icons/XMarkIcon';
3
+ export default function DynamicBanner({ header, message, onExit, style, fontColor, }) {
4
+ return (_jsxs("div", { id: "quill-edit-banner", style: {
5
+ width: '100vw',
6
+ height: 70,
7
+ minHeight: 70,
8
+ display: 'flex',
9
+ flexDirection: 'row',
10
+ alignItems: 'center',
11
+ justifyContent: 'space-between',
12
+ paddingLeft: 20,
13
+ paddingRight: 20,
14
+ borderBottom: '1px solid #e7e7e7',
15
+ }, children: [_jsx("h1", { style: { fontSize: 21, fontWeight: 600, color: '#212121' }, children: header }), _jsx("button", { type: "button", onClick: onExit, style: { padding: '6px', margin: '-6px' }, children: _jsx(XMarkIcon, { style: { width: '20px', height: '20px' }, fill: fontColor, "aria-hidden": "true" }) })] }));
16
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"EnvSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/components/EnvSelectPopover.tsx"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,GACZ,EAAE,qBAAqB,2CAsTvB"}
1
+ {"version":3,"file":"EnvSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/components/EnvSelectPopover.tsx"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,GACZ,EAAE,qBAAqB,2CAqTvB"}
@@ -206,7 +206,6 @@ export default function EnvSelectPopover({ clients, setClient, client, theme, en
206
206
  ? () => handleItemClick(item)
207
207
  : undefined, style: {
208
208
  ...clientStyles,
209
- visibility: showPromote ? 'visible' : 'hidden',
210
209
  }, children: item.name }), client && client._id === item._id && (_jsxs("div", { onClick: (e) => handlePromoteClick(e, item), style: {
211
210
  ...promoteStyles,
212
211
  visibility: showPromote ? 'visible' : 'hidden',
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface OrgSelectProps {
2
3
  parentRef: any;
3
4
  environment: string;
@@ -7,6 +8,28 @@ interface OrgSelectProps {
7
8
  organizationId: string;
8
9
  setOrganizationId: (organizationId: string | null) => void;
9
10
  }
11
+ interface PopoverComponentProps {
12
+ children: any;
13
+ onClose?: () => void;
14
+ parentRef?: any;
15
+ style?: any;
16
+ onClick?: (e: React.MouseEvent) => void;
17
+ label?: string;
18
+ showTrigger?: boolean;
19
+ isOpen: boolean;
20
+ setIsOpen: (isOpen: boolean) => void;
21
+ }
22
+ export declare function Popover({ onClose, parentRef, children, style, onClick, label, showTrigger, isOpen, setIsOpen, }: PopoverComponentProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare const ListboxTextInput: ({ value, onChange, placeholder, id, }: {
24
+ value: string;
25
+ onChange: (e: string) => void;
26
+ placeholder: string;
27
+ id: string;
28
+ }) => import("react/jsx-runtime").JSX.Element;
10
29
  export default function OrgSelect({ environment, setEnvironment, organizations, theme, organizationId, setOrganizationId, parentRef, }: OrgSelectProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function ListboxRow({ item, setSelected, }: {
31
+ item: any;
32
+ setSelected?: (item: any) => void;
33
+ }): import("react/jsx-runtime").JSX.Element;
11
34
  export {};
12
35
  //# sourceMappingURL=OrgSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrgSelect.d.ts","sourceRoot":"","sources":["../../../src/components/OrgSelect.tsx"],"names":[],"mappings":"AAWA,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;AA0ND,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,WAAW,EACX,cAAc,EACd,aAAa,EACb,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,EAAE,cAAc,2CAiGhB"}
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,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState, } from 'react';
2
+ import { useEffect, useMemo, useRef, useState, } from 'react';
3
3
  import { ArrowDownHeadIcon } from '../icons';
4
4
  import { useAdmin } from '../AdminProvider';
5
5
  const useOnClickOutside = (ref, handler) => {
@@ -18,7 +18,7 @@ const useOnClickOutside = (ref, handler) => {
18
18
  };
19
19
  }, [ref, handler]);
20
20
  };
21
- function MemoizedPopover({ onClose, parentRef, children, style = {}, onClick, label, showTrigger = true, isOpen, setIsOpen, }) {
21
+ export function Popover({ onClose, parentRef, children, style = {}, onClick, label, showTrigger = true, isOpen, setIsOpen, }) {
22
22
  const modalRef = useRef(null);
23
23
  useOnClickOutside(modalRef, (e) => {
24
24
  // Exclude click on trigger button (e.g. Dropdown Button) from outside click handler
@@ -62,8 +62,6 @@ function MemoizedPopover({ onClose, parentRef, children, style = {}, onClick, la
62
62
  height: 38,
63
63
  background: 'white',
64
64
  color: '#384151',
65
- // boxShadow: "0 1px 2px 0 rgba(0,0,0,.05)",
66
- // fontFamily: theme.fontFamily,
67
65
  fontWeight: 500,
68
66
  fontSize: 14,
69
67
  position: 'relative',
@@ -92,7 +90,7 @@ function MemoizedPopover({ onClose, parentRef, children, style = {}, onClick, la
92
90
  ...style,
93
91
  }, children: children }) }))] }));
94
92
  }
95
- const MemoizedTextInput = ({ value, onChange, placeholder, id, }) => {
93
+ export const ListboxTextInput = ({ value, onChange, placeholder, id, }) => {
96
94
  return (_jsxs("div", { style: {
97
95
  position: 'relative',
98
96
  display: 'flex',
@@ -118,6 +116,42 @@ const MemoizedTextInput = ({ value, onChange, placeholder, id, }) => {
118
116
  outline: none;
119
117
  }` }), _jsx("div", { style: { width: 6 } }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "rgba(56, 65, 81, 0.7)", height: "16", width: "16", children: _jsx("path", { fillRule: "evenodd", d: "M9.965 11.026a5 5 0 1 1 1.06-1.06l2.755 2.754a.75.75 0 1 1-1.06 1.06l-2.755-2.754ZM10.5 7a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Z", clipRule: "evenodd" }) }), _jsx("input", { id: id, className: "quill-text-input", type: "text", value: value, onChange: (event) => onChange(event.target.value), placeholder: placeholder })] }));
120
118
  };
119
+ function castNumberToString(value) {
120
+ if (typeof value === 'number') {
121
+ return value.toString();
122
+ }
123
+ return value;
124
+ }
125
+ function createOrganizationList(organizations) {
126
+ // if capital fields
127
+ if (!organizations || !organizations.length) {
128
+ return [];
129
+ }
130
+ if (organizations[0]['NAME'] && organizations[0]['ID']) {
131
+ return [
132
+ ...organizations.map((org) => {
133
+ const name = org['NAME'];
134
+ const id = org['ID'];
135
+ return {
136
+ name,
137
+ id: castNumberToString(id),
138
+ };
139
+ }),
140
+ { name: 'All Organizations', id: '*' },
141
+ ];
142
+ }
143
+ return [
144
+ ...organizations.map((org) => {
145
+ const name = org['name'];
146
+ const id = org['id'];
147
+ return {
148
+ name,
149
+ id: castNumberToString(id),
150
+ };
151
+ }),
152
+ { name: 'All Organizations', id: '*' },
153
+ ];
154
+ }
121
155
  export default function OrgSelect({ environment, setEnvironment, organizations, theme, organizationId, setOrganizationId, parentRef, }) {
122
156
  useEffect(() => {
123
157
  setEnvironment(environment);
@@ -125,10 +159,7 @@ export default function OrgSelect({ environment, setEnvironment, organizations,
125
159
  const { state, dispatch } = useAdmin();
126
160
  const [isOpen, setIsOpen] = useState(false);
127
161
  const [searchQuery, setSearchQuery] = useState('');
128
- const dropDownItems = organizations.map((org) => ({
129
- name: org.name,
130
- id: org.id,
131
- }));
162
+ const dropDownItems = useMemo(() => createOrganizationList(organizations), [organizations]);
132
163
  const handleSelectOrganization = (selectedItem) => {
133
164
  if (state.activeQuery) {
134
165
  const message = 'Are you sure? Changing organization will exit edit mode and your changes will not be saved.';
@@ -143,10 +174,15 @@ export default function OrgSelect({ environment, setEnvironment, organizations,
143
174
  const selectedOrganization = dropDownItems.find((item) => item.id === organizationId);
144
175
  const filteredOrganizations = searchQuery === ''
145
176
  ? dropDownItems
146
- : dropDownItems.filter((org) => org.name
147
- .toLowerCase()
148
- .replace(/\s+/g, '')
149
- .includes(searchQuery.toLowerCase().replace(/\s+/g, '')));
177
+ : dropDownItems.filter((org) => {
178
+ if (!org.name) {
179
+ return false;
180
+ }
181
+ return org.name
182
+ .toLowerCase()
183
+ .replace(/\s+/g, '')
184
+ .includes(searchQuery.toLowerCase().replace(/\s+/g, ''));
185
+ });
150
186
  return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
151
187
  fontSize: '14px',
152
188
  paddingTop: '0px',
@@ -154,13 +190,13 @@ export default function OrgSelect({ environment, setEnvironment, organizations,
154
190
  marginBottom: '4px',
155
191
  fontWeight: '600',
156
192
  color: theme.secondaryTextColor,
157
- }, children: "Organization" }), _jsxs(MemoizedPopover, { parentRef: parentRef, label: selectedOrganization && selectedOrganization.name, isOpen: isOpen, onClose: () => setIsOpen(false), style: {
193
+ }, children: "Organization" }), _jsxs(Popover, { parentRef: parentRef, label: selectedOrganization && selectedOrganization.name, isOpen: isOpen, onClose: () => setIsOpen(false), style: {
158
194
  boxSizing: 'border-box',
159
195
  fontSize: 14,
160
196
  // padding: 11,
161
- }, setIsOpen: setIsOpen, onClick: () => console.log(), children: [_jsx(MemoizedTextInput, { id: "quill-search-bar", placeholder: "Search", value: searchQuery, onChange: setSearchQuery }), _jsx("div", { style: { height: 9, width: 230, borderTop: '1px solid #e7e7e7' } }), _jsxs("div", { style: { gap: 2, maxHeight: '50vh' }, children: [filteredOrganizations.map((item, index) => (_jsx(OrgSelectRow, { setSelected: handleSelectOrganization, item: item }, index))), filteredOrganizations.length === 0 && (_jsx(OrgSelectRow, { item: { name: 'No organizations found' } }))] }), _jsx("div", { style: { height: 8, width: 230 } })] })] }));
197
+ }, setIsOpen: setIsOpen, onClick: () => console.log(), children: [_jsx(ListboxTextInput, { id: "quill-search-bar", placeholder: "Search", value: searchQuery, onChange: setSearchQuery }), _jsx("div", { style: { height: 9, width: 230, borderTop: '1px solid #e7e7e7' } }), _jsxs("div", { style: { gap: 2, maxHeight: '50vh' }, children: [filteredOrganizations.map((item, index) => (_jsx(ListboxRow, { setSelected: handleSelectOrganization, item: item }, index))), filteredOrganizations.length === 0 && (_jsx(ListboxRow, { item: { name: 'No organizations found' } }))] }), _jsx("div", { style: { height: 8, width: 230 } })] })] }));
162
198
  }
163
- function OrgSelectRow({ item, setSelected, }) {
199
+ export function ListboxRow({ item, setSelected, }) {
164
200
  return (_jsxs("div", { onClick: setSelected ? () => setSelected(item) : undefined, className: "quill-org-select", children: [_jsx("style", { children: `
165
201
  .quill-org-select {
166
202
  background-color: white;
@@ -0,0 +1,7 @@
1
+ import { CSSProperties } from 'react';
2
+ export default function SqlTextEditor({ containerStyle, value, setValue, }: {
3
+ containerStyle?: CSSProperties;
4
+ value: string;
5
+ setValue: (e: string) => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=SqlTextEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/SqlTextEditor.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA+B7C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,KAAK,EACL,QAAQ,GACT,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,2CAwBA"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import MonacoEditor from '@monaco-editor/react';
3
+ function defineEditorTheme(monaco) {
4
+ monaco.editor.defineTheme('onedark', {
5
+ base: 'vs',
6
+ inherit: true,
7
+ rules: [
8
+ {
9
+ token: 'comment',
10
+ foreground: '#5d7988',
11
+ fontStyle: 'italic',
12
+ },
13
+ { token: 'constant', foreground: '#e06c75' },
14
+ ],
15
+ colors: {
16
+ 'editor.background': '#F9F9F9',
17
+ },
18
+ });
19
+ }
20
+ function setEditorTheme(_editor, monaco) {
21
+ try {
22
+ monaco.editor.setTheme('onedark');
23
+ }
24
+ catch (e) {
25
+ console.log('ERROR: ', e);
26
+ }
27
+ }
28
+ export default function SqlTextEditor({ containerStyle, value, setValue, }) {
29
+ return (_jsx("div", { style: { ...containerStyle }, children: _jsx(MonacoEditor, { height: "224px", defaultLanguage: "pgsql", defaultValue: "", value: value, loading: _jsx("div", {}), options: {
30
+ wordWrap: 'on',
31
+ minimap: {
32
+ enabled: false,
33
+ },
34
+ padding: { top: 16 },
35
+ }, onChange: (query) => {
36
+ setValue(query);
37
+ }, beforeMount: (monaco) => defineEditorTheme(monaco), onMount: setEditorTheme }) }));
38
+ }