@quillsql/admin 1.3.6 → 1.3.8

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 (151) hide show
  1. package/dist/cjs/Admin.d.ts.map +1 -1
  2. package/dist/cjs/Admin.js +25 -15
  3. package/dist/cjs/AdminProvider.d.ts +10 -0
  4. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  5. package/dist/cjs/AdminProvider.js +63 -43
  6. package/dist/cjs/api/ConnectionClient.d.ts +12 -10
  7. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  8. package/dist/cjs/api/ConnectionClient.js +100 -29
  9. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts +5 -0
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -0
  11. package/dist/cjs/assets/ArrowDownHeadIcon.js +5 -0
  12. package/dist/cjs/assets/XIcon.d.ts +5 -0
  13. package/dist/cjs/assets/XIcon.d.ts.map +1 -0
  14. package/dist/cjs/assets/XIcon.js +5 -0
  15. package/dist/cjs/assets/index.d.ts +3 -0
  16. package/dist/cjs/assets/index.d.ts.map +1 -0
  17. package/dist/cjs/assets/index.js +10 -0
  18. package/dist/cjs/components/DatabaseMismatchCard.d.ts +6 -0
  19. package/dist/cjs/components/DatabaseMismatchCard.d.ts.map +1 -0
  20. package/dist/cjs/components/DatabaseMismatchCard.js +18 -0
  21. package/dist/cjs/components/DatabaseSelector.d.ts +2 -1
  22. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  23. package/dist/cjs/components/DatabaseSelector.js +2 -2
  24. package/dist/cjs/components/DropDownMenuWithLabel.d.ts +2 -1
  25. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  26. package/dist/cjs/components/DropDownMenuWithLabel.js +160 -39
  27. package/dist/cjs/components/DynamicBanner.d.ts +11 -0
  28. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -0
  29. package/dist/cjs/components/DynamicBanner.js +22 -0
  30. package/dist/cjs/components/EnvSelectPopover.d.ts.map +1 -1
  31. package/dist/cjs/components/EnvSelectPopover.js +0 -1
  32. package/dist/cjs/components/OrgSelect.d.ts +23 -0
  33. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  34. package/dist/cjs/components/OrgSelect.js +55 -15
  35. package/dist/cjs/components/SqlTextEditor.d.ts +7 -0
  36. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -0
  37. package/dist/cjs/components/SqlTextEditor.js +44 -0
  38. package/dist/cjs/components/UiComponents.d.ts +119 -0
  39. package/dist/cjs/components/UiComponents.d.ts.map +1 -0
  40. package/dist/cjs/components/UiComponents.js +268 -0
  41. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +3 -2
  42. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  43. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +101 -43
  44. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +3 -1
  45. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  46. package/dist/cjs/forms/client_onboard/ConnectSchema.js +13 -14
  47. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts +10 -1
  48. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  49. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +12 -10
  50. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +24 -0
  51. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -0
  52. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +161 -0
  53. package/dist/cjs/modals/NewDashboardModal.js +1 -1
  54. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  55. package/dist/cjs/public_components/CreateEnvironment.js +34 -8
  56. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  57. package/dist/cjs/public_components/DashboardBuilder.js +30 -16
  58. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  59. package/dist/cjs/public_components/DashboardManager.js +110 -93
  60. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  61. package/dist/cjs/public_components/SQLViewManager.js +252 -333
  62. package/dist/cjs/utils/constants.d.ts +1 -1
  63. package/dist/cjs/utils/constants.d.ts.map +1 -1
  64. package/dist/cjs/utils/constants.js +1 -2
  65. package/dist/cjs/utils/dataEditor.d.ts +4 -0
  66. package/dist/cjs/utils/dataEditor.d.ts.map +1 -0
  67. package/dist/cjs/utils/dataEditor.js +144 -0
  68. package/dist/cjs/utils/dataFetcher.d.ts +3 -0
  69. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -0
  70. package/dist/cjs/utils/dataFetcher.js +68 -0
  71. package/dist/cjs/utils/databases.d.ts +13 -2
  72. package/dist/cjs/utils/databases.d.ts.map +1 -1
  73. package/dist/cjs/utils/databases.js +52 -9
  74. package/dist/cjs/utils/table.d.ts +2 -0
  75. package/dist/cjs/utils/table.d.ts.map +1 -1
  76. package/dist/esm/Admin.d.ts.map +1 -1
  77. package/dist/esm/Admin.js +25 -15
  78. package/dist/esm/AdminProvider.d.ts +10 -0
  79. package/dist/esm/AdminProvider.d.ts.map +1 -1
  80. package/dist/esm/AdminProvider.js +61 -44
  81. package/dist/esm/api/ConnectionClient.d.ts +12 -10
  82. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  83. package/dist/esm/api/ConnectionClient.js +97 -28
  84. package/dist/esm/assets/ArrowDownHeadIcon.d.ts +5 -0
  85. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -0
  86. package/dist/esm/assets/ArrowDownHeadIcon.js +3 -0
  87. package/dist/esm/assets/XIcon.d.ts +5 -0
  88. package/dist/esm/assets/XIcon.d.ts.map +1 -0
  89. package/dist/esm/assets/XIcon.js +3 -0
  90. package/dist/esm/assets/index.d.ts +3 -0
  91. package/dist/esm/assets/index.d.ts.map +1 -0
  92. package/dist/esm/assets/index.js +2 -0
  93. package/dist/esm/components/DatabaseMismatchCard.d.ts +6 -0
  94. package/dist/esm/components/DatabaseMismatchCard.d.ts.map +1 -0
  95. package/dist/esm/components/DatabaseMismatchCard.js +15 -0
  96. package/dist/esm/components/DatabaseSelector.d.ts +2 -1
  97. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  98. package/dist/esm/components/DatabaseSelector.js +2 -2
  99. package/dist/esm/components/DropDownMenuWithLabel.d.ts +2 -1
  100. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  101. package/dist/esm/components/DropDownMenuWithLabel.js +137 -39
  102. package/dist/esm/components/DynamicBanner.d.ts +11 -0
  103. package/dist/esm/components/DynamicBanner.d.ts.map +1 -0
  104. package/dist/esm/components/DynamicBanner.js +16 -0
  105. package/dist/esm/components/EnvSelectPopover.d.ts.map +1 -1
  106. package/dist/esm/components/EnvSelectPopover.js +0 -1
  107. package/dist/esm/components/OrgSelect.d.ts +23 -0
  108. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  109. package/dist/esm/components/OrgSelect.js +52 -16
  110. package/dist/esm/components/SqlTextEditor.d.ts +7 -0
  111. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -0
  112. package/dist/esm/components/SqlTextEditor.js +38 -0
  113. package/dist/esm/components/UiComponents.d.ts +119 -0
  114. package/dist/esm/components/UiComponents.d.ts.map +1 -0
  115. package/dist/esm/components/UiComponents.js +254 -0
  116. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +3 -2
  117. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  118. package/dist/esm/forms/client_onboard/ConnectDatabase.js +102 -44
  119. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +3 -1
  120. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  121. package/dist/esm/forms/client_onboard/ConnectSchema.js +13 -14
  122. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts +10 -1
  123. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  124. package/dist/esm/forms/client_onboard/CreateSqlViews.js +11 -11
  125. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +24 -0
  126. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -0
  127. package/dist/esm/forms/sql_views/CreateEditSqlView.js +155 -0
  128. package/dist/esm/modals/NewDashboardModal.js +1 -1
  129. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  130. package/dist/esm/public_components/CreateEnvironment.js +12 -9
  131. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  132. package/dist/esm/public_components/DashboardBuilder.js +30 -16
  133. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  134. package/dist/esm/public_components/DashboardManager.js +111 -94
  135. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  136. package/dist/esm/public_components/SQLViewManager.js +254 -335
  137. package/dist/esm/utils/constants.d.ts +1 -1
  138. package/dist/esm/utils/constants.d.ts.map +1 -1
  139. package/dist/esm/utils/constants.js +1 -2
  140. package/dist/esm/utils/dataEditor.d.ts +4 -0
  141. package/dist/esm/utils/dataEditor.d.ts.map +1 -0
  142. package/dist/esm/utils/dataEditor.js +138 -0
  143. package/dist/esm/utils/dataFetcher.d.ts +3 -0
  144. package/dist/esm/utils/dataFetcher.d.ts.map +1 -0
  145. package/dist/esm/utils/dataFetcher.js +63 -0
  146. package/dist/esm/utils/databases.d.ts +13 -2
  147. package/dist/esm/utils/databases.d.ts.map +1 -1
  148. package/dist/esm/utils/databases.js +52 -9
  149. package/dist/esm/utils/table.d.ts +2 -0
  150. package/dist/esm/utils/table.d.ts.map +1 -1
  151. package/package.json +2 -2
@@ -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
+ }
@@ -0,0 +1,119 @@
1
+ export interface Option {
2
+ value: string;
3
+ label: string;
4
+ }
5
+ export interface SelectComponentProps {
6
+ onChange: (value: string) => void;
7
+ value: string;
8
+ options: Option[];
9
+ disabled?: boolean;
10
+ label?: string;
11
+ }
12
+ export interface TextInputComponentProps {
13
+ onChange: (e: any) => void;
14
+ value: string;
15
+ id: string;
16
+ placeholder: string;
17
+ }
18
+ export interface ButtonComponentProps {
19
+ onClick: () => void;
20
+ label: string;
21
+ primary?: boolean;
22
+ }
23
+ export interface TableComponentProps {
24
+ rows: any[];
25
+ columns: any[];
26
+ height: string;
27
+ }
28
+ export interface TextInputComponentProps {
29
+ onChange: (e: any) => void;
30
+ value: string;
31
+ id: string;
32
+ width?: string;
33
+ }
34
+ export interface ModalComponentProps {
35
+ children: any;
36
+ isOpen: boolean;
37
+ onClose?: () => void;
38
+ title?: string;
39
+ setIsOpen: (isOpen: boolean) => void;
40
+ theme?: any;
41
+ }
42
+ export interface HeaderProps {
43
+ children: any;
44
+ }
45
+ export interface LabelProps {
46
+ children: any;
47
+ }
48
+ export interface TextProps {
49
+ children: any;
50
+ }
51
+ export interface DeleteButtonProps {
52
+ onClick: () => void;
53
+ style: any;
54
+ }
55
+ export declare const MemoizedTextInput: ({ value, onChange, placeholder, id, width, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
56
+ export declare const MemoizedButton: ({ label, onClick, primary, style, width, }: {
57
+ label: any;
58
+ onClick: any;
59
+ primary?: boolean | undefined;
60
+ style?: {} | undefined;
61
+ width?: string | undefined;
62
+ }) => import("react/jsx-runtime").JSX.Element;
63
+ export declare const MemoizedSecondaryButton: ({ label, onClick }: {
64
+ label: any;
65
+ onClick: any;
66
+ }) => import("react/jsx-runtime").JSX.Element;
67
+ export declare const MemoizedSelect: ({ value, onChange, options, disabled, label, }: {
68
+ value: any;
69
+ onChange: any;
70
+ options: any;
71
+ disabled?: boolean | undefined;
72
+ label: any;
73
+ }) => import("react/jsx-runtime").JSX.Element;
74
+ export declare const MemoizedHeader: ({ children }: {
75
+ children: any;
76
+ }) => import("react/jsx-runtime").JSX.Element;
77
+ export declare const MemoizedLabel: ({ children }: {
78
+ children: any;
79
+ }) => import("react/jsx-runtime").JSX.Element;
80
+ export declare const MemoizedText: ({ children }: {
81
+ children: any;
82
+ }) => import("react/jsx-runtime").JSX.Element;
83
+ export interface PopoverComponentProps {
84
+ children: any;
85
+ onClose?: () => void;
86
+ parentRef?: any;
87
+ style?: any;
88
+ onClick?: () => void;
89
+ showTrigger?: boolean;
90
+ isOpen: boolean;
91
+ setIsOpen: (isOpen: boolean) => void;
92
+ }
93
+ export declare function MemoizedPopover({ onClose, parentRef, children, style, onClick, label, showTrigger, isOpen, setIsOpen, }: {
94
+ onClose: any;
95
+ parentRef: any;
96
+ children: any;
97
+ style?: {} | undefined;
98
+ onClick: any;
99
+ label: any;
100
+ showTrigger?: boolean | undefined;
101
+ isOpen: any;
102
+ setIsOpen: any;
103
+ }): import("react/jsx-runtime").JSX.Element;
104
+ export declare function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, theme, }: {
105
+ isOpen: any;
106
+ onClose: any;
107
+ setIsOpen: any;
108
+ title: any;
109
+ children: any;
110
+ theme: any;
111
+ }): import("react/jsx-runtime").JSX.Element | null;
112
+ export declare const MemoizedDeleteButton: ({ onClick, style }: {
113
+ onClick: any;
114
+ style: any;
115
+ }) => import("react/jsx-runtime").JSX.Element;
116
+ export declare const LoadingSpinner: ({ ...props }: {
117
+ [x: string]: any;
118
+ }) => import("react/jsx-runtime").JSX.Element;
119
+ //# sourceMappingURL=UiComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}