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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,11 @@ 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 = "选择工作负载";
1228
+ const no_search_result = "无搜索结果";
1229
+ const clear_search_condition = "清空搜索条件";
1225
1230
  const dovetail = {
1226
1231
  copy,
1227
1232
  reset_arguments,
@@ -1487,7 +1492,12 @@ const dovetail = {
1487
1492
  node_port_duplicated,
1488
1493
  all,
1489
1494
  optional_with_bracket,
1490
- label_annotations
1495
+ label_annotations,
1496
+ target_service,
1497
+ target_service_port,
1498
+ select_workload,
1499
+ no_search_result,
1500
+ clear_search_condition
1491
1501
  };
1492
1502
  const ZH = {
1493
1503
  dovetail
@@ -7989,7 +7999,7 @@ const WidgetErrorContent = (props) => {
7989
7999
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("p", {
7990
8000
  className: common.cx_default(fontMap[type2], "title", `${type2}-title`),
7991
8001
  children: errorText || t2("dovetail.obtain_data_error")
7992
- }), !refetch ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(kit.button, {
8002
+ }), props.children, !refetch ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(kit.button, {
7993
8003
  size: type2 === "list" ? "middle" : "small",
7994
8004
  type: "ordinary",
7995
8005
  onClick: (e2) => {
@@ -8703,7 +8713,7 @@ class IngressModel extends ResourceModel {
8703
8713
  getFlattenedRules(services) {
8704
8714
  var _a, _b, _c, _d;
8705
8715
  const protocal = !!this._rawYaml.spec.tls ? "https" : "http";
8706
- const servicePort = (_c = (_b = (_a = services.find((s2) => {
8716
+ const servicePort = (_c = (_b = (_a = services == null ? void 0 : services.find((s2) => {
8707
8717
  var _a2, _b2;
8708
8718
  return ((_a2 = s2.metadata) == null ? void 0 : _a2.name) === "contour-envoy" && ((_b2 = s2.spec) == null ? void 0 : _b2.type) === "NodePort";
8709
8719
  })) == null ? void 0 : _a.spec) == null ? void 0 : _b.ports) == null ? void 0 : _c.find((p) => p.name === protocal);
@@ -9335,17 +9345,70 @@ var ResourceState = /* @__PURE__ */ ((ResourceState2) => {
9335
9345
  ResourceState2["DELETING"] = "deleting";
9336
9346
  return ResourceState2;
9337
9347
  })(ResourceState || {});
9348
+ function isLabelSelector(selector) {
9349
+ if (!selector || typeof selector !== "object") {
9350
+ return false;
9351
+ }
9352
+ const s2 = selector;
9353
+ if ("matchExpressions" in s2) {
9354
+ return true;
9355
+ }
9356
+ if ("matchLabels" in s2) {
9357
+ const ml = s2.matchLabels;
9358
+ return typeof ml === "object" && ml !== null;
9359
+ }
9360
+ return false;
9361
+ }
9338
9362
  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;
9363
+ var _a, _b;
9364
+ if (((_a = pod2.metadata) == null ? void 0 : _a.namespace) !== namespace2) {
9365
+ return false;
9366
+ }
9367
+ if (!selector || Object.keys(selector).length === 0) {
9368
+ return true;
9369
+ }
9370
+ const podLabels = ((_b = pod2.metadata) == null ? void 0 : _b.labels) || {};
9371
+ let matchLabels;
9372
+ let matchExpressions;
9373
+ if (isLabelSelector(selector)) {
9374
+ matchLabels = selector.matchLabels;
9375
+ matchExpressions = selector.matchExpressions;
9376
+ } else {
9377
+ matchLabels = selector;
9378
+ }
9379
+ if (matchLabels) {
9380
+ for (const key2 in matchLabels) {
9381
+ if (podLabels[key2] !== matchLabels[key2]) {
9382
+ return false;
9383
+ }
9384
+ }
9385
+ }
9386
+ if (matchExpressions) {
9387
+ for (const req of matchExpressions) {
9388
+ const { key: key2, operator, values } = req;
9389
+ const labelValue = podLabels[key2];
9390
+ const hasLabel = Object.prototype.hasOwnProperty.call(podLabels, key2);
9391
+ switch (operator) {
9392
+ case "In":
9393
+ if (!hasLabel || !(values == null ? void 0 : values.includes(labelValue)))
9394
+ return false;
9395
+ break;
9396
+ case "NotIn":
9397
+ if (hasLabel && (values == null ? void 0 : values.includes(labelValue)))
9398
+ return false;
9399
+ break;
9400
+ case "Exists":
9401
+ if (!hasLabel)
9402
+ return false;
9403
+ break;
9404
+ case "DoesNotExist":
9405
+ if (hasLabel)
9406
+ return false;
9407
+ break;
9345
9408
  }
9346
9409
  }
9347
9410
  }
9348
- return match && ((_d = pod2.metadata) == null ? void 0 : _d.namespace) === namespace2;
9411
+ return true;
9349
9412
  }
9350
9413
  class WorkloadBaseModel extends ResourceModel {
9351
9414
  constructor(_rawYaml, _globalStore) {
@@ -10306,13 +10369,20 @@ const ConditionsTable = ({ conditions = [] }) => {
10306
10369
  width: 403
10307
10370
  }
10308
10371
  ];
10309
- const { data: finalData, currentPage, onPageChange, onSorterChange } = useTableData({
10372
+ const {
10373
+ data: finalData,
10374
+ currentPage,
10375
+ onPageChange,
10376
+ onSorterChange
10377
+ } = useTableData({
10310
10378
  data: conditionsWithId,
10311
10379
  columns,
10312
- defaultSorters: [{
10313
- field: "lastUpdateTime",
10314
- order: "desc"
10315
- }]
10380
+ defaultSorters: [
10381
+ {
10382
+ field: "lastUpdateTime",
10383
+ order: "desc"
10384
+ }
10385
+ ]
10316
10386
  });
10317
10387
  const currentSize = 10;
10318
10388
  if (conditionsWithId.length === 0) {
@@ -10320,7 +10390,7 @@ const ConditionsTable = ({ conditions = [] }) => {
10320
10390
  WidgetErrorContent,
10321
10391
  {
10322
10392
  errorText: t2("dovetail.no_resource", { kind: t2("dovetail.condition") }),
10323
- type: ErrorContentType.Card
10393
+ type: ErrorContentType.List
10324
10394
  }
10325
10395
  );
10326
10396
  }
@@ -10593,6 +10663,9 @@ function validateLabelKey(key2) {
10593
10663
  if (prefix2 && prefix2.length > 253) {
10594
10664
  return { isValid: false };
10595
10665
  }
10666
+ if (!labelRegex.test(name2)) {
10667
+ return { isValid: false };
10668
+ }
10596
10669
  if (name2 && name2.length > 63) {
10597
10670
  return { isValid: false };
10598
10671
  }
@@ -10665,7 +10738,7 @@ function K8sDropdown(props) {
10665
10738
  const configs = React.useContext(ConfigsContext);
10666
10739
  const resourceName = getResourceNameByKind(record.kind || "", configs);
10667
10740
  const config = configs[resourceName || ""];
10668
- const { t: t2 } = common.useTranslation();
10741
+ const { t: t2, i18n: i18n2 } = common.useTranslation();
10669
10742
  const { openDeleteConfirmModal } = useDeleteModal({ resourceName: resourceName || "" });
10670
10743
  const download2 = useDownloadYAML();
10671
10744
  const openForm = useOpenForm();
@@ -10689,7 +10762,10 @@ function K8sDropdown(props) {
10689
10762
  eagle.Dropdown,
10690
10763
  {
10691
10764
  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") }) }),
10765
+ 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(
10766
+ (config == null ? void 0 : config.displayName) || record.kind || "",
10767
+ i18n2.language
10768
+ )}` : t2("dovetail.edit_yaml") }) }),
10693
10769
  /* @__PURE__ */ common.jsxRuntimeExports.jsx(
10694
10770
  eagle.Menu.Item,
10695
10771
  {
@@ -10908,7 +10984,6 @@ const TableToolBar = ({
10908
10984
  selectedKeys,
10909
10985
  hideCreate
10910
10986
  }) => {
10911
- var _a;
10912
10987
  const {
10913
10988
  resource
10914
10989
  } = core.useResource();
@@ -10918,7 +10993,7 @@ const TableToolBar = ({
10918
10993
  className: ToolbarStyle$1,
10919
10994
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
10920
10995
  className: common.cx_default(eagle.Typo.Display.d2_regular_title, TitleStyle$2),
10921
- children: title || ((_a = resource == null ? void 0 : resource.meta) == null ? void 0 : _a.kind)
10996
+ children: title
10922
10997
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsxs(eagle.Space, {
10923
10998
  children: [selectedKeys.length > 0 ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(DeleteManyButton, {
10924
10999
  ids: selectedKeys
@@ -11020,10 +11095,17 @@ const EventsTable = ({ uid }) => {
11020
11095
  width: 120,
11021
11096
  render(value2) {
11022
11097
  const colorMap = {
11023
- "Warning": "warning",
11024
- "Normal": "green"
11098
+ Warning: "warning",
11099
+ Normal: "green"
11025
11100
  };
11026
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.StatusCapsule, { color: colorMap[value2], className: common.cx_default(StateTagStyle, "no-background"), children: i18n2.t(`dovetail.${value2.toLowerCase()}`) });
11101
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11102
+ eagle.StatusCapsule,
11103
+ {
11104
+ color: colorMap[value2],
11105
+ className: common.cx_default(StateTagStyle, "no-background"),
11106
+ children: i18n2.t(`dovetail.${value2.toLowerCase()}`)
11107
+ }
11108
+ );
11027
11109
  },
11028
11110
  sorter: CommonSorter(["type"])
11029
11111
  },
@@ -11045,32 +11127,41 @@ const EventsTable = ({ uid }) => {
11045
11127
  width: 723,
11046
11128
  sorter: CommonSorter(["note"])
11047
11129
  },
11048
- AgeColumnRenderer(i18n2, { title: i18n2.t("dovetail.last_seen"), width: 160 }, { isRelativeTime: false })
11130
+ AgeColumnRenderer(
11131
+ i18n2,
11132
+ { title: i18n2.t("dovetail.last_seen"), width: 160 },
11133
+ { isRelativeTime: false }
11134
+ )
11049
11135
  ],
11050
11136
  [i18n2]
11051
11137
  );
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: [
11138
+ const params = React.useMemo(
11139
+ () => ({
11140
+ columns,
11141
+ tableProps: {
11142
+ defaultSize: 50
11143
+ },
11144
+ useTableParams: {
11145
+ resource: "events",
11146
+ meta: { resourceBasePath: "/apis/events.k8s.io/v1", kind: "Event" },
11147
+ filters: {
11148
+ permanent: [
11064
11149
  {
11065
- field: "regarding.uid",
11066
- operator: "eq",
11067
- value: uid
11150
+ operator: "and",
11151
+ value: [
11152
+ {
11153
+ field: "regarding.uid",
11154
+ operator: "eq",
11155
+ value: uid
11156
+ }
11157
+ ]
11068
11158
  }
11069
11159
  ]
11070
- }]
11160
+ }
11071
11161
  }
11072
- }
11073
- }), [columns, uid]);
11162
+ }),
11163
+ [columns, uid]
11164
+ );
11074
11165
  const { tableProps } = useEagleTable(params);
11075
11166
  const component = React.useContext(ComponentContext);
11076
11167
  const Table2 = component.Table || Table$1;
@@ -11078,18 +11169,12 @@ const EventsTable = ({ uid }) => {
11078
11169
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11079
11170
  WidgetErrorContent,
11080
11171
  {
11081
- errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") })
11172
+ errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") }),
11173
+ type: ErrorContentType.List
11082
11174
  }
11083
11175
  );
11084
11176
  }
11085
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11086
- Table2,
11087
- {
11088
- ...tableProps,
11089
- tableKey: "events",
11090
- showMenuColumn: false
11091
- }
11092
- );
11177
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Table2, { ...tableProps, tableKey: "events", showMenuColumn: false });
11093
11178
  };
11094
11179
  const index_mvy4dx = "";
11095
11180
  const ImageWrapperStyle = "i1u1f5zp";
@@ -11181,7 +11266,10 @@ const IngressRulesTable = ({ ingress }) => {
11181
11266
  apiVersion: "v1"
11182
11267
  }
11183
11268
  });
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]);
11269
+ const flattenedRules = React.useMemo(
11270
+ () => (serviceData == null ? void 0 : serviceData.data) ? ingress.getFlattenedRules(serviceData == null ? void 0 : serviceData.data) : [],
11271
+ [serviceData == null ? void 0 : serviceData.data, ingress]
11272
+ );
11185
11273
  const rows = React.useMemo(() => {
11186
11274
  return addId(flattenedRules || [], "fullPath");
11187
11275
  }, [flattenedRules]);
@@ -11212,7 +11300,7 @@ const IngressRulesTable = ({ ingress }) => {
11212
11300
  key: "serviceName",
11213
11301
  display: true,
11214
11302
  dataIndex: "serviceName",
11215
- title: t2("dovetail.backend"),
11303
+ title: t2("dovetail.target_service"),
11216
11304
  sortable: true,
11217
11305
  width: 160,
11218
11306
  render: (serviceName, record) => {
@@ -11223,14 +11311,14 @@ const IngressRulesTable = ({ ingress }) => {
11223
11311
  namespace: ingress.metadata.namespace || "default",
11224
11312
  name: serviceName
11225
11313
  }
11226
- ) : record.resourceName;
11314
+ ) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, { value: "" });
11227
11315
  }
11228
11316
  },
11229
11317
  {
11230
11318
  key: "servicePort",
11231
11319
  display: true,
11232
11320
  dataIndex: "servicePort",
11233
- title: t2("dovetail.port"),
11321
+ title: t2("dovetail.target_service_port"),
11234
11322
  width: 120,
11235
11323
  sortable: true
11236
11324
  },
@@ -11238,11 +11326,13 @@ const IngressRulesTable = ({ ingress }) => {
11238
11326
  key: "secret",
11239
11327
  display: true,
11240
11328
  dataIndex: "host",
11241
- title: "Secret",
11329
+ title: t2("dovetail.cert"),
11242
11330
  width: 160,
11243
11331
  render(host2) {
11244
11332
  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;
11333
+ const secretName = (_b = (_a = ingress._rawYaml.spec.tls) == null ? void 0 : _a.find(
11334
+ ({ hosts }) => hosts == null ? void 0 : hosts.includes(host2)
11335
+ )) == null ? void 0 : _b.secretName;
11246
11336
  return secretName ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11247
11337
  ResourceLink,
11248
11338
  {
@@ -11269,7 +11359,7 @@ const IngressRulesTable = ({ ingress }) => {
11269
11359
  WidgetErrorContent,
11270
11360
  {
11271
11361
  errorText: t2("dovetail.no_resource", { kind: t2("dovetail.rule") }),
11272
- type: ErrorContentType.Card
11362
+ type: ErrorContentType.List
11273
11363
  }
11274
11364
  );
11275
11365
  }
@@ -11299,7 +11389,8 @@ const KeyValue = (props) => {
11299
11389
  const {
11300
11390
  data: data2 = {},
11301
11391
  hideSecret,
11302
- empty: empty2
11392
+ empty: empty2,
11393
+ errorContent = ErrorContentType.List
11303
11394
  } = props;
11304
11395
  const {
11305
11396
  t: t2
@@ -11317,7 +11408,7 @@ const KeyValue = (props) => {
11317
11408
  if (!result.length) {
11318
11409
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WidgetErrorContent, {
11319
11410
  errorText: empty2 || t2("dovetail.empty"),
11320
- type: ErrorContentType.Card
11411
+ type: errorContent
11321
11412
  });
11322
11413
  }
11323
11414
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(common.jsxRuntimeExports.Fragment, {
@@ -11365,9 +11456,7 @@ function KeyValueAnnotation(props) {
11365
11456
  }) : null]
11366
11457
  });
11367
11458
  }
11368
- const KeyValueSecret_c3ji18 = "";
11369
- const ButtonStyle$1 = "b11tbgf7";
11370
- const GroupStyle$1 = "gtbyh5g";
11459
+ const KeyValueSecret_ltbqs = "";
11371
11460
  function KeyValueSecret(props) {
11372
11461
  const {
11373
11462
  data: data2 = {}
@@ -11377,26 +11466,23 @@ function KeyValueSecret(props) {
11377
11466
  } = common.useTranslation();
11378
11467
  const [hideSecret, setHideSecret] = React.useState(true);
11379
11468
  const toggleButton = Object.keys(data2).length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
11380
- type: "quiet",
11381
11469
  prefixIcon: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
11382
11470
  src: hideSecret ? iconsReact.ViewEye16GradientGrayIcon : iconsReact.EntityFilterIgnoreGradient16GrayIcon
11383
11471
  }),
11384
11472
  onClick: () => setHideSecret((v) => !v),
11385
- className: ButtonStyle$1,
11386
11473
  size: "small",
11474
+ className: "c11tbgf7",
11387
11475
  children: hideSecret ? i18n2.t("dovetail.show_data_value") : i18n2.t("dovetail.hide_data_value")
11388
11476
  }) : 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, {
11477
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
11478
+ className: "ctbyh5g",
11479
+ children: [toggleButton, /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
11394
11480
  data: data2,
11395
11481
  hideSecret,
11396
11482
  empty: i18n2.t("dovetail.no_resource", {
11397
11483
  kind: i18n2.t("dovetail.data")
11398
11484
  })
11399
- })
11485
+ })]
11400
11486
  });
11401
11487
  }
11402
11488
  function isUtf8(buffer) {
@@ -11543,6 +11629,37 @@ function _KeyValueTableForm(props, ref) {
11543
11629
  const tableFormRef = React.useRef(null);
11544
11630
  const [_value, _setValue] = React.useState(value2 || defaultValue);
11545
11631
  const [forceUpdateCount, setForceUpdateCount] = React.useState(0);
11632
+ const finalExtraAction = React.useMemo(() => {
11633
+ if (extraAction) {
11634
+ return extraAction;
11635
+ }
11636
+ if (canImportFromFile) {
11637
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Upload, {
11638
+ multiple: true,
11639
+ showUploadList: false,
11640
+ onChange: async (e2) => {
11641
+ var _a;
11642
+ const fileValue = {
11643
+ key: e2.file.name,
11644
+ value: await readFileAsBase64(e2.file.originFileObj)
11645
+ };
11646
+ let newValue = [..._value, fileValue];
11647
+ if (_value.some((v) => v.key === fileValue.key)) {
11648
+ newValue = _value.map((v) => v.key === fileValue.key ? fileValue : v);
11649
+ }
11650
+ _setValue(newValue);
11651
+ (_a = tableFormRef.current) == null ? void 0 : _a.setData(newValue);
11652
+ onChange == null ? void 0 : onChange(newValue);
11653
+ },
11654
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
11655
+ type: "link",
11656
+ size: "small",
11657
+ children: t2("dovetail.import_from_file")
11658
+ })
11659
+ });
11660
+ }
11661
+ return null;
11662
+ }, [canImportFromFile, t2, _value, onChange, extraAction]);
11546
11663
  const validate = React.useCallback(() => {
11547
11664
  return new Promise((resolve) => {
11548
11665
  var _a;
@@ -11663,7 +11780,7 @@ function _KeyValueTableForm(props, ref) {
11663
11780
  rowAddConfig: {
11664
11781
  addible: true,
11665
11782
  text: () => addButtonText,
11666
- extraAction
11783
+ extraAction: finalExtraAction
11667
11784
  },
11668
11785
  defaultData: _value,
11669
11786
  row: {
@@ -11678,29 +11795,7 @@ function _KeyValueTableForm(props, ref) {
11678
11795
  hideEmptyTable: true
11679
11796
  }), isHideLabelFormatPopover ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsx(LabelFormatPopover, {
11680
11797
  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]
11798
+ })]
11704
11799
  });
11705
11800
  }
11706
11801
  const KeyValueTableForm = React.forwardRef(_KeyValueTableForm);
@@ -11982,9 +12077,18 @@ function Table(props) {
11982
12077
  const { tableProps, displayName, errorContentProps } = props;
11983
12078
  const { Table: TableComponent } = React.useContext(ComponentContext);
11984
12079
  const Table2 = TableComponent || Table$1;
12080
+ const { params } = core.useParsed();
11985
12081
  const { i18n: i18n2 } = common.useTranslation();
11986
12082
  const resourceType = transformResourceKindInSentence(displayName, i18n2.language);
11987
12083
  if (!((_a = tableProps.data) == null ? void 0 : _a.length) && !tableProps.loading) {
12084
+ const nameKeyword = (params == null ? void 0 : params[NAME_KEYWORD_PARAM]) || "";
12085
+ if (nameKeyword) {
12086
+ const onClear = () => {
12087
+ var _a2;
12088
+ (_a2 = tableProps.onClearSearchKeyword) == null ? void 0 : _a2.call(tableProps);
12089
+ };
12090
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WidgetErrorContent, { errorText: i18n2.t("dovetail.no_search_result"), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, { onClick: onClear, type: "ordinary", children: i18n2.t("dovetail.clear_search_condition") }) });
12091
+ }
11988
12092
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
11989
12093
  WidgetErrorContent,
11990
12094
  {
@@ -12320,6 +12424,7 @@ function WorkloadReplicas({
12320
12424
  })]
12321
12425
  });
12322
12426
  }
12427
+ const fields_1lap7d5 = "";
12323
12428
  var AreaType = /* @__PURE__ */ ((AreaType2) => {
12324
12429
  AreaType2["Inline"] = "Inline";
12325
12430
  AreaType2["Grid"] = "Grid";
@@ -12332,7 +12437,10 @@ const ImageField = (i18n2) => {
12332
12437
  title: i18n2.t("dovetail.image"),
12333
12438
  path: ["imageNames"],
12334
12439
  renderContent(value2) {
12335
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ImageNames, { value: value2, breakLine: false });
12440
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ImageNames, {
12441
+ value: value2,
12442
+ breakLine: false
12443
+ });
12336
12444
  }
12337
12445
  };
12338
12446
  };
@@ -12341,7 +12449,10 @@ const ReplicaField = () => {
12341
12449
  key: "Replicas",
12342
12450
  path: [],
12343
12451
  renderContent: (_, record) => {
12344
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadReplicas, { record, editable: true });
12452
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadReplicas, {
12453
+ record,
12454
+ editable: true
12455
+ });
12345
12456
  }
12346
12457
  };
12347
12458
  };
@@ -12350,7 +12461,9 @@ const ConditionsField = () => {
12350
12461
  key: "Conditions",
12351
12462
  path: ["status", "conditions"],
12352
12463
  renderContent: (value2) => {
12353
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ConditionsTable, { conditions: value2 });
12464
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ConditionsTable, {
12465
+ conditions: value2
12466
+ });
12354
12467
  }
12355
12468
  };
12356
12469
  };
@@ -12359,7 +12472,9 @@ const NodeTaintsField = () => {
12359
12472
  key: "NodeTaints",
12360
12473
  path: ["spec", "taints"],
12361
12474
  renderContent: (value2) => {
12362
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(NodeTaintsTable, { taints: value2 });
12475
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(NodeTaintsTable, {
12476
+ taints: value2
12477
+ });
12363
12478
  }
12364
12479
  };
12365
12480
  };
@@ -12369,16 +12484,13 @@ const PodsField = () => {
12369
12484
  path: [],
12370
12485
  renderContent: (_, record) => {
12371
12486
  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
- );
12487
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadPodsTable, {
12488
+ selector: (_b = (_a = record.metadata.relations) == null ? void 0 : _a.find((r2) => {
12489
+ return r2.kind === "Pod" && r2.type === "creates";
12490
+ })) == null ? void 0 : _b.selector,
12491
+ namespace: record.metadata.namespace,
12492
+ hideToolbar: true
12493
+ });
12382
12494
  }
12383
12495
  };
12384
12496
  };
@@ -12388,19 +12500,16 @@ const JobsField = () => {
12388
12500
  path: [],
12389
12501
  renderContent: (_, record) => {
12390
12502
  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
- );
12503
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(CronjobJobsTable, {
12504
+ owner: {
12505
+ apiVersion: record.apiVersion || "",
12506
+ kind: record.kind || "",
12507
+ name: ((_a = record.metadata) == null ? void 0 : _a.name) || "",
12508
+ namespace: ((_b = record.metadata) == null ? void 0 : _b.namespace) || "",
12509
+ uid: ((_c = record.metadata) == null ? void 0 : _c.uid) || ""
12510
+ },
12511
+ hideToolBar: true
12512
+ });
12404
12513
  }
12405
12514
  };
12406
12515
  };
@@ -12409,13 +12518,15 @@ const DataField = (i18n2) => {
12409
12518
  key: "data",
12410
12519
  path: ["data"],
12411
12520
  renderContent: (val) => {
12412
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12413
- KeyValue,
12414
- {
12521
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12522
+ className: "c91cpym",
12523
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
12415
12524
  data: val,
12416
- empty: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.data") })
12417
- }
12418
- );
12525
+ empty: i18n2.t("dovetail.no_resource", {
12526
+ kind: i18n2.t("dovetail.data")
12527
+ })
12528
+ })
12529
+ });
12419
12530
  }
12420
12531
  };
12421
12532
  };
@@ -12428,7 +12539,12 @@ const SecretDataField = () => {
12428
12539
  for (const key2 in val) {
12429
12540
  decodeVal[key2] = atob(val[key2]);
12430
12541
  }
12431
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueSecret, { data: decodeVal });
12542
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12543
+ className: "ca9k82k",
12544
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueSecret, {
12545
+ data: decodeVal
12546
+ })
12547
+ });
12432
12548
  }
12433
12549
  };
12434
12550
  };
@@ -12439,7 +12555,9 @@ const StartTimeField = (i18n2) => {
12439
12555
  title: i18n2.t("dovetail.started"),
12440
12556
  path: ["status", "startTime"],
12441
12557
  renderContent(value2) {
12442
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, { date: value2 });
12558
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, {
12559
+ date: value2
12560
+ });
12443
12561
  }
12444
12562
  };
12445
12563
  };
@@ -12473,16 +12591,13 @@ const ServicePodsField = () => {
12473
12591
  path: [],
12474
12592
  renderContent: (_, record) => {
12475
12593
  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
- );
12594
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadPodsTable, {
12595
+ selector: (_b = (_a = record.metadata.relations) == null ? void 0 : _a.find((r2) => {
12596
+ return r2.kind === "Pod" && r2.type === "selects";
12597
+ })) == null ? void 0 : _b.selector,
12598
+ namespace: (_c = record.metadata) == null ? void 0 : _c.namespace,
12599
+ hideToolbar: true
12600
+ });
12486
12601
  }
12487
12602
  };
12488
12603
  };
@@ -12491,7 +12606,12 @@ const IngressRulesTableTabField = () => {
12491
12606
  key: "rules",
12492
12607
  path: ["spec", "rules"],
12493
12608
  renderContent: (_, record) => {
12494
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(IngressRulesTable, { ingress: record });
12609
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12610
+ className: "c1k4htrr",
12611
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(IngressRulesTable, {
12612
+ ingress: record
12613
+ })
12614
+ });
12495
12615
  }
12496
12616
  };
12497
12617
  };
@@ -12503,7 +12623,15 @@ const EventsTableTabField = ({
12503
12623
  path: [],
12504
12624
  renderContent: (_, record) => {
12505
12625
  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 }) });
12626
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12627
+ style: {
12628
+ padding: size === "small" ? "0 12px" : "0 24px",
12629
+ height: "100%"
12630
+ },
12631
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(EventsTable, {
12632
+ uid: (_a = record.metadata) == null ? void 0 : _a.uid
12633
+ })
12634
+ });
12507
12635
  }
12508
12636
  };
12509
12637
  };
@@ -12519,7 +12647,9 @@ const AgeField = (i18n2) => ({
12519
12647
  title: i18n2.t("dovetail.created_time"),
12520
12648
  path: ["metadata", "creationTimestamp"],
12521
12649
  renderContent(value2) {
12522
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, { date: new Date(value2) });
12650
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Time, {
12651
+ date: new Date(value2)
12652
+ });
12523
12653
  }
12524
12654
  });
12525
12655
  const LabelsField = (i18n2) => ({
@@ -12530,7 +12660,9 @@ const LabelsField = (i18n2) => ({
12530
12660
  if (!value2) {
12531
12661
  return "-";
12532
12662
  }
12533
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, { value: value2 });
12663
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
12664
+ value: value2
12665
+ });
12534
12666
  }
12535
12667
  });
12536
12668
  const AnnotationsField = (i18n2) => ({
@@ -12538,7 +12670,10 @@ const AnnotationsField = (i18n2) => ({
12538
12670
  title: i18n2.t("dovetail.annotation"),
12539
12671
  path: ["metadata", "annotations"],
12540
12672
  renderContent: (value2) => {
12541
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueAnnotation, { data: value2, expandable: true });
12673
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValueAnnotation, {
12674
+ data: value2,
12675
+ expandable: true
12676
+ });
12542
12677
  }
12543
12678
  });
12544
12679
  const ServiceInnerClusterAccessField = () => ({
@@ -12547,23 +12682,22 @@ const ServiceInnerClusterAccessField = () => ({
12547
12682
  title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessTitle, {}),
12548
12683
  path: [],
12549
12684
  renderContent: (_, record) => {
12550
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessComponent, { service: record });
12685
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessComponent, {
12686
+ service: record
12687
+ });
12551
12688
  }
12552
12689
  });
12553
12690
  const ServiceOutClusterAccessField = (clusterVip) => ({
12554
- key: "innerClusterAccess",
12691
+ key: "outClusterAccess",
12555
12692
  col: 12,
12556
12693
  title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceOutClusterAccessTitle, {}),
12557
12694
  path: [],
12558
12695
  renderContent: (_, record) => {
12559
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12560
- ServiceOutClusterAccessComponent,
12561
- {
12562
- service: record,
12563
- breakLine: false,
12564
- clusterVip
12565
- }
12566
- );
12696
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceOutClusterAccessComponent, {
12697
+ service: record,
12698
+ breakLine: false,
12699
+ clusterVip
12700
+ });
12567
12701
  }
12568
12702
  });
12569
12703
  const PodSelectorField = () => ({
@@ -12572,14 +12706,24 @@ const PodSelectorField = () => ({
12572
12706
  renderContent: (_, resource) => {
12573
12707
  const spec = resource._rawYaml.spec;
12574
12708
  const selector = spec && ("selector" in spec && spec.selector || "podSelector" in spec && spec.podSelector.matchLabels);
12575
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PodSelectorTable, { podSelectors: selector || {} });
12709
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PodSelectorTable, {
12710
+ podSelectors: selector || {}
12711
+ });
12576
12712
  }
12577
12713
  });
12578
12714
  const PortsTableField = () => ({
12579
12715
  key: "ports",
12580
12716
  path: [],
12581
12717
  renderContent: (_, service) => {
12582
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PortsTable, { service });
12718
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12719
+ style: {
12720
+ padding: "0 24px",
12721
+ height: "100%"
12722
+ },
12723
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(PortsTable, {
12724
+ service
12725
+ })
12726
+ });
12583
12727
  }
12584
12728
  });
12585
12729
  const DurationField = (i18n2) => {
@@ -12589,7 +12733,9 @@ const DurationField = (i18n2) => {
12589
12733
  path: ["duration"],
12590
12734
  title: i18n2.t("dovetail.duration"),
12591
12735
  renderContent: (v) => {
12592
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(DurationTime, { value: v });
12736
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(DurationTime, {
12737
+ value: v
12738
+ });
12593
12739
  }
12594
12740
  };
12595
12741
  };
@@ -12606,26 +12752,21 @@ const StorageClassPvField = () => {
12606
12752
  key: "pvs",
12607
12753
  path: ["pvs"],
12608
12754
  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
- }
12755
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceTable, {
12756
+ resource: "persistentvolumes",
12757
+ useTableParams: {
12758
+ filters: {
12759
+ permanent: [{
12760
+ field: "",
12761
+ value: "",
12762
+ fn(pv2) {
12763
+ var _a;
12764
+ return sc.filterPV(pv2, (_a = sc.metadata) == null ? void 0 : _a.name);
12765
+ }
12766
+ }]
12626
12767
  }
12627
12768
  }
12628
- );
12769
+ });
12629
12770
  }
12630
12771
  };
12631
12772
  };
@@ -12636,7 +12777,10 @@ const PVCapacityField = (i18n2) => {
12636
12777
  path: ["spec", "capacity", "storage"],
12637
12778
  title: i18n2.t("dovetail.capacity"),
12638
12779
  renderContent(value2) {
12639
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Units.Byte, { rawValue: parseSi(value2), decimals: 2 });
12780
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Units.Byte, {
12781
+ rawValue: parseSi(value2),
12782
+ decimals: 2
12783
+ });
12640
12784
  }
12641
12785
  };
12642
12786
  };
@@ -12647,7 +12791,10 @@ const PVCStorageField = (i18n2) => {
12647
12791
  path: ["spec", "resources", "requests", "storage"],
12648
12792
  title: i18n2.t("dovetail.distributed"),
12649
12793
  renderContent(value2, pvc2) {
12650
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVCDistributeStorage, { pvc: pvc2, editable: true });
12794
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVCDistributeStorage, {
12795
+ pvc: pvc2,
12796
+ editable: true
12797
+ });
12651
12798
  }
12652
12799
  };
12653
12800
  };
@@ -12658,14 +12805,11 @@ const PVRefField = (i18n2) => {
12658
12805
  path: ["pv"],
12659
12806
  title: i18n2.t("dovetail.pv"),
12660
12807
  renderContent(value2) {
12661
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
12662
- ResourceLink,
12663
- {
12664
- resourceName: "persistentvolumes",
12665
- namespace: "",
12666
- name: value2
12667
- }
12668
- );
12808
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, {
12809
+ resourceName: "persistentvolumes",
12810
+ namespace: "",
12811
+ name: value2
12812
+ });
12669
12813
  }
12670
12814
  };
12671
12815
  };
@@ -12676,7 +12820,11 @@ const PVStorageClassField = (i18n2) => {
12676
12820
  path: ["spec", "storageClassName"],
12677
12821
  title: i18n2.t("dovetail.storage_class"),
12678
12822
  renderContent(value2) {
12679
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, { resourceName: "storageclasses", namespace: "", name: value2 });
12823
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, {
12824
+ resourceName: "storageclasses",
12825
+ namespace: "",
12826
+ name: value2
12827
+ });
12680
12828
  }
12681
12829
  };
12682
12830
  };
@@ -12687,7 +12835,10 @@ const PVPhaseField = (i18n2) => {
12687
12835
  path: ["stateDisplay"],
12688
12836
  title: i18n2.t("dovetail.state"),
12689
12837
  renderContent(value2) {
12690
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(StateTag, { state: value2, hideBackground: true });
12838
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(StateTag, {
12839
+ state: value2,
12840
+ hideBackground: true
12841
+ });
12691
12842
  }
12692
12843
  };
12693
12844
  };
@@ -12698,7 +12849,9 @@ const PVVolumeModeField = (i18n2) => {
12698
12849
  path: ["spec", "volumeMode"],
12699
12850
  title: i18n2.t("dovetail.volume_mode"),
12700
12851
  renderContent(value2) {
12701
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVVolumeModeDisplay, { value: value2 });
12852
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PVVolumeModeDisplay, {
12853
+ value: value2
12854
+ });
12702
12855
  }
12703
12856
  };
12704
12857
  };
@@ -12719,22 +12872,17 @@ const PVCPodsField = () => {
12719
12872
  path: [],
12720
12873
  renderContent: (_, record) => {
12721
12874
  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
- );
12875
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(WorkloadPodsTable, {
12876
+ filter: (item) => {
12877
+ var _a2, _b;
12878
+ return !!((_b = (_a2 = item.spec) == null ? void 0 : _a2.volumes) == null ? void 0 : _b.some((v) => {
12879
+ var _a3, _b2;
12880
+ return ((_a3 = v.persistentVolumeClaim) == null ? void 0 : _a3.claimName) === ((_b2 = record.metadata) == null ? void 0 : _b2.name);
12881
+ }));
12882
+ },
12883
+ namespace: (_a = record.metadata) == null ? void 0 : _a.namespace,
12884
+ hideToolbar: true
12885
+ });
12738
12886
  }
12739
12887
  };
12740
12888
  };
@@ -12745,15 +12893,14 @@ const PVCRefField = (i18n2) => {
12745
12893
  path: ["pvc"],
12746
12894
  title: i18n2.t("dovetail.pvc"),
12747
12895
  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 }
12896
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceLink, {
12897
+ resourceName: "persistentvolumeclaims",
12898
+ namespace: pv2.pvcNamespace || "default",
12899
+ name: value2,
12900
+ query: {
12901
+ uid: pv2.pvcUid
12755
12902
  }
12756
- );
12903
+ });
12757
12904
  }
12758
12905
  };
12759
12906
  };
@@ -12807,7 +12954,10 @@ const ResourceTableField = (resource, useTableParams) => {
12807
12954
  key: resource,
12808
12955
  path: [],
12809
12956
  renderContent() {
12810
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceTable, { resource, useTableParams });
12957
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceTable, {
12958
+ resource,
12959
+ useTableParams
12960
+ });
12811
12961
  }
12812
12962
  };
12813
12963
  };
@@ -12816,9 +12966,17 @@ const PodCountOfJobField = (i18n2) => {
12816
12966
  key: "podCount",
12817
12967
  path: [],
12818
12968
  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") }) }),
12969
+ title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
12970
+ title: i18n2.t("dovetail.job_pod_count_tooltip"),
12971
+ children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
12972
+ className: DashedTitleStyle,
12973
+ children: i18n2.t("dovetail.pod_num")
12974
+ })
12975
+ }),
12820
12976
  renderContent: (_, record) => {
12821
- return /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", { children: record.podCountDisplay });
12977
+ return /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
12978
+ children: record.podCountDisplay
12979
+ });
12822
12980
  }
12823
12981
  };
12824
12982
  };
@@ -12843,8 +13001,11 @@ const LabelsAndAnnotationsShow = ({
12843
13001
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
12844
13002
  className: SmallSectionTitleStyle,
12845
13003
  children: sksI18n.t("dovetail.label")
12846
- }), /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
13004
+ }), Object.keys(labels || {}).length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
12847
13005
  value: labels
13006
+ }) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(WidgetErrorContent, {
13007
+ errorText: sksI18n.t("dovetail.empty"),
13008
+ type: ErrorContentType.Card
12848
13009
  })]
12849
13010
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
12850
13011
  className: ItemWrapperStyle,
@@ -12852,7 +13013,8 @@ const LabelsAndAnnotationsShow = ({
12852
13013
  className: SmallSectionTitleStyle,
12853
13014
  children: sksI18n.t("dovetail.annotation")
12854
13015
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsx(KeyValue, {
12855
- data: annotations
13016
+ data: annotations,
13017
+ errorContent: ErrorContentType.Card
12856
13018
  })]
12857
13019
  })]
12858
13020
  });
@@ -13158,6 +13320,58 @@ const PodLogTab = (i18n2, apiUrl) => ({
13158
13320
  }
13159
13321
  ]
13160
13322
  });
13323
+ const PortsTab = ({
13324
+ i18n: i18n2
13325
+ }) => ({
13326
+ title: i18n2.t("dovetail.port"),
13327
+ key: "ports",
13328
+ background: "white",
13329
+ groups: [
13330
+ {
13331
+ areas: [
13332
+ {
13333
+ fields: [PortsTableField()]
13334
+ }
13335
+ ]
13336
+ }
13337
+ ]
13338
+ });
13339
+ const IngressRulesTab = ({
13340
+ i18n: i18n2
13341
+ }) => ({
13342
+ title: i18n2.t("dovetail.rule"),
13343
+ key: "ingress-rules",
13344
+ background: "white",
13345
+ groups: [
13346
+ {
13347
+ areas: [{ fields: [IngressRulesTableTabField()] }]
13348
+ }
13349
+ ]
13350
+ });
13351
+ const DataTab = ({
13352
+ i18n: i18n2
13353
+ }) => ({
13354
+ title: i18n2.t("dovetail.data"),
13355
+ key: "data",
13356
+ background: "white",
13357
+ groups: [
13358
+ {
13359
+ areas: [{ fields: [DataField(i18n2)] }]
13360
+ }
13361
+ ]
13362
+ });
13363
+ const SecretDataTab = ({
13364
+ i18n: i18n2
13365
+ }) => ({
13366
+ title: i18n2.t("dovetail.data"),
13367
+ key: "secret-data",
13368
+ background: "white",
13369
+ groups: [
13370
+ {
13371
+ areas: [{ fields: [SecretDataField()] }]
13372
+ }
13373
+ ]
13374
+ });
13161
13375
  const NetworkPolicyRulesViewer_r6jity = "";
13162
13376
  const MonacoYamlEditor$3 = React.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$1));
13163
13377
  const EditorStyle$1 = "e1cjl2b8";
@@ -13388,13 +13602,6 @@ const NodeTaintsGroup = (i18n2) => ({
13388
13602
  }
13389
13603
  ]
13390
13604
  });
13391
- const SecretDataGroup = () => ({
13392
- areas: [
13393
- {
13394
- fields: [SecretDataField()]
13395
- }
13396
- ]
13397
- });
13398
13605
  const JobsGroup = () => ({
13399
13606
  title: "Job",
13400
13607
  areas: [
@@ -13403,14 +13610,6 @@ const JobsGroup = () => ({
13403
13610
  }
13404
13611
  ]
13405
13612
  });
13406
- const IngressRulesGroup = (i18n2) => ({
13407
- title: i18n2.t("dovetail.rule"),
13408
- areas: [
13409
- {
13410
- fields: [IngressRulesTableTabField()]
13411
- }
13412
- ]
13413
- });
13414
13613
  const PodSelectorGroup = (i18n2) => ({
13415
13614
  title: i18n2.t("dovetail.pod_selector"),
13416
13615
  areas: [
@@ -13427,14 +13626,6 @@ const PortsGroup = (i18n2) => ({
13427
13626
  }
13428
13627
  ]
13429
13628
  });
13430
- const DataGroup = (i18n2) => ({
13431
- title: i18n2.t("dovetail.data"),
13432
- areas: [
13433
- {
13434
- fields: [DataField(i18n2)]
13435
- }
13436
- ]
13437
- });
13438
13629
  const NetworkPolicyIngressRulesGroup = (i18n2) => ({
13439
13630
  title: i18n2.t("dovetail.ingress_rule"),
13440
13631
  areas: [
@@ -13593,7 +13784,8 @@ const ShowContentView = (props) => {
13593
13784
  if (!record)
13594
13785
  return null;
13595
13786
  return fields.map((field) => {
13596
- if (field.hidden)
13787
+ const shouldHide = typeof field.hidden === "function" ? field.hidden(record) : field.hidden;
13788
+ if (shouldHide)
13597
13789
  return null;
13598
13790
  let content;
13599
13791
  const value2 = lodashEs.get(record, field.path);
@@ -14250,30 +14442,6 @@ const NamespacesFilter = ({
14250
14442
  })
14251
14443
  });
14252
14444
  };
14253
- function useNamespaceRefineFilter() {
14254
- const { value: nsFilters = [] } = useNamespacesFilter();
14255
- const filters = React.useMemo(() => {
14256
- const filters2 = nsFilters.filter((filter) => filter !== ALL_NS);
14257
- if (filters2.length === 0) {
14258
- return {
14259
- permanent: []
14260
- };
14261
- }
14262
- return {
14263
- permanent: [
14264
- {
14265
- operator: "or",
14266
- value: filters2.map((filter) => ({
14267
- field: "metadata.namespace",
14268
- operator: "eq",
14269
- value: filter
14270
- }))
14271
- }
14272
- ]
14273
- };
14274
- }, [nsFilters]);
14275
- return filters;
14276
- }
14277
14445
  const index_1l2xllo = "";
14278
14446
  const ListPageStyle = "laykzsq";
14279
14447
  const ListContentStyle = "l1ng0psc";
@@ -14296,7 +14464,7 @@ function ListPage(props) {
14296
14464
  children: [!config.hideListToolBar ? /* @__PURE__ */ common.jsxRuntimeExports.jsxs(common.jsxRuntimeExports.Fragment, {
14297
14465
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx(TableToolBar, {
14298
14466
  selectedKeys,
14299
- title: config == null ? void 0 : config.displayName,
14467
+ title: (config == null ? void 0 : config.customListTitle) || (config == null ? void 0 : config.displayName) || config.kind,
14300
14468
  description: config == null ? void 0 : config.description,
14301
14469
  hideCreate: config == null ? void 0 : config.hideCreate
14302
14470
  }), belowToolBarContent, /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Divider, {
@@ -14333,7 +14501,7 @@ function ResourceList(props) {
14333
14501
  const { formatter, columns, Dropdown, noShow } = props.config;
14334
14502
  const { i18n: i18n2 } = common.useTranslation();
14335
14503
  const nameRenderer = noShow ? PlainTextNameColumnRenderer(i18n2) : NameColumnRenderer(i18n2);
14336
- const filters = useNamespaceRefineFilter();
14504
+ const filters = useRefineFilters();
14337
14505
  const { tableProps, selectedKeys } = useEagleTable({
14338
14506
  useTableParams: {
14339
14507
  filters
@@ -14579,10 +14747,9 @@ const MemoizedFormField = React.memo(function FormField({
14579
14747
  control,
14580
14748
  name: fieldConfig.path.join("."),
14581
14749
  rules: {
14582
- async validate(value2) {
14750
+ async validate(value2, formValue) {
14583
14751
  if (fieldConfig.disabledWhenEdit && action === "edit")
14584
14752
  return true;
14585
- const formValue = watchedFormValues || getValues();
14586
14753
  if (!fieldConfig.validators || fieldConfig.validators.length === 0)
14587
14754
  return true;
14588
14755
  for (const func of fieldConfig.validators) {
@@ -14594,7 +14761,7 @@ const MemoizedFormField = React.memo(function FormField({
14594
14761
  }
14595
14762
  },
14596
14763
  render: ({ field, fieldState }) => {
14597
- var _a;
14764
+ var _a, _b;
14598
14765
  const currentFormValue = watchedFormValues || getValues();
14599
14766
  const renderProps = {
14600
14767
  field,
@@ -14617,7 +14784,7 @@ const MemoizedFormField = React.memo(function FormField({
14617
14784
  colon: false,
14618
14785
  labelCol: fieldConfig.layout === FormItemLayout.VERTICAL ? {} : { flex: `0 0 ${(formConfig == null ? void 0 : formConfig.labelWidth) || "216px"}` },
14619
14786
  help: fieldConfig.isHideErrorStatus ? "" : (_a = fieldState.error) == null ? void 0 : _a.message,
14620
- extra: fieldConfig.helperText,
14787
+ extra: ((_b = fieldState.error) == null ? void 0 : _b.message) === fieldConfig.helperText ? "" : fieldConfig.helperText,
14621
14788
  validateStatus: fieldState.invalid && !fieldConfig.isHideErrorStatus ? "error" : void 0,
14622
14789
  "data-test-id": fieldConfig.key,
14623
14790
  className: fieldConfig.layout === FormItemLayout.VERTICAL ? VerticalFormItemStyle : "",
@@ -17382,7 +17549,8 @@ function ResourceSelect(props) {
17382
17549
  namespace: namespace2,
17383
17550
  selectProps,
17384
17551
  value: value2,
17385
- onChange
17552
+ onChange,
17553
+ placeholder
17386
17554
  } = props;
17387
17555
  const { data: data2, isLoading, isError } = core.useList({
17388
17556
  resource,
@@ -17398,6 +17566,7 @@ function ResourceSelect(props) {
17398
17566
  eagle.Select,
17399
17567
  {
17400
17568
  className,
17569
+ placeholder,
17401
17570
  input: {
17402
17571
  value: value2,
17403
17572
  onChange
@@ -17409,7 +17578,7 @@ function ResourceSelect(props) {
17409
17578
  }
17410
17579
  );
17411
17580
  }
17412
- const SelectMatchLabelButton_1rnabop = "";
17581
+ const SelectMatchLabelButton_1uc76rw = "";
17413
17582
  const PopoverOverlayStyle = "p19yct45";
17414
17583
  const PopoverContentStyle = "p2255z4";
17415
17584
  const PopoverTitleStyle = "p16qejqa";
@@ -17425,12 +17594,16 @@ function ResourceMatchLabelSelector({
17425
17594
  value: value2,
17426
17595
  onChange
17427
17596
  }) {
17597
+ const {
17598
+ t: t2
17599
+ } = common.useTranslation();
17428
17600
  return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ResourceSelect, {
17429
17601
  namespace: namespace2,
17430
17602
  resource,
17431
17603
  resourceBasePath,
17432
17604
  kind,
17433
17605
  value: value2,
17606
+ placeholder: t2("dovetail.select_workload"),
17434
17607
  onChange: (newValue, object2) => {
17435
17608
  var _a, _b;
17436
17609
  const resourceItem = object2.object;
@@ -17478,7 +17651,7 @@ function SelectMatchLabelButton(props) {
17478
17651
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
17479
17652
  className: PopoverContentBodyStyle,
17480
17653
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
17481
- className: common.cx_default(eagle.Typo.Display.d3_bold_title, PopoverTitleStyle),
17654
+ className: common.cx_default(eagle.Typo.Heading.h2_bold_title, PopoverTitleStyle),
17482
17655
  children: t2("dovetail.specify_workload")
17483
17656
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
17484
17657
  className: FormWrapperStyle,
@@ -17535,9 +17708,12 @@ function SelectMatchLabelButton(props) {
17535
17708
  children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
17536
17709
  onClick: () => setPopoverVisible(false),
17537
17710
  type: "quiet",
17711
+ size: "small",
17538
17712
  children: t2("dovetail.cancel")
17539
17713
  }), /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, {
17540
17714
  type: "primary",
17715
+ size: "small",
17716
+ disabled: !selectedResource,
17541
17717
  onClick: () => {
17542
17718
  onChange == null ? void 0 : onChange(selector);
17543
17719
  setPopoverVisible(false);
@@ -17595,8 +17771,7 @@ const MatchLabelSelector = React.forwardRef(function MatchLabelSelector2(props,
17595
17771
  onChange,
17596
17772
  isValueOptional: false,
17597
17773
  minSize: 1,
17598
- disabledChagneDefaultValues,
17599
- isHideLabelFormatPopover: true
17774
+ disabledChagneDefaultValues
17600
17775
  }
17601
17776
  );
17602
17777
  });
@@ -18433,7 +18608,7 @@ const PortsConfigForm = React.forwardRef(function PortsConfigForm2({ value: valu
18433
18608
  },
18434
18609
  {
18435
18610
  key: "name",
18436
- title: `${i18n2.t("dovetail.name")}${i18n2.t("dovetail.optional_with_bracket")}`,
18611
+ title: i18n2.t("dovetail.port_name"),
18437
18612
  type: "input",
18438
18613
  validator: ({ value: portName, rowIndex }) => {
18439
18614
  const { errorMessage } = validateRfc1123Name({
@@ -19353,6 +19528,78 @@ const SCAllowExpandColumnRenderer = (i18n2) => {
19353
19528
  }
19354
19529
  };
19355
19530
  };
19531
+ function useNamespaceRefineFilter() {
19532
+ const { value: nsFilters = [] } = useNamespacesFilter();
19533
+ const filters = React.useMemo(() => {
19534
+ const filters2 = nsFilters.filter((filter) => filter !== ALL_NS);
19535
+ if (filters2.length === 0) {
19536
+ return {
19537
+ permanent: []
19538
+ };
19539
+ }
19540
+ return {
19541
+ permanent: [
19542
+ {
19543
+ operator: "or",
19544
+ value: filters2.map((filter) => ({
19545
+ field: "metadata.namespace",
19546
+ operator: "eq",
19547
+ value: filter
19548
+ }))
19549
+ }
19550
+ ]
19551
+ };
19552
+ }, [nsFilters]);
19553
+ return filters;
19554
+ }
19555
+ const NAME_KEYWORD_PARAM = "name_keyword";
19556
+ function useRefineFilters(options = {}) {
19557
+ const {
19558
+ disableNamespaceFilter = false,
19559
+ disableNameKeywordFilter = false
19560
+ } = options;
19561
+ const { value: nsFilters = [] } = useNamespacesFilter();
19562
+ const namespaceFilters = React.useMemo(() => {
19563
+ if (disableNamespaceFilter) {
19564
+ return [];
19565
+ }
19566
+ const filters2 = nsFilters.filter((filter) => filter !== ALL_NS);
19567
+ if (filters2.length === 0) {
19568
+ return [];
19569
+ }
19570
+ return [
19571
+ {
19572
+ operator: "or",
19573
+ value: filters2.map((filter) => ({
19574
+ field: "metadata.namespace",
19575
+ operator: "eq",
19576
+ value: filter
19577
+ }))
19578
+ }
19579
+ ];
19580
+ }, [nsFilters, disableNamespaceFilter]);
19581
+ const { params } = core.useParsed();
19582
+ const nameKeyword = params == null ? void 0 : params[NAME_KEYWORD_PARAM];
19583
+ const nameKeywordFilters = React.useMemo(() => {
19584
+ if (disableNameKeywordFilter || !nameKeyword || nameKeyword.trim() === "") {
19585
+ return [];
19586
+ }
19587
+ return [
19588
+ {
19589
+ field: "metadata.name",
19590
+ operator: "contains",
19591
+ value: nameKeyword.trim()
19592
+ }
19593
+ ];
19594
+ }, [nameKeyword, disableNameKeywordFilter]);
19595
+ const filters = React.useMemo(
19596
+ () => ({
19597
+ permanent: [...namespaceFilters, ...nameKeywordFilters]
19598
+ }),
19599
+ [namespaceFilters, nameKeywordFilters]
19600
+ );
19601
+ return filters;
19602
+ }
19356
19603
  const styles = "";
19357
19604
  const Dovetail = (props) => {
19358
19605
  const {
@@ -19619,8 +19866,8 @@ exports.DAEMONSET_INIT_VALUE = DAEMONSET_INIT_VALUE;
19619
19866
  exports.DEPLOYMENT_INIT_VALUE = DEPLOYMENT_INIT_VALUE;
19620
19867
  exports.DaemonSetModel = DaemonSetModel;
19621
19868
  exports.DataField = DataField;
19622
- exports.DataGroup = DataGroup;
19623
19869
  exports.DataKeysColumnRenderer = DataKeysColumnRenderer;
19870
+ exports.DataTab = DataTab;
19624
19871
  exports.DeleteButton = DeleteButton;
19625
19872
  exports.DeleteManyButton = DeleteManyButton;
19626
19873
  exports.DeploymentModel = DeploymentModel;
@@ -19657,7 +19904,7 @@ exports.IngressClassColumnRenderer = IngressClassColumnRenderer;
19657
19904
  exports.IngressDefaultBackendColumnRenderer = IngressDefaultBackendColumnRenderer;
19658
19905
  exports.IngressModel = IngressModel;
19659
19906
  exports.IngressRulesColumnRenderer = IngressRulesColumnRenderer;
19660
- exports.IngressRulesGroup = IngressRulesGroup;
19907
+ exports.IngressRulesTab = IngressRulesTab;
19661
19908
  exports.IngressRulesTableTabField = IngressRulesTableTabField;
19662
19909
  exports.IngressTlsColumnRenderer = IngressTlsColumnRenderer;
19663
19910
  exports.IsDefaultSCColumnRenderer = IsDefaultSCColumnRenderer;
@@ -19684,6 +19931,7 @@ exports.MetadataForm = MetadataForm;
19684
19931
  exports.ModelPlugin = ModelPlugin;
19685
19932
  exports.MonacoYamlDiffEditor = MonacoYamlDiffEditor;
19686
19933
  exports.MonacoYamlEditor = MonacoYamlEditor;
19934
+ exports.NAME_KEYWORD_PARAM = NAME_KEYWORD_PARAM;
19687
19935
  exports.NETWORK_POLICY_INIT_VALUE = NETWORK_POLICY_INIT_VALUE;
19688
19936
  exports.NODE_INIT_VALUE = NODE_INIT_VALUE;
19689
19937
  exports.NS_STORE_KEY = NS_STORE_KEY;
@@ -19753,6 +20001,7 @@ exports.PodsGroup = PodsGroup;
19753
20001
  exports.PortMappingColumnRenderer = PortMappingColumnRenderer;
19754
20002
  exports.PortsConfigForm = PortsConfigForm;
19755
20003
  exports.PortsGroup = PortsGroup;
20004
+ exports.PortsTab = PortsTab;
19756
20005
  exports.PortsTableField = PortsTableField;
19757
20006
  exports.ProviderPlugins = ProviderPlugins;
19758
20007
  exports.ProvisionerColumnRenderer = ProvisionerColumnRenderer;
@@ -19798,7 +20047,7 @@ exports.STATEFULSET_INIT_VALUE = STATEFULSET_INIT_VALUE;
19798
20047
  exports.STORAGE_CLASS_INIT_VALUE = STORAGE_CLASS_INIT_VALUE;
19799
20048
  exports.SchemaStrategy = SchemaStrategy;
19800
20049
  exports.SecretDataField = SecretDataField;
19801
- exports.SecretDataGroup = SecretDataGroup;
20050
+ exports.SecretDataTab = SecretDataTab;
19802
20051
  exports.SectionTitle = SectionTitle;
19803
20052
  exports.Separator = Separator;
19804
20053
  exports.ServiceInClusterAccessColumnRenderer = ServiceInClusterAccessColumnRenderer;
@@ -19850,6 +20099,7 @@ exports.generateSchemaTypeValue = generateSchemaTypeValue;
19850
20099
  exports.generateValueFromSchema = generateValueFromSchema;
19851
20100
  exports.getApiVersion = getApiVersion;
19852
20101
  exports.getResourceNameByKind = getResourceNameByKind;
20102
+ exports.isFirstLetterEnglish = isFirstLetterEnglish;
19853
20103
  exports.matchSelector = matchSelector;
19854
20104
  exports.modelPlugin = modelPlugin;
19855
20105
  exports.namespaceRules = namespaceRules;
@@ -19860,6 +20110,8 @@ exports.resolveRef = resolveRef;
19860
20110
  exports.rfc1035LabelRules = rfc1035LabelRules;
19861
20111
  exports.rfc1123LabelRules = rfc1123LabelRules;
19862
20112
  exports.routerProvider = routerProvider;
20113
+ exports.shortenedImage = shortenedImage;
20114
+ exports.transformResourceKindInSentence = transformResourceKindInSentence;
19863
20115
  exports.useApiGroupSchema = useApiGroupSchema;
19864
20116
  exports.useDeleteModal = useDeleteModal;
19865
20117
  exports.useDeleteModalOnly = useDeleteModalOnly;
@@ -19871,6 +20123,7 @@ exports.useGlobalStore = useGlobalStore;
19871
20123
  exports.useNamespaceRefineFilter = useNamespaceRefineFilter;
19872
20124
  exports.useNamespacesFilter = useNamespacesFilter;
19873
20125
  exports.useOpenForm = useOpenForm;
20126
+ exports.useRefineFilters = useRefineFilters;
19874
20127
  exports.useRefineForm = useRefineForm;
19875
20128
  exports.useSchema = useSchema;
19876
20129
  exports.validateDataKey = validateDataKey;