@dovetail-v2/refine 0.2.3 → 0.2.4-alpha.0

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 (260) hide show
  1. package/dist/MonacoYamlDiffEditor-7a07db88.cjs +59 -0
  2. package/dist/{MonacoYamlDiffEditor-f0e8bc5c.js → MonacoYamlDiffEditor-7de94ad2.js} +1 -24
  3. package/dist/MonacoYamlEditor-bc33cd45.cjs +206 -0
  4. package/dist/{MonacoYamlEditor-bac0d2aa.js → MonacoYamlEditor-bc70e03e.js} +2 -9
  5. package/dist/PodShell-43c7028e.cjs +216 -0
  6. package/dist/PodShell-ba204cde.js +216 -0
  7. package/dist/common-1eb43414.cjs +982 -0
  8. package/dist/common-feae5742.js +983 -0
  9. package/{lib → dist}/components/PodShellModal/PodShell.d.ts +3 -5
  10. package/dist/components/PodShellModal/index.d.ts +10 -0
  11. package/dist/components/Shell/Connecting.d.ts +2 -0
  12. package/dist/components/Shell/common.d.ts +5 -0
  13. package/{lib → dist}/components/Shell/index.d.ts +1 -5
  14. package/{lib → dist}/components/index.d.ts +0 -1
  15. package/dist/index-31874f77.cjs +496 -0
  16. package/dist/index-40deb620.js +497 -0
  17. package/dist/{index-3f683ca1.js → index-44cc930a.js} +274 -1919
  18. package/dist/index-ee8ac828.cjs +18959 -0
  19. package/dist/refine.cjs +279 -0
  20. package/dist/refine.js +247 -256
  21. package/dist/shell.cjs +17 -0
  22. package/dist/shell.d.ts +2 -0
  23. package/dist/shell.js +17 -0
  24. package/dist/style.css +1311 -1266
  25. package/package.json +4 -4
  26. package/dist/refine.umd.cjs +0 -20792
  27. package/lib/components/PodShellModal/index.d.ts +0 -10
  28. /package/{lib → dist}/App.d.ts +0 -0
  29. /package/{lib → dist}/Dovetail.d.ts +0 -0
  30. /package/{lib → dist}/components/Breadcrumb/index.d.ts +0 -0
  31. /package/{lib → dist}/components/ConditionsTable/ConditionsTable.d.ts +0 -0
  32. /package/{lib → dist}/components/ConditionsTable/index.d.ts +0 -0
  33. /package/{lib → dist}/components/CreateButton/index.d.ts +0 -0
  34. /package/{lib → dist}/components/CronjobJobsTable/index.d.ts +0 -0
  35. /package/{lib → dist}/components/DeleteButton/index.d.ts +0 -0
  36. /package/{lib → dist}/components/DeleteManyButton/index.d.ts +0 -0
  37. /package/{lib → dist}/components/DrawerShow/DrawerShow.d.ts +0 -0
  38. /package/{lib → dist}/components/DrawerShow/index.d.ts +0 -0
  39. /package/{lib → dist}/components/DropdownMenuItems/EditAnnotationDropdownMenuItem.d.ts +0 -0
  40. /package/{lib → dist}/components/DropdownMenuItems/EditLabelDropdownMenuItem.d.ts +0 -0
  41. /package/{lib → dist}/components/DropdownMenuItems/EditNodeTaintDropdownMenuItem.d.ts +0 -0
  42. /package/{lib → dist}/components/DropdownMenuItems/index.d.ts +0 -0
  43. /package/{lib → dist}/components/Dropdowns/CronJobDropdown/index.d.ts +0 -0
  44. /package/{lib → dist}/components/Dropdowns/K8sDropdown/index.d.ts +0 -0
  45. /package/{lib → dist}/components/Dropdowns/PodDropdown/index.d.ts +0 -0
  46. /package/{lib → dist}/components/Dropdowns/ReplicasDropdown/index.d.ts +0 -0
  47. /package/{lib → dist}/components/Dropdowns/WorkloadDropdown/index.d.ts +0 -0
  48. /package/{lib → dist}/components/DurationTime/index.d.ts +0 -0
  49. /package/{lib → dist}/components/EditButton/index.d.ts +0 -0
  50. /package/{lib → dist}/components/EditField/index.d.ts +0 -0
  51. /package/{lib → dist}/components/EditMetadataForm/EditAnnotationForm.d.ts +0 -0
  52. /package/{lib → dist}/components/EditMetadataForm/EditLabelForm.d.ts +0 -0
  53. /package/{lib → dist}/components/EditMetadataForm/EditNodeTaintForm.d.ts +0 -0
  54. /package/{lib → dist}/components/EditMetadataForm/KeyValueTableForm.d.ts +0 -0
  55. /package/{lib → dist}/components/EditMetadataForm/LabelFormatPopover.d.ts +0 -0
  56. /package/{lib → dist}/components/EditMetadataForm/index.d.ts +0 -0
  57. /package/{lib → dist}/components/ErrorContent/index.d.ts +0 -0
  58. /package/{lib → dist}/components/EventsTable/EventsTable.d.ts +0 -0
  59. /package/{lib → dist}/components/EventsTable/index.d.ts +0 -0
  60. /package/{lib → dist}/components/Form/FormModal.d.ts +0 -0
  61. /package/{lib → dist}/components/Form/FormModeSegmentControl.d.ts +0 -0
  62. /package/{lib → dist}/components/Form/RefineFormContainer.d.ts +0 -0
  63. /package/{lib → dist}/components/Form/RefineFormContent.d.ts +0 -0
  64. /package/{lib → dist}/components/Form/RefineFormPage.d.ts +0 -0
  65. /package/{lib → dist}/components/Form/YamlForm.d.ts +0 -0
  66. /package/{lib → dist}/components/Form/YamlFormContainer.d.ts +0 -0
  67. /package/{lib → dist}/components/Form/index.d.ts +0 -0
  68. /package/{lib → dist}/components/Form/type.d.ts +0 -0
  69. /package/{lib → dist}/components/Form/useFieldsConfig.d.ts +0 -0
  70. /package/{lib → dist}/components/Form/useReactHookForm.d.ts +0 -0
  71. /package/{lib → dist}/components/Form/useRefineForm.d.ts +0 -0
  72. /package/{lib → dist}/components/Form/useYamlForm.d.ts +0 -0
  73. /package/{lib → dist}/components/FormErrorAlert/index.d.ts +0 -0
  74. /package/{lib → dist}/components/FormLayout/index.d.ts +0 -0
  75. /package/{lib → dist}/components/FormWidgets/KeyValueListWidget.d.ts +0 -0
  76. /package/{lib → dist}/components/FormWidgets/MetadataForm.d.ts +0 -0
  77. /package/{lib → dist}/components/FormWidgets/NameInputWidget.d.ts +0 -0
  78. /package/{lib → dist}/components/FormWidgets/NamespaceSelectWidget.d.ts +0 -0
  79. /package/{lib → dist}/components/FormWidgets/index.d.ts +0 -0
  80. /package/{lib → dist}/components/FormWidgets/widget.d.ts +0 -0
  81. /package/{lib → dist}/components/ImageNames/index.d.ts +0 -0
  82. /package/{lib → dist}/components/IngressRulesComponent/index.d.ts +0 -0
  83. /package/{lib → dist}/components/IngressRulesTable/IngressRulesTable.d.ts +0 -0
  84. /package/{lib → dist}/components/IngressRulesTable/index.d.ts +0 -0
  85. /package/{lib → dist}/components/InternalBaseTable/TableWidgets.d.ts +0 -0
  86. /package/{lib → dist}/components/InternalBaseTable/index.d.ts +0 -0
  87. /package/{lib → dist}/components/KeyValue/KeyValue.d.ts +0 -0
  88. /package/{lib → dist}/components/KeyValue/KeyValueAnnotation.d.ts +0 -0
  89. /package/{lib → dist}/components/KeyValue/KeyValueSecret.d.ts +0 -0
  90. /package/{lib → dist}/components/KeyValue/index.d.ts +0 -0
  91. /package/{lib → dist}/components/Layout/index.d.ts +0 -0
  92. /package/{lib → dist}/components/LinkFallback/index.d.ts +0 -0
  93. /package/{lib → dist}/components/ListPage/index.d.ts +0 -0
  94. /package/{lib → dist}/components/Menu/index.d.ts +0 -0
  95. /package/{lib → dist}/components/NamespacesFilter/index.d.ts +0 -0
  96. /package/{lib → dist}/components/NetworkPolicyRulesViewer/NetworkPolicyRulesViewer.d.ts +0 -0
  97. /package/{lib → dist}/components/NetworkPolicyRulesViewer/index.d.ts +0 -0
  98. /package/{lib → dist}/components/NodeTaintsTable/NodeTaintsTable.d.ts +0 -0
  99. /package/{lib → dist}/components/NodeTaintsTable/index.d.ts +0 -0
  100. /package/{lib → dist}/components/PVCDistributeStorage/index.d.ts +0 -0
  101. /package/{lib → dist}/components/PageShow/PageShow.d.ts +0 -0
  102. /package/{lib → dist}/components/PageShow/index.d.ts +0 -0
  103. /package/{lib → dist}/components/PodContainersTable/PodContainersTable.d.ts +0 -0
  104. /package/{lib → dist}/components/PodContainersTable/index.d.ts +0 -0
  105. /package/{lib → dist}/components/PodLog/index.d.ts +0 -0
  106. /package/{lib → dist}/components/PodSelectorTable/index.d.ts +0 -0
  107. /package/{lib → dist}/components/PortsTable/index.d.ts +0 -0
  108. /package/{lib → dist}/components/ReferenceLink/index.d.ts +0 -0
  109. /package/{lib → dist}/components/ResourceCRUD/ResourceCRUD.d.ts +0 -0
  110. /package/{lib → dist}/components/ResourceCRUD/create/index.d.ts +0 -0
  111. /package/{lib → dist}/components/ResourceCRUD/index.d.ts +0 -0
  112. /package/{lib → dist}/components/ResourceCRUD/list/index.d.ts +0 -0
  113. /package/{lib → dist}/components/ResourceCRUD/show/index.d.ts +0 -0
  114. /package/{lib → dist}/components/ResourceFiledDisplays.d.ts +0 -0
  115. /package/{lib → dist}/components/ResourceLink/index.d.ts +0 -0
  116. /package/{lib → dist}/components/ResourceSelect/index.d.ts +0 -0
  117. /package/{lib → dist}/components/ResourceTable/index.d.ts +0 -0
  118. /package/{lib → dist}/components/ResourceUsageBar/index.d.ts +0 -0
  119. /package/{lib → dist}/components/Separator/index.d.ts +0 -0
  120. /package/{lib → dist}/components/ServiceComponents/index.d.ts +0 -0
  121. /package/{lib → dist}/components/Shell/ShellToolbar.d.ts +0 -0
  122. /package/{lib → dist}/components/ShowContent/ShowContent.d.ts +0 -0
  123. /package/{lib → dist}/components/ShowContent/fields.d.ts +0 -0
  124. /package/{lib → dist}/components/ShowContent/groups.d.ts +0 -0
  125. /package/{lib → dist}/components/ShowContent/index.d.ts +0 -0
  126. /package/{lib → dist}/components/ShowContent/tabs.d.ts +0 -0
  127. /package/{lib → dist}/components/StateTag/StateTag.d.ts +0 -0
  128. /package/{lib → dist}/components/StateTag/index.d.ts +0 -0
  129. /package/{lib → dist}/components/Table/index.d.ts +0 -0
  130. /package/{lib → dist}/components/TableToolbar/index.d.ts +0 -0
  131. /package/{lib → dist}/components/Tabs/index.d.ts +0 -0
  132. /package/{lib → dist}/components/Tags/index.d.ts +0 -0
  133. /package/{lib → dist}/components/TextTags/index.d.ts +0 -0
  134. /package/{lib → dist}/components/Time/index.d.ts +0 -0
  135. /package/{lib → dist}/components/ValueDisplay/index.d.ts +0 -0
  136. /package/{lib → dist}/components/WorkloadPodsTable/WorkloadPodsTable.d.ts +0 -0
  137. /package/{lib → dist}/components/WorkloadPodsTable/index.d.ts +0 -0
  138. /package/{lib → dist}/components/WorkloadReplicas/index.d.ts +0 -0
  139. /package/{lib → dist}/components/YamlEditor/MonacoYamlDiffEditor.d.ts +0 -0
  140. /package/{lib → dist}/components/YamlEditor/MonacoYamlEditor.d.ts +0 -0
  141. /package/{lib → dist}/components/YamlEditor/YamlEditorComponent.d.ts +0 -0
  142. /package/{lib → dist}/components/YamlEditor/index.d.ts +0 -0
  143. /package/{lib → dist}/components/YamlEditor/style.d.ts +0 -0
  144. /package/{lib → dist}/components/YamlEditor/yaml.worker.d.ts +0 -0
  145. /package/{lib → dist}/constants/auth.d.ts +0 -0
  146. /package/{lib → dist}/constants/index.d.ts +0 -0
  147. /package/{lib → dist}/constants/k8s.d.ts +0 -0
  148. /package/{lib → dist}/constants/state.d.ts +0 -0
  149. /package/{lib → dist}/contexts/component.d.ts +0 -0
  150. /package/{lib → dist}/contexts/configs.d.ts +0 -0
  151. /package/{lib → dist}/contexts/constants.d.ts +0 -0
  152. /package/{lib → dist}/contexts/global-store.d.ts +0 -0
  153. /package/{lib → dist}/contexts/index.d.ts +0 -0
  154. /package/{lib → dist}/hooks/index.d.ts +0 -0
  155. /package/{lib → dist}/hooks/useDeleteModal/index.d.ts +0 -0
  156. /package/{lib → dist}/hooks/useDeleteModal/useDeleteManyModal.d.ts +0 -0
  157. /package/{lib → dist}/hooks/useDeleteModal/useDeleteModal.d.ts +0 -0
  158. /package/{lib → dist}/hooks/useDeleteModal/useDeleteModalOnly.d.ts +0 -0
  159. /package/{lib → dist}/hooks/useDeleteModal/useFailedModal.d.ts +0 -0
  160. /package/{lib → dist}/hooks/useDownloadYAML.d.ts +0 -0
  161. /package/{lib → dist}/hooks/useEagleTable/columns.d.ts +0 -0
  162. /package/{lib → dist}/hooks/useEagleTable/index.d.ts +0 -0
  163. /package/{lib → dist}/hooks/useEagleTable/useEagleTable.d.ts +0 -0
  164. /package/{lib → dist}/hooks/useEdit.d.ts +0 -0
  165. /package/{lib → dist}/hooks/useGlobalStore.d.ts +0 -0
  166. /package/{lib → dist}/hooks/useK8sYamlEditor.d.ts +0 -0
  167. /package/{lib → dist}/hooks/useNamespaceRefineFilter.d.ts +0 -0
  168. /package/{lib → dist}/hooks/useOpenForm.d.ts +0 -0
  169. /package/{lib → dist}/hooks/usePathMap.d.ts +0 -0
  170. /package/{lib → dist}/hooks/useSchema.d.ts +0 -0
  171. /package/{lib → dist}/hooks/useSubmitForm.d.ts +0 -0
  172. /package/{lib → dist}/hooks/useTableData.d.ts +0 -0
  173. /package/{lib → dist}/i18n.d.ts +0 -0
  174. /package/{lib → dist}/index.d.ts +0 -0
  175. /package/{lib → dist}/locales/en-US/index.d.ts +0 -0
  176. /package/{lib → dist}/locales/index.d.ts +0 -0
  177. /package/{lib → dist}/locales/zh-CN/index.d.ts +0 -0
  178. /package/{lib → dist}/main.d.ts +0 -0
  179. /package/{lib → dist}/models/cronjob-model.d.ts +0 -0
  180. /package/{lib → dist}/models/daemonset-model.d.ts +0 -0
  181. /package/{lib → dist}/models/deployment-model.d.ts +0 -0
  182. /package/{lib → dist}/models/event-model.d.ts +0 -0
  183. /package/{lib → dist}/models/index.d.ts +0 -0
  184. /package/{lib → dist}/models/ingress-model.d.ts +0 -0
  185. /package/{lib → dist}/models/job-model.d.ts +0 -0
  186. /package/{lib → dist}/models/network-policy-model.d.ts +0 -0
  187. /package/{lib → dist}/models/node-model.d.ts +0 -0
  188. /package/{lib → dist}/models/persistent-volume-claim.d.ts +0 -0
  189. /package/{lib → dist}/models/persistent-volume.d.ts +0 -0
  190. /package/{lib → dist}/models/pod-metrics-model.d.ts +0 -0
  191. /package/{lib → dist}/models/pod-model.d.ts +0 -0
  192. /package/{lib → dist}/models/resource-model.d.ts +0 -0
  193. /package/{lib → dist}/models/service-model.d.ts +0 -0
  194. /package/{lib → dist}/models/statefulset-model.d.ts +0 -0
  195. /package/{lib → dist}/models/storage-class.d.ts +0 -0
  196. /package/{lib → dist}/models/types/index.d.ts +0 -0
  197. /package/{lib → dist}/models/types/metric.d.ts +0 -0
  198. /package/{lib → dist}/models/workload-base-model.d.ts +0 -0
  199. /package/{lib → dist}/models/workload-model.d.ts +0 -0
  200. /package/{lib → dist}/pages/configmaps/index.d.ts +0 -0
  201. /package/{lib → dist}/pages/cronjobs/create/index.d.ts +0 -0
  202. /package/{lib → dist}/pages/cronjobs/index.d.ts +0 -0
  203. /package/{lib → dist}/pages/cronjobs/list/index.d.ts +0 -0
  204. /package/{lib → dist}/pages/cronjobs/show/index.d.ts +0 -0
  205. /package/{lib → dist}/pages/daemonsets/create/index.d.ts +0 -0
  206. /package/{lib → dist}/pages/daemonsets/index.d.ts +0 -0
  207. /package/{lib → dist}/pages/daemonsets/list/index.d.ts +0 -0
  208. /package/{lib → dist}/pages/daemonsets/show/index.d.ts +0 -0
  209. /package/{lib → dist}/pages/deployments/index.d.ts +0 -0
  210. /package/{lib → dist}/pages/deployments/list/index.d.ts +0 -0
  211. /package/{lib → dist}/pages/deployments/show/index.d.ts +0 -0
  212. /package/{lib → dist}/pages/ingresses/index.d.ts +0 -0
  213. /package/{lib → dist}/pages/jobs/index.d.ts +0 -0
  214. /package/{lib → dist}/pages/networkPolicies/index.d.ts +0 -0
  215. /package/{lib → dist}/pages/nodes/index.d.ts +0 -0
  216. /package/{lib → dist}/pages/nodes/list/index.d.ts +0 -0
  217. /package/{lib → dist}/pages/nodes/show/index.d.ts +0 -0
  218. /package/{lib → dist}/pages/persistentvolumeclaims/index.d.ts +0 -0
  219. /package/{lib → dist}/pages/persistentvolumes/index.d.ts +0 -0
  220. /package/{lib → dist}/pages/pods/create/index.d.ts +0 -0
  221. /package/{lib → dist}/pages/pods/index.d.ts +0 -0
  222. /package/{lib → dist}/pages/pods/list/index.d.ts +0 -0
  223. /package/{lib → dist}/pages/pods/show/index.d.ts +0 -0
  224. /package/{lib → dist}/pages/secrets/index.d.ts +0 -0
  225. /package/{lib → dist}/pages/services/index.d.ts +0 -0
  226. /package/{lib → dist}/pages/statefulsets/index.d.ts +0 -0
  227. /package/{lib → dist}/pages/storageclasses/form/index.d.ts +0 -0
  228. /package/{lib → dist}/pages/storageclasses/index.d.ts +0 -0
  229. /package/{lib → dist}/plugins/index.d.ts +0 -0
  230. /package/{lib → dist}/plugins/model-plugin.d.ts +0 -0
  231. /package/{lib → dist}/plugins/relation-plugin.d.ts +0 -0
  232. /package/{lib → dist}/plugins/type.d.ts +0 -0
  233. /package/{lib → dist}/providers/index.d.ts +0 -0
  234. /package/{lib → dist}/providers/router-provider/index.d.ts +0 -0
  235. /package/{lib → dist}/styles/button.d.ts +0 -0
  236. /package/{lib → dist}/styles/modal.d.ts +0 -0
  237. /package/{lib → dist}/styles/tag.d.ts +0 -0
  238. /package/{lib → dist}/types/globalStore.d.ts +0 -0
  239. /package/{lib → dist}/types/index.d.ts +0 -0
  240. /package/{lib → dist}/types/resource.d.ts +0 -0
  241. /package/{lib → dist}/utils/addId.d.ts +0 -0
  242. /package/{lib → dist}/utils/download.d.ts +0 -0
  243. /package/{lib → dist}/utils/error.d.ts +0 -0
  244. /package/{lib → dist}/utils/form.d.ts +0 -0
  245. /package/{lib → dist}/utils/index.d.ts +0 -0
  246. /package/{lib → dist}/utils/k8s.d.ts +0 -0
  247. /package/{lib → dist}/utils/labels.d.ts +0 -0
  248. /package/{lib → dist}/utils/match-selector.d.ts +0 -0
  249. /package/{lib → dist}/utils/object.d.ts +0 -0
  250. /package/{lib → dist}/utils/openapi.d.ts +0 -0
  251. /package/{lib → dist}/utils/schema-store.d.ts +0 -0
  252. /package/{lib → dist}/utils/schema.d.ts +0 -0
  253. /package/{lib → dist}/utils/selector.d.ts +0 -0
  254. /package/{lib → dist}/utils/shell.d.ts +0 -0
  255. /package/{lib → dist}/utils/storage.d.ts +0 -0
  256. /package/{lib → dist}/utils/string.d.ts +0 -0
  257. /package/{lib → dist}/utils/time.d.ts +0 -0
  258. /package/{lib → dist}/utils/unit.d.ts +0 -0
  259. /package/{lib → dist}/utils/validation.d.ts +0 -0
  260. /package/{lib → dist}/utils/yaml.d.ts +0 -0
@@ -1,18 +1,16 @@
1
1
  import React from 'react';
2
- import { SocketStatus } from 'src/components/Shell';
3
- import '@xterm/xterm/css/xterm.css';
2
+ import { SocketStatus } from 'src/components/Shell/common';
4
3
  import { PodModel } from 'src/models/pod-model';
5
4
  export declare enum OS {
6
5
  Linux = "linux",
7
6
  Windows = "windows"
8
7
  }
9
- interface PodShellProps {
8
+ export interface PodShellProps {
10
9
  pod: PodModel;
11
10
  basePath: string;
12
11
  onSocketStatusChange?: (socketStatus: SocketStatus) => void;
13
12
  }
14
- interface PodShellHandler {
13
+ export interface PodShellHandler {
15
14
  getAllTerminalContents: () => string[];
16
15
  }
17
16
  export declare const PodShell: React.ForwardRefExoticComponent<PodShellProps & React.RefAttributes<PodShellHandler>>;
18
- export {};
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { SocketStatus } from 'src/components/Shell/common';
3
+ import { PodModel } from 'src/models';
4
+ declare const PodShell: React.LazyExoticComponent<React.ForwardRefExoticComponent<import("./PodShell").PodShellProps & React.RefAttributes<import("./PodShell").PodShellHandler>>>;
5
+ interface PodShellModalProps {
6
+ pod: PodModel;
7
+ onSocketStatusChange?: (socketStatus: SocketStatus) => void;
8
+ }
9
+ export declare function PodShellModal(props: PodShellModalProps): JSX.Element;
10
+ export { PodShell };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Connecting: () => JSX.Element;
@@ -0,0 +1,5 @@
1
+ export declare enum SocketStatus {
2
+ Opening = "Opening",
3
+ Open = "Open",
4
+ Disconnected = "Disconnected"
5
+ }
@@ -1,12 +1,8 @@
1
1
  import { Terminal } from '@xterm/xterm';
2
2
  import React from 'react';
3
+ import { SocketStatus } from './common';
3
4
  import { ShellToolbarProps } from './ShellToolbar';
4
5
  import '@xterm/xterm/css/xterm.css';
5
- export declare enum SocketStatus {
6
- Opening = "Opening",
7
- Open = "Open",
8
- Disconnected = "Disconnected"
9
- }
10
6
  export type ShellProps = React.PropsWithChildren<{
11
7
  url: string;
12
8
  protocols?: string;
@@ -46,7 +46,6 @@ export * from './ResourceFiledDisplays';
46
46
  export * from './Tabs';
47
47
  export * as ValueDisplay from './ValueDisplay';
48
48
  export * from './ResourceSelect';
49
- export * from './Shell';
50
49
  export * from './PodShellModal';
51
50
  export * from './ResourceTable';
52
51
  export * from './ErrorContent';
@@ -0,0 +1,496 @@
1
+ "use strict";
2
+ const common = require("./common-1eb43414.cjs");
3
+ const eagle = require("@cloudtower/eagle");
4
+ const addonCanvas = require("@xterm/addon-canvas");
5
+ const addonFit = require("@xterm/addon-fit");
6
+ const addonSearch = require("@xterm/addon-search");
7
+ const addonWebLinks = require("@xterm/addon-web-links");
8
+ const addonWebgl = require("@xterm/addon-webgl");
9
+ const xterm$1 = require("@xterm/xterm");
10
+ const copyToClipboard = require("copy-to-clipboard");
11
+ const lodashEs = require("lodash-es");
12
+ const React = require("react");
13
+ const iconsReact = require("@cloudtower/icons-react");
14
+ const Connecting_r8rfff = "";
15
+ const LoadingStyle = "l1ur2ktd";
16
+ const Connecting = () => {
17
+ const {
18
+ t
19
+ } = common.useTranslation();
20
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
21
+ className: LoadingStyle,
22
+ children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
23
+ src: iconsReact.Loading24GradientBlueIcon,
24
+ iconWidth: 24,
25
+ iconHeight: 24,
26
+ isRotate: true
27
+ }), /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
28
+ className: eagle.Typo.Display.d2_bold_title,
29
+ children: t("dovetail.connecting")
30
+ })]
31
+ });
32
+ };
33
+ const ShellToolbar_ihg418 = "";
34
+ const ToolbarStyle$1 = "tzxa6d";
35
+ const ToolbarAreaStyle = "t1sxu3rr";
36
+ const IconWrapperStyle = "ix8ych8";
37
+ const IconStyle = "i58m6oo";
38
+ const DividerStyle = "d1t2oa87";
39
+ const TooltipStyle = "tuo8xdg";
40
+ function ShellToolbar(props) {
41
+ const {
42
+ className,
43
+ leftSlot,
44
+ operations = ["fontSize", "downloadLog", "clear"],
45
+ searchMatchedTotal,
46
+ onSetFontSize,
47
+ onSearchNext,
48
+ onSearchPre,
49
+ onDownloadLog,
50
+ onClear
51
+ } = props;
52
+ const {
53
+ t
54
+ } = common.useTranslation();
55
+ const fontSizeOptions = [12, 13, 14, 16, 20];
56
+ const operationMap = {
57
+ fontSize: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.DropdownMenu, {
58
+ trigger: ["click"],
59
+ items: fontSizeOptions.map((size) => ({
60
+ key: `${size}`,
61
+ title: `${size}px`,
62
+ text: `${size}px`,
63
+ onClick: () => {
64
+ onSetFontSize == null ? void 0 : onSetFontSize(size);
65
+ }
66
+ })),
67
+ slotsElements: {
68
+ trigger: () => /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
69
+ title: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
70
+ className: TooltipStyle,
71
+ children: t("dovetail.font_size")
72
+ }),
73
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
74
+ style: {
75
+ display: "flex",
76
+ alignItems: "center"
77
+ },
78
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
79
+ className: IconStyle,
80
+ src: iconsReact.FontSize16GrayIcon,
81
+ hoverSrc: iconsReact.FontSize16BlueIcon
82
+ })
83
+ })
84
+ })
85
+ }
86
+ }),
87
+ downloadLog: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
88
+ title: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
89
+ className: TooltipStyle,
90
+ children: t("dovetail.download_shell_content")
91
+ }),
92
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
93
+ className: IconStyle,
94
+ src: iconsReact.LogCollection16GrayIcon,
95
+ hoverSrc: iconsReact.LogCollection16GradientBlueIcon,
96
+ onClick: onDownloadLog
97
+ })
98
+ }),
99
+ clear: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
100
+ title: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
101
+ className: TooltipStyle,
102
+ children: t("dovetail.clear_shell")
103
+ }),
104
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
105
+ className: IconStyle,
106
+ src: iconsReact.TrashBinDeletePermanently16GrayIcon,
107
+ hoverSrc: iconsReact.TrashBinDeletePermanently16BlueIcon,
108
+ onClick: onClear
109
+ })
110
+ })
111
+ };
112
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
113
+ className: common.cx_default(ToolbarStyle$1, className),
114
+ children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
115
+ className: ToolbarAreaStyle,
116
+ children: leftSlot
117
+ }), /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
118
+ className: ToolbarAreaStyle,
119
+ children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.SearchInput, {
120
+ placeholder: t("dovetail.search"),
121
+ size: "small",
122
+ total: searchMatchedTotal,
123
+ onChange: (str) => {
124
+ onSearchNext(str);
125
+ },
126
+ onSearchNext: (str) => {
127
+ onSearchNext(str);
128
+ },
129
+ onSearchPrev: (str) => {
130
+ onSearchPre(str);
131
+ }
132
+ }), /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
133
+ className: DividerStyle
134
+ }), /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
135
+ className: IconWrapperStyle,
136
+ children: operations.map((operation) => typeof operation === "string" ? operationMap[operation] || null : operation)
137
+ })]
138
+ })]
139
+ });
140
+ }
141
+ const xterm = "";
142
+ const index_n9lket = "";
143
+ const ContainerStyle = "c1q5a2qi";
144
+ const ShellStyle = "sdz5fm1";
145
+ const ErrorAlertStyle = "ebp0h2e";
146
+ const ToolbarStyle = "tioilqy";
147
+ const Shell = React.forwardRef(function Shell2(props, ref) {
148
+ const {
149
+ className,
150
+ url,
151
+ protocols,
152
+ timeout = 1e4,
153
+ logFileName,
154
+ operations,
155
+ isHideToolbar,
156
+ toolbarLeftSlot,
157
+ shellOptions,
158
+ loadingElement,
159
+ encode,
160
+ decode,
161
+ onSocketStatusChange,
162
+ onTermInit,
163
+ onSocketInit,
164
+ children
165
+ } = props;
166
+ const terminalRef = React.useRef(null);
167
+ const termInstanceRef = React.useRef(null);
168
+ const fitAddonRef = React.useRef(null);
169
+ const searchAddonRef = React.useRef(null);
170
+ const socketRef = React.useRef(null);
171
+ const backlogRef = React.useRef([]);
172
+ const containerRef = React.useRef(null);
173
+ const [socketStatus, setSocketStatus] = React.useState(common.SocketStatus.Opening);
174
+ const [loading, setLoading] = React.useState(false);
175
+ const [error, setError] = React.useState(null);
176
+ const [searchMatchedTotal, setSearchMatchedTotal] = React.useState(0);
177
+ const {
178
+ t
179
+ } = common.useTranslation();
180
+ const searchOptions = React.useMemo(() => ({
181
+ decorations: {
182
+ activeMatchColorOverviewRuler: "#FEA008",
183
+ matchOverviewRuler: "#E07F00",
184
+ activeMatchBackground: "#FEA008",
185
+ matchBackground: "#E07F00"
186
+ }
187
+ }), []);
188
+ const reset = React.useCallback(() => {
189
+ var _a, _b;
190
+ (_a = termInstanceRef.current) == null ? void 0 : _a.clear();
191
+ (_b = termInstanceRef.current) == null ? void 0 : _b.reset();
192
+ }, []);
193
+ const send = React.useCallback((message, callback) => {
194
+ if (socketRef.current && socketRef.current.readyState === socketRef.current.OPEN) {
195
+ socketRef.current.send(message);
196
+ callback == null ? void 0 : callback();
197
+ } else {
198
+ backlogRef.current.push({
199
+ message,
200
+ callback
201
+ });
202
+ }
203
+ }, []);
204
+ const fit = React.useCallback(() => {
205
+ var _a;
206
+ if (!fitAddonRef.current)
207
+ return;
208
+ fitAddonRef.current.fit();
209
+ const {
210
+ rows,
211
+ cols
212
+ } = fitAddonRef.current.proposeDimensions() || {};
213
+ if (rows && cols) {
214
+ (_a = props.fit) == null ? void 0 : _a.call(props, {
215
+ rows,
216
+ cols
217
+ });
218
+ }
219
+ }, [encode, send, props.fit]);
220
+ const debouncedFit = React.useMemo(() => lodashEs.debounce(fit, 200), [fit]);
221
+ const flush = React.useCallback(() => {
222
+ const backlog = backlogRef.current.slice();
223
+ backlogRef.current = [];
224
+ for (const data of backlog) {
225
+ send(data.message, data.callback);
226
+ }
227
+ }, [send]);
228
+ const connect = React.useCallback(() => {
229
+ if (socketRef.current) {
230
+ socketRef.current.close();
231
+ socketRef.current = null;
232
+ }
233
+ if (url) {
234
+ let onSocketError = function() {
235
+ setLoading(false);
236
+ setError(true);
237
+ }, onSocketOpen = function() {
238
+ var _a;
239
+ (_a = props.onSocketOpen) == null ? void 0 : _a.call(props, socket);
240
+ clearTimeout(timer);
241
+ setSocketStatus(common.SocketStatus.Open);
242
+ fit();
243
+ flush();
244
+ setError(false);
245
+ setLoading(false);
246
+ }, onSocketClose = function() {
247
+ setLoading(false);
248
+ setError(true);
249
+ if (props.onSocketClose) {
250
+ props.onSocketClose(socket, termInstanceRef.current);
251
+ } else {
252
+ setSocketStatus(common.SocketStatus.Disconnected);
253
+ }
254
+ }, onSocketMessage = function(e) {
255
+ var _a;
256
+ if (props.onSocketMessage) {
257
+ props.onSocketMessage(e, socket, termInstanceRef.current);
258
+ } else {
259
+ const msg = (decode == null ? void 0 : decode(e.data)) || e.data;
260
+ (_a = termInstanceRef.current) == null ? void 0 : _a.write(msg);
261
+ }
262
+ };
263
+ setLoading(true);
264
+ setError(false);
265
+ const socket = new WebSocket(url, protocols);
266
+ const timer = setTimeout(() => {
267
+ setLoading(false);
268
+ socket.close();
269
+ }, timeout);
270
+ setSocketStatus(common.SocketStatus.Opening);
271
+ onSocketInit == null ? void 0 : onSocketInit(socket);
272
+ socket.addEventListener("open", onSocketOpen);
273
+ socket.addEventListener("message", onSocketMessage);
274
+ socket.addEventListener("close", onSocketClose);
275
+ socket.addEventListener("error", onSocketError);
276
+ socketRef.current = socket;
277
+ return function disconnect() {
278
+ if (socket) {
279
+ socket.close();
280
+ socket.removeEventListener("open", onSocketOpen);
281
+ socket.removeEventListener("message", onSocketMessage);
282
+ socket.removeEventListener("close", onSocketClose);
283
+ socket.removeEventListener("error", onSocketError);
284
+ socketRef.current = null;
285
+ }
286
+ };
287
+ }
288
+ }, [url, protocols, decode, props.onSocketClose, props.onSocketMessage, props.onSocketOpen, reset, flush, fit, onSocketInit, timeout]);
289
+ const setupTerminal = React.useCallback(() => {
290
+ if (terminalRef.current) {
291
+ let onKeyDown = function(event) {
292
+ if (event.ctrlKey && event.shiftKey && event.key === "C") {
293
+ event.preventDefault();
294
+ copyToClipboard(term.getSelection());
295
+ }
296
+ }, onResize = function() {
297
+ fit();
298
+ };
299
+ if (termInstanceRef.current) {
300
+ termInstanceRef.current.reset();
301
+ termInstanceRef.current.dispose();
302
+ }
303
+ const term = new xterm$1.Terminal({
304
+ cursorBlink: true,
305
+ cols: 150,
306
+ allowProposedApi: true,
307
+ fontSize: 12,
308
+ theme: {
309
+ background: "#00122E"
310
+ },
311
+ ...shellOptions
312
+ });
313
+ let renderAddon = null;
314
+ try {
315
+ renderAddon = new addonWebgl.WebglAddon();
316
+ } catch {
317
+ renderAddon = new addonCanvas.CanvasAddon();
318
+ }
319
+ onTermInit == null ? void 0 : onTermInit(term);
320
+ term.loadAddon(fitAddonRef.current = new addonFit.FitAddon());
321
+ term.loadAddon(searchAddonRef.current = new addonSearch.SearchAddon());
322
+ term.loadAddon(new addonWebLinks.WebLinksAddon());
323
+ term.loadAddon(renderAddon);
324
+ term.open(terminalRef.current);
325
+ fit();
326
+ flush();
327
+ document.addEventListener("keydown", onKeyDown);
328
+ window.addEventListener("resize", onResize);
329
+ searchAddonRef.current.onDidChangeResults(({
330
+ resultCount
331
+ }) => {
332
+ setSearchMatchedTotal(resultCount);
333
+ });
334
+ term.onData((input) => {
335
+ send(encode(input));
336
+ });
337
+ termInstanceRef.current = term;
338
+ return function destroy() {
339
+ document.removeEventListener("keydown", onKeyDown);
340
+ window.removeEventListener("resize", onResize);
341
+ termInstanceRef.current = null;
342
+ fitAddonRef.current = null;
343
+ searchAddonRef.current = null;
344
+ term.clear();
345
+ term.dispose();
346
+ };
347
+ }
348
+ }, [send, encode, onTermInit, fit, flush, shellOptions]);
349
+ const searchNext = React.useCallback((search) => {
350
+ var _a;
351
+ (_a = searchAddonRef.current) == null ? void 0 : _a.findNext(search || "", searchOptions);
352
+ }, [searchOptions]);
353
+ const searchPrevious = React.useCallback((search) => {
354
+ var _a;
355
+ (_a = searchAddonRef.current) == null ? void 0 : _a.findPrevious(search || "", searchOptions);
356
+ }, [searchOptions]);
357
+ const getAllTerminalContents = React.useCallback(() => {
358
+ if (!termInstanceRef.current)
359
+ return [];
360
+ const buffer = termInstanceRef.current.buffer.active;
361
+ const lines = [];
362
+ for (let i = 0; i < buffer.length; i++) {
363
+ const line = buffer.getLine(i);
364
+ if (line) {
365
+ lines.push(line.translateToString(true));
366
+ }
367
+ }
368
+ return lines;
369
+ }, []);
370
+ const clear = React.useCallback(() => {
371
+ var _a;
372
+ (_a = termInstanceRef.current) == null ? void 0 : _a.clear();
373
+ }, []);
374
+ const downloadContent = React.useCallback(() => {
375
+ const content = (getAllTerminalContents() || []).join("\n");
376
+ const blob = new Blob([content], {
377
+ type: "text/plain"
378
+ });
379
+ const url2 = window.URL.createObjectURL(blob);
380
+ const a = document.createElement("a");
381
+ a.href = url2;
382
+ a.download = `${logFileName || "term"}.log`;
383
+ document.body.appendChild(a);
384
+ a.click();
385
+ setTimeout(() => {
386
+ document.body.removeChild(a);
387
+ window.URL.revokeObjectURL(url2);
388
+ }, 0);
389
+ }, [getAllTerminalContents, logFileName]);
390
+ const setOptions = React.useCallback((options) => {
391
+ Object.entries(options).forEach(([key, value]) => {
392
+ if (termInstanceRef.current) {
393
+ termInstanceRef.current.options[key] = value;
394
+ }
395
+ });
396
+ fit();
397
+ }, [fit]);
398
+ const writeln = React.useCallback((data) => {
399
+ var _a;
400
+ (_a = termInstanceRef.current) == null ? void 0 : _a.writeln(data);
401
+ }, []);
402
+ const onClear = React.useCallback(() => {
403
+ var _a;
404
+ clear();
405
+ (_a = props.onClear) == null ? void 0 : _a.call(props);
406
+ }, [clear, props.onClear]);
407
+ React.useEffect(() => {
408
+ const destroy = setupTerminal();
409
+ return () => {
410
+ destroy == null ? void 0 : destroy();
411
+ };
412
+ }, []);
413
+ React.useEffect(() => {
414
+ const disconnect = connect();
415
+ return () => {
416
+ disconnect == null ? void 0 : disconnect();
417
+ };
418
+ }, [url, protocols]);
419
+ React.useEffect(() => {
420
+ onSocketStatusChange == null ? void 0 : onSocketStatusChange(socketStatus);
421
+ }, [socketStatus]);
422
+ React.useEffect(() => {
423
+ if (!containerRef.current)
424
+ return;
425
+ const resizeObserver = new ResizeObserver(() => {
426
+ debouncedFit();
427
+ });
428
+ resizeObserver.observe(containerRef.current);
429
+ return () => resizeObserver.disconnect();
430
+ }, [debouncedFit]);
431
+ React.useImperativeHandle(ref, () => ({
432
+ clear,
433
+ setSocketStatus,
434
+ fit,
435
+ send,
436
+ connect,
437
+ searchNext,
438
+ searchPrevious,
439
+ getAllTerminalContents,
440
+ setOptions,
441
+ setLoading,
442
+ setError,
443
+ writeln
444
+ }), [send, searchNext, searchPrevious, getAllTerminalContents, fit, clear, connect, setOptions, writeln]);
445
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
446
+ ref: containerRef,
447
+ className: ContainerStyle,
448
+ children: [!!error ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Alert, {
449
+ style: {
450
+ margin: 8,
451
+ marginBottom: 4
452
+ },
453
+ message: /* @__PURE__ */ common.jsxRuntimeExports.jsxs("span", {
454
+ className: ErrorAlertStyle,
455
+ children: [t("dovetail.disconnected"), /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Link, {
456
+ onClick: () => {
457
+ if (props.onReconnect) {
458
+ props.onReconnect();
459
+ } else {
460
+ connect();
461
+ }
462
+ },
463
+ children: t("dovetail.reconnect")
464
+ })]
465
+ }),
466
+ type: "error"
467
+ }) : null, isHideToolbar ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ShellToolbar, {
468
+ className: ToolbarStyle,
469
+ leftSlot: toolbarLeftSlot,
470
+ searchMatchedTotal,
471
+ operations,
472
+ onSearchNext: searchNext,
473
+ onSearchPre: searchPrevious,
474
+ onClear,
475
+ onDownloadLog: downloadContent,
476
+ onSetFontSize: (fontSize) => {
477
+ setOptions({
478
+ fontSize
479
+ });
480
+ }
481
+ }), loading ? loadingElement || /* @__PURE__ */ common.jsxRuntimeExports.jsx(Connecting, {}) : null, /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
482
+ className: common.cx_default(ShellStyle, className),
483
+ style: {
484
+ display: loading ? "none" : "block"
485
+ },
486
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
487
+ ref: terminalRef,
488
+ style: {
489
+ height: "100%"
490
+ },
491
+ children
492
+ })
493
+ })]
494
+ });
495
+ });
496
+ exports.Shell = Shell;