@dovetail-v2/refine 0.3.12-alpha.2 → 0.3.13-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/refine.cjs CHANGED
@@ -568,7 +568,7 @@ const realtime_log$1 = "Real-time logs";
568
568
  const previous_log$1 = "Last startup logs";
569
569
  const auto_wrap$1 = "Auto wrap";
570
570
  const container_num$1 = "Containers";
571
- const edit_resource_success$1 = "{{resource}} {{name}} was edited successfully";
571
+ const edit_resource_success$1 = "{{kind}} {{name}} was edited successfully";
572
572
  const redeploy_success_toast$1 = "{{kind}} {{name}} was redeployed successfully";
573
573
  const redeploy_failed_toast$1 = "Failed to redeploy {{kind}} {{name}}";
574
574
  const pause_success_toast$1 = "Successfully suspended";
@@ -1040,7 +1040,7 @@ const expand = "展开";
1040
1040
  const fold = "收起";
1041
1041
  const rule = "规则";
1042
1042
  const default_backend = "默认后端";
1043
- const ingress_class = "Ingress 类";
1043
+ const ingress_class = "IngressClass";
1044
1044
  const port = "端口";
1045
1045
  const pod_ready_num = "Pod 就绪数量";
1046
1046
  const pod_complete_num = "Pod 完成数量";
@@ -1222,6 +1222,9 @@ const node_port_duplicated = "端口已被占用。";
1222
1222
  const all = "全部";
1223
1223
  const optional_with_bracket = "(选填)";
1224
1224
  const label_annotations = "标签与注解";
1225
+ const target_service = "目标服务";
1226
+ const target_service_port = "目标服务端口";
1227
+ const select_workload = "选择工作负载";
1225
1228
  const dovetail = {
1226
1229
  copy,
1227
1230
  reset_arguments,
@@ -1487,7 +1490,10 @@ const dovetail = {
1487
1490
  node_port_duplicated,
1488
1491
  all,
1489
1492
  optional_with_bracket,
1490
- label_annotations
1493
+ label_annotations,
1494
+ target_service,
1495
+ target_service_port,
1496
+ select_workload
1491
1497
  };
1492
1498
  const ZH = {
1493
1499
  dovetail
@@ -8703,7 +8709,7 @@ class IngressModel extends ResourceModel {
8703
8709
  getFlattenedRules(services) {
8704
8710
  var _a, _b, _c, _d;
8705
8711
  const protocal = !!this._rawYaml.spec.tls ? "https" : "http";
8706
- const servicePort = (_c = (_b = (_a = services.find((s2) => {
8712
+ const servicePort = (_c = (_b = (_a = services == null ? void 0 : services.find((s2) => {
8707
8713
  var _a2, _b2;
8708
8714
  return ((_a2 = s2.metadata) == null ? void 0 : _a2.name) === "contour-envoy" && ((_b2 = s2.spec) == null ? void 0 : _b2.type) === "NodePort";
8709
8715
  })) == null ? void 0 : _a.spec) == null ? void 0 : _b.ports) == null ? void 0 : _c.find((p) => p.name === protocal);
@@ -9335,17 +9341,70 @@ var ResourceState = /* @__PURE__ */ ((ResourceState2) => {
9335
9341
  ResourceState2["DELETING"] = "deleting";
9336
9342
  return ResourceState2;
9337
9343
  })(ResourceState || {});
9344
+ function isLabelSelector(selector) {
9345
+ if (!selector || typeof selector !== "object") {
9346
+ return false;
9347
+ }
9348
+ const s2 = selector;
9349
+ if ("matchExpressions" in s2) {
9350
+ return true;
9351
+ }
9352
+ if ("matchLabels" in s2) {
9353
+ const ml = s2.matchLabels;
9354
+ return typeof ml === "object" && ml !== null;
9355
+ }
9356
+ return false;
9357
+ }
9338
9358
  function matchSelector(pod2, selector, namespace2 = "default") {
9339
- var _a, _b, _c, _d;
9340
- let match = true;
9341
- if (selector) {
9342
- for (const key2 in selector.matchLabels) {
9343
- if (!((_b = (_a = pod2.metadata) == null ? void 0 : _a.labels) == null ? void 0 : _b[key2]) || ((_c = pod2.metadata.labels) == null ? void 0 : _c[key2]) !== selector.matchLabels[key2]) {
9344
- match = false;
9359
+ var _a, _b;
9360
+ if (((_a = pod2.metadata) == null ? void 0 : _a.namespace) !== namespace2) {
9361
+ return false;
9362
+ }
9363
+ if (!selector || Object.keys(selector).length === 0) {
9364
+ return true;
9365
+ }
9366
+ const podLabels = ((_b = pod2.metadata) == null ? void 0 : _b.labels) || {};
9367
+ let matchLabels;
9368
+ let matchExpressions;
9369
+ if (isLabelSelector(selector)) {
9370
+ matchLabels = selector.matchLabels;
9371
+ matchExpressions = selector.matchExpressions;
9372
+ } else {
9373
+ matchLabels = selector;
9374
+ }
9375
+ if (matchLabels) {
9376
+ for (const key2 in matchLabels) {
9377
+ if (podLabels[key2] !== matchLabels[key2]) {
9378
+ return false;
9345
9379
  }
9346
9380
  }
9347
9381
  }
9348
- return match && ((_d = pod2.metadata) == null ? void 0 : _d.namespace) === namespace2;
9382
+ if (matchExpressions) {
9383
+ for (const req of matchExpressions) {
9384
+ const { key: key2, operator, values } = req;
9385
+ const labelValue = podLabels[key2];
9386
+ const hasLabel = Object.prototype.hasOwnProperty.call(podLabels, key2);
9387
+ switch (operator) {
9388
+ case "In":
9389
+ if (!hasLabel || !(values == null ? void 0 : values.includes(labelValue)))
9390
+ return false;
9391
+ break;
9392
+ case "NotIn":
9393
+ if (hasLabel && (values == null ? void 0 : values.includes(labelValue)))
9394
+ return false;
9395
+ break;
9396
+ case "Exists":
9397
+ if (!hasLabel)
9398
+ return false;
9399
+ break;
9400
+ case "DoesNotExist":
9401
+ if (hasLabel)
9402
+ return false;
9403
+ break;
9404
+ }
9405
+ }
9406
+ }
9407
+ return true;
9349
9408
  }
9350
9409
  class WorkloadBaseModel extends ResourceModel {
9351
9410
  constructor(_rawYaml, _globalStore) {
@@ -10306,13 +10365,20 @@ const ConditionsTable = ({ conditions = [] }) => {
10306
10365
  width: 403
10307
10366
  }
10308
10367
  ];
10309
- const { data: finalData, currentPage, onPageChange, onSorterChange } = useTableData({
10368
+ const {
10369
+ data: finalData,
10370
+ currentPage,
10371
+ onPageChange,
10372
+ onSorterChange
10373
+ } = useTableData({
10310
10374
  data: conditionsWithId,
10311
10375
  columns,
10312
- defaultSorters: [{
10313
- field: "lastUpdateTime",
10314
- order: "desc"
10315
- }]
10376
+ defaultSorters: [
10377
+ {
10378
+ field: "lastUpdateTime",
10379
+ order: "desc"
10380
+ }
10381
+ ]
10316
10382
  });
10317
10383
  const currentSize = 10;
10318
10384
  if (conditionsWithId.length === 0) {
@@ -10320,7 +10386,7 @@ const ConditionsTable = ({ conditions = [] }) => {
10320
10386
  WidgetErrorContent,
10321
10387
  {
10322
10388
  errorText: t2("dovetail.no_resource", { kind: t2("dovetail.condition") }),
10323
- type: ErrorContentType.Card
10389
+ type: ErrorContentType.List
10324
10390
  }
10325
10391
  );
10326
10392
  }
@@ -10665,7 +10731,7 @@ function K8sDropdown(props) {
10665
10731
  const configs = React.useContext(ConfigsContext);
10666
10732
  const resourceName = getResourceNameByKind(record.kind || "", configs);
10667
10733
  const config = configs[resourceName || ""];
10668
- const { t: t2 } = common.useTranslation();
10734
+ const { t: t2, i18n: i18n2 } = common.useTranslation();
10669
10735
  const { openDeleteConfirmModal } = useDeleteModal({ resourceName: resourceName || "" });
10670
10736
  const download2 = useDownloadYAML();
10671
10737
  const openForm = useOpenForm();
@@ -10689,7 +10755,10 @@ function K8sDropdown(props) {
10689
10755
  eagle.Dropdown,
10690
10756
  {
10691
10757
  overlay: /* @__PURE__ */ common.jsxRuntimeExports.jsxs(eagle.Menu, { children: [
10692
- isInShowPage || (canEditData == null ? void 0 : canEditData.can) === false || config.hideEdit ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Menu.Item, { onClick: () => openForm({ id: record.id, resourceName }), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, { src: iconsReact.EditPen16PrimaryIcon, children: formType === FormType.FORM ? t2("dovetail.edit") : t2("dovetail.edit_yaml") }) }),
10758
+ isInShowPage || (canEditData == null ? void 0 : canEditData.can) === false || config.hideEdit ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Menu.Item, { onClick: () => openForm({ id: record.id, resourceName }), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, { src: iconsReact.EditPen16PrimaryIcon, children: formType === FormType.FORM ? `${t2("dovetail.edit")}${transformResourceKindInSentence(
10759
+ (config == null ? void 0 : config.displayName) || record.kind || "",
10760
+ i18n2.language
10761
+ )}` : t2("dovetail.edit_yaml") }) }),
10693
10762
  /* @__PURE__ */ common.jsxRuntimeExports.jsx(
10694
10763
  eagle.Menu.Item,
10695
10764
  {
@@ -11020,10 +11089,17 @@ const EventsTable = ({ uid }) => {
11020
11089
  width: 120,
11021
11090
  render(value2) {
11022
11091
  const colorMap = {
11023
- "Warning": "warning",
11024
- "Normal": "green"
11092
+ Warning: "warning",
11093
+ Normal: "green"
11025
11094
  };
11026
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.StatusCapsule, { color: colorMap[value2], className: common.cx_default(StateTagStyle, "no-background"), children: i18n2.t(`dovetail.${value2.toLowerCase()}`) });
11095
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11096
+ eagle.StatusCapsule,
11097
+ {
11098
+ color: colorMap[value2],
11099
+ className: common.cx_default(StateTagStyle, "no-background"),
11100
+ children: i18n2.t(`dovetail.${value2.toLowerCase()}`)
11101
+ }
11102
+ );
11027
11103
  },
11028
11104
  sorter: CommonSorter(["type"])
11029
11105
  },
@@ -11045,32 +11121,41 @@ const EventsTable = ({ uid }) => {
11045
11121
  width: 723,
11046
11122
  sorter: CommonSorter(["note"])
11047
11123
  },
11048
- AgeColumnRenderer(i18n2, { title: i18n2.t("dovetail.last_seen"), width: 160 }, { isRelativeTime: false })
11124
+ AgeColumnRenderer(
11125
+ i18n2,
11126
+ { title: i18n2.t("dovetail.last_seen"), width: 160 },
11127
+ { isRelativeTime: false }
11128
+ )
11049
11129
  ],
11050
11130
  [i18n2]
11051
11131
  );
11052
- const params = React.useMemo(() => ({
11053
- columns,
11054
- tableProps: {
11055
- defaultSize: 50
11056
- },
11057
- useTableParams: {
11058
- resource: "events",
11059
- meta: { resourceBasePath: "/apis/events.k8s.io/v1", kind: "Event" },
11060
- filters: {
11061
- permanent: [{
11062
- operator: "and",
11063
- value: [
11132
+ const params = React.useMemo(
11133
+ () => ({
11134
+ columns,
11135
+ tableProps: {
11136
+ defaultSize: 50
11137
+ },
11138
+ useTableParams: {
11139
+ resource: "events",
11140
+ meta: { resourceBasePath: "/apis/events.k8s.io/v1", kind: "Event" },
11141
+ filters: {
11142
+ permanent: [
11064
11143
  {
11065
- field: "regarding.uid",
11066
- operator: "eq",
11067
- value: uid
11144
+ operator: "and",
11145
+ value: [
11146
+ {
11147
+ field: "regarding.uid",
11148
+ operator: "eq",
11149
+ value: uid
11150
+ }
11151
+ ]
11068
11152
  }
11069
11153
  ]
11070
- }]
11154
+ }
11071
11155
  }
11072
- }
11073
- }), [columns, uid]);
11156
+ }),
11157
+ [columns, uid]
11158
+ );
11074
11159
  const { tableProps } = useEagleTable(params);
11075
11160
  const component = React.useContext(ComponentContext);
11076
11161
  const Table2 = component.Table || Table$1;
@@ -11078,18 +11163,12 @@ const EventsTable = ({ uid }) => {
11078
11163
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11079
11164
  WidgetErrorContent,
11080
11165
  {
11081
- errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") })
11166
+ errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") }),
11167
+ type: ErrorContentType.List
11082
11168
  }
11083
11169
  );
11084
11170
  }
11085
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11086
- Table2,
11087
- {
11088
- ...tableProps,
11089
- tableKey: "events",
11090
- showMenuColumn: false
11091
- }
11092
- );
11171
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Table2, { ...tableProps, tableKey: "events", showMenuColumn: false });
11093
11172
  };
11094
11173
  const index_mvy4dx = "";
11095
11174
  const ImageWrapperStyle = "i1u1f5zp";
@@ -11181,7 +11260,10 @@ const IngressRulesTable = ({ ingress }) => {
11181
11260
  apiVersion: "v1"
11182
11261
  }
11183
11262
  });
11184
- const flattenedRules = React.useMemo(() => (serviceData == null ? void 0 : serviceData.data) ? ingress.getFlattenedRules(serviceData == null ? void 0 : serviceData.data) : [], [serviceData == null ? void 0 : serviceData.data, ingress]);
11263
+ const flattenedRules = React.useMemo(
11264
+ () => (serviceData == null ? void 0 : serviceData.data) ? ingress.getFlattenedRules(serviceData == null ? void 0 : serviceData.data) : [],
11265
+ [serviceData == null ? void 0 : serviceData.data, ingress]
11266
+ );
11185
11267
  const rows = React.useMemo(() => {
11186
11268
  return addId(flattenedRules || [], "fullPath");
11187
11269
  }, [flattenedRules]);
@@ -11212,7 +11294,7 @@ const IngressRulesTable = ({ ingress }) => {
11212
11294
  key: "serviceName",
11213
11295
  display: true,
11214
11296
  dataIndex: "serviceName",
11215
- title: t2("dovetail.backend"),
11297
+ title: t2("dovetail.target_service"),
11216
11298
  sortable: true,
11217
11299
  width: 160,
11218
11300
  render: (serviceName, record) => {
@@ -11223,14 +11305,14 @@ const IngressRulesTable = ({ ingress }) => {
11223
11305
  namespace: ingress.metadata.namespace || "default",
11224
11306
  name: serviceName
11225
11307
  }
11226
- ) : record.resourceName;
11308
+ ) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, { value: "" });
11227
11309
  }
11228
11310
  },
11229
11311
  {
11230
11312
  key: "servicePort",
11231
11313
  display: true,
11232
11314
  dataIndex: "servicePort",
11233
- title: t2("dovetail.port"),
11315
+ title: t2("dovetail.target_service_port"),
11234
11316
  width: 120,
11235
11317
  sortable: true
11236
11318
  },
@@ -11238,11 +11320,13 @@ const IngressRulesTable = ({ ingress }) => {
11238
11320
  key: "secret",
11239
11321
  display: true,
11240
11322
  dataIndex: "host",
11241
- title: "Secret",
11323
+ title: t2("dovetail.cert"),
11242
11324
  width: 160,
11243
11325
  render(host2) {
11244
11326
  var _a, _b;
11245
- const secretName = (_b = (_a = ingress._rawYaml.spec.tls) == null ? void 0 : _a.find(({ hosts }) => hosts == null ? void 0 : hosts.includes(host2))) == null ? void 0 : _b.secretName;
11327
+ const secretName = (_b = (_a = ingress._rawYaml.spec.tls) == null ? void 0 : _a.find(
11328
+ ({ hosts }) => hosts == null ? void 0 : hosts.includes(host2)
11329
+ )) == null ? void 0 : _b.secretName;
11246
11330
  return secretName ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11247
11331
  ResourceLink,
11248
11332
  {
@@ -11269,7 +11353,7 @@ const IngressRulesTable = ({ ingress }) => {
11269
11353
  WidgetErrorContent,
11270
11354
  {
11271
11355
  errorText: t2("dovetail.no_resource", { kind: t2("dovetail.rule") }),
11272
- type: ErrorContentType.Card
11356
+ type: ErrorContentType.List
11273
11357
  }
11274
11358
  );
11275
11359
  }
@@ -11299,7 +11383,8 @@ const KeyValue = (props) => {
11299
11383
  const {
11300
11384
  data: data2 = {},
11301
11385
  hideSecret,
11302
- empty: empty2
11386
+ empty: empty2,
11387
+ errorContent = ErrorContentType.List
11303
11388
  } = props;
11304
11389
  const {
11305
11390
  t: t2
@@ -11317,7 +11402,7 @@ const KeyValue = (props) => {
11317
11402
  if (!result.length) {
11318
11403
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WidgetErrorContent, {
11319
11404
  errorText: empty2 || t2("dovetail.empty"),
11320
- type: ErrorContentType.Card
11405
+ type: errorContent
11321
11406
  });
11322
11407
  }
11323
11408
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(common.jsxRuntimeExports.Fragment, {
@@ -11365,9 +11450,7 @@ function KeyValueAnnotation(props) {
11365
11450
  }) : null]
11366
11451
  });
11367
11452
  }
11368
- const KeyValueSecret_c3ji18 = "";
11369
- const ButtonStyle$1 = "b11tbgf7";
11370
- const GroupStyle$1 = "gtbyh5g";
11453
+ const KeyValueSecret_ltbqs = "";
11371
11454
  function KeyValueSecret(props) {
11372
11455
  const {
11373
11456
  data: data2 = {}
@@ -11377,26 +11460,23 @@ function KeyValueSecret(props) {
11377
11460
  } = common.useTranslation();
11378
11461
  const [hideSecret, setHideSecret] = React.useState(true);
11379
11462
  const toggleButton = Object.keys(data2).length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
11380
- type: "quiet",
11381
11463
  prefixIcon: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
11382
11464
  src: hideSecret ? iconsReact.ViewEye16GradientGrayIcon : iconsReact.EntityFilterIgnoreGradient16GrayIcon
11383
11465
  }),
11384
11466
  onClick: () => setHideSecret((v) => !v),
11385
- className: ButtonStyle$1,
11386
11467
  size: "small",
11468
+ className: "c11tbgf7",
11387
11469
  children: hideSecret ? i18n2.t("dovetail.show_data_value") : i18n2.t("dovetail.hide_data_value")
11388
11470
  }) : null;
11389
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ShowGroupWithTitleComponent, {
11390
- title: i18n2.t("dovetail.data"),
11391
- operationEle: toggleButton,
11392
- className: GroupStyle$1,
11393
- children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
11471
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
11472
+ className: "ctbyh5g",
11473
+ children: [toggleButton, /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
11394
11474
  data: data2,
11395
11475
  hideSecret,
11396
11476
  empty: i18n2.t("dovetail.no_resource", {
11397
11477
  kind: i18n2.t("dovetail.data")
11398
11478
  })
11399
- })
11479
+ })]
11400
11480
  });
11401
11481
  }
11402
11482
  function isUtf8(buffer) {
@@ -11543,6 +11623,37 @@ function _KeyValueTableForm(props, ref) {
11543
11623
  const tableFormRef = React.useRef(null);
11544
11624
  const [_value, _setValue] = React.useState(value2 || defaultValue);
11545
11625
  const [forceUpdateCount, setForceUpdateCount] = React.useState(0);
11626
+ const finalExtraAction = React.useMemo(() => {
11627
+ if (extraAction) {
11628
+ return extraAction;
11629
+ }
11630
+ if (canImportFromFile) {
11631
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Upload, {
11632
+ multiple: true,
11633
+ showUploadList: false,
11634
+ onChange: async (e2) => {
11635
+ var _a;
11636
+ const fileValue = {
11637
+ key: e2.file.name,
11638
+ value: await readFileAsBase64(e2.file.originFileObj)
11639
+ };
11640
+ let newValue = [..._value, fileValue];
11641
+ if (_value.some((v) => v.key === fileValue.key)) {
11642
+ newValue = _value.map((v) => v.key === fileValue.key ? fileValue : v);
11643
+ }
11644
+ _setValue(newValue);
11645
+ (_a = tableFormRef.current) == null ? void 0 : _a.setData(newValue);
11646
+ onChange == null ? void 0 : onChange(newValue);
11647
+ },
11648
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
11649
+ type: "link",
11650
+ size: "small",
11651
+ children: t2("dovetail.import_from_file")
11652
+ })
11653
+ });
11654
+ }
11655
+ return null;
11656
+ }, [canImportFromFile, t2, _value, onChange, extraAction]);
11546
11657
  const validate = React.useCallback(() => {
11547
11658
  return new Promise((resolve) => {
11548
11659
  var _a;
@@ -11663,7 +11774,7 @@ function _KeyValueTableForm(props, ref) {
11663
11774
  rowAddConfig: {
11664
11775
  addible: true,
11665
11776
  text: () => addButtonText,
11666
- extraAction
11777
+ extraAction: finalExtraAction
11667
11778
  },
11668
11779
  defaultData: _value,
11669
11780
  row: {
@@ -11678,29 +11789,7 @@ function _KeyValueTableForm(props, ref) {
11678
11789
  hideEmptyTable: true
11679
11790
  }), isHideLabelFormatPopover ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(LabelFormatPopover, {
11680
11791
  noValueValidation
11681
- }), canImportFromFile ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Upload, {
11682
- multiple: false,
11683
- showUploadList: false,
11684
- onChange: async (e2) => {
11685
- var _a;
11686
- const fileValue = {
11687
- key: e2.file.name,
11688
- value: await readFileAsBase64(e2.file.originFileObj)
11689
- };
11690
- let newValue = [..._value, fileValue];
11691
- if (_value.some((v) => v.key === fileValue.key)) {
11692
- newValue = _value.map((v) => v.key === fileValue.key ? fileValue : v);
11693
- }
11694
- _setValue(newValue);
11695
- (_a = tableFormRef.current) == null ? void 0 : _a.setData(newValue);
11696
- onChange == null ? void 0 : onChange(newValue);
11697
- },
11698
- children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
11699
- type: "link",
11700
- size: "small",
11701
- children: t2("dovetail.import_from_file")
11702
- })
11703
- }) : null]
11792
+ })]
11704
11793
  });
11705
11794
  }
11706
11795
  const KeyValueTableForm = React.forwardRef(_KeyValueTableForm);
@@ -12320,6 +12409,7 @@ function WorkloadReplicas({
12320
12409
  })]
12321
12410
  });
12322
12411
  }
12412
+ const fields_1lap7d5 = "";
12323
12413
  var AreaType = /* @__PURE__ */ ((AreaType2) => {
12324
12414
  AreaType2["Inline"] = "Inline";
12325
12415
  AreaType2["Grid"] = "Grid";
@@ -12332,7 +12422,10 @@ const ImageField = (i18n2) => {
12332
12422
  title: i18n2.t("dovetail.image"),
12333
12423
  path: ["imageNames"],
12334
12424
  renderContent(value2) {
12335
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ImageNames, { value: value2, breakLine: false });
12425
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ImageNames, {
12426
+ value: value2,
12427
+ breakLine: false
12428
+ });
12336
12429
  }
12337
12430
  };
12338
12431
  };
@@ -12341,7 +12434,10 @@ const ReplicaField = () => {
12341
12434
  key: "Replicas",
12342
12435
  path: [],
12343
12436
  renderContent: (_, record) => {
12344
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadReplicas, { record, editable: true });
12437
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadReplicas, {
12438
+ record,
12439
+ editable: true
12440
+ });
12345
12441
  }
12346
12442
  };
12347
12443
  };
@@ -12350,7 +12446,9 @@ const ConditionsField = () => {
12350
12446
  key: "Conditions",
12351
12447
  path: ["status", "conditions"],
12352
12448
  renderContent: (value2) => {
12353
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ConditionsTable, { conditions: value2 });
12449
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ConditionsTable, {
12450
+ conditions: value2
12451
+ });
12354
12452
  }
12355
12453
  };
12356
12454
  };
@@ -12359,7 +12457,9 @@ const NodeTaintsField = () => {
12359
12457
  key: "NodeTaints",
12360
12458
  path: ["spec", "taints"],
12361
12459
  renderContent: (value2) => {
12362
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(NodeTaintsTable, { taints: value2 });
12460
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(NodeTaintsTable, {
12461
+ taints: value2
12462
+ });
12363
12463
  }
12364
12464
  };
12365
12465
  };
@@ -12369,16 +12469,13 @@ const PodsField = () => {
12369
12469
  path: [],
12370
12470
  renderContent: (_, record) => {
12371
12471
  var _a, _b;
12372
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12373
- WorkloadPodsTable,
12374
- {
12375
- selector: (_b = (_a = record.metadata.relations) == null ? void 0 : _a.find((r2) => {
12376
- return r2.kind === "Pod" && r2.type === "creates";
12377
- })) == null ? void 0 : _b.selector,
12378
- namespace: record.metadata.namespace,
12379
- hideToolbar: true
12380
- }
12381
- );
12472
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadPodsTable, {
12473
+ selector: (_b = (_a = record.metadata.relations) == null ? void 0 : _a.find((r2) => {
12474
+ return r2.kind === "Pod" && r2.type === "creates";
12475
+ })) == null ? void 0 : _b.selector,
12476
+ namespace: record.metadata.namespace,
12477
+ hideToolbar: true
12478
+ });
12382
12479
  }
12383
12480
  };
12384
12481
  };
@@ -12388,19 +12485,16 @@ const JobsField = () => {
12388
12485
  path: [],
12389
12486
  renderContent: (_, record) => {
12390
12487
  var _a, _b, _c;
12391
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12392
- CronjobJobsTable,
12393
- {
12394
- owner: {
12395
- apiVersion: record.apiVersion || "",
12396
- kind: record.kind || "",
12397
- name: ((_a = record.metadata) == null ? void 0 : _a.name) || "",
12398
- namespace: ((_b = record.metadata) == null ? void 0 : _b.namespace) || "",
12399
- uid: ((_c = record.metadata) == null ? void 0 : _c.uid) || ""
12400
- },
12401
- hideToolBar: true
12402
- }
12403
- );
12488
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(CronjobJobsTable, {
12489
+ owner: {
12490
+ apiVersion: record.apiVersion || "",
12491
+ kind: record.kind || "",
12492
+ name: ((_a = record.metadata) == null ? void 0 : _a.name) || "",
12493
+ namespace: ((_b = record.metadata) == null ? void 0 : _b.namespace) || "",
12494
+ uid: ((_c = record.metadata) == null ? void 0 : _c.uid) || ""
12495
+ },
12496
+ hideToolBar: true
12497
+ });
12404
12498
  }
12405
12499
  };
12406
12500
  };
@@ -12409,13 +12503,15 @@ const DataField = (i18n2) => {
12409
12503
  key: "data",
12410
12504
  path: ["data"],
12411
12505
  renderContent: (val) => {
12412
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12413
- KeyValue,
12414
- {
12506
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12507
+ className: "c91cpym",
12508
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
12415
12509
  data: val,
12416
- empty: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.data") })
12417
- }
12418
- );
12510
+ empty: i18n2.t("dovetail.no_resource", {
12511
+ kind: i18n2.t("dovetail.data")
12512
+ })
12513
+ })
12514
+ });
12419
12515
  }
12420
12516
  };
12421
12517
  };
@@ -12428,7 +12524,12 @@ const SecretDataField = () => {
12428
12524
  for (const key2 in val) {
12429
12525
  decodeVal[key2] = atob(val[key2]);
12430
12526
  }
12431
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueSecret, { data: decodeVal });
12527
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12528
+ className: "ca9k82k",
12529
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueSecret, {
12530
+ data: decodeVal
12531
+ })
12532
+ });
12432
12533
  }
12433
12534
  };
12434
12535
  };
@@ -12439,7 +12540,9 @@ const StartTimeField = (i18n2) => {
12439
12540
  title: i18n2.t("dovetail.started"),
12440
12541
  path: ["status", "startTime"],
12441
12542
  renderContent(value2) {
12442
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, { date: value2 });
12543
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, {
12544
+ date: value2
12545
+ });
12443
12546
  }
12444
12547
  };
12445
12548
  };
@@ -12473,16 +12576,13 @@ const ServicePodsField = () => {
12473
12576
  path: [],
12474
12577
  renderContent: (_, record) => {
12475
12578
  var _a, _b, _c;
12476
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12477
- WorkloadPodsTable,
12478
- {
12479
- selector: (_b = (_a = record.metadata.relations) == null ? void 0 : _a.find((r2) => {
12480
- return r2.kind === "Pod" && r2.type === "selects";
12481
- })) == null ? void 0 : _b.selector,
12482
- namespace: (_c = record.metadata) == null ? void 0 : _c.namespace,
12483
- hideToolbar: true
12484
- }
12485
- );
12579
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadPodsTable, {
12580
+ selector: (_b = (_a = record.metadata.relations) == null ? void 0 : _a.find((r2) => {
12581
+ return r2.kind === "Pod" && r2.type === "selects";
12582
+ })) == null ? void 0 : _b.selector,
12583
+ namespace: (_c = record.metadata) == null ? void 0 : _c.namespace,
12584
+ hideToolbar: true
12585
+ });
12486
12586
  }
12487
12587
  };
12488
12588
  };
@@ -12491,7 +12591,12 @@ const IngressRulesTableTabField = () => {
12491
12591
  key: "rules",
12492
12592
  path: ["spec", "rules"],
12493
12593
  renderContent: (_, record) => {
12494
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(IngressRulesTable, { ingress: record });
12594
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12595
+ className: "c1k4htrr",
12596
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(IngressRulesTable, {
12597
+ ingress: record
12598
+ })
12599
+ });
12495
12600
  }
12496
12601
  };
12497
12602
  };
@@ -12503,7 +12608,15 @@ const EventsTableTabField = ({
12503
12608
  path: [],
12504
12609
  renderContent: (_, record) => {
12505
12610
  var _a;
12506
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", { style: { padding: size === "small" ? "0 12px" : "0 24px", height: "100%" }, children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(EventsTable, { uid: (_a = record.metadata) == null ? void 0 : _a.uid }) });
12611
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12612
+ style: {
12613
+ padding: size === "small" ? "0 12px" : "0 24px",
12614
+ height: "100%"
12615
+ },
12616
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(EventsTable, {
12617
+ uid: (_a = record.metadata) == null ? void 0 : _a.uid
12618
+ })
12619
+ });
12507
12620
  }
12508
12621
  };
12509
12622
  };
@@ -12519,7 +12632,9 @@ const AgeField = (i18n2) => ({
12519
12632
  title: i18n2.t("dovetail.created_time"),
12520
12633
  path: ["metadata", "creationTimestamp"],
12521
12634
  renderContent(value2) {
12522
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, { date: new Date(value2) });
12635
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, {
12636
+ date: new Date(value2)
12637
+ });
12523
12638
  }
12524
12639
  });
12525
12640
  const LabelsField = (i18n2) => ({
@@ -12530,7 +12645,9 @@ const LabelsField = (i18n2) => ({
12530
12645
  if (!value2) {
12531
12646
  return "-";
12532
12647
  }
12533
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, { value: value2 });
12648
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
12649
+ value: value2
12650
+ });
12534
12651
  }
12535
12652
  });
12536
12653
  const AnnotationsField = (i18n2) => ({
@@ -12538,7 +12655,10 @@ const AnnotationsField = (i18n2) => ({
12538
12655
  title: i18n2.t("dovetail.annotation"),
12539
12656
  path: ["metadata", "annotations"],
12540
12657
  renderContent: (value2) => {
12541
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueAnnotation, { data: value2, expandable: true });
12658
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueAnnotation, {
12659
+ data: value2,
12660
+ expandable: true
12661
+ });
12542
12662
  }
12543
12663
  });
12544
12664
  const ServiceInnerClusterAccessField = () => ({
@@ -12547,23 +12667,22 @@ const ServiceInnerClusterAccessField = () => ({
12547
12667
  title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessTitle, {}),
12548
12668
  path: [],
12549
12669
  renderContent: (_, record) => {
12550
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessComponent, { service: record });
12670
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessComponent, {
12671
+ service: record
12672
+ });
12551
12673
  }
12552
12674
  });
12553
12675
  const ServiceOutClusterAccessField = (clusterVip) => ({
12554
- key: "innerClusterAccess",
12676
+ key: "outClusterAccess",
12555
12677
  col: 12,
12556
12678
  title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceOutClusterAccessTitle, {}),
12557
12679
  path: [],
12558
12680
  renderContent: (_, record) => {
12559
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12560
- ServiceOutClusterAccessComponent,
12561
- {
12562
- service: record,
12563
- breakLine: false,
12564
- clusterVip
12565
- }
12566
- );
12681
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceOutClusterAccessComponent, {
12682
+ service: record,
12683
+ breakLine: false,
12684
+ clusterVip
12685
+ });
12567
12686
  }
12568
12687
  });
12569
12688
  const PodSelectorField = () => ({
@@ -12572,14 +12691,24 @@ const PodSelectorField = () => ({
12572
12691
  renderContent: (_, resource) => {
12573
12692
  const spec = resource._rawYaml.spec;
12574
12693
  const selector = spec && ("selector" in spec && spec.selector || "podSelector" in spec && spec.podSelector.matchLabels);
12575
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PodSelectorTable, { podSelectors: selector || {} });
12694
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PodSelectorTable, {
12695
+ podSelectors: selector || {}
12696
+ });
12576
12697
  }
12577
12698
  });
12578
12699
  const PortsTableField = () => ({
12579
12700
  key: "ports",
12580
12701
  path: [],
12581
12702
  renderContent: (_, service) => {
12582
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PortsTable, { service });
12703
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12704
+ style: {
12705
+ padding: "0 24px",
12706
+ height: "100%"
12707
+ },
12708
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(PortsTable, {
12709
+ service
12710
+ })
12711
+ });
12583
12712
  }
12584
12713
  });
12585
12714
  const DurationField = (i18n2) => {
@@ -12589,7 +12718,9 @@ const DurationField = (i18n2) => {
12589
12718
  path: ["duration"],
12590
12719
  title: i18n2.t("dovetail.duration"),
12591
12720
  renderContent: (v) => {
12592
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(DurationTime, { value: v });
12721
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(DurationTime, {
12722
+ value: v
12723
+ });
12593
12724
  }
12594
12725
  };
12595
12726
  };
@@ -12606,26 +12737,21 @@ const StorageClassPvField = () => {
12606
12737
  key: "pvs",
12607
12738
  path: ["pvs"],
12608
12739
  renderContent: (_, sc) => {
12609
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12610
- ResourceTable,
12611
- {
12612
- resource: "persistentvolumes",
12613
- useTableParams: {
12614
- filters: {
12615
- permanent: [
12616
- {
12617
- field: "",
12618
- value: "",
12619
- fn(pv2) {
12620
- var _a;
12621
- return sc.filterPV(pv2, (_a = sc.metadata) == null ? void 0 : _a.name);
12622
- }
12623
- }
12624
- ]
12625
- }
12740
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceTable, {
12741
+ resource: "persistentvolumes",
12742
+ useTableParams: {
12743
+ filters: {
12744
+ permanent: [{
12745
+ field: "",
12746
+ value: "",
12747
+ fn(pv2) {
12748
+ var _a;
12749
+ return sc.filterPV(pv2, (_a = sc.metadata) == null ? void 0 : _a.name);
12750
+ }
12751
+ }]
12626
12752
  }
12627
12753
  }
12628
- );
12754
+ });
12629
12755
  }
12630
12756
  };
12631
12757
  };
@@ -12636,7 +12762,10 @@ const PVCapacityField = (i18n2) => {
12636
12762
  path: ["spec", "capacity", "storage"],
12637
12763
  title: i18n2.t("dovetail.capacity"),
12638
12764
  renderContent(value2) {
12639
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Units.Byte, { rawValue: parseSi(value2), decimals: 2 });
12765
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Units.Byte, {
12766
+ rawValue: parseSi(value2),
12767
+ decimals: 2
12768
+ });
12640
12769
  }
12641
12770
  };
12642
12771
  };
@@ -12647,7 +12776,10 @@ const PVCStorageField = (i18n2) => {
12647
12776
  path: ["spec", "resources", "requests", "storage"],
12648
12777
  title: i18n2.t("dovetail.distributed"),
12649
12778
  renderContent(value2, pvc2) {
12650
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVCDistributeStorage, { pvc: pvc2, editable: true });
12779
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVCDistributeStorage, {
12780
+ pvc: pvc2,
12781
+ editable: true
12782
+ });
12651
12783
  }
12652
12784
  };
12653
12785
  };
@@ -12658,14 +12790,11 @@ const PVRefField = (i18n2) => {
12658
12790
  path: ["pv"],
12659
12791
  title: i18n2.t("dovetail.pv"),
12660
12792
  renderContent(value2) {
12661
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12662
- ResourceLink,
12663
- {
12664
- resourceName: "persistentvolumes",
12665
- namespace: "",
12666
- name: value2
12667
- }
12668
- );
12793
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, {
12794
+ resourceName: "persistentvolumes",
12795
+ namespace: "",
12796
+ name: value2
12797
+ });
12669
12798
  }
12670
12799
  };
12671
12800
  };
@@ -12676,7 +12805,11 @@ const PVStorageClassField = (i18n2) => {
12676
12805
  path: ["spec", "storageClassName"],
12677
12806
  title: i18n2.t("dovetail.storage_class"),
12678
12807
  renderContent(value2) {
12679
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, { resourceName: "storageclasses", namespace: "", name: value2 });
12808
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, {
12809
+ resourceName: "storageclasses",
12810
+ namespace: "",
12811
+ name: value2
12812
+ });
12680
12813
  }
12681
12814
  };
12682
12815
  };
@@ -12687,7 +12820,10 @@ const PVPhaseField = (i18n2) => {
12687
12820
  path: ["stateDisplay"],
12688
12821
  title: i18n2.t("dovetail.state"),
12689
12822
  renderContent(value2) {
12690
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(StateTag, { state: value2, hideBackground: true });
12823
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(StateTag, {
12824
+ state: value2,
12825
+ hideBackground: true
12826
+ });
12691
12827
  }
12692
12828
  };
12693
12829
  };
@@ -12698,7 +12834,9 @@ const PVVolumeModeField = (i18n2) => {
12698
12834
  path: ["spec", "volumeMode"],
12699
12835
  title: i18n2.t("dovetail.volume_mode"),
12700
12836
  renderContent(value2) {
12701
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVVolumeModeDisplay, { value: value2 });
12837
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVVolumeModeDisplay, {
12838
+ value: value2
12839
+ });
12702
12840
  }
12703
12841
  };
12704
12842
  };
@@ -12719,22 +12857,17 @@ const PVCPodsField = () => {
12719
12857
  path: [],
12720
12858
  renderContent: (_, record) => {
12721
12859
  var _a;
12722
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12723
- WorkloadPodsTable,
12724
- {
12725
- filter: (item) => {
12726
- var _a2, _b;
12727
- return !!((_b = (_a2 = item.spec) == null ? void 0 : _a2.volumes) == null ? void 0 : _b.some(
12728
- (v) => {
12729
- var _a3, _b2;
12730
- return ((_a3 = v.persistentVolumeClaim) == null ? void 0 : _a3.claimName) === ((_b2 = record.metadata) == null ? void 0 : _b2.name);
12731
- }
12732
- ));
12733
- },
12734
- namespace: (_a = record.metadata) == null ? void 0 : _a.namespace,
12735
- hideToolbar: true
12736
- }
12737
- );
12860
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadPodsTable, {
12861
+ filter: (item) => {
12862
+ var _a2, _b;
12863
+ return !!((_b = (_a2 = item.spec) == null ? void 0 : _a2.volumes) == null ? void 0 : _b.some((v) => {
12864
+ var _a3, _b2;
12865
+ return ((_a3 = v.persistentVolumeClaim) == null ? void 0 : _a3.claimName) === ((_b2 = record.metadata) == null ? void 0 : _b2.name);
12866
+ }));
12867
+ },
12868
+ namespace: (_a = record.metadata) == null ? void 0 : _a.namespace,
12869
+ hideToolbar: true
12870
+ });
12738
12871
  }
12739
12872
  };
12740
12873
  };
@@ -12745,15 +12878,14 @@ const PVCRefField = (i18n2) => {
12745
12878
  path: ["pvc"],
12746
12879
  title: i18n2.t("dovetail.pvc"),
12747
12880
  renderContent(value2, pv2) {
12748
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12749
- ResourceLink,
12750
- {
12751
- resourceName: "persistentvolumeclaims",
12752
- namespace: pv2.pvcNamespace || "default",
12753
- name: value2,
12754
- query: { uid: pv2.pvcUid }
12881
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, {
12882
+ resourceName: "persistentvolumeclaims",
12883
+ namespace: pv2.pvcNamespace || "default",
12884
+ name: value2,
12885
+ query: {
12886
+ uid: pv2.pvcUid
12755
12887
  }
12756
- );
12888
+ });
12757
12889
  }
12758
12890
  };
12759
12891
  };
@@ -12807,7 +12939,10 @@ const ResourceTableField = (resource, useTableParams) => {
12807
12939
  key: resource,
12808
12940
  path: [],
12809
12941
  renderContent() {
12810
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceTable, { resource, useTableParams });
12942
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceTable, {
12943
+ resource,
12944
+ useTableParams
12945
+ });
12811
12946
  }
12812
12947
  };
12813
12948
  };
@@ -12816,9 +12951,17 @@ const PodCountOfJobField = (i18n2) => {
12816
12951
  key: "podCount",
12817
12952
  path: [],
12818
12953
  col: 12,
12819
- title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, { title: i18n2.t("dovetail.job_pod_count_tooltip"), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", { className: DashedTitleStyle, children: i18n2.t("dovetail.pod_num") }) }),
12954
+ title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
12955
+ title: i18n2.t("dovetail.job_pod_count_tooltip"),
12956
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
12957
+ className: DashedTitleStyle,
12958
+ children: i18n2.t("dovetail.pod_num")
12959
+ })
12960
+ }),
12820
12961
  renderContent: (_, record) => {
12821
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", { children: record.podCountDisplay });
12962
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
12963
+ children: record.podCountDisplay
12964
+ });
12822
12965
  }
12823
12966
  };
12824
12967
  };
@@ -12843,8 +12986,11 @@ const LabelsAndAnnotationsShow = ({
12843
12986
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12844
12987
  className: SmallSectionTitleStyle,
12845
12988
  children: sksI18n.t("dovetail.label")
12846
- }), /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
12989
+ }), Object.keys(labels || {}).length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
12847
12990
  value: labels
12991
+ }) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(WidgetErrorContent, {
12992
+ errorText: sksI18n.t("dovetail.empty"),
12993
+ type: ErrorContentType.Card
12848
12994
  })]
12849
12995
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
12850
12996
  className: ItemWrapperStyle,
@@ -12852,7 +12998,8 @@ const LabelsAndAnnotationsShow = ({
12852
12998
  className: SmallSectionTitleStyle,
12853
12999
  children: sksI18n.t("dovetail.annotation")
12854
13000
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
12855
- data: annotations
13001
+ data: annotations,
13002
+ errorContent: ErrorContentType.Card
12856
13003
  })]
12857
13004
  })]
12858
13005
  });
@@ -13158,6 +13305,58 @@ const PodLogTab = (i18n2, apiUrl) => ({
13158
13305
  }
13159
13306
  ]
13160
13307
  });
13308
+ const PortsTab = ({
13309
+ i18n: i18n2
13310
+ }) => ({
13311
+ title: i18n2.t("dovetail.port"),
13312
+ key: "ports",
13313
+ background: "white",
13314
+ groups: [
13315
+ {
13316
+ areas: [
13317
+ {
13318
+ fields: [PortsTableField()]
13319
+ }
13320
+ ]
13321
+ }
13322
+ ]
13323
+ });
13324
+ const IngressRulesTab = ({
13325
+ i18n: i18n2
13326
+ }) => ({
13327
+ title: i18n2.t("dovetail.rule"),
13328
+ key: "ingress-rules",
13329
+ background: "white",
13330
+ groups: [
13331
+ {
13332
+ areas: [{ fields: [IngressRulesTableTabField()] }]
13333
+ }
13334
+ ]
13335
+ });
13336
+ const DataTab = ({
13337
+ i18n: i18n2
13338
+ }) => ({
13339
+ title: i18n2.t("dovetail.data"),
13340
+ key: "data",
13341
+ background: "white",
13342
+ groups: [
13343
+ {
13344
+ areas: [{ fields: [DataField(i18n2)] }]
13345
+ }
13346
+ ]
13347
+ });
13348
+ const SecretDataTab = ({
13349
+ i18n: i18n2
13350
+ }) => ({
13351
+ title: i18n2.t("dovetail.data"),
13352
+ key: "secret-data",
13353
+ background: "white",
13354
+ groups: [
13355
+ {
13356
+ areas: [{ fields: [SecretDataField()] }]
13357
+ }
13358
+ ]
13359
+ });
13161
13360
  const NetworkPolicyRulesViewer_r6jity = "";
13162
13361
  const MonacoYamlEditor$3 = React.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$1));
13163
13362
  const EditorStyle$1 = "e1cjl2b8";
@@ -13388,13 +13587,6 @@ const NodeTaintsGroup = (i18n2) => ({
13388
13587
  }
13389
13588
  ]
13390
13589
  });
13391
- const SecretDataGroup = () => ({
13392
- areas: [
13393
- {
13394
- fields: [SecretDataField()]
13395
- }
13396
- ]
13397
- });
13398
13590
  const JobsGroup = () => ({
13399
13591
  title: "Job",
13400
13592
  areas: [
@@ -13403,14 +13595,6 @@ const JobsGroup = () => ({
13403
13595
  }
13404
13596
  ]
13405
13597
  });
13406
- const IngressRulesGroup = (i18n2) => ({
13407
- title: i18n2.t("dovetail.rule"),
13408
- areas: [
13409
- {
13410
- fields: [IngressRulesTableTabField()]
13411
- }
13412
- ]
13413
- });
13414
13598
  const PodSelectorGroup = (i18n2) => ({
13415
13599
  title: i18n2.t("dovetail.pod_selector"),
13416
13600
  areas: [
@@ -13427,14 +13611,6 @@ const PortsGroup = (i18n2) => ({
13427
13611
  }
13428
13612
  ]
13429
13613
  });
13430
- const DataGroup = (i18n2) => ({
13431
- title: i18n2.t("dovetail.data"),
13432
- areas: [
13433
- {
13434
- fields: [DataField(i18n2)]
13435
- }
13436
- ]
13437
- });
13438
13614
  const NetworkPolicyIngressRulesGroup = (i18n2) => ({
13439
13615
  title: i18n2.t("dovetail.ingress_rule"),
13440
13616
  areas: [
@@ -13593,7 +13769,8 @@ const ShowContentView = (props) => {
13593
13769
  if (!record)
13594
13770
  return null;
13595
13771
  return fields.map((field) => {
13596
- if (field.hidden)
13772
+ const shouldHide = typeof field.hidden === "function" ? field.hidden(record) : field.hidden;
13773
+ if (shouldHide)
13597
13774
  return null;
13598
13775
  let content;
13599
13776
  const value2 = lodashEs.get(record, field.path);
@@ -14579,10 +14756,9 @@ const MemoizedFormField = React.memo(function FormField({
14579
14756
  control,
14580
14757
  name: fieldConfig.path.join("."),
14581
14758
  rules: {
14582
- async validate(value2) {
14759
+ async validate(value2, formValue) {
14583
14760
  if (fieldConfig.disabledWhenEdit && action === "edit")
14584
14761
  return true;
14585
- const formValue = watchedFormValues || getValues();
14586
14762
  if (!fieldConfig.validators || fieldConfig.validators.length === 0)
14587
14763
  return true;
14588
14764
  for (const func of fieldConfig.validators) {
@@ -14594,7 +14770,7 @@ const MemoizedFormField = React.memo(function FormField({
14594
14770
  }
14595
14771
  },
14596
14772
  render: ({ field, fieldState }) => {
14597
- var _a;
14773
+ var _a, _b;
14598
14774
  const currentFormValue = watchedFormValues || getValues();
14599
14775
  const renderProps = {
14600
14776
  field,
@@ -14617,7 +14793,7 @@ const MemoizedFormField = React.memo(function FormField({
14617
14793
  colon: false,
14618
14794
  labelCol: fieldConfig.layout === FormItemLayout.VERTICAL ? {} : { flex: `0 0 ${(formConfig == null ? void 0 : formConfig.labelWidth) || "216px"}` },
14619
14795
  help: fieldConfig.isHideErrorStatus ? "" : (_a = fieldState.error) == null ? void 0 : _a.message,
14620
- extra: fieldConfig.helperText,
14796
+ extra: ((_b = fieldState.error) == null ? void 0 : _b.message) === fieldConfig.helperText ? "" : fieldConfig.helperText,
14621
14797
  validateStatus: fieldState.invalid && !fieldConfig.isHideErrorStatus ? "error" : void 0,
14622
14798
  "data-test-id": fieldConfig.key,
14623
14799
  className: fieldConfig.layout === FormItemLayout.VERTICAL ? VerticalFormItemStyle : "",
@@ -17382,7 +17558,8 @@ function ResourceSelect(props) {
17382
17558
  namespace: namespace2,
17383
17559
  selectProps,
17384
17560
  value: value2,
17385
- onChange
17561
+ onChange,
17562
+ placeholder
17386
17563
  } = props;
17387
17564
  const { data: data2, isLoading, isError } = core.useList({
17388
17565
  resource,
@@ -17398,6 +17575,7 @@ function ResourceSelect(props) {
17398
17575
  eagle.Select,
17399
17576
  {
17400
17577
  className,
17578
+ placeholder,
17401
17579
  input: {
17402
17580
  value: value2,
17403
17581
  onChange
@@ -17409,7 +17587,7 @@ function ResourceSelect(props) {
17409
17587
  }
17410
17588
  );
17411
17589
  }
17412
- const SelectMatchLabelButton_1rnabop = "";
17590
+ const SelectMatchLabelButton_1uc76rw = "";
17413
17591
  const PopoverOverlayStyle = "p19yct45";
17414
17592
  const PopoverContentStyle = "p2255z4";
17415
17593
  const PopoverTitleStyle = "p16qejqa";
@@ -17425,12 +17603,16 @@ function ResourceMatchLabelSelector({
17425
17603
  value: value2,
17426
17604
  onChange
17427
17605
  }) {
17606
+ const {
17607
+ t: t2
17608
+ } = common.useTranslation();
17428
17609
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceSelect, {
17429
17610
  namespace: namespace2,
17430
17611
  resource,
17431
17612
  resourceBasePath,
17432
17613
  kind,
17433
17614
  value: value2,
17615
+ placeholder: t2("dovetail.select_workload"),
17434
17616
  onChange: (newValue, object2) => {
17435
17617
  var _a, _b;
17436
17618
  const resourceItem = object2.object;
@@ -17478,7 +17660,7 @@ function SelectMatchLabelButton(props) {
17478
17660
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
17479
17661
  className: PopoverContentBodyStyle,
17480
17662
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
17481
- className: common.cx_default(eagle.Typo.Display.d3_bold_title, PopoverTitleStyle),
17663
+ className: common.cx_default(eagle.Typo.Heading.h2_bold_title, PopoverTitleStyle),
17482
17664
  children: t2("dovetail.specify_workload")
17483
17665
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
17484
17666
  className: FormWrapperStyle,
@@ -17535,9 +17717,12 @@ function SelectMatchLabelButton(props) {
17535
17717
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
17536
17718
  onClick: () => setPopoverVisible(false),
17537
17719
  type: "quiet",
17720
+ size: "small",
17538
17721
  children: t2("dovetail.cancel")
17539
17722
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
17540
17723
  type: "primary",
17724
+ size: "small",
17725
+ disabled: !selectedResource,
17541
17726
  onClick: () => {
17542
17727
  onChange == null ? void 0 : onChange(selector);
17543
17728
  setPopoverVisible(false);
@@ -17595,8 +17780,7 @@ const MatchLabelSelector = React.forwardRef(function MatchLabelSelector2(props,
17595
17780
  onChange,
17596
17781
  isValueOptional: false,
17597
17782
  minSize: 1,
17598
- disabledChagneDefaultValues,
17599
- isHideLabelFormatPopover: true
17783
+ disabledChagneDefaultValues
17600
17784
  }
17601
17785
  );
17602
17786
  });
@@ -18433,7 +18617,7 @@ const PortsConfigForm = React.forwardRef(function PortsConfigForm2({ value: valu
18433
18617
  },
18434
18618
  {
18435
18619
  key: "name",
18436
- title: `${i18n2.t("dovetail.name")}${i18n2.t("dovetail.optional_with_bracket")}`,
18620
+ title: i18n2.t("dovetail.port_name"),
18437
18621
  type: "input",
18438
18622
  validator: ({ value: portName, rowIndex }) => {
18439
18623
  const { errorMessage } = validateRfc1123Name({
@@ -19619,8 +19803,8 @@ exports.DAEMONSET_INIT_VALUE = DAEMONSET_INIT_VALUE;
19619
19803
  exports.DEPLOYMENT_INIT_VALUE = DEPLOYMENT_INIT_VALUE;
19620
19804
  exports.DaemonSetModel = DaemonSetModel;
19621
19805
  exports.DataField = DataField;
19622
- exports.DataGroup = DataGroup;
19623
19806
  exports.DataKeysColumnRenderer = DataKeysColumnRenderer;
19807
+ exports.DataTab = DataTab;
19624
19808
  exports.DeleteButton = DeleteButton;
19625
19809
  exports.DeleteManyButton = DeleteManyButton;
19626
19810
  exports.DeploymentModel = DeploymentModel;
@@ -19657,7 +19841,7 @@ exports.IngressClassColumnRenderer = IngressClassColumnRenderer;
19657
19841
  exports.IngressDefaultBackendColumnRenderer = IngressDefaultBackendColumnRenderer;
19658
19842
  exports.IngressModel = IngressModel;
19659
19843
  exports.IngressRulesColumnRenderer = IngressRulesColumnRenderer;
19660
- exports.IngressRulesGroup = IngressRulesGroup;
19844
+ exports.IngressRulesTab = IngressRulesTab;
19661
19845
  exports.IngressRulesTableTabField = IngressRulesTableTabField;
19662
19846
  exports.IngressTlsColumnRenderer = IngressTlsColumnRenderer;
19663
19847
  exports.IsDefaultSCColumnRenderer = IsDefaultSCColumnRenderer;
@@ -19753,6 +19937,7 @@ exports.PodsGroup = PodsGroup;
19753
19937
  exports.PortMappingColumnRenderer = PortMappingColumnRenderer;
19754
19938
  exports.PortsConfigForm = PortsConfigForm;
19755
19939
  exports.PortsGroup = PortsGroup;
19940
+ exports.PortsTab = PortsTab;
19756
19941
  exports.PortsTableField = PortsTableField;
19757
19942
  exports.ProviderPlugins = ProviderPlugins;
19758
19943
  exports.ProvisionerColumnRenderer = ProvisionerColumnRenderer;
@@ -19798,7 +19983,7 @@ exports.STATEFULSET_INIT_VALUE = STATEFULSET_INIT_VALUE;
19798
19983
  exports.STORAGE_CLASS_INIT_VALUE = STORAGE_CLASS_INIT_VALUE;
19799
19984
  exports.SchemaStrategy = SchemaStrategy;
19800
19985
  exports.SecretDataField = SecretDataField;
19801
- exports.SecretDataGroup = SecretDataGroup;
19986
+ exports.SecretDataTab = SecretDataTab;
19802
19987
  exports.SectionTitle = SectionTitle;
19803
19988
  exports.Separator = Separator;
19804
19989
  exports.ServiceInClusterAccessColumnRenderer = ServiceInClusterAccessColumnRenderer;