@dovetail-v2/refine 0.0.35-beta.3 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,11 +7,11 @@ var __publicField = (obj, key2, value2) => {
7
7
  import i18n from "i18next";
8
8
  import * as React from "react";
9
9
  import React__default, { createElement, isValidElement, cloneElement, Children, createContext, useContext, useState, useRef, useEffect, useCallback, useMemo, useImperativeHandle, memo, PureComponent, useLayoutEffect, forwardRef, Suspense } from "react";
10
- import { ResourceContext, matchResourceFromRoute, useResource, useDelete, useNavigation, useBreadcrumb, useList, useParsed, useGo, useDeleteMany, useShow, useUpdate, useDataProvider, useRefineContext, useTranslate, useWarnAboutChange, useForm as useForm$1, flattenObjectKeys, useInvalidate, useUserFriendlyName, useModal, pickNotDeprecated, useMenu, useTable, Refine } from "@refinedev/core";
10
+ import { ResourceContext, matchResourceFromRoute, useResource, useDelete, useNavigation, useBreadcrumb, useList, useParsed, useGo, useDeleteMany, CanAccess, useCan, useShow, useUpdate, useDataProvider, useRefineContext, useTranslate, useWarnAboutChange, useForm as useForm$1, flattenObjectKeys, useInvalidate, useUserFriendlyName, useModal, pickNotDeprecated, useMenu, useTable, Refine } from "@refinedev/core";
11
11
  import { parse, stringify } from "qs";
12
12
  import { useLocation, useHistory, useParams, matchPath, Link, Route, NavLink, Router } from "react-router-dom";
13
13
  import { Typo, useUIKit, kitContext, Link as Link$1, OverflowTooltip, Tooltip, StatusCapsule, pushModal, Button, Icon as Icon$1, popModal, Loading, Divider, Fields, Form, Space, Modal, useMessage, ModalStack, KitStoreProvider } from "@cloudtower/eagle";
14
- import { PlusAddCreateNew16BoldOntintIcon, EditPen16PrimaryIcon, Download16GradientBlueIcon, TrashBinDelete16Icon, MoreEllipsis324BoldSecondaryIcon, MoreEllipsis324BoldBlueIcon, MoreEllipsis316BoldBlueIcon, ArrowChevronLeft16BoldTertiaryIcon, ArrowChevronLeftSmall16BoldBlueIcon, EditPen16GradientBlueIcon, ViewEye16GrayIcon, RecoverContinue16GradientBlueIcon, SuspendedPause16GradientBlueIcon, Retry16GradientBlueIcon, HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, EditPen16GradientGrayIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, ExclamationErrorCircleFill16RedIcon, Pause16GradientBlueIcon } from "@cloudtower/icons-react";
14
+ import { PlusAddCreateNew16BoldOntintIcon, EditPen16PrimaryIcon, Download16GradientBlueIcon, TrashBinDelete16Icon, MoreEllipsis324BoldSecondaryIcon, MoreEllipsis324BoldBlueIcon, MoreEllipsis316BoldBlueIcon, ArrowChevronLeft16BoldTertiaryIcon, ArrowChevronLeftSmall16BoldBlueIcon, EditPen16GradientBlueIcon, ViewEye16GrayIcon, EntityFilterIgnoreGradient16GrayIcon, RecoverContinue16GradientBlueIcon, SuspendedPause16GradientBlueIcon, Retry16GradientBlueIcon, HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, EditPen16GradientGrayIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, ExclamationErrorCircleFill16RedIcon, Pause16GradientBlueIcon } from "@cloudtower/icons-react";
15
15
  import { get as get$2, first, debounce, last, isObject as isObject$2, merge, keyBy } from "lodash-es";
16
16
  import yaml from "js-yaml";
17
17
  import * as monaco from "monaco-editor";
@@ -25,301 +25,308 @@ function getDefaultExportFromCjs(x) {
25
25
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
26
26
  }
27
27
  var dayjs_min = { exports: {} };
28
- (function(module, exports) {
29
- !function(t2, e2) {
30
- module.exports = e2();
31
- }(commonjsGlobal, function() {
32
- var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u = "hour", a2 = "day", o = "week", c2 = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) {
33
- var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100;
34
- return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]";
35
- } }, m2 = function(t3, e3, n3) {
36
- var r3 = String(t3);
37
- return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3;
38
- }, v = { s: m2, z: function(t3) {
39
- var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i3 = n3 % 60;
40
- return (e3 <= 0 ? "+" : "-") + m2(r3, 2, "0") + ":" + m2(i3, 2, "0");
41
- }, m: function t3(e3, n3) {
42
- if (e3.date() < n3.date())
43
- return -t3(n3, e3);
44
- var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i3 = e3.clone().add(r3, c2), s3 = n3 - i3 < 0, u2 = e3.clone().add(r3 + (s3 ? -1 : 1), c2);
45
- return +(-(r3 + (n3 - i3) / (s3 ? i3 - u2 : u2 - i3)) || 0);
46
- }, a: function(t3) {
47
- return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3);
48
- }, p: function(t3) {
49
- return { M: c2, y: h, w: o, d: a2, D: d, h: u, m: s2, s: i2, ms: r2, Q: f }[t3] || String(t3 || "").toLowerCase().replace(/s$/, "");
50
- }, u: function(t3) {
51
- return void 0 === t3;
52
- } }, g = "en", D = {};
53
- D[g] = M;
54
- var p = "$isDayjsObject", S = function(t3) {
55
- return t3 instanceof _ || !(!t3 || !t3[p]);
56
- }, w = function t3(e3, n3, r3) {
57
- var i3;
58
- if (!e3)
59
- return g;
60
- if ("string" == typeof e3) {
61
- var s3 = e3.toLowerCase();
62
- D[s3] && (i3 = s3), n3 && (D[s3] = n3, i3 = s3);
63
- var u2 = e3.split("-");
64
- if (!i3 && u2.length > 1)
65
- return t3(u2[0]);
66
- } else {
67
- var a3 = e3.name;
68
- D[a3] = e3, i3 = a3;
69
- }
70
- return !r3 && i3 && (g = i3), i3 || !r3 && g;
71
- }, O = function(t3, e3) {
72
- if (S(t3))
73
- return t3.clone();
74
- var n3 = "object" == typeof e3 ? e3 : {};
75
- return n3.date = t3, n3.args = arguments, new _(n3);
76
- }, b = v;
77
- b.l = w, b.i = S, b.w = function(t3, e3) {
78
- return O(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset });
79
- };
80
- var _ = function() {
81
- function M2(t3) {
82
- this.$L = w(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p] = true;
83
- }
84
- var m3 = M2.prototype;
85
- return m3.parse = function(t3) {
86
- this.$d = function(t4) {
87
- var e3 = t4.date, n3 = t4.utc;
88
- if (null === e3)
89
- return /* @__PURE__ */ new Date(NaN);
90
- if (b.u(e3))
91
- return /* @__PURE__ */ new Date();
92
- if (e3 instanceof Date)
93
- return new Date(e3);
94
- if ("string" == typeof e3 && !/Z$/i.test(e3)) {
95
- var r3 = e3.match($);
96
- if (r3) {
97
- var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3);
98
- return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3);
99
- }
100
- }
101
- return new Date(e3);
102
- }(t3), this.init();
103
- }, m3.init = function() {
104
- var t3 = this.$d;
105
- this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds();
106
- }, m3.$utils = function() {
107
- return b;
108
- }, m3.isValid = function() {
109
- return !(this.$d.toString() === l);
110
- }, m3.isSame = function(t3, e3) {
111
- var n3 = O(t3);
112
- return this.startOf(e3) <= n3 && n3 <= this.endOf(e3);
113
- }, m3.isAfter = function(t3, e3) {
114
- return O(t3) < this.startOf(e3);
115
- }, m3.isBefore = function(t3, e3) {
116
- return this.endOf(e3) < O(t3);
117
- }, m3.$g = function(t3, e3, n3) {
118
- return b.u(t3) ? this[e3] : this.set(n3, t3);
119
- }, m3.unix = function() {
120
- return Math.floor(this.valueOf() / 1e3);
121
- }, m3.valueOf = function() {
122
- return this.$d.getTime();
123
- }, m3.startOf = function(t3, e3) {
124
- var n3 = this, r3 = !!b.u(e3) || e3, f2 = b.p(t3), l2 = function(t4, e4) {
125
- var i3 = b.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3);
126
- return r3 ? i3 : i3.endOf(a2);
127
- }, $2 = function(t4, e4) {
128
- return b.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3);
129
- }, y2 = this.$W, M3 = this.$M, m4 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
130
- switch (f2) {
131
- case h:
132
- return r3 ? l2(1, 0) : l2(31, 11);
133
- case c2:
134
- return r3 ? l2(1, M3) : l2(0, M3 + 1);
135
- case o:
136
- var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
137
- return l2(r3 ? m4 - D2 : m4 + (6 - D2), M3);
138
- case a2:
139
- case d:
140
- return $2(v2 + "Hours", 0);
141
- case u:
142
- return $2(v2 + "Minutes", 1);
143
- case s2:
144
- return $2(v2 + "Seconds", 2);
145
- case i2:
146
- return $2(v2 + "Milliseconds", 3);
147
- default:
148
- return this.clone();
149
- }
150
- }, m3.endOf = function(t3) {
151
- return this.startOf(t3, false);
152
- }, m3.$set = function(t3, e3) {
153
- var n3, o2 = b.p(t3), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n3 = {}, n3[a2] = f2 + "Date", n3[d] = f2 + "Date", n3[c2] = f2 + "Month", n3[h] = f2 + "FullYear", n3[u] = f2 + "Hours", n3[s2] = f2 + "Minutes", n3[i2] = f2 + "Seconds", n3[r2] = f2 + "Milliseconds", n3)[o2], $2 = o2 === a2 ? this.$D + (e3 - this.$W) : e3;
154
- if (o2 === c2 || o2 === h) {
155
- var y2 = this.clone().set(d, 1);
156
- y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
157
- } else
158
- l2 && this.$d[l2]($2);
159
- return this.init(), this;
160
- }, m3.set = function(t3, e3) {
161
- return this.clone().$set(t3, e3);
162
- }, m3.get = function(t3) {
163
- return this[b.p(t3)]();
164
- }, m3.add = function(r3, f2) {
165
- var d2, l2 = this;
166
- r3 = Number(r3);
167
- var $2 = b.p(f2), y2 = function(t3) {
168
- var e3 = O(l2);
169
- return b.w(e3.date(e3.date() + Math.round(t3 * r3)), l2);
170
- };
171
- if ($2 === c2)
172
- return this.set(c2, this.$M + r3);
173
- if ($2 === h)
174
- return this.set(h, this.$y + r3);
175
- if ($2 === a2)
176
- return y2(1);
177
- if ($2 === o)
178
- return y2(7);
179
- var M3 = (d2 = {}, d2[s2] = e2, d2[u] = n2, d2[i2] = t2, d2)[$2] || 1, m4 = this.$d.getTime() + r3 * M3;
180
- return b.w(m4, this);
181
- }, m3.subtract = function(t3, e3) {
182
- return this.add(-1 * t3, e3);
183
- }, m3.format = function(t3) {
184
- var e3 = this, n3 = this.$locale();
185
- if (!this.isValid())
186
- return n3.invalidDate || l;
187
- var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i3 = b.z(this), s3 = this.$H, u2 = this.$m, a3 = this.$M, o2 = n3.weekdays, c3 = n3.months, f2 = n3.meridiem, h2 = function(t4, n4, i4, s4) {
188
- return t4 && (t4[n4] || t4(e3, r3)) || i4[n4].slice(0, s4);
189
- }, d2 = function(t4) {
190
- return b.s(s3 % 12 || 12, t4, "0");
191
- }, $2 = f2 || function(t4, e4, n4) {
192
- var r4 = t4 < 12 ? "AM" : "PM";
193
- return n4 ? r4.toLowerCase() : r4;
194
- };
195
- return r3.replace(y, function(t4, r4) {
196
- return r4 || function(t5) {
197
- switch (t5) {
198
- case "YY":
199
- return String(e3.$y).slice(-2);
200
- case "YYYY":
201
- return b.s(e3.$y, 4, "0");
202
- case "M":
203
- return a3 + 1;
204
- case "MM":
205
- return b.s(a3 + 1, 2, "0");
206
- case "MMM":
207
- return h2(n3.monthsShort, a3, c3, 3);
208
- case "MMMM":
209
- return h2(c3, a3);
210
- case "D":
211
- return e3.$D;
212
- case "DD":
213
- return b.s(e3.$D, 2, "0");
214
- case "d":
215
- return String(e3.$W);
216
- case "dd":
217
- return h2(n3.weekdaysMin, e3.$W, o2, 2);
218
- case "ddd":
219
- return h2(n3.weekdaysShort, e3.$W, o2, 3);
220
- case "dddd":
221
- return o2[e3.$W];
222
- case "H":
223
- return String(s3);
224
- case "HH":
225
- return b.s(s3, 2, "0");
226
- case "h":
227
- return d2(1);
228
- case "hh":
229
- return d2(2);
230
- case "a":
231
- return $2(s3, u2, true);
232
- case "A":
233
- return $2(s3, u2, false);
234
- case "m":
235
- return String(u2);
236
- case "mm":
237
- return b.s(u2, 2, "0");
238
- case "s":
239
- return String(e3.$s);
240
- case "ss":
241
- return b.s(e3.$s, 2, "0");
242
- case "SSS":
243
- return b.s(e3.$ms, 3, "0");
244
- case "Z":
245
- return i3;
28
+ var hasRequiredDayjs_min;
29
+ function requireDayjs_min() {
30
+ if (hasRequiredDayjs_min)
31
+ return dayjs_min.exports;
32
+ hasRequiredDayjs_min = 1;
33
+ (function(module, exports) {
34
+ !function(t2, e2) {
35
+ module.exports = e2();
36
+ }(commonjsGlobal, function() {
37
+ var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u = "hour", a2 = "day", o = "week", c2 = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) {
38
+ var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100;
39
+ return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]";
40
+ } }, m2 = function(t3, e3, n3) {
41
+ var r3 = String(t3);
42
+ return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3;
43
+ }, v = { s: m2, z: function(t3) {
44
+ var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i3 = n3 % 60;
45
+ return (e3 <= 0 ? "+" : "-") + m2(r3, 2, "0") + ":" + m2(i3, 2, "0");
46
+ }, m: function t3(e3, n3) {
47
+ if (e3.date() < n3.date())
48
+ return -t3(n3, e3);
49
+ var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i3 = e3.clone().add(r3, c2), s3 = n3 - i3 < 0, u2 = e3.clone().add(r3 + (s3 ? -1 : 1), c2);
50
+ return +(-(r3 + (n3 - i3) / (s3 ? i3 - u2 : u2 - i3)) || 0);
51
+ }, a: function(t3) {
52
+ return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3);
53
+ }, p: function(t3) {
54
+ return { M: c2, y: h, w: o, d: a2, D: d, h: u, m: s2, s: i2, ms: r2, Q: f }[t3] || String(t3 || "").toLowerCase().replace(/s$/, "");
55
+ }, u: function(t3) {
56
+ return void 0 === t3;
57
+ } }, g = "en", D = {};
58
+ D[g] = M;
59
+ var p = "$isDayjsObject", S = function(t3) {
60
+ return t3 instanceof _ || !(!t3 || !t3[p]);
61
+ }, w = function t3(e3, n3, r3) {
62
+ var i3;
63
+ if (!e3)
64
+ return g;
65
+ if ("string" == typeof e3) {
66
+ var s3 = e3.toLowerCase();
67
+ D[s3] && (i3 = s3), n3 && (D[s3] = n3, i3 = s3);
68
+ var u2 = e3.split("-");
69
+ if (!i3 && u2.length > 1)
70
+ return t3(u2[0]);
71
+ } else {
72
+ var a3 = e3.name;
73
+ D[a3] = e3, i3 = a3;
74
+ }
75
+ return !r3 && i3 && (g = i3), i3 || !r3 && g;
76
+ }, O = function(t3, e3) {
77
+ if (S(t3))
78
+ return t3.clone();
79
+ var n3 = "object" == typeof e3 ? e3 : {};
80
+ return n3.date = t3, n3.args = arguments, new _(n3);
81
+ }, b = v;
82
+ b.l = w, b.i = S, b.w = function(t3, e3) {
83
+ return O(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset });
84
+ };
85
+ var _ = function() {
86
+ function M2(t3) {
87
+ this.$L = w(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p] = true;
88
+ }
89
+ var m3 = M2.prototype;
90
+ return m3.parse = function(t3) {
91
+ this.$d = function(t4) {
92
+ var e3 = t4.date, n3 = t4.utc;
93
+ if (null === e3)
94
+ return /* @__PURE__ */ new Date(NaN);
95
+ if (b.u(e3))
96
+ return /* @__PURE__ */ new Date();
97
+ if (e3 instanceof Date)
98
+ return new Date(e3);
99
+ if ("string" == typeof e3 && !/Z$/i.test(e3)) {
100
+ var r3 = e3.match($);
101
+ if (r3) {
102
+ var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3);
103
+ return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3);
104
+ }
246
105
  }
247
- return null;
248
- }(t4) || i3.replace(":", "");
249
- });
250
- }, m3.utcOffset = function() {
251
- return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
252
- }, m3.diff = function(r3, d2, l2) {
253
- var $2, y2 = this, M3 = b.p(d2), m4 = O(r3), v2 = (m4.utcOffset() - this.utcOffset()) * e2, g2 = this - m4, D2 = function() {
254
- return b.m(y2, m4);
106
+ return new Date(e3);
107
+ }(t3), this.init();
108
+ }, m3.init = function() {
109
+ var t3 = this.$d;
110
+ this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds();
111
+ }, m3.$utils = function() {
112
+ return b;
113
+ }, m3.isValid = function() {
114
+ return !(this.$d.toString() === l);
115
+ }, m3.isSame = function(t3, e3) {
116
+ var n3 = O(t3);
117
+ return this.startOf(e3) <= n3 && n3 <= this.endOf(e3);
118
+ }, m3.isAfter = function(t3, e3) {
119
+ return O(t3) < this.startOf(e3);
120
+ }, m3.isBefore = function(t3, e3) {
121
+ return this.endOf(e3) < O(t3);
122
+ }, m3.$g = function(t3, e3, n3) {
123
+ return b.u(t3) ? this[e3] : this.set(n3, t3);
124
+ }, m3.unix = function() {
125
+ return Math.floor(this.valueOf() / 1e3);
126
+ }, m3.valueOf = function() {
127
+ return this.$d.getTime();
128
+ }, m3.startOf = function(t3, e3) {
129
+ var n3 = this, r3 = !!b.u(e3) || e3, f2 = b.p(t3), l2 = function(t4, e4) {
130
+ var i3 = b.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3);
131
+ return r3 ? i3 : i3.endOf(a2);
132
+ }, $2 = function(t4, e4) {
133
+ return b.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3);
134
+ }, y2 = this.$W, M3 = this.$M, m4 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
135
+ switch (f2) {
136
+ case h:
137
+ return r3 ? l2(1, 0) : l2(31, 11);
138
+ case c2:
139
+ return r3 ? l2(1, M3) : l2(0, M3 + 1);
140
+ case o:
141
+ var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
142
+ return l2(r3 ? m4 - D2 : m4 + (6 - D2), M3);
143
+ case a2:
144
+ case d:
145
+ return $2(v2 + "Hours", 0);
146
+ case u:
147
+ return $2(v2 + "Minutes", 1);
148
+ case s2:
149
+ return $2(v2 + "Seconds", 2);
150
+ case i2:
151
+ return $2(v2 + "Milliseconds", 3);
152
+ default:
153
+ return this.clone();
154
+ }
155
+ }, m3.endOf = function(t3) {
156
+ return this.startOf(t3, false);
157
+ }, m3.$set = function(t3, e3) {
158
+ var n3, o2 = b.p(t3), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n3 = {}, n3[a2] = f2 + "Date", n3[d] = f2 + "Date", n3[c2] = f2 + "Month", n3[h] = f2 + "FullYear", n3[u] = f2 + "Hours", n3[s2] = f2 + "Minutes", n3[i2] = f2 + "Seconds", n3[r2] = f2 + "Milliseconds", n3)[o2], $2 = o2 === a2 ? this.$D + (e3 - this.$W) : e3;
159
+ if (o2 === c2 || o2 === h) {
160
+ var y2 = this.clone().set(d, 1);
161
+ y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
162
+ } else
163
+ l2 && this.$d[l2]($2);
164
+ return this.init(), this;
165
+ }, m3.set = function(t3, e3) {
166
+ return this.clone().$set(t3, e3);
167
+ }, m3.get = function(t3) {
168
+ return this[b.p(t3)]();
169
+ }, m3.add = function(r3, f2) {
170
+ var d2, l2 = this;
171
+ r3 = Number(r3);
172
+ var $2 = b.p(f2), y2 = function(t3) {
173
+ var e3 = O(l2);
174
+ return b.w(e3.date(e3.date() + Math.round(t3 * r3)), l2);
175
+ };
176
+ if ($2 === c2)
177
+ return this.set(c2, this.$M + r3);
178
+ if ($2 === h)
179
+ return this.set(h, this.$y + r3);
180
+ if ($2 === a2)
181
+ return y2(1);
182
+ if ($2 === o)
183
+ return y2(7);
184
+ var M3 = (d2 = {}, d2[s2] = e2, d2[u] = n2, d2[i2] = t2, d2)[$2] || 1, m4 = this.$d.getTime() + r3 * M3;
185
+ return b.w(m4, this);
186
+ }, m3.subtract = function(t3, e3) {
187
+ return this.add(-1 * t3, e3);
188
+ }, m3.format = function(t3) {
189
+ var e3 = this, n3 = this.$locale();
190
+ if (!this.isValid())
191
+ return n3.invalidDate || l;
192
+ var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i3 = b.z(this), s3 = this.$H, u2 = this.$m, a3 = this.$M, o2 = n3.weekdays, c3 = n3.months, f2 = n3.meridiem, h2 = function(t4, n4, i4, s4) {
193
+ return t4 && (t4[n4] || t4(e3, r3)) || i4[n4].slice(0, s4);
194
+ }, d2 = function(t4) {
195
+ return b.s(s3 % 12 || 12, t4, "0");
196
+ }, $2 = f2 || function(t4, e4, n4) {
197
+ var r4 = t4 < 12 ? "AM" : "PM";
198
+ return n4 ? r4.toLowerCase() : r4;
199
+ };
200
+ return r3.replace(y, function(t4, r4) {
201
+ return r4 || function(t5) {
202
+ switch (t5) {
203
+ case "YY":
204
+ return String(e3.$y).slice(-2);
205
+ case "YYYY":
206
+ return b.s(e3.$y, 4, "0");
207
+ case "M":
208
+ return a3 + 1;
209
+ case "MM":
210
+ return b.s(a3 + 1, 2, "0");
211
+ case "MMM":
212
+ return h2(n3.monthsShort, a3, c3, 3);
213
+ case "MMMM":
214
+ return h2(c3, a3);
215
+ case "D":
216
+ return e3.$D;
217
+ case "DD":
218
+ return b.s(e3.$D, 2, "0");
219
+ case "d":
220
+ return String(e3.$W);
221
+ case "dd":
222
+ return h2(n3.weekdaysMin, e3.$W, o2, 2);
223
+ case "ddd":
224
+ return h2(n3.weekdaysShort, e3.$W, o2, 3);
225
+ case "dddd":
226
+ return o2[e3.$W];
227
+ case "H":
228
+ return String(s3);
229
+ case "HH":
230
+ return b.s(s3, 2, "0");
231
+ case "h":
232
+ return d2(1);
233
+ case "hh":
234
+ return d2(2);
235
+ case "a":
236
+ return $2(s3, u2, true);
237
+ case "A":
238
+ return $2(s3, u2, false);
239
+ case "m":
240
+ return String(u2);
241
+ case "mm":
242
+ return b.s(u2, 2, "0");
243
+ case "s":
244
+ return String(e3.$s);
245
+ case "ss":
246
+ return b.s(e3.$s, 2, "0");
247
+ case "SSS":
248
+ return b.s(e3.$ms, 3, "0");
249
+ case "Z":
250
+ return i3;
251
+ }
252
+ return null;
253
+ }(t4) || i3.replace(":", "");
254
+ });
255
+ }, m3.utcOffset = function() {
256
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
257
+ }, m3.diff = function(r3, d2, l2) {
258
+ var $2, y2 = this, M3 = b.p(d2), m4 = O(r3), v2 = (m4.utcOffset() - this.utcOffset()) * e2, g2 = this - m4, D2 = function() {
259
+ return b.m(y2, m4);
260
+ };
261
+ switch (M3) {
262
+ case h:
263
+ $2 = D2() / 12;
264
+ break;
265
+ case c2:
266
+ $2 = D2();
267
+ break;
268
+ case f:
269
+ $2 = D2() / 3;
270
+ break;
271
+ case o:
272
+ $2 = (g2 - v2) / 6048e5;
273
+ break;
274
+ case a2:
275
+ $2 = (g2 - v2) / 864e5;
276
+ break;
277
+ case u:
278
+ $2 = g2 / n2;
279
+ break;
280
+ case s2:
281
+ $2 = g2 / e2;
282
+ break;
283
+ case i2:
284
+ $2 = g2 / t2;
285
+ break;
286
+ default:
287
+ $2 = g2;
288
+ }
289
+ return l2 ? $2 : b.a($2);
290
+ }, m3.daysInMonth = function() {
291
+ return this.endOf(c2).$D;
292
+ }, m3.$locale = function() {
293
+ return D[this.$L];
294
+ }, m3.locale = function(t3, e3) {
295
+ if (!t3)
296
+ return this.$L;
297
+ var n3 = this.clone(), r3 = w(t3, e3, true);
298
+ return r3 && (n3.$L = r3), n3;
299
+ }, m3.clone = function() {
300
+ return b.w(this.$d, this);
301
+ }, m3.toDate = function() {
302
+ return new Date(this.valueOf());
303
+ }, m3.toJSON = function() {
304
+ return this.isValid() ? this.toISOString() : null;
305
+ }, m3.toISOString = function() {
306
+ return this.$d.toISOString();
307
+ }, m3.toString = function() {
308
+ return this.$d.toUTCString();
309
+ }, M2;
310
+ }(), k = _.prototype;
311
+ return O.prototype = k, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u], ["$W", a2], ["$M", c2], ["$y", h], ["$D", d]].forEach(function(t3) {
312
+ k[t3[1]] = function(e3) {
313
+ return this.$g(e3, t3[0], t3[1]);
255
314
  };
256
- switch (M3) {
257
- case h:
258
- $2 = D2() / 12;
259
- break;
260
- case c2:
261
- $2 = D2();
262
- break;
263
- case f:
264
- $2 = D2() / 3;
265
- break;
266
- case o:
267
- $2 = (g2 - v2) / 6048e5;
268
- break;
269
- case a2:
270
- $2 = (g2 - v2) / 864e5;
271
- break;
272
- case u:
273
- $2 = g2 / n2;
274
- break;
275
- case s2:
276
- $2 = g2 / e2;
277
- break;
278
- case i2:
279
- $2 = g2 / t2;
280
- break;
281
- default:
282
- $2 = g2;
283
- }
284
- return l2 ? $2 : b.a($2);
285
- }, m3.daysInMonth = function() {
286
- return this.endOf(c2).$D;
287
- }, m3.$locale = function() {
288
- return D[this.$L];
289
- }, m3.locale = function(t3, e3) {
290
- if (!t3)
291
- return this.$L;
292
- var n3 = this.clone(), r3 = w(t3, e3, true);
293
- return r3 && (n3.$L = r3), n3;
294
- }, m3.clone = function() {
295
- return b.w(this.$d, this);
296
- }, m3.toDate = function() {
297
- return new Date(this.valueOf());
298
- }, m3.toJSON = function() {
299
- return this.isValid() ? this.toISOString() : null;
300
- }, m3.toISOString = function() {
301
- return this.$d.toISOString();
302
- }, m3.toString = function() {
303
- return this.$d.toUTCString();
304
- }, M2;
305
- }(), k = _.prototype;
306
- return O.prototype = k, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u], ["$W", a2], ["$M", c2], ["$y", h], ["$D", d]].forEach(function(t3) {
307
- k[t3[1]] = function(e3) {
308
- return this.$g(e3, t3[0], t3[1]);
309
- };
310
- }), O.extend = function(t3, e3) {
311
- return t3.$i || (t3(e3, _, O), t3.$i = true), O;
312
- }, O.locale = w, O.isDayjs = S, O.unix = function(t3) {
313
- return O(1e3 * t3);
314
- }, O.en = D[g], O.Ls = D, O.p = {}, O;
315
- });
316
- })(dayjs_min);
317
- var dayjs_minExports = dayjs_min.exports;
315
+ }), O.extend = function(t3, e3) {
316
+ return t3.$i || (t3(e3, _, O), t3.$i = true), O;
317
+ }, O.locale = w, O.isDayjs = S, O.unix = function(t3) {
318
+ return O(1e3 * t3);
319
+ }, O.en = D[g], O.Ls = D, O.p = {}, O;
320
+ });
321
+ })(dayjs_min);
322
+ return dayjs_min.exports;
323
+ }
324
+ var dayjs_minExports = requireDayjs_min();
318
325
  const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
319
326
  var zh = { exports: {} };
320
327
  (function(module, exports) {
321
328
  !function(e2, _) {
322
- module.exports = _(dayjs_minExports);
329
+ module.exports = _(requireDayjs_min());
323
330
  }(commonjsGlobal, function(e2) {
324
331
  function _(e3) {
325
332
  return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
@@ -1322,6 +1329,7 @@ const default_backend = "默认后端";
1322
1329
  const ingress_class = "Ingress 类";
1323
1330
  const port = "端口";
1324
1331
  const pod_ready_num = "Pod 就绪数量";
1332
+ const pod_complete_num = "Pod 完成数量";
1325
1333
  const pod_replicas_num = "Pod 预期数量";
1326
1334
  const edit_replicas = "编辑预期副本数";
1327
1335
  const cert = "证书";
@@ -1384,11 +1392,11 @@ const no_resource = "无{{kind}}";
1384
1392
  const port_mapping_title_tooltip = "Service 端口与 Pod 端口的映射关系。";
1385
1393
  const in_cluster_desc = "ClusterIP、NodePort 和 LoadBalancer 类型的服务,展示 ClusterIP 字段,为虚拟 IP 地址,只能在集群内部使用。";
1386
1394
  const in_cluster_ip_desc = "ClusterIP 为无头服务时,内容为空。";
1387
- const in_cluster_external_name_desc = "ExternalName 类型展示的是 externalName 字段。";
1395
+ const in_cluster_external_name_desc = "ExternalName 类型展示的是 DNS 记录。";
1388
1396
  const out_cluster_ip_desc = "ClusterIP 不支持集群外部访问。";
1389
1397
  const out_cluster_node_port_desc = "NodePort 展示<strong>节点 IP:nodeport</strong>。";
1390
- const out_cluster_lb_desc = "LoadBalancer 展示 <strong>external-IP</strong>。";
1391
- const out_external_name_desc = "ExternalName 展示为空。";
1398
+ const out_cluster_lb_desc = "LoadBalancer 展示 <strong>ingress[*].ip</strong>。";
1399
+ const out_external_name_desc = "ExternalName 展示 <strong>external-ip</strong>。";
1392
1400
  const dovetail = {
1393
1401
  copy,
1394
1402
  reset_arguments,
@@ -1472,6 +1480,7 @@ const dovetail = {
1472
1480
  ingress_class,
1473
1481
  port,
1474
1482
  pod_ready_num,
1483
+ pod_complete_num,
1475
1484
  pod_replicas_num,
1476
1485
  edit_replicas,
1477
1486
  cert,
@@ -7932,11 +7941,12 @@ class K8sOpenAPI {
7932
7941
  return response.json();
7933
7942
  }
7934
7943
  async findSchema(kind) {
7944
+ var _a;
7935
7945
  const result = this.response || await this.fetch();
7936
7946
  const schema = Object.values(result.components.schemas).find(
7937
7947
  (schema2) => {
7938
- var _a;
7939
- return (_a = schema2["x-kubernetes-group-version-kind"]) == null ? void 0 : _a.some(
7948
+ var _a2;
7949
+ return (_a2 = schema2["x-kubernetes-group-version-kind"]) == null ? void 0 : _a2.some(
7940
7950
  ({ kind: schemaKind, version: schemaVersion, group: schemaGroup }) => kind === schemaKind && this.apiVersion === `${schemaGroup ? schemaGroup + "/" : ""}${schemaVersion}`
7941
7951
  );
7942
7952
  }
@@ -7952,6 +7962,9 @@ class K8sOpenAPI {
7952
7962
  }
7953
7963
  });
7954
7964
  }
7965
+ if ((_a = schema == null ? void 0 : schema.properties) == null ? void 0 : _a.status) {
7966
+ schema == null ? true : delete schema.properties.status;
7967
+ }
7955
7968
  return schema;
7956
7969
  }
7957
7970
  }
@@ -8115,7 +8128,7 @@ const useDeleteModal = (resource) => {
8115
8128
  openDeleteConfirmModal
8116
8129
  };
8117
8130
  };
8118
- const index_r5625l = "";
8131
+ const index_wrn16i = "";
8119
8132
  const EMPTY_VALUES = [void 0, null, "", "-"];
8120
8133
  const EmptyStyle = "e5223w8";
8121
8134
  const ContentStyle$2 = "cdjsw14";
@@ -8518,8 +8531,7 @@ const ErrorContent$1 = /* @__PURE__ */ styled_default("div")({
8518
8531
  const WidgetErrorContent$1 = (props) => {
8519
8532
  const {
8520
8533
  refetch,
8521
- errorText,
8522
- hiddenRetry
8534
+ errorText
8523
8535
  } = props;
8524
8536
  const kit = useContext(kitContext);
8525
8537
  const {
@@ -8532,7 +8544,7 @@ const WidgetErrorContent$1 = (props) => {
8532
8544
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx("p", {
8533
8545
  className: cx_default(Typo.Label.l1_regular_title, "title"),
8534
8546
  children: errorText || t2("dovetail.obtain_data_error")
8535
- }), hiddenRetry ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(kit.button, {
8547
+ }), !refetch ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(kit.button, {
8536
8548
  size: "small",
8537
8549
  type: "ordinary",
8538
8550
  onClick: (e2) => {
@@ -8700,8 +8712,7 @@ const PodSelectorTable = ({ podSelectors = {} }) => {
8700
8712
  WidgetErrorContent$1,
8701
8713
  {
8702
8714
  errorText: t2("dovetail.no_resource", { kind: ` ${t2("dovetail.pod_selector")}` }),
8703
- style: { padding: "15px 0" },
8704
- hiddenRetry: true
8715
+ style: { padding: "15px 0" }
8705
8716
  }
8706
8717
  );
8707
8718
  }
@@ -8768,7 +8779,7 @@ const PortsTable = ({ service }) => {
8768
8779
  id: port2.name || ""
8769
8780
  }));
8770
8781
  if ((ports == null ? void 0 : ports.length) === 0) {
8771
- return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, { errorText: t2("dovetail.no_resource", { kind: t2("dovetail.port") }), style: { padding: "15px 0" }, hiddenRetry: true });
8782
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, { errorText: t2("dovetail.no_resource", { kind: t2("dovetail.port") }), style: { padding: "15px 0" } });
8772
8783
  }
8773
8784
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
8774
8785
  Table$1,
@@ -9397,6 +9408,12 @@ var WorkloadState = /* @__PURE__ */ ((WorkloadState2) => {
9397
9408
  WorkloadState2["WAITING"] = "waiting";
9398
9409
  return WorkloadState2;
9399
9410
  })(WorkloadState || {});
9411
+ var AccessControlAuth = /* @__PURE__ */ ((AccessControlAuth2) => {
9412
+ AccessControlAuth2["Edit"] = "Edit";
9413
+ AccessControlAuth2["Delete"] = "Delete";
9414
+ AccessControlAuth2["Create"] = "Create";
9415
+ return AccessControlAuth2;
9416
+ })(AccessControlAuth || {});
9400
9417
  function matchSelector(pod2, selector) {
9401
9418
  var _a, _b, _c;
9402
9419
  let match = true;
@@ -9821,8 +9838,9 @@ class ServiceModel extends ResourceModel {
9821
9838
  this._globalStore = _globalStore;
9822
9839
  }
9823
9840
  get displayType() {
9824
- const type2 = this._rawYaml.spec.type;
9825
- if (type2 === "ClusterIP" && !this._rawYaml.spec.clusterIP) {
9841
+ const spec = this._rawYaml.spec;
9842
+ const type2 = spec.type;
9843
+ if (type2 === "ClusterIP" && (!spec.clusterIP || spec.clusterIP === "None")) {
9826
9844
  return "Headless";
9827
9845
  }
9828
9846
  return type2;
@@ -9834,22 +9852,26 @@ class ServiceModel extends ResourceModel {
9834
9852
  var _a;
9835
9853
  return (_a = this._rawYaml.spec.ports) == null ? void 0 : _a.map((p) => {
9836
9854
  let servicePort = `${p.port}`;
9837
- if (this._rawYaml.spec.clusterIP) {
9855
+ if (this._rawYaml.spec.clusterIP && this._rawYaml.spec.clusterIP !== "None") {
9838
9856
  servicePort = `${this._rawYaml.spec.clusterIP}:${p.port}`;
9839
9857
  }
9840
- return `${servicePort} > ${p.targetPort}/${p.protocol}`;
9858
+ return {
9859
+ servicePort,
9860
+ targetPort: p.targetPort,
9861
+ protocol: p.protocol
9862
+ };
9841
9863
  });
9842
9864
  }
9843
9865
  }
9844
- const index_1lzkrja = "";
9866
+ const index_w8956m = "";
9845
9867
  const ServiceInClusterAccessComponent = ({
9846
9868
  service
9847
9869
  }) => {
9848
9870
  const spec = service._rawYaml.spec;
9849
9871
  switch (spec.type) {
9850
9872
  case ServiceTypeEnum.ExternalName:
9851
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
9852
- children: spec.externalName
9873
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
9874
+ value: service.dnsRecord
9853
9875
  });
9854
9876
  default:
9855
9877
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
@@ -9858,22 +9880,25 @@ const ServiceInClusterAccessComponent = ({
9858
9880
  }
9859
9881
  };
9860
9882
  const BreakLineStyle = "b1vtjd4k";
9883
+ const LinkStyle = "luro4rx";
9861
9884
  const ServiceOutClusterAccessComponent = ({
9862
9885
  service,
9863
9886
  clusterVip,
9864
9887
  breakLine = true
9865
9888
  }) => {
9866
- var _a, _b;
9889
+ var _a, _b, _c, _d;
9867
9890
  const spec = service._rawYaml.spec;
9891
+ const status = service._rawYaml.status;
9868
9892
  let content = "-";
9869
9893
  switch (spec.type) {
9870
9894
  case ServiceTypeEnum.NodePort:
9871
9895
  content = (_a = spec.ports) == null ? void 0 : _a.filter((v) => !!v).map((p, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(Link$1, {
9872
9896
  target: "_blank",
9873
9897
  href: `http://${clusterVip}:${p.nodePort}`,
9874
- className: breakLine ? BreakLineStyle : "",
9898
+ className: cx_default(breakLine ? BreakLineStyle : "", LinkStyle),
9875
9899
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(OverflowTooltip, {
9876
- content: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
9900
+ content: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
9901
+ className: Typo.Label.l4_regular_title,
9877
9902
  children: [clusterVip, ":", p.nodePort, !breakLine && index !== (spec.ports || []).length - 1 ? ", " : ""]
9878
9903
  }),
9879
9904
  tooltip: `${clusterVip}:${p.nodePort}`
@@ -9882,8 +9907,17 @@ const ServiceOutClusterAccessComponent = ({
9882
9907
  return /* @__PURE__ */ jsxRuntimeExports.jsx("ul", {
9883
9908
  children: content
9884
9909
  });
9910
+ case ServiceTypeEnum.ExternalName:
9911
+ content = /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
9912
+ value: (_b = spec.externalIPs) == null ? void 0 : _b.join(breakLine ? "\n" : ", ")
9913
+ });
9914
+ break;
9885
9915
  case ServiceTypeEnum.LoadBalancer:
9886
- content = (_b = spec.externalIPs) == null ? void 0 : _b.join(breakLine ? "\n" : ", ");
9916
+ content = /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
9917
+ value: (_d = (_c = status.loadBalancer) == null ? void 0 : _c.ingress) == null ? void 0 : _d.map(({
9918
+ ip
9919
+ }) => ip).join(breakLine ? "\n" : ", ")
9920
+ });
9887
9921
  break;
9888
9922
  default:
9889
9923
  content = /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
@@ -10307,7 +10341,11 @@ const TableToolBar = ({
10307
10341
  }), /* @__PURE__ */ jsxRuntimeExports.jsxs(kit.space, {
10308
10342
  children: [selectedKeys.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteManyButton, {
10309
10343
  ids: selectedKeys
10310
- }) : void 0, !hideCreate ? /* @__PURE__ */ jsxRuntimeExports.jsx(CreateButton, {}) : null]
10344
+ }) : void 0, /* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
10345
+ resource: resource == null ? void 0 : resource.name,
10346
+ action: AccessControlAuth.Create,
10347
+ children: !hideCreate ? /* @__PURE__ */ jsxRuntimeExports.jsx(CreateButton, {}) : null
10348
+ })]
10311
10349
  })]
10312
10350
  }), description ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
10313
10351
  className: DescriptionStyle,
@@ -10416,7 +10454,7 @@ const EventsTable = ({}) => {
10416
10454
  sortable: true,
10417
10455
  sorter: CommonSorter(["note"])
10418
10456
  },
10419
- AgeColumnRenderer(i18n2, { title: i18n2.t("dovetail.last_seen") })
10457
+ AgeColumnRenderer(i18n2, { title: i18n2.t("dovetail.last_seen"), width: 160 }, { isRelativeTime: false })
10420
10458
  ],
10421
10459
  [i18n2]
10422
10460
  );
@@ -10432,8 +10470,7 @@ const EventsTable = ({}) => {
10432
10470
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
10433
10471
  WidgetErrorContent$1,
10434
10472
  {
10435
- errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") }),
10436
- hiddenRetry: true
10473
+ errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") })
10437
10474
  }
10438
10475
  );
10439
10476
  }
@@ -10554,7 +10591,7 @@ const IngressRulesTable = ({ ingress }) => {
10554
10591
  }
10555
10592
  ];
10556
10593
  if ((rows == null ? void 0 : rows.length) === 0) {
10557
- return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, { errorText: t2("dovetail.no_resource", { kind: t2("dovetail.rule") }), style: { padding: "15px 0" }, hiddenRetry: true });
10594
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, { errorText: t2("dovetail.no_resource", { kind: t2("dovetail.rule") }), style: { padding: "15px 0" } });
10558
10595
  }
10559
10596
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
10560
10597
  Table$1,
@@ -10597,8 +10634,7 @@ const KeyValue = (props) => {
10597
10634
  }, key2));
10598
10635
  if (!result.length) {
10599
10636
  return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, {
10600
- errorText: empty2 || t2("dovetail.empty"),
10601
- hiddenRetry: true
10637
+ errorText: empty2 || t2("dovetail.empty")
10602
10638
  });
10603
10639
  }
10604
10640
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {
@@ -10679,12 +10715,20 @@ function K8sDropdown(props) {
10679
10715
  const { t: t2 } = useTranslation();
10680
10716
  const openForm = useOpenForm({ id: record.id });
10681
10717
  const isInShowPage = useResourceResult.action === "show";
10718
+ const { data: canEditData } = useCan({
10719
+ resource: resource == null ? void 0 : resource.name,
10720
+ action: AccessControlAuth.Edit
10721
+ });
10722
+ const { data: canDeleteData } = useCan({
10723
+ resource: resource == null ? void 0 : resource.name,
10724
+ action: AccessControlAuth.Delete
10725
+ });
10682
10726
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
10683
10727
  /* @__PURE__ */ jsxRuntimeExports.jsx(
10684
10728
  kit.dropdown,
10685
10729
  {
10686
10730
  overlay: /* @__PURE__ */ jsxRuntimeExports.jsxs(kit.menu, { children: [
10687
- isInShowPage ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
10731
+ isInShowPage || (canEditData == null ? void 0 : canEditData.can) === false ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
10688
10732
  kit.menuItem,
10689
10733
  {
10690
10734
  onClick: openForm,
@@ -10707,8 +10751,8 @@ function K8sDropdown(props) {
10707
10751
  }
10708
10752
  ),
10709
10753
  props.children,
10710
- /* @__PURE__ */ jsxRuntimeExports.jsx(kit.divider, { style: { margin: 0 } }),
10711
- /* @__PURE__ */ jsxRuntimeExports.jsx(
10754
+ (canDeleteData == null ? void 0 : canDeleteData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(kit.divider, { style: { margin: 0 } }) : null,
10755
+ (canDeleteData == null ? void 0 : canDeleteData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(
10712
10756
  kit.menuItem,
10713
10757
  {
10714
10758
  danger: true,
@@ -10717,12 +10761,13 @@ function K8sDropdown(props) {
10717
10761
  },
10718
10762
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: TrashBinDelete16Icon, children: t2("dovetail.delete") })
10719
10763
  }
10720
- )
10764
+ ) : null
10721
10765
  ] }),
10766
+ trigger: ["click"],
10722
10767
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
10723
10768
  kit.button,
10724
10769
  {
10725
- type: size === "large" ? "quiet" : "tertiary",
10770
+ type: "quiet",
10726
10771
  size: size === "large" ? "middle" : "small",
10727
10772
  prefixIcon: size === "large" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
10728
10773
  Icon$1,
@@ -10747,7 +10792,7 @@ function Tabs(props) {
10747
10792
  return /* @__PURE__ */ jsxRuntimeExports.jsx(kit.tabsTabPane, { tab: tab.title, children: tab.children }, tab.title);
10748
10793
  }) });
10749
10794
  }
10750
- const ShowContent_1iepja4 = "";
10795
+ const ShowContent_1947rqs = "";
10751
10796
  const ShowContentWrapperStyle = "s9agep2";
10752
10797
  const BackButton = "bo89gfi";
10753
10798
  const ToolBarWrapper = "t1ohe42f";
@@ -10893,13 +10938,17 @@ const ShowContent = (props) => {
10893
10938
  state: stateDisplay
10894
10939
  }) : void 0]
10895
10940
  }), /* @__PURE__ */ jsxRuntimeExports.jsxs(kit.space, {
10896
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx(kit.button, {
10897
- style: {
10898
- marginRight: 8
10899
- },
10900
- onClick: openForm,
10901
- prefixIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(EditPen16GradientBlueIcon, {}),
10902
- children: t2("dovetail.edit_yaml")
10941
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
10942
+ resource: resource == null ? void 0 : resource.name,
10943
+ action: AccessControlAuth.Edit,
10944
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(kit.button, {
10945
+ style: {
10946
+ marginRight: 8
10947
+ },
10948
+ onClick: openForm,
10949
+ prefixIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(EditPen16GradientBlueIcon, {}),
10950
+ children: t2("dovetail.edit_yaml")
10951
+ })
10903
10952
  }), /* @__PURE__ */ jsxRuntimeExports.jsx(Dropdown, {
10904
10953
  record,
10905
10954
  size: "large"
@@ -10950,7 +10999,7 @@ function KeyValueSecret(props) {
10950
10999
  Button,
10951
11000
  {
10952
11001
  type: "quiet",
10953
- prefixIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: ViewEye16GrayIcon }),
11002
+ prefixIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: hideSecret ? ViewEye16GrayIcon : EntityFilterIgnoreGradient16GrayIcon }),
10954
11003
  onClick: () => setHideSecret((v) => !v),
10955
11004
  children: hideSecret ? i18n2.t("dovetail.show_data_value") : i18n2.t("dovetail.hide_data_value")
10956
11005
  }
@@ -10997,12 +11046,11 @@ const WorkloadPodsTable = ({
10997
11046
  if ((dataSource == null ? void 0 : dataSource.length) === 0) {
10998
11047
  return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, {
10999
11048
  errorText: i18n2.t("dovetail.no_resource", {
11000
- kind: i18n2.t("dovetail.pod")
11049
+ kind: ` ${i18n2.t("dovetail.pod")}`
11001
11050
  }),
11002
11051
  style: {
11003
11052
  padding: "15px 0"
11004
- },
11005
- hiddenRetry: true
11053
+ }
11006
11054
  });
11007
11055
  }
11008
11056
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(kit.space, {
@@ -11186,16 +11234,23 @@ function EditField(props) {
11186
11234
  const {
11187
11235
  i18n: i18n2
11188
11236
  } = useTranslation();
11189
- return /* @__PURE__ */ jsxRuntimeExports.jsx(kit.button, {
11190
- className: EditButtonStyle,
11191
- type: "link",
11192
- onClick: () => {
11193
- pushModal({
11194
- component: EditFieldModal,
11195
- props: modalProps
11196
- });
11197
- },
11198
- children: i18n2.t("dovetail.edit")
11237
+ const {
11238
+ resource
11239
+ } = useResource();
11240
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
11241
+ resource: resource == null ? void 0 : resource.name,
11242
+ action: AccessControlAuth.Edit,
11243
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(kit.button, {
11244
+ className: EditButtonStyle,
11245
+ type: "link",
11246
+ onClick: () => {
11247
+ pushModal({
11248
+ component: EditFieldModal,
11249
+ props: modalProps
11250
+ });
11251
+ },
11252
+ children: i18n2.t("dovetail.edit")
11253
+ })
11199
11254
  });
11200
11255
  }
11201
11256
  const index_c9frt4 = "";
@@ -11337,7 +11392,7 @@ function WorkloadReplicas({
11337
11392
  children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("tr", {
11338
11393
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx("td", {
11339
11394
  className: cx_default(LabelStyle, Typo.Label.l3_regular),
11340
- children: t2("dovetail.pod_ready_num")
11395
+ children: record.kind === "Job" ? t2("dovetail.pod_complete_num") : t2("dovetail.pod_ready_num")
11341
11396
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("td", {
11342
11397
  className: cx_default(ValueStyle, Typo.Label.l3_regular),
11343
11398
  children: readyReplicas
@@ -11527,7 +11582,7 @@ const EventsTableTabField = () => {
11527
11582
  key: "event",
11528
11583
  path: [],
11529
11584
  renderContent: () => {
11530
- return /* @__PURE__ */ jsxRuntimeExports.jsx(EventsTable, {});
11585
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { padding: "0 24px", height: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(EventsTable, {}) });
11531
11586
  }
11532
11587
  };
11533
11588
  };
@@ -11563,17 +11618,17 @@ const AnnotationsField = (i18n2) => ({
11563
11618
  return /* @__PURE__ */ jsxRuntimeExports.jsx(KeyValueAnnotation, { data: value2, expandable: true });
11564
11619
  }
11565
11620
  });
11566
- const ServiceInnerClusterAccessField = (i18n2) => ({
11621
+ const ServiceInnerClusterAccessField = () => ({
11567
11622
  key: "innerClusterAccess",
11568
- title: i18n2.t("dovetail.in_cluster_access"),
11623
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceInClusterAccessTitle, {}),
11569
11624
  path: [],
11570
11625
  renderContent: (_, record) => {
11571
11626
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceInClusterAccessComponent, { service: record });
11572
11627
  }
11573
11628
  });
11574
- const ServiceOutClusterAccessField = (i18n2, clusterVip) => ({
11629
+ const ServiceOutClusterAccessField = (clusterVip) => ({
11575
11630
  key: "innerClusterAccess",
11576
- title: i18n2.t("dovetail.out_cluster_access"),
11631
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceOutClusterAccessTitle, {}),
11577
11632
  path: [],
11578
11633
  renderContent: (_, record) => {
11579
11634
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceOutClusterAccessComponent, { service: record, clusterVip, breakLine: false });
@@ -17264,6 +17319,10 @@ const PodLog = ({
17264
17319
  signal
17265
17320
  }).then((response) => {
17266
17321
  var _a3;
17322
+ if (response.status !== 200) {
17323
+ setLogs([]);
17324
+ return;
17325
+ }
17267
17326
  const reader = (_a3 = response.body) == null ? void 0 : _a3.getReader();
17268
17327
  if (!reader) {
17269
17328
  return;
@@ -17284,6 +17343,7 @@ const PodLog = ({
17284
17343
  }
17285
17344
  const total = buffer + chunk.slice(0, lastIndex);
17286
17345
  buffer = chunk.slice(lastIndex + 1);
17346
+ console.log(total);
17287
17347
  const formattedLogs = total.split("\n").filter(Boolean).map((line) => {
17288
17348
  const [timestamps, ...content] = line.split(" ");
17289
17349
  const t22 = new Date(timestamps).toLocaleString();
@@ -17373,8 +17433,7 @@ const PodLog = ({
17373
17433
  },
17374
17434
  errorText: t2("dovetail.no_resource", {
17375
17435
  kind: t2("dovetail.previous_log")
17376
- }),
17377
- hiddenRetry: true
17436
+ })
17378
17437
  }) : /* @__PURE__ */ jsxRuntimeExports.jsx(LogViewer, {
17379
17438
  innerRef: logViewerRef,
17380
17439
  height: "100%",
@@ -17491,7 +17550,7 @@ const MonacoYamlEditor$1 = (props) => {
17491
17550
  model.dispose();
17492
17551
  editor.dispose();
17493
17552
  };
17494
- }, [defaultValue, schema, id, readOnly, isScrollOnFocus, getInstance]);
17553
+ }, [schema, id, readOnly, isScrollOnFocus, getInstance]);
17495
17554
  useEffect(() => {
17496
17555
  const editor = instanceRef.current.editor;
17497
17556
  if (editor) {
@@ -17600,8 +17659,7 @@ const NetworkPolicyRulesViewer = ({
17600
17659
  }),
17601
17660
  style: {
17602
17661
  padding: "15px 0"
17603
- },
17604
- hiddenRetry: true
17662
+ }
17605
17663
  });
17606
17664
  }
17607
17665
  return /* @__PURE__ */ jsxRuntimeExports.jsx(MonacoYamlEditor$1, {
@@ -17682,7 +17740,7 @@ const PodContainersTable = ({
17682
17740
  [containerStatuses, initContainerStatuses]
17683
17741
  );
17684
17742
  if (dataSource.length === 0) {
17685
- return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, { errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.container") }), style: { padding: "15px 0" }, hiddenRetry: true });
17743
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, { errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.container") }), style: { padding: "15px 0" } });
17686
17744
  }
17687
17745
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17688
17746
  Table$1,
@@ -17920,8 +17978,12 @@ function WorkloadDropdown(props) {
17920
17978
  const { resource } = useResource();
17921
17979
  const { mutateAsync } = useUpdate();
17922
17980
  const { t: t2 } = useTranslation();
17981
+ const { data: canEditData } = useCan({
17982
+ resource: resource == null ? void 0 : resource.name,
17983
+ action: AccessControlAuth.Edit
17984
+ });
17923
17985
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(K8sDropdown, { record, size, children: [
17924
- /* @__PURE__ */ jsxRuntimeExports.jsx(
17986
+ (canEditData == null ? void 0 : canEditData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(
17925
17987
  kit.menu.Item,
17926
17988
  {
17927
17989
  onClick: async () => {
@@ -17960,7 +18022,7 @@ function WorkloadDropdown(props) {
17960
18022
  },
17961
18023
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: Retry16GradientBlueIcon, children: t2("dovetail.redeploy") })
17962
18024
  }
17963
- ),
18025
+ ) : null,
17964
18026
  children
17965
18027
  ] });
17966
18028
  }
@@ -17969,10 +18031,14 @@ function ReplicasDropdown(props) {
17969
18031
  const kit = useUIKit();
17970
18032
  const { t: t2 } = useTranslation();
17971
18033
  const formRef = useRef(null);
17972
- const { action } = useResource();
18034
+ const { action, resource } = useResource();
17973
18035
  const isInShowPage = action === "show";
18036
+ const { data: canEditData } = useCan({
18037
+ resource: resource == null ? void 0 : resource.name,
18038
+ action: AccessControlAuth.Edit
18039
+ });
17974
18040
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(WorkloadDropdown, { record, size, children: [
17975
- isInShowPage ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
18041
+ isInShowPage || (canEditData == null ? void 0 : canEditData.can) === false ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
17976
18042
  kit.menu.Item,
17977
18043
  {
17978
18044
  onClick: () => {
@@ -18131,7 +18197,7 @@ function parseJSON(value2) {
18131
18197
  return void 0;
18132
18198
  }
18133
18199
  }
18134
- const index_p3hly3 = "";
18200
+ const index_ccf0kl = "";
18135
18201
  const SelectStyle = "sj0ggy";
18136
18202
  const SearchInputStyle = "s1eo8uqs";
18137
18203
  const SelectContentStyle = "s64gojc";
@@ -18215,7 +18281,7 @@ const NamespacesFilter = ({
18215
18281
  },
18216
18282
  children: label2
18217
18283
  }) : /* @__PURE__ */ jsxRuntimeExports.jsx(kit.token, {
18218
- className: isCountToken ? CountTokenStyle : TokenStyle,
18284
+ className: cx_default(isCountToken ? CountTokenStyle : TokenStyle, isCountToken ? "" : "closable-token"),
18219
18285
  closable,
18220
18286
  onClose,
18221
18287
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(kit.overflowTooltip, {
@@ -18225,6 +18291,8 @@ const NamespacesFilter = ({
18225
18291
  },
18226
18292
  maxTagCount: 1,
18227
18293
  optionLabelProp: "label",
18294
+ showArrow: true,
18295
+ showSearch: false,
18228
18296
  multiple: true,
18229
18297
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx(kit.option, {
18230
18298
  value: "_all",
@@ -18295,8 +18363,7 @@ function ListPage(props) {
18295
18363
  children: !(tableProps.data.length || tableProps.loading) ? /* @__PURE__ */ jsxRuntimeExports.jsx(WidgetErrorContent$1, {
18296
18364
  errorText: tableProps.empty || t2("dovetail.no_resource", {
18297
18365
  kind: ` ${config.kind}`
18298
- }),
18299
- hiddenRetry: true
18366
+ })
18300
18367
  }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Table$1, {
18301
18368
  ...tableProps,
18302
18369
  empty: tableProps.empty || t2("dovetail.no_resource", {
@@ -18312,14 +18379,14 @@ function ListPage(props) {
18312
18379
  });
18313
18380
  }
18314
18381
  function ResourceList(props) {
18315
- const { formatter, name: name2, columns, Dropdown, noShow } = props.config;
18382
+ const { formatter, columns, Dropdown, noShow } = props.config;
18316
18383
  const { i18n: i18n2 } = useTranslation();
18317
18384
  const nameRenderer = noShow ? PlainTextNameColumnRenderer(i18n2) : NameColumnRenderer(i18n2);
18318
18385
  const { tableProps, selectedKeys } = useEagleTable({
18319
18386
  useTableParams: {},
18320
18387
  columns: [nameRenderer, ...(columns == null ? void 0 : columns()) || []],
18321
18388
  tableProps: {
18322
- currentSize: 10
18389
+ currentSize: 50
18323
18390
  },
18324
18391
  formatter,
18325
18392
  Dropdown
@@ -22182,7 +22249,7 @@ const Separator = () => {
22182
22249
  });
22183
22250
  };
22184
22251
  const MonacoYamlEditor = React__default.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$2));
22185
- const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-bbf8d9dd.js"));
22252
+ const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-1aeca078.js"));
22186
22253
  const YamlEditorComponent = forwardRef(
22187
22254
  function YamlEditorComponent2(props, ref) {
22188
22255
  const {
@@ -22385,7 +22452,7 @@ const YamlEditorComponent = forwardRef(
22385
22452
  ]
22386
22453
  }
22387
22454
  ),
22388
- /* @__PURE__ */ jsxRuntimeExports.jsx(
22455
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
22389
22456
  "div",
22390
22457
  {
22391
22458
  style: {
@@ -22394,29 +22461,32 @@ const YamlEditorComponent = forwardRef(
22394
22461
  height: height || "500px",
22395
22462
  zIndex: 1
22396
22463
  },
22397
- children: isDiff ? /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: value2 }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
22398
- MonacoYamlDiffEditor,
22399
- {
22400
- id: props.id,
22401
- origin: defaultValue,
22402
- modified: value2,
22403
- height
22404
- }
22405
- ) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: value2 }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
22406
- MonacoYamlEditor,
22407
- {
22408
- id: props.id,
22409
- getInstance,
22410
- defaultValue,
22411
- height,
22412
- onChange,
22413
- onValidate,
22414
- onEditorCreate,
22415
- onBlur: props.onBlur,
22416
- schema,
22417
- readOnly
22418
- }
22419
- ) })
22464
+ children: [
22465
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: value2 }), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: isDiff ? "none" : "block" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
22466
+ MonacoYamlEditor,
22467
+ {
22468
+ id: props.id,
22469
+ getInstance,
22470
+ defaultValue: value2,
22471
+ height,
22472
+ onChange,
22473
+ onValidate,
22474
+ onEditorCreate,
22475
+ onBlur: props.onBlur,
22476
+ schema,
22477
+ readOnly
22478
+ }
22479
+ ) }) }),
22480
+ isDiff ? /* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: value2 }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
22481
+ MonacoYamlDiffEditor,
22482
+ {
22483
+ id: props.id,
22484
+ origin: defaultValue,
22485
+ modified: value2,
22486
+ height
22487
+ }
22488
+ ) }) : null
22489
+ ]
22420
22490
  }
22421
22491
  )
22422
22492
  ]
@@ -23033,8 +23103,12 @@ function CronJobDropdown(props) {
23033
23103
  const { resource } = useResource();
23034
23104
  const { mutateAsync } = useUpdate();
23035
23105
  const { t: t2 } = useTranslation();
23106
+ const { data: canEditData } = useCan({
23107
+ resource: resource == null ? void 0 : resource.name,
23108
+ action: AccessControlAuth.Edit
23109
+ });
23036
23110
  const suspended2 = Boolean(spec == null ? void 0 : spec.suspend);
23037
- return /* @__PURE__ */ jsxRuntimeExports.jsx(K8sDropdown, { record, size, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
23111
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(K8sDropdown, { record, size, children: (canEditData == null ? void 0 : canEditData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(
23038
23112
  kit.menu.Item,
23039
23113
  {
23040
23114
  onClick: async () => {
@@ -23073,7 +23147,7 @@ function CronJobDropdown(props) {
23073
23147
  },
23074
23148
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: suspended2 ? RecoverContinue16GradientBlueIcon : Pause16GradientBlueIcon, children: t2(suspended2 ? "dovetail.resume" : "dovetail.suspend") })
23075
23149
  }
23076
- ) });
23150
+ ) : null });
23077
23151
  }
23078
23152
  const index_1wzdp7m = "";
23079
23153
  const WrapperStyle = "wfg6u6g";
@@ -23439,6 +23513,7 @@ const WorkloadRestartsColumnRenderer = (i18n2) => {
23439
23513
  display: true,
23440
23514
  width: 120,
23441
23515
  dataIndex,
23516
+ align: "right",
23442
23517
  title: i18n2.t("dovetail.restarts"),
23443
23518
  sortable: false
23444
23519
  };
@@ -23467,7 +23542,9 @@ const ReplicasColumnRenderer = (i18n2) => {
23467
23542
  }
23468
23543
  };
23469
23544
  };
23470
- const AgeColumnRenderer = (i18n2, config) => {
23545
+ const AgeColumnRenderer = (i18n2, config, {
23546
+ isRelativeTime = true
23547
+ } = {}) => {
23471
23548
  const dataIndex = ["metadata", "creationTimestamp"];
23472
23549
  return {
23473
23550
  key: "creationTimestamp",
@@ -23486,8 +23563,10 @@ const AgeColumnRenderer = (i18n2, config) => {
23486
23563
  return -1;
23487
23564
  },
23488
23565
  render: (value2) => {
23489
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Time, {
23566
+ return isRelativeTime ? /* @__PURE__ */ jsxRuntimeExports.jsx(Time, {
23490
23567
  date: new Date(value2)
23568
+ }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
23569
+ value: dayjs(value2).format("YYYY-MM-DD hh:mm:ss")
23491
23570
  });
23492
23571
  },
23493
23572
  ...config
@@ -23548,6 +23627,7 @@ const DurationColumnRenderer = (i18n2) => {
23548
23627
  sortable: true,
23549
23628
  sorter: CommonSorter(dataIndex),
23550
23629
  width: 120,
23630
+ align: "right",
23551
23631
  render: (v) => {
23552
23632
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DurationTime, {
23553
23633
  value: v
@@ -23567,32 +23647,38 @@ const ServiceTypeColumnRenderer = (i18n2) => {
23567
23647
  sorter: CommonSorter(dataIndex)
23568
23648
  };
23569
23649
  };
23570
- const ServiceInClusterAccessColumnRenderer = (i18n2) => {
23571
- return {
23572
- key: "inClusterAccess",
23573
- title: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
23574
- overlayClassName: ServiceClusterTooltipStyle,
23575
- title: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
23650
+ function ServiceInClusterAccessTitle() {
23651
+ const {
23652
+ i18n: i18n2
23653
+ } = useTranslation();
23654
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
23655
+ overlayClassName: ServiceClusterTooltipStyle,
23656
+ title: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
23657
+ style: {
23658
+ lineHeight: "22px"
23659
+ },
23660
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23661
+ children: i18n2.t("dovetail.in_cluster_desc")
23662
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23663
+ children: i18n2.t("dovetail.in_cluster_ip_desc")
23664
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, {
23576
23665
  style: {
23577
- lineHeight: "22px"
23578
- },
23579
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23580
- children: i18n2.t("dovetail.in_cluster_desc")
23581
- }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23582
- children: i18n2.t("dovetail.in_cluster_ip_desc")
23583
- }), /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, {
23584
- style: {
23585
- margin: "6px 0"
23586
- }
23587
- }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23588
- children: i18n2.t("dovetail.in_cluster_external_name_desc")
23589
- })]
23590
- }),
23591
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
23592
- className: DashedTitleStyle,
23593
- children: i18n2.t("dovetail.in_cluster_access")
23594
- })
23666
+ margin: "6px 0"
23667
+ }
23668
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23669
+ children: i18n2.t("dovetail.in_cluster_external_name_desc")
23670
+ })]
23595
23671
  }),
23672
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
23673
+ className: DashedTitleStyle,
23674
+ children: i18n2.t("dovetail.in_cluster_access")
23675
+ })
23676
+ });
23677
+ }
23678
+ const ServiceInClusterAccessColumnRenderer = () => {
23679
+ return {
23680
+ key: "inClusterAccess",
23681
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceInClusterAccessTitle, {}),
23596
23682
  display: true,
23597
23683
  dataIndex: [],
23598
23684
  width: 160,
@@ -23603,34 +23689,40 @@ const ServiceInClusterAccessColumnRenderer = (i18n2) => {
23603
23689
  }
23604
23690
  };
23605
23691
  };
23606
- const ServiceOutClusterAccessColumnRenderer = (i18n2, clusterVip) => {
23692
+ function ServiceOutClusterAccessTitle() {
23693
+ const {
23694
+ i18n: i18n2
23695
+ } = useTranslation();
23696
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
23697
+ overlayClassName: ServiceClusterTooltipStyle,
23698
+ title: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
23699
+ style: {
23700
+ lineHeight: "22px"
23701
+ },
23702
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23703
+ children: i18n2.t("dovetail.out_cluster_ip_desc")
23704
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23705
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trans, {
23706
+ i18nKey: "dovetail.out_cluster_node_port_desc"
23707
+ })
23708
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23709
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trans, {
23710
+ i18nKey: "dovetail.out_cluster_lb_desc"
23711
+ })
23712
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23713
+ children: i18n2.t("dovetail.out_external_name_desc")
23714
+ })]
23715
+ }),
23716
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
23717
+ className: DashedTitleStyle,
23718
+ children: i18n2.t("dovetail.out_cluster_access")
23719
+ })
23720
+ });
23721
+ }
23722
+ const ServiceOutClusterAccessColumnRenderer = (clusterVip) => {
23607
23723
  return {
23608
23724
  key: "outClusterAccess",
23609
- title: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, {
23610
- overlayClassName: ServiceClusterTooltipStyle,
23611
- title: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
23612
- style: {
23613
- lineHeight: "22px"
23614
- },
23615
- children: [/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23616
- children: i18n2.t("dovetail.out_cluster_ip_desc")
23617
- }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23618
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trans, {
23619
- i18nKey: "dovetail.out_cluster_node_port_desc"
23620
- })
23621
- }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23622
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trans, {
23623
- i18nKey: "dovetail.out_cluster_lb_desc"
23624
- })
23625
- }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23626
- children: i18n2.t("dovetail.out_external_name_desc")
23627
- })]
23628
- }),
23629
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
23630
- className: DashedTitleStyle,
23631
- children: i18n2.t("dovetail.out_cluster_access")
23632
- })
23633
- }),
23725
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx(ServiceOutClusterAccessTitle, {}),
23634
23726
  display: true,
23635
23727
  dataIndex: [],
23636
23728
  width: 160,
@@ -23653,6 +23745,11 @@ const PodWorkloadColumnRenderer = (i18n2) => {
23653
23745
  sorter: CommonSorter(dataIndex),
23654
23746
  width: 160,
23655
23747
  render(value2, record) {
23748
+ if (!(value2 == null ? void 0 : value2.length)) {
23749
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, {
23750
+ value: ""
23751
+ });
23752
+ }
23656
23753
  return value2.map((o) => /* @__PURE__ */ jsxRuntimeExports.jsx(ReferenceLink, {
23657
23754
  ownerReference: o,
23658
23755
  namespace: record.metadata.namespace || "default"
@@ -23787,10 +23884,21 @@ const PortMappingColumnRenderer = (i18n2) => {
23787
23884
  display: true,
23788
23885
  dataIndex: ["displayPortMapping"],
23789
23886
  width: 300,
23790
- render(value2) {
23791
- const content = value2.map((v) => /* @__PURE__ */ jsxRuntimeExports.jsx(OverflowTooltip, {
23792
- content: v
23793
- }, v));
23887
+ render(value2, record) {
23888
+ var _a;
23889
+ const content = (_a = record.displayPortMapping) == null ? void 0 : _a.map((v) => /* @__PURE__ */ jsxRuntimeExports.jsx(OverflowTooltip, {
23890
+ content: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
23891
+ style: {
23892
+ whiteSpace: "pre"
23893
+ },
23894
+ children: [record.displayType === "NodePort" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Link$1, {
23895
+ href: `//${v.servicePort}`,
23896
+ target: "_blank",
23897
+ children: v.servicePort
23898
+ }) : v.servicePort, " > ", v.targetPort, "/", v.protocol]
23899
+ }),
23900
+ tooltip: `${v.servicePort} > ${v.targetPort}/${v.protocol}`
23901
+ }, v.servicePort));
23794
23902
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {
23795
23903
  children: content
23796
23904
  });
@@ -23880,7 +23988,7 @@ const useEagleTable = (params) => {
23880
23988
  };
23881
23989
  const styles = "";
23882
23990
  const Dovetail = (props) => {
23883
- const { resourcesConfig, urlPrefix = "", Layout: Layout2, history, globalStore } = props;
23991
+ const { resourcesConfig, urlPrefix = "", Layout: Layout2, history, globalStore, accessControlProvider } = props;
23884
23992
  const msg = useMessage();
23885
23993
  const notCustomResources = useMemo(() => {
23886
23994
  return resourcesConfig.filter((c2) => !c2.isCustom);
@@ -23924,6 +24032,7 @@ const Dovetail = (props) => {
23924
24032
  liveMode: "auto",
23925
24033
  disableTelemetry: true
23926
24034
  },
24035
+ accessControlProvider,
23927
24036
  resources: resourcesConfig.map((c2) => {
23928
24037
  return {
23929
24038
  name: c2.name,
@@ -24079,187 +24188,190 @@ const relationPlugin = new RelationPlugin();
24079
24188
  const ProviderPlugins = [relationPlugin, modelPlugin];
24080
24189
  const dovetailRefineI18n = i18n;
24081
24190
  export {
24082
- ResourceList as $,
24191
+ CreateButton as $,
24083
24192
  AgeColumnRenderer as A,
24084
- useOpenForm as B,
24193
+ useEdit as B,
24085
24194
  CommonSorter as C,
24086
24195
  DurationColumnRenderer as D,
24087
- Breadcrumb as E,
24088
- NameInputWidget as F,
24089
- dnsSubDomainRules as G,
24090
- rfc1123LabelRules as H,
24196
+ useGlobalStore as E,
24197
+ useOpenForm as F,
24198
+ Breadcrumb as G,
24199
+ NameInputWidget as H,
24091
24200
  IngressRulesColumnRenderer as I,
24092
- rfc1035LabelRules as J,
24093
- NamespaceSelectWidget as K,
24094
- namespaceRules as L,
24095
- KeyValueListWidget as M,
24201
+ dnsSubDomainRules as J,
24202
+ rfc1123LabelRules as K,
24203
+ rfc1035LabelRules as L,
24204
+ NamespaceSelectWidget as M,
24096
24205
  NameColumnRenderer as N,
24097
- MetadataForm as O,
24206
+ namespaceRules as O,
24098
24207
  PlainTextNameColumnRenderer as P,
24099
- PageShow as Q,
24208
+ KeyValueListWidget as Q,
24100
24209
  ReplicasColumnRenderer as R,
24101
24210
  StateDisplayColumnRenderer as S,
24102
- Time as T,
24103
- ConditionsTable as U,
24104
- PodContainersTable as V,
24211
+ MetadataForm as T,
24212
+ PageShow as U,
24213
+ Time as V,
24105
24214
  WorkloadImageColumnRenderer as W,
24106
- WorkloadDropdown as X,
24107
- ReplicasDropdown as Y,
24108
- CreateButton as Z,
24109
- ImageNames as _,
24215
+ ConditionsTable as X,
24216
+ PodContainersTable as Y,
24217
+ WorkloadDropdown as Z,
24218
+ ReplicasDropdown as _,
24110
24219
  useDeleteModal as a,
24111
- EditButton as a$,
24112
- ResourceShow as a0,
24113
- ResourceForm as a1,
24114
- ResourceCRUD as a2,
24115
- WorkloadPodsTable as a3,
24116
- CronJobDropdown as a4,
24117
- ResourceUsageBar as a5,
24118
- WorkloadReplicasForm as a6,
24119
- WorkloadReplicas as a7,
24120
- CronjobJobsTable as a8,
24121
- KeyValue as a9,
24122
- ServiceOutClusterAccessField as aA,
24123
- PodSelectorField as aB,
24124
- PortsTableField as aC,
24125
- DurationField as aD,
24126
- EventsTab as aE,
24127
- PodLogTab as aF,
24128
- BasicGroup as aG,
24129
- PodsGroup as aH,
24130
- PodContainersGroup as aI,
24131
- ServicePodsGroup as aJ,
24132
- ConditionsGroup as aK,
24133
- SecretDataGroup as aL,
24134
- JobsGroup as aM,
24135
- IngressRulesGroup as aN,
24136
- PodSelectorGroup as aO,
24137
- PortsGroup as aP,
24138
- DataGroup as aQ,
24139
- NetworkPolicyIngressRulesGroup as aR,
24140
- NetworkPolicyEgressRulesGroup as aS,
24141
- ShowGroupComponent as aT,
24142
- ShowContent as aU,
24143
- DeleteManyButton as aV,
24144
- ListPage as aW,
24145
- StateTagStyle as aX,
24146
- StateTag as aY,
24147
- DrawerShow as aZ,
24148
- Menu as a_,
24149
- KeyValueAnnotation as aa,
24150
- KeyValueSecret as ab,
24151
- Separator as ac,
24152
- YamlEditorComponent as ad,
24153
- DeleteButton as ae,
24154
- Layout as af,
24155
- AreaType as ag,
24156
- ImageField as ah,
24157
- ReplicaField as ai,
24158
- ConditionsField as aj,
24159
- PodsField as ak,
24160
- JobsField as al,
24161
- DataField as am,
24162
- SecretDataField as an,
24163
- StartTimeField as ao,
24164
- ServiceTypeField as ap,
24165
- ClusterIpField as aq,
24166
- SessionAffinityField as ar,
24167
- ServicePodsField as as,
24168
- IngressRulesTableTabField as at,
24169
- EventsTableTabField as au,
24170
- NamespaceField as av,
24171
- AgeField as aw,
24172
- LabelsField as ax,
24173
- AnnotationsField as ay,
24174
- ServiceInnerClusterAccessField as az,
24220
+ DrawerShow as a$,
24221
+ ImageNames as a0,
24222
+ ResourceList as a1,
24223
+ ResourceShow as a2,
24224
+ ResourceForm as a3,
24225
+ ResourceCRUD as a4,
24226
+ WorkloadPodsTable as a5,
24227
+ CronJobDropdown as a6,
24228
+ ResourceUsageBar as a7,
24229
+ WorkloadReplicasForm as a8,
24230
+ WorkloadReplicas as a9,
24231
+ AnnotationsField as aA,
24232
+ ServiceInnerClusterAccessField as aB,
24233
+ ServiceOutClusterAccessField as aC,
24234
+ PodSelectorField as aD,
24235
+ PortsTableField as aE,
24236
+ DurationField as aF,
24237
+ EventsTab as aG,
24238
+ PodLogTab as aH,
24239
+ BasicGroup as aI,
24240
+ PodsGroup as aJ,
24241
+ PodContainersGroup as aK,
24242
+ ServicePodsGroup as aL,
24243
+ ConditionsGroup as aM,
24244
+ SecretDataGroup as aN,
24245
+ JobsGroup as aO,
24246
+ IngressRulesGroup as aP,
24247
+ PodSelectorGroup as aQ,
24248
+ PortsGroup as aR,
24249
+ DataGroup as aS,
24250
+ NetworkPolicyIngressRulesGroup as aT,
24251
+ NetworkPolicyEgressRulesGroup as aU,
24252
+ ShowGroupComponent as aV,
24253
+ ShowContent as aW,
24254
+ DeleteManyButton as aX,
24255
+ ListPage as aY,
24256
+ StateTagStyle as aZ,
24257
+ StateTag as a_,
24258
+ CronjobJobsTable as aa,
24259
+ KeyValue as ab,
24260
+ KeyValueAnnotation as ac,
24261
+ KeyValueSecret as ad,
24262
+ Separator as ae,
24263
+ YamlEditorComponent as af,
24264
+ DeleteButton as ag,
24265
+ Layout as ah,
24266
+ AreaType as ai,
24267
+ ImageField as aj,
24268
+ ReplicaField as ak,
24269
+ ConditionsField as al,
24270
+ PodsField as am,
24271
+ JobsField as an,
24272
+ DataField as ao,
24273
+ SecretDataField as ap,
24274
+ StartTimeField as aq,
24275
+ ServiceTypeField as ar,
24276
+ ClusterIpField as as,
24277
+ SessionAffinityField as at,
24278
+ ServicePodsField as au,
24279
+ IngressRulesTableTabField as av,
24280
+ EventsTableTabField as aw,
24281
+ NamespaceField as ax,
24282
+ AgeField as ay,
24283
+ LabelsField as az,
24175
24284
  NameSpaceColumnRenderer as b,
24176
- ServiceModel as b$,
24177
- ReferenceLink as b0,
24178
- ResourceLink as b1,
24179
- NS_STORE_KEY as b2,
24180
- ALL_NS as b3,
24181
- useNamespacesFilter as b4,
24182
- NamespacesFilter as b5,
24183
- FormModal as b6,
24184
- RefineFormContent as b7,
24185
- RefineFormPage as b8,
24186
- SchemaStrategy as b9,
24187
- SECRET_OPAQUE_INIT_VALUE as bA,
24188
- SECRET_IMAGE_REPO_INIT_VALUE as bB,
24189
- SECRET_BASIC_AUTH_INIT_VALUE as bC,
24190
- SECRET_SSH_AUTH_INIT_VALUE as bD,
24191
- SECRET_TLS_INIT_VALUE as bE,
24192
- SECRET_CUSTOM_INIT_VALUE as bF,
24193
- WorkloadState as bG,
24194
- Dovetail as bH,
24195
- RESOURCE_GROUP as bI,
24196
- FormType as bJ,
24197
- ComponentContext as bK,
24198
- GlobalStoreContext as bL,
24199
- ConfigsContext as bM,
24200
- IngressModel as bN,
24201
- NetworkPolicyModel as bO,
24202
- JobModel as bP,
24203
- WorkloadModel as bQ,
24204
- WorkloadBaseModel as bR,
24205
- PodModel as bS,
24206
- PodMetricsModel as bT,
24207
- ResourceModel as bU,
24208
- CronJobModel as bV,
24209
- EventModel as bW,
24210
- DeploymentModel as bX,
24211
- DaemonSetModel as bY,
24212
- StatefulSetModel as bZ,
24213
- ServiceTypeEnum as b_,
24214
- YamlForm as ba,
24215
- useRefineForm as bb,
24216
- ServiceInClusterAccessComponent as bc,
24217
- ServiceOutClusterAccessComponent as bd,
24218
- Tags as be,
24219
- TextTags as bf,
24220
- PodLog as bg,
24221
- NetworkPolicyRulesViewer as bh,
24222
- Tabs as bi,
24223
- BASE_INIT_VALUE as bj,
24224
- DEPLOYMENT_INIT_VALUE as bk,
24225
- CRONJOB_INIT_VALUE as bl,
24226
- DAEMONSET_INIT_VALUE as bm,
24227
- JOB_INIT_VALUE as bn,
24228
- STATEFULSET_INIT_VALUE as bo,
24229
- POD_INIT_VALUE as bp,
24230
- SERVICE_CLUSTER_IP_INIT_VALUE as bq,
24231
- SERVICE_NODE_PORT_INIT_VALUE as br,
24232
- SERVICE_LOAD_BALANCER_INIT_VALUE as bs,
24233
- SERVICE_EXTERNAL_NAME_INIT_VALUE as bt,
24234
- SERVICE_HEADLESS_INIT_VALUE as bu,
24235
- INGRESS_INIT_VALUE as bv,
24236
- NETWORK_POLICY_INIT_VALUE as bw,
24237
- CONFIG_MAP_INIT_VALUE as bx,
24238
- SERVER_INSTANCE_INIT_VALUE as by,
24239
- TIMESTAMP_LABEL as bz,
24285
+ DaemonSetModel as b$,
24286
+ Menu as b0,
24287
+ EditButton as b1,
24288
+ ReferenceLink as b2,
24289
+ ResourceLink as b3,
24290
+ NS_STORE_KEY as b4,
24291
+ ALL_NS as b5,
24292
+ useNamespacesFilter as b6,
24293
+ NamespacesFilter as b7,
24294
+ FormModal as b8,
24295
+ RefineFormContent as b9,
24296
+ SERVER_INSTANCE_INIT_VALUE as bA,
24297
+ TIMESTAMP_LABEL as bB,
24298
+ SECRET_OPAQUE_INIT_VALUE as bC,
24299
+ SECRET_IMAGE_REPO_INIT_VALUE as bD,
24300
+ SECRET_BASIC_AUTH_INIT_VALUE as bE,
24301
+ SECRET_SSH_AUTH_INIT_VALUE as bF,
24302
+ SECRET_TLS_INIT_VALUE as bG,
24303
+ SECRET_CUSTOM_INIT_VALUE as bH,
24304
+ WorkloadState as bI,
24305
+ AccessControlAuth as bJ,
24306
+ Dovetail as bK,
24307
+ RESOURCE_GROUP as bL,
24308
+ FormType as bM,
24309
+ ComponentContext as bN,
24310
+ GlobalStoreContext as bO,
24311
+ ConfigsContext as bP,
24312
+ IngressModel as bQ,
24313
+ NetworkPolicyModel as bR,
24314
+ JobModel as bS,
24315
+ WorkloadModel as bT,
24316
+ WorkloadBaseModel as bU,
24317
+ PodModel as bV,
24318
+ PodMetricsModel as bW,
24319
+ ResourceModel as bX,
24320
+ CronJobModel as bY,
24321
+ EventModel as bZ,
24322
+ DeploymentModel as b_,
24323
+ RefineFormPage as ba,
24324
+ SchemaStrategy as bb,
24325
+ YamlForm as bc,
24326
+ useRefineForm as bd,
24327
+ ServiceInClusterAccessComponent as be,
24328
+ ServiceOutClusterAccessComponent as bf,
24329
+ Tags as bg,
24330
+ TextTags as bh,
24331
+ PodLog as bi,
24332
+ NetworkPolicyRulesViewer as bj,
24333
+ Tabs as bk,
24334
+ BASE_INIT_VALUE as bl,
24335
+ DEPLOYMENT_INIT_VALUE as bm,
24336
+ CRONJOB_INIT_VALUE as bn,
24337
+ DAEMONSET_INIT_VALUE as bo,
24338
+ JOB_INIT_VALUE as bp,
24339
+ STATEFULSET_INIT_VALUE as bq,
24340
+ POD_INIT_VALUE as br,
24341
+ SERVICE_CLUSTER_IP_INIT_VALUE as bs,
24342
+ SERVICE_NODE_PORT_INIT_VALUE as bt,
24343
+ SERVICE_LOAD_BALANCER_INIT_VALUE as bu,
24344
+ SERVICE_EXTERNAL_NAME_INIT_VALUE as bv,
24345
+ SERVICE_HEADLESS_INIT_VALUE as bw,
24346
+ INGRESS_INIT_VALUE as bx,
24347
+ NETWORK_POLICY_INIT_VALUE as by,
24348
+ CONFIG_MAP_INIT_VALUE as bz,
24240
24349
  WorkloadRestartsColumnRenderer as c,
24241
- ProviderPlugins as c0,
24350
+ StatefulSetModel as c0,
24351
+ ServiceTypeEnum as c1,
24352
+ ServiceModel as c2,
24353
+ ProviderPlugins as c3,
24242
24354
  dovetailRefineI18n as d,
24243
24355
  NodeNameColumnRenderer as e,
24244
24356
  RestartCountColumnRenderer as f,
24245
24357
  CompletionsCountColumnRenderer as g,
24246
24358
  ServiceTypeColumnRenderer as h,
24247
- ServiceInClusterAccessColumnRenderer as i,
24359
+ ServiceInClusterAccessTitle as i,
24248
24360
  jsxRuntimeExports as j,
24249
- ServiceOutClusterAccessColumnRenderer as k,
24250
- PodWorkloadColumnRenderer as l,
24251
- IngressDefaultBackendColumnRenderer as m,
24252
- IngressClassColumnRenderer as n,
24253
- IngressTlsColumnRenderer as o,
24254
- PodContainersNumColumnRenderer as p,
24255
- DataKeysColumnRenderer as q,
24361
+ ServiceInClusterAccessColumnRenderer as k,
24362
+ ServiceOutClusterAccessTitle as l,
24363
+ ServiceOutClusterAccessColumnRenderer as m,
24364
+ PodWorkloadColumnRenderer as n,
24365
+ IngressDefaultBackendColumnRenderer as o,
24366
+ IngressClassColumnRenderer as p,
24367
+ IngressTlsColumnRenderer as q,
24256
24368
  routerProvider as r,
24257
- PortMappingColumnRenderer as s,
24258
- ColumnKeys as t,
24369
+ PodContainersNumColumnRenderer as s,
24370
+ DataKeysColumnRenderer as t,
24259
24371
  useSchema as u,
24260
- addDefaultRenderToColumns as v,
24261
- useEagleTable as w,
24262
- useDownloadYAML as x,
24263
- useEdit as y,
24264
- useGlobalStore as z
24372
+ PortMappingColumnRenderer as v,
24373
+ ColumnKeys as w,
24374
+ addDefaultRenderToColumns as x,
24375
+ useEagleTable as y,
24376
+ useDownloadYAML as z
24265
24377
  };