@dovetail-v2/refine 0.3.1 → 0.3.3

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.
@@ -7,13 +7,13 @@ var __publicField = (obj, key2, value2) => {
7
7
  import dayjs from "dayjs";
8
8
  import i18n from "i18next";
9
9
  import { w as warnOnce, g as getDefaults, a as warn, b as getI18n, s as setDefaults, d as setI18n, I as I18nContext, j as jsxRuntimeExports, u as useTranslation, c as cx_default, S as SocketStatus } from "./common-feae5742.js";
10
- import { ResourceContext, matchResourceFromRoute, useResource, useDelete, useNavigation, useBreadcrumb, useList, CanAccess, useUpdate, useParsed, useGo, useCan, useTable, useDeleteMany, useShow, useDataProvider, useRefineContext, useTranslate, useWarnAboutChange, useForm as useForm$2, flattenObjectKeys, pickNotDeprecated, useMenu, Refine } from "@refinedev/core";
10
+ import { ResourceContext, matchResourceFromRoute, useResource, useDelete, useNavigation, useBreadcrumb, useList, CanAccess, useUpdate, useParsed, useGo, useCan, useTable, useDeleteMany, useShow, useRefineContext, useTranslate, useWarnAboutChange, useForm as useForm$2, flattenObjectKeys, pickNotDeprecated, useMenu, Refine } from "@refinedev/core";
11
11
  import { parse, stringify } from "qs";
12
12
  import * as React from "react";
13
13
  import React__default, { createElement, isValidElement, cloneElement, Children, useContext, useCallback, createContext, useState, useEffect, useMemo, useRef, useImperativeHandle, lazy, Suspense, forwardRef } from "react";
14
14
  import { useLocation, useHistory, useParams, matchPath, Link, Route, NavLink, Router } from "react-router-dom";
15
- import { usePushModal, usePopModal, DeleteDialog, Tag, RejectDialog, RejectDialogType, Input, Select, AntdOption, Button, Form, Space, TextArea, kitContext, Typo, Loading, Table as Table$2, Pagination, Alert, Modal, Fields, Units, Link as Link$1, OverflowTooltip, Tooltip, Dropdown, Menu as Menu$1, Icon as Icon$1, Divider, StatusCapsule, Tabs as Tabs$1, TabsTabPane, Row, Col, Popover, AntdTable, TableForm, Upload, getOptions, DonutChart, SegmentControl, Checkbox, useMessage, SearchInput, Token, AntdSelectOptGroup, MenuItemGroup, Layout as Layout$1, Time as Time$1, ModalStack, KitStoreProvider, ConfigProvider } from "@cloudtower/eagle";
16
- import { EditPen16PrimaryIcon, Download16GradientBlueIcon, TrashBinDelete16Icon, MoreEllipsis324BoldSecondaryIcon, MoreEllipsis324BoldBlueIcon, MoreEllipsis316BoldBlueIcon, PlusAddCreateNew16BoldOntintIcon, ArrowChevronLeft16BoldTertiaryIcon, ArrowChevronLeftSmall16BoldBlueIcon, ViewEye16GradientGrayIcon, EntityFilterIgnoreGradient16GrayIcon, InfoICircleFill16GrayIcon, InfoICircleFill16Gray70Icon, RecoverContinue16GradientBlueIcon, SuspendedPause16GradientBlueIcon, Retry16GradientBlueIcon, OpenTerminal16GradientBlueIcon, HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, EditPen16GradientGrayIcon, EditPen16GradientBlueIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, ExclamationErrorCircleFill16RedIcon, Pause16GradientBlueIcon, EditPen16BlueIcon } from "@cloudtower/icons-react";
15
+ import { usePushModal, usePopModal, DeleteDialog, Tag, RejectDialog, RejectDialogType, Input, Select, AntdOption, Button, Form, Space, TextArea, kitContext, Typo, Loading, Table as Table$2, Pagination, Alert, Modal, Fields, Units, Link as Link$1, OverflowTooltip, Tooltip, Dropdown, Menu as Menu$1, Icon as Icon$1, Divider, StatusCapsule, Popover, AntdTable, TableForm, Upload, getOptions, DonutChart, SegmentControl, Checkbox, Tabs as Tabs$1, TabsTabPane, Row, Col, useMessage, SearchInput, Token, AntdSelectOptGroup, MenuItemGroup, Layout as Layout$1, Time as Time$1, ModalStack, KitStoreProvider, ConfigProvider } from "@cloudtower/eagle";
16
+ import { EditPen16PrimaryIcon, Download16GradientBlueIcon, TrashBinDelete16Icon, MoreEllipsis324BoldSecondaryIcon, MoreEllipsis324BoldBlueIcon, MoreEllipsis316BoldBlueIcon, PlusAddCreateNew16BoldOntintIcon, ViewEye16GradientGrayIcon, EntityFilterIgnoreGradient16GrayIcon, InfoICircleFill16GrayIcon, InfoICircleFill16Gray70Icon, RecoverContinue16GradientBlueIcon, SuspendedPause16GradientBlueIcon, ArrowChevronLeft16BoldTertiaryIcon, ArrowChevronLeftSmall16BoldBlueIcon, ArrowChevronUp16BoldSecondaryIcon, ArrowBoldDown16Icon, Retry16GradientBlueIcon, OpenTerminal16GradientBlueIcon, HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, EditPen16GradientGrayIcon, EditPen16GradientBlueIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, ExclamationErrorCircleFill16RedIcon, Pause16GradientBlueIcon, EditPen16BlueIcon } from "@cloudtower/icons-react";
17
17
  import { first, get as get$2, cloneDeep, set, omit as omit$1, merge, isEqual, debounce, last, setWith, clone, isObject as isObject$3, uniq, keyBy } from "lodash-es";
18
18
  import yaml$2 from "js-yaml";
19
19
  import { useLocalStorage } from "usehooks-ts";
@@ -1164,6 +1164,8 @@ const cant_delete_resource = "无法删除{{resource}}";
1164
1164
  const cant_delete_resource_with_name = "无法删除{{resource}} <0>{{name}}</0> 。";
1165
1165
  const close = "关闭";
1166
1166
  const import_from_file = "从文件读取";
1167
+ const view_all_info = "查看全部信息";
1168
+ const collapse = "收起";
1167
1169
  const dovetail = {
1168
1170
  copy,
1169
1171
  reset_arguments,
@@ -1406,7 +1408,9 @@ const dovetail = {
1406
1408
  cant_delete_resource,
1407
1409
  cant_delete_resource_with_name,
1408
1410
  close,
1409
- import_from_file
1411
+ import_from_file,
1412
+ view_all_info,
1413
+ collapse
1410
1414
  };
1411
1415
  const ZH = {
1412
1416
  dovetail
@@ -9254,7 +9258,7 @@ var ResourceState = /* @__PURE__ */ ((ResourceState2) => {
9254
9258
  return ResourceState2;
9255
9259
  })(ResourceState || {});
9256
9260
  function matchSelector(pod2, selector, namespace2 = "default") {
9257
- var _a, _b, _c;
9261
+ var _a, _b, _c, _d;
9258
9262
  let match = true;
9259
9263
  if (selector) {
9260
9264
  for (const key2 in selector.matchLabels) {
@@ -9263,7 +9267,7 @@ function matchSelector(pod2, selector, namespace2 = "default") {
9263
9267
  }
9264
9268
  }
9265
9269
  }
9266
- return match && pod2.metadata.namespace === namespace2;
9270
+ return match && ((_d = pod2.metadata) == null ? void 0 : _d.namespace) === namespace2;
9267
9271
  }
9268
9272
  class WorkloadBaseModel extends ResourceModel {
9269
9273
  constructor(_rawYaml, _globalStore) {
@@ -9353,10 +9357,14 @@ class WorkloadModel extends WorkloadBaseModel {
9353
9357
  constructor(_rawYaml, _globalStore) {
9354
9358
  super(_rawYaml, _globalStore);
9355
9359
  __publicField(this, "restarts", 0);
9360
+ __publicField(this, "services", []);
9361
+ __publicField(this, "ingresses", []);
9356
9362
  this._rawYaml = _rawYaml;
9357
9363
  }
9358
9364
  async init() {
9359
9365
  await this.getRestarts();
9366
+ await this.getServices();
9367
+ await this.getIngresses();
9360
9368
  }
9361
9369
  async getRestarts() {
9362
9370
  const pods = await this._globalStore.get("pods", {
@@ -9372,6 +9380,29 @@ class WorkloadModel extends WorkloadBaseModel {
9372
9380
  const result = lodashExports.sumBy(myPods, "restarts");
9373
9381
  this.restarts = result;
9374
9382
  }
9383
+ async getServices() {
9384
+ const services = await this._globalStore.get("services", {
9385
+ resourceBasePath: "/api/v1",
9386
+ kind: "Service"
9387
+ });
9388
+ const myServices = services.items.filter(
9389
+ (p) => {
9390
+ var _a;
9391
+ return matchSelector(p, (_a = this.spec) == null ? void 0 : _a.selector, this.metadata.namespace);
9392
+ }
9393
+ );
9394
+ this.services = myServices;
9395
+ }
9396
+ async getIngresses() {
9397
+ const allIngresses = /* @__PURE__ */ new Map();
9398
+ for (const service of this.services) {
9399
+ for (const ingress of service.ingresses) {
9400
+ const key2 = `${ingress.namespace}-${ingress.name}`;
9401
+ allIngresses.set(key2, ingress);
9402
+ }
9403
+ }
9404
+ this.ingresses = Array.from(allIngresses.values());
9405
+ }
9375
9406
  get replicas() {
9376
9407
  return this.spec && "replicas" in this.spec ? this.spec.replicas : 0;
9377
9408
  }
@@ -9512,6 +9543,38 @@ class PodMetricsModel extends ResourceModel {
9512
9543
  };
9513
9544
  }
9514
9545
  }
9546
+ class ReplicaSetModel extends ResourceModel {
9547
+ constructor(_rawYaml, _globalStore) {
9548
+ super(_rawYaml, _globalStore);
9549
+ __publicField(this, "pods", []);
9550
+ __publicField(this, "restarts", 0);
9551
+ this._rawYaml = _rawYaml;
9552
+ }
9553
+ async init() {
9554
+ await this.getPods();
9555
+ }
9556
+ async getPods() {
9557
+ const pods = await this._globalStore.get("pods", {
9558
+ resourceBasePath: "/api/v1",
9559
+ kind: "Pod"
9560
+ });
9561
+ const myPods = pods.items.filter(
9562
+ (pod2) => {
9563
+ var _a;
9564
+ return matchSelector(pod2, (_a = this.spec) == null ? void 0 : _a.selector, this.metadata.namespace);
9565
+ }
9566
+ );
9567
+ this.pods = myPods;
9568
+ this.restarts = lodashExports.sumBy(this.pods, (pod2) => pod2.restarts || 0);
9569
+ }
9570
+ get ownerDeploymentName() {
9571
+ var _a;
9572
+ const ownerRef = (_a = this.metadata.ownerReferences) == null ? void 0 : _a.find(
9573
+ (ref) => ref.kind === "Deployment" && ref.apiVersion === "apps/v1"
9574
+ );
9575
+ return ownerRef == null ? void 0 : ownerRef.name;
9576
+ }
9577
+ }
9515
9578
  class CronJobModel extends WorkloadBaseModel {
9516
9579
  constructor(_rawYaml, _globalStore) {
9517
9580
  super(_rawYaml, _globalStore);
@@ -9554,8 +9617,27 @@ class EventModel extends ResourceModel {
9554
9617
  class DeploymentModel extends WorkloadModel {
9555
9618
  constructor(_rawYaml, _globalStore) {
9556
9619
  super(_rawYaml, _globalStore);
9620
+ __publicField(this, "replicaSets", []);
9557
9621
  this._rawYaml = _rawYaml;
9558
9622
  }
9623
+ async init() {
9624
+ await super.init();
9625
+ await this.getReplicaSets();
9626
+ }
9627
+ async getReplicaSets() {
9628
+ const replicaSets = await this._globalStore.get("replicasets", {
9629
+ resourceBasePath: "/apis/apps/v1",
9630
+ kind: "ReplicaSet"
9631
+ });
9632
+ const myReplicaSets = replicaSets.items.filter((rs) => {
9633
+ var _a, _b, _c;
9634
+ const ownerRef = (_b = (_a = rs.metadata) == null ? void 0 : _a.ownerReferences) == null ? void 0 : _b.find(
9635
+ (ref) => ref.kind === "Deployment" && ref.apiVersion === "apps/v1" && ref.name === this.name && ref.uid === this.metadata.uid
9636
+ );
9637
+ return !!ownerRef && ((_c = rs.metadata) == null ? void 0 : _c.namespace) === this.metadata.namespace;
9638
+ });
9639
+ this.replicaSets = myReplicaSets;
9640
+ }
9559
9641
  get stateDisplay() {
9560
9642
  var _a, _b, _c;
9561
9643
  if (((_a = this.spec) == null ? void 0 : _a.replicas) === 0) {
@@ -9611,8 +9693,25 @@ var ServiceTypeEnum = /* @__PURE__ */ ((ServiceTypeEnum2) => {
9611
9693
  class ServiceModel extends ResourceModel {
9612
9694
  constructor(_rawYaml, _globalStore) {
9613
9695
  super(_rawYaml, _globalStore);
9696
+ __publicField(this, "ingresses", []);
9614
9697
  this._rawYaml = _rawYaml;
9615
9698
  }
9699
+ async init() {
9700
+ await this.getIngresses();
9701
+ }
9702
+ async getIngresses() {
9703
+ const ingresses = await this._globalStore.get("ingresses", {
9704
+ resourceBasePath: "/apis/networking.k8s.io/v1",
9705
+ kind: "Ingress"
9706
+ });
9707
+ const myIngresses = ingresses.items.filter((ingress) => {
9708
+ const rules = ingress.getFlattenedRules([]);
9709
+ return rules.some(
9710
+ (rule2) => rule2.serviceName === this.name
9711
+ );
9712
+ });
9713
+ this.ingresses = myIngresses;
9714
+ }
9616
9715
  get displayType() {
9617
9716
  const spec = this._rawYaml.spec;
9618
9717
  const type2 = spec.type;
@@ -10980,273 +11079,9 @@ function KeyValueAnnotation(props) {
10980
11079
  }) : null]
10981
11080
  });
10982
11081
  }
10983
- function Tabs(props) {
10984
- const { tabs, className } = props;
10985
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Tabs$1, { className, children: tabs.map((tab) => {
10986
- return /* @__PURE__ */ jsxRuntimeExports.jsx(TabsTabPane, { tab: tab.title, children: tab.children }, tab.title);
10987
- }) });
10988
- }
10989
- const StateTag = (props) => {
10990
- const {
10991
- state: state2 = ResourceState.UPDATING,
10992
- hideBackground,
10993
- className,
10994
- customResourceStateMap
10995
- } = props;
10996
- const { t: t2 } = useTranslation();
10997
- const defaultStateMap = {
10998
- [ResourceState.UPDATING]: "loading",
10999
- [ResourceState.READY]: "green",
11000
- [ResourceState.COMPLETED]: "gray",
11001
- [ResourceState.FAILED]: "red",
11002
- [ResourceState.SUSPENDED]: "warning",
11003
- [ResourceState.RUNNING]: "green",
11004
- [ResourceState.SUCCEEDED]: "blue",
11005
- [ResourceState.UNKNOWN]: "gray",
11006
- [ResourceState.TERMINATING]: "loading",
11007
- [ResourceState.PENDING]: "warning",
11008
- [ResourceState.WAITING]: "warning",
11009
- [ResourceState.TERMINATED]: "gray",
11010
- [ResourceState.STOPPED]: "gray",
11011
- [ResourceState.AVAILABLE]: "blue",
11012
- [ResourceState.BOUND]: "green",
11013
- [ResourceState.RELEASED]: "gray",
11014
- [ResourceState.LOST]: "red",
11015
- [ResourceState.ACTIVE]: "green",
11016
- [ResourceState.DELETING]: "loading"
11017
- };
11018
- const finalColorMap = (customResourceStateMap == null ? void 0 : customResourceStateMap.color) || defaultStateMap;
11019
- const finalTextMap = customResourceStateMap == null ? void 0 : customResourceStateMap.text;
11020
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
11021
- StatusCapsule,
11022
- {
11023
- className: cx_default(className, StateTagStyle, hideBackground && "no-background"),
11024
- color: finalColorMap[state2] !== "loading" ? finalColorMap[state2] : void 0,
11025
- loading: finalColorMap[state2] === "loading",
11026
- children: finalTextMap ? finalTextMap[state2] : t2(`dovetail.${state2 || "updating"}_state`)
11027
- }
11028
- );
11029
- };
11030
- const ShowContent_1g0ejph = "";
11031
- const ShowContentWrapperStyle = "s9agep2";
11032
- const BackButton = "bo89gfi";
11033
- const ToolBarWrapper = "t1ohe42f";
11034
- const NameStyle = "nqm4qz0";
11035
- const TopBarStyle = "ticl0qc";
11036
- const ShowContentHeaderStyle = "so9uwk1";
11037
- const GroupStyle$1 = "ge26ou0";
11038
- const GroupTitleStyle = "g17f8vl9";
11039
- const FullTabContentStyle = "fykgn2i";
11040
- const FieldWrapperStyle = "fngr745";
11041
- const TabContentStyle = "t11wg61l";
11042
- const ValueStyle$1 = "v1x3rivf";
11043
- const TabsStyle = "tf5s6s";
11044
- function ShowGroupComponent(props) {
11045
- const {
11046
- title,
11047
- className,
11048
- children,
11049
- operationEle
11050
- } = props;
11051
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
11052
- className: cx_default(GroupStyle$1, className),
11053
- children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
11054
- className: cx_default(Typo.Heading.h2_bold_title, GroupTitleStyle),
11055
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
11056
- children: title
11057
- }), operationEle]
11058
- }), children]
11059
- });
11060
- }
11061
- const ShowContent = (props) => {
11062
- var _a, _b, _c, _d, _e, _f;
11063
- const {
11064
- showConfig,
11065
- formatter,
11066
- Dropdown: Dropdown2 = K8sDropdown
11067
- } = props;
11068
- const parsed = useParsed();
11069
- const {
11070
- resource
11071
- } = useResource();
11072
- const id = (_a = parsed == null ? void 0 : parsed.params) == null ? void 0 : _a.id;
11073
- const {
11074
- queryResult
11075
- } = useShow({
11076
- id,
11077
- errorNotification: false
11078
- });
11079
- const {
11080
- t: t2
11081
- } = useTranslation();
11082
- const {
11083
- data: data2
11084
- } = queryResult;
11085
- const navigation = useNavigation();
11086
- const go = useGo();
11087
- const openForm = useOpenForm();
11088
- const Component = useContext(ComponentContext);
11089
- const configs = useContext(ConfigsContext);
11090
- const config = configs[(resource == null ? void 0 : resource.name) || ""];
11091
- const Tabs$12 = Component.Tabs || Tabs;
11092
- if (!(data2 == null ? void 0 : data2.data)) {
11093
- return null;
11094
- }
11095
- const model = data2.data;
11096
- const record = formatter ? formatter(model) : data2 == null ? void 0 : data2.data;
11097
- function renderFields(fields, areaType, hasCol = true) {
11098
- if (!record)
11099
- return null;
11100
- return fields.map((field) => {
11101
- if (field.hidden)
11102
- return null;
11103
- let content;
11104
- const value2 = get$2(record, field.path);
11105
- if (field.renderContent) {
11106
- content = field.renderContent(value2, record, field);
11107
- } else {
11108
- content = get$2(record, field.path);
11109
- }
11110
- return hasCol ? /* @__PURE__ */ jsxRuntimeExports.jsx(Col, {
11111
- flex: areaType === AreaType.Inline ? "none" : "",
11112
- span: field.col || 24,
11113
- children: field.render ? field.render(value2, record, field) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
11114
- className: FieldWrapperStyle,
11115
- children: [field.title && /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
11116
- className: Typo.Label.l4_regular_title,
11117
- style: {
11118
- width: field.labelWidth || "165px",
11119
- marginRight: 8,
11120
- flexShrink: 0,
11121
- color: "#2C385299"
11122
- },
11123
- children: field.title
11124
- }), /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
11125
- style: {
11126
- flex: 1,
11127
- minWidth: 0
11128
- },
11129
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
11130
- className: cx_default(Typo.Label.l4_regular_title, ValueStyle$1),
11131
- value: content,
11132
- useOverflow: false
11133
- })
11134
- })]
11135
- })
11136
- }, field.key) : /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
11137
- style: {
11138
- height: "100%"
11139
- },
11140
- value: content,
11141
- useOverflow: false
11142
- });
11143
- });
11144
- }
11145
- const stateDisplay = get$2(record, "stateDisplay");
11146
- const topBar = /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
11147
- className: ToolBarWrapper,
11148
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx("span", {
11149
- className: cx_default(Typo.Label.l4_bold, BackButton),
11150
- onClick: () => {
11151
- go({
11152
- to: navigation.listUrl((resource == null ? void 0 : resource.name) || "")
11153
- });
11154
- },
11155
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, {
11156
- src: ArrowChevronLeft16BoldTertiaryIcon,
11157
- hoverSrc: ArrowChevronLeftSmall16BoldBlueIcon,
11158
- style: {
11159
- marginRight: 4
11160
- },
11161
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
11162
- className: "button-text",
11163
- children: (config == null ? void 0 : config.displayName) || ((_b = resource == null ? void 0 : resource.meta) == null ? void 0 : _b.kind)
11164
- })
11165
- })
11166
- }), /* @__PURE__ */ jsxRuntimeExports.jsxs(Space, {
11167
- className: TopBarStyle,
11168
- children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
11169
- style: {
11170
- display: "flex"
11171
- },
11172
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx("span", {
11173
- className: cx_default(Typo.Display.d2_regular_title, NameStyle),
11174
- children: ((_c = showConfig.displayName) == null ? void 0 : _c.call(showConfig, record)) || ((_d = record == null ? void 0 : record.metadata) == null ? void 0 : _d.name)
11175
- }), stateDisplay ? /* @__PURE__ */ jsxRuntimeExports.jsx(StateTag, {
11176
- state: stateDisplay,
11177
- customResourceStateMap: showConfig.resourceStateMap
11178
- }) : void 0]
11179
- }), /* @__PURE__ */ jsxRuntimeExports.jsxs(Space, {
11180
- children: [(_e = showConfig.renderExtraButton) == null ? void 0 : _e.call(showConfig, record), !config.hideEdit ? /* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
11181
- resource: resource == null ? void 0 : resource.name,
11182
- action: AccessControlAuth.Edit,
11183
- params: {
11184
- namespace: record.namespace
11185
- },
11186
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
11187
- style: {
11188
- marginRight: 8
11189
- },
11190
- onClick: () => openForm({
11191
- id
11192
- }),
11193
- children: ((_f = config.formConfig) == null ? void 0 : _f.formType) === FormType.FORM ? t2("dovetail.edit") : t2("dovetail.edit_yaml")
11194
- })
11195
- }) : null, /* @__PURE__ */ jsxRuntimeExports.jsx(Dropdown2, {
11196
- record,
11197
- size: "large"
11198
- })]
11199
- })]
11200
- })]
11201
- });
11202
- const tabs = /* @__PURE__ */ jsxRuntimeExports.jsx(Tabs$12, {
11203
- tabs: (showConfig.tabs || []).map((tab, tabIndex) => {
11204
- var _a2;
11205
- return {
11206
- title: tab.title,
11207
- key: tab.key,
11208
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
11209
- className: cx_default(TabContentStyle, tab.groups.length <= 1 && tabIndex !== 0 && FullTabContentStyle),
11210
- children: (_a2 = tab.groups) == null ? void 0 : _a2.map((group) => {
11211
- const GroupContainer = group.title ? ShowGroupComponent : React__default.Fragment;
11212
- const FieldContainer = group.title ? Row : React__default.Fragment;
11213
- const groupContainerProps = group.title ? {
11214
- title: group.title || ""
11215
- } : {};
11216
- const fieldContainerProps = group.title ? {
11217
- gutter: [24, 8]
11218
- } : {};
11219
- return /* @__PURE__ */ jsxRuntimeExports.jsx(GroupContainer, {
11220
- ...groupContainerProps,
11221
- children: group.areas.map((area, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
11222
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx(FieldContainer, {
11223
- ...fieldContainerProps,
11224
- children: renderFields(area.fields, area.type, !!group.title)
11225
- }, index2), index2 !== group.areas.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, {
11226
- style: {
11227
- margin: "8px 0 12px 0"
11228
- }
11229
- }) : null]
11230
- }))
11231
- }, group.title);
11232
- })
11233
- })
11234
- };
11235
- }),
11236
- className: TabsStyle
11237
- });
11238
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
11239
- className: ShowContentWrapperStyle,
11240
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Space, {
11241
- direction: "vertical",
11242
- className: ShowContentHeaderStyle,
11243
- children: topBar
11244
- }), tabs]
11245
- });
11246
- };
11247
11082
  const KeyValueSecret_c3ji18 = "";
11248
11083
  const ButtonStyle = "b11tbgf7";
11249
- const GroupStyle = "gtbyh5g";
11084
+ const GroupStyle$1 = "gtbyh5g";
11250
11085
  function KeyValueSecret(props) {
11251
11086
  const {
11252
11087
  data: data2 = {}
@@ -11268,7 +11103,7 @@ function KeyValueSecret(props) {
11268
11103
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ShowGroupComponent, {
11269
11104
  title: i18n2.t("dovetail.data"),
11270
11105
  operationEle: toggleButton,
11271
- className: GroupStyle,
11106
+ className: GroupStyle$1,
11272
11107
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(KeyValue, {
11273
11108
  data: data2,
11274
11109
  hideSecret,
@@ -11849,16 +11684,57 @@ function ResourceTable(props) {
11849
11684
  tableProps.onPageChange(1);
11850
11685
  }, []);
11851
11686
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
11852
- Table,
11687
+ Table,
11688
+ {
11689
+ tableProps,
11690
+ displayName: config.displayName || config.kind,
11691
+ errorContentProps: {
11692
+ type: ErrorContentType.Card
11693
+ }
11694
+ }
11695
+ );
11696
+ }
11697
+ const StateTag = (props) => {
11698
+ const {
11699
+ state: state2 = ResourceState.UPDATING,
11700
+ hideBackground,
11701
+ className,
11702
+ customResourceStateMap
11703
+ } = props;
11704
+ const { t: t2 } = useTranslation();
11705
+ const defaultStateMap = {
11706
+ [ResourceState.UPDATING]: "loading",
11707
+ [ResourceState.READY]: "green",
11708
+ [ResourceState.COMPLETED]: "gray",
11709
+ [ResourceState.FAILED]: "red",
11710
+ [ResourceState.SUSPENDED]: "warning",
11711
+ [ResourceState.RUNNING]: "green",
11712
+ [ResourceState.SUCCEEDED]: "blue",
11713
+ [ResourceState.UNKNOWN]: "gray",
11714
+ [ResourceState.TERMINATING]: "loading",
11715
+ [ResourceState.PENDING]: "warning",
11716
+ [ResourceState.WAITING]: "warning",
11717
+ [ResourceState.TERMINATED]: "gray",
11718
+ [ResourceState.STOPPED]: "gray",
11719
+ [ResourceState.AVAILABLE]: "blue",
11720
+ [ResourceState.BOUND]: "green",
11721
+ [ResourceState.RELEASED]: "gray",
11722
+ [ResourceState.LOST]: "red",
11723
+ [ResourceState.ACTIVE]: "green",
11724
+ [ResourceState.DELETING]: "loading"
11725
+ };
11726
+ const finalColorMap = (customResourceStateMap == null ? void 0 : customResourceStateMap.color) || defaultStateMap;
11727
+ const finalTextMap = customResourceStateMap == null ? void 0 : customResourceStateMap.text;
11728
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
11729
+ StatusCapsule,
11853
11730
  {
11854
- tableProps,
11855
- displayName: config.displayName || config.kind,
11856
- errorContentProps: {
11857
- type: ErrorContentType.Card
11858
- }
11731
+ className: cx_default(className, StateTagStyle, hideBackground && "no-background"),
11732
+ color: finalColorMap[state2] !== "loading" ? finalColorMap[state2] : void 0,
11733
+ loading: finalColorMap[state2] === "loading",
11734
+ children: finalTextMap ? finalTextMap[state2] : t2(`dovetail.${state2 || "updating"}_state`)
11859
11735
  }
11860
11736
  );
11861
- }
11737
+ };
11862
11738
  const WorkloadPodsTable_975j2t = "";
11863
11739
  const WorkloadPodsTable = ({
11864
11740
  namespace: namespace2,
@@ -11940,7 +11816,7 @@ const ReadyValueStyle = "r1bm8olw";
11940
11816
  const ReplicasValueStyle = "r1oqudbh";
11941
11817
  const ContentWrapperStyle = "c18i6jtg";
11942
11818
  const LabelStyle = "lpm22il";
11943
- const ValueStyle = "v1ixr1me";
11819
+ const ValueStyle$1 = "v1ixr1me";
11944
11820
  const WorkloadReplicasForm = React__default.forwardRef(function WorkloadReplicasForm2(props, ref) {
11945
11821
  const {
11946
11822
  defaultValue,
@@ -12070,7 +11946,7 @@ function WorkloadReplicas({
12070
11946
  className: cx_default(LabelStyle, Typo.Label.l3_regular),
12071
11947
  children: record.kind === "Job" ? t2("dovetail.pod_complete_num") : t2("dovetail.pod_ready_num")
12072
11948
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("td", {
12073
- className: cx_default(ValueStyle, Typo.Label.l3_regular),
11949
+ className: cx_default(ValueStyle$1, Typo.Label.l3_regular),
12074
11950
  children: readyReplicas
12075
11951
  })]
12076
11952
  }), /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", {
@@ -12078,7 +11954,7 @@ function WorkloadReplicas({
12078
11954
  className: cx_default(LabelStyle, Typo.Label.l3_regular),
12079
11955
  children: t2("dovetail.pod_replicas_num")
12080
11956
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("td", {
12081
- className: cx_default(ValueStyle, Typo.Label.l3_regular),
11957
+ className: cx_default(ValueStyle$1, Typo.Label.l3_regular),
12082
11958
  children: replicas
12083
11959
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("td", {
12084
11960
  children: editable && canScale && /* @__PURE__ */ jsxRuntimeExports.jsx(EditField, {
@@ -12109,6 +11985,7 @@ var AreaType = /* @__PURE__ */ ((AreaType2) => {
12109
11985
  const ImageField = (i18n2) => {
12110
11986
  return {
12111
11987
  key: "Image",
11988
+ col: 12,
12112
11989
  title: i18n2.t("dovetail.image"),
12113
11990
  path: ["imageNames"],
12114
11991
  renderContent(value2) {
@@ -12215,6 +12092,7 @@ const SecretDataField = () => {
12215
12092
  const StartTimeField = (i18n2) => {
12216
12093
  return {
12217
12094
  key: "started",
12095
+ col: 12,
12218
12096
  title: i18n2.t("dovetail.started"),
12219
12097
  path: ["status", "startTime"],
12220
12098
  renderContent(value2) {
@@ -12225,6 +12103,7 @@ const StartTimeField = (i18n2) => {
12225
12103
  const ServiceTypeField = (i18n2) => {
12226
12104
  return {
12227
12105
  key: "type",
12106
+ col: 12,
12228
12107
  title: i18n2.t("dovetail.type"),
12229
12108
  path: ["displayType"]
12230
12109
  };
@@ -12232,6 +12111,7 @@ const ServiceTypeField = (i18n2) => {
12232
12111
  const ClusterIpField = (i18n2) => {
12233
12112
  return {
12234
12113
  key: "clusterIp",
12114
+ col: 12,
12235
12115
  title: i18n2.t("dovetail.clusterIp"),
12236
12116
  path: ["spec", "clusterIP"]
12237
12117
  };
@@ -12239,6 +12119,7 @@ const ClusterIpField = (i18n2) => {
12239
12119
  const SessionAffinityField = (i18n2) => {
12240
12120
  return {
12241
12121
  key: "clusterIp",
12122
+ col: 12,
12242
12123
  title: i18n2.t("dovetail.sessionAffinity"),
12243
12124
  path: ["spec", "sessionAffinity"]
12244
12125
  };
@@ -12283,11 +12164,13 @@ const EventsTableTabField = () => {
12283
12164
  };
12284
12165
  const NamespaceField = (i18n2) => ({
12285
12166
  key: "NameSpace",
12167
+ col: 12,
12286
12168
  title: i18n2.t("dovetail.namespace"),
12287
12169
  path: ["metadata", "namespace"]
12288
12170
  });
12289
12171
  const AgeField = (i18n2) => ({
12290
12172
  key: "Age",
12173
+ col: 12,
12291
12174
  title: i18n2.t("dovetail.created_time"),
12292
12175
  path: ["metadata", "creationTimestamp"],
12293
12176
  renderContent(value2) {
@@ -12315,6 +12198,7 @@ const AnnotationsField = (i18n2) => ({
12315
12198
  });
12316
12199
  const ServiceInnerClusterAccessField = () => ({
12317
12200
  key: "innerClusterAccess",
12201
+ col: 12,
12318
12202
  title: /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceInClusterAccessTitle, {}),
12319
12203
  path: [],
12320
12204
  renderContent: (_, record) => {
@@ -12323,6 +12207,7 @@ const ServiceInnerClusterAccessField = () => ({
12323
12207
  });
12324
12208
  const ServiceOutClusterAccessField = (clusterVip) => ({
12325
12209
  key: "innerClusterAccess",
12210
+ col: 12,
12326
12211
  title: /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceOutClusterAccessTitle, {}),
12327
12212
  path: [],
12328
12213
  renderContent: (_, record) => {
@@ -12355,6 +12240,7 @@ const PortsTableField = () => ({
12355
12240
  const DurationField = (i18n2) => {
12356
12241
  return {
12357
12242
  key: "duration",
12243
+ col: 12,
12358
12244
  path: ["duration"],
12359
12245
  title: i18n2.t("dovetail.duration"),
12360
12246
  renderContent: (v) => {
@@ -12365,6 +12251,7 @@ const DurationField = (i18n2) => {
12365
12251
  const StorageClassProvisionerField = (i18n2) => {
12366
12252
  return {
12367
12253
  key: "provisioner",
12254
+ col: 12,
12368
12255
  path: ["provisioner"],
12369
12256
  title: i18n2.t("dovetail.provisioner")
12370
12257
  };
@@ -12400,6 +12287,7 @@ const StorageClassPvField = () => {
12400
12287
  const PVCapacityField = (i18n2) => {
12401
12288
  return {
12402
12289
  key: "capacity",
12290
+ col: 12,
12403
12291
  path: ["spec", "capacity", "storage"],
12404
12292
  title: i18n2.t("dovetail.capacity"),
12405
12293
  renderContent(value2) {
@@ -12410,6 +12298,7 @@ const PVCapacityField = (i18n2) => {
12410
12298
  const PVCStorageField = (i18n2) => {
12411
12299
  return {
12412
12300
  key: "storage",
12301
+ col: 12,
12413
12302
  path: ["spec", "resources", "requests", "storage"],
12414
12303
  title: i18n2.t("dovetail.distributed"),
12415
12304
  renderContent(value2, pvc2) {
@@ -12420,6 +12309,7 @@ const PVCStorageField = (i18n2) => {
12420
12309
  const PVRefField = (i18n2) => {
12421
12310
  return {
12422
12311
  key: "pv",
12312
+ col: 12,
12423
12313
  path: ["pv"],
12424
12314
  title: i18n2.t("dovetail.pv"),
12425
12315
  renderContent(value2) {
@@ -12437,6 +12327,7 @@ const PVRefField = (i18n2) => {
12437
12327
  const PVStorageClassField = (i18n2) => {
12438
12328
  return {
12439
12329
  key: "storageClass",
12330
+ col: 12,
12440
12331
  path: ["spec", "storageClassName"],
12441
12332
  title: i18n2.t("dovetail.storage_class"),
12442
12333
  renderContent(value2) {
@@ -12447,6 +12338,7 @@ const PVStorageClassField = (i18n2) => {
12447
12338
  const PVPhaseField = (i18n2) => {
12448
12339
  return {
12449
12340
  key: "phase",
12341
+ col: 12,
12450
12342
  path: ["stateDisplay"],
12451
12343
  title: i18n2.t("dovetail.state"),
12452
12344
  renderContent(value2) {
@@ -12457,6 +12349,7 @@ const PVPhaseField = (i18n2) => {
12457
12349
  const PVVolumeModeField = (i18n2) => {
12458
12350
  return {
12459
12351
  key: "mode",
12352
+ col: 12,
12460
12353
  path: ["spec", "volumeMode"],
12461
12354
  title: i18n2.t("dovetail.volume_mode"),
12462
12355
  renderContent(value2) {
@@ -12467,6 +12360,7 @@ const PVVolumeModeField = (i18n2) => {
12467
12360
  const PVAccessModeField = (i18n2) => {
12468
12361
  return {
12469
12362
  key: "accessMode",
12363
+ col: 12,
12470
12364
  path: ["spec", "accessModes"],
12471
12365
  title: i18n2.t("dovetail.access_mode"),
12472
12366
  renderContent(value2) {
@@ -12502,6 +12396,7 @@ const PVCPodsField = () => {
12502
12396
  const PVCRefField = (i18n2) => {
12503
12397
  return {
12504
12398
  key: "pvc",
12399
+ col: 12,
12505
12400
  path: ["pvc"],
12506
12401
  title: i18n2.t("dovetail.pvc"),
12507
12402
  renderContent(value2, pv2) {
@@ -12520,6 +12415,7 @@ const PVCRefField = (i18n2) => {
12520
12415
  const PVCSIRefField = (i18n2) => {
12521
12416
  return {
12522
12417
  key: "csi",
12418
+ col: 12,
12523
12419
  path: ["csi"],
12524
12420
  title: i18n2.t("dovetail.csi")
12525
12421
  };
@@ -12527,6 +12423,7 @@ const PVCSIRefField = (i18n2) => {
12527
12423
  const IsDefaultSCField = (i18n2) => {
12528
12424
  return {
12529
12425
  key: "isDefaultSC",
12426
+ col: 12,
12530
12427
  path: ["isDefaultSC"],
12531
12428
  title: i18n2.t("dovetail.default_sc"),
12532
12429
  renderContent(val) {
@@ -12537,6 +12434,7 @@ const IsDefaultSCField = (i18n2) => {
12537
12434
  const SCReclaimPolicyField = (i18n2) => {
12538
12435
  return {
12539
12436
  key: "reclaimPolicy",
12437
+ col: 12,
12540
12438
  path: ["reclaimPolicy"],
12541
12439
  title: i18n2.t("dovetail.reclaim_policy"),
12542
12440
  renderContent(val) {
@@ -12551,6 +12449,7 @@ const SCReclaimPolicyField = (i18n2) => {
12551
12449
  const IsSCAllowVolumeExpansionField = (i18n2) => {
12552
12450
  return {
12553
12451
  key: "allowVolumeExpansion",
12452
+ col: 12,
12554
12453
  path: ["allowVolumeExpansion"],
12555
12454
  title: i18n2.t("dovetail.allow_expand"),
12556
12455
  renderContent(val) {
@@ -12568,13 +12467,14 @@ const ResourceTableField = (resource, useTableParams) => {
12568
12467
  };
12569
12468
  };
12570
12469
  const baseNoReset = "";
12571
- const index_v855ki = "";
12470
+ const index_14irc29 = "";
12572
12471
  const WrapperStyle$3 = "wve7dfm";
12573
12472
  const ToolbarStyle = "t9oeh3c";
12574
12473
  const ToolbarAreaStyle = "t1u2zqn6";
12575
12474
  const ContentStyle$1 = "c8wrcus";
12576
12475
  const PodLog = ({
12577
- pod: pod2
12476
+ pod: pod2,
12477
+ apiUrl
12578
12478
  }) => {
12579
12479
  var _a, _b, _c, _d, _e;
12580
12480
  const [selectedContainer, setSelectedContainer] = useState(((_b = (_a = pod2.spec) == null ? void 0 : _a.containers[0]) == null ? void 0 : _b.name) || "");
@@ -12585,8 +12485,6 @@ const PodLog = ({
12585
12485
  const [wrap, setWrap] = useState(false);
12586
12486
  const logViewerRef = useRef(null);
12587
12487
  const abortControllerRef = useRef(null);
12588
- const dataProvider2 = useDataProvider();
12589
- const apiUrl = dataProvider2()["getApiUrl"]();
12590
12488
  const {
12591
12489
  t: t2
12592
12490
  } = useTranslation();
@@ -12776,7 +12674,7 @@ const EventsTab = (i18n2) => ({
12776
12674
  }
12777
12675
  ]
12778
12676
  });
12779
- const PodLogTab = (i18n2) => ({
12677
+ const PodLogTab = (i18n2, apiUrl) => ({
12780
12678
  title: i18n2.t("dovetail.log"),
12781
12679
  key: "pod-log",
12782
12680
  groups: [
@@ -12788,7 +12686,7 @@ const PodLogTab = (i18n2) => ({
12788
12686
  key: "log",
12789
12687
  path: [],
12790
12688
  renderContent: (_, record) => {
12791
- return /* @__PURE__ */ jsxRuntimeExports.jsx(PodLog, { pod: record });
12689
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(PodLog, { pod: record, apiUrl });
12792
12690
  }
12793
12691
  }
12794
12692
  ]
@@ -12798,7 +12696,7 @@ const PodLogTab = (i18n2) => ({
12798
12696
  ]
12799
12697
  });
12800
12698
  const NetworkPolicyRulesViewer_r6jity = "";
12801
- const MonacoYamlEditor$1 = lazy(() => import("./MonacoYamlEditor-5e4c98ce.js"));
12699
+ const MonacoYamlEditor$1 = lazy(() => import("./MonacoYamlEditor-be20caed.js"));
12802
12700
  const EditorStyle$1 = "e1cjl2b8";
12803
12701
  const NetworkPolicyRulesViewer = ({
12804
12702
  ingressOrEgress,
@@ -13136,6 +13034,318 @@ const ResourceTableGroup = (resource, title) => ({
13136
13034
  }
13137
13035
  ]
13138
13036
  });
13037
+ function Tabs(props) {
13038
+ const { tabs, className } = props;
13039
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tabs$1, { className, children: tabs.map((tab) => {
13040
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(TabsTabPane, { tab: tab.title, children: tab.children }, tab.title);
13041
+ }) });
13042
+ }
13043
+ const ShowContentView_19saq6u = "";
13044
+ const ShowContentWrapperStyle = "soapvs9";
13045
+ const BackButton = "b13d603q";
13046
+ const ToolBarWrapper = "tm8eaia";
13047
+ const NameStyle = "nhnus27";
13048
+ const TopBarStyle = "t16t20f5";
13049
+ const ShowContentHeaderStyle = "s97y2wr";
13050
+ const GroupStyle = "g1rhnxqx";
13051
+ const BasicGroupStyle = "b1f1s2pc";
13052
+ const GroupTitleStyle = "g1qw3bxx";
13053
+ const FullTabContentStyle = "flfewds";
13054
+ const FieldWrapperStyle = "f1c7cta8";
13055
+ const TabContentStyle = "t1pt61xk";
13056
+ const ValueStyle = "v1to6fie";
13057
+ const TabsStyle = "tca5959";
13058
+ const KindTagStyle = "k3dcesi";
13059
+ function ShowGroupComponent(props) {
13060
+ const {
13061
+ title,
13062
+ className,
13063
+ children,
13064
+ operationEle
13065
+ } = props;
13066
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
13067
+ className: cx_default(GroupStyle, className),
13068
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
13069
+ className: cx_default(Typo.Heading.h2_bold_title, GroupTitleStyle),
13070
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
13071
+ children: title
13072
+ }), operationEle]
13073
+ }), children]
13074
+ });
13075
+ }
13076
+ function BasicShowGroupComponent(props) {
13077
+ const {
13078
+ children
13079
+ } = props;
13080
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
13081
+ className: BasicGroupStyle,
13082
+ children
13083
+ });
13084
+ }
13085
+ const ShowContentView = (props) => {
13086
+ var _a, _b, _c, _d;
13087
+ const {
13088
+ id,
13089
+ resourceName,
13090
+ showConfig,
13091
+ formatter,
13092
+ children,
13093
+ Dropdown: Dropdown2 = K8sDropdown,
13094
+ hideBackButton = false,
13095
+ canCollapseTabs = false
13096
+ } = props;
13097
+ const {
13098
+ queryResult
13099
+ } = useShow({
13100
+ id,
13101
+ resource: resourceName,
13102
+ errorNotification: false
13103
+ });
13104
+ const {
13105
+ t: t2
13106
+ } = useTranslation();
13107
+ const {
13108
+ data: data2
13109
+ } = queryResult;
13110
+ const navigation = useNavigation();
13111
+ const go = useGo();
13112
+ const openForm = useOpenForm();
13113
+ const Component = useContext(ComponentContext);
13114
+ const configs = useContext(ConfigsContext);
13115
+ const config = configs[resourceName];
13116
+ const Tabs$12 = Component.Tabs || Tabs;
13117
+ if (!(data2 == null ? void 0 : data2.data)) {
13118
+ return null;
13119
+ }
13120
+ const model = data2.data;
13121
+ const record = formatter ? formatter(model) : data2 == null ? void 0 : data2.data;
13122
+ function renderFields(fields, areaType, hasCol = true) {
13123
+ if (!record)
13124
+ return null;
13125
+ return fields.map((field) => {
13126
+ if (field.hidden)
13127
+ return null;
13128
+ let content;
13129
+ const value2 = get$2(record, field.path);
13130
+ if (field.renderContent) {
13131
+ content = field.renderContent(value2, record, field);
13132
+ } else {
13133
+ content = get$2(record, field.path);
13134
+ }
13135
+ return hasCol ? /* @__PURE__ */ jsxRuntimeExports.jsx(Col, {
13136
+ flex: areaType === AreaType.Inline ? "none" : "",
13137
+ span: field.col || 24,
13138
+ className: "czyzuo8",
13139
+ children: field.render ? field.render(value2, record, field) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
13140
+ className: FieldWrapperStyle,
13141
+ children: [field.title && /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
13142
+ className: Typo.Label.l4_regular_title,
13143
+ style: {
13144
+ width: field.labelWidth || "165px",
13145
+ marginRight: 8,
13146
+ flexShrink: 0,
13147
+ color: "#2C385299"
13148
+ },
13149
+ children: field.title
13150
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
13151
+ style: {
13152
+ flex: 1,
13153
+ minWidth: 0
13154
+ },
13155
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
13156
+ className: cx_default(Typo.Label.l4_regular_title, ValueStyle),
13157
+ value: content,
13158
+ useOverflow: false
13159
+ })
13160
+ })]
13161
+ })
13162
+ }, field.key) : /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
13163
+ style: {
13164
+ height: "100%"
13165
+ },
13166
+ value: content,
13167
+ useOverflow: false
13168
+ });
13169
+ });
13170
+ }
13171
+ function renderGroup(group, isBasicGroup = false) {
13172
+ let GroupContainer = React__default.Fragment;
13173
+ if (isBasicGroup) {
13174
+ GroupContainer = BasicShowGroupComponent;
13175
+ } else if (group.title) {
13176
+ GroupContainer = ShowGroupComponent;
13177
+ }
13178
+ const FieldContainer = group.title ? Row : React__default.Fragment;
13179
+ const groupContainerProps = group.title ? {
13180
+ title: group.title || ""
13181
+ } : {};
13182
+ const fieldContainerProps = group.title ? {
13183
+ gutter: [24, 8]
13184
+ } : {};
13185
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(GroupContainer, {
13186
+ ...groupContainerProps,
13187
+ children: group.areas.map((area, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
13188
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx(FieldContainer, {
13189
+ ...fieldContainerProps,
13190
+ children: renderFields(area.fields, area.type, !!group.title)
13191
+ }, index2), index2 !== group.areas.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, {
13192
+ style: {
13193
+ margin: "8px 0 12px 0"
13194
+ }
13195
+ }) : null]
13196
+ }))
13197
+ }, group.title);
13198
+ }
13199
+ const stateDisplay = get$2(record, "stateDisplay");
13200
+ const topBar = /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
13201
+ className: ToolBarWrapper,
13202
+ children: [!hideBackButton && /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
13203
+ className: cx_default(Typo.Label.l4_bold, BackButton),
13204
+ onClick: () => {
13205
+ go({
13206
+ to: navigation.listUrl(resourceName)
13207
+ });
13208
+ },
13209
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, {
13210
+ src: ArrowChevronLeft16BoldTertiaryIcon,
13211
+ hoverSrc: ArrowChevronLeftSmall16BoldBlueIcon,
13212
+ style: {
13213
+ marginRight: 4
13214
+ },
13215
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
13216
+ className: "button-text",
13217
+ children: (config == null ? void 0 : config.displayName) || resourceName
13218
+ })
13219
+ })
13220
+ }), /* @__PURE__ */ jsxRuntimeExports.jsxs(Space, {
13221
+ className: TopBarStyle,
13222
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
13223
+ style: {
13224
+ display: "flex"
13225
+ },
13226
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Tag.NameTag, {
13227
+ className: KindTagStyle,
13228
+ children: config.kind
13229
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
13230
+ className: cx_default(Typo.Display.d2_regular_title, NameStyle),
13231
+ children: ((_a = showConfig.displayName) == null ? void 0 : _a.call(showConfig, record)) || ((_b = record == null ? void 0 : record.metadata) == null ? void 0 : _b.name)
13232
+ }), stateDisplay ? /* @__PURE__ */ jsxRuntimeExports.jsx(StateTag, {
13233
+ state: stateDisplay,
13234
+ customResourceStateMap: showConfig.resourceStateMap
13235
+ }) : void 0]
13236
+ }), /* @__PURE__ */ jsxRuntimeExports.jsxs(Space, {
13237
+ children: [(_c = showConfig.renderExtraButton) == null ? void 0 : _c.call(showConfig, record), !config.hideEdit ? /* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
13238
+ resource: resourceName,
13239
+ action: AccessControlAuth.Edit,
13240
+ params: {
13241
+ namespace: record.namespace
13242
+ },
13243
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
13244
+ style: {
13245
+ marginRight: 8
13246
+ },
13247
+ onClick: () => openForm({
13248
+ id
13249
+ }),
13250
+ children: ((_d = config.formConfig) == null ? void 0 : _d.formType) === FormType.FORM ? t2("dovetail.edit") : t2("dovetail.edit_yaml")
13251
+ })
13252
+ }) : null, /* @__PURE__ */ jsxRuntimeExports.jsx(Dropdown2, {
13253
+ record,
13254
+ size: "large"
13255
+ })]
13256
+ })]
13257
+ })]
13258
+ });
13259
+ const tabs = /* @__PURE__ */ jsxRuntimeExports.jsx(Tabs$12, {
13260
+ tabs: (showConfig.tabs || []).map((tab, tabIndex) => {
13261
+ var _a2;
13262
+ return {
13263
+ title: tab.title,
13264
+ key: tab.key,
13265
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
13266
+ className: cx_default(TabContentStyle, tab.groups.length <= 1 && tabIndex !== 0 && FullTabContentStyle),
13267
+ children: (_a2 = tab.groups) == null ? void 0 : _a2.map((group) => renderGroup(group, false))
13268
+ })
13269
+ };
13270
+ }),
13271
+ className: TabsStyle
13272
+ });
13273
+ const basicInfo = showConfig.basicGroup ? renderGroup(showConfig.basicGroup, true) : null;
13274
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
13275
+ className: ShowContentWrapperStyle,
13276
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Space, {
13277
+ direction: "vertical",
13278
+ className: ShowContentHeaderStyle,
13279
+ children: topBar
13280
+ }), basicInfo, canCollapseTabs ? /* @__PURE__ */ jsxRuntimeExports.jsx(CollapseTabs, {
13281
+ children: tabs
13282
+ }) : tabs, children]
13283
+ });
13284
+ };
13285
+ const CollapseTabs = (props) => {
13286
+ const [isCollapsed, setIsCollapsed] = useState(true);
13287
+ const {
13288
+ t: t2
13289
+ } = useTranslation();
13290
+ if (isCollapsed) {
13291
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
13292
+ style: {
13293
+ display: "flex"
13294
+ },
13295
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
13296
+ style: {
13297
+ margin: "auto",
13298
+ cursor: "pointer"
13299
+ },
13300
+ type: "quiet",
13301
+ onClick: () => setIsCollapsed((v) => !v),
13302
+ suffixIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, {
13303
+ src: ArrowChevronUp16BoldSecondaryIcon
13304
+ }),
13305
+ children: t2("dovetail.view_all_info")
13306
+ })
13307
+ });
13308
+ } else {
13309
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
13310
+ children: [props.children, /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
13311
+ style: {
13312
+ display: "flex"
13313
+ },
13314
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
13315
+ style: {
13316
+ margin: "auto",
13317
+ cursor: "pointer"
13318
+ },
13319
+ type: "quiet",
13320
+ onClick: () => setIsCollapsed((v) => !v),
13321
+ suffixIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, {
13322
+ src: ArrowBoldDown16Icon
13323
+ }),
13324
+ children: t2("dovetail.collapse")
13325
+ })
13326
+ })]
13327
+ });
13328
+ }
13329
+ };
13330
+ const ShowContent = (props) => {
13331
+ var _a;
13332
+ const { showConfig, formatter, Dropdown: Dropdown2 = K8sDropdown, children, canCollapseTabs } = props;
13333
+ const parsed = useParsed();
13334
+ const { resource } = useResource();
13335
+ const id = (_a = parsed == null ? void 0 : parsed.params) == null ? void 0 : _a.id;
13336
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
13337
+ ShowContentView,
13338
+ {
13339
+ id,
13340
+ resourceName: (resource == null ? void 0 : resource.name) || "",
13341
+ showConfig,
13342
+ formatter,
13343
+ Dropdown: Dropdown2,
13344
+ canCollapseTabs,
13345
+ children
13346
+ }
13347
+ );
13348
+ };
13139
13349
  const PageShow = (props) => {
13140
13350
  var _a;
13141
13351
  const parsed = useParsed();
@@ -13185,7 +13395,7 @@ const PageShow = (props) => {
13185
13395
  nav.list(resource);
13186
13396
  }
13187
13397
  }, [isError, nav, resource, queryResult, parsed, msg, notExistMsg, isLoading]);
13188
- return isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loading, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(ShowContent, { ...props });
13398
+ return isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loading, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(ShowContent, { ...props, children: props.children });
13189
13399
  };
13190
13400
  const index_az4wrx = "";
13191
13401
  const WrapperStyle$2 = "w1akirqw";
@@ -16237,7 +16447,7 @@ const PlainCodeStyle = "pqch97v";
16237
16447
  const ErrorMsgStyle = "eh2qjnl";
16238
16448
  const ErrorWrapperStyle = "e19q2bnp";
16239
16449
  const YamlEditorStyle = "y16u5v3w";
16240
- const MonacoYamlEditor = React__default.lazy(() => import("./MonacoYamlEditor-5e4c98ce.js"));
16450
+ const MonacoYamlEditor = React__default.lazy(() => import("./MonacoYamlEditor-be20caed.js"));
16241
16451
  const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-7de94ad2.js"));
16242
16452
  const YamlEditorComponent = forwardRef(
16243
16453
  function YamlEditorComponent2(props, ref) {
@@ -16265,20 +16475,18 @@ const YamlEditorComponent = forwardRef(
16265
16475
  const editorInstance = useRef();
16266
16476
  const [copyTooltip, setCopyTooltip] = useState(t2("dovetail.copy"));
16267
16477
  const [resetTooltip, setResetTooltip] = useState(t2("dovetail.reset_arguments"));
16268
- useImperativeHandle(ref, () => {
16269
- return {
16270
- setValue: _setValue,
16271
- setEditorValue: (value22) => {
16272
- var _a, _b;
16273
- (_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(value22);
16274
- },
16275
- getEditorValue: () => {
16276
- var _a;
16277
- return ((_a = editorInstance.current) == null ? void 0 : _a.getValue()) ?? "";
16278
- },
16279
- getEditorInstance: () => editorInstance.current || null
16280
- };
16281
- });
16478
+ const defaultValueString = useMemo(() => {
16479
+ if (typeof defaultValue === "string") {
16480
+ return defaultValue;
16481
+ }
16482
+ return yaml$2.dump(defaultValue);
16483
+ }, [defaultValue]);
16484
+ const _valueString = useMemo(() => {
16485
+ if (typeof _value === "string") {
16486
+ return _value;
16487
+ }
16488
+ return yaml$2.dump(_value);
16489
+ }, [_value]);
16282
16490
  const onChange = useCallback(
16283
16491
  (newVal) => {
16284
16492
  var _a;
@@ -16301,7 +16509,7 @@ const YamlEditorComponent = forwardRef(
16301
16509
  (editor) => {
16302
16510
  var _a, _b, _c;
16303
16511
  if (editor.getValue() !== _value) {
16304
- (_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(_value);
16512
+ (_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(_valueString);
16305
16513
  }
16306
16514
  (_c = props.onEditorCreate) == null ? void 0 : _c.call(props, editor);
16307
16515
  },
@@ -16310,13 +16518,29 @@ const YamlEditorComponent = forwardRef(
16310
16518
  const getInstance = useCallback((ins) => {
16311
16519
  editorInstance.current = ins;
16312
16520
  }, []);
16521
+ const getEditorValue = useCallback(() => {
16522
+ var _a;
16523
+ return ((_a = editorInstance.current) == null ? void 0 : _a.getValue()) ?? "";
16524
+ }, []);
16313
16525
  useEffect(() => {
16314
16526
  var _a, _b;
16315
- if (value2 !== void 0 && value2 !== _value) {
16527
+ if (value2 !== void 0 && !isEqual(value2, _value)) {
16528
+ const valueString = typeof value2 === "string" ? value2 : yaml$2.dump(value2);
16316
16529
  _setValue(value2);
16317
- (_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(value2);
16530
+ (_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(valueString);
16318
16531
  }
16319
16532
  }, [value2]);
16533
+ useImperativeHandle(ref, () => {
16534
+ return {
16535
+ setValue: _setValue,
16536
+ setEditorValue: (value22) => {
16537
+ var _a, _b;
16538
+ (_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(value22);
16539
+ },
16540
+ getEditorValue,
16541
+ getEditorInstance: () => editorInstance.current || null
16542
+ };
16543
+ });
16320
16544
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
16321
16545
  "div",
16322
16546
  {
@@ -16370,7 +16594,7 @@ const YamlEditorComponent = forwardRef(
16370
16594
  iconHeight: 16,
16371
16595
  onClick: () => {
16372
16596
  if (!isCollapsed) {
16373
- copyToClipboard(_value);
16597
+ copyToClipboard(getEditorValue());
16374
16598
  setCopyTooltip(t2("dovetail.copied"));
16375
16599
  }
16376
16600
  }
@@ -16402,7 +16626,7 @@ const YamlEditorComponent = forwardRef(
16402
16626
  onClick: () => {
16403
16627
  var _a;
16404
16628
  if (!isCollapsed) {
16405
- (_a = editorInstance.current) == null ? void 0 : _a.setValue(defaultValue);
16629
+ (_a = editorInstance.current) == null ? void 0 : _a.setValue(defaultValueString);
16406
16630
  setResetTooltip(t2("dovetail.already_reset"));
16407
16631
  }
16408
16632
  }
@@ -16463,7 +16687,7 @@ const YamlEditorComponent = forwardRef(
16463
16687
  zIndex: 1
16464
16688
  },
16465
16689
  children: [
16466
- /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: _value }), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: isDiff ? "none" : "block" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
16690
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: _valueString }), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: isDiff ? "none" : "block" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
16467
16691
  MonacoYamlEditor,
16468
16692
  {
16469
16693
  id: props.id,
@@ -16479,12 +16703,12 @@ const YamlEditorComponent = forwardRef(
16479
16703
  isScrollOnFocus
16480
16704
  }
16481
16705
  ) }) }),
16482
- isDiff ? /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: _value }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
16706
+ isDiff ? /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: _valueString }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
16483
16707
  MonacoYamlDiffEditor,
16484
16708
  {
16485
16709
  id: props.id,
16486
- origin: defaultValue,
16487
- modified: _value,
16710
+ origin: defaultValueString,
16711
+ modified: _valueString,
16488
16712
  height
16489
16713
  }
16490
16714
  ) }) : null
@@ -18761,7 +18985,8 @@ class ModelPlugin {
18761
18985
  Node: NodeModel,
18762
18986
  StorageClass: StorageClassModel,
18763
18987
  PersistentVolume: PersistentVolumeModel,
18764
- PersistentVolumeClaim: PersistentVolumeClaimModel
18988
+ PersistentVolumeClaim: PersistentVolumeClaimModel,
18989
+ ReplicaSet: ReplicaSetModel
18765
18990
  })
18766
18991
  ));
18767
18992
  }
@@ -18982,7 +19207,7 @@ export {
18982
19207
  CronjobJobsTable as ay,
18983
19208
  KeyValue as az,
18984
19209
  useSchema as b,
18985
- Tags as b$,
19210
+ ServiceInClusterAccessComponent as b$,
18986
19211
  PodSelectorField as b0,
18987
19212
  PortsTableField as b1,
18988
19213
  DurationField as b2,
@@ -18995,31 +19220,31 @@ export {
18995
19220
  PVPhaseField as b9,
18996
19221
  StorageClassPvGroup as bA,
18997
19222
  ResourceTableGroup as bB,
18998
- ShowGroupComponent as bC,
18999
- ShowContent as bD,
19000
- DeleteManyButton as bE,
19001
- ListPage as bF,
19002
- StateTag as bG,
19003
- DrawerShow as bH,
19004
- Menu as bI,
19005
- Table as bJ,
19006
- EditButton as bK,
19007
- ReferenceLink as bL,
19008
- ResourceLink as bM,
19009
- NS_STORE_KEY as bN,
19010
- ALL_NS as bO,
19011
- useNamespacesFilter as bP,
19012
- NamespacesFilter as bQ,
19013
- FormModal as bR,
19014
- renderCommonFormFiled as bS,
19015
- RefineFormContent as bT,
19016
- RefineFormPage as bU,
19017
- SchemaStrategy as bV,
19018
- YamlForm as bW,
19019
- useRefineForm as bX,
19020
- FormItemLayout as bY,
19021
- ServiceInClusterAccessComponent as bZ,
19022
- ServiceOutClusterAccessComponent as b_,
19223
+ ShowContent as bC,
19224
+ ShowGroupComponent as bD,
19225
+ BasicShowGroupComponent as bE,
19226
+ ShowContentView as bF,
19227
+ DeleteManyButton as bG,
19228
+ ListPage as bH,
19229
+ StateTag as bI,
19230
+ DrawerShow as bJ,
19231
+ Menu as bK,
19232
+ Table as bL,
19233
+ EditButton as bM,
19234
+ ReferenceLink as bN,
19235
+ ResourceLink as bO,
19236
+ NS_STORE_KEY as bP,
19237
+ ALL_NS as bQ,
19238
+ useNamespacesFilter as bR,
19239
+ NamespacesFilter as bS,
19240
+ FormModal as bT,
19241
+ renderCommonFormFiled as bU,
19242
+ RefineFormContent as bV,
19243
+ RefineFormPage as bW,
19244
+ SchemaStrategy as bX,
19245
+ YamlForm as bY,
19246
+ useRefineForm as bZ,
19247
+ FormItemLayout as b_,
19023
19248
  PVVolumeModeField as ba,
19024
19249
  PVAccessModeField as bb,
19025
19250
  PVCPodsField as bc,
@@ -19047,91 +19272,94 @@ export {
19047
19272
  NetworkPolicyIngressRulesGroup as by,
19048
19273
  NetworkPolicyEgressRulesGroup as bz,
19049
19274
  useDeleteModal as c,
19050
- ServiceModel as c$,
19051
- TextTags as c0,
19052
- PodLog as c1,
19053
- NetworkPolicyRulesViewer as c2,
19054
- PVVolumeModeDisplay as c3,
19055
- Tabs as c4,
19056
- ResourceSelect as c5,
19057
- PodShellModal as c6,
19058
- PodShell as c7,
19059
- ResourceTable as c8,
19060
- ErrorWrapper as c9,
19061
- STORAGE_CLASS_INIT_VALUE as cA,
19062
- PV_INIT_VALUE as cB,
19063
- PVC_INIT_VALUE as cC,
19064
- ResourceState as cD,
19065
- AccessControlAuth as cE,
19066
- Dovetail as cF,
19067
- RESOURCE_GROUP as cG,
19068
- FormContainerType as cH,
19069
- FormType as cI,
19070
- FormMode as cJ,
19071
- ComponentContext as cK,
19072
- GlobalStoreContext as cL,
19073
- ConfigsContext as cM,
19074
- IngressModel as cN,
19075
- NetworkPolicyModel as cO,
19076
- JobModel as cP,
19077
- WorkloadModel as cQ,
19078
- WorkloadBaseModel as cR,
19079
- PodModel as cS,
19080
- PodMetricsModel as cT,
19081
- ResourceModel as cU,
19082
- CronJobModel as cV,
19083
- EventModel as cW,
19084
- DeploymentModel as cX,
19085
- DaemonSetModel as cY,
19086
- StatefulSetModel as cZ,
19087
- ServiceTypeEnum as c_,
19088
- ErrorContentType as ca,
19089
- KeyValueTableForm as cb,
19090
- BASE_INIT_VALUE as cc,
19091
- DEPLOYMENT_INIT_VALUE as cd,
19092
- CRONJOB_INIT_VALUE as ce,
19093
- DAEMONSET_INIT_VALUE as cf,
19094
- JOB_INIT_VALUE as cg,
19095
- STATEFULSET_INIT_VALUE as ch,
19096
- POD_INIT_VALUE as ci,
19097
- SERVICE_CLUSTER_IP_INIT_VALUE as cj,
19098
- SERVICE_NODE_PORT_INIT_VALUE as ck,
19099
- SERVICE_LOAD_BALANCER_INIT_VALUE as cl,
19100
- SERVICE_EXTERNAL_NAME_INIT_VALUE as cm,
19101
- SERVICE_HEADLESS_INIT_VALUE as cn,
19102
- INGRESS_INIT_VALUE as co,
19103
- NETWORK_POLICY_INIT_VALUE as cp,
19104
- CONFIG_MAP_INIT_VALUE as cq,
19105
- SERVER_INSTANCE_INIT_VALUE as cr,
19106
- REDEPLOY_TIMESTAMP_KEY as cs,
19107
- SECRET_OPAQUE_INIT_VALUE as ct,
19108
- SECRET_IMAGE_REPO_INIT_VALUE as cu,
19109
- SECRET_BASIC_AUTH_INIT_VALUE as cv,
19110
- SECRET_SSH_AUTH_INIT_VALUE as cw,
19111
- SECRET_TLS_INIT_VALUE as cx,
19112
- SECRET_CUSTOM_INIT_VALUE as cy,
19113
- NODE_INIT_VALUE as cz,
19275
+ DaemonSetModel as c$,
19276
+ ServiceOutClusterAccessComponent as c0,
19277
+ Tags as c1,
19278
+ TextTags as c2,
19279
+ PodLog as c3,
19280
+ NetworkPolicyRulesViewer as c4,
19281
+ PVVolumeModeDisplay as c5,
19282
+ Tabs as c6,
19283
+ ResourceSelect as c7,
19284
+ PodShellModal as c8,
19285
+ PodShell as c9,
19286
+ SECRET_CUSTOM_INIT_VALUE as cA,
19287
+ NODE_INIT_VALUE as cB,
19288
+ STORAGE_CLASS_INIT_VALUE as cC,
19289
+ PV_INIT_VALUE as cD,
19290
+ PVC_INIT_VALUE as cE,
19291
+ ResourceState as cF,
19292
+ AccessControlAuth as cG,
19293
+ Dovetail as cH,
19294
+ RESOURCE_GROUP as cI,
19295
+ FormContainerType as cJ,
19296
+ FormType as cK,
19297
+ FormMode as cL,
19298
+ ComponentContext as cM,
19299
+ GlobalStoreContext as cN,
19300
+ ConfigsContext as cO,
19301
+ IngressModel as cP,
19302
+ NetworkPolicyModel as cQ,
19303
+ JobModel as cR,
19304
+ WorkloadModel as cS,
19305
+ WorkloadBaseModel as cT,
19306
+ PodModel as cU,
19307
+ PodMetricsModel as cV,
19308
+ ResourceModel as cW,
19309
+ ReplicaSetModel as cX,
19310
+ CronJobModel as cY,
19311
+ EventModel as cZ,
19312
+ DeploymentModel as c_,
19313
+ ResourceTable as ca,
19314
+ ErrorWrapper as cb,
19315
+ ErrorContentType as cc,
19316
+ KeyValueTableForm as cd,
19317
+ BASE_INIT_VALUE as ce,
19318
+ DEPLOYMENT_INIT_VALUE as cf,
19319
+ CRONJOB_INIT_VALUE as cg,
19320
+ DAEMONSET_INIT_VALUE as ch,
19321
+ JOB_INIT_VALUE as ci,
19322
+ STATEFULSET_INIT_VALUE as cj,
19323
+ POD_INIT_VALUE as ck,
19324
+ SERVICE_CLUSTER_IP_INIT_VALUE as cl,
19325
+ SERVICE_NODE_PORT_INIT_VALUE as cm,
19326
+ SERVICE_LOAD_BALANCER_INIT_VALUE as cn,
19327
+ SERVICE_EXTERNAL_NAME_INIT_VALUE as co,
19328
+ SERVICE_HEADLESS_INIT_VALUE as cp,
19329
+ INGRESS_INIT_VALUE as cq,
19330
+ NETWORK_POLICY_INIT_VALUE as cr,
19331
+ CONFIG_MAP_INIT_VALUE as cs,
19332
+ SERVER_INSTANCE_INIT_VALUE as ct,
19333
+ REDEPLOY_TIMESTAMP_KEY as cu,
19334
+ SECRET_OPAQUE_INIT_VALUE as cv,
19335
+ SECRET_IMAGE_REPO_INIT_VALUE as cw,
19336
+ SECRET_BASIC_AUTH_INIT_VALUE as cx,
19337
+ SECRET_SSH_AUTH_INIT_VALUE as cy,
19338
+ SECRET_TLS_INIT_VALUE as cz,
19114
19339
  dovetailRefineI18n as d,
19115
- NodeRole as d0,
19116
- NodeModel as d1,
19117
- StorageClassModel as d2,
19118
- PersistentVolumeModel as d3,
19119
- PersistentVolumeClaimModel as d4,
19120
- ProviderPlugins as d5,
19121
- ModelPlugin as d6,
19122
- modelPlugin as d7,
19123
- RelationPlugin as d8,
19124
- relationPlugin as d9,
19125
- generateValueFromSchema as da,
19126
- generateSchemaTypeValue as db,
19127
- resolveRef as dc,
19128
- getApiVersion as dd,
19129
- pruneBeforeEdit as de,
19130
- matchSelector as df,
19131
- getResourceNameByKind as dg,
19132
- validateDnsSubdomain as dh,
19133
- validateLabelKey as di,
19134
- validateLabelValue as dj,
19340
+ StatefulSetModel as d0,
19341
+ ServiceTypeEnum as d1,
19342
+ ServiceModel as d2,
19343
+ NodeRole as d3,
19344
+ NodeModel as d4,
19345
+ StorageClassModel as d5,
19346
+ PersistentVolumeModel as d6,
19347
+ PersistentVolumeClaimModel as d7,
19348
+ ProviderPlugins as d8,
19349
+ ModelPlugin as d9,
19350
+ modelPlugin as da,
19351
+ RelationPlugin as db,
19352
+ relationPlugin as dc,
19353
+ generateValueFromSchema as dd,
19354
+ generateSchemaTypeValue as de,
19355
+ resolveRef as df,
19356
+ getApiVersion as dg,
19357
+ pruneBeforeEdit as dh,
19358
+ matchSelector as di,
19359
+ getResourceNameByKind as dj,
19360
+ validateDnsSubdomain as dk,
19361
+ validateLabelKey as dl,
19362
+ validateLabelValue as dm,
19135
19363
  useDeleteModalOnly as e,
19136
19364
  useFailedModal as f,
19137
19365
  NameSpaceColumnRenderer as g,