@quillsql/admin 1.5.2 → 1.6.1

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 (219) 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 +215 -996
  4. package/dist/cjs/AdminProvider.d.ts +2 -12
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +27 -32
  7. package/dist/cjs/api/ConnectionClient.d.ts +19 -0
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +108 -13
  10. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  11. package/dist/cjs/components/DashboardSelectPopover.js +20 -3
  12. package/dist/cjs/components/DropDownMenu.js +1 -1
  13. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  14. package/dist/cjs/components/DropDownMenuWithLabel.js +18 -87
  15. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  16. package/dist/cjs/components/EmptyDashboardComponent/index.js +11 -9
  17. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  18. package/dist/cjs/components/OrgSelect.js +10 -20
  19. package/dist/cjs/components/QuillSelect.d.ts +3 -0
  20. package/dist/cjs/components/QuillSelect.d.ts.map +1 -0
  21. package/dist/cjs/components/QuillSelect.js +137 -0
  22. package/dist/cjs/components/SegmentedControl.d.ts +9 -0
  23. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -0
  24. package/dist/cjs/components/SegmentedControl.js +60 -0
  25. package/dist/cjs/components/SqlTextEditor.d.ts +9 -1
  26. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  27. package/dist/cjs/components/SqlTextEditor.js +60 -12
  28. package/dist/cjs/components/UiComponents.d.ts +18 -30
  29. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  30. package/dist/cjs/components/UiComponents.js +48 -84
  31. package/dist/cjs/constants/dataTypes.d.ts +2 -0
  32. package/dist/cjs/constants/dataTypes.d.ts.map +1 -0
  33. package/dist/cjs/constants/dataTypes.js +21 -0
  34. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  35. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +9 -17
  36. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +2 -1
  37. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  38. package/dist/cjs/forms/client_onboard/ConnectSchema.js +143 -68
  39. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  40. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +57 -15
  41. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +11 -5
  42. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  43. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +107 -53
  44. package/dist/cjs/hooks/useOnClickOutside.d.ts +3 -0
  45. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -0
  46. package/dist/cjs/hooks/useOnClickOutside.js +20 -0
  47. package/dist/cjs/modals/EditFiltersModal.d.ts +17 -0
  48. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -0
  49. package/dist/cjs/modals/EditFiltersModal.js +355 -0
  50. package/dist/cjs/modals/NewDashboardModal.d.ts +1 -3
  51. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  52. package/dist/cjs/modals/NewDashboardModal.js +64 -47
  53. package/dist/cjs/modals/PromoteDashModal.d.ts.map +1 -1
  54. package/dist/cjs/modals/PromoteDashModal.js +11 -4
  55. package/dist/cjs/modals/PromoteViewModal.d.ts +2 -1
  56. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  57. package/dist/cjs/modals/PromoteViewModal.js +46 -36
  58. package/dist/cjs/modals/ReorderDashboardModal.d.ts.map +1 -1
  59. package/dist/cjs/modals/ReorderDashboardModal.js +42 -45
  60. package/dist/cjs/modals/index.d.ts +0 -1
  61. package/dist/cjs/modals/index.d.ts.map +1 -1
  62. package/dist/cjs/modals/index.js +1 -3
  63. package/dist/cjs/primitives/ButtonPrimitive.d.ts +3 -1
  64. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  65. package/dist/cjs/primitives/ButtonPrimitive.js +5 -3
  66. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
  67. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  68. package/dist/cjs/primitives/TextInputPrimitive.js +35 -20
  69. package/dist/cjs/primitives/TogglePrimitive.js +5 -5
  70. package/dist/cjs/public_components/CreateEnvironment.d.ts +2 -1
  71. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  72. package/dist/cjs/public_components/CreateEnvironment.js +5 -2
  73. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  74. package/dist/cjs/public_components/DashboardBuilder.js +71 -125
  75. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  76. package/dist/cjs/public_components/DashboardManager.js +109 -146
  77. package/dist/cjs/public_components/SQLViewManager.d.ts +1 -0
  78. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  79. package/dist/cjs/public_components/SQLViewManager.js +271 -46
  80. package/dist/cjs/utils/astProcessing.d.ts +2 -0
  81. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  82. package/dist/cjs/utils/astProcessing.js +41 -0
  83. package/dist/cjs/utils/astProcessing.uspec.d.ts +2 -0
  84. package/dist/cjs/utils/astProcessing.uspec.d.ts.map +1 -0
  85. package/dist/cjs/utils/astProcessing.uspec.js +26 -0
  86. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  87. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  88. package/dist/cjs/utils/columnProcessing.js +42 -0
  89. package/dist/cjs/utils/dataEditor.d.ts +2 -2
  90. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  91. package/dist/cjs/utils/dataEditor.js +4 -2
  92. package/dist/cjs/utils/databases.d.ts +0 -1
  93. package/dist/cjs/utils/databases.d.ts.map +1 -1
  94. package/dist/cjs/utils/databases.js +5 -6
  95. package/dist/cjs/utils/monacoAutocomplete.d.ts +21 -0
  96. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +1 -0
  97. package/dist/cjs/utils/monacoAutocomplete.js +250 -0
  98. package/dist/cjs/utils/schema.d.ts +11 -0
  99. package/dist/cjs/utils/schema.d.ts.map +1 -1
  100. package/dist/cjs/utils/schema.js +129 -0
  101. package/dist/cjs/utils/table.d.ts +1 -0
  102. package/dist/cjs/utils/table.d.ts.map +1 -1
  103. package/dist/cjs/utils/table.js +13 -0
  104. package/dist/cjs/utils/textProcessing.d.ts +2 -0
  105. package/dist/cjs/utils/textProcessing.d.ts.map +1 -0
  106. package/dist/cjs/utils/textProcessing.js +9 -0
  107. package/dist/esm/Admin.d.ts +19 -72
  108. package/dist/esm/Admin.d.ts.map +1 -1
  109. package/dist/esm/Admin.js +218 -989
  110. package/dist/esm/AdminProvider.d.ts +2 -12
  111. package/dist/esm/AdminProvider.d.ts.map +1 -1
  112. package/dist/esm/AdminProvider.js +27 -32
  113. package/dist/esm/api/ConnectionClient.d.ts +19 -0
  114. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  115. package/dist/esm/api/ConnectionClient.js +106 -12
  116. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  117. package/dist/esm/components/DashboardSelectPopover.js +20 -3
  118. package/dist/esm/components/DropDownMenu.js +1 -1
  119. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  120. package/dist/esm/components/DropDownMenuWithLabel.js +18 -87
  121. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  122. package/dist/esm/components/EmptyDashboardComponent/index.js +11 -9
  123. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  124. package/dist/esm/components/OrgSelect.js +6 -19
  125. package/dist/esm/components/QuillSelect.d.ts +3 -0
  126. package/dist/esm/components/QuillSelect.d.ts.map +1 -0
  127. package/dist/esm/components/QuillSelect.js +130 -0
  128. package/dist/esm/components/SegmentedControl.d.ts +9 -0
  129. package/dist/esm/components/SegmentedControl.d.ts.map +1 -0
  130. package/dist/esm/components/SegmentedControl.js +56 -0
  131. package/dist/esm/components/SqlTextEditor.d.ts +9 -1
  132. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  133. package/dist/esm/components/SqlTextEditor.js +59 -11
  134. package/dist/esm/components/UiComponents.d.ts +18 -30
  135. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  136. package/dist/esm/components/UiComponents.js +45 -83
  137. package/dist/esm/constants/dataTypes.d.ts +2 -0
  138. package/dist/esm/constants/dataTypes.d.ts.map +1 -0
  139. package/dist/esm/constants/dataTypes.js +18 -0
  140. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  141. package/dist/esm/forms/client_onboard/ConnectDatabase.js +9 -17
  142. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +2 -1
  143. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  144. package/dist/esm/forms/client_onboard/ConnectSchema.js +145 -70
  145. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  146. package/dist/esm/forms/client_onboard/CreateSqlViews.js +58 -16
  147. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +11 -5
  148. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  149. package/dist/esm/forms/sql_views/CreateEditSqlView.js +108 -54
  150. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
  151. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
  152. package/dist/esm/hooks/useOnClickOutside.js +18 -0
  153. package/dist/esm/modals/EditFiltersModal.d.ts +17 -0
  154. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -0
  155. package/dist/esm/modals/EditFiltersModal.js +348 -0
  156. package/dist/esm/modals/NewDashboardModal.d.ts +1 -3
  157. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  158. package/dist/esm/modals/NewDashboardModal.js +64 -47
  159. package/dist/esm/modals/PromoteDashModal.d.ts.map +1 -1
  160. package/dist/esm/modals/PromoteDashModal.js +11 -4
  161. package/dist/esm/modals/PromoteViewModal.d.ts +2 -1
  162. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  163. package/dist/esm/modals/PromoteViewModal.js +50 -40
  164. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +1 -1
  165. package/dist/esm/modals/ReorderDashboardModal.js +43 -46
  166. package/dist/esm/modals/index.d.ts +0 -1
  167. package/dist/esm/modals/index.d.ts.map +1 -1
  168. package/dist/esm/modals/index.js +0 -1
  169. package/dist/esm/primitives/ButtonPrimitive.d.ts +3 -1
  170. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  171. package/dist/esm/primitives/ButtonPrimitive.js +5 -3
  172. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
  173. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  174. package/dist/esm/primitives/TextInputPrimitive.js +33 -21
  175. package/dist/esm/primitives/TogglePrimitive.js +5 -5
  176. package/dist/esm/public_components/CreateEnvironment.d.ts +2 -1
  177. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  178. package/dist/esm/public_components/CreateEnvironment.js +5 -2
  179. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  180. package/dist/esm/public_components/DashboardBuilder.js +72 -126
  181. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  182. package/dist/esm/public_components/DashboardManager.js +112 -149
  183. package/dist/esm/public_components/SQLViewManager.d.ts +1 -0
  184. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  185. package/dist/esm/public_components/SQLViewManager.js +271 -48
  186. package/dist/esm/utils/astProcessing.d.ts +2 -0
  187. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  188. package/dist/esm/utils/astProcessing.js +37 -0
  189. package/dist/esm/utils/astProcessing.uspec.d.ts +2 -0
  190. package/dist/esm/utils/astProcessing.uspec.d.ts.map +1 -0
  191. package/dist/esm/utils/astProcessing.uspec.js +24 -0
  192. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  193. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  194. package/dist/esm/utils/columnProcessing.js +37 -0
  195. package/dist/esm/utils/dataEditor.d.ts +2 -2
  196. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  197. package/dist/esm/utils/dataEditor.js +4 -2
  198. package/dist/esm/utils/databases.d.ts +0 -1
  199. package/dist/esm/utils/databases.d.ts.map +1 -1
  200. package/dist/esm/utils/databases.js +5 -6
  201. package/dist/esm/utils/monacoAutocomplete.d.ts +21 -0
  202. package/dist/esm/utils/monacoAutocomplete.d.ts.map +1 -0
  203. package/dist/esm/utils/monacoAutocomplete.js +245 -0
  204. package/dist/esm/utils/schema.d.ts +11 -0
  205. package/dist/esm/utils/schema.d.ts.map +1 -1
  206. package/dist/esm/utils/schema.js +126 -1
  207. package/dist/esm/utils/table.d.ts +1 -0
  208. package/dist/esm/utils/table.d.ts.map +1 -1
  209. package/dist/esm/utils/table.js +11 -1
  210. package/dist/esm/utils/textProcessing.d.ts +2 -0
  211. package/dist/esm/utils/textProcessing.d.ts.map +1 -0
  212. package/dist/esm/utils/textProcessing.js +5 -0
  213. package/package.json +3 -2
  214. package/dist/cjs/modals/EditDashboardsModal.d.ts +0 -20
  215. package/dist/cjs/modals/EditDashboardsModal.d.ts.map +0 -1
  216. package/dist/cjs/modals/EditDashboardsModal.js +0 -94
  217. package/dist/esm/modals/EditDashboardsModal.d.ts +0 -20
  218. package/dist/esm/modals/EditDashboardsModal.d.ts.map +0 -1
  219. package/dist/esm/modals/EditDashboardsModal.js +0 -91
@@ -1,31 +1,32 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  //@ts-nocheck
3
- import { useContext, useEffect, useRef } from 'react';
4
- import { ArrowDownHeadIcon, XIcon } from '../assets';
3
+ import { useContext, useEffect, useRef, } from 'react';
4
+ import { XIcon } from '../assets';
5
5
  import { ThemeContext } from '@quillsql/react';
6
+ import useOnClickOutside from '../hooks/useOnClickOutside';
6
7
  export const MemoizedTextInput = ({ value, onChange, placeholder, id, width, }) => {
7
8
  const [theme] = useContext(ThemeContext);
8
9
  return (_jsxs("div", { style: { position: 'relative', width: width }, children: [_jsx("style", { children: `
9
- .quill-text-input {
10
+ .quill-text-input {
10
11
  background-color: white;
11
12
  height: 40px;
12
- width: 180px;
13
- color: #384151;
14
- border: 1px solid #e7e7e7;
15
- border-radius: 6px;
16
- text-align: left;
17
- box-shadow: 0px 1px 4px 0px rgba(56, 65, 81, 0.08);
18
- padding-left: 12px;
19
- padding-right: 12px;
20
- padding-top: 0px;
21
- padding-bottom: 0px;
22
- box-sizing: content-box;
23
- }` }), _jsx("input", { id: id, className: "quill-text-input", type: "text", value: value, onChange: (event) => onChange(event.target.value), placeholder: placeholder, style: {
13
+ width: 180px;
14
+ color: #384151;
15
+ border: 1px solid #e7e7e7;
16
+ border-radius: 6px;
17
+ text-align: left;
18
+ box-shadow: 0px 1px 4px 0px rgba(56, 65, 81, 0.08);
19
+ padding-left: 12px;
20
+ padding-right: 12px;
21
+ padding-top: 0px;
22
+ padding-bottom: 0px;
23
+ box-sizing: content-box;
24
+ }` }), _jsx("input", { id: id, className: "quill-text-input", type: "text", value: value, onChange: onChange, placeholder: placeholder, style: {
24
25
  fontFamily: theme?.fontFamily,
25
26
  width: width ? 'calc(100% - 24px)' : '180px',
26
27
  } })] }));
27
28
  };
28
- export const MemoizedButton = ({ label, onClick, primary = true, style = {}, width = 'auto', }) => {
29
+ export const MemoizedButton = ({ label, onClick, isLoading = false, primary = true, style = {}, width = 'auto', }) => {
29
30
  const [theme] = useContext(ThemeContext);
30
31
  return (_jsxs("button", { className: "quill-button", onClick: onClick, style: { fontFamily: theme?.fontFamily, ...style, width: width }, children: [_jsx("style", { children: `
31
32
  .quill-button {
@@ -38,17 +39,16 @@ export const MemoizedButton = ({ label, onClick, primary = true, style = {}, wid
38
39
  box-sizing: content-box;
39
40
  padding-left: 16px;
40
41
  padding-right: 16px;
41
- overflow: hidden;
42
+ white-space: nowrap;
42
43
  font-size: 15px;
43
44
  cursor: pointer;
44
45
  }
45
46
  .quill-button:hover {
46
47
  background-color: rgba(56, 65, 81, 0.9);
47
48
  border-radius: 6px;
48
- overflow: hidden;
49
- }` }), label] }));
49
+ }` }), isLoading ? (_jsx("div", { style: { padding: '0px 16px' }, children: _jsx(LoadingSpinner, {}) })) : (label)] }));
50
50
  };
51
- export const MemoizedSecondaryButton = ({ label, onClick }) => {
51
+ export const MemoizedSecondaryButton = ({ label, onClick, isLoading = false, }) => {
52
52
  const [theme] = useContext(ThemeContext);
53
53
  return (_jsxs("button", { className: "quill-secondary-button", onClick: onClick, style: { fontFamily: theme?.fontFamily }, children: [_jsx("style", { children: `
54
54
  .quill-secondary-button {
@@ -69,34 +69,7 @@ export const MemoizedSecondaryButton = ({ label, onClick }) => {
69
69
  }
70
70
  .quill-secondary-button:hover {
71
71
  background-color: rgba(56, 65, 81, 0.09);
72
- }` }), label] }));
73
- };
74
- export const MemoizedSelect = ({ value, onChange, options, disabled = false, label, }) => {
75
- const [theme] = useContext(ThemeContext);
76
- return (_jsxs("div", { style: {
77
- position: 'relative',
78
- maxWidth: 206,
79
- }, children: [_jsx("style", { children: `
80
- .quill-select {
81
- background-color: white;
82
- height: 42px;
83
- color: #384151;
84
- width: 206px;
85
- border: 1px solid #e7e7e7;
86
- border-radius: 6px;
87
- text-align: left;
88
- box-shadow: 0px 1px 4px 0px rgba(56, 65, 81, 0.08);
89
- padding-left: 12px;
90
- padding-right: 12px;
91
- }` }), _jsx("select", { style: { WebkitAppearance: 'none', fontFamily: theme?.fontFamily }, className: "quill-select", value: value, disabled: disabled, onChange: (event) => onChange(event.target.value), children: options.map((option) => (_jsx("option", { className: "quill-option", value: option.value, children: option.label }, option.value))) }), _jsx(ArrowDownHeadIcon, { style: {
92
- height: '20px',
93
- width: '20px',
94
- flex: 'none',
95
- position: 'absolute',
96
- right: 8,
97
- top: 11,
98
- color: '#6C727F',
99
- }, "aria-hidden": "true" })] }));
72
+ }` }), isLoading ? (_jsx("div", { style: { padding: '0px 16px' }, children: _jsx(LoadingSpinner, {}) })) : (label)] }));
100
73
  };
101
74
  export const MemoizedHeader = ({ children }) => (_jsx("h1", { style: {
102
75
  fontSize: 16,
@@ -120,22 +93,6 @@ export const MemoizedText = ({ children }) => (_jsx("p", { style: {
120
93
  color: '#575E6A',
121
94
  userSelect: 'none',
122
95
  }, children: children }));
123
- const useOnClickOutside = (ref, handler) => {
124
- useEffect(() => {
125
- const listener = (event) => {
126
- if (!ref.current || ref.current.contains(event.target)) {
127
- return;
128
- }
129
- handler(event);
130
- };
131
- document.addEventListener('mousedown', listener);
132
- document.addEventListener('touchstart', listener);
133
- return () => {
134
- document.removeEventListener('mousedown', listener);
135
- document.removeEventListener('touchstart', listener);
136
- };
137
- }, [ref, handler]);
138
- };
139
96
  export function MemoizedPopover({ onClose, parentRef, children, style = {}, onClick, label, showTrigger = true, isOpen, setIsOpen, }) {
140
97
  const modalRef = useRef(null);
141
98
  useOnClickOutside(modalRef, (e) => {
@@ -172,7 +129,18 @@ export function MemoizedPopover({ onClose, parentRef, children, style = {}, onCl
172
129
  ...style,
173
130
  }, children: children }) }))] }));
174
131
  }
175
- export function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, theme, style = {}, }) {
132
+ export function MemoizedModal({ isOpen, setIsOpen, title, children, width, height, }) {
133
+ const [theme] = useContext(ThemeContext);
134
+ useEffect(() => {
135
+ // Prevent scrolling in the background when the modal is open
136
+ if (isOpen) {
137
+ document.body.style.overflow = 'hidden';
138
+ }
139
+ return () => {
140
+ // Re-enable scrolling when the modal is closed/unmounted
141
+ document.body.style.overflow = 'unset';
142
+ };
143
+ }, [isOpen]);
176
144
  if (!isOpen) {
177
145
  return null;
178
146
  }
@@ -185,15 +153,11 @@ export function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, the
185
153
  zIndex: '50',
186
154
  backgroundColor: 'rgba(255, 255, 255, 0.8)',
187
155
  backdropFilter: 'blur(5px)',
188
- }, onClick: onClose }), _jsx("div", { style: {
189
- // position: "absolute",
156
+ }, onClick: () => setIsOpen(false) }), _jsx("div", { style: {
190
157
  position: 'fixed',
191
158
  left: '50%',
192
159
  top: '50%',
193
160
  zIndex: '50',
194
- // width: "100%",
195
- // maxWidth: 1024,
196
- // maxHeight: '90vh',
197
161
  display: 'flex',
198
162
  justifyContent: 'center',
199
163
  alignItems: 'center',
@@ -203,21 +167,19 @@ export function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, the
203
167
  borderStyle: 'solid',
204
168
  borderWidth: 1,
205
169
  borderColor: '#e7e7e7',
206
- overflow: 'hidden',
207
- // zIndex: 1000,
208
- ...style,
170
+ width: width ?? 'auto',
171
+ height: height ?? 'auto',
172
+ overflow: 'auto',
173
+ maxWidth: 'calc(100vw - 82px)',
174
+ maxHeight: 'calc(100vh - 82px)',
209
175
  }, children: _jsxs("div", { style: {
210
- width: '100%',
211
176
  height: '100%',
212
- overflowY: 'auto',
213
- // maxWidth: "700px",
177
+ width: '100%',
178
+ maxWidth: 'calc(100vw - 82px)',
179
+ maxHeight: 'calc(100vh - 82px)',
214
180
  backgroundColor: '#ffffff',
215
- // padding: "20px",
216
- // borderRadius: "8px",
217
- flexGrow: 1,
218
181
  display: 'flex',
219
182
  flexDirection: 'column',
220
- alignItems: 'center',
221
183
  position: 'relative',
222
184
  fontFamily: theme?.fontFamily,
223
185
  }, children: [_jsxs("div", { id: "quill-modal-header", style: {
@@ -234,11 +196,11 @@ export function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, the
234
196
  textAlign: 'left',
235
197
  paddingTop: 18,
236
198
  color: theme?.primaryTextColor,
237
- }, children: title }), _jsx(MemoizedDeleteButton, { onClick: onClose, style: { marginRight: 10, marginTop: 10 } })] }), children] }) })] }));
199
+ }, children: title }), _jsx("div", { style: { marginRight: 10, marginTop: 10 }, children: _jsx(MemoizedDeleteButton, { onClick: () => setIsOpen(false) }) })] }), children] }) })] }));
238
200
  }
239
201
  export const MemoizedDeleteButton = ({ onClick, style }) => (_jsxs("button", { className: "quill-delete-button", type: "button", onClick: onClick, style: {
240
- height: 42,
241
- width: 42,
202
+ height: 40,
203
+ width: 40,
242
204
  border: 'none',
243
205
  cursor: 'pointer',
244
206
  display: 'flex',
@@ -0,0 +1,2 @@
1
+ export declare const ALL_INT_TYPES: string[];
2
+ //# sourceMappingURL=dataTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataTypes.d.ts","sourceRoot":"","sources":["../../../src/constants/dataTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,UAiBzB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const ALL_INT_TYPES = [
2
+ 'int4',
3
+ 'int8',
4
+ 'int2',
5
+ 'integer',
6
+ 'bigint',
7
+ 'smallint',
8
+ 'tinyint',
9
+ 'byteint',
10
+ 'real',
11
+ 'double precision',
12
+ 'smallserial',
13
+ 'serial',
14
+ 'bigserial',
15
+ 'serial4',
16
+ 'serial8',
17
+ 'serial2',
18
+ ];
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectDatabase.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectDatabase.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAoB,MAAM,OAAO,CAAC;AAG/D,OAAO,EACL,eAAe,EACf,cAAc,EAIf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,WAAgB,GACjB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,qBAAqB,EAAE,CACrB,cAAc,CAAC,EAAE,cAAc,EAC/B,aAAa,CAAC,EAAE,aAAa,EAC7B,WAAW,CAAC,EAAE,eAAe,EAC7B,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CAwYA"}
1
+ {"version":3,"file":"ConnectDatabase.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectDatabase.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAoB,MAAM,OAAO,CAAC;AAG/D,OAAO,EACL,eAAe,EACf,cAAc,EAIf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,WAAgB,GACjB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,qBAAqB,EAAE,CACrB,cAAc,CAAC,EAAE,cAAc,EAC/B,aAAa,CAAC,EAAE,aAAa,EAC7B,WAAW,CAAC,EAAE,eAAe,EAC7B,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CAsXA"}
@@ -50,6 +50,7 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
50
50
  reader.readAsText(file);
51
51
  };
52
52
  const testConnectionAndFormClient = async () => {
53
+ setShowError(false);
53
54
  const connectionString = formConnectionString(databaseConnectionDetails);
54
55
  const result = await testConnectionString(connectionString, databaseConnectionDetails.type, clientId);
55
56
  if (result.success) {
@@ -164,28 +165,19 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
164
165
  ...databaseConnectionDetails,
165
166
  [key]: e.target.value,
166
167
  });
167
- }, value: value, disabled: key === 'type' })] }, key));
168
- }) }) })] })) : (_jsx("div", { style: { minWidth: 790 }, children: _jsxs("div", { id: "database-details-form", style: {
168
+ }, value: value, disabled: key === 'type', password: key === 'password' ? true : false })] }, key));
169
+ }) }) })] })) : (_jsx("div", { style: { minWidth: 790 }, children: _jsx("div", { id: "database-details-form", style: {
169
170
  display: 'grid',
170
171
  gridTemplateColumns: 'repeat(1, 1fr)',
171
172
  gap: '20px',
172
173
  justifyContent: 'space-between',
173
174
  marginTop: '16px',
174
- }, children: [_jsxs("div", { children: [_jsx("h2", { style: {
175
- ...header2Style,
176
- fontWeight: '600',
177
- }, children: "Project ID" }), _jsx(TextInputPrimitive, { onChange: (e) => {
178
- setConnectionDetails({
179
- ...databaseConnectionDetails,
180
- companyTag: e.target.value,
181
- });
182
- setCompanyTag(e.target.value);
183
- }, value: companyTag })] }), _jsxs("div", { children: [_jsx("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Submit File" }), _jsxs("div", { children: [_jsx("input", { type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", ref: myInputRef }), _jsxs("div", { style: {
184
- display: 'flex',
185
- flexDirection: 'row',
186
- gap: 12,
187
- alignItems: 'center',
188
- }, children: [_jsx(ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), _jsx("span", { style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] })] }) })), _jsxs("div", { style: {
175
+ }, children: _jsxs("div", { children: [_jsx("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Service Account Json" }), _jsxs("div", { children: [_jsx("input", { type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", ref: myInputRef }), _jsxs("div", { style: {
176
+ display: 'flex',
177
+ flexDirection: 'row',
178
+ gap: 12,
179
+ alignItems: 'center',
180
+ }, children: [_jsx(ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), _jsx("span", { style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] }) }) })), _jsxs("div", { style: {
189
181
  width: '100%',
190
182
  display: 'flex',
191
183
  justifyContent: 'space-between',
@@ -1,7 +1,7 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { SchemaDetails } from '../../utils/schema';
3
3
  import { ConnectionError, ConnectionType } from '../../utils/databases';
4
- export default function ConnectSchema({ containerStyle, header1Style, header2Style, allSchemaInfo, environmentDetails, propogateSchemaDetails, initialError, clientId, parentRef, }: {
4
+ export default function ConnectSchema({ containerStyle, header1Style, header2Style, allSchemaInfo, environmentDetails, propogateSchemaDetails, initialError, clientId, parentRef, state, }: {
5
5
  containerStyle?: CSSProperties;
6
6
  header1Style?: CSSProperties;
7
7
  header2Style?: CSSProperties;
@@ -11,5 +11,6 @@ export default function ConnectSchema({ containerStyle, header1Style, header2Sty
11
11
  propogateSchemaDetails: (schemaDetails?: SchemaDetails) => void;
12
12
  clientId: string;
13
13
  parentRef: any;
14
+ state: any;
14
15
  }): import("react/jsx-runtime").JSX.Element;
15
16
  //# sourceMappingURL=ConnectSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,sBAAsB,EAAE,CAAC,aAAa,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAChB,2CAiSA"}
1
+ {"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,KAAK,GACN,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,sBAAsB,EAAE,CAAC,aAAa,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ,2CAubA"}
@@ -1,12 +1,38 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { ButtonPrimitive } from '../../primitives';
3
+ import { ButtonPrimitive, TextInputPrimitive } from '../../primitives';
4
4
  import DropdownMenuWithLabel from '../../components/DropDownMenuWithLabel';
5
- import { getFKInfo, getOrgInfo, getSchemaTableInfo, getTableInfo, getTablesBySchema, } from '../../api/ConnectionClient';
6
- export default function ConnectSchema({ containerStyle, header1Style, header2Style, allSchemaInfo, environmentDetails, propogateSchemaDetails, initialError, clientId, parentRef, }) {
5
+ import { getFKInfo, getOrgInfo, getSchemaTableInfo, getSqlViewData, getTableInfo, getTablesBySchema, processCustomerOrgViewQuery, } from '../../api/ConnectionClient';
6
+ export default function ConnectSchema({ containerStyle, header1Style, header2Style, allSchemaInfo, environmentDetails, propogateSchemaDetails, initialError, clientId, parentRef, state, }) {
7
7
  const [schemaDetails, setSchemaDetails] = useState(allSchemaInfo);
8
8
  const [schemaError, setSchemaError] = useState(initialError);
9
9
  const [formError, setFormError] = useState({ show: false, message: '' });
10
+ const [runQueryButtonLabel, setRunQueryButtonLabel] = useState('Run query');
11
+ const [errorInfo, setErrorInfo] = useState({ status: false, msg: '' });
12
+ const [customerViewQuery, setCustomerViewQuery] = useState('');
13
+ const handleQuerySuccess = async (getSqlResults) => {
14
+ const processedResults = await processCustomerOrgViewQuery(customerViewQuery, allSchemaInfo?.selectedFields.schema || '', clientId);
15
+ if (processedResults.success === false) {
16
+ setErrorInfo({
17
+ status: true,
18
+ msg: processedResults.message || 'Failed to process the query.',
19
+ });
20
+ return;
21
+ }
22
+ setSchemaDetails({
23
+ ...schemaDetails,
24
+ // @ts-ignore
25
+ selectedFields: {
26
+ ...schemaDetails?.selectedFields,
27
+ table: processedResults.table,
28
+ organizationIdField: 'id',
29
+ customerNameField: 'name',
30
+ customerView: customerViewQuery,
31
+ },
32
+ customQueryFKs: processedResults.fkInfo,
33
+ customQueryOrganizations: getSqlResults.rows,
34
+ });
35
+ };
10
36
  return (_jsxs("div", { style: { ...containerStyle }, id: "connect-database-form", children: [_jsx("h1", { style: header1Style, children: "Select Organization Table" }), _jsx("h2", { style: header2Style, children: "Select which table you use for organizations (your customers). Quill uses this table to partition data by organization." }), _jsxs("div", { style: {
11
37
  marginTop: 16,
12
38
  width: '100%',
@@ -60,92 +86,141 @@ export default function ConnectSchema({ containerStyle, header1Style, header2Sty
60
86
  else {
61
87
  setSchemaError(suspectedSchema);
62
88
  }
63
- } }))] }), schemaDetails?.tables && (_jsxs("div", { children: [_jsx("div", { style: { gap: 16 }, id: "database-details-form", children: _jsxs("div", {
64
- // style={{
65
- // display: 'flex',
66
- // flexWrap: 'wrap',
67
- // width: '100%',
68
- // gap: '16px',
69
- // }}
70
- style: {
71
- display: 'grid',
72
- gridTemplateColumns: 'repeat(3, 1fr)',
73
- gap: '20px',
74
- justifyContent: 'space-between',
75
- marginTop: '8px',
76
- }, children: [_jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.tables || [], setSelected: async (e) => {
77
- const columns = await getTableInfo(clientId, schemaDetails?.selectedFields?.schema, e);
78
- setSchemaDetails({
79
- ...schemaDetails,
80
- columns: columns.columns,
81
- foreignKeys: [],
82
- organizations: [],
83
- selectedFields: {
84
- schema: schemaDetails?.selectedFields?.schema,
85
- table: e,
86
- },
87
- });
88
- }, selected: schemaDetails?.selectedFields?.table, label: 'Organization table' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.columns || [], setSelected: async (e) => {
89
- const fkStrings = await getFKInfo(clientId, schemaDetails?.selectedFields?.schema, schemaDetails?.selectedFields?.table, e);
90
- if (schemaDetails?.selectedFields.customerNameField) {
91
- const organizations = await getOrgInfo(clientId, schemaDetails?.selectedFields?.schema, schemaDetails?.selectedFields?.table, e, schemaDetails?.selectedFields.customerNameField);
89
+ } }))] }), schemaDetails?.tables && (_jsxs("div", { children: [_jsxs("div", { style: { gap: 16 }, id: "database-details-form", children: [_jsxs("div", {
90
+ // style={{
91
+ // display: 'flex',
92
+ // flexWrap: 'wrap',
93
+ // width: '100%',
94
+ // gap: '16px',
95
+ // }}
96
+ style: {
97
+ display: 'grid',
98
+ gridTemplateColumns: 'repeat(3, 1fr)',
99
+ gap: '20px',
100
+ justifyContent: 'space-between',
101
+ marginTop: '8px',
102
+ }, children: [_jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.tables || [], setSelected: async (e) => {
103
+ const columns = await getTableInfo(clientId, schemaDetails?.selectedFields?.schema, e);
92
104
  setSchemaDetails({
93
105
  ...schemaDetails,
94
- organizations: organizations,
106
+ columns: columns.columns,
107
+ foreignKeys: [],
108
+ organizations: [],
109
+ selectedFields: {
110
+ schema: schemaDetails?.selectedFields?.schema,
111
+ table: e,
112
+ },
113
+ });
114
+ }, selected: schemaDetails?.selectedFields?.table, label: 'Organization table' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.columns || [], setSelected: async (e) => {
115
+ const fkStrings = await getFKInfo(clientId, schemaDetails?.selectedFields?.schema, schemaDetails?.selectedFields?.table, e);
116
+ if (schemaDetails?.selectedFields.customerNameField) {
117
+ const organizations = await getOrgInfo(clientId, schemaDetails?.selectedFields?.schema, schemaDetails?.selectedFields?.table, e, schemaDetails?.selectedFields.customerNameField);
118
+ setSchemaDetails({
119
+ ...schemaDetails,
120
+ organizations: organizations,
121
+ selectedFields: {
122
+ ...schemaDetails?.selectedFields,
123
+ organizationIdField: e,
124
+ },
125
+ });
126
+ }
127
+ setSchemaDetails({
128
+ ...schemaDetails,
129
+ foreignKeys: fkStrings,
95
130
  selectedFields: {
96
131
  ...schemaDetails?.selectedFields,
97
132
  organizationIdField: e,
98
133
  },
99
134
  });
100
- }
101
- setSchemaDetails({
102
- ...schemaDetails,
103
- foreignKeys: fkStrings,
104
- selectedFields: {
105
- ...schemaDetails?.selectedFields,
106
- organizationIdField: e,
107
- },
108
- });
109
- }, selected: schemaDetails?.selectedFields?.organizationIdField, label: 'Organization ID field' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.columns || [], setSelected: async (e) => {
110
- if (schemaDetails?.selectedFields.organizationIdField) {
111
- const organizations = await getOrgInfo(clientId, schemaDetails?.selectedFields?.schema, schemaDetails?.selectedFields?.table, schemaDetails?.selectedFields.organizationIdField, e);
135
+ }, selected: schemaDetails?.selectedFields?.organizationIdField, label: 'Organization ID field' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.columns || [], setSelected: async (e) => {
136
+ if (schemaDetails?.selectedFields.organizationIdField) {
137
+ const organizations = await getOrgInfo(clientId, schemaDetails?.selectedFields?.schema, schemaDetails?.selectedFields?.table, schemaDetails?.selectedFields.organizationIdField, e);
138
+ setSchemaDetails({
139
+ ...schemaDetails,
140
+ organizations: organizations,
141
+ selectedFields: {
142
+ ...schemaDetails?.selectedFields,
143
+ customerNameField: e,
144
+ },
145
+ });
146
+ }
147
+ else {
148
+ setSchemaDetails({
149
+ ...schemaDetails,
150
+ selectedFields: {
151
+ ...schemaDetails?.selectedFields,
152
+ customerNameField: e,
153
+ },
154
+ });
155
+ }
156
+ }, selected: schemaDetails?.selectedFields?.customerNameField, label: 'Organization name field' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.organizations?.map((orgObj) => orgObj.name) ||
157
+ [], setSelected: async (e) => {
158
+ const orgObj = schemaDetails?.organizations?.find((orgObj) => orgObj.name === e);
112
159
  setSchemaDetails({
113
160
  ...schemaDetails,
114
- organizations: organizations,
115
161
  selectedFields: {
116
162
  ...schemaDetails?.selectedFields,
117
- customerNameField: e,
163
+ defaultOrg: orgObj,
118
164
  },
119
165
  });
120
- }
121
- else {
166
+ }, selected: schemaDetails?.selectedFields?.defaultOrg?.name, label: 'Default organization' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.foreignKeys || [], setSelected: async (e) => {
122
167
  setSchemaDetails({
123
168
  ...schemaDetails,
124
169
  selectedFields: {
125
170
  ...schemaDetails?.selectedFields,
126
- customerNameField: e,
171
+ foreignKey: e,
127
172
  },
128
173
  });
129
- }
130
- }, selected: schemaDetails?.selectedFields?.customerNameField, label: 'Organization name field' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.organizations?.map((orgObj) => orgObj.name) ||
131
- [], setSelected: async (e) => {
132
- const orgObj = schemaDetails?.organizations?.find((orgObj) => orgObj.name === e);
133
- setSchemaDetails({
134
- ...schemaDetails,
135
- selectedFields: {
136
- ...schemaDetails?.selectedFields,
137
- defaultOrg: orgObj,
138
- },
139
- });
140
- }, selected: schemaDetails?.selectedFields?.defaultOrg?.name, label: 'Default organization' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.foreignKeys || [], setSelected: async (e) => {
141
- setSchemaDetails({
142
- ...schemaDetails,
143
- selectedFields: {
144
- ...schemaDetails?.selectedFields,
145
- foreignKey: e,
146
- },
147
- });
148
- }, selected: schemaDetails?.selectedFields?.foreignKey, label: 'Foreign key' })] }) }), _jsxs("div", { style: {
174
+ }, selected: schemaDetails?.selectedFields?.foreignKey, label: 'Foreign key' })] }), _jsxs("div", { style: {
175
+ ...header1Style,
176
+ textAlign: 'center',
177
+ fontSize: 14,
178
+ color: '#565656',
179
+ display: 'flex',
180
+ flexDirection: 'row',
181
+ alignItems: 'center',
182
+ paddingTop: 24,
183
+ paddingBottom: 0,
184
+ }, children: [_jsx("div", { style: { width: '100%', height: 1, background: '#e7e7e7' } }), _jsx("div", { style: { padding: 12 }, children: "or" }), _jsx("div", { style: { width: '100%', height: 1, background: '#e7e7e7' } })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '16px' }, children: [_jsxs("div", { children: [_jsx("h2", { style: { ...header2Style, fontWeight: 600, color: "#6e6e6e" }, children: "Customer Organization View" }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: '16px' }, children: [_jsx(TextInputPrimitive, { onChange: (e) => {
185
+ setCustomerViewQuery(e.target.value);
186
+ }, value: customerViewQuery }), _jsx(ButtonPrimitive, { label: runQueryButtonLabel, onClick: async () => {
187
+ setRunQueryButtonLabel('Querying...');
188
+ const getSqlResults = await getSqlViewData(clientId, customerViewQuery, environmentDetails.type, state.queryEndpoint);
189
+ if (!getSqlResults.success) {
190
+ setErrorInfo({
191
+ status: true,
192
+ msg: getSqlResults.error,
193
+ });
194
+ }
195
+ else {
196
+ setErrorInfo({ status: false, msg: '' });
197
+ handleQuerySuccess(getSqlResults);
198
+ }
199
+ setRunQueryButtonLabel('Run query');
200
+ },
201
+ // dont let the font wrap
202
+ style: { whiteSpace: 'nowrap' } })] })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: '16px' }, children: [_jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.customQueryOrganizations?.map((orgObj) => orgObj.name) || [], setSelected: async (e) => {
203
+ const orgObj = schemaDetails?.customQueryOrganizations?.find((orgObj) => orgObj.name === e);
204
+ setSchemaDetails({
205
+ ...schemaDetails,
206
+ selectedFields: {
207
+ ...schemaDetails?.selectedFields,
208
+ defaultOrg: orgObj,
209
+ },
210
+ });
211
+ }, selected: schemaDetails?.selectedFields?.defaultOrg?.name, label: 'Default organization' }), _jsx(DropdownMenuWithLabel, { parentRef: parentRef, items: schemaDetails?.customQueryFKs || [], setSelected: async (e) => {
212
+ setSchemaDetails({
213
+ ...schemaDetails,
214
+ selectedFields: {
215
+ ...schemaDetails?.selectedFields,
216
+ foreignKey: e,
217
+ },
218
+ });
219
+ }, selected: schemaDetails?.selectedFields?.foreignKey, label: 'Foreign key' })] }), errorInfo.status ? (_jsx("h2", { style: {
220
+ ...header2Style,
221
+ color: 'red',
222
+ paddingTop: '12px',
223
+ }, children: errorInfo.msg })) : (_jsx("div", {}))] })] }), _jsxs("div", { style: {
149
224
  width: '100%',
150
225
  display: 'flex',
151
226
  justifyContent: 'space-between',
@@ -1 +1 @@
1
- {"version":3,"file":"CreateSqlViews.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateSqlViews.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAa3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAK7E,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;CACZ,2CAiWA;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,2CAiDA"}
1
+ {"version":3,"file":"CreateSqlViews.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateSqlViews.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAW3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQvD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;CACZ,2CA+aA;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,2CAkDA"}