@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/components/InternalBaseTable/index.d.ts +1 -0
- package/dist/components/KeyValue/KeyValue.d.ts +2 -0
- package/dist/components/ResourceSelect/index.d.ts +1 -0
- package/dist/components/ShowContent/fields.d.ts +1 -1
- package/dist/components/ShowContent/groups.d.ts +1 -4
- package/dist/components/ShowContent/tabs.d.ts +13 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useRefineFilters.d.ts +9 -0
- package/dist/i18n.d.ts +5 -0
- package/dist/locales/zh-CN/index.d.ts +5 -0
- package/dist/models/ingress-model.d.ts +1 -1
- package/dist/refine.cjs +536 -283
- package/dist/refine.js +537 -284
- package/dist/style.css +72 -8
- package/dist/types/resource.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/match-selector.d.ts +1 -1
- package/package.json +1 -1
- package/dist/utils/selector.d.ts +0 -3
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 = "{{
|
|
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 = "
|
|
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
|
|
9340
|
-
|
|
9341
|
-
|
|
9342
|
-
|
|
9343
|
-
|
|
9344
|
-
|
|
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
|
|
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 {
|
|
10372
|
+
const {
|
|
10373
|
+
data: finalData,
|
|
10374
|
+
currentPage,
|
|
10375
|
+
onPageChange,
|
|
10376
|
+
onSorterChange
|
|
10377
|
+
} = useTableData({
|
|
10310
10378
|
data: conditionsWithId,
|
|
10311
10379
|
columns,
|
|
10312
|
-
defaultSorters: [
|
|
10313
|
-
|
|
10314
|
-
|
|
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.
|
|
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")
|
|
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
|
|
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
|
-
|
|
11024
|
-
|
|
11098
|
+
Warning: "warning",
|
|
11099
|
+
Normal: "green"
|
|
11025
11100
|
};
|
|
11026
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
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(
|
|
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
|
-
|
|
11054
|
-
|
|
11055
|
-
|
|
11056
|
-
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
|
|
11061
|
-
|
|
11062
|
-
|
|
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
|
-
|
|
11066
|
-
|
|
11067
|
-
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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
|
-
) :
|
|
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.
|
|
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: "
|
|
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(
|
|
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.
|
|
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:
|
|
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
|
|
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.
|
|
11390
|
-
|
|
11391
|
-
|
|
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
|
-
})
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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
|
-
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
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
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12397
|
-
|
|
12398
|
-
|
|
12399
|
-
|
|
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
|
-
|
|
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", {
|
|
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(
|
|
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, {
|
|
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
|
-
|
|
12478
|
-
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
|
|
12482
|
-
|
|
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(
|
|
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", {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
12685
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceInClusterAccessComponent, {
|
|
12686
|
+
service: record
|
|
12687
|
+
});
|
|
12551
12688
|
}
|
|
12552
12689
|
});
|
|
12553
12690
|
const ServiceOutClusterAccessField = (clusterVip) => ({
|
|
12554
|
-
key: "
|
|
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
|
-
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
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, {
|
|
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(
|
|
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, {
|
|
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
|
-
|
|
12611
|
-
{
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
|
|
12615
|
-
|
|
12616
|
-
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
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, {
|
|
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, {
|
|
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
|
-
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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
|
-
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
var
|
|
12727
|
-
return
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
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
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
12752
|
-
|
|
12753
|
-
|
|
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, {
|
|
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, {
|
|
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", {
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
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;
|