@quillsql/admin 1.6.0 → 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 (151) hide show
  1. package/dist/cjs/Admin.d.ts.map +1 -1
  2. package/dist/cjs/Admin.js +24 -11
  3. package/dist/cjs/AdminProvider.d.ts +2 -1
  4. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  5. package/dist/cjs/AdminProvider.js +13 -24
  6. package/dist/cjs/api/ConnectionClient.d.ts +8 -0
  7. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  8. package/dist/cjs/api/ConnectionClient.js +42 -8
  9. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  10. package/dist/cjs/components/DashboardSelectPopover.js +20 -3
  11. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  12. package/dist/cjs/components/DropDownMenuWithLabel.js +4 -35
  13. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  14. package/dist/cjs/components/EmptyDashboardComponent/index.js +11 -9
  15. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  16. package/dist/cjs/components/QuillSelect.js +2 -2
  17. package/dist/cjs/components/SegmentedControl.d.ts +4 -2
  18. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -1
  19. package/dist/cjs/components/SegmentedControl.js +22 -16
  20. package/dist/cjs/components/SqlTextEditor.d.ts +9 -1
  21. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  22. package/dist/cjs/components/SqlTextEditor.js +60 -12
  23. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  24. package/dist/cjs/components/UiComponents.js +11 -2
  25. package/dist/cjs/constants/dataTypes.d.ts +2 -0
  26. package/dist/cjs/constants/dataTypes.d.ts.map +1 -0
  27. package/dist/cjs/constants/dataTypes.js +21 -0
  28. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  29. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +9 -17
  30. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  31. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +24 -11
  32. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +4 -1
  33. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  34. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +87 -36
  35. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  36. package/dist/cjs/modals/EditFiltersModal.js +13 -3
  37. package/dist/cjs/modals/NewDashboardModal.js +2 -2
  38. package/dist/cjs/modals/PromoteDashModal.js +2 -2
  39. package/dist/cjs/modals/PromoteViewModal.d.ts +2 -1
  40. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  41. package/dist/cjs/modals/PromoteViewModal.js +46 -36
  42. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
  43. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  44. package/dist/cjs/primitives/TextInputPrimitive.js +35 -20
  45. package/dist/cjs/public_components/CreateEnvironment.d.ts +2 -1
  46. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  47. package/dist/cjs/public_components/CreateEnvironment.js +4 -1
  48. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  49. package/dist/cjs/public_components/DashboardBuilder.js +67 -156
  50. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  51. package/dist/cjs/public_components/DashboardManager.js +72 -73
  52. package/dist/cjs/public_components/SQLViewManager.d.ts +1 -0
  53. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  54. package/dist/cjs/public_components/SQLViewManager.js +216 -40
  55. package/dist/cjs/utils/astProcessing.d.ts +2 -0
  56. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  57. package/dist/cjs/utils/astProcessing.js +41 -0
  58. package/dist/cjs/utils/astProcessing.uspec.d.ts +2 -0
  59. package/dist/cjs/utils/astProcessing.uspec.d.ts.map +1 -0
  60. package/dist/cjs/utils/astProcessing.uspec.js +26 -0
  61. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  62. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  63. package/dist/cjs/utils/columnProcessing.js +42 -0
  64. package/dist/cjs/utils/dataEditor.d.ts +2 -2
  65. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  66. package/dist/cjs/utils/dataEditor.js +4 -2
  67. package/dist/cjs/utils/databases.d.ts +0 -1
  68. package/dist/cjs/utils/databases.d.ts.map +1 -1
  69. package/dist/cjs/utils/databases.js +5 -6
  70. package/dist/cjs/utils/monacoAutocomplete.d.ts +21 -0
  71. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +1 -0
  72. package/dist/cjs/utils/monacoAutocomplete.js +250 -0
  73. package/dist/cjs/utils/schema.d.ts +5 -0
  74. package/dist/cjs/utils/schema.d.ts.map +1 -1
  75. package/dist/cjs/utils/schema.js +129 -0
  76. package/dist/esm/Admin.d.ts.map +1 -1
  77. package/dist/esm/Admin.js +24 -11
  78. package/dist/esm/AdminProvider.d.ts +2 -1
  79. package/dist/esm/AdminProvider.d.ts.map +1 -1
  80. package/dist/esm/AdminProvider.js +13 -24
  81. package/dist/esm/api/ConnectionClient.d.ts +8 -0
  82. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  83. package/dist/esm/api/ConnectionClient.js +42 -8
  84. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  85. package/dist/esm/components/DashboardSelectPopover.js +20 -3
  86. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  87. package/dist/esm/components/DropDownMenuWithLabel.js +4 -35
  88. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  89. package/dist/esm/components/EmptyDashboardComponent/index.js +11 -9
  90. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  91. package/dist/esm/components/QuillSelect.js +2 -2
  92. package/dist/esm/components/SegmentedControl.d.ts +4 -2
  93. package/dist/esm/components/SegmentedControl.d.ts.map +1 -1
  94. package/dist/esm/components/SegmentedControl.js +22 -16
  95. package/dist/esm/components/SqlTextEditor.d.ts +9 -1
  96. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  97. package/dist/esm/components/SqlTextEditor.js +59 -11
  98. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  99. package/dist/esm/components/UiComponents.js +12 -3
  100. package/dist/esm/constants/dataTypes.d.ts +2 -0
  101. package/dist/esm/constants/dataTypes.d.ts.map +1 -0
  102. package/dist/esm/constants/dataTypes.js +18 -0
  103. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  104. package/dist/esm/forms/client_onboard/ConnectDatabase.js +9 -17
  105. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  106. package/dist/esm/forms/client_onboard/CreateSqlViews.js +25 -12
  107. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +4 -1
  108. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  109. package/dist/esm/forms/sql_views/CreateEditSqlView.js +87 -36
  110. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  111. package/dist/esm/modals/EditFiltersModal.js +13 -3
  112. package/dist/esm/modals/NewDashboardModal.js +2 -2
  113. package/dist/esm/modals/PromoteDashModal.js +2 -2
  114. package/dist/esm/modals/PromoteViewModal.d.ts +2 -1
  115. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  116. package/dist/esm/modals/PromoteViewModal.js +50 -40
  117. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
  118. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  119. package/dist/esm/primitives/TextInputPrimitive.js +33 -21
  120. package/dist/esm/public_components/CreateEnvironment.d.ts +2 -1
  121. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  122. package/dist/esm/public_components/CreateEnvironment.js +4 -1
  123. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  124. package/dist/esm/public_components/DashboardBuilder.js +68 -157
  125. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  126. package/dist/esm/public_components/DashboardManager.js +73 -74
  127. package/dist/esm/public_components/SQLViewManager.d.ts +1 -0
  128. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  129. package/dist/esm/public_components/SQLViewManager.js +216 -42
  130. package/dist/esm/utils/astProcessing.d.ts +2 -0
  131. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  132. package/dist/esm/utils/astProcessing.js +37 -0
  133. package/dist/esm/utils/astProcessing.uspec.d.ts +2 -0
  134. package/dist/esm/utils/astProcessing.uspec.d.ts.map +1 -0
  135. package/dist/esm/utils/astProcessing.uspec.js +24 -0
  136. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  137. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  138. package/dist/esm/utils/columnProcessing.js +37 -0
  139. package/dist/esm/utils/dataEditor.d.ts +2 -2
  140. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  141. package/dist/esm/utils/dataEditor.js +4 -2
  142. package/dist/esm/utils/databases.d.ts +0 -1
  143. package/dist/esm/utils/databases.d.ts.map +1 -1
  144. package/dist/esm/utils/databases.js +5 -6
  145. package/dist/esm/utils/monacoAutocomplete.d.ts +21 -0
  146. package/dist/esm/utils/monacoAutocomplete.d.ts.map +1 -0
  147. package/dist/esm/utils/monacoAutocomplete.js +245 -0
  148. package/dist/esm/utils/schema.d.ts +5 -0
  149. package/dist/esm/utils/schema.d.ts.map +1 -1
  150. package/dist/esm/utils/schema.js +126 -1
  151. package/package.json +3 -2
@@ -1,71 +1,74 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { theme } from "../Admin";
3
- import { DropDownMenu } from "../components";
4
- import { useEffect, useState } from "react";
5
- import { QUILL_SERVER } from "../utils/constants";
2
+ import { theme } from '../Admin';
3
+ import { DropDownMenu } from '../components';
4
+ import { useEffect, useRef, useState } from 'react';
5
+ import { QUILL_SERVER } from '../utils/constants';
6
+ import { QuillSelectComponent } from '../components/QuillSelect';
6
7
  const createStyles = (theme) => ({
7
8
  modalContent: {
8
- display: "flex",
9
- flexDirection: "column",
9
+ display: 'flex',
10
+ flexDirection: 'column',
10
11
  },
11
12
  modalHeader: {
12
- fontWeight: "600",
13
+ fontWeight: '600',
13
14
  fontSize: 20,
14
15
  paddingBottom: 4,
15
16
  color: theme.primaryTextColor,
16
17
  },
17
18
  container: {
18
- display: "flex",
19
- flexDirection: "column",
20
- justifyContent: "flex-start",
21
- alignItems: "flex-start",
22
- gap: "5px",
19
+ display: 'flex',
20
+ flexDirection: 'column',
21
+ justifyContent: 'flex-start',
22
+ alignItems: 'flex-start',
23
+ gap: '5px',
23
24
  marginTop: 20,
24
25
  },
25
26
  multiContainer: {
26
- display: "flex",
27
- flexDirection: "row",
28
- justifyContent: "space-between",
29
- alignItems: "center",
30
- gap: "20px",
27
+ display: 'flex',
28
+ flexDirection: 'row',
29
+ justifyContent: 'space-between',
30
+ alignItems: 'center',
31
+ gap: '20px',
31
32
  marginTop: 20,
32
33
  },
33
34
  header: {
34
35
  fontSize: theme.fontSize,
35
- paddingTop: "0px",
36
- marginTop: "0px",
37
- marginBottom: "0px",
36
+ paddingTop: '0px',
37
+ marginTop: '0px',
38
+ marginBottom: '0px',
38
39
  fontWeight: theme.labelFontWeight,
39
40
  color: theme.primaryTextColor,
40
41
  },
41
42
  text: {
42
43
  fontSize: theme.fontSize,
43
- paddingTop: "0px",
44
- marginTop: "0px",
45
- marginBottom: "4px",
44
+ paddingTop: '0px',
45
+ marginTop: '0px',
46
+ marginBottom: '4px',
46
47
  fontWeight: theme.labelFontWeight,
47
48
  color: theme.secondaryTextColor,
48
49
  },
49
50
  group: {
50
- display: "flex",
51
- flexDirection: "column",
52
- alignItems: "start",
53
- gap: "5px",
51
+ display: 'flex',
52
+ flexDirection: 'column',
53
+ alignItems: 'start',
54
+ gap: '5px',
54
55
  },
55
56
  button: {
56
57
  flexGrow: 1,
57
58
  fontSize: theme.fontSize,
58
- fontWeight: "600",
59
- padding: "10px 20px",
59
+ fontWeight: '600',
60
+ padding: '10px 20px',
60
61
  marginTop: 20,
61
62
  backgroundColor: theme.primaryButtonColor,
62
- borderRadius: "5px",
63
+ borderRadius: '5px',
63
64
  color: theme.primaryButtonTextColor,
65
+ width: '40px',
64
66
  },
65
67
  });
66
- export default function PromoteViewModal({ ModalComponent, isOpen, setIsOpen, clientId, client, clients, views, }) {
68
+ export default function PromoteViewModal({ ModalComponent, isOpen, setIsOpen, clientId, client, clients, views, parentRef, }) {
67
69
  const [modalSelectedView, setModalSelectedView] = useState(views[0]);
68
70
  const [selectedToClient, setSelectedToClient] = useState(clients[0]);
71
+ const modalRef = useRef(null);
69
72
  useEffect(() => {
70
73
  setModalSelectedView(views[0]);
71
74
  setSelectedToClient(clients[0]);
@@ -74,10 +77,10 @@ export default function PromoteViewModal({ ModalComponent, isOpen, setIsOpen, cl
74
77
  const handlePromote = async () => {
75
78
  try {
76
79
  const response = await fetch(`${QUILL_SERVER}/promote_view/`, {
77
- method: "POST",
80
+ method: 'POST',
78
81
  headers: {
79
- "Content-Type": "application/json",
80
- Authorization: "Bearer ",
82
+ 'Content-Type': 'application/json',
83
+ Authorization: 'Bearer ',
81
84
  },
82
85
  body: JSON.stringify({
83
86
  viewName: modalSelectedView.name,
@@ -86,18 +89,25 @@ export default function PromoteViewModal({ ModalComponent, isOpen, setIsOpen, cl
86
89
  }),
87
90
  });
88
91
  if (!response.ok) {
89
- throw new Error("API request failed");
92
+ throw new Error('API request failed');
90
93
  }
91
94
  const data = await response.json();
92
95
  }
93
96
  catch (error) {
94
- console.error("Promotion failed:", error);
97
+ console.error('Promotion failed:', error);
95
98
  }
96
99
  };
97
- return (_jsx(ModalComponent, { isOpen: isOpen, close: () => setIsOpen(false), children: _jsxs("div", { children: [_jsx("div", { style: styles.modalContent, children: _jsx("h1", { style: styles.modalHeader, children: "Promote Changes" }) }), _jsxs("div", { style: styles.container, children: [_jsx("h1", { style: styles.header, children: "SQL View:" }), _jsx("div", { style: styles.text, children: _jsx(DropDownMenu, { items: views, setSelected: setModalSelectedView, selected: modalSelectedView, theme: theme }) })] }), _jsxs("div", { style: styles.multiContainer, children: [_jsxs("div", { style: styles.group, children: [_jsx("h1", { style: styles.header, children: "From:" }), _jsx("div", { style: styles.text, children: _jsx(DropDownMenu, { items: [client], setSelected: () => { }, selected: client, theme: theme, disabled: true }) })] }), _jsx("span", {}), _jsxs("div", { style: styles.group, children: [_jsx("h1", { style: styles.header, children: "To:" }), _jsx("div", { style: styles.text, children: _jsx(DropDownMenu, { items: clients.filter((c) => c.name !== client.name), setSelected: setSelectedToClient, selected: selectedToClient, theme: theme }) })] })] }), _jsx("div", { style: {
98
- display: "flex",
99
- justifyContent: "center",
100
- alignItems: "center",
100
+ return (_jsx(ModalComponent, { isOpen: isOpen, setIsOpen: setIsOpen, title: 'Promote Changes', width: 500, children: _jsxs("div", { style: {
101
+ display: 'flex',
102
+ flexDirection: 'column',
103
+ padding: '20px',
104
+ boxSizing: 'border-box',
105
+ maxHeight: 600,
106
+ }, ref: modalRef, children: [_jsx(QuillSelectComponent, { options: views.map((v) => ({ label: v.name, value: v })), onChange: setModalSelectedView, value: modalSelectedView, theme: theme, label: "SQL View:" }), _jsxs("div", { style: styles.multiContainer, children: [_jsxs("div", { style: styles.group, children: [_jsx("h1", { style: styles.header, children: "From:" }), _jsx("div", { style: styles.text, children: _jsx(DropDownMenu, { items: [client], setSelected: () => { }, selected: client, theme: theme, disabled: true }) })] }), _jsx(QuillSelectComponent, { options: clients.map((c) => ({ label: c.name, value: c })), onChange: setSelectedToClient, value: selectedToClient, theme: theme, label: "To:" })] }), _jsx("div", { style: {
107
+ display: 'flex',
108
+ justifyContent: 'flex-start',
109
+ alignItems: 'center',
110
+ width: 200,
101
111
  }, children: _jsx("button", { style: styles.button, onClick: () => {
102
112
  handlePromote();
103
113
  setIsOpen(false);
@@ -7,6 +7,7 @@ interface TextInputPrimitiveProps {
7
7
  theme?: QuillTheme;
8
8
  disabled?: boolean;
9
9
  width?: string;
10
+ password?: boolean;
10
11
  }
11
12
  declare const TextInputPrimitive: React.FC<TextInputPrimitiveProps>;
12
13
  export default TextInputPrimitive;
@@ -1 +1 @@
1
- {"version":3,"file":"TextInputPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/TextInputPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAC;AAE7D,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAmCzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"TextInputPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/TextInputPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAC;AAE7D,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAmEzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,24 +1,36 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
2
3
  import { theme as defaultTheme } from '../Admin';
3
- const TextInputPrimitive = ({ onChange, value, placeholder, theme = defaultTheme, disabled = false, width = '250px', }) => {
4
- return (_jsx("input", { style: {
5
- display: 'flex',
6
- flexDirection: 'row',
7
- alignItems: 'center',
8
- paddingLeft: '12px',
9
- paddingRight: '12px',
10
- fontWeight: 'medium',
11
- height: 38,
12
- minWidth: width,
13
- boxShadow: '0 1px 2px 0 rgba(0,0,0,.05)',
14
- width: '100%',
15
- backgroundColor: theme?.backgroundColor || 'white',
16
- color: theme?.primaryTextColor,
17
- borderWidth: '1px',
18
- borderColor: theme?.borderColor || '#E7E7E7',
19
- borderStyle: 'solid',
20
- borderRadius: '6px',
21
- fontSize: 14,
22
- }, disabled: disabled, onChange: onChange, value: value, placeholder: placeholder }));
4
+ const TextInputPrimitive = ({ onChange, value, placeholder, theme = defaultTheme, disabled = false, width = '250px', password = false, }) => {
5
+ const [showPassword, setShowPassword] = React.useState(!password);
6
+ return (_jsxs("div", { style: { position: 'relative' }, children: [_jsx("input", { style: {
7
+ display: 'flex',
8
+ flexDirection: 'row',
9
+ alignItems: 'center',
10
+ paddingLeft: '12px',
11
+ paddingRight: '12px',
12
+ fontWeight: 'medium',
13
+ height: 38,
14
+ minWidth: width,
15
+ boxShadow: '0 1px 2px 0 rgba(0,0,0,.05)',
16
+ width: '100%',
17
+ backgroundColor: theme?.backgroundColor || 'white',
18
+ color: theme?.primaryTextColor,
19
+ borderWidth: '1px',
20
+ borderColor: theme?.borderColor || '#E7E7E7',
21
+ borderStyle: 'solid',
22
+ borderRadius: '6px',
23
+ fontSize: 14,
24
+ }, type: showPassword ? 'text' : 'password', disabled: disabled, onChange: onChange, value: value, placeholder: placeholder }), password ? (_jsx("div", { style: {
25
+ position: 'absolute',
26
+ right: '8px',
27
+ bottom: '6px',
28
+ cursor: 'pointer',
29
+ backgroundColor: 'white',
30
+ padding: '4px',
31
+ boxSizing: 'content-box',
32
+ }, onClick: () => {
33
+ setShowPassword(!showPassword);
34
+ }, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "currentColor", viewBox: "0 0 16 16", children: [_jsx("path", { d: "M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z" }), _jsx("path", { d: "M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0" })] }) })) : null] }));
23
35
  };
24
36
  export default TextInputPrimitive;
@@ -1,6 +1,7 @@
1
1
  import { CSSProperties } from 'react';
2
- export default function CreateEnvironment({ navigateToDashboardManager, containerStyle, }: {
2
+ export default function CreateEnvironment({ navigateToDashboardManager, onOnboardComplete, containerStyle, }: {
3
3
  navigateToDashboardManager?: () => void;
4
+ onOnboardComplete?: (client: any) => void;
4
5
  containerStyle?: CSSProperties;
5
6
  }): import("react/jsx-runtime").JSX.Element;
6
7
  //# sourceMappingURL=CreateEnvironment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEnvironment.d.ts","sourceRoot":"","sources":["../../../src/public_components/CreateEnvironment.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAuClE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAsMA"}
1
+ {"version":3,"file":"CreateEnvironment.d.ts","sourceRoot":"","sources":["../../../src/public_components/CreateEnvironment.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAuClE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,0BAA0B,EAC1B,iBAAiB,EACjB,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAyMA"}
@@ -19,7 +19,7 @@ const header2Style = {
19
19
  color: '#595959',
20
20
  marginBottom: '6px',
21
21
  };
22
- export default function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
22
+ export default function CreateEnvironment({ navigateToDashboardManager, onOnboardComplete, containerStyle, }) {
23
23
  const parentRef = React.useRef(null);
24
24
  const { state, dispatch } = useAdmin();
25
25
  const domainName = state.domainName;
@@ -134,5 +134,8 @@ export default function CreateEnvironment({ navigateToDashboardManager, containe
134
134
  if (navigateToDashboardManager) {
135
135
  navigateToDashboardManager();
136
136
  }
137
+ if (onOnboardComplete) {
138
+ onOnboardComplete(client);
139
+ }
137
140
  }, domainName: domainName, clientId: clientId, state: state })) : (_jsx(StepDisplay, { label: "Create SQL Views", completed: false, header1Style: header1Style }))] }));
138
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardBuilder.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AAY5E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,EACd,SAAgB,GACjB,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAgcA"}
1
+ {"version":3,"file":"DashboardBuilder.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AAY5E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,EACd,SAAgB,GACjB,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAwUA"}
@@ -1,34 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useRef, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { useAdmin } from '../AdminProvider';
4
- import { convertPostgresColumn } from '../Admin';
5
4
  import { EnvSelectPopover, OrgSelect } from '../components';
6
5
  import { ReportBuilder, SQLEditor } from '@quillsql/react';
7
- import { QUILL_SERVER } from '../utils/constants';
8
6
  import Banner from '../components/Banner';
9
7
  import DatabaseMismatchCard from '../components/DatabaseMismatchCard';
10
8
  const modeToggleOptions = ['SQL Editor', 'Report Builder'];
11
9
  export default function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEditor = true, }) {
12
10
  const parentRef = useRef(null);
13
11
  const { state, dispatch } = useAdmin();
14
- const [customerId, setCustomerId] = useState('');
15
12
  const [isEditActive, setIsEditActive] = useState(false);
16
- const [checked, setChecked] = useState(false);
17
- const [selected, setSelected] = useState('');
18
- const [userTyping, setUserTyping] = useState(false);
19
- const inputRef = useRef(null);
20
- const [filteredOptions, setFilteredOptions] = useState([]);
21
- const [sqlPrompt, setSqlPrompt] = useState('');
22
- const [dashboardNames, setDashboardNames] = useState([]);
23
- const [selectedDashboardName, setSelectedDashboardName] = useState('');
24
- const [isOpen, setIsOpen] = useState(false);
25
13
  const [query, setQuery] = useState(state.activeQuery);
26
- const [rows, setRows] = useState([]);
27
- const [columns, setColumns] = useState([]);
28
- const [fields, setFields] = useState([]);
29
- const [errorMessage, setErrorMessage] = useState('');
30
- const [sqlResponseLoading, setSqlResponseLoading] = useState(false);
31
14
  const [toggleMode, setToggleMode] = useState('SQL Editor');
15
+ const [selectedOrgName, setSelectedOrgName] = useState('');
32
16
  useEffect(() => {
33
17
  if (state.activeQuery) {
34
18
  setIsEditActive(true);
@@ -52,75 +36,14 @@ export default function DashboardBuilder({ navigateToDashboardManager, container
52
36
  setQuery(state.activeQuery);
53
37
  }, [state.activeQuery]);
54
38
  useEffect(() => {
55
- let isSubscribed = true;
56
- async function getDashNames() {
57
- // If you need to retrieve the JSON data from the response:
58
- const response = await fetch(`${state.queryEndpoint}`, {
59
- method: 'POST',
60
- headers: {
61
- ...state.queryHeaders,
62
- 'Content-Type': 'application/json',
63
- },
64
- body: JSON.stringify({
65
- metadata: {
66
- clientId: state.client._id,
67
- publicKey: state.client._id,
68
- task: 'dashboards',
69
- databaseType: state.client.databaseType,
70
- },
71
- }),
72
- });
73
- const data = await response.json();
74
- const dashNames = data.data.dashboardNames.filter((elem) => elem !== null);
75
- setDashboardNames(dashNames);
76
- setSelectedDashboardName(dashNames[0]);
77
- }
78
- if (isSubscribed) {
79
- getDashNames();
80
- }
81
- return () => {
82
- isSubscribed = false;
83
- };
84
- }, [state.environment]);
85
- // const navigate = useNavigate();
86
- const handleRunQuery = async () => {
87
- const { _id } = state.client;
88
- try {
89
- const response = await fetch(`${QUILL_SERVER}/dashquery?orgId=${state.organizationId || ''}&publicKey=${_id}`, {
90
- method: 'POST',
91
- headers: {
92
- Authorization: `Bearer `,
93
- environment: state.environment,
94
- 'Content-Type': 'application/json', // Important when sending JSON
95
- },
96
- body: JSON.stringify({
97
- query,
98
- }),
99
- });
100
- const responseData = await response.json();
101
- if (responseData && responseData.errorMessage) {
102
- setErrorMessage('Failed to run SQL query: ' + responseData.errorMessage);
103
- setRows([]);
104
- setColumns([]);
105
- setFields([]);
106
- return;
107
- }
108
- setErrorMessage('');
109
- setRows(responseData.rows);
110
- setColumns(responseData.fields.map((elem) => convertPostgresColumn(elem)));
111
- setFields(responseData.fields);
39
+ const selectedOrg = state.organizations.find((org) => {
40
+ const orgId = org.id ? org.id : org.ID;
41
+ return orgId && String(orgId) === String(state.organizationId);
42
+ });
43
+ if (selectedOrg) {
44
+ setSelectedOrgName(selectedOrg.name ? selectedOrg.name : selectedOrg.NAME);
112
45
  }
113
- catch (e) {
114
- console.log('ERROR: ', e);
115
- return;
116
- }
117
- };
118
- const handleAddToDashboard = () => {
119
- setIsOpen(true);
120
- };
121
- const newRows = useMemo(() => {
122
- return JSON.parse(JSON.stringify(rows));
123
- }, [rows]);
46
+ }, [state.organizations, state.organizationId]);
124
47
  /* all your useState and useContext calls and your useEffect hooks */
125
48
  // MMTODO: idk if this is needed
126
49
  // const handleSetOrganization = (org) => {
@@ -226,78 +149,66 @@ export default function DashboardBuilder({ navigateToDashboardManager, container
226
149
  return;
227
150
  dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
228
151
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
229
- } })), state.databaseTypeMismatch.show && (_jsx(DatabaseMismatchCard, { environemntName: state.client.name, environemntDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })), _jsx("div", { style: {
230
- // Toggle the height of the container so they both stay in the DOM
231
- // and don't refetch when switching back and forth.
232
- height: toggleMode === 'Report Builder' ? '100%' : 0,
233
- overflow: 'hidden',
234
- }, children: _jsx(ReportBuilder, { isAdminEnabled: true,
235
- // initialTableName={state.tables.length > 0 && state.tables[0]!.name}
236
- onSubmitCreateReport: (report) => {
237
- const dashboard = state.dashboards.find((dash) => {
238
- return dash.name === report.dashboardName;
152
+ } })), state.databaseTypeMismatch.show && (_jsx(DatabaseMismatchCard, { environemntName: state.client.name, environemntDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })), toggleMode === 'Report Builder' ? (_jsx(ReportBuilder, { isAdminEnabled: true,
153
+ // initialTableName={state.tables.length > 0 && state.tables[0]!.name}
154
+ onSubmitCreateReport: (report) => {
155
+ const dashboard = state.dashboards.find((dash) => {
156
+ return dash.name === report.dashboardName;
157
+ });
158
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
159
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
160
+ if (state.navigateToDashboardManager) {
161
+ dispatch({
162
+ type: 'SET_ACTIVE_COMPONENT',
163
+ payload: 'Dashboards',
239
164
  });
240
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
241
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
242
- if (state.navigateToDashboardManager) {
243
- dispatch({
244
- type: 'SET_ACTIVE_COMPONENT',
245
- payload: 'Dashboards',
246
- });
247
- dispatch({
248
- type: 'SET_SELECTED_DASHBOARD',
249
- payload: dashboard,
250
- });
251
- state.navigateToDashboardManager();
252
- }
253
- }, onSubmitEditReport: (report) => {
254
- const dashboard = state.dashboards.find((dash) => {
255
- return dash.name === report.dashboardName;
165
+ dispatch({
166
+ type: 'SET_SELECTED_DASHBOARD',
167
+ payload: dashboard,
256
168
  });
257
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
258
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
259
- if (state.navigateToDashboardManager) {
260
- dispatch({
261
- type: 'SET_ACTIVE_COMPONENT',
262
- payload: 'Dashboards',
263
- });
264
- dispatch({
265
- type: 'SET_SELECTED_DASHBOARD',
266
- payload: dashboard,
267
- });
268
- state.navigateToDashboardManager();
269
- }
270
- }, organizationName: state.organizations.find((org) => {
271
- return (org.id && String(org.id) === String(state.organizationId));
272
- })?.name, containerStyle: {
273
- height: '100%',
274
- width: '100%',
275
- } }) }), sqlEditor && !state.databaseTypeMismatch.show && (_jsx("div", { style: {
276
- height: toggleMode === 'SQL Editor' ? '100%' : 0,
277
- overflow: 'hidden',
278
- }, children: _jsx(SQLEditor, { isChartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: query, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', report: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: (report) => {
279
- const dashboard = state.dashboards.find((dash) => {
280
- return dash.name === report.dashboardName;
169
+ state.navigateToDashboardManager();
170
+ }
171
+ }, onSubmitEditReport: (report) => {
172
+ const dashboard = state.dashboards.find((dash) => {
173
+ return dash.name === report.dashboardName;
174
+ });
175
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
176
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
177
+ if (state.navigateToDashboardManager) {
178
+ dispatch({
179
+ type: 'SET_ACTIVE_COMPONENT',
180
+ payload: 'Dashboards',
281
181
  });
282
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
283
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
284
- if (state.navigateToDashboardManager) {
285
- dispatch({
286
- type: 'SET_ACTIVE_COMPONENT',
287
- payload: 'Dashboards',
288
- });
289
- dispatch({
290
- type: 'SET_SELECTED_DASHBOARD',
291
- payload: dashboard,
292
- });
293
- state.navigateToDashboardManager();
294
- }
295
- }, containerStyle: {
296
- height: '100%',
297
- width: '100%',
298
- // paddingRight: 25,
299
- // paddingTop: 25,
300
- }, organizationName: state.organizations.find((org) => {
301
- return (org.id && String(org.id) === String(state.organizationId));
302
- })?.name }) }))] }) }));
182
+ dispatch({
183
+ type: 'SET_SELECTED_DASHBOARD',
184
+ payload: dashboard,
185
+ });
186
+ state.navigateToDashboardManager();
187
+ }
188
+ }, organizationName: selectedOrgName, containerStyle: {
189
+ height: '100%',
190
+ width: '100%',
191
+ } })) : (_jsx(SQLEditor, { isChartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: query, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', report: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: (report) => {
192
+ const dashboard = state.dashboards.find((dash) => {
193
+ return dash.name === report.dashboardName;
194
+ });
195
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
196
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
197
+ if (state.navigateToDashboardManager) {
198
+ dispatch({
199
+ type: 'SET_ACTIVE_COMPONENT',
200
+ payload: 'Dashboards',
201
+ });
202
+ dispatch({
203
+ type: 'SET_SELECTED_DASHBOARD',
204
+ payload: dashboard,
205
+ });
206
+ state.navigateToDashboardManager();
207
+ }
208
+ }, containerStyle: {
209
+ height: '100%',
210
+ width: '100%',
211
+ // paddingRight: 25,
212
+ // paddingTop: 25,
213
+ }, organizationName: selectedOrgName }))] }) }));
303
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AA0BnE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAofA"}
1
+ {"version":3,"file":"DashboardManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AA2BnE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CA+hBA"}