@mongodb-js/connection-form 0.1.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 (183) hide show
  1. package/LICENSE +557 -0
  2. package/dist/.esm-wrapper.mjs +5 -0
  3. package/dist/components/advanced-connection-options.d.ts +12 -0
  4. package/dist/components/advanced-connection-options.d.ts.map +1 -0
  5. package/dist/components/advanced-connection-options.js +29 -0
  6. package/dist/components/advanced-connection-options.js.map +1 -0
  7. package/dist/components/advanced-options-tabs/advanced-options-tabs.d.ts +11 -0
  8. package/dist/components/advanced-options-tabs/advanced-options-tabs.d.ts.map +1 -0
  9. package/dist/components/advanced-options-tabs/advanced-options-tabs.js +85 -0
  10. package/dist/components/advanced-options-tabs/advanced-options-tabs.js.map +1 -0
  11. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.d.ts +13 -0
  12. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.d.ts.map +1 -0
  13. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.js +80 -0
  14. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.js.map +1 -0
  15. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.d.ts +9 -0
  16. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.d.ts.map +1 -0
  17. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.js +130 -0
  18. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.js.map +1 -0
  19. package/dist/components/advanced-options-tabs/advanced-tab/url-options.d.ts +9 -0
  20. package/dist/components/advanced-options-tabs/advanced-tab/url-options.d.ts.map +1 -0
  21. package/dist/components/advanced-options-tabs/advanced-tab/url-options.js +25 -0
  22. package/dist/components/advanced-options-tabs/advanced-tab/url-options.js.map +1 -0
  23. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.d.ts +14 -0
  24. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.d.ts.map +1 -0
  25. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.js +44 -0
  26. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.js.map +1 -0
  27. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.d.ts +11 -0
  28. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.d.ts.map +1 -0
  29. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.js +103 -0
  30. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.js.map +1 -0
  31. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.d.ts +11 -0
  32. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.d.ts.map +1 -0
  33. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.js +103 -0
  34. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.js.map +1 -0
  35. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.d.ts +13 -0
  36. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.d.ts.map +1 -0
  37. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.js +36 -0
  38. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.js.map +1 -0
  39. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.d.ts +13 -0
  40. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.d.ts.map +1 -0
  41. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.js +116 -0
  42. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.js.map +1 -0
  43. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.d.ts +4 -0
  44. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.d.ts.map +1 -0
  45. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.js +20 -0
  46. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.js.map +1 -0
  47. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.d.ts +9 -0
  48. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.d.ts.map +1 -0
  49. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.js +49 -0
  50. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.js.map +1 -0
  51. package/dist/components/advanced-options-tabs/general-tab/general-tab.d.ts +11 -0
  52. package/dist/components/advanced-options-tabs/general-tab/general-tab.d.ts.map +1 -0
  53. package/dist/components/advanced-options-tabs/general-tab/general-tab.js +17 -0
  54. package/dist/components/advanced-options-tabs/general-tab/general-tab.js.map +1 -0
  55. package/dist/components/advanced-options-tabs/general-tab/host-input.d.ts +11 -0
  56. package/dist/components/advanced-options-tabs/general-tab/host-input.d.ts.map +1 -0
  57. package/dist/components/advanced-options-tabs/general-tab/host-input.js +86 -0
  58. package/dist/components/advanced-options-tabs/general-tab/host-input.js.map +1 -0
  59. package/dist/components/advanced-options-tabs/general-tab/schema-input.d.ts +11 -0
  60. package/dist/components/advanced-options-tabs/general-tab/schema-input.d.ts.map +1 -0
  61. package/dist/components/advanced-options-tabs/general-tab/schema-input.js +52 -0
  62. package/dist/components/advanced-options-tabs/general-tab/schema-input.js.map +1 -0
  63. package/dist/components/advanced-options-tabs/general-tab/scheme-input.d.ts +11 -0
  64. package/dist/components/advanced-options-tabs/general-tab/scheme-input.d.ts.map +1 -0
  65. package/dist/components/advanced-options-tabs/general-tab/scheme-input.js +52 -0
  66. package/dist/components/advanced-options-tabs/general-tab/scheme-input.js.map +1 -0
  67. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.d.ts +13 -0
  68. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.d.ts.map +1 -0
  69. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.js +127 -0
  70. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.js.map +1 -0
  71. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.d.ts +11 -0
  72. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.d.ts.map +1 -0
  73. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.js +86 -0
  74. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.js.map +1 -0
  75. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.d.ts +11 -0
  76. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.d.ts.map +1 -0
  77. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.js +100 -0
  78. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.js.map +1 -0
  79. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.d.ts +11 -0
  80. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.d.ts.map +1 -0
  81. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.js +82 -0
  82. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.js.map +1 -0
  83. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.d.ts +9 -0
  84. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.d.ts.map +1 -0
  85. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.js +22 -0
  86. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.js.map +1 -0
  87. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.d.ts +10 -0
  88. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.d.ts.map +1 -0
  89. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.js +27 -0
  90. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.js.map +1 -0
  91. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.d.ts +11 -0
  92. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.d.ts.map +1 -0
  93. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.js +129 -0
  94. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.js.map +1 -0
  95. package/dist/components/confirm-edit-connection-string.d.ts +8 -0
  96. package/dist/components/confirm-edit-connection-string.d.ts.map +1 -0
  97. package/dist/components/confirm-edit-connection-string.js +13 -0
  98. package/dist/components/confirm-edit-connection-string.js.map +1 -0
  99. package/dist/components/connect-form-actions.d.ts +11 -0
  100. package/dist/components/connect-form-actions.d.ts.map +1 -0
  101. package/dist/components/connect-form-actions.js +30 -0
  102. package/dist/components/connect-form-actions.js.map +1 -0
  103. package/dist/components/connect-form.d.ts +10 -0
  104. package/dist/components/connect-form.d.ts.map +1 -0
  105. package/dist/components/connect-form.js +166 -0
  106. package/dist/components/connect-form.js.map +1 -0
  107. package/dist/components/connection-string-input.d.ts +11 -0
  108. package/dist/components/connection-string-input.d.ts.map +1 -0
  109. package/dist/components/connection-string-input.js +118 -0
  110. package/dist/components/connection-string-input.js.map +1 -0
  111. package/dist/components/favorite-color-picker.d.ts +6 -0
  112. package/dist/components/favorite-color-picker.d.ts.map +1 -0
  113. package/dist/components/favorite-color-picker.js +79 -0
  114. package/dist/components/favorite-color-picker.js.map +1 -0
  115. package/dist/components/form-field-container.d.ts +7 -0
  116. package/dist/components/form-field-container.d.ts.map +1 -0
  117. package/dist/components/form-field-container.js +15 -0
  118. package/dist/components/form-field-container.js.map +1 -0
  119. package/dist/components/save-connection-modal.d.ts +10 -0
  120. package/dist/components/save-connection-modal.d.ts.map +1 -0
  121. package/dist/components/save-connection-modal.js +55 -0
  122. package/dist/components/save-connection-modal.js.map +1 -0
  123. package/dist/components/validation-summary.d.ts +12 -0
  124. package/dist/components/validation-summary.d.ts.map +1 -0
  125. package/dist/components/validation-summary.js +56 -0
  126. package/dist/components/validation-summary.js.map +1 -0
  127. package/dist/constants/default-connection.d.ts +6 -0
  128. package/dist/constants/default-connection.d.ts.map +1 -0
  129. package/dist/constants/default-connection.js +9 -0
  130. package/dist/constants/default-connection.js.map +1 -0
  131. package/dist/hooks/use-connect-form.d.ts +67 -0
  132. package/dist/hooks/use-connect-form.d.ts.map +1 -0
  133. package/dist/hooks/use-connect-form.js +373 -0
  134. package/dist/hooks/use-connect-form.js.map +1 -0
  135. package/dist/hooks/use-connection-color.d.ts +8 -0
  136. package/dist/hooks/use-connection-color.d.ts.map +1 -0
  137. package/dist/hooks/use-connection-color.js +59 -0
  138. package/dist/hooks/use-connection-color.js.map +1 -0
  139. package/dist/index.d.ts +6 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +14 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/utils/authentication-handler.d.ts +42 -0
  144. package/dist/utils/authentication-handler.d.ts.map +1 -0
  145. package/dist/utils/authentication-handler.js +96 -0
  146. package/dist/utils/authentication-handler.js.map +1 -0
  147. package/dist/utils/check-for-invalid-character-in-host.d.ts +2 -0
  148. package/dist/utils/check-for-invalid-character-in-host.d.ts.map +1 -0
  149. package/dist/utils/check-for-invalid-character-in-host.js +16 -0
  150. package/dist/utils/check-for-invalid-character-in-host.js.map +1 -0
  151. package/dist/utils/connection-ssh-handler.d.ts +15 -0
  152. package/dist/utils/connection-ssh-handler.d.ts.map +1 -0
  153. package/dist/utils/connection-ssh-handler.js +23 -0
  154. package/dist/utils/connection-ssh-handler.js.map +1 -0
  155. package/dist/utils/connection-string-helpers.d.ts +14 -0
  156. package/dist/utils/connection-string-helpers.d.ts.map +1 -0
  157. package/dist/utils/connection-string-helpers.js +65 -0
  158. package/dist/utils/connection-string-helpers.js.map +1 -0
  159. package/dist/utils/connection-string-schema.d.ts +3 -0
  160. package/dist/utils/connection-string-schema.d.ts.map +1 -0
  161. package/dist/utils/connection-string-schema.js +43 -0
  162. package/dist/utils/connection-string-schema.js.map +1 -0
  163. package/dist/utils/get-next-host.d.ts +2 -0
  164. package/dist/utils/get-next-host.d.ts.map +1 -0
  165. package/dist/utils/get-next-host.js +26 -0
  166. package/dist/utils/get-next-host.js.map +1 -0
  167. package/dist/utils/read-preferences.d.ts +8 -0
  168. package/dist/utils/read-preferences.d.ts.map +1 -0
  169. package/dist/utils/read-preferences.js +27 -0
  170. package/dist/utils/read-preferences.js.map +1 -0
  171. package/dist/utils/tls-handler.d.ts +29 -0
  172. package/dist/utils/tls-handler.d.ts.map +1 -0
  173. package/dist/utils/tls-handler.js +47 -0
  174. package/dist/utils/tls-handler.js.map +1 -0
  175. package/dist/utils/url-options.d.ts +10 -0
  176. package/dist/utils/url-options.d.ts.map +1 -0
  177. package/dist/utils/url-options.js +49 -0
  178. package/dist/utils/url-options.js.map +1 -0
  179. package/dist/utils/validation.d.ts +30 -0
  180. package/dist/utils/validation.d.ts.map +1 -0
  181. package/dist/utils/validation.js +284 -0
  182. package/dist/utils/validation.js.map +1 -0
  183. package/package.json +89 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.hidePasswordInConnectionString = void 0;
26
+ const react_1 = __importStar(require("react"));
27
+ const compass_components_1 = require("@mongodb-js/compass-components");
28
+ const mongodb_connection_string_url_1 = require("mongodb-connection-string-url");
29
+ const confirm_edit_connection_string_1 = __importDefault(require("./confirm-edit-connection-string"));
30
+ const textAreaContainerStyle = (0, compass_components_1.css)({
31
+ position: 'relative',
32
+ marginTop: compass_components_1.spacing[1],
33
+ marginBottom: compass_components_1.spacing[2],
34
+ });
35
+ const uriLabelContainerStyles = (0, compass_components_1.css)({
36
+ flexGrow: 1,
37
+ });
38
+ const connectionStringStyles = (0, compass_components_1.css)({
39
+ textarea: {
40
+ fontSize: compass_components_1.spacing[2] * 1.75,
41
+ minHeight: compass_components_1.spacing[7],
42
+ resize: 'vertical',
43
+ },
44
+ });
45
+ const editToggleStyles = (0, compass_components_1.css)({
46
+ height: 14,
47
+ width: 26,
48
+ margin: 0,
49
+ marginLeft: compass_components_1.spacing[1],
50
+ });
51
+ const editToggleLabelStyles = (0, compass_components_1.css)({
52
+ '&:hover': {
53
+ cursor: 'pointer',
54
+ },
55
+ });
56
+ const textAreaLabelContainerStyles = (0, compass_components_1.css)({
57
+ marginTop: compass_components_1.spacing[3],
58
+ display: 'flex',
59
+ flexDirection: 'row',
60
+ });
61
+ const connectionStringInputId = 'connectionString';
62
+ const connectionStringLabelId = 'connectionStringLabel';
63
+ function hidePasswordInConnectionString(connectionString) {
64
+ return (0, mongodb_connection_string_url_1.redactConnectionString)(connectionString, {
65
+ redactUsernames: false,
66
+ replacementString: '*****',
67
+ });
68
+ }
69
+ exports.hidePasswordInConnectionString = hidePasswordInConnectionString;
70
+ function ConnectStringInput({ connectionString, enableEditingConnectionString, setEnableEditingConnectionString, updateConnectionFormField, }) {
71
+ const textAreaEl = (0, react_1.useRef)(null);
72
+ const [editingConnectionString, setEditingConnectionString] = (0, react_1.useState)(connectionString);
73
+ const [showEditConnectionStringPrompt, setShowEditConnectionStringPrompt] = (0, react_1.useState)(false);
74
+ (0, react_1.useEffect)(() => {
75
+ if (editingConnectionString !== connectionString &&
76
+ (!textAreaEl.current || textAreaEl.current !== document.activeElement)) {
77
+ setEditingConnectionString(connectionString);
78
+ }
79
+ }, [
80
+ connectionString,
81
+ enableEditingConnectionString,
82
+ editingConnectionString,
83
+ ]);
84
+ const onChangeConnectionString = (0, react_1.useCallback)((event) => {
85
+ const newConnectionString = event.target.value;
86
+ setEditingConnectionString(newConnectionString);
87
+ updateConnectionFormField({
88
+ type: 'update-connection-string',
89
+ newConnectionStringValue: newConnectionString,
90
+ });
91
+ }, [updateConnectionFormField]);
92
+ const displayedConnectionString = enableEditingConnectionString
93
+ ? editingConnectionString
94
+ : hidePasswordInConnectionString(editingConnectionString);
95
+ return (react_1.default.createElement(react_1.Fragment, null,
96
+ react_1.default.createElement("div", { className: textAreaLabelContainerStyles },
97
+ react_1.default.createElement("div", { className: uriLabelContainerStyles },
98
+ react_1.default.createElement(compass_components_1.Label, { htmlFor: connectionStringInputId, id: connectionStringLabelId }, "URI"),
99
+ react_1.default.createElement(compass_components_1.InlineInfoLink, { "aria-label": "Connection String Documentation", "data-testid": "connectionStringDocsButton", href: "https://docs.mongodb.com/manual/reference/connection-string/" })),
100
+ react_1.default.createElement(compass_components_1.Label, { className: editToggleLabelStyles, id: "edit-connection-string-label", htmlFor: "toggle-edit-connection-string" }, "Edit Connection String"),
101
+ react_1.default.createElement(compass_components_1.Toggle, { className: editToggleStyles, id: "toggle-edit-connection-string", "aria-labelledby": "edit-connection-string-label", size: "xsmall", checked: enableEditingConnectionString, onChange: (checked) => {
102
+ if (checked) {
103
+ setShowEditConnectionStringPrompt(true);
104
+ return;
105
+ }
106
+ setEnableEditingConnectionString(false);
107
+ } })),
108
+ react_1.default.createElement("div", { className: textAreaContainerStyle },
109
+ react_1.default.createElement(compass_components_1.TextArea, { onChange: onChangeConnectionString, value: displayedConnectionString, className: connectionStringStyles, disabled: !enableEditingConnectionString, id: connectionStringInputId, "data-testid": connectionStringInputId, ref: textAreaEl, "aria-labelledby": connectionStringLabelId, placeholder: "e.g mongodb+srv://username:password@cluster0-jtpxd.mongodb.net/admin", spellCheck: false }),
110
+ react_1.default.createElement(confirm_edit_connection_string_1.default, { open: showEditConnectionStringPrompt, onCancel: () => {
111
+ setShowEditConnectionStringPrompt(false);
112
+ }, onConfirm: () => {
113
+ setEnableEditingConnectionString(true);
114
+ setShowEditConnectionStringPrompt(false);
115
+ } }))));
116
+ }
117
+ exports.default = ConnectStringInput;
118
+ //# sourceMappingURL=connection-string-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-string-input.js","sourceRoot":"","sources":["../../src/components/connection-string-input.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export declare function FavoriteColorPicker({ colorCode, onChange, }: {
3
+ colorCode?: string;
4
+ onChange: (newColor?: string) => void;
5
+ }): React.ReactElement;
6
+ //# sourceMappingURL=favorite-color-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorite-color-picker.d.ts","sourceRoot":"","sources":["../../src/components/favorite-color-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0G1B,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,GAAG,KAAK,CAAC,YAAY,CA6CrB"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FavoriteColorPicker = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const compass_components_1 = require("@mongodb-js/compass-components");
9
+ const use_connection_color_1 = require("../hooks/use-connection-color");
10
+ const colorOptionStyles = (0, compass_components_1.css)({
11
+ outline: 'none',
12
+ margin: 0,
13
+ padding: 0,
14
+ marginRight: compass_components_1.spacing[2],
15
+ borderRadius: '50%',
16
+ verticalAlign: 'middle',
17
+ width: compass_components_1.spacing[5] + compass_components_1.spacing[1],
18
+ height: compass_components_1.spacing[5] + compass_components_1.spacing[1],
19
+ border: '1px solid transparent',
20
+ boxShadow: `0 0 0 0 ${compass_components_1.uiColors.focus}`,
21
+ transition: 'box-shadow .16s ease-in',
22
+ position: 'relative',
23
+ overflow: 'hidden',
24
+ });
25
+ const activeColorOptionStyles = (0, compass_components_1.css)({
26
+ boxShadow: `0 0 0 3px ${compass_components_1.uiColors.focus}`,
27
+ transitionTimingFunction: 'ease-out',
28
+ });
29
+ const inActiveColorOptionStyles = (0, compass_components_1.css)({
30
+ '&:focus, &:hover': {
31
+ boxShadow: `0 0 0 3px ${compass_components_1.uiColors.gray.light1}`,
32
+ },
33
+ });
34
+ const noColorRedBarStyles = (0, compass_components_1.css)({
35
+ width: 40,
36
+ borderTop: `3px solid ${compass_components_1.uiColors.red.base}`,
37
+ transform: 'rotate(-45deg)',
38
+ position: 'absolute',
39
+ left: -5,
40
+ });
41
+ const selectedColorCheckmarkStyles = (0, compass_components_1.css)({
42
+ margin: 0,
43
+ padding: 0,
44
+ });
45
+ function ColorOption({ isSelected, onClick, code, hex, }) {
46
+ return (react_1.default.createElement("button", { style: { background: hex }, className: (0, compass_components_1.cx)({
47
+ [colorOptionStyles]: true,
48
+ [activeColorOptionStyles]: isSelected,
49
+ [inActiveColorOptionStyles]: !isSelected,
50
+ }), "data-testid": `color-pick-${code}${isSelected ? '-selected' : ''}`, onClick: onClick, title: hex, "aria-pressed": isSelected }, isSelected && (react_1.default.createElement("svg", { className: selectedColorCheckmarkStyles, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: 20, height: 34 },
51
+ react_1.default.createElement("g", { fill: "white", fillOpacity: isSelected ? 1 : 0, strokeOpacity: isSelected ? 1 : 0 },
52
+ react_1.default.createElement("path", { stroke: "#ffffff", d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" }))))));
53
+ }
54
+ function FavoriteColorPicker({ colorCode, onChange, }) {
55
+ const selectedColorCode = (0, use_connection_color_1.legacyColorsToColorCode)(colorCode);
56
+ const { connectionColorToHex: colorCodeToHex } = (0, use_connection_color_1.useConnectionColor)();
57
+ const selectedColorHex = colorCodeToHex(selectedColorCode);
58
+ return (react_1.default.createElement(react_1.default.Fragment, null,
59
+ react_1.default.createElement(compass_components_1.Label, { htmlFor: "favorite-color-selector" }, "Color"),
60
+ react_1.default.createElement("div", { id: "favorite-color-selector" },
61
+ react_1.default.createElement("button", { style: {
62
+ background: 'white',
63
+ borderColor: compass_components_1.uiColors.black,
64
+ }, className: (0, compass_components_1.cx)({
65
+ [colorOptionStyles]: true,
66
+ [activeColorOptionStyles]: !selectedColorHex,
67
+ }), onClick: () => {
68
+ onChange();
69
+ }, "data-testid": `color-pick-no-color${!selectedColorHex ? '-selected' : ''}`, title: "No color", "aria-pressed": !selectedColorHex },
70
+ react_1.default.createElement("div", { className: noColorRedBarStyles })),
71
+ use_connection_color_1.CONNECTION_COLOR_CODES.map((colorCode) => {
72
+ const hex = colorCodeToHex(colorCode) || '';
73
+ return (react_1.default.createElement(ColorOption, { onClick: () => {
74
+ onChange(colorCode);
75
+ }, isSelected: colorCode === selectedColorCode, hex: hex, code: colorCode, key: colorCode }));
76
+ }))));
77
+ }
78
+ exports.FavoriteColorPicker = FavoriteColorPicker;
79
+ //# sourceMappingURL=favorite-color-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorite-color-picker.js","sourceRoot":"","sources":["../../src/components/favorite-color-picker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ declare function FormFieldContainer({ className, children, }: {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ }): React.ReactElement;
6
+ export default FormFieldContainer;
7
+ //# sourceMappingURL=form-field-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field-container.d.ts","sourceRoot":"","sources":["../../src/components/form-field-container.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,iBAAS,kBAAkB,CAAC,EAC1B,SAAc,EACd,QAAQ,GACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAIrB;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const compass_components_1 = require("@mongodb-js/compass-components");
7
+ const react_1 = __importDefault(require("react"));
8
+ const formFieldContainerStyles = (0, compass_components_1.css)({
9
+ marginTop: compass_components_1.spacing[3],
10
+ });
11
+ function FormFieldContainer({ className = '', children, }) {
12
+ return (react_1.default.createElement("div", { className: (0, compass_components_1.cx)(formFieldContainerStyles, className) }, children));
13
+ }
14
+ exports.default = FormFieldContainer;
15
+ //# sourceMappingURL=form-field-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field-container.js","sourceRoot":"","sources":["../../src/components/form-field-container.tsx"],"names":[],"mappings":";;;;;AAAA,uEAAkE;AAClE,kDAA0B;AAE1B,MAAM,wBAAwB,GAAG,IAAA,wBAAG,EAAC;IACnC,SAAS,EAAE,4BAAO,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,EAC1B,SAAS,GAAG,EAAE,EACd,QAAQ,GAIT;IACC,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,uBAAE,EAAC,wBAAwB,EAAE,SAAS,CAAC,IAAG,QAAQ,CAAO,CAC1E,CAAC;AACJ,CAAC;AAED,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { ConnectionFavoriteOptions } from 'mongodb-data-service';
3
+ declare function SaveConnectionModal({ initialFavoriteInfo, onCancelClicked, onSaveClicked, open, }: {
4
+ initialFavoriteInfo?: ConnectionFavoriteOptions;
5
+ onCancelClicked: () => void;
6
+ onSaveClicked: (favoriteInfo: ConnectionFavoriteOptions) => Promise<void>;
7
+ open: boolean;
8
+ }): React.ReactElement;
9
+ export default SaveConnectionModal;
10
+ //# sourceMappingURL=save-connection-modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-connection-modal.d.ts","sourceRoot":"","sources":["../../src/components/save-connection-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAKtE,iBAAS,mBAAmB,CAAC,EAC3B,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,IAAI,GACL,EAAE;IACD,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,CAAC,YAAY,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,KAAK,CAAC,YAAY,CAiDrB;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const react_1 = __importStar(require("react"));
26
+ const compass_components_1 = require("@mongodb-js/compass-components");
27
+ const form_field_container_1 = __importDefault(require("./form-field-container"));
28
+ const favorite_color_picker_1 = require("./favorite-color-picker");
29
+ function SaveConnectionModal({ initialFavoriteInfo, onCancelClicked, onSaveClicked, open, }) {
30
+ const [editingFavorite, setEditingFavorite] = (0, react_1.useState)({
31
+ name: '',
32
+ ...initialFavoriteInfo,
33
+ });
34
+ return (react_1.default.createElement(compass_components_1.ConfirmationModal, { title: initialFavoriteInfo ? 'Edit favorite' : 'Save connection to favorites', open: open, onConfirm: () => {
35
+ void onSaveClicked({
36
+ ...editingFavorite,
37
+ });
38
+ }, submitDisabled: (editingFavorite.name || '').trim() ? false : true, onCancel: onCancelClicked, buttonText: "Save" },
39
+ react_1.default.createElement(form_field_container_1.default, null,
40
+ react_1.default.createElement(compass_components_1.TextInput, { spellCheck: false, onChange: ({ target: { value }, }) => {
41
+ setEditingFavorite({
42
+ ...editingFavorite,
43
+ name: value,
44
+ });
45
+ }, label: "Name", value: editingFavorite.name })),
46
+ react_1.default.createElement(form_field_container_1.default, null,
47
+ react_1.default.createElement(favorite_color_picker_1.FavoriteColorPicker, { colorCode: editingFavorite.color, onChange: (newColor) => {
48
+ setEditingFavorite({
49
+ ...editingFavorite,
50
+ color: newColor,
51
+ });
52
+ } }))));
53
+ }
54
+ exports.default = SaveConnectionModal;
55
+ //# sourceMappingURL=save-connection-modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-connection-modal.js","sourceRoot":"","sources":["../../src/components/save-connection-modal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwC;AACxC,uEAA8E;AAG9E,kFAAwD;AACxD,mEAA8D;AAE9D,SAAS,mBAAmB,CAAC,EAC3B,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,IAAI,GAML;IACC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACrD,IAAI,EAAE,EAAE;QACR,GAAG,mBAAmB;KACvB,CAAC,CAAC;IAEH,OAAO,CACL,8BAAC,sCAAiB,IAChB,KAAK,EACH,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,8BAA8B,EAExE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,aAAa,CAAC;gBACjB,GAAG,eAAe;aACnB,CAAC,CAAC;QACL,CAAC,EACD,cAAc,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAClE,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAC,MAAM;QAEjB,8BAAC,8BAAkB;YACjB,8BAAC,8BAAS,IACR,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,CAAC,EACT,MAAM,EAAE,EAAE,KAAK,EAAE,GACmB,EAAE,EAAE;oBACxC,kBAAkB,CAAC;wBACjB,GAAG,eAAe;wBAClB,IAAI,EAAE,KAAK;qBACZ,CAAC,CAAC;gBACL,CAAC,EACD,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,eAAe,CAAC,IAAI,GAC3B,CACiB;QACrB,8BAAC,8BAAkB;YACjB,8BAAC,2CAAmB,IAClB,SAAS,EAAE,eAAe,CAAC,KAAK,EAChC,QAAQ,EAAE,CAAC,QAAiB,EAAE,EAAE;oBAC9B,kBAAkB,CAAC;wBACjB,GAAG,eAAe;wBAClB,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAC;gBACL,CAAC,GACD,CACiB,CACH,CACrB,CAAC;AACJ,CAAC;AAED,kBAAe,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ declare type ErrorOrWarning = {
3
+ message: string;
4
+ };
5
+ export declare function ErrorSummary({ errors, }: {
6
+ errors: ErrorOrWarning[];
7
+ }): React.ReactElement | null;
8
+ export declare function WarningSummary({ warnings, }: {
9
+ warnings: ErrorOrWarning[];
10
+ }): React.ReactElement | null;
11
+ export {};
12
+ //# sourceMappingURL=validation-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-summary.d.ts","sourceRoot":"","sources":["../../src/components/validation-summary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,aAAK,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAY1C,wBAAgB,YAAY,CAAC,EAC3B,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAY5B;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAQ5B"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WarningSummary = exports.ErrorSummary = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const compass_components_1 = require("@mongodb-js/compass-components");
9
+ const bannerStyle = (0, compass_components_1.css)({
10
+ marginTop: compass_components_1.spacing[1],
11
+ });
12
+ const listStyle = (0, compass_components_1.css)({
13
+ padding: 0,
14
+ margin: 0,
15
+ listStylePosition: 'inside',
16
+ });
17
+ function ErrorSummary({ errors, }) {
18
+ if (!errors || !errors.length)
19
+ return null;
20
+ return (react_1.default.createElement(compass_components_1.Banner, { "data-testid": "connection-error-summary", variant: compass_components_1.BannerVariant.Danger, className: bannerStyle },
21
+ react_1.default.createElement(Summary, { messages: errors.map((err) => err.message) })));
22
+ }
23
+ exports.ErrorSummary = ErrorSummary;
24
+ function WarningSummary({ warnings, }) {
25
+ if (!warnings || !warnings.length)
26
+ return null;
27
+ return (react_1.default.createElement(compass_components_1.Banner, { variant: compass_components_1.BannerVariant.Warning, className: bannerStyle },
28
+ react_1.default.createElement(Summary, { messages: warnings.map((warning) => warning.message) })));
29
+ }
30
+ exports.WarningSummary = WarningSummary;
31
+ function Summary({ messages }) {
32
+ if (messages.length === 1) {
33
+ return react_1.default.createElement("div", null, messages[0]);
34
+ }
35
+ if (messages.length === 2) {
36
+ return (react_1.default.createElement("div", null,
37
+ react_1.default.createElement("ol", { className: listStyle }, messages.map((message, i) => (react_1.default.createElement("li", { key: i }, message))))));
38
+ }
39
+ const tooltipErrors = (react_1.default.createElement("ol", { className: listStyle }, messages.map((message, i) => (react_1.default.createElement("li", { key: i }, message)))));
40
+ const firstMessageNoDot = messages[0].endsWith('.')
41
+ ? messages[0].slice(0, messages[0].length - 1)
42
+ : messages[0];
43
+ return (react_1.default.createElement("div", null,
44
+ react_1.default.createElement("span", null,
45
+ firstMessageNoDot,
46
+ ", and other ",
47
+ messages.length - 1,
48
+ " problems."),
49
+ ' ',
50
+ react_1.default.createElement(compass_components_1.InlineDefinition, { tooltipProps: {
51
+ align: 'top',
52
+ justify: 'start',
53
+ delay: 500,
54
+ }, definition: tooltipErrors }, "View all")));
55
+ }
56
+ //# sourceMappingURL=validation-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-summary.js","sourceRoot":"","sources":["../../src/components/validation-summary.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uEAMwC;AAIxC,MAAM,WAAW,GAAG,IAAA,wBAAG,EAAC;IACtB,SAAS,EAAE,4BAAO,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAA,wBAAG,EAAC;IACpB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,iBAAiB,EAAE,QAAQ;CAC5B,CAAC,CAAC;AAEH,SAAgB,YAAY,CAAC,EAC3B,MAAM,GAGP;IACC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE3C,OAAO,CACL,8BAAC,2BAAM,mBACO,0BAA0B,EACtC,OAAO,EAAE,kCAAa,CAAC,MAAM,EAC7B,SAAS,EAAE,WAAW;QAEtB,8BAAC,OAAO,IAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAY,CACxD,CACV,CAAC;AACJ,CAAC;AAhBD,oCAgBC;AAED,SAAgB,cAAc,CAAC,EAC7B,QAAQ,GAGT;IACC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/C,OAAO,CACL,8BAAC,2BAAM,IAAC,OAAO,EAAE,kCAAa,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW;QAC5D,8BAAC,OAAO,IAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAY,CAClE,CACV,CAAC;AACJ,CAAC;AAZD,wCAYC;AAED,SAAS,OAAO,CAAC,EAAE,QAAQ,EAA0B;IACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,2CAAM,QAAQ,CAAC,CAAC,CAAC,CAAO,CAAC;KACjC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,CACL;YACE,sCAAI,SAAS,EAAE,SAAS,IACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,sCAAI,GAAG,EAAE,CAAC,IAAG,OAAO,CAAM,CAC3B,CAAC,CACC,CACD,CACP,CAAC;KACH;IAED,MAAM,aAAa,GAAG,CACpB,sCAAI,SAAS,EAAE,SAAS,IACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,sCAAI,GAAG,EAAE,CAAC,IAAG,OAAO,CAAM,CAC3B,CAAC,CACC,CACN,CAAC;IAEF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL;QACE;YACG,iBAAiB;;YAAc,QAAQ,CAAC,MAAM,GAAG,CAAC;yBAC9C;QAAC,GAAG;QACX,8BAAC,qCAAgB,IACf,YAAY,EAAE;gBACZ,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,GAAG;aACX,EACD,UAAU,EAAE,aAAa,eAGR,CACf,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const defaultHostname = "localhost";
2
+ export declare const defaultPort = 27017;
3
+ export declare const defaultConnectionString: string;
4
+ export declare const defaultSocksPort = 1080;
5
+ export declare const defaultSshPort = 22;
6
+ //# sourceMappingURL=default-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-connection.d.ts","sourceRoot":"","sources":["../../src/constants/default-connection.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,eAAO,MAAM,uBAAuB,QAAgD,CAAC;AACrF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,cAAc,KAAK,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultSshPort = exports.defaultSocksPort = exports.defaultConnectionString = exports.defaultPort = exports.defaultHostname = void 0;
4
+ exports.defaultHostname = 'localhost';
5
+ exports.defaultPort = 27017;
6
+ exports.defaultConnectionString = `mongodb://${exports.defaultHostname}:${exports.defaultPort}`;
7
+ exports.defaultSocksPort = 1080;
8
+ exports.defaultSshPort = 22;
9
+ //# sourceMappingURL=default-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-connection.js","sourceRoot":"","sources":["../../src/constants/default-connection.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,WAAW,CAAC;AAC9B,QAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,uBAAuB,GAAG,aAAa,uBAAe,IAAI,mBAAW,EAAE,CAAC;AACxE,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,cAAc,GAAG,EAAE,CAAC"}
@@ -0,0 +1,67 @@
1
+ import type { ConnectionInfo, ConnectionOptions } from 'mongodb-data-service';
2
+ import type { MongoClientOptions } from 'mongodb';
3
+ import type { ConnectionFormError, ConnectionFormWarning } from '../utils/validation';
4
+ import type { UpdateSshOptions } from '../utils/connection-ssh-handler';
5
+ import type { UpdateTlsAction, UpdateTlsOptionAction } from '../utils/tls-handler';
6
+ import type { UpdateAuthMechanismAction, UpdatePasswordAction, UpdateUsernameAction } from '../utils/authentication-handler';
7
+ import type { AuthMechanismProperties } from '../utils/connection-string-helpers';
8
+ export interface ConnectFormState {
9
+ connectionOptions: ConnectionOptions;
10
+ enableEditingConnectionString: boolean;
11
+ errors: ConnectionFormError[];
12
+ warnings: ConnectionFormWarning[];
13
+ isDirty: boolean;
14
+ }
15
+ interface UpdateConnectionStringAction {
16
+ type: 'update-connection-string';
17
+ newConnectionStringValue: string;
18
+ }
19
+ interface UpdateHostAction {
20
+ type: 'update-host';
21
+ fieldIndex: number;
22
+ newHostValue: string;
23
+ }
24
+ declare type ConnectionFormFieldActions = UpdateConnectionStringAction | {
25
+ type: 'add-new-host';
26
+ fieldIndexToAddAfter: number;
27
+ } | {
28
+ type: 'remove-host';
29
+ fieldIndexToRemove: number;
30
+ } | UpdateUsernameAction | UpdatePasswordAction | UpdateAuthMechanismAction | UpdateHostAction | {
31
+ type: 'update-connection-schema';
32
+ isSrv: boolean;
33
+ } | UpdateSshOptions | UpdateTlsAction | UpdateTlsOptionAction | {
34
+ type: 'update-search-param';
35
+ currentKey: keyof MongoClientOptions;
36
+ newKey?: keyof MongoClientOptions;
37
+ value?: string;
38
+ } | {
39
+ type: 'delete-search-param';
40
+ key: keyof MongoClientOptions;
41
+ } | {
42
+ type: 'update-auth-mechanism-property';
43
+ key: keyof AuthMechanismProperties;
44
+ value?: string;
45
+ } | {
46
+ type: 'update-connection-path';
47
+ value: string;
48
+ } | {
49
+ type: 'remove-ssh-options';
50
+ } | {
51
+ type: 'remove-proxy-options';
52
+ };
53
+ export declare type UpdateConnectionFormField = (action: ConnectionFormFieldActions) => void;
54
+ export declare function handleConnectionFormFieldUpdate(action: ConnectionFormFieldActions, currentConnectionOptions: ConnectionOptions): {
55
+ connectionOptions: ConnectionOptions;
56
+ errors?: ConnectionFormError[];
57
+ };
58
+ export declare function useConnectForm(initialConnectionInfo: ConnectionInfo, connectionErrorMessage?: string | null): [
59
+ ConnectFormState,
60
+ {
61
+ updateConnectionFormField: UpdateConnectionFormField;
62
+ setErrors: (errors: ConnectionFormError[]) => void;
63
+ setEnableEditingConnectionString: (enableEditing: boolean) => void;
64
+ }
65
+ ];
66
+ export {};
67
+ //# sourceMappingURL=use-connect-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-connect-form.d.ts","sourceRoot":"","sources":["../../src/hooks/use-connect-form.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,SAAS,CAAC;AAGhE,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAMlF,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,6BAA6B,EAAE,OAAO,CAAC;IACvC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAyCD,UAAU,4BAA4B;IACpC,IAAI,EAAE,0BAA0B,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,aAAK,0BAA0B,GAC3B,4BAA4B,GAC5B;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GACD,oBAAoB,GACpB,oBAAoB,GACpB,yBAAyB,GACzB,gBAAgB,GAChB;IACE,IAAI,EAAE,0BAA0B,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;CAChB,GACD,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,MAAM,kBAAkB,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,kBAAkB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,GAAG,EAAE,MAAM,kBAAkB,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,gCAAgC,CAAC;IACvC,GAAG,EAAE,MAAM,uBAAuB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;CAC9B,CAAC;AAEN,oBAAY,yBAAyB,GAAG,CACtC,MAAM,EAAE,0BAA0B,KAC/B,IAAI,CAAC;AA0GV,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,0BAA0B,EAClC,wBAAwB,EAAE,iBAAiB,GAC1C;IACD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAChC,CAqPA;AAED,wBAAgB,cAAc,CAC5B,qBAAqB,EAAE,cAAc,EACrC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,GACrC;IACD,gBAAgB;IAChB;QACE,yBAAyB,EAAE,yBAAyB,CAAC;QACrD,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;QACnD,gCAAgC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;KACpE;CACF,CAmEA"}