@dovetail-v2/refine 0.0.20 → 0.0.21

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.
@@ -4,8 +4,9 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
+ import i18n from "i18next";
7
8
  import * as React from "react";
8
- import React__default, { useCallback, useContext, createContext, useState, useRef, useEffect, useMemo, forwardRef, useImperativeHandle, Suspense, useLayoutEffect, memo, PureComponent, createElement } from "react";
9
+ import React__default, { createContext, useContext, useState, useRef, useEffect, useCallback, useMemo, forwardRef, useImperativeHandle, Suspense, useLayoutEffect, memo, PureComponent, createElement } from "react";
9
10
  import { ResourceContext, matchResourceFromRoute, useResource, useForm as useForm$1, pickNotDeprecated, useWarnAboutChange, useDelete, useNavigation, useBreadcrumb, useList, useParsed, useGo, useDeleteMany, useUpdate, useShow, useMenu, useDataProvider, useTable, Refine } from "@refinedev/core";
10
11
  import { parse, stringify } from "qs";
11
12
  import { useLocation, useHistory, useParams, matchPath, Link, Route, NavLink, Router } from "react-router-dom";
@@ -13,7 +14,6 @@ import { useUIKit, kitContext, Typo, Icon as Icon$1, popModal, pushModal, ModalS
13
14
  import yaml from "js-yaml";
14
15
  import { isObject, first, get, omit as omit$1, flatten, merge, keyBy } from "lodash-es";
15
16
  import { useForm } from "sunflower-antd";
16
- import i18n from "i18next";
17
17
  import { HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, Retry16GradientBlueIcon, EditPen16GradientGrayIcon, EditPen16GradientBlueIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, EditPen16PrimaryIcon, TrashBinDelete16Icon, Download16GradientBlueIcon, MoreEllipsis316BoldBlueIcon, CheckmarkDoneSuccessCorrect16BoldGreenIcon, XmarkFailed16BoldRedIcon, DynamicResourceSchedule16BlueIcon, VmResume16Icon, SuspendedPause16GradientGrayIcon, Resume24Icon, SuspendedPause24GradientOrangeIcon } from "@cloudtower/icons-react";
18
18
  import * as monaco from "monaco-editor";
19
19
  import { setDiagnosticsOptions } from "monaco-yaml";
@@ -24,245 +24,756 @@ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof win
24
24
  function getDefaultExportFromCjs(x) {
25
25
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
26
26
  }
27
- var jsxRuntime = { exports: {} };
28
- var reactJsxRuntime_production_min = {};
29
- /** @license React v16.14.0
30
- * react-jsx-runtime.production.min.js
31
- *
32
- * Copyright (c) Facebook, Inc. and its affiliates.
33
- *
34
- * This source code is licensed under the MIT license found in the
35
- * LICENSE file in the root directory of this source tree.
36
- */
37
- var hasRequiredReactJsxRuntime_production_min;
38
- function requireReactJsxRuntime_production_min() {
39
- if (hasRequiredReactJsxRuntime_production_min)
40
- return reactJsxRuntime_production_min;
41
- hasRequiredReactJsxRuntime_production_min = 1;
42
- var f = React__default, g = 60103;
43
- reactJsxRuntime_production_min.Fragment = 60107;
44
- if ("function" === typeof Symbol && Symbol.for) {
45
- var h = Symbol.for;
46
- g = h("react.element");
47
- reactJsxRuntime_production_min.Fragment = h("react.fragment");
27
+ function warn() {
28
+ if (console && console.warn) {
29
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ args[_key] = arguments[_key];
31
+ }
32
+ if (typeof args[0] === "string")
33
+ args[0] = `react-i18next:: ${args[0]}`;
34
+ console.warn(...args);
48
35
  }
49
- var m = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, n = Object.prototype.hasOwnProperty, p = { key: true, ref: true, __self: true, __source: true };
50
- function q(c, a, k) {
51
- var b, d = {}, e = null, l = null;
52
- void 0 !== k && (e = "" + k);
53
- void 0 !== a.key && (e = "" + a.key);
54
- void 0 !== a.ref && (l = a.ref);
55
- for (b in a)
56
- n.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
57
- if (c && c.defaultProps)
58
- for (b in a = c.defaultProps, a)
59
- void 0 === d[b] && (d[b] = a[b]);
60
- return { $$typeof: g, type: c, key: e, ref: l, props: d, _owner: m.current };
36
+ }
37
+ const alreadyWarned = {};
38
+ function warnOnce() {
39
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
40
+ args[_key2] = arguments[_key2];
61
41
  }
62
- reactJsxRuntime_production_min.jsx = q;
63
- reactJsxRuntime_production_min.jsxs = q;
64
- return reactJsxRuntime_production_min;
42
+ if (typeof args[0] === "string" && alreadyWarned[args[0]])
43
+ return;
44
+ if (typeof args[0] === "string")
45
+ alreadyWarned[args[0]] = /* @__PURE__ */ new Date();
46
+ warn(...args);
65
47
  }
66
- var reactJsxRuntime_development = {};
67
- /** @license React v16.14.0
68
- * react-jsx-runtime.development.js
69
- *
70
- * Copyright (c) Facebook, Inc. and its affiliates.
71
- *
72
- * This source code is licensed under the MIT license found in the
73
- * LICENSE file in the root directory of this source tree.
74
- */
75
- var hasRequiredReactJsxRuntime_development;
76
- function requireReactJsxRuntime_development() {
77
- if (hasRequiredReactJsxRuntime_development)
78
- return reactJsxRuntime_development;
79
- hasRequiredReactJsxRuntime_development = 1;
80
- (function(exports) {
81
- if (process.env.NODE_ENV !== "production") {
82
- (function() {
83
- var React2 = React__default;
84
- var REACT_ELEMENT_TYPE = 60103;
85
- var REACT_PORTAL_TYPE = 60106;
86
- exports.Fragment = 60107;
87
- var REACT_STRICT_MODE_TYPE = 60108;
88
- var REACT_PROFILER_TYPE = 60114;
89
- var REACT_PROVIDER_TYPE = 60109;
90
- var REACT_CONTEXT_TYPE = 60110;
91
- var REACT_FORWARD_REF_TYPE = 60112;
92
- var REACT_SUSPENSE_TYPE = 60113;
93
- var REACT_SUSPENSE_LIST_TYPE = 60120;
94
- var REACT_MEMO_TYPE = 60115;
95
- var REACT_LAZY_TYPE = 60116;
96
- var REACT_BLOCK_TYPE = 60121;
97
- var REACT_SERVER_BLOCK_TYPE = 60122;
98
- var REACT_FUNDAMENTAL_TYPE = 60117;
99
- var REACT_DEBUG_TRACING_MODE_TYPE = 60129;
100
- var REACT_LEGACY_HIDDEN_TYPE = 60131;
101
- if (typeof Symbol === "function" && Symbol.for) {
102
- var symbolFor = Symbol.for;
103
- REACT_ELEMENT_TYPE = symbolFor("react.element");
104
- REACT_PORTAL_TYPE = symbolFor("react.portal");
105
- exports.Fragment = symbolFor("react.fragment");
106
- REACT_STRICT_MODE_TYPE = symbolFor("react.strict_mode");
107
- REACT_PROFILER_TYPE = symbolFor("react.profiler");
108
- REACT_PROVIDER_TYPE = symbolFor("react.provider");
109
- REACT_CONTEXT_TYPE = symbolFor("react.context");
110
- REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref");
111
- REACT_SUSPENSE_TYPE = symbolFor("react.suspense");
112
- REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list");
113
- REACT_MEMO_TYPE = symbolFor("react.memo");
114
- REACT_LAZY_TYPE = symbolFor("react.lazy");
115
- REACT_BLOCK_TYPE = symbolFor("react.block");
116
- REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block");
117
- REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental");
118
- symbolFor("react.scope");
119
- symbolFor("react.opaque.id");
120
- REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode");
121
- symbolFor("react.offscreen");
122
- REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden");
123
- }
124
- var MAYBE_ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator;
125
- var FAUX_ITERATOR_SYMBOL = "@@iterator";
126
- function getIteratorFn(maybeIterable) {
127
- if (maybeIterable === null || typeof maybeIterable !== "object") {
128
- return null;
129
- }
130
- var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
131
- if (typeof maybeIterator === "function") {
132
- return maybeIterator;
133
- }
134
- return null;
135
- }
136
- var ReactSharedInternals = React2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
137
- function error(format) {
138
- {
139
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
140
- args[_key2 - 1] = arguments[_key2];
141
- }
142
- printWarning("error", format, args);
143
- }
144
- }
145
- function printWarning(level, format, args) {
146
- {
147
- var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
148
- var stack = "";
149
- if (currentlyValidatingElement) {
150
- var name2 = getComponentName(currentlyValidatingElement.type);
151
- var owner = currentlyValidatingElement._owner;
152
- stack += describeComponentFrame(name2, currentlyValidatingElement._source, owner && getComponentName(owner.type));
153
- }
154
- stack += ReactDebugCurrentFrame.getStackAddendum();
155
- if (stack !== "") {
156
- format += "%s";
157
- args = args.concat([stack]);
158
- }
159
- var argsWithFormat = args.map(function(item) {
160
- return "" + item;
161
- });
162
- argsWithFormat.unshift("Warning: " + format);
163
- Function.prototype.apply.call(console[level], console, argsWithFormat);
164
- }
165
- }
166
- var enableScopeAPI = false;
167
- function isValidElementType(type2) {
168
- if (typeof type2 === "string" || typeof type2 === "function") {
169
- return true;
170
- }
171
- if (type2 === exports.Fragment || type2 === REACT_PROFILER_TYPE || type2 === REACT_DEBUG_TRACING_MODE_TYPE || type2 === REACT_STRICT_MODE_TYPE || type2 === REACT_SUSPENSE_TYPE || type2 === REACT_SUSPENSE_LIST_TYPE || type2 === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) {
172
- return true;
173
- }
174
- if (typeof type2 === "object" && type2 !== null) {
175
- if (type2.$$typeof === REACT_LAZY_TYPE || type2.$$typeof === REACT_MEMO_TYPE || type2.$$typeof === REACT_PROVIDER_TYPE || type2.$$typeof === REACT_CONTEXT_TYPE || type2.$$typeof === REACT_FORWARD_REF_TYPE || type2.$$typeof === REACT_FUNDAMENTAL_TYPE || type2.$$typeof === REACT_BLOCK_TYPE || type2[0] === REACT_SERVER_BLOCK_TYPE) {
176
- return true;
177
- }
178
- }
179
- return false;
180
- }
181
- var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
182
- function describeComponentFrame(name2, source, ownerName) {
183
- var sourceInfo = "";
184
- if (source) {
185
- var path = source.fileName;
186
- var fileName = path.replace(BEFORE_SLASH_RE, "");
187
- {
188
- if (/^index\./.test(fileName)) {
189
- var match = path.match(BEFORE_SLASH_RE);
190
- if (match) {
191
- var pathBeforeSlash = match[1];
192
- if (pathBeforeSlash) {
193
- var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, "");
194
- fileName = folderName + "/" + fileName;
195
- }
196
- }
197
- }
198
- }
199
- sourceInfo = " (at " + fileName + ":" + source.lineNumber + ")";
200
- } else if (ownerName) {
201
- sourceInfo = " (created by " + ownerName + ")";
202
- }
203
- return "\n in " + (name2 || "Unknown") + sourceInfo;
204
- }
205
- var Resolved = 1;
206
- function refineResolvedLazyComponent(lazyComponent) {
207
- return lazyComponent._status === Resolved ? lazyComponent._result : null;
208
- }
209
- function getWrappedName(outerType, innerType, wrapperName) {
210
- var functionName = innerType.displayName || innerType.name || "";
211
- return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName);
212
- }
213
- function getComponentName(type2) {
214
- if (type2 == null) {
215
- return null;
216
- }
217
- {
218
- if (typeof type2.tag === "number") {
219
- error("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue.");
220
- }
221
- }
222
- if (typeof type2 === "function") {
223
- return type2.displayName || type2.name || null;
224
- }
225
- if (typeof type2 === "string") {
226
- return type2;
227
- }
228
- switch (type2) {
229
- case exports.Fragment:
230
- return "Fragment";
231
- case REACT_PORTAL_TYPE:
232
- return "Portal";
233
- case REACT_PROFILER_TYPE:
234
- return "Profiler";
235
- case REACT_STRICT_MODE_TYPE:
236
- return "StrictMode";
237
- case REACT_SUSPENSE_TYPE:
238
- return "Suspense";
239
- case REACT_SUSPENSE_LIST_TYPE:
240
- return "SuspenseList";
241
- }
242
- if (typeof type2 === "object") {
243
- switch (type2.$$typeof) {
244
- case REACT_CONTEXT_TYPE:
245
- return "Context.Consumer";
246
- case REACT_PROVIDER_TYPE:
247
- return "Context.Provider";
248
- case REACT_FORWARD_REF_TYPE:
249
- return getWrappedName(type2, type2.render, "ForwardRef");
250
- case REACT_MEMO_TYPE:
251
- return getComponentName(type2.type);
252
- case REACT_BLOCK_TYPE:
253
- return getComponentName(type2.render);
254
- case REACT_LAZY_TYPE: {
255
- var thenable = type2;
256
- var resolvedThenable = refineResolvedLazyComponent(thenable);
257
- if (resolvedThenable) {
258
- return getComponentName(resolvedThenable);
259
- }
260
- break;
261
- }
262
- }
263
- }
264
- return null;
265
- }
48
+ const loadedClb = (i18n2, cb) => () => {
49
+ if (i18n2.isInitialized) {
50
+ cb();
51
+ } else {
52
+ const initialized = () => {
53
+ setTimeout(() => {
54
+ i18n2.off("initialized", initialized);
55
+ }, 0);
56
+ cb();
57
+ };
58
+ i18n2.on("initialized", initialized);
59
+ }
60
+ };
61
+ function loadNamespaces(i18n2, ns, cb) {
62
+ i18n2.loadNamespaces(ns, loadedClb(i18n2, cb));
63
+ }
64
+ function loadLanguages(i18n2, lng, ns, cb) {
65
+ if (typeof ns === "string")
66
+ ns = [ns];
67
+ ns.forEach((n) => {
68
+ if (i18n2.options.ns.indexOf(n) < 0)
69
+ i18n2.options.ns.push(n);
70
+ });
71
+ i18n2.loadLanguages(lng, loadedClb(i18n2, cb));
72
+ }
73
+ function oldI18nextHasLoadedNamespace(ns, i18n2) {
74
+ let options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
75
+ const lng = i18n2.languages[0];
76
+ const fallbackLng = i18n2.options ? i18n2.options.fallbackLng : false;
77
+ const lastLng = i18n2.languages[i18n2.languages.length - 1];
78
+ if (lng.toLowerCase() === "cimode")
79
+ return true;
80
+ const loadNotPending = (l, n) => {
81
+ const loadState = i18n2.services.backendConnector.state[`${l}|${n}`];
82
+ return loadState === -1 || loadState === 2;
83
+ };
84
+ if (options.bindI18n && options.bindI18n.indexOf("languageChanging") > -1 && i18n2.services.backendConnector.backend && i18n2.isLanguageChangingTo && !loadNotPending(i18n2.isLanguageChangingTo, ns))
85
+ return false;
86
+ if (i18n2.hasResourceBundle(lng, ns))
87
+ return true;
88
+ if (!i18n2.services.backendConnector.backend || i18n2.options.resources && !i18n2.options.partialBundledLanguages)
89
+ return true;
90
+ if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns)))
91
+ return true;
92
+ return false;
93
+ }
94
+ function hasLoadedNamespace(ns, i18n2) {
95
+ let options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
96
+ if (!i18n2.languages || !i18n2.languages.length) {
97
+ warnOnce("i18n.languages were undefined or empty", i18n2.languages);
98
+ return true;
99
+ }
100
+ const isNewerI18next = i18n2.options.ignoreJSONStructure !== void 0;
101
+ if (!isNewerI18next) {
102
+ return oldI18nextHasLoadedNamespace(ns, i18n2, options);
103
+ }
104
+ return i18n2.hasLoadedNamespace(ns, {
105
+ lng: options.lng,
106
+ precheck: (i18nInstance2, loadNotPending) => {
107
+ if (options.bindI18n && options.bindI18n.indexOf("languageChanging") > -1 && i18nInstance2.services.backendConnector.backend && i18nInstance2.isLanguageChangingTo && !loadNotPending(i18nInstance2.isLanguageChangingTo, ns))
108
+ return false;
109
+ }
110
+ });
111
+ }
112
+ const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
113
+ const htmlEntities = {
114
+ "&amp;": "&",
115
+ "&#38;": "&",
116
+ "&lt;": "<",
117
+ "&#60;": "<",
118
+ "&gt;": ">",
119
+ "&#62;": ">",
120
+ "&apos;": "'",
121
+ "&#39;": "'",
122
+ "&quot;": '"',
123
+ "&#34;": '"',
124
+ "&nbsp;": " ",
125
+ "&#160;": " ",
126
+ "&copy;": "©",
127
+ "&#169;": "©",
128
+ "&reg;": "®",
129
+ "&#174;": "®",
130
+ "&hellip;": "",
131
+ "&#8230;": "…",
132
+ "&#x2F;": "/",
133
+ "&#47;": "/"
134
+ };
135
+ const unescapeHtmlEntity = (m) => htmlEntities[m];
136
+ const unescape = (text) => text.replace(matchHtmlEntity, unescapeHtmlEntity);
137
+ let defaultOptions = {
138
+ bindI18n: "languageChanged",
139
+ bindI18nStore: "",
140
+ transEmptyNodeValue: "",
141
+ transSupportBasicHtmlNodes: true,
142
+ transWrapTextNodes: "",
143
+ transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
144
+ useSuspense: true,
145
+ unescape
146
+ };
147
+ function setDefaults() {
148
+ let options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
149
+ defaultOptions = {
150
+ ...defaultOptions,
151
+ ...options
152
+ };
153
+ }
154
+ function getDefaults() {
155
+ return defaultOptions;
156
+ }
157
+ let i18nInstance;
158
+ function setI18n(instance) {
159
+ i18nInstance = instance;
160
+ }
161
+ function getI18n() {
162
+ return i18nInstance;
163
+ }
164
+ const initReactI18next = {
165
+ type: "3rdParty",
166
+ init(instance) {
167
+ setDefaults(instance.options.react);
168
+ setI18n(instance);
169
+ }
170
+ };
171
+ const I18nContext = createContext();
172
+ class ReportNamespaces {
173
+ constructor() {
174
+ this.usedNamespaces = {};
175
+ }
176
+ addUsedNamespaces(namespaces) {
177
+ namespaces.forEach((ns) => {
178
+ if (!this.usedNamespaces[ns])
179
+ this.usedNamespaces[ns] = true;
180
+ });
181
+ }
182
+ getUsedNamespaces() {
183
+ return Object.keys(this.usedNamespaces);
184
+ }
185
+ }
186
+ const usePrevious = (value, ignore) => {
187
+ const ref = useRef();
188
+ useEffect(() => {
189
+ ref.current = ignore ? ref.current : value;
190
+ }, [value, ignore]);
191
+ return ref.current;
192
+ };
193
+ function useTranslation(ns) {
194
+ let props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
195
+ const {
196
+ i18n: i18nFromProps
197
+ } = props;
198
+ const {
199
+ i18n: i18nFromContext,
200
+ defaultNS: defaultNSFromContext
201
+ } = useContext(I18nContext) || {};
202
+ const i18n2 = i18nFromProps || i18nFromContext || getI18n();
203
+ if (i18n2 && !i18n2.reportNamespaces)
204
+ i18n2.reportNamespaces = new ReportNamespaces();
205
+ if (!i18n2) {
206
+ warnOnce("You will need to pass in an i18next instance by using initReactI18next");
207
+ const notReadyT = (k, optsOrDefaultValue) => {
208
+ if (typeof optsOrDefaultValue === "string")
209
+ return optsOrDefaultValue;
210
+ if (optsOrDefaultValue && typeof optsOrDefaultValue === "object" && typeof optsOrDefaultValue.defaultValue === "string")
211
+ return optsOrDefaultValue.defaultValue;
212
+ return Array.isArray(k) ? k[k.length - 1] : k;
213
+ };
214
+ const retNotReady = [notReadyT, {}, false];
215
+ retNotReady.t = notReadyT;
216
+ retNotReady.i18n = {};
217
+ retNotReady.ready = false;
218
+ return retNotReady;
219
+ }
220
+ if (i18n2.options.react && i18n2.options.react.wait !== void 0)
221
+ warnOnce("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");
222
+ const i18nOptions = {
223
+ ...getDefaults(),
224
+ ...i18n2.options.react,
225
+ ...props
226
+ };
227
+ const {
228
+ useSuspense,
229
+ keyPrefix
230
+ } = i18nOptions;
231
+ let namespaces = ns || defaultNSFromContext || i18n2.options && i18n2.options.defaultNS;
232
+ namespaces = typeof namespaces === "string" ? [namespaces] : namespaces || ["translation"];
233
+ if (i18n2.reportNamespaces.addUsedNamespaces)
234
+ i18n2.reportNamespaces.addUsedNamespaces(namespaces);
235
+ const ready2 = (i18n2.isInitialized || i18n2.initializedStoreOnce) && namespaces.every((n) => hasLoadedNamespace(n, i18n2, i18nOptions));
236
+ function getT() {
237
+ return i18n2.getFixedT(props.lng || null, i18nOptions.nsMode === "fallback" ? namespaces : namespaces[0], keyPrefix);
238
+ }
239
+ const [t, setT] = useState(getT);
240
+ let joinedNS = namespaces.join();
241
+ if (props.lng)
242
+ joinedNS = `${props.lng}${joinedNS}`;
243
+ const previousJoinedNS = usePrevious(joinedNS);
244
+ const isMounted = useRef(true);
245
+ useEffect(() => {
246
+ const {
247
+ bindI18n,
248
+ bindI18nStore
249
+ } = i18nOptions;
250
+ isMounted.current = true;
251
+ if (!ready2 && !useSuspense) {
252
+ if (props.lng) {
253
+ loadLanguages(i18n2, props.lng, namespaces, () => {
254
+ if (isMounted.current)
255
+ setT(getT);
256
+ });
257
+ } else {
258
+ loadNamespaces(i18n2, namespaces, () => {
259
+ if (isMounted.current)
260
+ setT(getT);
261
+ });
262
+ }
263
+ }
264
+ if (ready2 && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {
265
+ setT(getT);
266
+ }
267
+ function boundReset() {
268
+ if (isMounted.current)
269
+ setT(getT);
270
+ }
271
+ if (bindI18n && i18n2)
272
+ i18n2.on(bindI18n, boundReset);
273
+ if (bindI18nStore && i18n2)
274
+ i18n2.store.on(bindI18nStore, boundReset);
275
+ return () => {
276
+ isMounted.current = false;
277
+ if (bindI18n && i18n2)
278
+ bindI18n.split(" ").forEach((e) => i18n2.off(e, boundReset));
279
+ if (bindI18nStore && i18n2)
280
+ bindI18nStore.split(" ").forEach((e) => i18n2.store.off(e, boundReset));
281
+ };
282
+ }, [i18n2, joinedNS]);
283
+ const isInitial = useRef(true);
284
+ useEffect(() => {
285
+ if (isMounted.current && !isInitial.current) {
286
+ setT(getT);
287
+ }
288
+ isInitial.current = false;
289
+ }, [i18n2, keyPrefix]);
290
+ const ret = [t, i18n2, ready2];
291
+ ret.t = t;
292
+ ret.i18n = i18n2;
293
+ ret.ready = ready2;
294
+ if (ready2)
295
+ return ret;
296
+ if (!ready2 && !useSuspense)
297
+ return ret;
298
+ throw new Promise((resolve) => {
299
+ if (props.lng) {
300
+ loadLanguages(i18n2, props.lng, namespaces, () => resolve());
301
+ } else {
302
+ loadNamespaces(i18n2, namespaces, () => resolve());
303
+ }
304
+ });
305
+ }
306
+ const copy$1 = "Copy";
307
+ const reset_arguments$1 = "Reset";
308
+ const view_changes$1 = "Show Diff";
309
+ const back_to_edit$1 = "Edit";
310
+ const configure_file$1 = "Configuration";
311
+ const yaml_format_wrong$1 = "Configuration is in an invalid YAML format.";
312
+ const yaml_value_wrong$1 = "Configuration has invalid values.";
313
+ const edit_yaml$1 = "Edit YAML";
314
+ const copied$1 = "Copied";
315
+ const already_reset$1 = "Already reset";
316
+ const fetch_schema_fail$1 = "Failed to fetch schema.";
317
+ const obtain_data_error$1 = "Having trouble getting data.";
318
+ const retry$1 = "Retry";
319
+ const create_resource$1 = "Create {{resource}}";
320
+ const edit_resource$1 = "Edit {{resource}}";
321
+ const status$1 = "Status";
322
+ const dovetail$1 = {
323
+ copy: copy$1,
324
+ reset_arguments: reset_arguments$1,
325
+ view_changes: view_changes$1,
326
+ back_to_edit: back_to_edit$1,
327
+ configure_file: configure_file$1,
328
+ yaml_format_wrong: yaml_format_wrong$1,
329
+ yaml_value_wrong: yaml_value_wrong$1,
330
+ edit_yaml: edit_yaml$1,
331
+ copied: copied$1,
332
+ already_reset: already_reset$1,
333
+ fetch_schema_fail: fetch_schema_fail$1,
334
+ obtain_data_error: obtain_data_error$1,
335
+ retry: retry$1,
336
+ create_resource: create_resource$1,
337
+ edit_resource: edit_resource$1,
338
+ status: status$1
339
+ };
340
+ const EN = {
341
+ dovetail: dovetail$1
342
+ };
343
+ const copy = "复制";
344
+ const reset_arguments = "重置";
345
+ const view_changes = "查看改动";
346
+ const back_to_edit = "编辑";
347
+ const configure_file = "配置内容";
348
+ const yaml_format_wrong = "配置内容不是有效的 yaml 格式。";
349
+ const yaml_value_wrong = "配置内容中存在不合法的值。";
350
+ const edit_yaml = "编辑 YAML";
351
+ const copied = "已复制";
352
+ const already_reset = "已重置";
353
+ const cancel = "取消";
354
+ const create = "创建";
355
+ const confirm_delete_text = "确定要删除 {{target}} 吗?";
356
+ const edit = "编辑";
357
+ const namespace = "名字空间";
358
+ const name = "名称";
359
+ const state = "状态";
360
+ const status = "状态";
361
+ const phase = "状态";
362
+ const image = "容器镜像";
363
+ const replicas = "副本数";
364
+ const created_time = "创建时间";
365
+ const label = "标签";
366
+ const annotation = "注释";
367
+ const type = "类型";
368
+ const event = "事件";
369
+ const reason = "原因";
370
+ const object = "对象";
371
+ const note$1 = "事件信息";
372
+ const condition = "Condition";
373
+ const download_yaml = "下载 YAML";
374
+ const detail = "详情";
375
+ const node_name = "主机名称";
376
+ const restarts = "重启次数";
377
+ const updated_time = "更新时间";
378
+ const message = "消息";
379
+ const save = "保存";
380
+ const more = "更多";
381
+ const workload = "工作负载";
382
+ const all_namespaces = "所有名字空间";
383
+ const empty = "无可显示的数据";
384
+ const schedule = "调度时间表";
385
+ const lastScheduleTime = "上次调度时间";
386
+ const duration = "持续时间";
387
+ const completions = "完成 Job 历史数";
388
+ const started = "开始时间";
389
+ const init_container = "初始化容器";
390
+ const container = "容器";
391
+ const redeploy = "重新部署";
392
+ const data = "数据";
393
+ const suspend = "暂停";
394
+ const resume = "重新开始";
395
+ const cluster = "集群";
396
+ const storage = "存储";
397
+ const network = "网络";
398
+ const clusterIp = "集群 IP";
399
+ const sessionAffinity = "会话保持";
400
+ const log = "日志";
401
+ const select_container = "选择容器";
402
+ const wrap = "折叠";
403
+ const resume_log = "继续";
404
+ const log_new_lines = ",并展示 {{ count }} 行新日志";
405
+ const fetch_schema_fail = "获取 schema 失败。";
406
+ const obtain_data_error = "获取数据时遇到问题。";
407
+ const retry = "重试";
408
+ const ready = "就绪";
409
+ const updating = "更新中";
410
+ const completed = "完成";
411
+ const failed = "异常";
412
+ const suspended = "挂起";
413
+ const running = "运行中";
414
+ const terminating = "终止";
415
+ const succeeded = "成功终止";
416
+ const unknown = "未知";
417
+ const pending = "待处理";
418
+ const waiting = "等待中";
419
+ const create_resource = "创建 {{resource}}";
420
+ const edit_resource = "编辑 {{resource}}";
421
+ const sec = "秒";
422
+ const min = "分";
423
+ const hr = "小时";
424
+ const day = "天";
425
+ const expand = "展开";
426
+ const fold = "收起";
427
+ const rule = "规则";
428
+ const default_backend = "默认后端";
429
+ const ingress_rule_type = "规则类型";
430
+ const port = "端口";
431
+ const dovetail = {
432
+ copy,
433
+ reset_arguments,
434
+ view_changes,
435
+ back_to_edit,
436
+ configure_file,
437
+ yaml_format_wrong,
438
+ yaml_value_wrong,
439
+ edit_yaml,
440
+ copied,
441
+ already_reset,
442
+ cancel,
443
+ "delete": "删除",
444
+ create,
445
+ confirm_delete_text,
446
+ edit,
447
+ namespace,
448
+ name,
449
+ state,
450
+ status,
451
+ phase,
452
+ image,
453
+ replicas,
454
+ created_time,
455
+ label,
456
+ annotation,
457
+ type,
458
+ event,
459
+ reason,
460
+ object,
461
+ note: note$1,
462
+ condition,
463
+ download_yaml,
464
+ detail,
465
+ node_name,
466
+ restarts,
467
+ updated_time,
468
+ message,
469
+ save,
470
+ more,
471
+ workload,
472
+ all_namespaces,
473
+ empty,
474
+ schedule,
475
+ lastScheduleTime,
476
+ duration,
477
+ completions,
478
+ started,
479
+ init_container,
480
+ container,
481
+ redeploy,
482
+ data,
483
+ suspend,
484
+ resume,
485
+ cluster,
486
+ storage,
487
+ network,
488
+ clusterIp,
489
+ sessionAffinity,
490
+ log,
491
+ select_container,
492
+ wrap,
493
+ resume_log,
494
+ log_new_lines,
495
+ fetch_schema_fail,
496
+ obtain_data_error,
497
+ retry,
498
+ ready,
499
+ updating,
500
+ completed,
501
+ failed,
502
+ suspended,
503
+ running,
504
+ terminating,
505
+ succeeded,
506
+ unknown,
507
+ pending,
508
+ waiting,
509
+ create_resource,
510
+ edit_resource,
511
+ sec,
512
+ min,
513
+ hr,
514
+ day,
515
+ expand,
516
+ fold,
517
+ rule,
518
+ default_backend,
519
+ ingress_rule_type,
520
+ port
521
+ };
522
+ const ZH = {
523
+ dovetail
524
+ };
525
+ const resources = {
526
+ "en-US": EN,
527
+ "zh-CN": ZH
528
+ };
529
+ i18n.use(initReactI18next).init({
530
+ supportedLngs: ["en-US", "zh-CN"],
531
+ resources,
532
+ ns: Object.keys(resources["zh-CN"]),
533
+ defaultNS: "dovetail",
534
+ fallbackLng: ["en-US", "zh-CN"],
535
+ lng: "zh-CN",
536
+ nsSeparator: "."
537
+ });
538
+ var jsxRuntime = { exports: {} };
539
+ var reactJsxRuntime_production_min = {};
540
+ /** @license React v16.14.0
541
+ * react-jsx-runtime.production.min.js
542
+ *
543
+ * Copyright (c) Facebook, Inc. and its affiliates.
544
+ *
545
+ * This source code is licensed under the MIT license found in the
546
+ * LICENSE file in the root directory of this source tree.
547
+ */
548
+ var hasRequiredReactJsxRuntime_production_min;
549
+ function requireReactJsxRuntime_production_min() {
550
+ if (hasRequiredReactJsxRuntime_production_min)
551
+ return reactJsxRuntime_production_min;
552
+ hasRequiredReactJsxRuntime_production_min = 1;
553
+ var f = React__default, g = 60103;
554
+ reactJsxRuntime_production_min.Fragment = 60107;
555
+ if ("function" === typeof Symbol && Symbol.for) {
556
+ var h = Symbol.for;
557
+ g = h("react.element");
558
+ reactJsxRuntime_production_min.Fragment = h("react.fragment");
559
+ }
560
+ var m = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, n = Object.prototype.hasOwnProperty, p = { key: true, ref: true, __self: true, __source: true };
561
+ function q(c, a, k) {
562
+ var b, d = {}, e = null, l = null;
563
+ void 0 !== k && (e = "" + k);
564
+ void 0 !== a.key && (e = "" + a.key);
565
+ void 0 !== a.ref && (l = a.ref);
566
+ for (b in a)
567
+ n.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
568
+ if (c && c.defaultProps)
569
+ for (b in a = c.defaultProps, a)
570
+ void 0 === d[b] && (d[b] = a[b]);
571
+ return { $$typeof: g, type: c, key: e, ref: l, props: d, _owner: m.current };
572
+ }
573
+ reactJsxRuntime_production_min.jsx = q;
574
+ reactJsxRuntime_production_min.jsxs = q;
575
+ return reactJsxRuntime_production_min;
576
+ }
577
+ var reactJsxRuntime_development = {};
578
+ /** @license React v16.14.0
579
+ * react-jsx-runtime.development.js
580
+ *
581
+ * Copyright (c) Facebook, Inc. and its affiliates.
582
+ *
583
+ * This source code is licensed under the MIT license found in the
584
+ * LICENSE file in the root directory of this source tree.
585
+ */
586
+ var hasRequiredReactJsxRuntime_development;
587
+ function requireReactJsxRuntime_development() {
588
+ if (hasRequiredReactJsxRuntime_development)
589
+ return reactJsxRuntime_development;
590
+ hasRequiredReactJsxRuntime_development = 1;
591
+ (function(exports) {
592
+ if (process.env.NODE_ENV !== "production") {
593
+ (function() {
594
+ var React2 = React__default;
595
+ var REACT_ELEMENT_TYPE = 60103;
596
+ var REACT_PORTAL_TYPE = 60106;
597
+ exports.Fragment = 60107;
598
+ var REACT_STRICT_MODE_TYPE = 60108;
599
+ var REACT_PROFILER_TYPE = 60114;
600
+ var REACT_PROVIDER_TYPE = 60109;
601
+ var REACT_CONTEXT_TYPE = 60110;
602
+ var REACT_FORWARD_REF_TYPE = 60112;
603
+ var REACT_SUSPENSE_TYPE = 60113;
604
+ var REACT_SUSPENSE_LIST_TYPE = 60120;
605
+ var REACT_MEMO_TYPE = 60115;
606
+ var REACT_LAZY_TYPE = 60116;
607
+ var REACT_BLOCK_TYPE = 60121;
608
+ var REACT_SERVER_BLOCK_TYPE = 60122;
609
+ var REACT_FUNDAMENTAL_TYPE = 60117;
610
+ var REACT_DEBUG_TRACING_MODE_TYPE = 60129;
611
+ var REACT_LEGACY_HIDDEN_TYPE = 60131;
612
+ if (typeof Symbol === "function" && Symbol.for) {
613
+ var symbolFor = Symbol.for;
614
+ REACT_ELEMENT_TYPE = symbolFor("react.element");
615
+ REACT_PORTAL_TYPE = symbolFor("react.portal");
616
+ exports.Fragment = symbolFor("react.fragment");
617
+ REACT_STRICT_MODE_TYPE = symbolFor("react.strict_mode");
618
+ REACT_PROFILER_TYPE = symbolFor("react.profiler");
619
+ REACT_PROVIDER_TYPE = symbolFor("react.provider");
620
+ REACT_CONTEXT_TYPE = symbolFor("react.context");
621
+ REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref");
622
+ REACT_SUSPENSE_TYPE = symbolFor("react.suspense");
623
+ REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list");
624
+ REACT_MEMO_TYPE = symbolFor("react.memo");
625
+ REACT_LAZY_TYPE = symbolFor("react.lazy");
626
+ REACT_BLOCK_TYPE = symbolFor("react.block");
627
+ REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block");
628
+ REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental");
629
+ symbolFor("react.scope");
630
+ symbolFor("react.opaque.id");
631
+ REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode");
632
+ symbolFor("react.offscreen");
633
+ REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden");
634
+ }
635
+ var MAYBE_ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator;
636
+ var FAUX_ITERATOR_SYMBOL = "@@iterator";
637
+ function getIteratorFn(maybeIterable) {
638
+ if (maybeIterable === null || typeof maybeIterable !== "object") {
639
+ return null;
640
+ }
641
+ var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
642
+ if (typeof maybeIterator === "function") {
643
+ return maybeIterator;
644
+ }
645
+ return null;
646
+ }
647
+ var ReactSharedInternals = React2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
648
+ function error(format) {
649
+ {
650
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
651
+ args[_key2 - 1] = arguments[_key2];
652
+ }
653
+ printWarning("error", format, args);
654
+ }
655
+ }
656
+ function printWarning(level, format, args) {
657
+ {
658
+ var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
659
+ var stack = "";
660
+ if (currentlyValidatingElement) {
661
+ var name2 = getComponentName(currentlyValidatingElement.type);
662
+ var owner = currentlyValidatingElement._owner;
663
+ stack += describeComponentFrame(name2, currentlyValidatingElement._source, owner && getComponentName(owner.type));
664
+ }
665
+ stack += ReactDebugCurrentFrame.getStackAddendum();
666
+ if (stack !== "") {
667
+ format += "%s";
668
+ args = args.concat([stack]);
669
+ }
670
+ var argsWithFormat = args.map(function(item) {
671
+ return "" + item;
672
+ });
673
+ argsWithFormat.unshift("Warning: " + format);
674
+ Function.prototype.apply.call(console[level], console, argsWithFormat);
675
+ }
676
+ }
677
+ var enableScopeAPI = false;
678
+ function isValidElementType(type2) {
679
+ if (typeof type2 === "string" || typeof type2 === "function") {
680
+ return true;
681
+ }
682
+ if (type2 === exports.Fragment || type2 === REACT_PROFILER_TYPE || type2 === REACT_DEBUG_TRACING_MODE_TYPE || type2 === REACT_STRICT_MODE_TYPE || type2 === REACT_SUSPENSE_TYPE || type2 === REACT_SUSPENSE_LIST_TYPE || type2 === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) {
683
+ return true;
684
+ }
685
+ if (typeof type2 === "object" && type2 !== null) {
686
+ if (type2.$$typeof === REACT_LAZY_TYPE || type2.$$typeof === REACT_MEMO_TYPE || type2.$$typeof === REACT_PROVIDER_TYPE || type2.$$typeof === REACT_CONTEXT_TYPE || type2.$$typeof === REACT_FORWARD_REF_TYPE || type2.$$typeof === REACT_FUNDAMENTAL_TYPE || type2.$$typeof === REACT_BLOCK_TYPE || type2[0] === REACT_SERVER_BLOCK_TYPE) {
687
+ return true;
688
+ }
689
+ }
690
+ return false;
691
+ }
692
+ var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
693
+ function describeComponentFrame(name2, source, ownerName) {
694
+ var sourceInfo = "";
695
+ if (source) {
696
+ var path = source.fileName;
697
+ var fileName = path.replace(BEFORE_SLASH_RE, "");
698
+ {
699
+ if (/^index\./.test(fileName)) {
700
+ var match = path.match(BEFORE_SLASH_RE);
701
+ if (match) {
702
+ var pathBeforeSlash = match[1];
703
+ if (pathBeforeSlash) {
704
+ var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, "");
705
+ fileName = folderName + "/" + fileName;
706
+ }
707
+ }
708
+ }
709
+ }
710
+ sourceInfo = " (at " + fileName + ":" + source.lineNumber + ")";
711
+ } else if (ownerName) {
712
+ sourceInfo = " (created by " + ownerName + ")";
713
+ }
714
+ return "\n in " + (name2 || "Unknown") + sourceInfo;
715
+ }
716
+ var Resolved = 1;
717
+ function refineResolvedLazyComponent(lazyComponent) {
718
+ return lazyComponent._status === Resolved ? lazyComponent._result : null;
719
+ }
720
+ function getWrappedName(outerType, innerType, wrapperName) {
721
+ var functionName = innerType.displayName || innerType.name || "";
722
+ return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName);
723
+ }
724
+ function getComponentName(type2) {
725
+ if (type2 == null) {
726
+ return null;
727
+ }
728
+ {
729
+ if (typeof type2.tag === "number") {
730
+ error("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue.");
731
+ }
732
+ }
733
+ if (typeof type2 === "function") {
734
+ return type2.displayName || type2.name || null;
735
+ }
736
+ if (typeof type2 === "string") {
737
+ return type2;
738
+ }
739
+ switch (type2) {
740
+ case exports.Fragment:
741
+ return "Fragment";
742
+ case REACT_PORTAL_TYPE:
743
+ return "Portal";
744
+ case REACT_PROFILER_TYPE:
745
+ return "Profiler";
746
+ case REACT_STRICT_MODE_TYPE:
747
+ return "StrictMode";
748
+ case REACT_SUSPENSE_TYPE:
749
+ return "Suspense";
750
+ case REACT_SUSPENSE_LIST_TYPE:
751
+ return "SuspenseList";
752
+ }
753
+ if (typeof type2 === "object") {
754
+ switch (type2.$$typeof) {
755
+ case REACT_CONTEXT_TYPE:
756
+ return "Context.Consumer";
757
+ case REACT_PROVIDER_TYPE:
758
+ return "Context.Provider";
759
+ case REACT_FORWARD_REF_TYPE:
760
+ return getWrappedName(type2, type2.render, "ForwardRef");
761
+ case REACT_MEMO_TYPE:
762
+ return getComponentName(type2.type);
763
+ case REACT_BLOCK_TYPE:
764
+ return getComponentName(type2.render);
765
+ case REACT_LAZY_TYPE: {
766
+ var thenable = type2;
767
+ var resolvedThenable = refineResolvedLazyComponent(thenable);
768
+ if (resolvedThenable) {
769
+ return getComponentName(resolvedThenable);
770
+ }
771
+ break;
772
+ }
773
+ }
774
+ }
775
+ return null;
776
+ }
266
777
  var loggedTypeFailures = {};
267
778
  ReactSharedInternals.ReactDebugCurrentFrame;
268
779
  var currentlyValidatingElement = null;
@@ -568,499 +1079,220 @@ function requireReactJsxRuntime_development() {
568
1079
  var propTypes;
569
1080
  if (typeof type2 === "function") {
570
1081
  propTypes = type2.propTypes;
571
- } else if (typeof type2 === "object" && (type2.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
572
- // Inner props are checked in the reconciler.
573
- type2.$$typeof === REACT_MEMO_TYPE)) {
574
- propTypes = type2.propTypes;
575
- } else {
576
- return;
577
- }
578
- if (propTypes) {
579
- var name2 = getComponentName(type2);
580
- checkPropTypes(propTypes, element.props, "prop", name2, element);
581
- } else if (type2.PropTypes !== void 0 && !propTypesMisspellWarningShown) {
582
- propTypesMisspellWarningShown = true;
583
- var _name = getComponentName(type2);
584
- error("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown");
585
- }
586
- if (typeof type2.getDefaultProps === "function" && !type2.getDefaultProps.isReactClassApproved) {
587
- error("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
588
- }
589
- }
590
- }
591
- function validateFragmentProps(fragment) {
592
- {
593
- var keys = Object.keys(fragment.props);
594
- for (var i = 0; i < keys.length; i++) {
595
- var key = keys[i];
596
- if (key !== "children" && key !== "key") {
597
- setCurrentlyValidatingElement$1(fragment);
598
- error("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", key);
599
- setCurrentlyValidatingElement$1(null);
600
- break;
601
- }
602
- }
603
- if (fragment.ref !== null) {
604
- setCurrentlyValidatingElement$1(fragment);
605
- error("Invalid attribute `ref` supplied to `React.Fragment`.");
606
- setCurrentlyValidatingElement$1(null);
607
- }
608
- }
609
- }
610
- function jsxWithValidation(type2, props, key, isStaticChildren, source, self2) {
611
- {
612
- var validType = isValidElementType(type2);
613
- if (!validType) {
614
- var info = "";
615
- if (type2 === void 0 || typeof type2 === "object" && type2 !== null && Object.keys(type2).length === 0) {
616
- info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
617
- }
618
- var sourceInfo = getSourceInfoErrorAddendum(source);
619
- if (sourceInfo) {
620
- info += sourceInfo;
621
- } else {
622
- info += getDeclarationErrorAddendum();
623
- }
624
- var typeString;
625
- if (type2 === null) {
626
- typeString = "null";
627
- } else if (Array.isArray(type2)) {
628
- typeString = "array";
629
- } else if (type2 !== void 0 && type2.$$typeof === REACT_ELEMENT_TYPE) {
630
- typeString = "<" + (getComponentName(type2.type) || "Unknown") + " />";
631
- info = " Did you accidentally export a JSX literal instead of a component?";
632
- } else {
633
- typeString = typeof type2;
634
- }
635
- error("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info);
636
- }
637
- var element = jsxDEV(type2, props, key, source, self2);
638
- if (element == null) {
639
- return element;
640
- }
641
- if (validType) {
642
- var children = props.children;
643
- if (children !== void 0) {
644
- if (isStaticChildren) {
645
- if (Array.isArray(children)) {
646
- for (var i = 0; i < children.length; i++) {
647
- validateChildKeys(children[i], type2);
648
- }
649
- if (Object.freeze) {
650
- Object.freeze(children);
651
- }
652
- } else {
653
- error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
654
- }
655
- } else {
656
- validateChildKeys(children, type2);
657
- }
658
- }
659
- }
660
- if (type2 === exports.Fragment) {
661
- validateFragmentProps(element);
662
- } else {
663
- validatePropTypes(element);
664
- }
665
- return element;
666
- }
667
- }
668
- function jsxWithValidationStatic(type2, props, key) {
669
- {
670
- return jsxWithValidation(type2, props, key, true);
671
- }
672
- }
673
- function jsxWithValidationDynamic(type2, props, key) {
674
- {
675
- return jsxWithValidation(type2, props, key, false);
676
- }
677
- }
678
- var jsx = jsxWithValidationDynamic;
679
- var jsxs = jsxWithValidationStatic;
680
- exports.jsx = jsx;
681
- exports.jsxs = jsxs;
682
- })();
683
- }
684
- })(reactJsxRuntime_development);
685
- return reactJsxRuntime_development;
686
- }
687
- if (process.env.NODE_ENV === "production") {
688
- jsxRuntime.exports = requireReactJsxRuntime_production_min();
689
- } else {
690
- jsxRuntime.exports = requireReactJsxRuntime_development();
691
- }
692
- var jsxRuntimeExports = jsxRuntime.exports;
693
- const stringifyConfig = {
694
- addQueryPrefix: true,
695
- skipNulls: true,
696
- arrayFormat: "indices",
697
- encode: false,
698
- encodeValuesOnly: true
699
- };
700
- const convertToNumberIfPossible = (value) => {
701
- if (typeof value === "undefined") {
702
- return value;
703
- }
704
- const num = Number(value);
705
- if (`${num}` === value) {
706
- return num;
707
- }
708
- return value;
709
- };
710
- const routerProvider = {
711
- go: () => {
712
- const { search: existingSearch, hash: existingHash } = useLocation();
713
- const history = useHistory();
714
- const fn = useCallback(
715
- ({ to, type: type2, query, hash, options: { keepQuery, keepHash } = {} }) => {
716
- const urlQuery = {
717
- ...keepQuery && existingSearch && parse(existingSearch, { ignoreQueryPrefix: true }),
718
- ...query
719
- };
720
- if (urlQuery.to) {
721
- urlQuery.to = encodeURIComponent(`${urlQuery.to}`);
722
- }
723
- const hasUrlQuery = Object.keys(urlQuery).length > 0;
724
- const urlHash = `#${(hash || keepHash && existingHash || "").replace(
725
- /^#/,
726
- ""
727
- )}`;
728
- const hasUrlHash = urlHash.length > 1;
729
- const urlTo = to || "";
730
- const fullPath = `${urlTo}${hasUrlQuery ? stringify(urlQuery, stringifyConfig) : ""}${hasUrlHash ? urlHash : ""}`;
731
- if (type2 === "path") {
732
- return fullPath;
1082
+ } else if (typeof type2 === "object" && (type2.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
1083
+ // Inner props are checked in the reconciler.
1084
+ type2.$$typeof === REACT_MEMO_TYPE)) {
1085
+ propTypes = type2.propTypes;
1086
+ } else {
1087
+ return;
1088
+ }
1089
+ if (propTypes) {
1090
+ var name2 = getComponentName(type2);
1091
+ checkPropTypes(propTypes, element.props, "prop", name2, element);
1092
+ } else if (type2.PropTypes !== void 0 && !propTypesMisspellWarningShown) {
1093
+ propTypesMisspellWarningShown = true;
1094
+ var _name = getComponentName(type2);
1095
+ error("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown");
1096
+ }
1097
+ if (typeof type2.getDefaultProps === "function" && !type2.getDefaultProps.isReactClassApproved) {
1098
+ error("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
1099
+ }
1100
+ }
733
1101
  }
734
- return history[type2 || "push"](fullPath);
735
- },
736
- [existingHash, existingSearch, history]
737
- );
738
- return fn;
739
- },
740
- back: () => {
741
- const history = useHistory();
742
- const fn = useCallback(() => {
743
- history.go(-1);
744
- }, [history]);
745
- return fn;
746
- },
747
- parse: () => {
748
- var _a;
749
- let params = useParams();
750
- const { pathname, search } = useLocation();
751
- const { resources: resources2 } = useContext(ResourceContext);
752
- const { resource, action, matchedRoute } = React__default.useMemo(() => {
753
- return matchResourceFromRoute(pathname, resources2);
754
- }, [resources2, pathname]);
755
- if (Object.entries(params).length === 0 && matchedRoute) {
756
- params = ((_a = matchPath(matchedRoute, pathname)) == null ? void 0 : _a.params) || {};
757
- }
758
- const fn = useCallback(() => {
759
- const parsedSearch = parse(search, { ignoreQueryPrefix: true });
760
- const combinedParams = {
761
- ...params,
762
- ...parsedSearch
763
- };
764
- const response = {
765
- ...resource && { resource },
766
- ...action && { action },
767
- ...(parsedSearch == null ? void 0 : parsedSearch.id) && { id: decodeURIComponent(parsedSearch.id) },
768
- // ...(params?.action && { action: params.action }), // lets see if there is a need for this
769
- pathname,
770
- params: {
771
- ...combinedParams,
772
- current: convertToNumberIfPossible(combinedParams.current),
773
- pageSize: convertToNumberIfPossible(combinedParams.pageSize),
774
- to: combinedParams.to ? decodeURIComponent(combinedParams.to) : void 0
1102
+ function validateFragmentProps(fragment) {
1103
+ {
1104
+ var keys = Object.keys(fragment.props);
1105
+ for (var i = 0; i < keys.length; i++) {
1106
+ var key = keys[i];
1107
+ if (key !== "children" && key !== "key") {
1108
+ setCurrentlyValidatingElement$1(fragment);
1109
+ error("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", key);
1110
+ setCurrentlyValidatingElement$1(null);
1111
+ break;
1112
+ }
1113
+ }
1114
+ if (fragment.ref !== null) {
1115
+ setCurrentlyValidatingElement$1(fragment);
1116
+ error("Invalid attribute `ref` supplied to `React.Fragment`.");
1117
+ setCurrentlyValidatingElement$1(null);
1118
+ }
1119
+ }
775
1120
  }
776
- };
777
- return response;
778
- }, [pathname, search, params, resource, action]);
779
- return fn;
780
- },
781
- Link: React__default.forwardRef(function RefineLink(props, ref) {
782
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ...props, ref });
783
- })
784
- };
785
- function warn() {
786
- if (console && console.warn) {
787
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
788
- args[_key] = arguments[_key];
789
- }
790
- if (typeof args[0] === "string")
791
- args[0] = `react-i18next:: ${args[0]}`;
792
- console.warn(...args);
793
- }
794
- }
795
- const alreadyWarned = {};
796
- function warnOnce() {
797
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
798
- args[_key2] = arguments[_key2];
799
- }
800
- if (typeof args[0] === "string" && alreadyWarned[args[0]])
801
- return;
802
- if (typeof args[0] === "string")
803
- alreadyWarned[args[0]] = /* @__PURE__ */ new Date();
804
- warn(...args);
805
- }
806
- const loadedClb = (i18n2, cb) => () => {
807
- if (i18n2.isInitialized) {
808
- cb();
809
- } else {
810
- const initialized = () => {
811
- setTimeout(() => {
812
- i18n2.off("initialized", initialized);
813
- }, 0);
814
- cb();
815
- };
816
- i18n2.on("initialized", initialized);
817
- }
818
- };
819
- function loadNamespaces(i18n2, ns, cb) {
820
- i18n2.loadNamespaces(ns, loadedClb(i18n2, cb));
821
- }
822
- function loadLanguages(i18n2, lng, ns, cb) {
823
- if (typeof ns === "string")
824
- ns = [ns];
825
- ns.forEach((n) => {
826
- if (i18n2.options.ns.indexOf(n) < 0)
827
- i18n2.options.ns.push(n);
828
- });
829
- i18n2.loadLanguages(lng, loadedClb(i18n2, cb));
830
- }
831
- function oldI18nextHasLoadedNamespace(ns, i18n2) {
832
- let options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
833
- const lng = i18n2.languages[0];
834
- const fallbackLng = i18n2.options ? i18n2.options.fallbackLng : false;
835
- const lastLng = i18n2.languages[i18n2.languages.length - 1];
836
- if (lng.toLowerCase() === "cimode")
837
- return true;
838
- const loadNotPending = (l, n) => {
839
- const loadState = i18n2.services.backendConnector.state[`${l}|${n}`];
840
- return loadState === -1 || loadState === 2;
841
- };
842
- if (options.bindI18n && options.bindI18n.indexOf("languageChanging") > -1 && i18n2.services.backendConnector.backend && i18n2.isLanguageChangingTo && !loadNotPending(i18n2.isLanguageChangingTo, ns))
843
- return false;
844
- if (i18n2.hasResourceBundle(lng, ns))
845
- return true;
846
- if (!i18n2.services.backendConnector.backend || i18n2.options.resources && !i18n2.options.partialBundledLanguages)
847
- return true;
848
- if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns)))
849
- return true;
850
- return false;
851
- }
852
- function hasLoadedNamespace(ns, i18n2) {
853
- let options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
854
- if (!i18n2.languages || !i18n2.languages.length) {
855
- warnOnce("i18n.languages were undefined or empty", i18n2.languages);
856
- return true;
857
- }
858
- const isNewerI18next = i18n2.options.ignoreJSONStructure !== void 0;
859
- if (!isNewerI18next) {
860
- return oldI18nextHasLoadedNamespace(ns, i18n2, options);
861
- }
862
- return i18n2.hasLoadedNamespace(ns, {
863
- lng: options.lng,
864
- precheck: (i18nInstance2, loadNotPending) => {
865
- if (options.bindI18n && options.bindI18n.indexOf("languageChanging") > -1 && i18nInstance2.services.backendConnector.backend && i18nInstance2.isLanguageChangingTo && !loadNotPending(i18nInstance2.isLanguageChangingTo, ns))
866
- return false;
867
- }
868
- });
869
- }
870
- const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
871
- const htmlEntities = {
872
- "&amp;": "&",
873
- "&#38;": "&",
874
- "&lt;": "<",
875
- "&#60;": "<",
876
- "&gt;": ">",
877
- "&#62;": ">",
878
- "&apos;": "'",
879
- "&#39;": "'",
880
- "&quot;": '"',
881
- "&#34;": '"',
882
- "&nbsp;": " ",
883
- "&#160;": " ",
884
- "&copy;": "©",
885
- "&#169;": "©",
886
- "&reg;": "®",
887
- "&#174;": "®",
888
- "&hellip;": "…",
889
- "&#8230;": "…",
890
- "&#x2F;": "/",
891
- "&#47;": "/"
892
- };
893
- const unescapeHtmlEntity = (m) => htmlEntities[m];
894
- const unescape = (text) => text.replace(matchHtmlEntity, unescapeHtmlEntity);
895
- let defaultOptions = {
896
- bindI18n: "languageChanged",
897
- bindI18nStore: "",
898
- transEmptyNodeValue: "",
899
- transSupportBasicHtmlNodes: true,
900
- transWrapTextNodes: "",
901
- transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
902
- useSuspense: true,
903
- unescape
904
- };
905
- function setDefaults() {
906
- let options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
907
- defaultOptions = {
908
- ...defaultOptions,
909
- ...options
910
- };
911
- }
912
- function getDefaults() {
913
- return defaultOptions;
914
- }
915
- let i18nInstance;
916
- function setI18n(instance) {
917
- i18nInstance = instance;
1121
+ function jsxWithValidation(type2, props, key, isStaticChildren, source, self2) {
1122
+ {
1123
+ var validType = isValidElementType(type2);
1124
+ if (!validType) {
1125
+ var info = "";
1126
+ if (type2 === void 0 || typeof type2 === "object" && type2 !== null && Object.keys(type2).length === 0) {
1127
+ info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";
1128
+ }
1129
+ var sourceInfo = getSourceInfoErrorAddendum(source);
1130
+ if (sourceInfo) {
1131
+ info += sourceInfo;
1132
+ } else {
1133
+ info += getDeclarationErrorAddendum();
1134
+ }
1135
+ var typeString;
1136
+ if (type2 === null) {
1137
+ typeString = "null";
1138
+ } else if (Array.isArray(type2)) {
1139
+ typeString = "array";
1140
+ } else if (type2 !== void 0 && type2.$$typeof === REACT_ELEMENT_TYPE) {
1141
+ typeString = "<" + (getComponentName(type2.type) || "Unknown") + " />";
1142
+ info = " Did you accidentally export a JSX literal instead of a component?";
1143
+ } else {
1144
+ typeString = typeof type2;
1145
+ }
1146
+ error("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info);
1147
+ }
1148
+ var element = jsxDEV(type2, props, key, source, self2);
1149
+ if (element == null) {
1150
+ return element;
1151
+ }
1152
+ if (validType) {
1153
+ var children = props.children;
1154
+ if (children !== void 0) {
1155
+ if (isStaticChildren) {
1156
+ if (Array.isArray(children)) {
1157
+ for (var i = 0; i < children.length; i++) {
1158
+ validateChildKeys(children[i], type2);
1159
+ }
1160
+ if (Object.freeze) {
1161
+ Object.freeze(children);
1162
+ }
1163
+ } else {
1164
+ error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
1165
+ }
1166
+ } else {
1167
+ validateChildKeys(children, type2);
1168
+ }
1169
+ }
1170
+ }
1171
+ if (type2 === exports.Fragment) {
1172
+ validateFragmentProps(element);
1173
+ } else {
1174
+ validatePropTypes(element);
1175
+ }
1176
+ return element;
1177
+ }
1178
+ }
1179
+ function jsxWithValidationStatic(type2, props, key) {
1180
+ {
1181
+ return jsxWithValidation(type2, props, key, true);
1182
+ }
1183
+ }
1184
+ function jsxWithValidationDynamic(type2, props, key) {
1185
+ {
1186
+ return jsxWithValidation(type2, props, key, false);
1187
+ }
1188
+ }
1189
+ var jsx = jsxWithValidationDynamic;
1190
+ var jsxs = jsxWithValidationStatic;
1191
+ exports.jsx = jsx;
1192
+ exports.jsxs = jsxs;
1193
+ })();
1194
+ }
1195
+ })(reactJsxRuntime_development);
1196
+ return reactJsxRuntime_development;
918
1197
  }
919
- function getI18n() {
920
- return i18nInstance;
1198
+ if (process.env.NODE_ENV === "production") {
1199
+ jsxRuntime.exports = requireReactJsxRuntime_production_min();
1200
+ } else {
1201
+ jsxRuntime.exports = requireReactJsxRuntime_development();
921
1202
  }
922
- const initReactI18next = {
923
- type: "3rdParty",
924
- init(instance) {
925
- setDefaults(instance.options.react);
926
- setI18n(instance);
927
- }
1203
+ var jsxRuntimeExports = jsxRuntime.exports;
1204
+ const stringifyConfig = {
1205
+ addQueryPrefix: true,
1206
+ skipNulls: true,
1207
+ arrayFormat: "indices",
1208
+ encode: false,
1209
+ encodeValuesOnly: true
928
1210
  };
929
- const I18nContext = createContext();
930
- class ReportNamespaces {
931
- constructor() {
932
- this.usedNamespaces = {};
933
- }
934
- addUsedNamespaces(namespaces) {
935
- namespaces.forEach((ns) => {
936
- if (!this.usedNamespaces[ns])
937
- this.usedNamespaces[ns] = true;
938
- });
1211
+ const convertToNumberIfPossible = (value) => {
1212
+ if (typeof value === "undefined") {
1213
+ return value;
939
1214
  }
940
- getUsedNamespaces() {
941
- return Object.keys(this.usedNamespaces);
1215
+ const num = Number(value);
1216
+ if (`${num}` === value) {
1217
+ return num;
942
1218
  }
943
- }
944
- const usePrevious = (value, ignore) => {
945
- const ref = useRef();
946
- useEffect(() => {
947
- ref.current = ignore ? ref.current : value;
948
- }, [value, ignore]);
949
- return ref.current;
1219
+ return value;
950
1220
  };
951
- function useTranslation(ns) {
952
- let props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
953
- const {
954
- i18n: i18nFromProps
955
- } = props;
956
- const {
957
- i18n: i18nFromContext,
958
- defaultNS: defaultNSFromContext
959
- } = useContext(I18nContext) || {};
960
- const i18n2 = i18nFromProps || i18nFromContext || getI18n();
961
- if (i18n2 && !i18n2.reportNamespaces)
962
- i18n2.reportNamespaces = new ReportNamespaces();
963
- if (!i18n2) {
964
- warnOnce("You will need to pass in an i18next instance by using initReactI18next");
965
- const notReadyT = (k, optsOrDefaultValue) => {
966
- if (typeof optsOrDefaultValue === "string")
967
- return optsOrDefaultValue;
968
- if (optsOrDefaultValue && typeof optsOrDefaultValue === "object" && typeof optsOrDefaultValue.defaultValue === "string")
969
- return optsOrDefaultValue.defaultValue;
970
- return Array.isArray(k) ? k[k.length - 1] : k;
971
- };
972
- const retNotReady = [notReadyT, {}, false];
973
- retNotReady.t = notReadyT;
974
- retNotReady.i18n = {};
975
- retNotReady.ready = false;
976
- return retNotReady;
977
- }
978
- if (i18n2.options.react && i18n2.options.react.wait !== void 0)
979
- warnOnce("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");
980
- const i18nOptions = {
981
- ...getDefaults(),
982
- ...i18n2.options.react,
983
- ...props
984
- };
985
- const {
986
- useSuspense,
987
- keyPrefix
988
- } = i18nOptions;
989
- let namespaces = ns || defaultNSFromContext || i18n2.options && i18n2.options.defaultNS;
990
- namespaces = typeof namespaces === "string" ? [namespaces] : namespaces || ["translation"];
991
- if (i18n2.reportNamespaces.addUsedNamespaces)
992
- i18n2.reportNamespaces.addUsedNamespaces(namespaces);
993
- const ready2 = (i18n2.isInitialized || i18n2.initializedStoreOnce) && namespaces.every((n) => hasLoadedNamespace(n, i18n2, i18nOptions));
994
- function getT() {
995
- return i18n2.getFixedT(props.lng || null, i18nOptions.nsMode === "fallback" ? namespaces : namespaces[0], keyPrefix);
996
- }
997
- const [t, setT] = useState(getT);
998
- let joinedNS = namespaces.join();
999
- if (props.lng)
1000
- joinedNS = `${props.lng}${joinedNS}`;
1001
- const previousJoinedNS = usePrevious(joinedNS);
1002
- const isMounted = useRef(true);
1003
- useEffect(() => {
1004
- const {
1005
- bindI18n,
1006
- bindI18nStore
1007
- } = i18nOptions;
1008
- isMounted.current = true;
1009
- if (!ready2 && !useSuspense) {
1010
- if (props.lng) {
1011
- loadLanguages(i18n2, props.lng, namespaces, () => {
1012
- if (isMounted.current)
1013
- setT(getT);
1014
- });
1015
- } else {
1016
- loadNamespaces(i18n2, namespaces, () => {
1017
- if (isMounted.current)
1018
- setT(getT);
1019
- });
1020
- }
1021
- }
1022
- if (ready2 && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {
1023
- setT(getT);
1024
- }
1025
- function boundReset() {
1026
- if (isMounted.current)
1027
- setT(getT);
1028
- }
1029
- if (bindI18n && i18n2)
1030
- i18n2.on(bindI18n, boundReset);
1031
- if (bindI18nStore && i18n2)
1032
- i18n2.store.on(bindI18nStore, boundReset);
1033
- return () => {
1034
- isMounted.current = false;
1035
- if (bindI18n && i18n2)
1036
- bindI18n.split(" ").forEach((e) => i18n2.off(e, boundReset));
1037
- if (bindI18nStore && i18n2)
1038
- bindI18nStore.split(" ").forEach((e) => i18n2.store.off(e, boundReset));
1039
- };
1040
- }, [i18n2, joinedNS]);
1041
- const isInitial = useRef(true);
1042
- useEffect(() => {
1043
- if (isMounted.current && !isInitial.current) {
1044
- setT(getT);
1045
- }
1046
- isInitial.current = false;
1047
- }, [i18n2, keyPrefix]);
1048
- const ret = [t, i18n2, ready2];
1049
- ret.t = t;
1050
- ret.i18n = i18n2;
1051
- ret.ready = ready2;
1052
- if (ready2)
1053
- return ret;
1054
- if (!ready2 && !useSuspense)
1055
- return ret;
1056
- throw new Promise((resolve) => {
1057
- if (props.lng) {
1058
- loadLanguages(i18n2, props.lng, namespaces, () => resolve());
1059
- } else {
1060
- loadNamespaces(i18n2, namespaces, () => resolve());
1221
+ const routerProvider = {
1222
+ go: () => {
1223
+ const { search: existingSearch, hash: existingHash } = useLocation();
1224
+ const history = useHistory();
1225
+ const fn = useCallback(
1226
+ ({ to, type: type2, query, hash, options: { keepQuery, keepHash } = {} }) => {
1227
+ const urlQuery = {
1228
+ ...keepQuery && existingSearch && parse(existingSearch, { ignoreQueryPrefix: true }),
1229
+ ...query
1230
+ };
1231
+ if (urlQuery.to) {
1232
+ urlQuery.to = encodeURIComponent(`${urlQuery.to}`);
1233
+ }
1234
+ const hasUrlQuery = Object.keys(urlQuery).length > 0;
1235
+ const urlHash = `#${(hash || keepHash && existingHash || "").replace(
1236
+ /^#/,
1237
+ ""
1238
+ )}`;
1239
+ const hasUrlHash = urlHash.length > 1;
1240
+ const urlTo = to || "";
1241
+ const fullPath = `${urlTo}${hasUrlQuery ? stringify(urlQuery, stringifyConfig) : ""}${hasUrlHash ? urlHash : ""}`;
1242
+ if (type2 === "path") {
1243
+ return fullPath;
1244
+ }
1245
+ return history[type2 || "push"](fullPath);
1246
+ },
1247
+ [existingHash, existingSearch, history]
1248
+ );
1249
+ return fn;
1250
+ },
1251
+ back: () => {
1252
+ const history = useHistory();
1253
+ const fn = useCallback(() => {
1254
+ history.go(-1);
1255
+ }, [history]);
1256
+ return fn;
1257
+ },
1258
+ parse: () => {
1259
+ var _a;
1260
+ let params = useParams();
1261
+ const { pathname, search } = useLocation();
1262
+ const { resources: resources2 } = useContext(ResourceContext);
1263
+ const { resource, action, matchedRoute } = React__default.useMemo(() => {
1264
+ return matchResourceFromRoute(pathname, resources2);
1265
+ }, [resources2, pathname]);
1266
+ if (Object.entries(params).length === 0 && matchedRoute) {
1267
+ params = ((_a = matchPath(matchedRoute, pathname)) == null ? void 0 : _a.params) || {};
1061
1268
  }
1062
- });
1063
- }
1269
+ const fn = useCallback(() => {
1270
+ const parsedSearch = parse(search, { ignoreQueryPrefix: true });
1271
+ const combinedParams = {
1272
+ ...params,
1273
+ ...parsedSearch
1274
+ };
1275
+ const response = {
1276
+ ...resource && { resource },
1277
+ ...action && { action },
1278
+ ...(parsedSearch == null ? void 0 : parsedSearch.id) && { id: decodeURIComponent(parsedSearch.id) },
1279
+ // ...(params?.action && { action: params.action }), // lets see if there is a need for this
1280
+ pathname,
1281
+ params: {
1282
+ ...combinedParams,
1283
+ current: convertToNumberIfPossible(combinedParams.current),
1284
+ pageSize: convertToNumberIfPossible(combinedParams.pageSize),
1285
+ to: combinedParams.to ? decodeURIComponent(combinedParams.to) : void 0
1286
+ }
1287
+ };
1288
+ return response;
1289
+ }, [pathname, search, params, resource, action]);
1290
+ return fn;
1291
+ },
1292
+ Link: React__default.forwardRef(function RefineLink(props, ref) {
1293
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ...props, ref });
1294
+ })
1295
+ };
1064
1296
  function useK8sYamlEditor() {
1065
1297
  const foldSymbol = useCallback(function(editor, symbol) {
1066
1298
  const model = editor.getModel();
@@ -7276,236 +7508,6 @@ function MetadataForm() {
7276
7508
  /* @__PURE__ */ jsxRuntimeExports.jsx(kit.form.Item, { name: ["metadata", "annotations"], label: "Annotations", children: /* @__PURE__ */ jsxRuntimeExports.jsx(KeyValueListWidget, {}) })
7277
7509
  ] });
7278
7510
  }
7279
- const copy$1 = "Copy";
7280
- const reset_arguments$1 = "Reset";
7281
- const view_changes$1 = "Show Diff";
7282
- const back_to_edit$1 = "Edit";
7283
- const configure_file$1 = "Configuration";
7284
- const yaml_format_wrong$1 = "Configuration is in an invalid YAML format.";
7285
- const yaml_value_wrong$1 = "Configuration has invalid values.";
7286
- const edit_yaml$1 = "Edit YAML";
7287
- const copied$1 = "Copied";
7288
- const already_reset$1 = "Already reset";
7289
- const fetch_schema_fail$1 = "Failed to fetch schema.";
7290
- const obtain_data_error$1 = "Having trouble getting data.";
7291
- const retry$1 = "Retry";
7292
- const create_resource$1 = "Create {{resource}}";
7293
- const edit_resource$1 = "Edit {{resource}}";
7294
- const dovetail$1 = {
7295
- copy: copy$1,
7296
- reset_arguments: reset_arguments$1,
7297
- view_changes: view_changes$1,
7298
- back_to_edit: back_to_edit$1,
7299
- configure_file: configure_file$1,
7300
- yaml_format_wrong: yaml_format_wrong$1,
7301
- yaml_value_wrong: yaml_value_wrong$1,
7302
- edit_yaml: edit_yaml$1,
7303
- copied: copied$1,
7304
- already_reset: already_reset$1,
7305
- fetch_schema_fail: fetch_schema_fail$1,
7306
- obtain_data_error: obtain_data_error$1,
7307
- retry: retry$1,
7308
- create_resource: create_resource$1,
7309
- edit_resource: edit_resource$1
7310
- };
7311
- const EN = {
7312
- dovetail: dovetail$1
7313
- };
7314
- const copy = "复制";
7315
- const reset_arguments = "重置";
7316
- const view_changes = "查看改动";
7317
- const back_to_edit = "编辑";
7318
- const configure_file = "配置内容";
7319
- const yaml_format_wrong = "配置内容不是有效的 yaml 格式。";
7320
- const yaml_value_wrong = "配置内容中存在不合法的值。";
7321
- const edit_yaml = "编辑 YAML";
7322
- const copied = "已复制";
7323
- const already_reset = "已重置";
7324
- const cancel = "取消";
7325
- const create = "创建";
7326
- const confirm_delete_text = "确定要删除 {{target}} 吗?";
7327
- const edit = "编辑";
7328
- const namespace = "名字空间";
7329
- const name = "名称";
7330
- const state = "状态";
7331
- const status = "状态";
7332
- const phase = "状态";
7333
- const image = "容器镜像";
7334
- const replicas = "副本数";
7335
- const created_time = "创建时间";
7336
- const label = "标签";
7337
- const annotation = "注释";
7338
- const type = "类型";
7339
- const event = "事件";
7340
- const reason = "原因";
7341
- const object = "对象";
7342
- const note$1 = "事件信息";
7343
- const condition = "Condition";
7344
- const download_yaml = "下载 YAML";
7345
- const detail = "详情";
7346
- const node_name = "主机名称";
7347
- const restarts = "重启次数";
7348
- const updated_time = "更新时间";
7349
- const message = "消息";
7350
- const save = "保存";
7351
- const more = "更多";
7352
- const workload = "工作负载";
7353
- const all_namespaces = "所有名字空间";
7354
- const empty = "无可显示的数据";
7355
- const schedule = "调度时间表";
7356
- const lastScheduleTime = "上次调度时间";
7357
- const duration = "持续时间";
7358
- const completions = "完成 Job 历史数";
7359
- const started = "开始时间";
7360
- const init_container = "初始化容器";
7361
- const container = "容器";
7362
- const redeploy = "重新部署";
7363
- const data = "数据";
7364
- const suspend = "暂停";
7365
- const resume = "重新开始";
7366
- const cluster = "集群";
7367
- const storage = "存储";
7368
- const network = "网络";
7369
- const clusterIp = "集群 IP";
7370
- const sessionAffinity = "会话保持";
7371
- const log = "日志";
7372
- const select_container = "选择容器";
7373
- const wrap = "折叠";
7374
- const resume_log = "继续";
7375
- const log_new_lines = ",并展示 {{ count }} 行新日志";
7376
- const fetch_schema_fail = "获取 schema 失败。";
7377
- const obtain_data_error = "获取数据时遇到问题。";
7378
- const retry = "重试";
7379
- const ready = "就绪";
7380
- const updating = "更新中";
7381
- const completed = "完成";
7382
- const failed = "异常";
7383
- const suspended = "挂起";
7384
- const running = "运行中";
7385
- const terminating = "终止";
7386
- const succeeded = "成功终止";
7387
- const unknown = "未知";
7388
- const pending = "待处理";
7389
- const waiting = "等待中";
7390
- const create_resource = "创建 {{resource}}";
7391
- const edit_resource = "编辑 {{resource}}";
7392
- const sec = "秒";
7393
- const min = "分";
7394
- const hr = "小时";
7395
- const day = "天";
7396
- const expand = "展开";
7397
- const fold = "收起";
7398
- const rule = "规则";
7399
- const default_backend = "默认后端";
7400
- const ingress_rule_type = "规则类型";
7401
- const port = "端口";
7402
- const dovetail = {
7403
- copy,
7404
- reset_arguments,
7405
- view_changes,
7406
- back_to_edit,
7407
- configure_file,
7408
- yaml_format_wrong,
7409
- yaml_value_wrong,
7410
- edit_yaml,
7411
- copied,
7412
- already_reset,
7413
- cancel,
7414
- "delete": "删除",
7415
- create,
7416
- confirm_delete_text,
7417
- edit,
7418
- namespace,
7419
- name,
7420
- state,
7421
- status,
7422
- phase,
7423
- image,
7424
- replicas,
7425
- created_time,
7426
- label,
7427
- annotation,
7428
- type,
7429
- event,
7430
- reason,
7431
- object,
7432
- note: note$1,
7433
- condition,
7434
- download_yaml,
7435
- detail,
7436
- node_name,
7437
- restarts,
7438
- updated_time,
7439
- message,
7440
- save,
7441
- more,
7442
- workload,
7443
- all_namespaces,
7444
- empty,
7445
- schedule,
7446
- lastScheduleTime,
7447
- duration,
7448
- completions,
7449
- started,
7450
- init_container,
7451
- container,
7452
- redeploy,
7453
- data,
7454
- suspend,
7455
- resume,
7456
- cluster,
7457
- storage,
7458
- network,
7459
- clusterIp,
7460
- sessionAffinity,
7461
- log,
7462
- select_container,
7463
- wrap,
7464
- resume_log,
7465
- log_new_lines,
7466
- fetch_schema_fail,
7467
- obtain_data_error,
7468
- retry,
7469
- ready,
7470
- updating,
7471
- completed,
7472
- failed,
7473
- suspended,
7474
- running,
7475
- terminating,
7476
- succeeded,
7477
- unknown,
7478
- pending,
7479
- waiting,
7480
- create_resource,
7481
- edit_resource,
7482
- sec,
7483
- min,
7484
- hr,
7485
- day,
7486
- expand,
7487
- fold,
7488
- rule,
7489
- default_backend,
7490
- ingress_rule_type,
7491
- port
7492
- };
7493
- const ZH = {
7494
- dovetail
7495
- };
7496
- const resources = {
7497
- "en-US": EN,
7498
- "zh-CN": ZH
7499
- };
7500
- i18n.use(initReactI18next).init({
7501
- supportedLngs: ["en-US", "zh-CN"],
7502
- resources,
7503
- ns: Object.keys(resources["zh-CN"]),
7504
- defaultNS: "dovetail",
7505
- fallbackLng: ["en-US", "zh-CN"],
7506
- lng: "zh-CN",
7507
- nsSeparator: "."
7508
- });
7509
7511
  function addId(arr, idKey) {
7510
7512
  return arr.map((e) => {
7511
7513
  return {
@@ -9856,7 +9858,7 @@ const ErrorMsgStyle = "eh2qjnl";
9856
9858
  const ErrorWrapperStyle = "e19q2bnp";
9857
9859
  const YamlEditorStyle = "y16u5v3w";
9858
9860
  const MonacoYamlEditor$2 = React__default.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$1));
9859
- const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-caec6da3.js"));
9861
+ const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-4436e990.js"));
9860
9862
  const YamlEditorComponent = forwardRef(
9861
9863
  function YamlEditorComponent2(props, ref) {
9862
9864
  const {
@@ -10663,6 +10665,9 @@ function matchOwner(job, owner) {
10663
10665
  const CronjobJobsTable = ({
10664
10666
  owner
10665
10667
  }) => {
10668
+ const {
10669
+ i18n: i18n2
10670
+ } = useTranslation();
10666
10671
  const kit = useUIKit();
10667
10672
  const [selectedKeys, setSelectedKeys] = useState([]);
10668
10673
  const [currentPage, setCurrentPage] = useState(1);
@@ -10680,7 +10685,7 @@ const CronjobJobsTable = ({
10680
10685
  return owner ? matchOwner(p, owner) : true;
10681
10686
  });
10682
10687
  }, [data2 == null ? void 0 : data2.data, owner]);
10683
- const columns = [NameColumnRenderer("jobs"), StateDisplayColumnRenderer(), NameSpaceColumnRenderer(), WorkloadImageColumnRenderer(), CompletionsCountColumnRenderer(), DurationColumnRenderer(), AgeColumnRenderer()];
10688
+ const columns = [NameColumnRenderer(i18n2, "jobs"), StateDisplayColumnRenderer(i18n2), NameSpaceColumnRenderer(i18n2), WorkloadImageColumnRenderer(i18n2), CompletionsCountColumnRenderer(i18n2), DurationColumnRenderer(i18n2), AgeColumnRenderer(i18n2)];
10684
10689
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(kit.space, {
10685
10690
  direction: "vertical",
10686
10691
  className: "c16agr8o",
@@ -10713,7 +10718,7 @@ const EventsTable = ({}) => {
10713
10718
  const parsed = useParsed();
10714
10719
  const columns = useMemo(
10715
10720
  () => [
10716
- NameSpaceColumnRenderer(),
10721
+ NameSpaceColumnRenderer(i18n2),
10717
10722
  {
10718
10723
  key: "type",
10719
10724
  display: true,
@@ -10746,7 +10751,7 @@ const EventsTable = ({}) => {
10746
10751
  sortable: true,
10747
10752
  sorter: CommonSorter(["note"])
10748
10753
  },
10749
- AgeColumnRenderer()
10754
+ AgeColumnRenderer(i18n2)
10750
10755
  ],
10751
10756
  [i18n2]
10752
10757
  );
@@ -10924,6 +10929,9 @@ const WorkloadPodsTable = ({
10924
10929
  selector,
10925
10930
  hideToolbar
10926
10931
  }) => {
10932
+ const {
10933
+ i18n: i18n2
10934
+ } = useTranslation();
10927
10935
  const kit = useUIKit();
10928
10936
  const [selectedKeys, setSelectedKeys] = useState([]);
10929
10937
  const [currentPage, setCurrentPage] = useState(1);
@@ -10944,7 +10952,7 @@ const WorkloadPodsTable = ({
10944
10952
  return selector ? matchSelector(p, selector) : true;
10945
10953
  });
10946
10954
  }, [data2 == null ? void 0 : data2.data, selector]);
10947
- const columns = [StateDisplayColumnRenderer(), NameColumnRenderer("pods"), NodeNameColumnRenderer(), WorkloadImageColumnRenderer(), RestartCountColumnRenderer()];
10955
+ const columns = [StateDisplayColumnRenderer(i18n2), NameColumnRenderer(i18n2, "pods"), NodeNameColumnRenderer(i18n2), WorkloadImageColumnRenderer(i18n2), RestartCountColumnRenderer(i18n2)];
10948
10956
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(kit.space, {
10949
10957
  direction: "vertical",
10950
10958
  className: "c1dicff8",
@@ -11141,10 +11149,10 @@ function WorkloadReplicas({ record, label: label2, editable }) {
11141
11149
  )
11142
11150
  ] });
11143
11151
  }
11144
- const ImageField = () => {
11152
+ const ImageField = (i18n2) => {
11145
11153
  return {
11146
11154
  key: "Image",
11147
- title: i18n.t("dovetail.image"),
11155
+ title: i18n2.t("dovetail.image"),
11148
11156
  path: ["imageNames"],
11149
11157
  col: 12,
11150
11158
  renderContent(value) {
@@ -11152,20 +11160,20 @@ const ImageField = () => {
11152
11160
  }
11153
11161
  };
11154
11162
  };
11155
- const ReplicaField = () => {
11163
+ const ReplicaField = (i18n2) => {
11156
11164
  return {
11157
11165
  key: "Replicas",
11158
- title: i18n.t("dovetail.replicas"),
11166
+ title: i18n2.t("dovetail.replicas"),
11159
11167
  path: ["status", "replicas"],
11160
11168
  renderContent: (_, record, field) => {
11161
11169
  return /* @__PURE__ */ jsxRuntimeExports.jsx(WorkloadReplicas, { record, label: field.title, editable: true });
11162
11170
  }
11163
11171
  };
11164
11172
  };
11165
- const ConditionsField = () => {
11173
+ const ConditionsField = (i18n2) => {
11166
11174
  return {
11167
11175
  key: "Conditions",
11168
- title: i18n.t("dovetail.condition"),
11176
+ title: i18n2.t("dovetail.condition"),
11169
11177
  path: ["status", "conditions"],
11170
11178
  renderContent: (value) => {
11171
11179
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ConditionsTable, { conditions: value });
@@ -11213,20 +11221,20 @@ const JobsField = () => {
11213
11221
  }
11214
11222
  };
11215
11223
  };
11216
- const DataField = () => {
11224
+ const DataField = (i18n2) => {
11217
11225
  return {
11218
11226
  key: "data",
11219
- title: i18n.t("dovetail.data"),
11227
+ title: i18n2.t("dovetail.data"),
11220
11228
  path: ["data"],
11221
11229
  renderContent: (val) => {
11222
11230
  return /* @__PURE__ */ jsxRuntimeExports.jsx(KeyValue, { value: val });
11223
11231
  }
11224
11232
  };
11225
11233
  };
11226
- const SecretDataField = () => {
11234
+ const SecretDataField = (i18n2) => {
11227
11235
  return {
11228
11236
  key: "data",
11229
- title: i18n.t("dovetail.data"),
11237
+ title: i18n2.t("dovetail.data"),
11230
11238
  path: ["data"],
11231
11239
  renderContent: (val) => {
11232
11240
  const decodeVal = {};
@@ -11237,10 +11245,10 @@ const SecretDataField = () => {
11237
11245
  }
11238
11246
  };
11239
11247
  };
11240
- const StartTimeField = () => {
11248
+ const StartTimeField = (i18n2) => {
11241
11249
  return {
11242
11250
  key: "started",
11243
- title: i18n.t("dovetail.started"),
11251
+ title: i18n2.t("dovetail.started"),
11244
11252
  path: ["status", "startTime"],
11245
11253
  col: 12,
11246
11254
  renderContent(value) {
@@ -11248,24 +11256,24 @@ const StartTimeField = () => {
11248
11256
  }
11249
11257
  };
11250
11258
  };
11251
- const ServiceTypeField = () => {
11259
+ const ServiceTypeField = (i18n2) => {
11252
11260
  return {
11253
11261
  key: "type",
11254
- title: i18n.t("dovetail.type"),
11262
+ title: i18n2.t("dovetail.type"),
11255
11263
  path: ["spec", "type"]
11256
11264
  };
11257
11265
  };
11258
- const ClusterIpField = () => {
11266
+ const ClusterIpField = (i18n2) => {
11259
11267
  return {
11260
11268
  key: "clusterIp",
11261
- title: i18n.t("dovetail.clusterIp"),
11269
+ title: i18n2.t("dovetail.clusterIp"),
11262
11270
  path: ["spec", "clusterIP"]
11263
11271
  };
11264
11272
  };
11265
- const SessionAffinityField = () => {
11273
+ const SessionAffinityField = (i18n2) => {
11266
11274
  return {
11267
11275
  key: "clusterIp",
11268
- title: i18n.t("dovetail.sessionAffinity"),
11276
+ title: i18n2.t("dovetail.sessionAffinity"),
11269
11277
  path: ["spec", "sessionAffinity"]
11270
11278
  };
11271
11279
  };
@@ -11287,20 +11295,20 @@ const ServicePodsField = () => {
11287
11295
  }
11288
11296
  };
11289
11297
  };
11290
- const IngressRulesTableTabField = () => {
11298
+ const IngressRulesTableTabField = (i18n2) => {
11291
11299
  return {
11292
11300
  key: "rules",
11293
- title: i18n.t("dovetail.rule"),
11301
+ title: i18n2.t("dovetail.rule"),
11294
11302
  path: ["spec", "rules"],
11295
11303
  renderContent: (_, record) => {
11296
11304
  return /* @__PURE__ */ jsxRuntimeExports.jsx(IngressRulesTable, { ingress: record });
11297
11305
  }
11298
11306
  };
11299
11307
  };
11300
- const EventsTableTabField = () => {
11308
+ const EventsTableTabField = (i18n2) => {
11301
11309
  return {
11302
11310
  key: "event",
11303
- title: i18n.t("dovetail.event"),
11311
+ title: i18n2.t("dovetail.event"),
11304
11312
  path: [],
11305
11313
  renderContent: () => {
11306
11314
  return /* @__PURE__ */ jsxRuntimeExports.jsx(EventsTable, {});
@@ -12001,23 +12009,17 @@ function ListPage(props) {
12001
12009
  }
12002
12010
  function ResourceList(props) {
12003
12011
  const { formatter, name: name2, columns, Dropdown } = props;
12012
+ const { i18n: i18n2 } = useTranslation();
12004
12013
  const { tableProps, selectedKeys } = useEagleTable({
12005
12014
  useTableParams: {},
12006
- columns: [NameColumnRenderer(), ...columns],
12015
+ columns: [NameColumnRenderer(i18n2), ...columns],
12007
12016
  tableProps: {
12008
12017
  currentSize: 10
12009
12018
  },
12010
12019
  formatter,
12011
12020
  Dropdown
12012
12021
  });
12013
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
12014
- ListPage,
12015
- {
12016
- title: name2 || "",
12017
- selectedKeys,
12018
- tableProps
12019
- }
12020
- );
12022
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ListPage, { title: name2 || "", selectedKeys, tableProps });
12021
12023
  }
12022
12024
  function ResourceShow(props) {
12023
12025
  const { formatter, showConfig, Dropdown } = props;
@@ -18465,13 +18467,13 @@ const CommonSorter = (dataIndex) => (a, b) => {
18465
18467
  return 1;
18466
18468
  return -1;
18467
18469
  };
18468
- const NameColumnRenderer = (resource = "") => {
18470
+ const NameColumnRenderer = (i18n2, resource = "") => {
18469
18471
  const dataIndex = ["metadata", "name"];
18470
18472
  return {
18471
18473
  key: "name",
18472
18474
  display: true,
18473
18475
  dataIndex,
18474
- title: i18n.t("dovetail.name"),
18476
+ title: i18n2.t("dovetail.name"),
18475
18477
  sortable: true,
18476
18478
  sorter: CommonSorter(dataIndex),
18477
18479
  render: (v, record) => {
@@ -18479,36 +18481,36 @@ const NameColumnRenderer = (resource = "") => {
18479
18481
  }
18480
18482
  };
18481
18483
  };
18482
- const NameSpaceColumnRenderer = () => {
18484
+ const NameSpaceColumnRenderer = (i18n2) => {
18483
18485
  const dataIndex = ["metadata", "namespace"];
18484
18486
  return {
18485
18487
  key: "namespace",
18486
18488
  display: true,
18487
18489
  dataIndex,
18488
- title: i18n.t("dovetail.namespace"),
18490
+ title: i18n2.t("dovetail.namespace"),
18489
18491
  sortable: true,
18490
18492
  sorter: CommonSorter(dataIndex)
18491
18493
  };
18492
18494
  };
18493
- const StateDisplayColumnRenderer = () => {
18495
+ const StateDisplayColumnRenderer = (i18n2) => {
18494
18496
  const dataIndex = ["stateDisplay"];
18495
18497
  return {
18496
18498
  key: "stateDisplay",
18497
18499
  display: true,
18498
18500
  dataIndex,
18499
- title: i18n.t("dovetail.state"),
18501
+ title: i18n2.t("dovetail.state"),
18500
18502
  sortable: true,
18501
18503
  sorter: CommonSorter(dataIndex),
18502
18504
  render: (v) => /* @__PURE__ */ jsxRuntimeExports.jsx(StateTag, { state: v })
18503
18505
  };
18504
18506
  };
18505
- const WorkloadImageColumnRenderer = () => {
18507
+ const WorkloadImageColumnRenderer = (i18n2) => {
18506
18508
  const dataIndex = ["imageNames"];
18507
18509
  return {
18508
18510
  key: "image",
18509
18511
  display: true,
18510
18512
  dataIndex,
18511
- title: i18n.t("dovetail.image"),
18513
+ title: i18n2.t("dovetail.image"),
18512
18514
  sortable: true,
18513
18515
  sorter: CommonSorter(dataIndex),
18514
18516
  render(value, record) {
@@ -18516,23 +18518,23 @@ const WorkloadImageColumnRenderer = () => {
18516
18518
  }
18517
18519
  };
18518
18520
  };
18519
- const WorkloadRestartsColumnRenderer = () => {
18521
+ const WorkloadRestartsColumnRenderer = (i18n2) => {
18520
18522
  const dataIndex = ["restarts"];
18521
18523
  return {
18522
18524
  key: "restarts",
18523
18525
  display: true,
18524
18526
  dataIndex,
18525
- title: i18n.t("dovetail.restarts"),
18527
+ title: i18n2.t("dovetail.restarts"),
18526
18528
  sortable: false
18527
18529
  };
18528
18530
  };
18529
- const ReplicasColumnRenderer = () => {
18531
+ const ReplicasColumnRenderer = (i18n2) => {
18530
18532
  const dataIndex = ["status", "replicas"];
18531
18533
  return {
18532
18534
  key: "replicas",
18533
18535
  display: true,
18534
18536
  dataIndex,
18535
- title: i18n.t("dovetail.replicas"),
18537
+ title: i18n2.t("dovetail.replicas"),
18536
18538
  sortable: true,
18537
18539
  sorter: CommonSorter(dataIndex),
18538
18540
  render: (_, record) => {
@@ -18544,13 +18546,13 @@ const ReplicasColumnRenderer = () => {
18544
18546
  }
18545
18547
  };
18546
18548
  };
18547
- const AgeColumnRenderer = () => {
18549
+ const AgeColumnRenderer = (i18n2) => {
18548
18550
  const dataIndex = ["metadata", "creationTimestamp"];
18549
18551
  return {
18550
18552
  key: "creationTimestamp",
18551
18553
  display: true,
18552
18554
  dataIndex,
18553
- title: i18n.t("dovetail.created_time"),
18555
+ title: i18n2.t("dovetail.created_time"),
18554
18556
  sortable: true,
18555
18557
  sorter: (a, b) => {
18556
18558
  const valA = new Date(lodashExports.get(a, dataIndex));
@@ -18566,76 +18568,76 @@ const AgeColumnRenderer = () => {
18566
18568
  }
18567
18569
  };
18568
18570
  };
18569
- const NodeNameColumnRenderer = (options) => {
18571
+ const NodeNameColumnRenderer = (i18n2, options) => {
18570
18572
  const dataIndex = ["spec", "nodeName"];
18571
18573
  return {
18572
18574
  key: "node",
18573
18575
  display: true,
18574
18576
  dataIndex,
18575
- title: i18n.t("dovetail.node_name"),
18577
+ title: i18n2.t("dovetail.node_name"),
18576
18578
  sortable: true,
18577
18579
  sorter: CommonSorter(dataIndex),
18578
18580
  ...options
18579
18581
  };
18580
18582
  };
18581
- const RestartCountColumnRenderer = () => {
18583
+ const RestartCountColumnRenderer = (i18n2) => {
18582
18584
  const dataIndex = ["restartCount"];
18583
18585
  return {
18584
18586
  key: "restartCount",
18585
18587
  display: true,
18586
18588
  dataIndex,
18587
- title: i18n.t("dovetail.restarts"),
18589
+ title: i18n2.t("dovetail.restarts"),
18588
18590
  sortable: true,
18589
18591
  sorter: CommonSorter(dataIndex)
18590
18592
  };
18591
18593
  };
18592
- const CompletionsCountColumnRenderer = () => {
18594
+ const CompletionsCountColumnRenderer = (i18n2) => {
18593
18595
  const dataIndex = ["completionsDisplay"];
18594
18596
  return {
18595
18597
  key: "completions",
18596
18598
  display: true,
18597
18599
  dataIndex,
18598
- title: i18n.t("completions"),
18600
+ title: i18n2.t("completions"),
18599
18601
  sortable: true,
18600
18602
  sorter: CommonSorter(dataIndex)
18601
18603
  };
18602
18604
  };
18603
- const DurationColumnRenderer = () => {
18605
+ const DurationColumnRenderer = (i18n2) => {
18604
18606
  const dataIndex = ["duration"];
18605
18607
  return {
18606
18608
  key: "duration",
18607
18609
  display: true,
18608
18610
  dataIndex,
18609
- title: i18n.t("dovetail.duration"),
18611
+ title: i18n2.t("dovetail.duration"),
18610
18612
  sortable: true,
18611
18613
  sorter: CommonSorter(dataIndex),
18612
18614
  render: (v) => {
18613
18615
  const i18nMap = {
18614
- sec: i18n.t("dovetail.sec"),
18615
- day: i18n.t("dovetail.day"),
18616
- min: i18n.t("dovetail.min"),
18617
- hr: i18n.t("dovetail.hr")
18616
+ sec: i18n2.t("dovetail.sec"),
18617
+ day: i18n2.t("dovetail.day"),
18618
+ min: i18n2.t("dovetail.min"),
18619
+ hr: i18n2.t("dovetail.hr")
18618
18620
  };
18619
18621
  return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: elapsedTime(v, i18nMap).label || "-" });
18620
18622
  }
18621
18623
  };
18622
18624
  };
18623
- const ServiceTypeColumnRenderer = () => {
18625
+ const ServiceTypeColumnRenderer = (i18n2) => {
18624
18626
  const dataIndex = ["spec", "type"];
18625
18627
  return {
18626
18628
  key: "type",
18627
- title: i18n.t("dovetail.type"),
18629
+ title: i18n2.t("dovetail.type"),
18628
18630
  display: true,
18629
18631
  dataIndex,
18630
18632
  sortable: true,
18631
18633
  sorter: CommonSorter(dataIndex)
18632
18634
  };
18633
18635
  };
18634
- const PodWorkloadColumnRenderer = () => {
18636
+ const PodWorkloadColumnRenderer = (i18n2) => {
18635
18637
  const dataIndex = ["metadata", "ownerReferences"];
18636
18638
  return {
18637
18639
  key: "type",
18638
- title: i18n.t("dovetail.workload"),
18640
+ title: i18n2.t("dovetail.workload"),
18639
18641
  display: true,
18640
18642
  dataIndex,
18641
18643
  sortable: true,
@@ -18652,11 +18654,11 @@ const PodWorkloadColumnRenderer = () => {
18652
18654
  }
18653
18655
  };
18654
18656
  };
18655
- const IngressRulesColumnRenderer = () => {
18657
+ const IngressRulesColumnRenderer = (i18n2) => {
18656
18658
  const dataIndex = ["spec", "rules"];
18657
18659
  return {
18658
18660
  key: "type",
18659
- title: i18n.t("dovetail.rule"),
18661
+ title: i18n2.t("dovetail.rule"),
18660
18662
  display: true,
18661
18663
  dataIndex,
18662
18664
  sortable: true,
@@ -18666,13 +18668,13 @@ const IngressRulesColumnRenderer = () => {
18666
18668
  }
18667
18669
  };
18668
18670
  };
18669
- const IngressDefaultBackendColumnRenderer = () => {
18671
+ const IngressDefaultBackendColumnRenderer = (i18n2) => {
18670
18672
  const dataIndex = ["spec", "defaultBackend"];
18671
18673
  return {
18672
18674
  key: "defaultBackend",
18673
18675
  display: true,
18674
18676
  dataIndex,
18675
- title: i18n.t("dovetail.default_backend"),
18677
+ title: i18n2.t("dovetail.default_backend"),
18676
18678
  sortable: true,
18677
18679
  sorter: CommonSorter(["spec", "defaultBackend"]),
18678
18680
  render: (defaultBackend, record) => {
@@ -19319,123 +19321,125 @@ class RelationPlugin {
19319
19321
  }
19320
19322
  const relationPlugin = new RelationPlugin();
19321
19323
  const ProviderPlugins = [relationPlugin, modelPlugin];
19324
+ const DovetailRefineI18n = i18n;
19322
19325
  export {
19323
- Layout as $,
19326
+ DeleteButton as $,
19324
19327
  AgeColumnRenderer as A,
19325
19328
  Breadcrumb as B,
19326
19329
  CommonSorter as C,
19327
- DurationColumnRenderer as D,
19328
- CreateButton as E,
19329
- ImageNames as F,
19330
- ResourceList as G,
19331
- ResourceShow as H,
19330
+ DovetailRefineI18n as D,
19331
+ WorkloadDropdown as E,
19332
+ CreateButton as F,
19333
+ ImageNames as G,
19334
+ ResourceList as H,
19332
19335
  IngressRulesColumnRenderer as I,
19333
- ResourceForm as J,
19336
+ ResourceShow as J,
19334
19337
  KeyValueListWidget as K,
19335
- ResourceCRUD as L,
19338
+ ResourceForm as L,
19336
19339
  MetadataForm as M,
19337
19340
  NameColumnRenderer as N,
19338
- WorkloadPodsTable as O,
19341
+ ResourceCRUD as O,
19339
19342
  PodWorkloadColumnRenderer as P,
19340
- CronJobDropdown as Q,
19343
+ WorkloadPodsTable as Q,
19341
19344
  ReplicasColumnRenderer as R,
19342
19345
  StateDisplayColumnRenderer as S,
19343
- ResourceUsageBar as T,
19344
- WorkloadReplicas as U,
19345
- CronjobJobsTable as V,
19346
+ CronJobDropdown as T,
19347
+ ResourceUsageBar as U,
19348
+ WorkloadReplicas as V,
19346
19349
  WorkloadImageColumnRenderer as W,
19347
- KeyValue as X,
19348
- Separator as Y,
19349
- YamlEditorComponent as Z,
19350
- DeleteButton as _,
19350
+ CronjobJobsTable as X,
19351
+ KeyValue as Y,
19352
+ Separator as Z,
19353
+ YamlEditorComponent as _,
19351
19354
  useDeleteModal as a,
19352
- ProviderPlugins as a$,
19353
- ImageField as a0,
19354
- ReplicaField as a1,
19355
- ConditionsField as a2,
19356
- PodsField as a3,
19357
- JobsField as a4,
19358
- DataField as a5,
19359
- SecretDataField as a6,
19360
- StartTimeField as a7,
19361
- ServiceTypeField as a8,
19362
- ClusterIpField as a9,
19363
- JOB_INIT_VALUE as aA,
19364
- STATEFULSET_INIT_VALUE as aB,
19365
- POD_INIT_VALUE as aC,
19366
- SERVICE_INIT_VALUE as aD,
19367
- INGRESS_INIT_VALUE as aE,
19368
- NETWORK_POLICY_INIT_VALUE as aF,
19369
- TIMESTAMP_LABEL as aG,
19370
- WorkloadState as aH,
19371
- Dovetail as aI,
19372
- RESOURCE_GROUP as aJ,
19373
- FormType as aK,
19374
- ComponentContext as aL,
19375
- GlobalStoreContext as aM,
19376
- ConfigsContext as aN,
19377
- IngressModel as aO,
19378
- NetworkPolicyModel as aP,
19379
- JobModel as aQ,
19380
- WorkloadModel as aR,
19381
- WorkloadBaseModel as aS,
19382
- PodModel as aT,
19383
- PodMetricsModel as aU,
19384
- ResourceModel as aV,
19385
- CronJobModel as aW,
19386
- EventModel as aX,
19387
- DeploymentModel as aY,
19388
- DaemonSetModel as aZ,
19389
- StatefulSetModel as a_,
19390
- SessionAffinityField as aa,
19391
- ServicePodsField as ab,
19392
- IngressRulesTableTabField as ac,
19393
- EventsTableTabField as ad,
19394
- ShowContent as ae,
19395
- SchemaStrategy as af,
19396
- DeleteManyButton as ag,
19397
- ListPage as ah,
19398
- StateTag as ai,
19399
- DrawerShow as aj,
19400
- Menu as ak,
19401
- EditButton as al,
19402
- ReferenceLink as am,
19403
- ResourceLink as an,
19404
- NS_STORE_KEY as ao,
19405
- ALL_NS as ap,
19406
- useNamespacesFilter as aq,
19407
- NamespacesFilter as ar,
19408
- Tags as as,
19409
- PodLog as at,
19410
- FormModal as au,
19411
- NetworkPolicyRulesTable as av,
19412
- BASE_INIT_VALUE as aw,
19413
- DEPLOYMENT_INIT_VALUE as ax,
19414
- CRONJOB_INIT_VALUE as ay,
19415
- DAEMONSET_INIT_VALUE as az,
19355
+ StatefulSetModel as a$,
19356
+ Layout as a0,
19357
+ ImageField as a1,
19358
+ ReplicaField as a2,
19359
+ ConditionsField as a3,
19360
+ PodsField as a4,
19361
+ JobsField as a5,
19362
+ DataField as a6,
19363
+ SecretDataField as a7,
19364
+ StartTimeField as a8,
19365
+ ServiceTypeField as a9,
19366
+ DAEMONSET_INIT_VALUE as aA,
19367
+ JOB_INIT_VALUE as aB,
19368
+ STATEFULSET_INIT_VALUE as aC,
19369
+ POD_INIT_VALUE as aD,
19370
+ SERVICE_INIT_VALUE as aE,
19371
+ INGRESS_INIT_VALUE as aF,
19372
+ NETWORK_POLICY_INIT_VALUE as aG,
19373
+ TIMESTAMP_LABEL as aH,
19374
+ WorkloadState as aI,
19375
+ Dovetail as aJ,
19376
+ RESOURCE_GROUP as aK,
19377
+ FormType as aL,
19378
+ ComponentContext as aM,
19379
+ GlobalStoreContext as aN,
19380
+ ConfigsContext as aO,
19381
+ IngressModel as aP,
19382
+ NetworkPolicyModel as aQ,
19383
+ JobModel as aR,
19384
+ WorkloadModel as aS,
19385
+ WorkloadBaseModel as aT,
19386
+ PodModel as aU,
19387
+ PodMetricsModel as aV,
19388
+ ResourceModel as aW,
19389
+ CronJobModel as aX,
19390
+ EventModel as aY,
19391
+ DeploymentModel as aZ,
19392
+ DaemonSetModel as a_,
19393
+ ClusterIpField as aa,
19394
+ SessionAffinityField as ab,
19395
+ ServicePodsField as ac,
19396
+ IngressRulesTableTabField as ad,
19397
+ EventsTableTabField as ae,
19398
+ ShowContent as af,
19399
+ SchemaStrategy as ag,
19400
+ DeleteManyButton as ah,
19401
+ ListPage as ai,
19402
+ StateTag as aj,
19403
+ DrawerShow as ak,
19404
+ Menu as al,
19405
+ EditButton as am,
19406
+ ReferenceLink as an,
19407
+ ResourceLink as ao,
19408
+ NS_STORE_KEY as ap,
19409
+ ALL_NS as aq,
19410
+ useNamespacesFilter as ar,
19411
+ NamespacesFilter as as,
19412
+ Tags as at,
19413
+ PodLog as au,
19414
+ FormModal as av,
19415
+ NetworkPolicyRulesTable as aw,
19416
+ BASE_INIT_VALUE as ax,
19417
+ DEPLOYMENT_INIT_VALUE as ay,
19418
+ CRONJOB_INIT_VALUE as az,
19416
19419
  NameSpaceColumnRenderer as b,
19420
+ ProviderPlugins as b0,
19417
19421
  WorkloadRestartsColumnRenderer as c,
19418
19422
  NodeNameColumnRenderer as d,
19419
19423
  RestartCountColumnRenderer as e,
19420
19424
  CompletionsCountColumnRenderer as f,
19421
- ServiceTypeColumnRenderer as g,
19422
- IngressDefaultBackendColumnRenderer as h,
19423
- ColumnKeys as i,
19425
+ DurationColumnRenderer as g,
19426
+ ServiceTypeColumnRenderer as h,
19427
+ IngressDefaultBackendColumnRenderer as i,
19424
19428
  jsxRuntimeExports as j,
19425
- useEagleTable as k,
19426
- useDownloadYAML as l,
19427
- useEdit as m,
19428
- useGlobalStore as n,
19429
- NameInputWidget as o,
19430
- dnsSubDomainRules as p,
19431
- rfc1123LabelRules as q,
19429
+ ColumnKeys as k,
19430
+ useEagleTable as l,
19431
+ useDownloadYAML as m,
19432
+ useEdit as n,
19433
+ useGlobalStore as o,
19434
+ NameInputWidget as p,
19435
+ dnsSubDomainRules as q,
19432
19436
  routerProvider as r,
19433
- rfc1035LabelRules as s,
19434
- NamespaceSelectWidget as t,
19437
+ rfc1123LabelRules as s,
19438
+ rfc1035LabelRules as t,
19435
19439
  useSchema as u,
19436
- namespaceRules as v,
19437
- PageShow as w,
19438
- ConditionsTable as x,
19439
- PodContainersTable as y,
19440
- WorkloadDropdown as z
19440
+ NamespaceSelectWidget as v,
19441
+ namespaceRules as w,
19442
+ PageShow as x,
19443
+ ConditionsTable as y,
19444
+ PodContainersTable as z
19441
19445
  };