@dovetail-v2/refine 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/MonacoYamlDiffEditor-7a07db88.cjs +59 -0
  2. package/dist/{MonacoYamlDiffEditor-ae04bff7.js → MonacoYamlDiffEditor-7de94ad2.js} +1 -24
  3. package/dist/MonacoYamlEditor-2c3897de.cjs +206 -0
  4. package/dist/{MonacoYamlEditor-7071a8ae.js → MonacoYamlEditor-c8ef62dc.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-e2ac90c3.js → index-6e832950.js} +273 -1918
  18. package/dist/index-92ab679c.cjs +19002 -0
  19. package/dist/refine.cjs +280 -0
  20. package/dist/refine.js +248 -257
  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 -20835
  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
@@ -0,0 +1,497 @@
1
+ import { u as useTranslation, j as jsxRuntimeExports, c as cx_default, S as SocketStatus } from "./common-feae5742.js";
2
+ import { Icon, Typo, DropdownMenu, Tooltip, SearchInput, Alert, Link } from "@cloudtower/eagle";
3
+ import { CanvasAddon } from "@xterm/addon-canvas";
4
+ import { FitAddon } from "@xterm/addon-fit";
5
+ import { SearchAddon } from "@xterm/addon-search";
6
+ import { WebLinksAddon } from "@xterm/addon-web-links";
7
+ import { WebglAddon } from "@xterm/addon-webgl";
8
+ import { Terminal } from "@xterm/xterm";
9
+ import copyToClipboard from "copy-to-clipboard";
10
+ import { debounce } from "lodash-es";
11
+ import React__default, { useRef, useState, useMemo, useCallback, useEffect, useImperativeHandle } from "react";
12
+ import { Loading24GradientBlueIcon, FontSize16GrayIcon, FontSize16BlueIcon, LogCollection16GrayIcon, LogCollection16GradientBlueIcon, TrashBinDeletePermanently16GrayIcon, TrashBinDeletePermanently16BlueIcon } from "@cloudtower/icons-react";
13
+ const Connecting_r8rfff = "";
14
+ const LoadingStyle = "l1ur2ktd";
15
+ const Connecting = () => {
16
+ const {
17
+ t
18
+ } = useTranslation();
19
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
20
+ className: LoadingStyle,
21
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Icon, {
22
+ src: Loading24GradientBlueIcon,
23
+ iconWidth: 24,
24
+ iconHeight: 24,
25
+ isRotate: true
26
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
27
+ className: Typo.Display.d2_bold_title,
28
+ children: t("dovetail.connecting")
29
+ })]
30
+ });
31
+ };
32
+ const ShellToolbar_ihg418 = "";
33
+ const ToolbarStyle$1 = "tzxa6d";
34
+ const ToolbarAreaStyle = "t1sxu3rr";
35
+ const IconWrapperStyle = "ix8ych8";
36
+ const IconStyle = "i58m6oo";
37
+ const DividerStyle = "d1t2oa87";
38
+ const TooltipStyle = "tuo8xdg";
39
+ function ShellToolbar(props) {
40
+ const {
41
+ className,
42
+ leftSlot,
43
+ operations = ["fontSize", "downloadLog", "clear"],
44
+ searchMatchedTotal,
45
+ onSetFontSize,
46
+ onSearchNext,
47
+ onSearchPre,
48
+ onDownloadLog,
49
+ onClear
50
+ } = props;
51
+ const {
52
+ t
53
+ } = useTranslation();
54
+ const fontSizeOptions = [12, 13, 14, 16, 20];
55
+ const operationMap = {
56
+ fontSize: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenu, {
57
+ trigger: ["click"],
58
+ items: fontSizeOptions.map((size) => ({
59
+ key: `${size}`,
60
+ title: `${size}px`,
61
+ text: `${size}px`,
62
+ onClick: () => {
63
+ onSetFontSize == null ? void 0 : onSetFontSize(size);
64
+ }
65
+ })),
66
+ slotsElements: {
67
+ trigger: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
68
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
69
+ className: TooltipStyle,
70
+ children: t("dovetail.font_size")
71
+ }),
72
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
73
+ style: {
74
+ display: "flex",
75
+ alignItems: "center"
76
+ },
77
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, {
78
+ className: IconStyle,
79
+ src: FontSize16GrayIcon,
80
+ hoverSrc: FontSize16BlueIcon
81
+ })
82
+ })
83
+ })
84
+ }
85
+ }),
86
+ downloadLog: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
87
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
88
+ className: TooltipStyle,
89
+ children: t("dovetail.download_shell_content")
90
+ }),
91
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, {
92
+ className: IconStyle,
93
+ src: LogCollection16GrayIcon,
94
+ hoverSrc: LogCollection16GradientBlueIcon,
95
+ onClick: onDownloadLog
96
+ })
97
+ }),
98
+ clear: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
99
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
100
+ className: TooltipStyle,
101
+ children: t("dovetail.clear_shell")
102
+ }),
103
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, {
104
+ className: IconStyle,
105
+ src: TrashBinDeletePermanently16GrayIcon,
106
+ hoverSrc: TrashBinDeletePermanently16BlueIcon,
107
+ onClick: onClear
108
+ })
109
+ })
110
+ };
111
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
112
+ className: cx_default(ToolbarStyle$1, className),
113
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
114
+ className: ToolbarAreaStyle,
115
+ children: leftSlot
116
+ }), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
117
+ className: ToolbarAreaStyle,
118
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx(SearchInput, {
119
+ placeholder: t("dovetail.search"),
120
+ size: "small",
121
+ total: searchMatchedTotal,
122
+ onChange: (str) => {
123
+ onSearchNext(str);
124
+ },
125
+ onSearchNext: (str) => {
126
+ onSearchNext(str);
127
+ },
128
+ onSearchPrev: (str) => {
129
+ onSearchPre(str);
130
+ }
131
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
132
+ className: DividerStyle
133
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
134
+ className: IconWrapperStyle,
135
+ children: operations.map((operation) => typeof operation === "string" ? operationMap[operation] || null : operation)
136
+ })]
137
+ })]
138
+ });
139
+ }
140
+ const xterm = "";
141
+ const index_n9lket = "";
142
+ const ContainerStyle = "c1q5a2qi";
143
+ const ShellStyle = "sdz5fm1";
144
+ const ErrorAlertStyle = "ebp0h2e";
145
+ const ToolbarStyle = "tioilqy";
146
+ const Shell = React__default.forwardRef(function Shell2(props, ref) {
147
+ const {
148
+ className,
149
+ url,
150
+ protocols,
151
+ timeout = 1e4,
152
+ logFileName,
153
+ operations,
154
+ isHideToolbar,
155
+ toolbarLeftSlot,
156
+ shellOptions,
157
+ loadingElement,
158
+ encode,
159
+ decode,
160
+ onSocketStatusChange,
161
+ onTermInit,
162
+ onSocketInit,
163
+ children
164
+ } = props;
165
+ const terminalRef = useRef(null);
166
+ const termInstanceRef = useRef(null);
167
+ const fitAddonRef = useRef(null);
168
+ const searchAddonRef = useRef(null);
169
+ const socketRef = useRef(null);
170
+ const backlogRef = useRef([]);
171
+ const containerRef = useRef(null);
172
+ const [socketStatus, setSocketStatus] = useState(SocketStatus.Opening);
173
+ const [loading, setLoading] = useState(false);
174
+ const [error, setError] = useState(null);
175
+ const [searchMatchedTotal, setSearchMatchedTotal] = useState(0);
176
+ const {
177
+ t
178
+ } = useTranslation();
179
+ const searchOptions = useMemo(() => ({
180
+ decorations: {
181
+ activeMatchColorOverviewRuler: "#FEA008",
182
+ matchOverviewRuler: "#E07F00",
183
+ activeMatchBackground: "#FEA008",
184
+ matchBackground: "#E07F00"
185
+ }
186
+ }), []);
187
+ const reset = useCallback(() => {
188
+ var _a, _b;
189
+ (_a = termInstanceRef.current) == null ? void 0 : _a.clear();
190
+ (_b = termInstanceRef.current) == null ? void 0 : _b.reset();
191
+ }, []);
192
+ const send = useCallback((message, callback) => {
193
+ if (socketRef.current && socketRef.current.readyState === socketRef.current.OPEN) {
194
+ socketRef.current.send(message);
195
+ callback == null ? void 0 : callback();
196
+ } else {
197
+ backlogRef.current.push({
198
+ message,
199
+ callback
200
+ });
201
+ }
202
+ }, []);
203
+ const fit = useCallback(() => {
204
+ var _a;
205
+ if (!fitAddonRef.current)
206
+ return;
207
+ fitAddonRef.current.fit();
208
+ const {
209
+ rows,
210
+ cols
211
+ } = fitAddonRef.current.proposeDimensions() || {};
212
+ if (rows && cols) {
213
+ (_a = props.fit) == null ? void 0 : _a.call(props, {
214
+ rows,
215
+ cols
216
+ });
217
+ }
218
+ }, [encode, send, props.fit]);
219
+ const debouncedFit = useMemo(() => debounce(fit, 200), [fit]);
220
+ const flush = useCallback(() => {
221
+ const backlog = backlogRef.current.slice();
222
+ backlogRef.current = [];
223
+ for (const data of backlog) {
224
+ send(data.message, data.callback);
225
+ }
226
+ }, [send]);
227
+ const connect = useCallback(() => {
228
+ if (socketRef.current) {
229
+ socketRef.current.close();
230
+ socketRef.current = null;
231
+ }
232
+ if (url) {
233
+ let onSocketError = function() {
234
+ setLoading(false);
235
+ setError(true);
236
+ }, onSocketOpen = function() {
237
+ var _a;
238
+ (_a = props.onSocketOpen) == null ? void 0 : _a.call(props, socket);
239
+ clearTimeout(timer);
240
+ setSocketStatus(SocketStatus.Open);
241
+ fit();
242
+ flush();
243
+ setError(false);
244
+ setLoading(false);
245
+ }, onSocketClose = function() {
246
+ setLoading(false);
247
+ setError(true);
248
+ if (props.onSocketClose) {
249
+ props.onSocketClose(socket, termInstanceRef.current);
250
+ } else {
251
+ setSocketStatus(SocketStatus.Disconnected);
252
+ }
253
+ }, onSocketMessage = function(e) {
254
+ var _a;
255
+ if (props.onSocketMessage) {
256
+ props.onSocketMessage(e, socket, termInstanceRef.current);
257
+ } else {
258
+ const msg = (decode == null ? void 0 : decode(e.data)) || e.data;
259
+ (_a = termInstanceRef.current) == null ? void 0 : _a.write(msg);
260
+ }
261
+ };
262
+ setLoading(true);
263
+ setError(false);
264
+ const socket = new WebSocket(url, protocols);
265
+ const timer = setTimeout(() => {
266
+ setLoading(false);
267
+ socket.close();
268
+ }, timeout);
269
+ setSocketStatus(SocketStatus.Opening);
270
+ onSocketInit == null ? void 0 : onSocketInit(socket);
271
+ socket.addEventListener("open", onSocketOpen);
272
+ socket.addEventListener("message", onSocketMessage);
273
+ socket.addEventListener("close", onSocketClose);
274
+ socket.addEventListener("error", onSocketError);
275
+ socketRef.current = socket;
276
+ return function disconnect() {
277
+ if (socket) {
278
+ socket.close();
279
+ socket.removeEventListener("open", onSocketOpen);
280
+ socket.removeEventListener("message", onSocketMessage);
281
+ socket.removeEventListener("close", onSocketClose);
282
+ socket.removeEventListener("error", onSocketError);
283
+ socketRef.current = null;
284
+ }
285
+ };
286
+ }
287
+ }, [url, protocols, decode, props.onSocketClose, props.onSocketMessage, props.onSocketOpen, reset, flush, fit, onSocketInit, timeout]);
288
+ const setupTerminal = useCallback(() => {
289
+ if (terminalRef.current) {
290
+ let onKeyDown = function(event) {
291
+ if (event.ctrlKey && event.shiftKey && event.key === "C") {
292
+ event.preventDefault();
293
+ copyToClipboard(term.getSelection());
294
+ }
295
+ }, onResize = function() {
296
+ fit();
297
+ };
298
+ if (termInstanceRef.current) {
299
+ termInstanceRef.current.reset();
300
+ termInstanceRef.current.dispose();
301
+ }
302
+ const term = new Terminal({
303
+ cursorBlink: true,
304
+ cols: 150,
305
+ allowProposedApi: true,
306
+ fontSize: 12,
307
+ theme: {
308
+ background: "#00122E"
309
+ },
310
+ ...shellOptions
311
+ });
312
+ let renderAddon = null;
313
+ try {
314
+ renderAddon = new WebglAddon();
315
+ } catch {
316
+ renderAddon = new CanvasAddon();
317
+ }
318
+ onTermInit == null ? void 0 : onTermInit(term);
319
+ term.loadAddon(fitAddonRef.current = new FitAddon());
320
+ term.loadAddon(searchAddonRef.current = new SearchAddon());
321
+ term.loadAddon(new WebLinksAddon());
322
+ term.loadAddon(renderAddon);
323
+ term.open(terminalRef.current);
324
+ fit();
325
+ flush();
326
+ document.addEventListener("keydown", onKeyDown);
327
+ window.addEventListener("resize", onResize);
328
+ searchAddonRef.current.onDidChangeResults(({
329
+ resultCount
330
+ }) => {
331
+ setSearchMatchedTotal(resultCount);
332
+ });
333
+ term.onData((input) => {
334
+ send(encode(input));
335
+ });
336
+ termInstanceRef.current = term;
337
+ return function destroy() {
338
+ document.removeEventListener("keydown", onKeyDown);
339
+ window.removeEventListener("resize", onResize);
340
+ termInstanceRef.current = null;
341
+ fitAddonRef.current = null;
342
+ searchAddonRef.current = null;
343
+ term.clear();
344
+ term.dispose();
345
+ };
346
+ }
347
+ }, [send, encode, onTermInit, fit, flush, shellOptions]);
348
+ const searchNext = useCallback((search) => {
349
+ var _a;
350
+ (_a = searchAddonRef.current) == null ? void 0 : _a.findNext(search || "", searchOptions);
351
+ }, [searchOptions]);
352
+ const searchPrevious = useCallback((search) => {
353
+ var _a;
354
+ (_a = searchAddonRef.current) == null ? void 0 : _a.findPrevious(search || "", searchOptions);
355
+ }, [searchOptions]);
356
+ const getAllTerminalContents = useCallback(() => {
357
+ if (!termInstanceRef.current)
358
+ return [];
359
+ const buffer = termInstanceRef.current.buffer.active;
360
+ const lines = [];
361
+ for (let i = 0; i < buffer.length; i++) {
362
+ const line = buffer.getLine(i);
363
+ if (line) {
364
+ lines.push(line.translateToString(true));
365
+ }
366
+ }
367
+ return lines;
368
+ }, []);
369
+ const clear = useCallback(() => {
370
+ var _a;
371
+ (_a = termInstanceRef.current) == null ? void 0 : _a.clear();
372
+ }, []);
373
+ const downloadContent = useCallback(() => {
374
+ const content = (getAllTerminalContents() || []).join("\n");
375
+ const blob = new Blob([content], {
376
+ type: "text/plain"
377
+ });
378
+ const url2 = window.URL.createObjectURL(blob);
379
+ const a = document.createElement("a");
380
+ a.href = url2;
381
+ a.download = `${logFileName || "term"}.log`;
382
+ document.body.appendChild(a);
383
+ a.click();
384
+ setTimeout(() => {
385
+ document.body.removeChild(a);
386
+ window.URL.revokeObjectURL(url2);
387
+ }, 0);
388
+ }, [getAllTerminalContents, logFileName]);
389
+ const setOptions = useCallback((options) => {
390
+ Object.entries(options).forEach(([key, value]) => {
391
+ if (termInstanceRef.current) {
392
+ termInstanceRef.current.options[key] = value;
393
+ }
394
+ });
395
+ fit();
396
+ }, [fit]);
397
+ const writeln = useCallback((data) => {
398
+ var _a;
399
+ (_a = termInstanceRef.current) == null ? void 0 : _a.writeln(data);
400
+ }, []);
401
+ const onClear = useCallback(() => {
402
+ var _a;
403
+ clear();
404
+ (_a = props.onClear) == null ? void 0 : _a.call(props);
405
+ }, [clear, props.onClear]);
406
+ useEffect(() => {
407
+ const destroy = setupTerminal();
408
+ return () => {
409
+ destroy == null ? void 0 : destroy();
410
+ };
411
+ }, []);
412
+ useEffect(() => {
413
+ const disconnect = connect();
414
+ return () => {
415
+ disconnect == null ? void 0 : disconnect();
416
+ };
417
+ }, [url, protocols]);
418
+ useEffect(() => {
419
+ onSocketStatusChange == null ? void 0 : onSocketStatusChange(socketStatus);
420
+ }, [socketStatus]);
421
+ useEffect(() => {
422
+ if (!containerRef.current)
423
+ return;
424
+ const resizeObserver = new ResizeObserver(() => {
425
+ debouncedFit();
426
+ });
427
+ resizeObserver.observe(containerRef.current);
428
+ return () => resizeObserver.disconnect();
429
+ }, [debouncedFit]);
430
+ useImperativeHandle(ref, () => ({
431
+ clear,
432
+ setSocketStatus,
433
+ fit,
434
+ send,
435
+ connect,
436
+ searchNext,
437
+ searchPrevious,
438
+ getAllTerminalContents,
439
+ setOptions,
440
+ setLoading,
441
+ setError,
442
+ writeln
443
+ }), [send, searchNext, searchPrevious, getAllTerminalContents, fit, clear, connect, setOptions, writeln]);
444
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
445
+ ref: containerRef,
446
+ className: ContainerStyle,
447
+ children: [!!error ? /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, {
448
+ style: {
449
+ margin: 8,
450
+ marginBottom: 4
451
+ },
452
+ message: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
453
+ className: ErrorAlertStyle,
454
+ children: [t("dovetail.disconnected"), /* @__PURE__ */ jsxRuntimeExports.jsx(Link, {
455
+ onClick: () => {
456
+ if (props.onReconnect) {
457
+ props.onReconnect();
458
+ } else {
459
+ connect();
460
+ }
461
+ },
462
+ children: t("dovetail.reconnect")
463
+ })]
464
+ }),
465
+ type: "error"
466
+ }) : null, isHideToolbar ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(ShellToolbar, {
467
+ className: ToolbarStyle,
468
+ leftSlot: toolbarLeftSlot,
469
+ searchMatchedTotal,
470
+ operations,
471
+ onSearchNext: searchNext,
472
+ onSearchPre: searchPrevious,
473
+ onClear,
474
+ onDownloadLog: downloadContent,
475
+ onSetFontSize: (fontSize) => {
476
+ setOptions({
477
+ fontSize
478
+ });
479
+ }
480
+ }), loading ? loadingElement || /* @__PURE__ */ jsxRuntimeExports.jsx(Connecting, {}) : null, /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
481
+ className: cx_default(ShellStyle, className),
482
+ style: {
483
+ display: loading ? "none" : "block"
484
+ },
485
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
486
+ ref: terminalRef,
487
+ style: {
488
+ height: "100%"
489
+ },
490
+ children
491
+ })
492
+ })]
493
+ });
494
+ });
495
+ export {
496
+ Shell as S
497
+ };