local-operator-ui 0.1.2-beta.9 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/main/index.jsc +0 -0
- package/out/preload/index.jsc +0 -0
- package/out/renderer/assets/{index-BtxgdS6T.js → index-BOYHDbPZ.js} +3052 -310
- package/out/renderer/assets/{installer-BJ0nnGcg.js → installer-DzZ9md8b.js} +1 -1
- package/out/renderer/assets/{theme-C9zRS1f0.js → theme-D7qnOAQJ.js} +26 -25
- package/out/renderer/index.html +3 -3
- package/out/renderer/installer.html +3 -3
- package/package.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as createStyled, r as resolveProps, u as useTheme, a as reactExports, b as clsx, d as useForkRef, j as jsxRuntimeExports, e as capitalize, f as composeClasses, g as createTheme, h as generateUtilityClass, i as generateUtilityClasses, k as useDefaultProps, s as styled$1, m as memoTheme, l as getDefaultExportFromCjs, n as requireReactDom, _ as _inheritsLoose, o as _objectWithoutPropertiesLoose$1, R as React, T as TransitionGroupContext, p as duration, q as useTheme$1, t as useTimeout, v as useId, B as ButtonBase, w as alpha, x as createSimplePaletteValueFilter, C as CircularProgress, P as Paper, y as darken, z as lighten, A as useEventCallback, D as setRef, E as useEnhancedEffect, F as useRtl, G as globalCss, H as formatMuiErrorMessage, I as rootShouldForwardProp, J as Typography, K as deepmerge, L as extendSxProp, M as resolveBreakpointValues, N as handleBreakpoints, O as getPath, Q as isFocusVisible, S as typographyClasses, U as slotShouldForwardProp, V as clamp, W as emphasize, X as Timeout, Y as React$1, Z as Box, $ as FontAwesomeIcon, a0 as faRobot, a1 as faSliders, a2 as Button, a3 as faExclamationTriangle, a4 as faCheck, a5 as faTimes, a6 as faEraser, a7 as faPen, a8 as faInfoCircle, a9 as faGear, aa as faServer, ab as faStar, ac as faTrash, ad as faCommentDots, ae as faCode, af as faHome, ag as faDownload, ah as faFileAlt, ai as faDesktop, aj as faImage, ak as faMusic, al as faVideo, am as faLaptop, an as faUsers, ao as faDatabase, ap as faBoxOpen, aq as faBook, ar as faHdd, as as faBox, at as faArchive, au as faNetworkWired, av as faFolder, aw as faFolderOpen, ax as faClock, ay as faChevronDown, az as faTools, aA as faArrowDown, aB as faPaperclip, aC as faStop, aD as faPaperPlane, aE as faUser, aF as faFile, aG as faEllipsisVertical, aH as faComment, aI as faChevronLeft, aJ as faChevronRight, aK as faPlus, aL as faSearch, aM as faCommentSlash, aN as faArrowRight, aO as faComments, aP as faTag, aQ as faIdCard, aR as faCalendarAlt, aS as faCodeBranch, aT as faShieldAlt, aU as faArrowLeft, aV as
|
|
1
|
+
import { c as createStyled, r as resolveProps, u as useTheme, a as reactExports, b as clsx, d as useForkRef, j as jsxRuntimeExports, e as capitalize, f as composeClasses, g as createTheme, h as generateUtilityClass, i as generateUtilityClasses, k as useDefaultProps, s as styled$1, m as memoTheme, l as getDefaultExportFromCjs, n as requireReactDom, _ as _inheritsLoose, o as _objectWithoutPropertiesLoose$1, R as React, T as TransitionGroupContext, p as duration, q as useTheme$1, t as useTimeout, v as useId, B as ButtonBase, w as alpha, x as createSimplePaletteValueFilter, C as CircularProgress, P as Paper, y as darken, z as lighten, A as useEventCallback, D as setRef, E as useEnhancedEffect, F as useRtl, G as globalCss, H as formatMuiErrorMessage, I as rootShouldForwardProp, J as Typography, K as deepmerge, L as extendSxProp, M as resolveBreakpointValues, N as handleBreakpoints, O as getPath, Q as isFocusVisible, S as typographyClasses, U as slotShouldForwardProp, V as clamp, W as emphasize, X as Timeout, Y as React$1, Z as Box, $ as FontAwesomeIcon, a0 as faRobot, a1 as faSliders, a2 as Button, a3 as faExclamationTriangle, a4 as faCheck, a5 as faTimes, a6 as faEraser, a7 as faPen, a8 as faInfoCircle, a9 as faGear, aa as faServer, ab as faStar, ac as faTrash, ad as faCommentDots, ae as faCode, af as faHome, ag as faDownload, ah as faFileAlt, ai as faDesktop, aj as faImage, ak as faMusic, al as faVideo, am as faLaptop, an as faUsers, ao as faDatabase, ap as faBoxOpen, aq as faBook, ar as faHdd, as as faBox, at as faArchive, au as faNetworkWired, av as faFolder, aw as faFolderOpen, ax as faClock, ay as faChevronDown, az as faTools, aA as faArrowDown, aB as faPaperclip, aC as faStop, aD as faPaperPlane, aE as faUser, aF as faFile, aG as faEllipsisVertical, aH as faComment, aI as faChevronLeft, aJ as faChevronRight, aK as faPlus, aL as faSearch, aM as faCommentSlash, aN as faArrowRight, aO as faComments, aP as faTag, aQ as faIdCard, aR as faCalendarAlt, aS as faCodeBranch, aT as faShieldAlt, aU as faArrowLeft, aV as requireReact, aW as LinearProgress, aX as keyframes, aY as faShield, aZ as faSignOut, a_ as faLightbulb, a$ as faMagicWandSparkles, b0 as faBrain, b1 as faWandMagicSparkles, b2 as faExternalLinkAlt, b3 as faKey, b4 as faGlobe, b5 as faLock, b6 as faEdit, b7 as faSave, b8 as faEnvelope, b9 as faCloudUploadAlt, ba as faHistory, bb as faListAlt, bc as library$1, bd as icons$1, be as CssBaseline, bf as ReactDOM$1, bg as ThemeProvider, bh as theme, bi as ErrorBoundary } from "./theme-D7qnOAQJ.js";
|
|
2
2
|
const styled = createStyled();
|
|
3
3
|
function getThemeProps(params) {
|
|
4
4
|
const {
|
|
@@ -22178,7 +22178,10 @@ const queryClient = new QueryClient({
|
|
|
22178
22178
|
// Default refetch configuration
|
|
22179
22179
|
refetchOnWindowFocus: true,
|
|
22180
22180
|
refetchOnMount: true,
|
|
22181
|
-
|
|
22181
|
+
// Don't wait for reconnect to refetch - we handle offline status separately
|
|
22182
|
+
refetchOnReconnect: false,
|
|
22183
|
+
// Continue to run queries even when offline
|
|
22184
|
+
networkMode: "always"
|
|
22182
22185
|
}
|
|
22183
22186
|
}
|
|
22184
22187
|
});
|
|
@@ -30047,9 +30050,279 @@ const config = loadConfig();
|
|
|
30047
30050
|
const apiConfig = {
|
|
30048
30051
|
baseUrl: config.VITE_LOCAL_OPERATOR_API_URL
|
|
30049
30052
|
};
|
|
30053
|
+
const activeToasts = /* @__PURE__ */ new Map();
|
|
30054
|
+
const lastErrorShownTime = /* @__PURE__ */ new Map();
|
|
30055
|
+
const errorCountInPeriod = /* @__PURE__ */ new Map();
|
|
30056
|
+
const DEFAULT_ERROR_COOLDOWN = 5e3;
|
|
30057
|
+
const MAX_SIMILAR_ERRORS = 1;
|
|
30058
|
+
const ERROR_GROUPS = {
|
|
30059
|
+
CONNECTION: [
|
|
30060
|
+
"Failed to fetch",
|
|
30061
|
+
"Network error",
|
|
30062
|
+
"ERR_CONNECTION_REFUSED",
|
|
30063
|
+
"Server is offline",
|
|
30064
|
+
"Connection failed"
|
|
30065
|
+
]
|
|
30066
|
+
// Add other error groups as needed
|
|
30067
|
+
};
|
|
30068
|
+
const getErrorGroup = (message2) => {
|
|
30069
|
+
for (const [group, patterns] of Object.entries(ERROR_GROUPS)) {
|
|
30070
|
+
if (patterns.some((pattern) => message2.includes(pattern))) {
|
|
30071
|
+
return group;
|
|
30072
|
+
}
|
|
30073
|
+
}
|
|
30074
|
+
return null;
|
|
30075
|
+
};
|
|
30076
|
+
const showErrorToast = (message2, options) => {
|
|
30077
|
+
const now = Date.now();
|
|
30078
|
+
const errorGroup = getErrorGroup(message2);
|
|
30079
|
+
const key = errorGroup || message2;
|
|
30080
|
+
const lastShown = lastErrorShownTime.get(key);
|
|
30081
|
+
if (lastShown && now - lastShown < DEFAULT_ERROR_COOLDOWN) {
|
|
30082
|
+
return null;
|
|
30083
|
+
}
|
|
30084
|
+
const errorCount = errorCountInPeriod.get(key) || 0;
|
|
30085
|
+
if (errorCount >= MAX_SIMILAR_ERRORS) {
|
|
30086
|
+
return null;
|
|
30087
|
+
}
|
|
30088
|
+
if (activeToasts.has(key)) {
|
|
30089
|
+
lastErrorShownTime.set(key, now);
|
|
30090
|
+
return activeToasts.get(key);
|
|
30091
|
+
}
|
|
30092
|
+
const id = y$1.error(message2, {
|
|
30093
|
+
...options,
|
|
30094
|
+
onClose: () => {
|
|
30095
|
+
activeToasts.delete(key);
|
|
30096
|
+
}
|
|
30097
|
+
});
|
|
30098
|
+
activeToasts.set(key, id);
|
|
30099
|
+
lastErrorShownTime.set(key, now);
|
|
30100
|
+
errorCountInPeriod.set(key, errorCount + 1);
|
|
30101
|
+
setTimeout(() => {
|
|
30102
|
+
errorCountInPeriod.set(key, 0);
|
|
30103
|
+
}, DEFAULT_ERROR_COOLDOWN);
|
|
30104
|
+
return id;
|
|
30105
|
+
};
|
|
30106
|
+
const configQueryKey = ["config"];
|
|
30107
|
+
const useConfig = () => {
|
|
30108
|
+
return useQuery({
|
|
30109
|
+
// Always enable this query since it's needed for connectivity checks
|
|
30110
|
+
enabled: true,
|
|
30111
|
+
queryKey: configQueryKey,
|
|
30112
|
+
queryFn: async () => {
|
|
30113
|
+
try {
|
|
30114
|
+
const client = createLocalOperatorClient(apiConfig.baseUrl);
|
|
30115
|
+
const response = await client.config.getConfig();
|
|
30116
|
+
if (response.status >= 400) {
|
|
30117
|
+
throw new Error(response.message || "Failed to fetch configuration");
|
|
30118
|
+
}
|
|
30119
|
+
return response.result;
|
|
30120
|
+
} catch (error) {
|
|
30121
|
+
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred while fetching configuration";
|
|
30122
|
+
showErrorToast(errorMessage);
|
|
30123
|
+
throw error;
|
|
30124
|
+
}
|
|
30125
|
+
},
|
|
30126
|
+
// Prevent automatic refetches on window focus
|
|
30127
|
+
refetchOnWindowFocus: false,
|
|
30128
|
+
// Prevent stale time to avoid unnecessary refetches
|
|
30129
|
+
staleTime: 5e3
|
|
30130
|
+
});
|
|
30131
|
+
};
|
|
30132
|
+
const serverHealthQueryKey = ["server-health"];
|
|
30133
|
+
const internetConnectivityQueryKey = ["internet-connectivity"];
|
|
30134
|
+
const useServerHealth = (refetchInterval = 5e3) => {
|
|
30135
|
+
return useQuery({
|
|
30136
|
+
queryKey: serverHealthQueryKey,
|
|
30137
|
+
queryFn: async () => {
|
|
30138
|
+
try {
|
|
30139
|
+
await HealthApi.healthCheck(apiConfig.baseUrl);
|
|
30140
|
+
return true;
|
|
30141
|
+
} catch (error) {
|
|
30142
|
+
return false;
|
|
30143
|
+
}
|
|
30144
|
+
},
|
|
30145
|
+
// Refetch at specified interval
|
|
30146
|
+
refetchInterval,
|
|
30147
|
+
// Enable background refetching
|
|
30148
|
+
refetchIntervalInBackground: true,
|
|
30149
|
+
// Don't retry on failure as this is expected when server is down
|
|
30150
|
+
retry: false,
|
|
30151
|
+
// Always refetch on window focus to get latest status
|
|
30152
|
+
refetchOnWindowFocus: true,
|
|
30153
|
+
// Use placeholderData instead of keepPreviousData (which is deprecated)
|
|
30154
|
+
placeholderData: (previousData) => previousData
|
|
30155
|
+
});
|
|
30156
|
+
};
|
|
30157
|
+
const useInternetConnectivity = (refetchInterval = 5e3) => {
|
|
30158
|
+
const [isOnlineState, setIsOnlineState] = reactExports.useState(navigator.onLine);
|
|
30159
|
+
reactExports.useEffect(() => {
|
|
30160
|
+
const handleOnline = () => {
|
|
30161
|
+
setIsOnlineState(true);
|
|
30162
|
+
};
|
|
30163
|
+
const handleOffline = () => {
|
|
30164
|
+
setIsOnlineState(false);
|
|
30165
|
+
};
|
|
30166
|
+
window.addEventListener("online", handleOnline);
|
|
30167
|
+
window.addEventListener("offline", handleOffline);
|
|
30168
|
+
return () => {
|
|
30169
|
+
window.removeEventListener("online", handleOnline);
|
|
30170
|
+
window.removeEventListener("offline", handleOffline);
|
|
30171
|
+
};
|
|
30172
|
+
}, []);
|
|
30173
|
+
return useQuery({
|
|
30174
|
+
queryKey: internetConnectivityQueryKey,
|
|
30175
|
+
queryFn: async () => {
|
|
30176
|
+
return isOnlineState && navigator.onLine;
|
|
30177
|
+
},
|
|
30178
|
+
// Refetch at specified interval
|
|
30179
|
+
refetchInterval,
|
|
30180
|
+
// Enable background refetching
|
|
30181
|
+
refetchIntervalInBackground: true,
|
|
30182
|
+
// Don't retry on failure as this is expected when internet is down
|
|
30183
|
+
retry: false,
|
|
30184
|
+
// Always refetch on window focus to get latest status
|
|
30185
|
+
refetchOnWindowFocus: true,
|
|
30186
|
+
// Use placeholderData instead of keepPreviousData (which is deprecated)
|
|
30187
|
+
placeholderData: (previousData) => previousData
|
|
30188
|
+
});
|
|
30189
|
+
};
|
|
30190
|
+
const useConnectivityStatus = (serverRefetchInterval = 5e3) => {
|
|
30191
|
+
const {
|
|
30192
|
+
data: isServerOnline = true,
|
|
30193
|
+
// Default to true to avoid false positives on initial load
|
|
30194
|
+
isLoading: isServerStatusLoading,
|
|
30195
|
+
refetch: refetchServerStatus
|
|
30196
|
+
} = useServerHealth(serverRefetchInterval);
|
|
30197
|
+
const { data: config2, isLoading: isConfigLoading } = useConfig();
|
|
30198
|
+
const hostingProvider = config2?.values.hosting || "";
|
|
30199
|
+
const shouldCheckInternet = hostingProvider.toLowerCase() !== "ollama";
|
|
30200
|
+
const {
|
|
30201
|
+
data: isOnline = true,
|
|
30202
|
+
// Default to true to avoid false positives on initial load
|
|
30203
|
+
isLoading: isInternetStatusLoading,
|
|
30204
|
+
refetch: refetchInternetStatus
|
|
30205
|
+
} = useInternetConnectivity(serverRefetchInterval);
|
|
30206
|
+
reactExports.useEffect(() => {
|
|
30207
|
+
const handleOnline = () => {
|
|
30208
|
+
refetchInternetStatus();
|
|
30209
|
+
};
|
|
30210
|
+
const handleOffline = () => {
|
|
30211
|
+
refetchInternetStatus();
|
|
30212
|
+
};
|
|
30213
|
+
window.addEventListener("online", handleOnline);
|
|
30214
|
+
window.addEventListener("offline", handleOffline);
|
|
30215
|
+
return () => {
|
|
30216
|
+
window.removeEventListener("online", handleOnline);
|
|
30217
|
+
window.removeEventListener("offline", handleOffline);
|
|
30218
|
+
};
|
|
30219
|
+
}, [refetchInternetStatus]);
|
|
30220
|
+
const hasConnectivityIssue = !isServerOnline || shouldCheckInternet && !isOnline;
|
|
30221
|
+
const connectivityIssue = !isServerOnline ? "server_offline" : shouldCheckInternet && !isOnline ? "internet_offline" : null;
|
|
30222
|
+
return {
|
|
30223
|
+
isServerOnline,
|
|
30224
|
+
isOnline,
|
|
30225
|
+
hostingProvider,
|
|
30226
|
+
shouldCheckInternet,
|
|
30227
|
+
hasConnectivityIssue,
|
|
30228
|
+
connectivityIssue,
|
|
30229
|
+
isLoading: isServerStatusLoading || shouldCheckInternet && isInternetStatusLoading || isConfigLoading,
|
|
30230
|
+
refetchServerStatus,
|
|
30231
|
+
refetchInternetStatus
|
|
30232
|
+
};
|
|
30233
|
+
};
|
|
30234
|
+
const useConnectivityGate = () => {
|
|
30235
|
+
const {
|
|
30236
|
+
isServerOnline,
|
|
30237
|
+
isOnline,
|
|
30238
|
+
hostingProvider,
|
|
30239
|
+
shouldCheckInternet,
|
|
30240
|
+
hasConnectivityIssue,
|
|
30241
|
+
connectivityIssue,
|
|
30242
|
+
isLoading,
|
|
30243
|
+
refetchInternetStatus
|
|
30244
|
+
} = useConnectivityStatus();
|
|
30245
|
+
const queryClient2 = useQueryClient();
|
|
30246
|
+
reactExports.useEffect(() => {
|
|
30247
|
+
const handleOnline = () => {
|
|
30248
|
+
refetchInternetStatus();
|
|
30249
|
+
queryClient2.invalidateQueries({
|
|
30250
|
+
// Force refetch to ensure queries are updated with new connectivity status
|
|
30251
|
+
refetchType: "all"
|
|
30252
|
+
});
|
|
30253
|
+
};
|
|
30254
|
+
const handleOffline = () => {
|
|
30255
|
+
refetchInternetStatus();
|
|
30256
|
+
queryClient2.invalidateQueries({
|
|
30257
|
+
predicate: (query) => {
|
|
30258
|
+
const queryKey = query.queryKey[0];
|
|
30259
|
+
return queryKey !== "server-health" && queryKey !== "internet-connectivity" && queryKey !== "config";
|
|
30260
|
+
},
|
|
30261
|
+
// Force refetch to ensure queries are updated with new connectivity status
|
|
30262
|
+
refetchType: "active"
|
|
30263
|
+
});
|
|
30264
|
+
};
|
|
30265
|
+
window.addEventListener("online", handleOnline);
|
|
30266
|
+
window.addEventListener("offline", handleOffline);
|
|
30267
|
+
return () => {
|
|
30268
|
+
window.removeEventListener("online", handleOnline);
|
|
30269
|
+
window.removeEventListener("offline", handleOffline);
|
|
30270
|
+
};
|
|
30271
|
+
}, [refetchInternetStatus, queryClient2]);
|
|
30272
|
+
reactExports.useEffect(() => {
|
|
30273
|
+
if (!isLoading && !isServerOnline) {
|
|
30274
|
+
queryClient2.invalidateQueries({
|
|
30275
|
+
predicate: (query) => {
|
|
30276
|
+
const queryKey = query.queryKey[0];
|
|
30277
|
+
return queryKey !== "server-health" && queryKey !== "internet-connectivity" && queryKey !== "config";
|
|
30278
|
+
},
|
|
30279
|
+
// Force refetch to ensure queries are updated with new connectivity status
|
|
30280
|
+
refetchType: "active"
|
|
30281
|
+
});
|
|
30282
|
+
}
|
|
30283
|
+
}, [isServerOnline, isLoading, queryClient2]);
|
|
30284
|
+
const shouldEnableQuery = (options) => {
|
|
30285
|
+
if (isLoading) {
|
|
30286
|
+
return false;
|
|
30287
|
+
}
|
|
30288
|
+
if (!options?.bypassServerCheck && !isServerOnline) {
|
|
30289
|
+
return false;
|
|
30290
|
+
}
|
|
30291
|
+
return true;
|
|
30292
|
+
};
|
|
30293
|
+
const getConnectivityError = () => {
|
|
30294
|
+
if (isLoading) {
|
|
30295
|
+
return null;
|
|
30296
|
+
}
|
|
30297
|
+
if (!isServerOnline) {
|
|
30298
|
+
return new Error("Server is offline. Please check your connection.");
|
|
30299
|
+
}
|
|
30300
|
+
return null;
|
|
30301
|
+
};
|
|
30302
|
+
return {
|
|
30303
|
+
shouldEnableQuery,
|
|
30304
|
+
getConnectivityError,
|
|
30305
|
+
isServerOnline,
|
|
30306
|
+
isOnline,
|
|
30307
|
+
hostingProvider,
|
|
30308
|
+
shouldCheckInternet,
|
|
30309
|
+
hasConnectivityIssue,
|
|
30310
|
+
connectivityIssue,
|
|
30311
|
+
isLoading
|
|
30312
|
+
};
|
|
30313
|
+
};
|
|
30050
30314
|
const agentsQueryKey = ["agents"];
|
|
30051
30315
|
const useAgents = (page = 1, perPage = 50, refetchInterval = 0, name2) => {
|
|
30316
|
+
const { shouldEnableQuery, getConnectivityError } = useConnectivityGate();
|
|
30317
|
+
const connectivityError = getConnectivityError();
|
|
30318
|
+
reactExports.useEffect(() => {
|
|
30319
|
+
if (connectivityError) {
|
|
30320
|
+
console.error("Agents connectivity error:", connectivityError.message);
|
|
30321
|
+
}
|
|
30322
|
+
}, [connectivityError]);
|
|
30052
30323
|
return useQuery({
|
|
30324
|
+
// Only enable the query if server is online (bypass internet check)
|
|
30325
|
+
enabled: shouldEnableQuery({ bypassInternetCheck: true }),
|
|
30053
30326
|
queryKey: [...agentsQueryKey, page, perPage, name2],
|
|
30054
30327
|
queryFn: async () => {
|
|
30055
30328
|
try {
|
|
@@ -30061,7 +30334,7 @@ const useAgents = (page = 1, perPage = 50, refetchInterval = 0, name2) => {
|
|
|
30061
30334
|
return response.result?.agents || [];
|
|
30062
30335
|
} catch (error) {
|
|
30063
30336
|
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred while fetching agents";
|
|
30064
|
-
|
|
30337
|
+
showErrorToast(errorMessage);
|
|
30065
30338
|
throw error;
|
|
30066
30339
|
}
|
|
30067
30340
|
},
|
|
@@ -30076,7 +30349,16 @@ const useAgents = (page = 1, perPage = 50, refetchInterval = 0, name2) => {
|
|
|
30076
30349
|
});
|
|
30077
30350
|
};
|
|
30078
30351
|
const useAgent = (agentId) => {
|
|
30352
|
+
const { shouldEnableQuery, getConnectivityError } = useConnectivityGate();
|
|
30353
|
+
const connectivityError = getConnectivityError();
|
|
30354
|
+
reactExports.useEffect(() => {
|
|
30355
|
+
if (connectivityError) {
|
|
30356
|
+
console.error("Agent connectivity error:", connectivityError.message);
|
|
30357
|
+
}
|
|
30358
|
+
}, [connectivityError]);
|
|
30079
30359
|
return useQuery({
|
|
30360
|
+
// Only enable the query if server is online and agentId is provided (bypass internet check)
|
|
30361
|
+
enabled: shouldEnableQuery({ bypassInternetCheck: true }) && !!agentId,
|
|
30080
30362
|
queryKey: [...agentsQueryKey, agentId],
|
|
30081
30363
|
queryFn: async () => {
|
|
30082
30364
|
if (!agentId) return null;
|
|
@@ -30093,12 +30375,11 @@ const useAgent = (agentId) => {
|
|
|
30093
30375
|
const is404Error = error instanceof Error && (error.message.includes("404") || error.message.includes("not found"));
|
|
30094
30376
|
if (!is404Error) {
|
|
30095
30377
|
const errorMessage = error instanceof Error ? error.message : `An unknown error occurred while fetching agent ${agentId}`;
|
|
30096
|
-
|
|
30378
|
+
showErrorToast(errorMessage);
|
|
30097
30379
|
}
|
|
30098
30380
|
throw error;
|
|
30099
30381
|
}
|
|
30100
|
-
}
|
|
30101
|
-
enabled: !!agentId
|
|
30382
|
+
}
|
|
30102
30383
|
});
|
|
30103
30384
|
};
|
|
30104
30385
|
const createStoreImpl = (createState2) => {
|
|
@@ -30296,6 +30577,16 @@ const useConversationMessages = (conversationId, pageSize2 = 20) => {
|
|
|
30296
30577
|
updateScrollPosition,
|
|
30297
30578
|
getScrollPosition
|
|
30298
30579
|
} = useChatStore();
|
|
30580
|
+
const { shouldEnableQuery, getConnectivityError } = useConnectivityGate();
|
|
30581
|
+
const connectivityError = getConnectivityError();
|
|
30582
|
+
reactExports.useEffect(() => {
|
|
30583
|
+
if (connectivityError) {
|
|
30584
|
+
console.error(
|
|
30585
|
+
"Conversation messages connectivity error:",
|
|
30586
|
+
connectivityError.message
|
|
30587
|
+
);
|
|
30588
|
+
}
|
|
30589
|
+
}, [connectivityError]);
|
|
30299
30590
|
const {
|
|
30300
30591
|
data,
|
|
30301
30592
|
fetchNextPage,
|
|
@@ -30306,6 +30597,8 @@ const useConversationMessages = (conversationId, pageSize2 = 20) => {
|
|
|
30306
30597
|
error,
|
|
30307
30598
|
refetch
|
|
30308
30599
|
} = useInfiniteQuery({
|
|
30600
|
+
// Only enable the query if server is online (bypass internet check)
|
|
30601
|
+
enabled: shouldEnableQuery({ bypassInternetCheck: true }) && !!conversationId,
|
|
30309
30602
|
queryKey: [...conversationMessagesQueryKey, conversationId],
|
|
30310
30603
|
queryFn: async ({ pageParam }) => {
|
|
30311
30604
|
try {
|
|
@@ -30354,7 +30647,7 @@ const useConversationMessages = (conversationId, pageSize2 = 20) => {
|
|
|
30354
30647
|
};
|
|
30355
30648
|
} catch (error2) {
|
|
30356
30649
|
const errorMessage = error2 instanceof Error ? error2.message : "An unknown error occurred while fetching conversation messages";
|
|
30357
|
-
|
|
30650
|
+
showErrorToast(errorMessage);
|
|
30358
30651
|
throw error2;
|
|
30359
30652
|
}
|
|
30360
30653
|
},
|
|
@@ -30362,9 +30655,7 @@ const useConversationMessages = (conversationId, pageSize2 = 20) => {
|
|
|
30362
30655
|
getNextPageParam: (lastPage) => {
|
|
30363
30656
|
if (!lastPage.hasMore) return void 0;
|
|
30364
30657
|
return lastPage.page + 1;
|
|
30365
|
-
}
|
|
30366
|
-
// Only enable the query if we have a conversation ID
|
|
30367
|
-
enabled: !!conversationId
|
|
30658
|
+
}
|
|
30368
30659
|
});
|
|
30369
30660
|
const handleScroll = reactExports.useCallback(() => {
|
|
30370
30661
|
if (!messagesContainerRef.current || !conversationId) return;
|
|
@@ -30479,9 +30770,20 @@ const useJobPolling = ({
|
|
|
30479
30770
|
const lastProcessedJobDataRef = reactExports.useRef(null);
|
|
30480
30771
|
const client = createLocalOperatorClient(apiConfig.baseUrl);
|
|
30481
30772
|
const previousConversationIdRef = reactExports.useRef(conversationId);
|
|
30773
|
+
const { shouldEnableQuery, getConnectivityError } = useConnectivityGate();
|
|
30482
30774
|
const checkForActiveJobs = reactExports.useCallback(
|
|
30483
30775
|
async (agentId) => {
|
|
30484
30776
|
if (!agentId) return false;
|
|
30777
|
+
if (!shouldEnableQuery({ bypassInternetCheck: true })) {
|
|
30778
|
+
const error2 = getConnectivityError();
|
|
30779
|
+
if (error2) {
|
|
30780
|
+
console.error(
|
|
30781
|
+
"Cannot check for active jobs due to connectivity issue:",
|
|
30782
|
+
error2.message
|
|
30783
|
+
);
|
|
30784
|
+
}
|
|
30785
|
+
return false;
|
|
30786
|
+
}
|
|
30485
30787
|
try {
|
|
30486
30788
|
const pendingResponse = await client.jobs.listJobs(agentId, "pending");
|
|
30487
30789
|
const processingResponse = await client.jobs.listJobs(
|
|
@@ -30509,7 +30811,7 @@ const useJobPolling = ({
|
|
|
30509
30811
|
return false;
|
|
30510
30812
|
}
|
|
30511
30813
|
},
|
|
30512
|
-
[client.jobs, currentJobId]
|
|
30814
|
+
[client.jobs, currentJobId, shouldEnableQuery, getConnectivityError]
|
|
30513
30815
|
);
|
|
30514
30816
|
reactExports.useEffect(() => {
|
|
30515
30817
|
if (conversationId !== previousConversationIdRef.current) {
|
|
@@ -30517,6 +30819,16 @@ const useJobPolling = ({
|
|
|
30517
30819
|
setCurrentJobId(null);
|
|
30518
30820
|
if (conversationId) {
|
|
30519
30821
|
const checkNewAgentJobs = async () => {
|
|
30822
|
+
if (!shouldEnableQuery({ bypassInternetCheck: true })) {
|
|
30823
|
+
const error2 = getConnectivityError();
|
|
30824
|
+
if (error2) {
|
|
30825
|
+
console.error(
|
|
30826
|
+
"Cannot check for active jobs due to connectivity issue:",
|
|
30827
|
+
error2.message
|
|
30828
|
+
);
|
|
30829
|
+
}
|
|
30830
|
+
return;
|
|
30831
|
+
}
|
|
30520
30832
|
try {
|
|
30521
30833
|
const pendingResponse = await client.jobs.listJobs(
|
|
30522
30834
|
conversationId,
|
|
@@ -30546,10 +30858,20 @@ const useJobPolling = ({
|
|
|
30546
30858
|
}
|
|
30547
30859
|
}
|
|
30548
30860
|
previousConversationIdRef.current = conversationId;
|
|
30549
|
-
}, [conversationId, client.jobs]);
|
|
30861
|
+
}, [conversationId, client.jobs, shouldEnableQuery, getConnectivityError]);
|
|
30550
30862
|
const updateConversationMessages = reactExports.useCallback(
|
|
30551
30863
|
async (agentId) => {
|
|
30552
30864
|
if (!agentId) return;
|
|
30865
|
+
if (!shouldEnableQuery({ bypassInternetCheck: true })) {
|
|
30866
|
+
const error2 = getConnectivityError();
|
|
30867
|
+
if (error2) {
|
|
30868
|
+
console.error(
|
|
30869
|
+
"Cannot update conversation messages due to connectivity issue:",
|
|
30870
|
+
error2.message
|
|
30871
|
+
);
|
|
30872
|
+
}
|
|
30873
|
+
return false;
|
|
30874
|
+
}
|
|
30553
30875
|
try {
|
|
30554
30876
|
const client2 = createLocalOperatorClient(apiConfig.baseUrl);
|
|
30555
30877
|
const response = await client2.agents.getAgentExecutionHistory(
|
|
@@ -30585,7 +30907,13 @@ const useJobPolling = ({
|
|
|
30585
30907
|
return false;
|
|
30586
30908
|
}
|
|
30587
30909
|
},
|
|
30588
|
-
[
|
|
30910
|
+
[
|
|
30911
|
+
getMessages,
|
|
30912
|
+
setMessages,
|
|
30913
|
+
queryClient2,
|
|
30914
|
+
shouldEnableQuery,
|
|
30915
|
+
getConnectivityError
|
|
30916
|
+
]
|
|
30589
30917
|
);
|
|
30590
30918
|
const handleJobCompletion = reactExports.useCallback(
|
|
30591
30919
|
async (job) => {
|
|
@@ -30633,8 +30961,8 @@ const useJobPolling = ({
|
|
|
30633
30961
|
const response = await client2.jobs.getJobStatus(currentJobId);
|
|
30634
30962
|
return response.result;
|
|
30635
30963
|
},
|
|
30636
|
-
// Only run the query if we have a job ID
|
|
30637
|
-
enabled: !!currentJobId,
|
|
30964
|
+
// Only run the query if we have a job ID and server is online (bypass internet check)
|
|
30965
|
+
enabled: shouldEnableQuery({ bypassInternetCheck: true }) && !!currentJobId,
|
|
30638
30966
|
// Poll every 1 second while job is active
|
|
30639
30967
|
refetchInterval: currentJobId ? 1e3 : false,
|
|
30640
30968
|
// Force refetch on interval regardless of window focus
|
|
@@ -32615,7 +32943,19 @@ const getAvailableHostingProviders = (userCredentials) => {
|
|
|
32615
32943
|
};
|
|
32616
32944
|
const credentialsQueryKey = ["credentials"];
|
|
32617
32945
|
const useCredentials = () => {
|
|
32946
|
+
const { shouldEnableQuery, getConnectivityError } = useConnectivityGate();
|
|
32947
|
+
const connectivityError = getConnectivityError();
|
|
32948
|
+
reactExports.useEffect(() => {
|
|
32949
|
+
if (connectivityError) {
|
|
32950
|
+
console.error(
|
|
32951
|
+
"Credentials connectivity error:",
|
|
32952
|
+
connectivityError.message
|
|
32953
|
+
);
|
|
32954
|
+
}
|
|
32955
|
+
}, [connectivityError]);
|
|
32618
32956
|
return useQuery({
|
|
32957
|
+
// Only enable the query if server is online (bypass internet check)
|
|
32958
|
+
enabled: shouldEnableQuery({ bypassInternetCheck: true }),
|
|
32619
32959
|
queryKey: credentialsQueryKey,
|
|
32620
32960
|
queryFn: async () => {
|
|
32621
32961
|
try {
|
|
@@ -32627,7 +32967,7 @@ const useCredentials = () => {
|
|
|
32627
32967
|
return response.result;
|
|
32628
32968
|
} catch (error) {
|
|
32629
32969
|
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred while fetching credentials";
|
|
32630
|
-
|
|
32970
|
+
showErrorToast(errorMessage);
|
|
32631
32971
|
throw error;
|
|
32632
32972
|
}
|
|
32633
32973
|
},
|
|
@@ -32888,6 +33228,8 @@ const HostingSelect = ({
|
|
|
32888
33228
|
};
|
|
32889
33229
|
const useModels = ({ autoFetch = true } = {}) => {
|
|
32890
33230
|
const baseUrl = apiConfig.baseUrl;
|
|
33231
|
+
const intervalRef = reactExports.useRef(null);
|
|
33232
|
+
const { shouldEnableQuery, getConnectivityError, hasConnectivityIssue } = useConnectivityGate();
|
|
32891
33233
|
const {
|
|
32892
33234
|
providers,
|
|
32893
33235
|
models,
|
|
@@ -32899,20 +33241,43 @@ const useModels = ({ autoFetch = true } = {}) => {
|
|
|
32899
33241
|
getModelsForProvider
|
|
32900
33242
|
} = useModelsStore();
|
|
32901
33243
|
reactExports.useEffect(() => {
|
|
32902
|
-
if (
|
|
33244
|
+
if (intervalRef.current) {
|
|
33245
|
+
clearInterval(intervalRef.current);
|
|
33246
|
+
intervalRef.current = null;
|
|
33247
|
+
}
|
|
33248
|
+
if (autoFetch && shouldEnableQuery({ bypassInternetCheck: true })) {
|
|
32903
33249
|
fetchModels(baseUrl);
|
|
32904
|
-
|
|
33250
|
+
intervalRef.current = window.setInterval(
|
|
32905
33251
|
() => {
|
|
32906
|
-
|
|
33252
|
+
if (shouldEnableQuery({ bypassInternetCheck: true })) {
|
|
33253
|
+
fetchModels(baseUrl);
|
|
33254
|
+
}
|
|
32907
33255
|
},
|
|
32908
33256
|
15 * 60 * 1e3
|
|
32909
33257
|
);
|
|
32910
|
-
return () =>
|
|
33258
|
+
return () => {
|
|
33259
|
+
if (intervalRef.current) {
|
|
33260
|
+
clearInterval(intervalRef.current);
|
|
33261
|
+
intervalRef.current = null;
|
|
33262
|
+
}
|
|
33263
|
+
};
|
|
32911
33264
|
}
|
|
32912
33265
|
return void 0;
|
|
32913
|
-
}, [autoFetch, baseUrl, fetchModels]);
|
|
33266
|
+
}, [autoFetch, baseUrl, fetchModels, shouldEnableQuery]);
|
|
33267
|
+
reactExports.useEffect(() => {
|
|
33268
|
+
if (!hasConnectivityIssue && autoFetch && isInitialized) {
|
|
33269
|
+
fetchModels(baseUrl);
|
|
33270
|
+
}
|
|
33271
|
+
}, [hasConnectivityIssue, autoFetch, isInitialized, baseUrl, fetchModels]);
|
|
32914
33272
|
const refreshModels = async () => {
|
|
32915
|
-
|
|
33273
|
+
if (shouldEnableQuery({ bypassInternetCheck: true })) {
|
|
33274
|
+
await fetchModels(baseUrl, true);
|
|
33275
|
+
} else {
|
|
33276
|
+
const error2 = getConnectivityError();
|
|
33277
|
+
if (error2) {
|
|
33278
|
+
throw error2;
|
|
33279
|
+
}
|
|
33280
|
+
}
|
|
32916
33281
|
};
|
|
32917
33282
|
const getModelById = (modelId) => {
|
|
32918
33283
|
return models.find((model) => model.id === modelId);
|
|
@@ -34333,13 +34698,13 @@ function requireCjs$1() {
|
|
|
34333
34698
|
}
|
|
34334
34699
|
return cjs$1;
|
|
34335
34700
|
}
|
|
34336
|
-
var utilities = {};
|
|
34337
|
-
var hasRequiredUtilities;
|
|
34338
|
-
function requireUtilities() {
|
|
34339
|
-
if (hasRequiredUtilities) return utilities;
|
|
34340
|
-
hasRequiredUtilities = 1;
|
|
34341
|
-
Object.defineProperty(utilities, "__esModule", { value: true });
|
|
34342
|
-
utilities.camelCase = void 0;
|
|
34701
|
+
var utilities$2 = {};
|
|
34702
|
+
var hasRequiredUtilities$2;
|
|
34703
|
+
function requireUtilities$2() {
|
|
34704
|
+
if (hasRequiredUtilities$2) return utilities$2;
|
|
34705
|
+
hasRequiredUtilities$2 = 1;
|
|
34706
|
+
Object.defineProperty(utilities$2, "__esModule", { value: true });
|
|
34707
|
+
utilities$2.camelCase = void 0;
|
|
34343
34708
|
var CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;
|
|
34344
34709
|
var HYPHEN_REGEX = /-([a-z])/g;
|
|
34345
34710
|
var NO_HYPHEN_REGEX = /^[^-]+$/;
|
|
@@ -34369,8 +34734,8 @@ function requireUtilities() {
|
|
|
34369
34734
|
}
|
|
34370
34735
|
return property.replace(HYPHEN_REGEX, capitalize2);
|
|
34371
34736
|
};
|
|
34372
|
-
utilities.camelCase = camelCase;
|
|
34373
|
-
return utilities;
|
|
34737
|
+
utilities$2.camelCase = camelCase;
|
|
34738
|
+
return utilities$2;
|
|
34374
34739
|
}
|
|
34375
34740
|
var cjs;
|
|
34376
34741
|
var hasRequiredCjs;
|
|
@@ -34381,7 +34746,7 @@ function requireCjs() {
|
|
|
34381
34746
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
34382
34747
|
};
|
|
34383
34748
|
var style_to_object_1 = __importDefault(requireCjs$1());
|
|
34384
|
-
var utilities_1 = requireUtilities();
|
|
34749
|
+
var utilities_1 = requireUtilities$2();
|
|
34385
34750
|
function StyleToJS(style, options) {
|
|
34386
34751
|
var output = {};
|
|
34387
34752
|
if (!style || typeof style !== "string") {
|
|
@@ -34987,7 +35352,7 @@ function toString$1(value, options) {
|
|
|
34987
35352
|
return one(value, includeImageAlt, includeHtml);
|
|
34988
35353
|
}
|
|
34989
35354
|
function one(value, includeImageAlt, includeHtml) {
|
|
34990
|
-
if (node$
|
|
35355
|
+
if (node$2(value)) {
|
|
34991
35356
|
if ("value" in value) {
|
|
34992
35357
|
return value.type === "html" && !includeHtml ? "" : value.value;
|
|
34993
35358
|
}
|
|
@@ -35011,7 +35376,7 @@ function all(values, includeImageAlt, includeHtml) {
|
|
|
35011
35376
|
}
|
|
35012
35377
|
return result.join("");
|
|
35013
35378
|
}
|
|
35014
|
-
function node$
|
|
35379
|
+
function node$2(value) {
|
|
35015
35380
|
return Boolean(value && typeof value === "object");
|
|
35016
35381
|
}
|
|
35017
35382
|
const element = document.createElement("i");
|
|
@@ -38866,7 +39231,7 @@ function serializeChunks(chunks, expandTabs) {
|
|
|
38866
39231
|
}
|
|
38867
39232
|
return result.join("");
|
|
38868
39233
|
}
|
|
38869
|
-
function parse$
|
|
39234
|
+
function parse$2(options) {
|
|
38870
39235
|
const settings = options || {};
|
|
38871
39236
|
const constructs2 = (
|
|
38872
39237
|
/** @type {FullNormalizedExtension} */
|
|
@@ -38994,7 +39359,7 @@ function fromMarkdown(value, encoding, options) {
|
|
|
38994
39359
|
options = encoding;
|
|
38995
39360
|
encoding = void 0;
|
|
38996
39361
|
}
|
|
38997
|
-
return compiler(options)(postprocess(parse$
|
|
39362
|
+
return compiler(options)(postprocess(parse$2(options).document().write(preprocess()(value, encoding, true))));
|
|
38998
39363
|
}
|
|
38999
39364
|
function compiler(options) {
|
|
39000
39365
|
const config2 = {
|
|
@@ -80459,11 +80824,11 @@ var length = 0;
|
|
|
80459
80824
|
var position = 0;
|
|
80460
80825
|
var character = 0;
|
|
80461
80826
|
var characters = "";
|
|
80462
|
-
function node(value, root2, parent, type, props, children, length2, siblings) {
|
|
80827
|
+
function node$1(value, root2, parent, type, props, children, length2, siblings) {
|
|
80463
80828
|
return { value, root: root2, parent, type, props, children, line, column, length: length2, return: "", siblings };
|
|
80464
80829
|
}
|
|
80465
80830
|
function copy(root2, props) {
|
|
80466
|
-
return assign(node("", null, null, "", null, null, 0, root2.siblings), root2, { length: -root2.length }, props);
|
|
80831
|
+
return assign(node$1("", null, null, "", null, null, 0, root2.siblings), root2, { length: -root2.length }, props);
|
|
80467
80832
|
}
|
|
80468
80833
|
function lift(root2) {
|
|
80469
80834
|
while (root2.root)
|
|
@@ -80593,9 +80958,9 @@ function identifier(index2) {
|
|
|
80593
80958
|
return slice(index2, position);
|
|
80594
80959
|
}
|
|
80595
80960
|
function compile(value) {
|
|
80596
|
-
return dealloc(parse("", null, null, null, [""], value = alloc(value), 0, [0], value));
|
|
80961
|
+
return dealloc(parse$1("", null, null, null, [""], value = alloc(value), 0, [0], value));
|
|
80597
80962
|
}
|
|
80598
|
-
function parse(value, root2, parent, rule, rules, rulesets, pseudo, points, declarations) {
|
|
80963
|
+
function parse$1(value, root2, parent, rule, rules, rulesets, pseudo, points, declarations) {
|
|
80599
80964
|
var index2 = 0;
|
|
80600
80965
|
var offset2 = 0;
|
|
80601
80966
|
var length2 = pseudo;
|
|
@@ -80674,7 +81039,7 @@ function parse(value, root2, parent, rule, rules, rulesets, pseudo, points, decl
|
|
|
80674
81039
|
append(reference2 = ruleset(characters2, root2, parent, index2, offset2, rules, points, type, props = [], children = [], length2, rulesets), rulesets);
|
|
80675
81040
|
if (character2 === 123)
|
|
80676
81041
|
if (offset2 === 0)
|
|
80677
|
-
parse(characters2, root2, reference2, reference2, props, rulesets, length2, points, children);
|
|
81042
|
+
parse$1(characters2, root2, reference2, reference2, props, rulesets, length2, points, children);
|
|
80678
81043
|
else
|
|
80679
81044
|
switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) {
|
|
80680
81045
|
// d l m s
|
|
@@ -80682,10 +81047,10 @@ function parse(value, root2, parent, rule, rules, rulesets, pseudo, points, decl
|
|
|
80682
81047
|
case 108:
|
|
80683
81048
|
case 109:
|
|
80684
81049
|
case 115:
|
|
80685
|
-
parse(value, reference2, reference2, rule && append(ruleset(value, reference2, reference2, 0, 0, rules, points, type, rules, props = [], length2, children), children), rules, children, length2, points, rule ? props : children);
|
|
81050
|
+
parse$1(value, reference2, reference2, rule && append(ruleset(value, reference2, reference2, 0, 0, rules, points, type, rules, props = [], length2, children), children), rules, children, length2, points, rule ? props : children);
|
|
80686
81051
|
break;
|
|
80687
81052
|
default:
|
|
80688
|
-
parse(characters2, reference2, reference2, reference2, [""], children, 0, points, children);
|
|
81053
|
+
parse$1(characters2, reference2, reference2, reference2, [""], children, 0, points, children);
|
|
80689
81054
|
}
|
|
80690
81055
|
}
|
|
80691
81056
|
index2 = offset2 = property = 0, variable = ampersand = 1, type = characters2 = "", length2 = pseudo;
|
|
@@ -80731,13 +81096,13 @@ function ruleset(value, root2, parent, index2, offset2, rules, points, type, pro
|
|
|
80731
81096
|
for (var x2 = 0, y2 = substr(value, post2 + 1, post2 = abs(j2 = points[i])), z2 = value; x2 < size; ++x2)
|
|
80732
81097
|
if (z2 = trim(j2 > 0 ? rule[x2] + " " + y2 : replace(y2, /&\f/g, rule[x2])))
|
|
80733
81098
|
props[k2++] = z2;
|
|
80734
|
-
return node(value, root2, parent, offset2 === 0 ? RULESET : type, props, children, length2, siblings);
|
|
81099
|
+
return node$1(value, root2, parent, offset2 === 0 ? RULESET : type, props, children, length2, siblings);
|
|
80735
81100
|
}
|
|
80736
81101
|
function comment(value, root2, parent, siblings) {
|
|
80737
|
-
return node(value, root2, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings);
|
|
81102
|
+
return node$1(value, root2, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings);
|
|
80738
81103
|
}
|
|
80739
81104
|
function declaration(value, root2, parent, length2, siblings) {
|
|
80740
|
-
return node(value, root2, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2, siblings);
|
|
81105
|
+
return node$1(value, root2, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2, siblings);
|
|
80741
81106
|
}
|
|
80742
81107
|
function prefix(value, length2, children) {
|
|
80743
81108
|
switch (hash(value, length2)) {
|
|
@@ -81046,8 +81411,8 @@ var unitlessKeys = {
|
|
|
81046
81411
|
strokeOpacity: 1,
|
|
81047
81412
|
strokeWidth: 1
|
|
81048
81413
|
};
|
|
81049
|
-
var define_process_env_default
|
|
81050
|
-
var f = "undefined" != typeof process && void 0 !== define_process_env_default
|
|
81414
|
+
var define_process_env_default = {};
|
|
81415
|
+
var f = "undefined" != typeof process && void 0 !== define_process_env_default && (define_process_env_default.REACT_APP_SC_ATTR || define_process_env_default.SC_ATTR) || "data-styled", m = "active", y = "data-styled-version", v = "6.1.15", g = "/*!sc*/\n", S = "undefined" != typeof window && "HTMLElement" in window, w = Boolean("boolean" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : "undefined" != typeof process && void 0 !== define_process_env_default && void 0 !== define_process_env_default.REACT_APP_SC_DISABLE_SPEEDY && "" !== define_process_env_default.REACT_APP_SC_DISABLE_SPEEDY ? "false" !== define_process_env_default.REACT_APP_SC_DISABLE_SPEEDY && define_process_env_default.REACT_APP_SC_DISABLE_SPEEDY : "undefined" != typeof process && void 0 !== define_process_env_default && void 0 !== define_process_env_default.SC_DISABLE_SPEEDY && "" !== define_process_env_default.SC_DISABLE_SPEEDY ? "false" !== define_process_env_default.SC_DISABLE_SPEEDY && define_process_env_default.SC_DISABLE_SPEEDY : false), b = {}, _ = Object.freeze([]), C = Object.freeze({});
|
|
81051
81416
|
function I(e2, t2, n2) {
|
|
81052
81417
|
return void 0 === n2 && (n2 = C), e2.theme !== n2.theme && e2.theme || t2 || n2.theme;
|
|
81053
81418
|
}
|
|
@@ -84312,7 +84677,7 @@ const AgentAvatar$1 = styled$1(Avatar)(({ theme: theme2 }) => ({
|
|
|
84312
84677
|
backgroundColor: "rgba(56, 201, 106, 0.2)",
|
|
84313
84678
|
color: theme2.palette.primary.main
|
|
84314
84679
|
}));
|
|
84315
|
-
const MessagePreview = styled$1(
|
|
84680
|
+
const MessagePreview = styled$1("span")({
|
|
84316
84681
|
display: "block",
|
|
84317
84682
|
color: "text.secondary",
|
|
84318
84683
|
maxWidth: "100%",
|
|
@@ -84484,7 +84849,7 @@ const ChatSidebar = ({
|
|
|
84484
84849
|
placement: "bottom-start",
|
|
84485
84850
|
enterDelay: 1500,
|
|
84486
84851
|
leaveDelay: 200,
|
|
84487
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessagePreview, {
|
|
84852
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessagePreview, { children: truncateMessage(agent.last_message, 60) })
|
|
84488
84853
|
}
|
|
84489
84854
|
),
|
|
84490
84855
|
agent.last_message_datetime && /* @__PURE__ */ jsxRuntimeExports.jsxs(TimeStampContainer, { children: [
|
|
@@ -85626,12 +85991,14 @@ const CardIcon = styled$1(FontAwesomeIcon)({
|
|
|
85626
85991
|
opacity: 0.8,
|
|
85627
85992
|
color: "#f2f2f3"
|
|
85628
85993
|
});
|
|
85629
|
-
const LabelText$1 = styled$1(
|
|
85994
|
+
const LabelText$1 = styled$1("span")(({ theme: theme2 }) => ({
|
|
85630
85995
|
color: theme2.palette.text.secondary,
|
|
85631
|
-
marginRight: theme2.spacing(1)
|
|
85996
|
+
marginRight: theme2.spacing(1),
|
|
85997
|
+
display: "inline-block"
|
|
85632
85998
|
}));
|
|
85633
|
-
const ValueText = styled$1(
|
|
85634
|
-
fontWeight: 500
|
|
85999
|
+
const ValueText = styled$1("span")({
|
|
86000
|
+
fontWeight: 500,
|
|
86001
|
+
display: "inline-block"
|
|
85635
86002
|
});
|
|
85636
86003
|
const MonospaceValueText = styled$1(ValueText)({
|
|
85637
86004
|
fontFamily: "monospace"
|
|
@@ -86046,7 +86413,7 @@ const AgentAvatar = styled$1(Avatar)(({ theme: theme2 }) => ({
|
|
|
86046
86413
|
backgroundColor: "rgba(56, 201, 106, 0.2)",
|
|
86047
86414
|
color: theme2.palette.primary.main
|
|
86048
86415
|
}));
|
|
86049
|
-
const CreationDateText = styled$1(
|
|
86416
|
+
const CreationDateText = styled$1("span")({
|
|
86050
86417
|
display: "flex",
|
|
86051
86418
|
alignItems: "center",
|
|
86052
86419
|
fontSize: "0.75rem",
|
|
@@ -86054,9 +86421,11 @@ const CreationDateText = styled$1(Typography)({
|
|
|
86054
86421
|
marginTop: 4,
|
|
86055
86422
|
gap: 4
|
|
86056
86423
|
});
|
|
86057
|
-
const DescriptionText$1 = styled$1(
|
|
86424
|
+
const DescriptionText$1 = styled$1("span")({
|
|
86058
86425
|
maxWidth: "100%",
|
|
86059
|
-
fontSize: "0.75rem"
|
|
86426
|
+
fontSize: "0.75rem",
|
|
86427
|
+
display: "block",
|
|
86428
|
+
color: "text.secondary"
|
|
86060
86429
|
});
|
|
86061
86430
|
const formatDate = (dateString) => {
|
|
86062
86431
|
if (!dateString) return "Unknown date";
|
|
@@ -86394,6 +86763,107 @@ const AgentsPage = () => {
|
|
|
86394
86763
|
] }) })
|
|
86395
86764
|
] });
|
|
86396
86765
|
};
|
|
86766
|
+
const BannerContainer = styled$1(Box)(() => ({
|
|
86767
|
+
position: "fixed",
|
|
86768
|
+
top: 0,
|
|
86769
|
+
left: 0,
|
|
86770
|
+
right: 0,
|
|
86771
|
+
zIndex: 2200,
|
|
86772
|
+
// High z-index to ensure it's above other content
|
|
86773
|
+
width: "100%"
|
|
86774
|
+
}));
|
|
86775
|
+
const ConnectivityBanner = ({
|
|
86776
|
+
autoCheck = true
|
|
86777
|
+
}) => {
|
|
86778
|
+
const {
|
|
86779
|
+
hostingProvider,
|
|
86780
|
+
shouldCheckInternet,
|
|
86781
|
+
hasConnectivityIssue,
|
|
86782
|
+
connectivityIssue,
|
|
86783
|
+
refetchServerStatus,
|
|
86784
|
+
refetchInternetStatus
|
|
86785
|
+
} = useConnectivityStatus();
|
|
86786
|
+
const [showBanner, setShowBanner] = reactExports.useState(false);
|
|
86787
|
+
const [internetBannerDismissed, setInternetBannerDismissed] = reactExports.useState(false);
|
|
86788
|
+
reactExports.useEffect(() => {
|
|
86789
|
+
if (connectivityIssue === "internet_offline") {
|
|
86790
|
+
setShowBanner(hasConnectivityIssue && !internetBannerDismissed);
|
|
86791
|
+
} else {
|
|
86792
|
+
setShowBanner(hasConnectivityIssue);
|
|
86793
|
+
}
|
|
86794
|
+
}, [hasConnectivityIssue, connectivityIssue, internetBannerDismissed]);
|
|
86795
|
+
reactExports.useEffect(() => {
|
|
86796
|
+
if (!hasConnectivityIssue || connectivityIssue !== "internet_offline") {
|
|
86797
|
+
setInternetBannerDismissed(false);
|
|
86798
|
+
}
|
|
86799
|
+
}, [hasConnectivityIssue, connectivityIssue]);
|
|
86800
|
+
reactExports.useEffect(() => {
|
|
86801
|
+
const handleOffline = () => {
|
|
86802
|
+
if (shouldCheckInternet) {
|
|
86803
|
+
setShowBanner(true);
|
|
86804
|
+
setInternetBannerDismissed(false);
|
|
86805
|
+
}
|
|
86806
|
+
};
|
|
86807
|
+
const handleOnline = () => {
|
|
86808
|
+
setShowBanner(false);
|
|
86809
|
+
setInternetBannerDismissed(false);
|
|
86810
|
+
};
|
|
86811
|
+
window.addEventListener("offline", handleOffline);
|
|
86812
|
+
window.addEventListener("online", handleOnline);
|
|
86813
|
+
return () => {
|
|
86814
|
+
window.removeEventListener("offline", handleOffline);
|
|
86815
|
+
window.removeEventListener("online", handleOnline);
|
|
86816
|
+
};
|
|
86817
|
+
}, [shouldCheckInternet]);
|
|
86818
|
+
reactExports.useEffect(() => {
|
|
86819
|
+
if (autoCheck) {
|
|
86820
|
+
refetchServerStatus();
|
|
86821
|
+
const intervalId = setInterval(() => {
|
|
86822
|
+
refetchServerStatus();
|
|
86823
|
+
}, 3e3);
|
|
86824
|
+
return () => clearInterval(intervalId);
|
|
86825
|
+
}
|
|
86826
|
+
return void 0;
|
|
86827
|
+
}, [autoCheck, refetchServerStatus]);
|
|
86828
|
+
const handleRetry = () => {
|
|
86829
|
+
refetchServerStatus();
|
|
86830
|
+
if (shouldCheckInternet) {
|
|
86831
|
+
refetchInternetStatus();
|
|
86832
|
+
}
|
|
86833
|
+
};
|
|
86834
|
+
const handleDismiss = () => {
|
|
86835
|
+
setInternetBannerDismissed(true);
|
|
86836
|
+
setShowBanner(false);
|
|
86837
|
+
};
|
|
86838
|
+
if (!showBanner) {
|
|
86839
|
+
return null;
|
|
86840
|
+
}
|
|
86841
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(BannerContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86842
|
+
Alert,
|
|
86843
|
+
{
|
|
86844
|
+
severity: connectivityIssue === "internet_offline" ? "warning" : "error",
|
|
86845
|
+
action: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
86846
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { color: "inherit", size: "small", onClick: handleRetry, children: "Retry" }),
|
|
86847
|
+
connectivityIssue === "internet_offline" && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86848
|
+
Button,
|
|
86849
|
+
{
|
|
86850
|
+
"aria-label": "dismiss",
|
|
86851
|
+
color: "inherit",
|
|
86852
|
+
size: "small",
|
|
86853
|
+
onClick: handleDismiss,
|
|
86854
|
+
children: "Dismiss"
|
|
86855
|
+
}
|
|
86856
|
+
)
|
|
86857
|
+
] }),
|
|
86858
|
+
sx: { borderRadius: 0 },
|
|
86859
|
+
children: connectivityIssue === "server_offline" ? /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "The server is offline. The interface will not function properly until the server is back online." }) : connectivityIssue === "internet_offline" ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
86860
|
+
"You are offline. Your configured hosting provider (",
|
|
86861
|
+
hostingProvider,
|
|
86862
|
+
") requires an internet connection."
|
|
86863
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "A connectivity issue has been detected." })
|
|
86864
|
+
}
|
|
86865
|
+
) });
|
|
86866
|
+
};
|
|
86397
86867
|
const useInitializeModels = () => {
|
|
86398
86868
|
const { isLoading, error, refreshModels } = useModels();
|
|
86399
86869
|
reactExports.useEffect(() => {
|
|
@@ -86408,9 +86878,2172 @@ const ModelsInitializer = () => {
|
|
|
86408
86878
|
useInitializeModels();
|
|
86409
86879
|
return null;
|
|
86410
86880
|
};
|
|
86411
|
-
var
|
|
86881
|
+
var lib$3 = {};
|
|
86882
|
+
var htmlToDom = {};
|
|
86883
|
+
var domparser = {};
|
|
86884
|
+
var utilities$1 = {};
|
|
86885
|
+
var lib$2 = {};
|
|
86886
|
+
var lib$1 = {};
|
|
86887
|
+
var hasRequiredLib$3;
|
|
86888
|
+
function requireLib$3() {
|
|
86889
|
+
if (hasRequiredLib$3) return lib$1;
|
|
86890
|
+
hasRequiredLib$3 = 1;
|
|
86891
|
+
(function(exports) {
|
|
86892
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
86893
|
+
exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;
|
|
86894
|
+
var ElementType;
|
|
86895
|
+
(function(ElementType2) {
|
|
86896
|
+
ElementType2["Root"] = "root";
|
|
86897
|
+
ElementType2["Text"] = "text";
|
|
86898
|
+
ElementType2["Directive"] = "directive";
|
|
86899
|
+
ElementType2["Comment"] = "comment";
|
|
86900
|
+
ElementType2["Script"] = "script";
|
|
86901
|
+
ElementType2["Style"] = "style";
|
|
86902
|
+
ElementType2["Tag"] = "tag";
|
|
86903
|
+
ElementType2["CDATA"] = "cdata";
|
|
86904
|
+
ElementType2["Doctype"] = "doctype";
|
|
86905
|
+
})(ElementType = exports.ElementType || (exports.ElementType = {}));
|
|
86906
|
+
function isTag(elem) {
|
|
86907
|
+
return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style;
|
|
86908
|
+
}
|
|
86909
|
+
exports.isTag = isTag;
|
|
86910
|
+
exports.Root = ElementType.Root;
|
|
86911
|
+
exports.Text = ElementType.Text;
|
|
86912
|
+
exports.Directive = ElementType.Directive;
|
|
86913
|
+
exports.Comment = ElementType.Comment;
|
|
86914
|
+
exports.Script = ElementType.Script;
|
|
86915
|
+
exports.Style = ElementType.Style;
|
|
86916
|
+
exports.Tag = ElementType.Tag;
|
|
86917
|
+
exports.CDATA = ElementType.CDATA;
|
|
86918
|
+
exports.Doctype = ElementType.Doctype;
|
|
86919
|
+
})(lib$1);
|
|
86920
|
+
return lib$1;
|
|
86921
|
+
}
|
|
86922
|
+
var node = {};
|
|
86923
|
+
var hasRequiredNode;
|
|
86924
|
+
function requireNode() {
|
|
86925
|
+
if (hasRequiredNode) return node;
|
|
86926
|
+
hasRequiredNode = 1;
|
|
86927
|
+
var __extends = node && node.__extends || /* @__PURE__ */ function() {
|
|
86928
|
+
var extendStatics = function(d, b2) {
|
|
86929
|
+
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b3) {
|
|
86930
|
+
d2.__proto__ = b3;
|
|
86931
|
+
} || function(d2, b3) {
|
|
86932
|
+
for (var p in b3) if (Object.prototype.hasOwnProperty.call(b3, p)) d2[p] = b3[p];
|
|
86933
|
+
};
|
|
86934
|
+
return extendStatics(d, b2);
|
|
86935
|
+
};
|
|
86936
|
+
return function(d, b2) {
|
|
86937
|
+
if (typeof b2 !== "function" && b2 !== null)
|
|
86938
|
+
throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
|
|
86939
|
+
extendStatics(d, b2);
|
|
86940
|
+
function __() {
|
|
86941
|
+
this.constructor = d;
|
|
86942
|
+
}
|
|
86943
|
+
d.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
|
|
86944
|
+
};
|
|
86945
|
+
}();
|
|
86946
|
+
var __assign2 = node && node.__assign || function() {
|
|
86947
|
+
__assign2 = Object.assign || function(t) {
|
|
86948
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
86949
|
+
s = arguments[i];
|
|
86950
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
86951
|
+
t[p] = s[p];
|
|
86952
|
+
}
|
|
86953
|
+
return t;
|
|
86954
|
+
};
|
|
86955
|
+
return __assign2.apply(this, arguments);
|
|
86956
|
+
};
|
|
86957
|
+
Object.defineProperty(node, "__esModule", { value: true });
|
|
86958
|
+
node.cloneNode = node.hasChildren = node.isDocument = node.isDirective = node.isComment = node.isText = node.isCDATA = node.isTag = node.Element = node.Document = node.CDATA = node.NodeWithChildren = node.ProcessingInstruction = node.Comment = node.Text = node.DataNode = node.Node = void 0;
|
|
86959
|
+
var domelementtype_1 = /* @__PURE__ */ requireLib$3();
|
|
86960
|
+
var Node = (
|
|
86961
|
+
/** @class */
|
|
86962
|
+
function() {
|
|
86963
|
+
function Node2() {
|
|
86964
|
+
this.parent = null;
|
|
86965
|
+
this.prev = null;
|
|
86966
|
+
this.next = null;
|
|
86967
|
+
this.startIndex = null;
|
|
86968
|
+
this.endIndex = null;
|
|
86969
|
+
}
|
|
86970
|
+
Object.defineProperty(Node2.prototype, "parentNode", {
|
|
86971
|
+
// Read-write aliases for properties
|
|
86972
|
+
/**
|
|
86973
|
+
* Same as {@link parent}.
|
|
86974
|
+
* [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
|
|
86975
|
+
*/
|
|
86976
|
+
get: function() {
|
|
86977
|
+
return this.parent;
|
|
86978
|
+
},
|
|
86979
|
+
set: function(parent) {
|
|
86980
|
+
this.parent = parent;
|
|
86981
|
+
},
|
|
86982
|
+
enumerable: false,
|
|
86983
|
+
configurable: true
|
|
86984
|
+
});
|
|
86985
|
+
Object.defineProperty(Node2.prototype, "previousSibling", {
|
|
86986
|
+
/**
|
|
86987
|
+
* Same as {@link prev}.
|
|
86988
|
+
* [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
|
|
86989
|
+
*/
|
|
86990
|
+
get: function() {
|
|
86991
|
+
return this.prev;
|
|
86992
|
+
},
|
|
86993
|
+
set: function(prev2) {
|
|
86994
|
+
this.prev = prev2;
|
|
86995
|
+
},
|
|
86996
|
+
enumerable: false,
|
|
86997
|
+
configurable: true
|
|
86998
|
+
});
|
|
86999
|
+
Object.defineProperty(Node2.prototype, "nextSibling", {
|
|
87000
|
+
/**
|
|
87001
|
+
* Same as {@link next}.
|
|
87002
|
+
* [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
|
|
87003
|
+
*/
|
|
87004
|
+
get: function() {
|
|
87005
|
+
return this.next;
|
|
87006
|
+
},
|
|
87007
|
+
set: function(next2) {
|
|
87008
|
+
this.next = next2;
|
|
87009
|
+
},
|
|
87010
|
+
enumerable: false,
|
|
87011
|
+
configurable: true
|
|
87012
|
+
});
|
|
87013
|
+
Node2.prototype.cloneNode = function(recursive) {
|
|
87014
|
+
if (recursive === void 0) {
|
|
87015
|
+
recursive = false;
|
|
87016
|
+
}
|
|
87017
|
+
return cloneNode(this, recursive);
|
|
87018
|
+
};
|
|
87019
|
+
return Node2;
|
|
87020
|
+
}()
|
|
87021
|
+
);
|
|
87022
|
+
node.Node = Node;
|
|
87023
|
+
var DataNode = (
|
|
87024
|
+
/** @class */
|
|
87025
|
+
function(_super) {
|
|
87026
|
+
__extends(DataNode2, _super);
|
|
87027
|
+
function DataNode2(data) {
|
|
87028
|
+
var _this = _super.call(this) || this;
|
|
87029
|
+
_this.data = data;
|
|
87030
|
+
return _this;
|
|
87031
|
+
}
|
|
87032
|
+
Object.defineProperty(DataNode2.prototype, "nodeValue", {
|
|
87033
|
+
/**
|
|
87034
|
+
* Same as {@link data}.
|
|
87035
|
+
* [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
|
|
87036
|
+
*/
|
|
87037
|
+
get: function() {
|
|
87038
|
+
return this.data;
|
|
87039
|
+
},
|
|
87040
|
+
set: function(data) {
|
|
87041
|
+
this.data = data;
|
|
87042
|
+
},
|
|
87043
|
+
enumerable: false,
|
|
87044
|
+
configurable: true
|
|
87045
|
+
});
|
|
87046
|
+
return DataNode2;
|
|
87047
|
+
}(Node)
|
|
87048
|
+
);
|
|
87049
|
+
node.DataNode = DataNode;
|
|
87050
|
+
var Text = (
|
|
87051
|
+
/** @class */
|
|
87052
|
+
function(_super) {
|
|
87053
|
+
__extends(Text2, _super);
|
|
87054
|
+
function Text2() {
|
|
87055
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
87056
|
+
_this.type = domelementtype_1.ElementType.Text;
|
|
87057
|
+
return _this;
|
|
87058
|
+
}
|
|
87059
|
+
Object.defineProperty(Text2.prototype, "nodeType", {
|
|
87060
|
+
get: function() {
|
|
87061
|
+
return 3;
|
|
87062
|
+
},
|
|
87063
|
+
enumerable: false,
|
|
87064
|
+
configurable: true
|
|
87065
|
+
});
|
|
87066
|
+
return Text2;
|
|
87067
|
+
}(DataNode)
|
|
87068
|
+
);
|
|
87069
|
+
node.Text = Text;
|
|
87070
|
+
var Comment = (
|
|
87071
|
+
/** @class */
|
|
87072
|
+
function(_super) {
|
|
87073
|
+
__extends(Comment2, _super);
|
|
87074
|
+
function Comment2() {
|
|
87075
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
87076
|
+
_this.type = domelementtype_1.ElementType.Comment;
|
|
87077
|
+
return _this;
|
|
87078
|
+
}
|
|
87079
|
+
Object.defineProperty(Comment2.prototype, "nodeType", {
|
|
87080
|
+
get: function() {
|
|
87081
|
+
return 8;
|
|
87082
|
+
},
|
|
87083
|
+
enumerable: false,
|
|
87084
|
+
configurable: true
|
|
87085
|
+
});
|
|
87086
|
+
return Comment2;
|
|
87087
|
+
}(DataNode)
|
|
87088
|
+
);
|
|
87089
|
+
node.Comment = Comment;
|
|
87090
|
+
var ProcessingInstruction = (
|
|
87091
|
+
/** @class */
|
|
87092
|
+
function(_super) {
|
|
87093
|
+
__extends(ProcessingInstruction2, _super);
|
|
87094
|
+
function ProcessingInstruction2(name2, data) {
|
|
87095
|
+
var _this = _super.call(this, data) || this;
|
|
87096
|
+
_this.name = name2;
|
|
87097
|
+
_this.type = domelementtype_1.ElementType.Directive;
|
|
87098
|
+
return _this;
|
|
87099
|
+
}
|
|
87100
|
+
Object.defineProperty(ProcessingInstruction2.prototype, "nodeType", {
|
|
87101
|
+
get: function() {
|
|
87102
|
+
return 1;
|
|
87103
|
+
},
|
|
87104
|
+
enumerable: false,
|
|
87105
|
+
configurable: true
|
|
87106
|
+
});
|
|
87107
|
+
return ProcessingInstruction2;
|
|
87108
|
+
}(DataNode)
|
|
87109
|
+
);
|
|
87110
|
+
node.ProcessingInstruction = ProcessingInstruction;
|
|
87111
|
+
var NodeWithChildren = (
|
|
87112
|
+
/** @class */
|
|
87113
|
+
function(_super) {
|
|
87114
|
+
__extends(NodeWithChildren2, _super);
|
|
87115
|
+
function NodeWithChildren2(children) {
|
|
87116
|
+
var _this = _super.call(this) || this;
|
|
87117
|
+
_this.children = children;
|
|
87118
|
+
return _this;
|
|
87119
|
+
}
|
|
87120
|
+
Object.defineProperty(NodeWithChildren2.prototype, "firstChild", {
|
|
87121
|
+
// Aliases
|
|
87122
|
+
/** First child of the node. */
|
|
87123
|
+
get: function() {
|
|
87124
|
+
var _a;
|
|
87125
|
+
return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;
|
|
87126
|
+
},
|
|
87127
|
+
enumerable: false,
|
|
87128
|
+
configurable: true
|
|
87129
|
+
});
|
|
87130
|
+
Object.defineProperty(NodeWithChildren2.prototype, "lastChild", {
|
|
87131
|
+
/** Last child of the node. */
|
|
87132
|
+
get: function() {
|
|
87133
|
+
return this.children.length > 0 ? this.children[this.children.length - 1] : null;
|
|
87134
|
+
},
|
|
87135
|
+
enumerable: false,
|
|
87136
|
+
configurable: true
|
|
87137
|
+
});
|
|
87138
|
+
Object.defineProperty(NodeWithChildren2.prototype, "childNodes", {
|
|
87139
|
+
/**
|
|
87140
|
+
* Same as {@link children}.
|
|
87141
|
+
* [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
|
|
87142
|
+
*/
|
|
87143
|
+
get: function() {
|
|
87144
|
+
return this.children;
|
|
87145
|
+
},
|
|
87146
|
+
set: function(children) {
|
|
87147
|
+
this.children = children;
|
|
87148
|
+
},
|
|
87149
|
+
enumerable: false,
|
|
87150
|
+
configurable: true
|
|
87151
|
+
});
|
|
87152
|
+
return NodeWithChildren2;
|
|
87153
|
+
}(Node)
|
|
87154
|
+
);
|
|
87155
|
+
node.NodeWithChildren = NodeWithChildren;
|
|
87156
|
+
var CDATA = (
|
|
87157
|
+
/** @class */
|
|
87158
|
+
function(_super) {
|
|
87159
|
+
__extends(CDATA2, _super);
|
|
87160
|
+
function CDATA2() {
|
|
87161
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
87162
|
+
_this.type = domelementtype_1.ElementType.CDATA;
|
|
87163
|
+
return _this;
|
|
87164
|
+
}
|
|
87165
|
+
Object.defineProperty(CDATA2.prototype, "nodeType", {
|
|
87166
|
+
get: function() {
|
|
87167
|
+
return 4;
|
|
87168
|
+
},
|
|
87169
|
+
enumerable: false,
|
|
87170
|
+
configurable: true
|
|
87171
|
+
});
|
|
87172
|
+
return CDATA2;
|
|
87173
|
+
}(NodeWithChildren)
|
|
87174
|
+
);
|
|
87175
|
+
node.CDATA = CDATA;
|
|
87176
|
+
var Document = (
|
|
87177
|
+
/** @class */
|
|
87178
|
+
function(_super) {
|
|
87179
|
+
__extends(Document2, _super);
|
|
87180
|
+
function Document2() {
|
|
87181
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
87182
|
+
_this.type = domelementtype_1.ElementType.Root;
|
|
87183
|
+
return _this;
|
|
87184
|
+
}
|
|
87185
|
+
Object.defineProperty(Document2.prototype, "nodeType", {
|
|
87186
|
+
get: function() {
|
|
87187
|
+
return 9;
|
|
87188
|
+
},
|
|
87189
|
+
enumerable: false,
|
|
87190
|
+
configurable: true
|
|
87191
|
+
});
|
|
87192
|
+
return Document2;
|
|
87193
|
+
}(NodeWithChildren)
|
|
87194
|
+
);
|
|
87195
|
+
node.Document = Document;
|
|
87196
|
+
var Element2 = (
|
|
87197
|
+
/** @class */
|
|
87198
|
+
function(_super) {
|
|
87199
|
+
__extends(Element3, _super);
|
|
87200
|
+
function Element3(name2, attribs, children, type) {
|
|
87201
|
+
if (children === void 0) {
|
|
87202
|
+
children = [];
|
|
87203
|
+
}
|
|
87204
|
+
if (type === void 0) {
|
|
87205
|
+
type = name2 === "script" ? domelementtype_1.ElementType.Script : name2 === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag;
|
|
87206
|
+
}
|
|
87207
|
+
var _this = _super.call(this, children) || this;
|
|
87208
|
+
_this.name = name2;
|
|
87209
|
+
_this.attribs = attribs;
|
|
87210
|
+
_this.type = type;
|
|
87211
|
+
return _this;
|
|
87212
|
+
}
|
|
87213
|
+
Object.defineProperty(Element3.prototype, "nodeType", {
|
|
87214
|
+
get: function() {
|
|
87215
|
+
return 1;
|
|
87216
|
+
},
|
|
87217
|
+
enumerable: false,
|
|
87218
|
+
configurable: true
|
|
87219
|
+
});
|
|
87220
|
+
Object.defineProperty(Element3.prototype, "tagName", {
|
|
87221
|
+
// DOM Level 1 aliases
|
|
87222
|
+
/**
|
|
87223
|
+
* Same as {@link name}.
|
|
87224
|
+
* [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
|
|
87225
|
+
*/
|
|
87226
|
+
get: function() {
|
|
87227
|
+
return this.name;
|
|
87228
|
+
},
|
|
87229
|
+
set: function(name2) {
|
|
87230
|
+
this.name = name2;
|
|
87231
|
+
},
|
|
87232
|
+
enumerable: false,
|
|
87233
|
+
configurable: true
|
|
87234
|
+
});
|
|
87235
|
+
Object.defineProperty(Element3.prototype, "attributes", {
|
|
87236
|
+
get: function() {
|
|
87237
|
+
var _this = this;
|
|
87238
|
+
return Object.keys(this.attribs).map(function(name2) {
|
|
87239
|
+
var _a, _b;
|
|
87240
|
+
return {
|
|
87241
|
+
name: name2,
|
|
87242
|
+
value: _this.attribs[name2],
|
|
87243
|
+
namespace: (_a = _this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name2],
|
|
87244
|
+
prefix: (_b = _this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name2]
|
|
87245
|
+
};
|
|
87246
|
+
});
|
|
87247
|
+
},
|
|
87248
|
+
enumerable: false,
|
|
87249
|
+
configurable: true
|
|
87250
|
+
});
|
|
87251
|
+
return Element3;
|
|
87252
|
+
}(NodeWithChildren)
|
|
87253
|
+
);
|
|
87254
|
+
node.Element = Element2;
|
|
87255
|
+
function isTag(node2) {
|
|
87256
|
+
return (0, domelementtype_1.isTag)(node2);
|
|
87257
|
+
}
|
|
87258
|
+
node.isTag = isTag;
|
|
87259
|
+
function isCDATA(node2) {
|
|
87260
|
+
return node2.type === domelementtype_1.ElementType.CDATA;
|
|
87261
|
+
}
|
|
87262
|
+
node.isCDATA = isCDATA;
|
|
87263
|
+
function isText(node2) {
|
|
87264
|
+
return node2.type === domelementtype_1.ElementType.Text;
|
|
87265
|
+
}
|
|
87266
|
+
node.isText = isText;
|
|
87267
|
+
function isComment(node2) {
|
|
87268
|
+
return node2.type === domelementtype_1.ElementType.Comment;
|
|
87269
|
+
}
|
|
87270
|
+
node.isComment = isComment;
|
|
87271
|
+
function isDirective(node2) {
|
|
87272
|
+
return node2.type === domelementtype_1.ElementType.Directive;
|
|
87273
|
+
}
|
|
87274
|
+
node.isDirective = isDirective;
|
|
87275
|
+
function isDocument(node2) {
|
|
87276
|
+
return node2.type === domelementtype_1.ElementType.Root;
|
|
87277
|
+
}
|
|
87278
|
+
node.isDocument = isDocument;
|
|
87279
|
+
function hasChildren(node2) {
|
|
87280
|
+
return Object.prototype.hasOwnProperty.call(node2, "children");
|
|
87281
|
+
}
|
|
87282
|
+
node.hasChildren = hasChildren;
|
|
87283
|
+
function cloneNode(node2, recursive) {
|
|
87284
|
+
if (recursive === void 0) {
|
|
87285
|
+
recursive = false;
|
|
87286
|
+
}
|
|
87287
|
+
var result;
|
|
87288
|
+
if (isText(node2)) {
|
|
87289
|
+
result = new Text(node2.data);
|
|
87290
|
+
} else if (isComment(node2)) {
|
|
87291
|
+
result = new Comment(node2.data);
|
|
87292
|
+
} else if (isTag(node2)) {
|
|
87293
|
+
var children = recursive ? cloneChildren(node2.children) : [];
|
|
87294
|
+
var clone_1 = new Element2(node2.name, __assign2({}, node2.attribs), children);
|
|
87295
|
+
children.forEach(function(child) {
|
|
87296
|
+
return child.parent = clone_1;
|
|
87297
|
+
});
|
|
87298
|
+
if (node2.namespace != null) {
|
|
87299
|
+
clone_1.namespace = node2.namespace;
|
|
87300
|
+
}
|
|
87301
|
+
if (node2["x-attribsNamespace"]) {
|
|
87302
|
+
clone_1["x-attribsNamespace"] = __assign2({}, node2["x-attribsNamespace"]);
|
|
87303
|
+
}
|
|
87304
|
+
if (node2["x-attribsPrefix"]) {
|
|
87305
|
+
clone_1["x-attribsPrefix"] = __assign2({}, node2["x-attribsPrefix"]);
|
|
87306
|
+
}
|
|
87307
|
+
result = clone_1;
|
|
87308
|
+
} else if (isCDATA(node2)) {
|
|
87309
|
+
var children = recursive ? cloneChildren(node2.children) : [];
|
|
87310
|
+
var clone_2 = new CDATA(children);
|
|
87311
|
+
children.forEach(function(child) {
|
|
87312
|
+
return child.parent = clone_2;
|
|
87313
|
+
});
|
|
87314
|
+
result = clone_2;
|
|
87315
|
+
} else if (isDocument(node2)) {
|
|
87316
|
+
var children = recursive ? cloneChildren(node2.children) : [];
|
|
87317
|
+
var clone_3 = new Document(children);
|
|
87318
|
+
children.forEach(function(child) {
|
|
87319
|
+
return child.parent = clone_3;
|
|
87320
|
+
});
|
|
87321
|
+
if (node2["x-mode"]) {
|
|
87322
|
+
clone_3["x-mode"] = node2["x-mode"];
|
|
87323
|
+
}
|
|
87324
|
+
result = clone_3;
|
|
87325
|
+
} else if (isDirective(node2)) {
|
|
87326
|
+
var instruction = new ProcessingInstruction(node2.name, node2.data);
|
|
87327
|
+
if (node2["x-name"] != null) {
|
|
87328
|
+
instruction["x-name"] = node2["x-name"];
|
|
87329
|
+
instruction["x-publicId"] = node2["x-publicId"];
|
|
87330
|
+
instruction["x-systemId"] = node2["x-systemId"];
|
|
87331
|
+
}
|
|
87332
|
+
result = instruction;
|
|
87333
|
+
} else {
|
|
87334
|
+
throw new Error("Not implemented yet: ".concat(node2.type));
|
|
87335
|
+
}
|
|
87336
|
+
result.startIndex = node2.startIndex;
|
|
87337
|
+
result.endIndex = node2.endIndex;
|
|
87338
|
+
if (node2.sourceCodeLocation != null) {
|
|
87339
|
+
result.sourceCodeLocation = node2.sourceCodeLocation;
|
|
87340
|
+
}
|
|
87341
|
+
return result;
|
|
87342
|
+
}
|
|
87343
|
+
node.cloneNode = cloneNode;
|
|
87344
|
+
function cloneChildren(childs) {
|
|
87345
|
+
var children = childs.map(function(child) {
|
|
87346
|
+
return cloneNode(child, true);
|
|
87347
|
+
});
|
|
87348
|
+
for (var i = 1; i < children.length; i++) {
|
|
87349
|
+
children[i].prev = children[i - 1];
|
|
87350
|
+
children[i - 1].next = children[i];
|
|
87351
|
+
}
|
|
87352
|
+
return children;
|
|
87353
|
+
}
|
|
87354
|
+
return node;
|
|
87355
|
+
}
|
|
87356
|
+
var hasRequiredLib$2;
|
|
87357
|
+
function requireLib$2() {
|
|
87358
|
+
if (hasRequiredLib$2) return lib$2;
|
|
87359
|
+
hasRequiredLib$2 = 1;
|
|
87360
|
+
(function(exports) {
|
|
87361
|
+
var __createBinding = lib$2 && lib$2.__createBinding || (Object.create ? function(o, m2, k2, k22) {
|
|
87362
|
+
if (k22 === void 0) k22 = k2;
|
|
87363
|
+
var desc = Object.getOwnPropertyDescriptor(m2, k2);
|
|
87364
|
+
if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
|
|
87365
|
+
desc = { enumerable: true, get: function() {
|
|
87366
|
+
return m2[k2];
|
|
87367
|
+
} };
|
|
87368
|
+
}
|
|
87369
|
+
Object.defineProperty(o, k22, desc);
|
|
87370
|
+
} : function(o, m2, k2, k22) {
|
|
87371
|
+
if (k22 === void 0) k22 = k2;
|
|
87372
|
+
o[k22] = m2[k2];
|
|
87373
|
+
});
|
|
87374
|
+
var __exportStar = lib$2 && lib$2.__exportStar || function(m2, exports2) {
|
|
87375
|
+
for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m2, p);
|
|
87376
|
+
};
|
|
87377
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
87378
|
+
exports.DomHandler = void 0;
|
|
87379
|
+
var domelementtype_1 = /* @__PURE__ */ requireLib$3();
|
|
87380
|
+
var node_js_1 = /* @__PURE__ */ requireNode();
|
|
87381
|
+
__exportStar(/* @__PURE__ */ requireNode(), exports);
|
|
87382
|
+
var defaultOpts = {
|
|
87383
|
+
withStartIndices: false,
|
|
87384
|
+
withEndIndices: false,
|
|
87385
|
+
xmlMode: false
|
|
87386
|
+
};
|
|
87387
|
+
var DomHandler = (
|
|
87388
|
+
/** @class */
|
|
87389
|
+
function() {
|
|
87390
|
+
function DomHandler2(callback, options, elementCB) {
|
|
87391
|
+
this.dom = [];
|
|
87392
|
+
this.root = new node_js_1.Document(this.dom);
|
|
87393
|
+
this.done = false;
|
|
87394
|
+
this.tagStack = [this.root];
|
|
87395
|
+
this.lastNode = null;
|
|
87396
|
+
this.parser = null;
|
|
87397
|
+
if (typeof options === "function") {
|
|
87398
|
+
elementCB = options;
|
|
87399
|
+
options = defaultOpts;
|
|
87400
|
+
}
|
|
87401
|
+
if (typeof callback === "object") {
|
|
87402
|
+
options = callback;
|
|
87403
|
+
callback = void 0;
|
|
87404
|
+
}
|
|
87405
|
+
this.callback = callback !== null && callback !== void 0 ? callback : null;
|
|
87406
|
+
this.options = options !== null && options !== void 0 ? options : defaultOpts;
|
|
87407
|
+
this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
|
|
87408
|
+
}
|
|
87409
|
+
DomHandler2.prototype.onparserinit = function(parser) {
|
|
87410
|
+
this.parser = parser;
|
|
87411
|
+
};
|
|
87412
|
+
DomHandler2.prototype.onreset = function() {
|
|
87413
|
+
this.dom = [];
|
|
87414
|
+
this.root = new node_js_1.Document(this.dom);
|
|
87415
|
+
this.done = false;
|
|
87416
|
+
this.tagStack = [this.root];
|
|
87417
|
+
this.lastNode = null;
|
|
87418
|
+
this.parser = null;
|
|
87419
|
+
};
|
|
87420
|
+
DomHandler2.prototype.onend = function() {
|
|
87421
|
+
if (this.done)
|
|
87422
|
+
return;
|
|
87423
|
+
this.done = true;
|
|
87424
|
+
this.parser = null;
|
|
87425
|
+
this.handleCallback(null);
|
|
87426
|
+
};
|
|
87427
|
+
DomHandler2.prototype.onerror = function(error) {
|
|
87428
|
+
this.handleCallback(error);
|
|
87429
|
+
};
|
|
87430
|
+
DomHandler2.prototype.onclosetag = function() {
|
|
87431
|
+
this.lastNode = null;
|
|
87432
|
+
var elem = this.tagStack.pop();
|
|
87433
|
+
if (this.options.withEndIndices) {
|
|
87434
|
+
elem.endIndex = this.parser.endIndex;
|
|
87435
|
+
}
|
|
87436
|
+
if (this.elementCB)
|
|
87437
|
+
this.elementCB(elem);
|
|
87438
|
+
};
|
|
87439
|
+
DomHandler2.prototype.onopentag = function(name2, attribs) {
|
|
87440
|
+
var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : void 0;
|
|
87441
|
+
var element2 = new node_js_1.Element(name2, attribs, void 0, type);
|
|
87442
|
+
this.addNode(element2);
|
|
87443
|
+
this.tagStack.push(element2);
|
|
87444
|
+
};
|
|
87445
|
+
DomHandler2.prototype.ontext = function(data) {
|
|
87446
|
+
var lastNode = this.lastNode;
|
|
87447
|
+
if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {
|
|
87448
|
+
lastNode.data += data;
|
|
87449
|
+
if (this.options.withEndIndices) {
|
|
87450
|
+
lastNode.endIndex = this.parser.endIndex;
|
|
87451
|
+
}
|
|
87452
|
+
} else {
|
|
87453
|
+
var node2 = new node_js_1.Text(data);
|
|
87454
|
+
this.addNode(node2);
|
|
87455
|
+
this.lastNode = node2;
|
|
87456
|
+
}
|
|
87457
|
+
};
|
|
87458
|
+
DomHandler2.prototype.oncomment = function(data) {
|
|
87459
|
+
if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {
|
|
87460
|
+
this.lastNode.data += data;
|
|
87461
|
+
return;
|
|
87462
|
+
}
|
|
87463
|
+
var node2 = new node_js_1.Comment(data);
|
|
87464
|
+
this.addNode(node2);
|
|
87465
|
+
this.lastNode = node2;
|
|
87466
|
+
};
|
|
87467
|
+
DomHandler2.prototype.oncommentend = function() {
|
|
87468
|
+
this.lastNode = null;
|
|
87469
|
+
};
|
|
87470
|
+
DomHandler2.prototype.oncdatastart = function() {
|
|
87471
|
+
var text2 = new node_js_1.Text("");
|
|
87472
|
+
var node2 = new node_js_1.CDATA([text2]);
|
|
87473
|
+
this.addNode(node2);
|
|
87474
|
+
text2.parent = node2;
|
|
87475
|
+
this.lastNode = text2;
|
|
87476
|
+
};
|
|
87477
|
+
DomHandler2.prototype.oncdataend = function() {
|
|
87478
|
+
this.lastNode = null;
|
|
87479
|
+
};
|
|
87480
|
+
DomHandler2.prototype.onprocessinginstruction = function(name2, data) {
|
|
87481
|
+
var node2 = new node_js_1.ProcessingInstruction(name2, data);
|
|
87482
|
+
this.addNode(node2);
|
|
87483
|
+
};
|
|
87484
|
+
DomHandler2.prototype.handleCallback = function(error) {
|
|
87485
|
+
if (typeof this.callback === "function") {
|
|
87486
|
+
this.callback(error, this.dom);
|
|
87487
|
+
} else if (error) {
|
|
87488
|
+
throw error;
|
|
87489
|
+
}
|
|
87490
|
+
};
|
|
87491
|
+
DomHandler2.prototype.addNode = function(node2) {
|
|
87492
|
+
var parent = this.tagStack[this.tagStack.length - 1];
|
|
87493
|
+
var previousSibling = parent.children[parent.children.length - 1];
|
|
87494
|
+
if (this.options.withStartIndices) {
|
|
87495
|
+
node2.startIndex = this.parser.startIndex;
|
|
87496
|
+
}
|
|
87497
|
+
if (this.options.withEndIndices) {
|
|
87498
|
+
node2.endIndex = this.parser.endIndex;
|
|
87499
|
+
}
|
|
87500
|
+
parent.children.push(node2);
|
|
87501
|
+
if (previousSibling) {
|
|
87502
|
+
node2.prev = previousSibling;
|
|
87503
|
+
previousSibling.next = node2;
|
|
87504
|
+
}
|
|
87505
|
+
node2.parent = parent;
|
|
87506
|
+
this.lastNode = null;
|
|
87507
|
+
};
|
|
87508
|
+
return DomHandler2;
|
|
87509
|
+
}()
|
|
87510
|
+
);
|
|
87511
|
+
exports.DomHandler = DomHandler;
|
|
87512
|
+
exports.default = DomHandler;
|
|
87513
|
+
})(lib$2);
|
|
87514
|
+
return lib$2;
|
|
87515
|
+
}
|
|
87516
|
+
var constants = {};
|
|
87517
|
+
var hasRequiredConstants;
|
|
87518
|
+
function requireConstants() {
|
|
87519
|
+
if (hasRequiredConstants) return constants;
|
|
87520
|
+
hasRequiredConstants = 1;
|
|
87521
|
+
(function(exports) {
|
|
87522
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
87523
|
+
exports.CARRIAGE_RETURN_PLACEHOLDER_REGEX = exports.CARRIAGE_RETURN_PLACEHOLDER = exports.CARRIAGE_RETURN_REGEX = exports.CARRIAGE_RETURN = exports.CASE_SENSITIVE_TAG_NAMES_MAP = exports.CASE_SENSITIVE_TAG_NAMES = void 0;
|
|
87524
|
+
exports.CASE_SENSITIVE_TAG_NAMES = [
|
|
87525
|
+
"animateMotion",
|
|
87526
|
+
"animateTransform",
|
|
87527
|
+
"clipPath",
|
|
87528
|
+
"feBlend",
|
|
87529
|
+
"feColorMatrix",
|
|
87530
|
+
"feComponentTransfer",
|
|
87531
|
+
"feComposite",
|
|
87532
|
+
"feConvolveMatrix",
|
|
87533
|
+
"feDiffuseLighting",
|
|
87534
|
+
"feDisplacementMap",
|
|
87535
|
+
"feDropShadow",
|
|
87536
|
+
"feFlood",
|
|
87537
|
+
"feFuncA",
|
|
87538
|
+
"feFuncB",
|
|
87539
|
+
"feFuncG",
|
|
87540
|
+
"feFuncR",
|
|
87541
|
+
"feGaussianBlur",
|
|
87542
|
+
"feImage",
|
|
87543
|
+
"feMerge",
|
|
87544
|
+
"feMergeNode",
|
|
87545
|
+
"feMorphology",
|
|
87546
|
+
"feOffset",
|
|
87547
|
+
"fePointLight",
|
|
87548
|
+
"feSpecularLighting",
|
|
87549
|
+
"feSpotLight",
|
|
87550
|
+
"feTile",
|
|
87551
|
+
"feTurbulence",
|
|
87552
|
+
"foreignObject",
|
|
87553
|
+
"linearGradient",
|
|
87554
|
+
"radialGradient",
|
|
87555
|
+
"textPath"
|
|
87556
|
+
];
|
|
87557
|
+
exports.CASE_SENSITIVE_TAG_NAMES_MAP = exports.CASE_SENSITIVE_TAG_NAMES.reduce(function(accumulator, tagName) {
|
|
87558
|
+
accumulator[tagName.toLowerCase()] = tagName;
|
|
87559
|
+
return accumulator;
|
|
87560
|
+
}, {});
|
|
87561
|
+
exports.CARRIAGE_RETURN = "\r";
|
|
87562
|
+
exports.CARRIAGE_RETURN_REGEX = new RegExp(exports.CARRIAGE_RETURN, "g");
|
|
87563
|
+
exports.CARRIAGE_RETURN_PLACEHOLDER = "__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_".concat(Date.now(), "__");
|
|
87564
|
+
exports.CARRIAGE_RETURN_PLACEHOLDER_REGEX = new RegExp(exports.CARRIAGE_RETURN_PLACEHOLDER, "g");
|
|
87565
|
+
})(constants);
|
|
87566
|
+
return constants;
|
|
87567
|
+
}
|
|
87568
|
+
var hasRequiredUtilities$1;
|
|
87569
|
+
function requireUtilities$1() {
|
|
87570
|
+
if (hasRequiredUtilities$1) return utilities$1;
|
|
87571
|
+
hasRequiredUtilities$1 = 1;
|
|
87572
|
+
Object.defineProperty(utilities$1, "__esModule", { value: true });
|
|
87573
|
+
utilities$1.formatAttributes = formatAttributes;
|
|
87574
|
+
utilities$1.escapeSpecialCharacters = escapeSpecialCharacters;
|
|
87575
|
+
utilities$1.revertEscapedCharacters = revertEscapedCharacters;
|
|
87576
|
+
utilities$1.formatDOM = formatDOM;
|
|
87577
|
+
var domhandler_1 = /* @__PURE__ */ requireLib$2();
|
|
87578
|
+
var constants_1 = requireConstants();
|
|
87579
|
+
function getCaseSensitiveTagName(tagName) {
|
|
87580
|
+
return constants_1.CASE_SENSITIVE_TAG_NAMES_MAP[tagName];
|
|
87581
|
+
}
|
|
87582
|
+
function formatAttributes(attributes) {
|
|
87583
|
+
var map = {};
|
|
87584
|
+
var index2 = 0;
|
|
87585
|
+
var attributesLength = attributes.length;
|
|
87586
|
+
for (; index2 < attributesLength; index2++) {
|
|
87587
|
+
var attribute = attributes[index2];
|
|
87588
|
+
map[attribute.name] = attribute.value;
|
|
87589
|
+
}
|
|
87590
|
+
return map;
|
|
87591
|
+
}
|
|
87592
|
+
function formatTagName(tagName) {
|
|
87593
|
+
tagName = tagName.toLowerCase();
|
|
87594
|
+
var caseSensitiveTagName = getCaseSensitiveTagName(tagName);
|
|
87595
|
+
if (caseSensitiveTagName) {
|
|
87596
|
+
return caseSensitiveTagName;
|
|
87597
|
+
}
|
|
87598
|
+
return tagName;
|
|
87599
|
+
}
|
|
87600
|
+
function escapeSpecialCharacters(html2) {
|
|
87601
|
+
return html2.replace(constants_1.CARRIAGE_RETURN_REGEX, constants_1.CARRIAGE_RETURN_PLACEHOLDER);
|
|
87602
|
+
}
|
|
87603
|
+
function revertEscapedCharacters(text2) {
|
|
87604
|
+
return text2.replace(constants_1.CARRIAGE_RETURN_PLACEHOLDER_REGEX, constants_1.CARRIAGE_RETURN);
|
|
87605
|
+
}
|
|
87606
|
+
function formatDOM(nodes, parent, directive) {
|
|
87607
|
+
if (parent === void 0) {
|
|
87608
|
+
parent = null;
|
|
87609
|
+
}
|
|
87610
|
+
var domNodes = [];
|
|
87611
|
+
var current;
|
|
87612
|
+
var index2 = 0;
|
|
87613
|
+
var nodesLength = nodes.length;
|
|
87614
|
+
for (; index2 < nodesLength; index2++) {
|
|
87615
|
+
var node2 = nodes[index2];
|
|
87616
|
+
switch (node2.nodeType) {
|
|
87617
|
+
case 1: {
|
|
87618
|
+
var tagName = formatTagName(node2.nodeName);
|
|
87619
|
+
current = new domhandler_1.Element(tagName, formatAttributes(node2.attributes));
|
|
87620
|
+
current.children = formatDOM(
|
|
87621
|
+
// template children are on content
|
|
87622
|
+
tagName === "template" ? node2.content.childNodes : node2.childNodes,
|
|
87623
|
+
current
|
|
87624
|
+
);
|
|
87625
|
+
break;
|
|
87626
|
+
}
|
|
87627
|
+
case 3:
|
|
87628
|
+
current = new domhandler_1.Text(revertEscapedCharacters(node2.nodeValue));
|
|
87629
|
+
break;
|
|
87630
|
+
case 8:
|
|
87631
|
+
current = new domhandler_1.Comment(node2.nodeValue);
|
|
87632
|
+
break;
|
|
87633
|
+
default:
|
|
87634
|
+
continue;
|
|
87635
|
+
}
|
|
87636
|
+
var prev2 = domNodes[index2 - 1] || null;
|
|
87637
|
+
if (prev2) {
|
|
87638
|
+
prev2.next = current;
|
|
87639
|
+
}
|
|
87640
|
+
current.parent = parent;
|
|
87641
|
+
current.prev = prev2;
|
|
87642
|
+
current.next = null;
|
|
87643
|
+
domNodes.push(current);
|
|
87644
|
+
}
|
|
87645
|
+
if (directive) {
|
|
87646
|
+
current = new domhandler_1.ProcessingInstruction(directive.substring(0, directive.indexOf(" ")).toLowerCase(), directive);
|
|
87647
|
+
current.next = domNodes[0] || null;
|
|
87648
|
+
current.parent = parent;
|
|
87649
|
+
domNodes.unshift(current);
|
|
87650
|
+
if (domNodes[1]) {
|
|
87651
|
+
domNodes[1].prev = domNodes[0];
|
|
87652
|
+
}
|
|
87653
|
+
}
|
|
87654
|
+
return domNodes;
|
|
87655
|
+
}
|
|
87656
|
+
return utilities$1;
|
|
87657
|
+
}
|
|
87658
|
+
var hasRequiredDomparser;
|
|
87659
|
+
function requireDomparser() {
|
|
87660
|
+
if (hasRequiredDomparser) return domparser;
|
|
87661
|
+
hasRequiredDomparser = 1;
|
|
87662
|
+
Object.defineProperty(domparser, "__esModule", { value: true });
|
|
87663
|
+
domparser.default = domparser$1;
|
|
87664
|
+
var utilities_1 = requireUtilities$1();
|
|
87665
|
+
var HTML = "html";
|
|
87666
|
+
var HEAD = "head";
|
|
87667
|
+
var BODY = "body";
|
|
87668
|
+
var FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/;
|
|
87669
|
+
var HEAD_TAG_REGEX = /<head[^]*>/i;
|
|
87670
|
+
var BODY_TAG_REGEX = /<body[^]*>/i;
|
|
87671
|
+
var parseFromDocument = function(html2, tagName) {
|
|
87672
|
+
throw new Error("This browser does not support `document.implementation.createHTMLDocument`");
|
|
87673
|
+
};
|
|
87674
|
+
var parseFromString = function(html2, tagName) {
|
|
87675
|
+
throw new Error("This browser does not support `DOMParser.prototype.parseFromString`");
|
|
87676
|
+
};
|
|
87677
|
+
var DOMParser = typeof window === "object" && window.DOMParser;
|
|
87678
|
+
if (typeof DOMParser === "function") {
|
|
87679
|
+
var domParser_1 = new DOMParser();
|
|
87680
|
+
var mimeType_1 = "text/html";
|
|
87681
|
+
parseFromString = function(html2, tagName) {
|
|
87682
|
+
if (tagName) {
|
|
87683
|
+
html2 = "<".concat(tagName, ">").concat(html2, "</").concat(tagName, ">");
|
|
87684
|
+
}
|
|
87685
|
+
return domParser_1.parseFromString(html2, mimeType_1);
|
|
87686
|
+
};
|
|
87687
|
+
parseFromDocument = parseFromString;
|
|
87688
|
+
}
|
|
87689
|
+
if (typeof document === "object" && document.implementation) {
|
|
87690
|
+
var htmlDocument_1 = document.implementation.createHTMLDocument();
|
|
87691
|
+
parseFromDocument = function(html2, tagName) {
|
|
87692
|
+
if (tagName) {
|
|
87693
|
+
var element2 = htmlDocument_1.documentElement.querySelector(tagName);
|
|
87694
|
+
if (element2) {
|
|
87695
|
+
element2.innerHTML = html2;
|
|
87696
|
+
}
|
|
87697
|
+
return htmlDocument_1;
|
|
87698
|
+
}
|
|
87699
|
+
htmlDocument_1.documentElement.innerHTML = html2;
|
|
87700
|
+
return htmlDocument_1;
|
|
87701
|
+
};
|
|
87702
|
+
}
|
|
87703
|
+
var template = typeof document === "object" && document.createElement("template");
|
|
87704
|
+
var parseFromTemplate;
|
|
87705
|
+
if (template && template.content) {
|
|
87706
|
+
parseFromTemplate = function(html2) {
|
|
87707
|
+
template.innerHTML = html2;
|
|
87708
|
+
return template.content.childNodes;
|
|
87709
|
+
};
|
|
87710
|
+
}
|
|
87711
|
+
function domparser$1(html2) {
|
|
87712
|
+
var _a, _b;
|
|
87713
|
+
html2 = (0, utilities_1.escapeSpecialCharacters)(html2);
|
|
87714
|
+
var match2 = html2.match(FIRST_TAG_REGEX);
|
|
87715
|
+
var firstTagName = match2 && match2[1] ? match2[1].toLowerCase() : "";
|
|
87716
|
+
switch (firstTagName) {
|
|
87717
|
+
case HTML: {
|
|
87718
|
+
var doc = parseFromString(html2);
|
|
87719
|
+
if (!HEAD_TAG_REGEX.test(html2)) {
|
|
87720
|
+
var element2 = doc.querySelector(HEAD);
|
|
87721
|
+
(_a = element2 === null || element2 === void 0 ? void 0 : element2.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(element2);
|
|
87722
|
+
}
|
|
87723
|
+
if (!BODY_TAG_REGEX.test(html2)) {
|
|
87724
|
+
var element2 = doc.querySelector(BODY);
|
|
87725
|
+
(_b = element2 === null || element2 === void 0 ? void 0 : element2.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(element2);
|
|
87726
|
+
}
|
|
87727
|
+
return doc.querySelectorAll(HTML);
|
|
87728
|
+
}
|
|
87729
|
+
case HEAD:
|
|
87730
|
+
case BODY: {
|
|
87731
|
+
var elements = parseFromDocument(html2).querySelectorAll(firstTagName);
|
|
87732
|
+
if (BODY_TAG_REGEX.test(html2) && HEAD_TAG_REGEX.test(html2)) {
|
|
87733
|
+
return elements[0].parentNode.childNodes;
|
|
87734
|
+
}
|
|
87735
|
+
return elements;
|
|
87736
|
+
}
|
|
87737
|
+
// low-level tag or text
|
|
87738
|
+
default: {
|
|
87739
|
+
if (parseFromTemplate) {
|
|
87740
|
+
return parseFromTemplate(html2);
|
|
87741
|
+
}
|
|
87742
|
+
var element2 = parseFromDocument(html2, BODY).querySelector(BODY);
|
|
87743
|
+
return element2.childNodes;
|
|
87744
|
+
}
|
|
87745
|
+
}
|
|
87746
|
+
}
|
|
87747
|
+
return domparser;
|
|
87748
|
+
}
|
|
87749
|
+
var hasRequiredHtmlToDom;
|
|
87750
|
+
function requireHtmlToDom() {
|
|
87751
|
+
if (hasRequiredHtmlToDom) return htmlToDom;
|
|
87752
|
+
hasRequiredHtmlToDom = 1;
|
|
87753
|
+
var __importDefault = htmlToDom && htmlToDom.__importDefault || function(mod) {
|
|
87754
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
87755
|
+
};
|
|
87756
|
+
Object.defineProperty(htmlToDom, "__esModule", { value: true });
|
|
87757
|
+
htmlToDom.default = HTMLDOMParser;
|
|
87758
|
+
var domparser_1 = __importDefault(requireDomparser());
|
|
87759
|
+
var utilities_1 = requireUtilities$1();
|
|
87760
|
+
var DIRECTIVE_REGEX = /<(![a-zA-Z\s]+)>/;
|
|
87761
|
+
function HTMLDOMParser(html2) {
|
|
87762
|
+
if (typeof html2 !== "string") {
|
|
87763
|
+
throw new TypeError("First argument must be a string");
|
|
87764
|
+
}
|
|
87765
|
+
if (!html2) {
|
|
87766
|
+
return [];
|
|
87767
|
+
}
|
|
87768
|
+
var match2 = html2.match(DIRECTIVE_REGEX);
|
|
87769
|
+
var directive = match2 ? match2[1] : void 0;
|
|
87770
|
+
return (0, utilities_1.formatDOM)((0, domparser_1.default)(html2), null, directive);
|
|
87771
|
+
}
|
|
87772
|
+
return htmlToDom;
|
|
87773
|
+
}
|
|
87774
|
+
var attributesToProps = {};
|
|
87775
|
+
var lib = {};
|
|
87776
|
+
var possibleStandardNamesOptimized = {};
|
|
87777
|
+
var hasRequiredPossibleStandardNamesOptimized;
|
|
87778
|
+
function requirePossibleStandardNamesOptimized() {
|
|
87779
|
+
if (hasRequiredPossibleStandardNamesOptimized) return possibleStandardNamesOptimized;
|
|
87780
|
+
hasRequiredPossibleStandardNamesOptimized = 1;
|
|
87781
|
+
var SAME = 0;
|
|
87782
|
+
possibleStandardNamesOptimized.SAME = SAME;
|
|
87783
|
+
var CAMELCASE = 1;
|
|
87784
|
+
possibleStandardNamesOptimized.CAMELCASE = CAMELCASE;
|
|
87785
|
+
possibleStandardNamesOptimized.possibleStandardNames = {
|
|
87786
|
+
accept: 0,
|
|
87787
|
+
acceptCharset: 1,
|
|
87788
|
+
"accept-charset": "acceptCharset",
|
|
87789
|
+
accessKey: 1,
|
|
87790
|
+
action: 0,
|
|
87791
|
+
allowFullScreen: 1,
|
|
87792
|
+
alt: 0,
|
|
87793
|
+
as: 0,
|
|
87794
|
+
async: 0,
|
|
87795
|
+
autoCapitalize: 1,
|
|
87796
|
+
autoComplete: 1,
|
|
87797
|
+
autoCorrect: 1,
|
|
87798
|
+
autoFocus: 1,
|
|
87799
|
+
autoPlay: 1,
|
|
87800
|
+
autoSave: 1,
|
|
87801
|
+
capture: 0,
|
|
87802
|
+
cellPadding: 1,
|
|
87803
|
+
cellSpacing: 1,
|
|
87804
|
+
challenge: 0,
|
|
87805
|
+
charSet: 1,
|
|
87806
|
+
checked: 0,
|
|
87807
|
+
children: 0,
|
|
87808
|
+
cite: 0,
|
|
87809
|
+
class: "className",
|
|
87810
|
+
classID: 1,
|
|
87811
|
+
className: 1,
|
|
87812
|
+
cols: 0,
|
|
87813
|
+
colSpan: 1,
|
|
87814
|
+
content: 0,
|
|
87815
|
+
contentEditable: 1,
|
|
87816
|
+
contextMenu: 1,
|
|
87817
|
+
controls: 0,
|
|
87818
|
+
controlsList: 1,
|
|
87819
|
+
coords: 0,
|
|
87820
|
+
crossOrigin: 1,
|
|
87821
|
+
dangerouslySetInnerHTML: 1,
|
|
87822
|
+
data: 0,
|
|
87823
|
+
dateTime: 1,
|
|
87824
|
+
default: 0,
|
|
87825
|
+
defaultChecked: 1,
|
|
87826
|
+
defaultValue: 1,
|
|
87827
|
+
defer: 0,
|
|
87828
|
+
dir: 0,
|
|
87829
|
+
disabled: 0,
|
|
87830
|
+
disablePictureInPicture: 1,
|
|
87831
|
+
disableRemotePlayback: 1,
|
|
87832
|
+
download: 0,
|
|
87833
|
+
draggable: 0,
|
|
87834
|
+
encType: 1,
|
|
87835
|
+
enterKeyHint: 1,
|
|
87836
|
+
for: "htmlFor",
|
|
87837
|
+
form: 0,
|
|
87838
|
+
formMethod: 1,
|
|
87839
|
+
formAction: 1,
|
|
87840
|
+
formEncType: 1,
|
|
87841
|
+
formNoValidate: 1,
|
|
87842
|
+
formTarget: 1,
|
|
87843
|
+
frameBorder: 1,
|
|
87844
|
+
headers: 0,
|
|
87845
|
+
height: 0,
|
|
87846
|
+
hidden: 0,
|
|
87847
|
+
high: 0,
|
|
87848
|
+
href: 0,
|
|
87849
|
+
hrefLang: 1,
|
|
87850
|
+
htmlFor: 1,
|
|
87851
|
+
httpEquiv: 1,
|
|
87852
|
+
"http-equiv": "httpEquiv",
|
|
87853
|
+
icon: 0,
|
|
87854
|
+
id: 0,
|
|
87855
|
+
innerHTML: 1,
|
|
87856
|
+
inputMode: 1,
|
|
87857
|
+
integrity: 0,
|
|
87858
|
+
is: 0,
|
|
87859
|
+
itemID: 1,
|
|
87860
|
+
itemProp: 1,
|
|
87861
|
+
itemRef: 1,
|
|
87862
|
+
itemScope: 1,
|
|
87863
|
+
itemType: 1,
|
|
87864
|
+
keyParams: 1,
|
|
87865
|
+
keyType: 1,
|
|
87866
|
+
kind: 0,
|
|
87867
|
+
label: 0,
|
|
87868
|
+
lang: 0,
|
|
87869
|
+
list: 0,
|
|
87870
|
+
loop: 0,
|
|
87871
|
+
low: 0,
|
|
87872
|
+
manifest: 0,
|
|
87873
|
+
marginWidth: 1,
|
|
87874
|
+
marginHeight: 1,
|
|
87875
|
+
max: 0,
|
|
87876
|
+
maxLength: 1,
|
|
87877
|
+
media: 0,
|
|
87878
|
+
mediaGroup: 1,
|
|
87879
|
+
method: 0,
|
|
87880
|
+
min: 0,
|
|
87881
|
+
minLength: 1,
|
|
87882
|
+
multiple: 0,
|
|
87883
|
+
muted: 0,
|
|
87884
|
+
name: 0,
|
|
87885
|
+
noModule: 1,
|
|
87886
|
+
nonce: 0,
|
|
87887
|
+
noValidate: 1,
|
|
87888
|
+
open: 0,
|
|
87889
|
+
optimum: 0,
|
|
87890
|
+
pattern: 0,
|
|
87891
|
+
placeholder: 0,
|
|
87892
|
+
playsInline: 1,
|
|
87893
|
+
poster: 0,
|
|
87894
|
+
preload: 0,
|
|
87895
|
+
profile: 0,
|
|
87896
|
+
radioGroup: 1,
|
|
87897
|
+
readOnly: 1,
|
|
87898
|
+
referrerPolicy: 1,
|
|
87899
|
+
rel: 0,
|
|
87900
|
+
required: 0,
|
|
87901
|
+
reversed: 0,
|
|
87902
|
+
role: 0,
|
|
87903
|
+
rows: 0,
|
|
87904
|
+
rowSpan: 1,
|
|
87905
|
+
sandbox: 0,
|
|
87906
|
+
scope: 0,
|
|
87907
|
+
scoped: 0,
|
|
87908
|
+
scrolling: 0,
|
|
87909
|
+
seamless: 0,
|
|
87910
|
+
selected: 0,
|
|
87911
|
+
shape: 0,
|
|
87912
|
+
size: 0,
|
|
87913
|
+
sizes: 0,
|
|
87914
|
+
span: 0,
|
|
87915
|
+
spellCheck: 1,
|
|
87916
|
+
src: 0,
|
|
87917
|
+
srcDoc: 1,
|
|
87918
|
+
srcLang: 1,
|
|
87919
|
+
srcSet: 1,
|
|
87920
|
+
start: 0,
|
|
87921
|
+
step: 0,
|
|
87922
|
+
style: 0,
|
|
87923
|
+
summary: 0,
|
|
87924
|
+
tabIndex: 1,
|
|
87925
|
+
target: 0,
|
|
87926
|
+
title: 0,
|
|
87927
|
+
type: 0,
|
|
87928
|
+
useMap: 1,
|
|
87929
|
+
value: 0,
|
|
87930
|
+
width: 0,
|
|
87931
|
+
wmode: 0,
|
|
87932
|
+
wrap: 0,
|
|
87933
|
+
about: 0,
|
|
87934
|
+
accentHeight: 1,
|
|
87935
|
+
"accent-height": "accentHeight",
|
|
87936
|
+
accumulate: 0,
|
|
87937
|
+
additive: 0,
|
|
87938
|
+
alignmentBaseline: 1,
|
|
87939
|
+
"alignment-baseline": "alignmentBaseline",
|
|
87940
|
+
allowReorder: 1,
|
|
87941
|
+
alphabetic: 0,
|
|
87942
|
+
amplitude: 0,
|
|
87943
|
+
arabicForm: 1,
|
|
87944
|
+
"arabic-form": "arabicForm",
|
|
87945
|
+
ascent: 0,
|
|
87946
|
+
attributeName: 1,
|
|
87947
|
+
attributeType: 1,
|
|
87948
|
+
autoReverse: 1,
|
|
87949
|
+
azimuth: 0,
|
|
87950
|
+
baseFrequency: 1,
|
|
87951
|
+
baselineShift: 1,
|
|
87952
|
+
"baseline-shift": "baselineShift",
|
|
87953
|
+
baseProfile: 1,
|
|
87954
|
+
bbox: 0,
|
|
87955
|
+
begin: 0,
|
|
87956
|
+
bias: 0,
|
|
87957
|
+
by: 0,
|
|
87958
|
+
calcMode: 1,
|
|
87959
|
+
capHeight: 1,
|
|
87960
|
+
"cap-height": "capHeight",
|
|
87961
|
+
clip: 0,
|
|
87962
|
+
clipPath: 1,
|
|
87963
|
+
"clip-path": "clipPath",
|
|
87964
|
+
clipPathUnits: 1,
|
|
87965
|
+
clipRule: 1,
|
|
87966
|
+
"clip-rule": "clipRule",
|
|
87967
|
+
color: 0,
|
|
87968
|
+
colorInterpolation: 1,
|
|
87969
|
+
"color-interpolation": "colorInterpolation",
|
|
87970
|
+
colorInterpolationFilters: 1,
|
|
87971
|
+
"color-interpolation-filters": "colorInterpolationFilters",
|
|
87972
|
+
colorProfile: 1,
|
|
87973
|
+
"color-profile": "colorProfile",
|
|
87974
|
+
colorRendering: 1,
|
|
87975
|
+
"color-rendering": "colorRendering",
|
|
87976
|
+
contentScriptType: 1,
|
|
87977
|
+
contentStyleType: 1,
|
|
87978
|
+
cursor: 0,
|
|
87979
|
+
cx: 0,
|
|
87980
|
+
cy: 0,
|
|
87981
|
+
d: 0,
|
|
87982
|
+
datatype: 0,
|
|
87983
|
+
decelerate: 0,
|
|
87984
|
+
descent: 0,
|
|
87985
|
+
diffuseConstant: 1,
|
|
87986
|
+
direction: 0,
|
|
87987
|
+
display: 0,
|
|
87988
|
+
divisor: 0,
|
|
87989
|
+
dominantBaseline: 1,
|
|
87990
|
+
"dominant-baseline": "dominantBaseline",
|
|
87991
|
+
dur: 0,
|
|
87992
|
+
dx: 0,
|
|
87993
|
+
dy: 0,
|
|
87994
|
+
edgeMode: 1,
|
|
87995
|
+
elevation: 0,
|
|
87996
|
+
enableBackground: 1,
|
|
87997
|
+
"enable-background": "enableBackground",
|
|
87998
|
+
end: 0,
|
|
87999
|
+
exponent: 0,
|
|
88000
|
+
externalResourcesRequired: 1,
|
|
88001
|
+
fill: 0,
|
|
88002
|
+
fillOpacity: 1,
|
|
88003
|
+
"fill-opacity": "fillOpacity",
|
|
88004
|
+
fillRule: 1,
|
|
88005
|
+
"fill-rule": "fillRule",
|
|
88006
|
+
filter: 0,
|
|
88007
|
+
filterRes: 1,
|
|
88008
|
+
filterUnits: 1,
|
|
88009
|
+
floodOpacity: 1,
|
|
88010
|
+
"flood-opacity": "floodOpacity",
|
|
88011
|
+
floodColor: 1,
|
|
88012
|
+
"flood-color": "floodColor",
|
|
88013
|
+
focusable: 0,
|
|
88014
|
+
fontFamily: 1,
|
|
88015
|
+
"font-family": "fontFamily",
|
|
88016
|
+
fontSize: 1,
|
|
88017
|
+
"font-size": "fontSize",
|
|
88018
|
+
fontSizeAdjust: 1,
|
|
88019
|
+
"font-size-adjust": "fontSizeAdjust",
|
|
88020
|
+
fontStretch: 1,
|
|
88021
|
+
"font-stretch": "fontStretch",
|
|
88022
|
+
fontStyle: 1,
|
|
88023
|
+
"font-style": "fontStyle",
|
|
88024
|
+
fontVariant: 1,
|
|
88025
|
+
"font-variant": "fontVariant",
|
|
88026
|
+
fontWeight: 1,
|
|
88027
|
+
"font-weight": "fontWeight",
|
|
88028
|
+
format: 0,
|
|
88029
|
+
from: 0,
|
|
88030
|
+
fx: 0,
|
|
88031
|
+
fy: 0,
|
|
88032
|
+
g1: 0,
|
|
88033
|
+
g2: 0,
|
|
88034
|
+
glyphName: 1,
|
|
88035
|
+
"glyph-name": "glyphName",
|
|
88036
|
+
glyphOrientationHorizontal: 1,
|
|
88037
|
+
"glyph-orientation-horizontal": "glyphOrientationHorizontal",
|
|
88038
|
+
glyphOrientationVertical: 1,
|
|
88039
|
+
"glyph-orientation-vertical": "glyphOrientationVertical",
|
|
88040
|
+
glyphRef: 1,
|
|
88041
|
+
gradientTransform: 1,
|
|
88042
|
+
gradientUnits: 1,
|
|
88043
|
+
hanging: 0,
|
|
88044
|
+
horizAdvX: 1,
|
|
88045
|
+
"horiz-adv-x": "horizAdvX",
|
|
88046
|
+
horizOriginX: 1,
|
|
88047
|
+
"horiz-origin-x": "horizOriginX",
|
|
88048
|
+
ideographic: 0,
|
|
88049
|
+
imageRendering: 1,
|
|
88050
|
+
"image-rendering": "imageRendering",
|
|
88051
|
+
in2: 0,
|
|
88052
|
+
in: 0,
|
|
88053
|
+
inlist: 0,
|
|
88054
|
+
intercept: 0,
|
|
88055
|
+
k1: 0,
|
|
88056
|
+
k2: 0,
|
|
88057
|
+
k3: 0,
|
|
88058
|
+
k4: 0,
|
|
88059
|
+
k: 0,
|
|
88060
|
+
kernelMatrix: 1,
|
|
88061
|
+
kernelUnitLength: 1,
|
|
88062
|
+
kerning: 0,
|
|
88063
|
+
keyPoints: 1,
|
|
88064
|
+
keySplines: 1,
|
|
88065
|
+
keyTimes: 1,
|
|
88066
|
+
lengthAdjust: 1,
|
|
88067
|
+
letterSpacing: 1,
|
|
88068
|
+
"letter-spacing": "letterSpacing",
|
|
88069
|
+
lightingColor: 1,
|
|
88070
|
+
"lighting-color": "lightingColor",
|
|
88071
|
+
limitingConeAngle: 1,
|
|
88072
|
+
local: 0,
|
|
88073
|
+
markerEnd: 1,
|
|
88074
|
+
"marker-end": "markerEnd",
|
|
88075
|
+
markerHeight: 1,
|
|
88076
|
+
markerMid: 1,
|
|
88077
|
+
"marker-mid": "markerMid",
|
|
88078
|
+
markerStart: 1,
|
|
88079
|
+
"marker-start": "markerStart",
|
|
88080
|
+
markerUnits: 1,
|
|
88081
|
+
markerWidth: 1,
|
|
88082
|
+
mask: 0,
|
|
88083
|
+
maskContentUnits: 1,
|
|
88084
|
+
maskUnits: 1,
|
|
88085
|
+
mathematical: 0,
|
|
88086
|
+
mode: 0,
|
|
88087
|
+
numOctaves: 1,
|
|
88088
|
+
offset: 0,
|
|
88089
|
+
opacity: 0,
|
|
88090
|
+
operator: 0,
|
|
88091
|
+
order: 0,
|
|
88092
|
+
orient: 0,
|
|
88093
|
+
orientation: 0,
|
|
88094
|
+
origin: 0,
|
|
88095
|
+
overflow: 0,
|
|
88096
|
+
overlinePosition: 1,
|
|
88097
|
+
"overline-position": "overlinePosition",
|
|
88098
|
+
overlineThickness: 1,
|
|
88099
|
+
"overline-thickness": "overlineThickness",
|
|
88100
|
+
paintOrder: 1,
|
|
88101
|
+
"paint-order": "paintOrder",
|
|
88102
|
+
panose1: 0,
|
|
88103
|
+
"panose-1": "panose1",
|
|
88104
|
+
pathLength: 1,
|
|
88105
|
+
patternContentUnits: 1,
|
|
88106
|
+
patternTransform: 1,
|
|
88107
|
+
patternUnits: 1,
|
|
88108
|
+
pointerEvents: 1,
|
|
88109
|
+
"pointer-events": "pointerEvents",
|
|
88110
|
+
points: 0,
|
|
88111
|
+
pointsAtX: 1,
|
|
88112
|
+
pointsAtY: 1,
|
|
88113
|
+
pointsAtZ: 1,
|
|
88114
|
+
prefix: 0,
|
|
88115
|
+
preserveAlpha: 1,
|
|
88116
|
+
preserveAspectRatio: 1,
|
|
88117
|
+
primitiveUnits: 1,
|
|
88118
|
+
property: 0,
|
|
88119
|
+
r: 0,
|
|
88120
|
+
radius: 0,
|
|
88121
|
+
refX: 1,
|
|
88122
|
+
refY: 1,
|
|
88123
|
+
renderingIntent: 1,
|
|
88124
|
+
"rendering-intent": "renderingIntent",
|
|
88125
|
+
repeatCount: 1,
|
|
88126
|
+
repeatDur: 1,
|
|
88127
|
+
requiredExtensions: 1,
|
|
88128
|
+
requiredFeatures: 1,
|
|
88129
|
+
resource: 0,
|
|
88130
|
+
restart: 0,
|
|
88131
|
+
result: 0,
|
|
88132
|
+
results: 0,
|
|
88133
|
+
rotate: 0,
|
|
88134
|
+
rx: 0,
|
|
88135
|
+
ry: 0,
|
|
88136
|
+
scale: 0,
|
|
88137
|
+
security: 0,
|
|
88138
|
+
seed: 0,
|
|
88139
|
+
shapeRendering: 1,
|
|
88140
|
+
"shape-rendering": "shapeRendering",
|
|
88141
|
+
slope: 0,
|
|
88142
|
+
spacing: 0,
|
|
88143
|
+
specularConstant: 1,
|
|
88144
|
+
specularExponent: 1,
|
|
88145
|
+
speed: 0,
|
|
88146
|
+
spreadMethod: 1,
|
|
88147
|
+
startOffset: 1,
|
|
88148
|
+
stdDeviation: 1,
|
|
88149
|
+
stemh: 0,
|
|
88150
|
+
stemv: 0,
|
|
88151
|
+
stitchTiles: 1,
|
|
88152
|
+
stopColor: 1,
|
|
88153
|
+
"stop-color": "stopColor",
|
|
88154
|
+
stopOpacity: 1,
|
|
88155
|
+
"stop-opacity": "stopOpacity",
|
|
88156
|
+
strikethroughPosition: 1,
|
|
88157
|
+
"strikethrough-position": "strikethroughPosition",
|
|
88158
|
+
strikethroughThickness: 1,
|
|
88159
|
+
"strikethrough-thickness": "strikethroughThickness",
|
|
88160
|
+
string: 0,
|
|
88161
|
+
stroke: 0,
|
|
88162
|
+
strokeDasharray: 1,
|
|
88163
|
+
"stroke-dasharray": "strokeDasharray",
|
|
88164
|
+
strokeDashoffset: 1,
|
|
88165
|
+
"stroke-dashoffset": "strokeDashoffset",
|
|
88166
|
+
strokeLinecap: 1,
|
|
88167
|
+
"stroke-linecap": "strokeLinecap",
|
|
88168
|
+
strokeLinejoin: 1,
|
|
88169
|
+
"stroke-linejoin": "strokeLinejoin",
|
|
88170
|
+
strokeMiterlimit: 1,
|
|
88171
|
+
"stroke-miterlimit": "strokeMiterlimit",
|
|
88172
|
+
strokeWidth: 1,
|
|
88173
|
+
"stroke-width": "strokeWidth",
|
|
88174
|
+
strokeOpacity: 1,
|
|
88175
|
+
"stroke-opacity": "strokeOpacity",
|
|
88176
|
+
suppressContentEditableWarning: 1,
|
|
88177
|
+
suppressHydrationWarning: 1,
|
|
88178
|
+
surfaceScale: 1,
|
|
88179
|
+
systemLanguage: 1,
|
|
88180
|
+
tableValues: 1,
|
|
88181
|
+
targetX: 1,
|
|
88182
|
+
targetY: 1,
|
|
88183
|
+
textAnchor: 1,
|
|
88184
|
+
"text-anchor": "textAnchor",
|
|
88185
|
+
textDecoration: 1,
|
|
88186
|
+
"text-decoration": "textDecoration",
|
|
88187
|
+
textLength: 1,
|
|
88188
|
+
textRendering: 1,
|
|
88189
|
+
"text-rendering": "textRendering",
|
|
88190
|
+
to: 0,
|
|
88191
|
+
transform: 0,
|
|
88192
|
+
typeof: 0,
|
|
88193
|
+
u1: 0,
|
|
88194
|
+
u2: 0,
|
|
88195
|
+
underlinePosition: 1,
|
|
88196
|
+
"underline-position": "underlinePosition",
|
|
88197
|
+
underlineThickness: 1,
|
|
88198
|
+
"underline-thickness": "underlineThickness",
|
|
88199
|
+
unicode: 0,
|
|
88200
|
+
unicodeBidi: 1,
|
|
88201
|
+
"unicode-bidi": "unicodeBidi",
|
|
88202
|
+
unicodeRange: 1,
|
|
88203
|
+
"unicode-range": "unicodeRange",
|
|
88204
|
+
unitsPerEm: 1,
|
|
88205
|
+
"units-per-em": "unitsPerEm",
|
|
88206
|
+
unselectable: 0,
|
|
88207
|
+
vAlphabetic: 1,
|
|
88208
|
+
"v-alphabetic": "vAlphabetic",
|
|
88209
|
+
values: 0,
|
|
88210
|
+
vectorEffect: 1,
|
|
88211
|
+
"vector-effect": "vectorEffect",
|
|
88212
|
+
version: 0,
|
|
88213
|
+
vertAdvY: 1,
|
|
88214
|
+
"vert-adv-y": "vertAdvY",
|
|
88215
|
+
vertOriginX: 1,
|
|
88216
|
+
"vert-origin-x": "vertOriginX",
|
|
88217
|
+
vertOriginY: 1,
|
|
88218
|
+
"vert-origin-y": "vertOriginY",
|
|
88219
|
+
vHanging: 1,
|
|
88220
|
+
"v-hanging": "vHanging",
|
|
88221
|
+
vIdeographic: 1,
|
|
88222
|
+
"v-ideographic": "vIdeographic",
|
|
88223
|
+
viewBox: 1,
|
|
88224
|
+
viewTarget: 1,
|
|
88225
|
+
visibility: 0,
|
|
88226
|
+
vMathematical: 1,
|
|
88227
|
+
"v-mathematical": "vMathematical",
|
|
88228
|
+
vocab: 0,
|
|
88229
|
+
widths: 0,
|
|
88230
|
+
wordSpacing: 1,
|
|
88231
|
+
"word-spacing": "wordSpacing",
|
|
88232
|
+
writingMode: 1,
|
|
88233
|
+
"writing-mode": "writingMode",
|
|
88234
|
+
x1: 0,
|
|
88235
|
+
x2: 0,
|
|
88236
|
+
x: 0,
|
|
88237
|
+
xChannelSelector: 1,
|
|
88238
|
+
xHeight: 1,
|
|
88239
|
+
"x-height": "xHeight",
|
|
88240
|
+
xlinkActuate: 1,
|
|
88241
|
+
"xlink:actuate": "xlinkActuate",
|
|
88242
|
+
xlinkArcrole: 1,
|
|
88243
|
+
"xlink:arcrole": "xlinkArcrole",
|
|
88244
|
+
xlinkHref: 1,
|
|
88245
|
+
"xlink:href": "xlinkHref",
|
|
88246
|
+
xlinkRole: 1,
|
|
88247
|
+
"xlink:role": "xlinkRole",
|
|
88248
|
+
xlinkShow: 1,
|
|
88249
|
+
"xlink:show": "xlinkShow",
|
|
88250
|
+
xlinkTitle: 1,
|
|
88251
|
+
"xlink:title": "xlinkTitle",
|
|
88252
|
+
xlinkType: 1,
|
|
88253
|
+
"xlink:type": "xlinkType",
|
|
88254
|
+
xmlBase: 1,
|
|
88255
|
+
"xml:base": "xmlBase",
|
|
88256
|
+
xmlLang: 1,
|
|
88257
|
+
"xml:lang": "xmlLang",
|
|
88258
|
+
xmlns: 0,
|
|
88259
|
+
"xml:space": "xmlSpace",
|
|
88260
|
+
xmlnsXlink: 1,
|
|
88261
|
+
"xmlns:xlink": "xmlnsXlink",
|
|
88262
|
+
xmlSpace: 1,
|
|
88263
|
+
y1: 0,
|
|
88264
|
+
y2: 0,
|
|
88265
|
+
y: 0,
|
|
88266
|
+
yChannelSelector: 1,
|
|
88267
|
+
z: 0,
|
|
88268
|
+
zoomAndPan: 1
|
|
88269
|
+
};
|
|
88270
|
+
return possibleStandardNamesOptimized;
|
|
88271
|
+
}
|
|
88272
|
+
var hasRequiredLib$1;
|
|
88273
|
+
function requireLib$1() {
|
|
88274
|
+
if (hasRequiredLib$1) return lib;
|
|
88275
|
+
hasRequiredLib$1 = 1;
|
|
88276
|
+
const RESERVED = 0;
|
|
88277
|
+
const STRING = 1;
|
|
88278
|
+
const BOOLEANISH_STRING = 2;
|
|
88279
|
+
const BOOLEAN = 3;
|
|
88280
|
+
const OVERLOADED_BOOLEAN = 4;
|
|
88281
|
+
const NUMERIC = 5;
|
|
88282
|
+
const POSITIVE_NUMERIC = 6;
|
|
88283
|
+
function getPropertyInfo(name2) {
|
|
88284
|
+
return properties.hasOwnProperty(name2) ? properties[name2] : null;
|
|
88285
|
+
}
|
|
88286
|
+
function PropertyInfoRecord(name2, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {
|
|
88287
|
+
this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;
|
|
88288
|
+
this.attributeName = attributeName;
|
|
88289
|
+
this.attributeNamespace = attributeNamespace;
|
|
88290
|
+
this.mustUseProperty = mustUseProperty;
|
|
88291
|
+
this.propertyName = name2;
|
|
88292
|
+
this.type = type;
|
|
88293
|
+
this.sanitizeURL = sanitizeURL;
|
|
88294
|
+
this.removeEmptyString = removeEmptyString;
|
|
88295
|
+
}
|
|
88296
|
+
const properties = {};
|
|
88297
|
+
const reservedProps = [
|
|
88298
|
+
"children",
|
|
88299
|
+
"dangerouslySetInnerHTML",
|
|
88300
|
+
// TODO: This prevents the assignment of defaultValue to regular
|
|
88301
|
+
// elements (not just inputs). Now that ReactDOMInput assigns to the
|
|
88302
|
+
// defaultValue property -- do we need this?
|
|
88303
|
+
"defaultValue",
|
|
88304
|
+
"defaultChecked",
|
|
88305
|
+
"innerHTML",
|
|
88306
|
+
"suppressContentEditableWarning",
|
|
88307
|
+
"suppressHydrationWarning",
|
|
88308
|
+
"style"
|
|
88309
|
+
];
|
|
88310
|
+
reservedProps.forEach((name2) => {
|
|
88311
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88312
|
+
name2,
|
|
88313
|
+
RESERVED,
|
|
88314
|
+
false,
|
|
88315
|
+
// mustUseProperty
|
|
88316
|
+
name2,
|
|
88317
|
+
// attributeName
|
|
88318
|
+
null,
|
|
88319
|
+
// attributeNamespace
|
|
88320
|
+
false,
|
|
88321
|
+
// sanitizeURL
|
|
88322
|
+
false
|
|
88323
|
+
// removeEmptyString
|
|
88324
|
+
);
|
|
88325
|
+
});
|
|
88326
|
+
[
|
|
88327
|
+
["acceptCharset", "accept-charset"],
|
|
88328
|
+
["className", "class"],
|
|
88329
|
+
["htmlFor", "for"],
|
|
88330
|
+
["httpEquiv", "http-equiv"]
|
|
88331
|
+
].forEach(([name2, attributeName]) => {
|
|
88332
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88333
|
+
name2,
|
|
88334
|
+
STRING,
|
|
88335
|
+
false,
|
|
88336
|
+
// mustUseProperty
|
|
88337
|
+
attributeName,
|
|
88338
|
+
// attributeName
|
|
88339
|
+
null,
|
|
88340
|
+
// attributeNamespace
|
|
88341
|
+
false,
|
|
88342
|
+
// sanitizeURL
|
|
88343
|
+
false
|
|
88344
|
+
// removeEmptyString
|
|
88345
|
+
);
|
|
88346
|
+
});
|
|
88347
|
+
["contentEditable", "draggable", "spellCheck", "value"].forEach((name2) => {
|
|
88348
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88349
|
+
name2,
|
|
88350
|
+
BOOLEANISH_STRING,
|
|
88351
|
+
false,
|
|
88352
|
+
// mustUseProperty
|
|
88353
|
+
name2.toLowerCase(),
|
|
88354
|
+
// attributeName
|
|
88355
|
+
null,
|
|
88356
|
+
// attributeNamespace
|
|
88357
|
+
false,
|
|
88358
|
+
// sanitizeURL
|
|
88359
|
+
false
|
|
88360
|
+
// removeEmptyString
|
|
88361
|
+
);
|
|
88362
|
+
});
|
|
88363
|
+
[
|
|
88364
|
+
"autoReverse",
|
|
88365
|
+
"externalResourcesRequired",
|
|
88366
|
+
"focusable",
|
|
88367
|
+
"preserveAlpha"
|
|
88368
|
+
].forEach((name2) => {
|
|
88369
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88370
|
+
name2,
|
|
88371
|
+
BOOLEANISH_STRING,
|
|
88372
|
+
false,
|
|
88373
|
+
// mustUseProperty
|
|
88374
|
+
name2,
|
|
88375
|
+
// attributeName
|
|
88376
|
+
null,
|
|
88377
|
+
// attributeNamespace
|
|
88378
|
+
false,
|
|
88379
|
+
// sanitizeURL
|
|
88380
|
+
false
|
|
88381
|
+
// removeEmptyString
|
|
88382
|
+
);
|
|
88383
|
+
});
|
|
88384
|
+
[
|
|
88385
|
+
"allowFullScreen",
|
|
88386
|
+
"async",
|
|
88387
|
+
// Note: there is a special case that prevents it from being written to the DOM
|
|
88388
|
+
// on the client side because the browsers are inconsistent. Instead we call focus().
|
|
88389
|
+
"autoFocus",
|
|
88390
|
+
"autoPlay",
|
|
88391
|
+
"controls",
|
|
88392
|
+
"default",
|
|
88393
|
+
"defer",
|
|
88394
|
+
"disabled",
|
|
88395
|
+
"disablePictureInPicture",
|
|
88396
|
+
"disableRemotePlayback",
|
|
88397
|
+
"formNoValidate",
|
|
88398
|
+
"hidden",
|
|
88399
|
+
"loop",
|
|
88400
|
+
"noModule",
|
|
88401
|
+
"noValidate",
|
|
88402
|
+
"open",
|
|
88403
|
+
"playsInline",
|
|
88404
|
+
"readOnly",
|
|
88405
|
+
"required",
|
|
88406
|
+
"reversed",
|
|
88407
|
+
"scoped",
|
|
88408
|
+
"seamless",
|
|
88409
|
+
// Microdata
|
|
88410
|
+
"itemScope"
|
|
88411
|
+
].forEach((name2) => {
|
|
88412
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88413
|
+
name2,
|
|
88414
|
+
BOOLEAN,
|
|
88415
|
+
false,
|
|
88416
|
+
// mustUseProperty
|
|
88417
|
+
name2.toLowerCase(),
|
|
88418
|
+
// attributeName
|
|
88419
|
+
null,
|
|
88420
|
+
// attributeNamespace
|
|
88421
|
+
false,
|
|
88422
|
+
// sanitizeURL
|
|
88423
|
+
false
|
|
88424
|
+
// removeEmptyString
|
|
88425
|
+
);
|
|
88426
|
+
});
|
|
88427
|
+
[
|
|
88428
|
+
"checked",
|
|
88429
|
+
// Note: `option.selected` is not updated if `select.multiple` is
|
|
88430
|
+
// disabled with `removeAttribute`. We have special logic for handling this.
|
|
88431
|
+
"multiple",
|
|
88432
|
+
"muted",
|
|
88433
|
+
"selected"
|
|
88434
|
+
// NOTE: if you add a camelCased prop to this list,
|
|
88435
|
+
// you'll need to set attributeName to name.toLowerCase()
|
|
88436
|
+
// instead in the assignment below.
|
|
88437
|
+
].forEach((name2) => {
|
|
88438
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88439
|
+
name2,
|
|
88440
|
+
BOOLEAN,
|
|
88441
|
+
true,
|
|
88442
|
+
// mustUseProperty
|
|
88443
|
+
name2,
|
|
88444
|
+
// attributeName
|
|
88445
|
+
null,
|
|
88446
|
+
// attributeNamespace
|
|
88447
|
+
false,
|
|
88448
|
+
// sanitizeURL
|
|
88449
|
+
false
|
|
88450
|
+
// removeEmptyString
|
|
88451
|
+
);
|
|
88452
|
+
});
|
|
88453
|
+
[
|
|
88454
|
+
"capture",
|
|
88455
|
+
"download"
|
|
88456
|
+
// NOTE: if you add a camelCased prop to this list,
|
|
88457
|
+
// you'll need to set attributeName to name.toLowerCase()
|
|
88458
|
+
// instead in the assignment below.
|
|
88459
|
+
].forEach((name2) => {
|
|
88460
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88461
|
+
name2,
|
|
88462
|
+
OVERLOADED_BOOLEAN,
|
|
88463
|
+
false,
|
|
88464
|
+
// mustUseProperty
|
|
88465
|
+
name2,
|
|
88466
|
+
// attributeName
|
|
88467
|
+
null,
|
|
88468
|
+
// attributeNamespace
|
|
88469
|
+
false,
|
|
88470
|
+
// sanitizeURL
|
|
88471
|
+
false
|
|
88472
|
+
// removeEmptyString
|
|
88473
|
+
);
|
|
88474
|
+
});
|
|
88475
|
+
[
|
|
88476
|
+
"cols",
|
|
88477
|
+
"rows",
|
|
88478
|
+
"size",
|
|
88479
|
+
"span"
|
|
88480
|
+
// NOTE: if you add a camelCased prop to this list,
|
|
88481
|
+
// you'll need to set attributeName to name.toLowerCase()
|
|
88482
|
+
// instead in the assignment below.
|
|
88483
|
+
].forEach((name2) => {
|
|
88484
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88485
|
+
name2,
|
|
88486
|
+
POSITIVE_NUMERIC,
|
|
88487
|
+
false,
|
|
88488
|
+
// mustUseProperty
|
|
88489
|
+
name2,
|
|
88490
|
+
// attributeName
|
|
88491
|
+
null,
|
|
88492
|
+
// attributeNamespace
|
|
88493
|
+
false,
|
|
88494
|
+
// sanitizeURL
|
|
88495
|
+
false
|
|
88496
|
+
// removeEmptyString
|
|
88497
|
+
);
|
|
88498
|
+
});
|
|
88499
|
+
["rowSpan", "start"].forEach((name2) => {
|
|
88500
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88501
|
+
name2,
|
|
88502
|
+
NUMERIC,
|
|
88503
|
+
false,
|
|
88504
|
+
// mustUseProperty
|
|
88505
|
+
name2.toLowerCase(),
|
|
88506
|
+
// attributeName
|
|
88507
|
+
null,
|
|
88508
|
+
// attributeNamespace
|
|
88509
|
+
false,
|
|
88510
|
+
// sanitizeURL
|
|
88511
|
+
false
|
|
88512
|
+
// removeEmptyString
|
|
88513
|
+
);
|
|
88514
|
+
});
|
|
88515
|
+
const CAMELIZE = /[\-\:]([a-z])/g;
|
|
88516
|
+
const capitalize2 = (token2) => token2[1].toUpperCase();
|
|
88517
|
+
[
|
|
88518
|
+
"accent-height",
|
|
88519
|
+
"alignment-baseline",
|
|
88520
|
+
"arabic-form",
|
|
88521
|
+
"baseline-shift",
|
|
88522
|
+
"cap-height",
|
|
88523
|
+
"clip-path",
|
|
88524
|
+
"clip-rule",
|
|
88525
|
+
"color-interpolation",
|
|
88526
|
+
"color-interpolation-filters",
|
|
88527
|
+
"color-profile",
|
|
88528
|
+
"color-rendering",
|
|
88529
|
+
"dominant-baseline",
|
|
88530
|
+
"enable-background",
|
|
88531
|
+
"fill-opacity",
|
|
88532
|
+
"fill-rule",
|
|
88533
|
+
"flood-color",
|
|
88534
|
+
"flood-opacity",
|
|
88535
|
+
"font-family",
|
|
88536
|
+
"font-size",
|
|
88537
|
+
"font-size-adjust",
|
|
88538
|
+
"font-stretch",
|
|
88539
|
+
"font-style",
|
|
88540
|
+
"font-variant",
|
|
88541
|
+
"font-weight",
|
|
88542
|
+
"glyph-name",
|
|
88543
|
+
"glyph-orientation-horizontal",
|
|
88544
|
+
"glyph-orientation-vertical",
|
|
88545
|
+
"horiz-adv-x",
|
|
88546
|
+
"horiz-origin-x",
|
|
88547
|
+
"image-rendering",
|
|
88548
|
+
"letter-spacing",
|
|
88549
|
+
"lighting-color",
|
|
88550
|
+
"marker-end",
|
|
88551
|
+
"marker-mid",
|
|
88552
|
+
"marker-start",
|
|
88553
|
+
"overline-position",
|
|
88554
|
+
"overline-thickness",
|
|
88555
|
+
"paint-order",
|
|
88556
|
+
"panose-1",
|
|
88557
|
+
"pointer-events",
|
|
88558
|
+
"rendering-intent",
|
|
88559
|
+
"shape-rendering",
|
|
88560
|
+
"stop-color",
|
|
88561
|
+
"stop-opacity",
|
|
88562
|
+
"strikethrough-position",
|
|
88563
|
+
"strikethrough-thickness",
|
|
88564
|
+
"stroke-dasharray",
|
|
88565
|
+
"stroke-dashoffset",
|
|
88566
|
+
"stroke-linecap",
|
|
88567
|
+
"stroke-linejoin",
|
|
88568
|
+
"stroke-miterlimit",
|
|
88569
|
+
"stroke-opacity",
|
|
88570
|
+
"stroke-width",
|
|
88571
|
+
"text-anchor",
|
|
88572
|
+
"text-decoration",
|
|
88573
|
+
"text-rendering",
|
|
88574
|
+
"underline-position",
|
|
88575
|
+
"underline-thickness",
|
|
88576
|
+
"unicode-bidi",
|
|
88577
|
+
"unicode-range",
|
|
88578
|
+
"units-per-em",
|
|
88579
|
+
"v-alphabetic",
|
|
88580
|
+
"v-hanging",
|
|
88581
|
+
"v-ideographic",
|
|
88582
|
+
"v-mathematical",
|
|
88583
|
+
"vector-effect",
|
|
88584
|
+
"vert-adv-y",
|
|
88585
|
+
"vert-origin-x",
|
|
88586
|
+
"vert-origin-y",
|
|
88587
|
+
"word-spacing",
|
|
88588
|
+
"writing-mode",
|
|
88589
|
+
"xmlns:xlink",
|
|
88590
|
+
"x-height"
|
|
88591
|
+
// NOTE: if you add a camelCased prop to this list,
|
|
88592
|
+
// you'll need to set attributeName to name.toLowerCase()
|
|
88593
|
+
// instead in the assignment below.
|
|
88594
|
+
].forEach((attributeName) => {
|
|
88595
|
+
const name2 = attributeName.replace(CAMELIZE, capitalize2);
|
|
88596
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88597
|
+
name2,
|
|
88598
|
+
STRING,
|
|
88599
|
+
false,
|
|
88600
|
+
// mustUseProperty
|
|
88601
|
+
attributeName,
|
|
88602
|
+
null,
|
|
88603
|
+
// attributeNamespace
|
|
88604
|
+
false,
|
|
88605
|
+
// sanitizeURL
|
|
88606
|
+
false
|
|
88607
|
+
// removeEmptyString
|
|
88608
|
+
);
|
|
88609
|
+
});
|
|
88610
|
+
[
|
|
88611
|
+
"xlink:actuate",
|
|
88612
|
+
"xlink:arcrole",
|
|
88613
|
+
"xlink:role",
|
|
88614
|
+
"xlink:show",
|
|
88615
|
+
"xlink:title",
|
|
88616
|
+
"xlink:type"
|
|
88617
|
+
// NOTE: if you add a camelCased prop to this list,
|
|
88618
|
+
// you'll need to set attributeName to name.toLowerCase()
|
|
88619
|
+
// instead in the assignment below.
|
|
88620
|
+
].forEach((attributeName) => {
|
|
88621
|
+
const name2 = attributeName.replace(CAMELIZE, capitalize2);
|
|
88622
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88623
|
+
name2,
|
|
88624
|
+
STRING,
|
|
88625
|
+
false,
|
|
88626
|
+
// mustUseProperty
|
|
88627
|
+
attributeName,
|
|
88628
|
+
"http://www.w3.org/1999/xlink",
|
|
88629
|
+
false,
|
|
88630
|
+
// sanitizeURL
|
|
88631
|
+
false
|
|
88632
|
+
// removeEmptyString
|
|
88633
|
+
);
|
|
88634
|
+
});
|
|
88635
|
+
[
|
|
88636
|
+
"xml:base",
|
|
88637
|
+
"xml:lang",
|
|
88638
|
+
"xml:space"
|
|
88639
|
+
// NOTE: if you add a camelCased prop to this list,
|
|
88640
|
+
// you'll need to set attributeName to name.toLowerCase()
|
|
88641
|
+
// instead in the assignment below.
|
|
88642
|
+
].forEach((attributeName) => {
|
|
88643
|
+
const name2 = attributeName.replace(CAMELIZE, capitalize2);
|
|
88644
|
+
properties[name2] = new PropertyInfoRecord(
|
|
88645
|
+
name2,
|
|
88646
|
+
STRING,
|
|
88647
|
+
false,
|
|
88648
|
+
// mustUseProperty
|
|
88649
|
+
attributeName,
|
|
88650
|
+
"http://www.w3.org/XML/1998/namespace",
|
|
88651
|
+
false,
|
|
88652
|
+
// sanitizeURL
|
|
88653
|
+
false
|
|
88654
|
+
// removeEmptyString
|
|
88655
|
+
);
|
|
88656
|
+
});
|
|
88657
|
+
["tabIndex", "crossOrigin"].forEach((attributeName) => {
|
|
88658
|
+
properties[attributeName] = new PropertyInfoRecord(
|
|
88659
|
+
attributeName,
|
|
88660
|
+
STRING,
|
|
88661
|
+
false,
|
|
88662
|
+
// mustUseProperty
|
|
88663
|
+
attributeName.toLowerCase(),
|
|
88664
|
+
// attributeName
|
|
88665
|
+
null,
|
|
88666
|
+
// attributeNamespace
|
|
88667
|
+
false,
|
|
88668
|
+
// sanitizeURL
|
|
88669
|
+
false
|
|
88670
|
+
// removeEmptyString
|
|
88671
|
+
);
|
|
88672
|
+
});
|
|
88673
|
+
const xlinkHref = "xlinkHref";
|
|
88674
|
+
properties[xlinkHref] = new PropertyInfoRecord(
|
|
88675
|
+
"xlinkHref",
|
|
88676
|
+
STRING,
|
|
88677
|
+
false,
|
|
88678
|
+
// mustUseProperty
|
|
88679
|
+
"xlink:href",
|
|
88680
|
+
"http://www.w3.org/1999/xlink",
|
|
88681
|
+
true,
|
|
88682
|
+
// sanitizeURL
|
|
88683
|
+
false
|
|
88684
|
+
// removeEmptyString
|
|
88685
|
+
);
|
|
88686
|
+
["src", "href", "action", "formAction"].forEach((attributeName) => {
|
|
88687
|
+
properties[attributeName] = new PropertyInfoRecord(
|
|
88688
|
+
attributeName,
|
|
88689
|
+
STRING,
|
|
88690
|
+
false,
|
|
88691
|
+
// mustUseProperty
|
|
88692
|
+
attributeName.toLowerCase(),
|
|
88693
|
+
// attributeName
|
|
88694
|
+
null,
|
|
88695
|
+
// attributeNamespace
|
|
88696
|
+
true,
|
|
88697
|
+
// sanitizeURL
|
|
88698
|
+
true
|
|
88699
|
+
// removeEmptyString
|
|
88700
|
+
);
|
|
88701
|
+
});
|
|
88702
|
+
const {
|
|
88703
|
+
CAMELCASE,
|
|
88704
|
+
SAME,
|
|
88705
|
+
possibleStandardNames: possibleStandardNamesOptimized2
|
|
88706
|
+
} = requirePossibleStandardNamesOptimized();
|
|
88707
|
+
const ATTRIBUTE_NAME_START_CHAR = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
|
|
88708
|
+
const ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
|
|
88709
|
+
const isCustomAttribute = RegExp.prototype.test.bind(
|
|
88710
|
+
// eslint-disable-next-line no-misleading-character-class
|
|
88711
|
+
new RegExp("^(data|aria)-[" + ATTRIBUTE_NAME_CHAR + "]*$")
|
|
88712
|
+
);
|
|
88713
|
+
const possibleStandardNames = Object.keys(
|
|
88714
|
+
possibleStandardNamesOptimized2
|
|
88715
|
+
).reduce((accumulator, standardName) => {
|
|
88716
|
+
const propName = possibleStandardNamesOptimized2[standardName];
|
|
88717
|
+
if (propName === SAME) {
|
|
88718
|
+
accumulator[standardName] = standardName;
|
|
88719
|
+
} else if (propName === CAMELCASE) {
|
|
88720
|
+
accumulator[standardName.toLowerCase()] = standardName;
|
|
88721
|
+
} else {
|
|
88722
|
+
accumulator[standardName] = propName;
|
|
88723
|
+
}
|
|
88724
|
+
return accumulator;
|
|
88725
|
+
}, {});
|
|
88726
|
+
lib.BOOLEAN = BOOLEAN;
|
|
88727
|
+
lib.BOOLEANISH_STRING = BOOLEANISH_STRING;
|
|
88728
|
+
lib.NUMERIC = NUMERIC;
|
|
88729
|
+
lib.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;
|
|
88730
|
+
lib.POSITIVE_NUMERIC = POSITIVE_NUMERIC;
|
|
88731
|
+
lib.RESERVED = RESERVED;
|
|
88732
|
+
lib.STRING = STRING;
|
|
88733
|
+
lib.getPropertyInfo = getPropertyInfo;
|
|
88734
|
+
lib.isCustomAttribute = isCustomAttribute;
|
|
88735
|
+
lib.possibleStandardNames = possibleStandardNames;
|
|
88736
|
+
return lib;
|
|
88737
|
+
}
|
|
88738
|
+
var utilities = {};
|
|
88739
|
+
var hasRequiredUtilities;
|
|
88740
|
+
function requireUtilities() {
|
|
88741
|
+
if (hasRequiredUtilities) return utilities;
|
|
88742
|
+
hasRequiredUtilities = 1;
|
|
88743
|
+
(function(exports) {
|
|
88744
|
+
var __importDefault = utilities && utilities.__importDefault || function(mod) {
|
|
88745
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
88746
|
+
};
|
|
88747
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
88748
|
+
exports.returnFirstArg = exports.canTextBeChildOfNode = exports.ELEMENTS_WITH_NO_TEXT_CHILDREN = exports.PRESERVE_CUSTOM_ATTRIBUTES = void 0;
|
|
88749
|
+
exports.isCustomComponent = isCustomComponent;
|
|
88750
|
+
exports.setStyleProp = setStyleProp;
|
|
88751
|
+
var react_1 = requireReact();
|
|
88752
|
+
var style_to_js_1 = __importDefault(requireCjs());
|
|
88753
|
+
var RESERVED_SVG_MATHML_ELEMENTS = /* @__PURE__ */ new Set([
|
|
88754
|
+
"annotation-xml",
|
|
88755
|
+
"color-profile",
|
|
88756
|
+
"font-face",
|
|
88757
|
+
"font-face-src",
|
|
88758
|
+
"font-face-uri",
|
|
88759
|
+
"font-face-format",
|
|
88760
|
+
"font-face-name",
|
|
88761
|
+
"missing-glyph"
|
|
88762
|
+
]);
|
|
88763
|
+
function isCustomComponent(tagName, props) {
|
|
88764
|
+
if (!tagName.includes("-")) {
|
|
88765
|
+
return Boolean(props && typeof props.is === "string");
|
|
88766
|
+
}
|
|
88767
|
+
if (RESERVED_SVG_MATHML_ELEMENTS.has(tagName)) {
|
|
88768
|
+
return false;
|
|
88769
|
+
}
|
|
88770
|
+
return true;
|
|
88771
|
+
}
|
|
88772
|
+
var styleOptions = {
|
|
88773
|
+
reactCompat: true
|
|
88774
|
+
};
|
|
88775
|
+
function setStyleProp(style, props) {
|
|
88776
|
+
if (typeof style !== "string") {
|
|
88777
|
+
return;
|
|
88778
|
+
}
|
|
88779
|
+
if (!style.trim()) {
|
|
88780
|
+
props.style = {};
|
|
88781
|
+
return;
|
|
88782
|
+
}
|
|
88783
|
+
try {
|
|
88784
|
+
props.style = (0, style_to_js_1.default)(style, styleOptions);
|
|
88785
|
+
} catch (error) {
|
|
88786
|
+
props.style = {};
|
|
88787
|
+
}
|
|
88788
|
+
}
|
|
88789
|
+
exports.PRESERVE_CUSTOM_ATTRIBUTES = Number(react_1.version.split(".")[0]) >= 16;
|
|
88790
|
+
exports.ELEMENTS_WITH_NO_TEXT_CHILDREN = /* @__PURE__ */ new Set([
|
|
88791
|
+
"tr",
|
|
88792
|
+
"tbody",
|
|
88793
|
+
"thead",
|
|
88794
|
+
"tfoot",
|
|
88795
|
+
"colgroup",
|
|
88796
|
+
"table",
|
|
88797
|
+
"head",
|
|
88798
|
+
"html",
|
|
88799
|
+
"frameset"
|
|
88800
|
+
]);
|
|
88801
|
+
var canTextBeChildOfNode = function(node2) {
|
|
88802
|
+
return !exports.ELEMENTS_WITH_NO_TEXT_CHILDREN.has(node2.name);
|
|
88803
|
+
};
|
|
88804
|
+
exports.canTextBeChildOfNode = canTextBeChildOfNode;
|
|
88805
|
+
var returnFirstArg = function(arg) {
|
|
88806
|
+
return arg;
|
|
88807
|
+
};
|
|
88808
|
+
exports.returnFirstArg = returnFirstArg;
|
|
88809
|
+
})(utilities);
|
|
88810
|
+
return utilities;
|
|
88811
|
+
}
|
|
88812
|
+
var hasRequiredAttributesToProps;
|
|
88813
|
+
function requireAttributesToProps() {
|
|
88814
|
+
if (hasRequiredAttributesToProps) return attributesToProps;
|
|
88815
|
+
hasRequiredAttributesToProps = 1;
|
|
88816
|
+
Object.defineProperty(attributesToProps, "__esModule", { value: true });
|
|
88817
|
+
attributesToProps.default = attributesToProps$1;
|
|
88818
|
+
var react_property_1 = requireLib$1();
|
|
88819
|
+
var utilities_1 = requireUtilities();
|
|
88820
|
+
var UNCONTROLLED_COMPONENT_ATTRIBUTES = ["checked", "value"];
|
|
88821
|
+
var UNCONTROLLED_COMPONENT_NAMES = ["input", "select", "textarea"];
|
|
88822
|
+
var valueOnlyInputs = {
|
|
88823
|
+
reset: true,
|
|
88824
|
+
submit: true
|
|
88825
|
+
};
|
|
88826
|
+
function attributesToProps$1(attributes, nodeName) {
|
|
88827
|
+
if (attributes === void 0) {
|
|
88828
|
+
attributes = {};
|
|
88829
|
+
}
|
|
88830
|
+
var props = {};
|
|
88831
|
+
var isInputValueOnly = Boolean(attributes.type && valueOnlyInputs[attributes.type]);
|
|
88832
|
+
for (var attributeName in attributes) {
|
|
88833
|
+
var attributeValue = attributes[attributeName];
|
|
88834
|
+
if ((0, react_property_1.isCustomAttribute)(attributeName)) {
|
|
88835
|
+
props[attributeName] = attributeValue;
|
|
88836
|
+
continue;
|
|
88837
|
+
}
|
|
88838
|
+
var attributeNameLowerCased = attributeName.toLowerCase();
|
|
88839
|
+
var propName = getPropName(attributeNameLowerCased);
|
|
88840
|
+
if (propName) {
|
|
88841
|
+
var propertyInfo = (0, react_property_1.getPropertyInfo)(propName);
|
|
88842
|
+
if (UNCONTROLLED_COMPONENT_ATTRIBUTES.includes(propName) && UNCONTROLLED_COMPONENT_NAMES.includes(nodeName) && !isInputValueOnly) {
|
|
88843
|
+
propName = getPropName("default" + attributeNameLowerCased);
|
|
88844
|
+
}
|
|
88845
|
+
props[propName] = attributeValue;
|
|
88846
|
+
switch (propertyInfo && propertyInfo.type) {
|
|
88847
|
+
case react_property_1.BOOLEAN:
|
|
88848
|
+
props[propName] = true;
|
|
88849
|
+
break;
|
|
88850
|
+
case react_property_1.OVERLOADED_BOOLEAN:
|
|
88851
|
+
if (attributeValue === "") {
|
|
88852
|
+
props[propName] = true;
|
|
88853
|
+
}
|
|
88854
|
+
break;
|
|
88855
|
+
}
|
|
88856
|
+
continue;
|
|
88857
|
+
}
|
|
88858
|
+
if (utilities_1.PRESERVE_CUSTOM_ATTRIBUTES) {
|
|
88859
|
+
props[attributeName] = attributeValue;
|
|
88860
|
+
}
|
|
88861
|
+
}
|
|
88862
|
+
(0, utilities_1.setStyleProp)(attributes.style, props);
|
|
88863
|
+
return props;
|
|
88864
|
+
}
|
|
88865
|
+
function getPropName(attributeName) {
|
|
88866
|
+
return react_property_1.possibleStandardNames[attributeName];
|
|
88867
|
+
}
|
|
88868
|
+
return attributesToProps;
|
|
88869
|
+
}
|
|
88870
|
+
var domToReact = {};
|
|
88871
|
+
var hasRequiredDomToReact;
|
|
88872
|
+
function requireDomToReact() {
|
|
88873
|
+
if (hasRequiredDomToReact) return domToReact;
|
|
88874
|
+
hasRequiredDomToReact = 1;
|
|
88875
|
+
var __importDefault = domToReact && domToReact.__importDefault || function(mod) {
|
|
88876
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
88877
|
+
};
|
|
88878
|
+
Object.defineProperty(domToReact, "__esModule", { value: true });
|
|
88879
|
+
domToReact.default = domToReact$1;
|
|
88880
|
+
var react_1 = requireReact();
|
|
88881
|
+
var attributes_to_props_1 = __importDefault(requireAttributesToProps());
|
|
88882
|
+
var utilities_1 = requireUtilities();
|
|
88883
|
+
var React2 = {
|
|
88884
|
+
cloneElement: react_1.cloneElement,
|
|
88885
|
+
createElement: react_1.createElement,
|
|
88886
|
+
isValidElement: react_1.isValidElement
|
|
88887
|
+
};
|
|
88888
|
+
function domToReact$1(nodes, options) {
|
|
88889
|
+
if (options === void 0) {
|
|
88890
|
+
options = {};
|
|
88891
|
+
}
|
|
88892
|
+
var reactElements = [];
|
|
88893
|
+
var hasReplace = typeof options.replace === "function";
|
|
88894
|
+
var transform = options.transform || utilities_1.returnFirstArg;
|
|
88895
|
+
var _a = options.library || React2, cloneElement = _a.cloneElement, createElement2 = _a.createElement, isValidElement = _a.isValidElement;
|
|
88896
|
+
var nodesLength = nodes.length;
|
|
88897
|
+
for (var index2 = 0; index2 < nodesLength; index2++) {
|
|
88898
|
+
var node2 = nodes[index2];
|
|
88899
|
+
if (hasReplace) {
|
|
88900
|
+
var replaceElement = options.replace(node2, index2);
|
|
88901
|
+
if (isValidElement(replaceElement)) {
|
|
88902
|
+
if (nodesLength > 1) {
|
|
88903
|
+
replaceElement = cloneElement(replaceElement, {
|
|
88904
|
+
key: replaceElement.key || index2
|
|
88905
|
+
});
|
|
88906
|
+
}
|
|
88907
|
+
reactElements.push(transform(replaceElement, node2, index2));
|
|
88908
|
+
continue;
|
|
88909
|
+
}
|
|
88910
|
+
}
|
|
88911
|
+
if (node2.type === "text") {
|
|
88912
|
+
var isWhitespace = !node2.data.trim().length;
|
|
88913
|
+
if (isWhitespace && node2.parent && !(0, utilities_1.canTextBeChildOfNode)(node2.parent)) {
|
|
88914
|
+
continue;
|
|
88915
|
+
}
|
|
88916
|
+
if (options.trim && isWhitespace) {
|
|
88917
|
+
continue;
|
|
88918
|
+
}
|
|
88919
|
+
reactElements.push(transform(node2.data, node2, index2));
|
|
88920
|
+
continue;
|
|
88921
|
+
}
|
|
88922
|
+
var element2 = node2;
|
|
88923
|
+
var props = {};
|
|
88924
|
+
if (skipAttributesToProps(element2)) {
|
|
88925
|
+
(0, utilities_1.setStyleProp)(element2.attribs.style, element2.attribs);
|
|
88926
|
+
props = element2.attribs;
|
|
88927
|
+
} else if (element2.attribs) {
|
|
88928
|
+
props = (0, attributes_to_props_1.default)(element2.attribs, element2.name);
|
|
88929
|
+
}
|
|
88930
|
+
var children = void 0;
|
|
88931
|
+
switch (node2.type) {
|
|
88932
|
+
case "script":
|
|
88933
|
+
case "style":
|
|
88934
|
+
if (node2.children[0]) {
|
|
88935
|
+
props.dangerouslySetInnerHTML = {
|
|
88936
|
+
__html: node2.children[0].data
|
|
88937
|
+
};
|
|
88938
|
+
}
|
|
88939
|
+
break;
|
|
88940
|
+
case "tag":
|
|
88941
|
+
if (node2.name === "textarea" && node2.children[0]) {
|
|
88942
|
+
props.defaultValue = node2.children[0].data;
|
|
88943
|
+
} else if (node2.children && node2.children.length) {
|
|
88944
|
+
children = domToReact$1(node2.children, options);
|
|
88945
|
+
}
|
|
88946
|
+
break;
|
|
88947
|
+
// skip all other cases (e.g., comment)
|
|
88948
|
+
default:
|
|
88949
|
+
continue;
|
|
88950
|
+
}
|
|
88951
|
+
if (nodesLength > 1) {
|
|
88952
|
+
props.key = index2;
|
|
88953
|
+
}
|
|
88954
|
+
reactElements.push(transform(createElement2(node2.name, props, children), node2, index2));
|
|
88955
|
+
}
|
|
88956
|
+
return reactElements.length === 1 ? reactElements[0] : reactElements;
|
|
88957
|
+
}
|
|
88958
|
+
function skipAttributesToProps(node2) {
|
|
88959
|
+
return utilities_1.PRESERVE_CUSTOM_ATTRIBUTES && node2.type === "tag" && (0, utilities_1.isCustomComponent)(node2.name, node2.attribs);
|
|
88960
|
+
}
|
|
88961
|
+
return domToReact;
|
|
88962
|
+
}
|
|
88963
|
+
var hasRequiredLib;
|
|
88964
|
+
function requireLib() {
|
|
88965
|
+
if (hasRequiredLib) return lib$3;
|
|
88966
|
+
hasRequiredLib = 1;
|
|
88967
|
+
(function(exports) {
|
|
88968
|
+
var __importDefault = lib$3 && lib$3.__importDefault || function(mod) {
|
|
88969
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
88970
|
+
};
|
|
88971
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
88972
|
+
exports.htmlToDOM = exports.domToReact = exports.attributesToProps = exports.Text = exports.ProcessingInstruction = exports.Element = exports.Comment = void 0;
|
|
88973
|
+
exports.default = HTMLReactParser2;
|
|
88974
|
+
var html_dom_parser_1 = __importDefault(requireHtmlToDom());
|
|
88975
|
+
exports.htmlToDOM = html_dom_parser_1.default;
|
|
88976
|
+
var attributes_to_props_1 = __importDefault(requireAttributesToProps());
|
|
88977
|
+
exports.attributesToProps = attributes_to_props_1.default;
|
|
88978
|
+
var dom_to_react_1 = __importDefault(requireDomToReact());
|
|
88979
|
+
exports.domToReact = dom_to_react_1.default;
|
|
88980
|
+
var domhandler_1 = /* @__PURE__ */ requireLib$2();
|
|
88981
|
+
Object.defineProperty(exports, "Comment", { enumerable: true, get: function() {
|
|
88982
|
+
return domhandler_1.Comment;
|
|
88983
|
+
} });
|
|
88984
|
+
Object.defineProperty(exports, "Element", { enumerable: true, get: function() {
|
|
88985
|
+
return domhandler_1.Element;
|
|
88986
|
+
} });
|
|
88987
|
+
Object.defineProperty(exports, "ProcessingInstruction", { enumerable: true, get: function() {
|
|
88988
|
+
return domhandler_1.ProcessingInstruction;
|
|
88989
|
+
} });
|
|
88990
|
+
Object.defineProperty(exports, "Text", { enumerable: true, get: function() {
|
|
88991
|
+
return domhandler_1.Text;
|
|
88992
|
+
} });
|
|
88993
|
+
var domParserOptions = { lowerCaseAttributeNames: false };
|
|
88994
|
+
function HTMLReactParser2(html2, options) {
|
|
88995
|
+
if (typeof html2 !== "string") {
|
|
88996
|
+
throw new TypeError("First argument must be a string");
|
|
88997
|
+
}
|
|
88998
|
+
if (!html2) {
|
|
88999
|
+
return [];
|
|
89000
|
+
}
|
|
89001
|
+
return (0, dom_to_react_1.default)((0, html_dom_parser_1.default)(html2, (options === null || options === void 0 ? void 0 : options.htmlparser2) || domParserOptions), options);
|
|
89002
|
+
}
|
|
89003
|
+
})(lib$3);
|
|
89004
|
+
return lib$3;
|
|
89005
|
+
}
|
|
89006
|
+
var libExports = requireLib();
|
|
89007
|
+
const HTMLReactParser = /* @__PURE__ */ getDefaultExportFromCjs(libExports);
|
|
89008
|
+
const parse = HTMLReactParser.default || HTMLReactParser;
|
|
89009
|
+
const DEFAULT_DEFER_TIMELINE_MS = 48 * 60 * 60 * 1e3;
|
|
89010
|
+
const useDeferredUpdatesStore = create$1()(
|
|
89011
|
+
persist(
|
|
89012
|
+
(set, get) => ({
|
|
89013
|
+
deferredVersion: null,
|
|
89014
|
+
deferredAt: null,
|
|
89015
|
+
deferUpdate: (version) => {
|
|
89016
|
+
set({
|
|
89017
|
+
deferredVersion: version,
|
|
89018
|
+
deferredAt: Date.now()
|
|
89019
|
+
});
|
|
89020
|
+
},
|
|
89021
|
+
shouldShowUpdate: (version) => {
|
|
89022
|
+
const { deferredVersion, deferredAt } = get();
|
|
89023
|
+
if (!deferredVersion || !deferredAt) {
|
|
89024
|
+
return true;
|
|
89025
|
+
}
|
|
89026
|
+
if (deferredVersion !== version) {
|
|
89027
|
+
return true;
|
|
89028
|
+
}
|
|
89029
|
+
const now = Date.now();
|
|
89030
|
+
const timeElapsed = now - deferredAt;
|
|
89031
|
+
return timeElapsed > DEFAULT_DEFER_TIMELINE_MS;
|
|
89032
|
+
},
|
|
89033
|
+
clearDeferredUpdate: () => {
|
|
89034
|
+
set({
|
|
89035
|
+
deferredVersion: null,
|
|
89036
|
+
deferredAt: null
|
|
89037
|
+
});
|
|
89038
|
+
}
|
|
89039
|
+
}),
|
|
89040
|
+
{
|
|
89041
|
+
name: "deferred-updates-storage"
|
|
89042
|
+
}
|
|
89043
|
+
)
|
|
89044
|
+
);
|
|
86412
89045
|
const UpdateContainer = styled$1("div")(({ theme: theme2 }) => ({
|
|
86413
|
-
padding:
|
|
89046
|
+
padding: 24,
|
|
86414
89047
|
borderRadius: 8,
|
|
86415
89048
|
backgroundColor: theme2.palette.background.paper,
|
|
86416
89049
|
boxShadow: "0 4px 20px rgba(0, 0, 0, 0.15)",
|
|
@@ -86419,15 +89052,21 @@ const UpdateContainer = styled$1("div")(({ theme: theme2 }) => ({
|
|
|
86419
89052
|
right: 20,
|
|
86420
89053
|
zIndex: 1300,
|
|
86421
89054
|
// Higher than most components but below modal dialogs
|
|
86422
|
-
|
|
86423
|
-
width: "calc(100% - 40px)"
|
|
89055
|
+
width: 560,
|
|
86424
89056
|
// Responsive width with margins
|
|
89057
|
+
"& a": {
|
|
89058
|
+
color: theme2.palette.primary.main,
|
|
89059
|
+
textDecoration: "none",
|
|
89060
|
+
"&:hover": {
|
|
89061
|
+
textDecoration: "underline"
|
|
89062
|
+
}
|
|
89063
|
+
}
|
|
86425
89064
|
}));
|
|
86426
89065
|
const UpdateActions = styled$1("div")({
|
|
86427
89066
|
display: "flex",
|
|
86428
89067
|
justifyContent: "flex-end",
|
|
86429
89068
|
gap: 8,
|
|
86430
|
-
marginTop:
|
|
89069
|
+
marginTop: 24
|
|
86431
89070
|
});
|
|
86432
89071
|
const ProgressContainer = styled$1("div")({
|
|
86433
89072
|
marginTop: 16,
|
|
@@ -86437,6 +89076,7 @@ const UpdateNotification = ({
|
|
|
86437
89076
|
autoCheck = true
|
|
86438
89077
|
}) => {
|
|
86439
89078
|
const [checking, setChecking] = reactExports.useState(false);
|
|
89079
|
+
const [updatingBackend, setUpdatingBackend] = reactExports.useState(false);
|
|
86440
89080
|
const [updateAvailable, setUpdateAvailable] = reactExports.useState(false);
|
|
86441
89081
|
const [updateInfo, setUpdateInfo] = reactExports.useState(null);
|
|
86442
89082
|
const [downloading, setDownloading] = reactExports.useState(false);
|
|
@@ -86446,6 +89086,16 @@ const UpdateNotification = ({
|
|
|
86446
89086
|
const [updateDownloaded, setUpdateDownloaded] = reactExports.useState(false);
|
|
86447
89087
|
const [error, setError] = reactExports.useState(null);
|
|
86448
89088
|
const [snackbarOpen, setSnackbarOpen] = reactExports.useState(false);
|
|
89089
|
+
const [appVersion, setAppVersion] = reactExports.useState("unknown");
|
|
89090
|
+
const [backendUpdateAvailable, setBackendUpdateAvailable] = reactExports.useState(false);
|
|
89091
|
+
const [backendUpdateInfo, setBackendUpdateInfo] = reactExports.useState(null);
|
|
89092
|
+
const [backendUpdateCompleted, setBackendUpdateCompleted] = reactExports.useState(false);
|
|
89093
|
+
const [manualUpdateRequired, setManualUpdateRequired] = reactExports.useState(false);
|
|
89094
|
+
const [manualUpdateInfo, setManualUpdateInfo] = reactExports.useState(null);
|
|
89095
|
+
const { shouldShowUpdate, deferUpdate } = useDeferredUpdatesStore();
|
|
89096
|
+
reactExports.useEffect(() => {
|
|
89097
|
+
window.api.systemInfo.getAppVersion().then((version) => setAppVersion(version)).catch(() => setAppVersion("unknown"));
|
|
89098
|
+
}, []);
|
|
86449
89099
|
const checkForUpdates = reactExports.useCallback(async () => {
|
|
86450
89100
|
try {
|
|
86451
89101
|
setChecking(true);
|
|
@@ -86476,12 +89126,45 @@ const UpdateNotification = ({
|
|
|
86476
89126
|
const installUpdate = reactExports.useCallback(() => {
|
|
86477
89127
|
window.api.updater.quitAndInstall();
|
|
86478
89128
|
}, []);
|
|
89129
|
+
const updateBackend = reactExports.useCallback(async () => {
|
|
89130
|
+
try {
|
|
89131
|
+
setChecking(true);
|
|
89132
|
+
setUpdatingBackend(true);
|
|
89133
|
+
setError(null);
|
|
89134
|
+
await window.api.updater.updateBackend();
|
|
89135
|
+
} catch (err) {
|
|
89136
|
+
setError(
|
|
89137
|
+
`Error updating server: ${err instanceof Error ? err.message : String(err)}`
|
|
89138
|
+
);
|
|
89139
|
+
setSnackbarOpen(true);
|
|
89140
|
+
setChecking(false);
|
|
89141
|
+
setUpdatingBackend(false);
|
|
89142
|
+
}
|
|
89143
|
+
}, []);
|
|
89144
|
+
const handleDeferBackendUpdate = reactExports.useCallback(() => {
|
|
89145
|
+
if (backendUpdateInfo) {
|
|
89146
|
+
deferUpdate(backendUpdateInfo.latestVersion);
|
|
89147
|
+
setSnackbarOpen(false);
|
|
89148
|
+
setBackendUpdateAvailable(false);
|
|
89149
|
+
setBackendUpdateInfo(null);
|
|
89150
|
+
}
|
|
89151
|
+
}, [deferUpdate, backendUpdateInfo]);
|
|
89152
|
+
const handleDeferUpdate = reactExports.useCallback(() => {
|
|
89153
|
+
if (updateInfo) {
|
|
89154
|
+
deferUpdate(updateInfo.version);
|
|
89155
|
+
setSnackbarOpen(false);
|
|
89156
|
+
setUpdateAvailable(false);
|
|
89157
|
+
setUpdateDownloaded(false);
|
|
89158
|
+
}
|
|
89159
|
+
}, [deferUpdate, updateInfo]);
|
|
86479
89160
|
reactExports.useEffect(() => {
|
|
86480
89161
|
const removeUpdateAvailableListener = window.api.updater.onUpdateAvailable(
|
|
86481
89162
|
(info) => {
|
|
86482
|
-
|
|
86483
|
-
|
|
86484
|
-
|
|
89163
|
+
if (shouldShowUpdate(info.version)) {
|
|
89164
|
+
setUpdateAvailable(true);
|
|
89165
|
+
setUpdateInfo(info);
|
|
89166
|
+
setSnackbarOpen(true);
|
|
89167
|
+
}
|
|
86485
89168
|
}
|
|
86486
89169
|
);
|
|
86487
89170
|
const removeUpdateNotAvailableListener = window.api.updater.onUpdateNotAvailable(() => {
|
|
@@ -86490,16 +89173,27 @@ const UpdateNotification = ({
|
|
|
86490
89173
|
});
|
|
86491
89174
|
const removeUpdateDownloadedListener = window.api.updater.onUpdateDownloaded((info) => {
|
|
86492
89175
|
setDownloading(false);
|
|
86493
|
-
|
|
86494
|
-
|
|
86495
|
-
|
|
89176
|
+
if (shouldShowUpdate(info.version)) {
|
|
89177
|
+
setUpdateDownloaded(true);
|
|
89178
|
+
setUpdateInfo(info);
|
|
89179
|
+
setSnackbarOpen(true);
|
|
89180
|
+
}
|
|
86496
89181
|
});
|
|
86497
89182
|
const removeUpdateErrorListener = window.api.updater.onUpdateError(
|
|
86498
89183
|
(errorMessage) => {
|
|
86499
|
-
|
|
86500
|
-
|
|
86501
|
-
|
|
86502
|
-
|
|
89184
|
+
if (errorMessage.includes("manually")) {
|
|
89185
|
+
setManualUpdateRequired(true);
|
|
89186
|
+
setManualUpdateInfo({
|
|
89187
|
+
message: "Please update the local-operator package manually using pip.",
|
|
89188
|
+
command: "pip install --upgrade local-operator"
|
|
89189
|
+
});
|
|
89190
|
+
setSnackbarOpen(true);
|
|
89191
|
+
} else {
|
|
89192
|
+
setError(errorMessage);
|
|
89193
|
+
setChecking(false);
|
|
89194
|
+
setDownloading(false);
|
|
89195
|
+
setSnackbarOpen(true);
|
|
89196
|
+
}
|
|
86503
89197
|
}
|
|
86504
89198
|
);
|
|
86505
89199
|
const removeUpdateProgressListener = window.api.updater.onUpdateProgress(
|
|
@@ -86507,6 +89201,32 @@ const UpdateNotification = ({
|
|
|
86507
89201
|
setDownloadProgress(progressObj);
|
|
86508
89202
|
}
|
|
86509
89203
|
);
|
|
89204
|
+
const removeBackendUpdateAvailableListener = window.api.updater.onBackendUpdateAvailable((info) => {
|
|
89205
|
+
if (shouldShowUpdate(info.latestVersion)) {
|
|
89206
|
+
const enhancedInfo = {
|
|
89207
|
+
...info,
|
|
89208
|
+
canManageUpdate: !info.updateCommand.includes("manually")
|
|
89209
|
+
};
|
|
89210
|
+
setBackendUpdateAvailable(true);
|
|
89211
|
+
setBackendUpdateInfo(enhancedInfo);
|
|
89212
|
+
setSnackbarOpen(true);
|
|
89213
|
+
}
|
|
89214
|
+
});
|
|
89215
|
+
const removeBackendUpdateNotAvailableListener = window.api.updater.onBackendUpdateNotAvailable(() => {
|
|
89216
|
+
setBackendUpdateAvailable(false);
|
|
89217
|
+
setBackendUpdateInfo(null);
|
|
89218
|
+
});
|
|
89219
|
+
const removeBackendUpdateCompletedListener = window.api.updater.onBackendUpdateCompleted(() => {
|
|
89220
|
+
setBackendUpdateAvailable(false);
|
|
89221
|
+
setBackendUpdateInfo(null);
|
|
89222
|
+
setChecking(false);
|
|
89223
|
+
setUpdatingBackend(false);
|
|
89224
|
+
setBackendUpdateCompleted(true);
|
|
89225
|
+
setSnackbarOpen(true);
|
|
89226
|
+
setTimeout(() => {
|
|
89227
|
+
setBackendUpdateCompleted(false);
|
|
89228
|
+
}, 6e3);
|
|
89229
|
+
});
|
|
86510
89230
|
if (autoCheck) {
|
|
86511
89231
|
checkForUpdates();
|
|
86512
89232
|
}
|
|
@@ -86516,15 +89236,18 @@ const UpdateNotification = ({
|
|
|
86516
89236
|
removeUpdateDownloadedListener();
|
|
86517
89237
|
removeUpdateErrorListener();
|
|
86518
89238
|
removeUpdateProgressListener();
|
|
89239
|
+
removeBackendUpdateAvailableListener();
|
|
89240
|
+
removeBackendUpdateNotAvailableListener();
|
|
89241
|
+
removeBackendUpdateCompletedListener();
|
|
86519
89242
|
};
|
|
86520
|
-
}, [autoCheck, checkForUpdates]);
|
|
89243
|
+
}, [autoCheck, checkForUpdates, shouldShowUpdate]);
|
|
86521
89244
|
const handleSnackbarClose = () => {
|
|
86522
89245
|
setSnackbarOpen(false);
|
|
86523
89246
|
};
|
|
86524
89247
|
if (checking) {
|
|
86525
89248
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(UpdateContainer, { children: [
|
|
86526
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h6", children: "Checking for Updates" }),
|
|
86527
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1", children: "Please wait while we check for available updates..." }),
|
|
89249
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h6", children: updatingBackend ? "Updating Server" : "Checking for Updates" }),
|
|
89250
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1", children: updatingBackend ? "Please wait while the server is being updated. The server will temporarily go offline while it restarts to apply the update." : "Please wait while we check for available updates..." }),
|
|
86528
89251
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ProgressContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(LinearProgress, {}) })
|
|
86529
89252
|
] });
|
|
86530
89253
|
}
|
|
@@ -86548,13 +89271,33 @@ const UpdateNotification = ({
|
|
|
86548
89271
|
"Version ",
|
|
86549
89272
|
updateInfo.version,
|
|
86550
89273
|
" is available. You are currently using version ",
|
|
86551
|
-
|
|
89274
|
+
appVersion,
|
|
86552
89275
|
"."
|
|
86553
89276
|
] }),
|
|
86554
89277
|
updateInfo.releaseNotes && /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body2", sx: { mt: 1 }, children: [
|
|
86555
89278
|
"Release Notes:",
|
|
86556
89279
|
" ",
|
|
86557
|
-
typeof updateInfo.releaseNotes === "string" ?
|
|
89280
|
+
typeof updateInfo.releaseNotes === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
89281
|
+
parse(truncateText(updateInfo.releaseNotes, 400)),
|
|
89282
|
+
updateInfo.releaseNotes.length > 400 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89283
|
+
Link,
|
|
89284
|
+
{
|
|
89285
|
+
href: getReleaseUrl(updateInfo),
|
|
89286
|
+
target: "_blank",
|
|
89287
|
+
rel: "noopener noreferrer",
|
|
89288
|
+
sx: { ml: 1 },
|
|
89289
|
+
children: "View full release notes"
|
|
89290
|
+
}
|
|
89291
|
+
)
|
|
89292
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89293
|
+
Link,
|
|
89294
|
+
{
|
|
89295
|
+
href: getReleaseUrl(updateInfo),
|
|
89296
|
+
target: "_blank",
|
|
89297
|
+
rel: "noopener noreferrer",
|
|
89298
|
+
children: "See release notes on GitHub"
|
|
89299
|
+
}
|
|
89300
|
+
)
|
|
86558
89301
|
] }),
|
|
86559
89302
|
downloading && downloadProgress && /* @__PURE__ */ jsxRuntimeExports.jsxs(ProgressContainer, { children: [
|
|
86560
89303
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body2", children: [
|
|
@@ -86578,16 +89321,27 @@ const UpdateNotification = ({
|
|
|
86578
89321
|
" KB"
|
|
86579
89322
|
] })
|
|
86580
89323
|
] }),
|
|
86581
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(UpdateActions, { children: !downloading && /* @__PURE__ */ jsxRuntimeExports.
|
|
86582
|
-
|
|
86583
|
-
|
|
86584
|
-
|
|
86585
|
-
|
|
86586
|
-
|
|
86587
|
-
|
|
86588
|
-
|
|
86589
|
-
|
|
86590
|
-
|
|
89324
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(UpdateActions, { children: !downloading && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
89325
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89326
|
+
Button,
|
|
89327
|
+
{
|
|
89328
|
+
variant: "contained",
|
|
89329
|
+
color: "primary",
|
|
89330
|
+
onClick: downloadUpdate,
|
|
89331
|
+
disabled: downloading,
|
|
89332
|
+
children: "Download Update"
|
|
89333
|
+
}
|
|
89334
|
+
),
|
|
89335
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89336
|
+
Button,
|
|
89337
|
+
{
|
|
89338
|
+
variant: "outlined",
|
|
89339
|
+
onClick: handleDeferUpdate,
|
|
89340
|
+
disabled: downloading,
|
|
89341
|
+
children: "Update Later"
|
|
89342
|
+
}
|
|
89343
|
+
)
|
|
89344
|
+
] }) })
|
|
86591
89345
|
] }),
|
|
86592
89346
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86593
89347
|
Snackbar,
|
|
@@ -86611,12 +89365,14 @@ const UpdateNotification = ({
|
|
|
86611
89365
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body1", children: [
|
|
86612
89366
|
"Version ",
|
|
86613
89367
|
updateInfo.version,
|
|
86614
|
-
"
|
|
89368
|
+
" is available. You are currently using version ",
|
|
89369
|
+
appVersion,
|
|
89370
|
+
"."
|
|
86615
89371
|
] }),
|
|
86616
89372
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", sx: { mt: 1 }, children: "The application will restart to apply the update." }),
|
|
86617
89373
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(UpdateActions, { children: [
|
|
86618
89374
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "contained", color: "primary", onClick: installUpdate, children: "Install Now" }),
|
|
86619
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outlined", onClick:
|
|
89375
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outlined", onClick: handleDeferUpdate, children: "Update Later" })
|
|
86620
89376
|
] })
|
|
86621
89377
|
] }),
|
|
86622
89378
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -86631,224 +89387,148 @@ const UpdateNotification = ({
|
|
|
86631
89387
|
)
|
|
86632
89388
|
] });
|
|
86633
89389
|
}
|
|
86634
|
-
|
|
86635
|
-
|
|
86636
|
-
|
|
86637
|
-
|
|
86638
|
-
|
|
86639
|
-
|
|
86640
|
-
|
|
86641
|
-
|
|
86642
|
-
|
|
86643
|
-
|
|
86644
|
-
|
|
86645
|
-
|
|
86646
|
-
|
|
86647
|
-
const [updatingBackend, setUpdatingBackend] = reactExports.useState(false);
|
|
86648
|
-
const checkForUpdates = async () => {
|
|
86649
|
-
try {
|
|
86650
|
-
setChecking(true);
|
|
86651
|
-
setError(null);
|
|
86652
|
-
setDevModeMessage(null);
|
|
86653
|
-
setNpxUpdateInfo(null);
|
|
86654
|
-
setBackendUpdateInfo(null);
|
|
86655
|
-
setBackendUpdateCompleted(false);
|
|
86656
|
-
await window.api.updater.checkForAllUpdates();
|
|
86657
|
-
setNoUpdateAvailable(true);
|
|
86658
|
-
setSnackbarOpen(true);
|
|
86659
|
-
} catch (err) {
|
|
86660
|
-
setError(
|
|
86661
|
-
`Error checking for updates: ${err instanceof Error ? err.message : String(err)}`
|
|
86662
|
-
);
|
|
86663
|
-
setSnackbarOpen(true);
|
|
86664
|
-
} finally {
|
|
86665
|
-
setChecking(false);
|
|
86666
|
-
}
|
|
86667
|
-
};
|
|
86668
|
-
const updateBackend = async () => {
|
|
86669
|
-
try {
|
|
86670
|
-
setUpdatingBackend(true);
|
|
86671
|
-
setError(null);
|
|
86672
|
-
await window.api.updater.updateBackend();
|
|
86673
|
-
} catch (err) {
|
|
86674
|
-
setError(
|
|
86675
|
-
`Error updating backend: ${err instanceof Error ? err.message : String(err)}`
|
|
86676
|
-
);
|
|
86677
|
-
setSnackbarOpen(true);
|
|
86678
|
-
} finally {
|
|
86679
|
-
setUpdatingBackend(false);
|
|
86680
|
-
}
|
|
86681
|
-
};
|
|
86682
|
-
reactExports.useEffect(() => {
|
|
86683
|
-
const removeUpdateNotAvailableListener = window.api.updater.onUpdateNotAvailable(() => {
|
|
86684
|
-
setNoUpdateAvailable(true);
|
|
86685
|
-
setSnackbarOpen(true);
|
|
86686
|
-
});
|
|
86687
|
-
const removeUpdateDevModeListener = window.api.updater.onUpdateDevMode(
|
|
86688
|
-
(message2) => {
|
|
86689
|
-
setDevModeMessage(message2);
|
|
86690
|
-
setChecking(false);
|
|
86691
|
-
setSnackbarOpen(true);
|
|
86692
|
-
}
|
|
86693
|
-
);
|
|
86694
|
-
const removeUpdateNpxAvailableListener = window.api.updater.onUpdateNpxAvailable((info) => {
|
|
86695
|
-
setNpxUpdateInfo(info);
|
|
86696
|
-
setChecking(false);
|
|
86697
|
-
setSnackbarOpen(true);
|
|
86698
|
-
});
|
|
86699
|
-
const removeBackendUpdateAvailableListener = window.api.updater.onBackendUpdateAvailable((info) => {
|
|
86700
|
-
setBackendUpdateInfo(info);
|
|
86701
|
-
setChecking(false);
|
|
86702
|
-
setSnackbarOpen(true);
|
|
86703
|
-
});
|
|
86704
|
-
const removeBackendUpdateNotAvailableListener = window.api.updater.onBackendUpdateNotAvailable(() => {
|
|
86705
|
-
});
|
|
86706
|
-
const removeBackendUpdateCompletedListener = window.api.updater.onBackendUpdateCompleted(() => {
|
|
86707
|
-
setBackendUpdateCompleted(true);
|
|
86708
|
-
setBackendUpdateInfo(null);
|
|
86709
|
-
setUpdatingBackend(false);
|
|
86710
|
-
setSnackbarOpen(true);
|
|
86711
|
-
});
|
|
86712
|
-
const removeUpdateErrorListener = window.api.updater.onUpdateError(
|
|
86713
|
-
(errorMessage) => {
|
|
86714
|
-
setError(errorMessage);
|
|
86715
|
-
setChecking(false);
|
|
86716
|
-
setUpdatingBackend(false);
|
|
86717
|
-
setSnackbarOpen(true);
|
|
86718
|
-
}
|
|
86719
|
-
);
|
|
86720
|
-
return () => {
|
|
86721
|
-
removeUpdateNotAvailableListener();
|
|
86722
|
-
removeUpdateDevModeListener();
|
|
86723
|
-
removeUpdateNpxAvailableListener();
|
|
86724
|
-
removeBackendUpdateAvailableListener();
|
|
86725
|
-
removeBackendUpdateNotAvailableListener();
|
|
86726
|
-
removeBackendUpdateCompletedListener();
|
|
86727
|
-
removeUpdateErrorListener();
|
|
86728
|
-
};
|
|
86729
|
-
}, []);
|
|
86730
|
-
const handleSnackbarClose = () => {
|
|
86731
|
-
setSnackbarOpen(false);
|
|
86732
|
-
setNoUpdateAvailable(false);
|
|
86733
|
-
setDevModeMessage(null);
|
|
86734
|
-
setNpxUpdateInfo(null);
|
|
86735
|
-
setBackendUpdateCompleted(false);
|
|
86736
|
-
};
|
|
86737
|
-
const handleCopyCommand = (command) => {
|
|
86738
|
-
navigator.clipboard.writeText(command);
|
|
86739
|
-
setError("Command copied to clipboard!");
|
|
86740
|
-
setTimeout(() => {
|
|
86741
|
-
setError(null);
|
|
86742
|
-
}, 2e3);
|
|
86743
|
-
};
|
|
86744
|
-
let snackbarContent = null;
|
|
86745
|
-
if (error) {
|
|
86746
|
-
snackbarContent = /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { onClose: handleSnackbarClose, severity: "error", children: error });
|
|
86747
|
-
} else if (backendUpdateCompleted) {
|
|
86748
|
-
snackbarContent = /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { onClose: handleSnackbarClose, severity: "success", children: "Backend updated successfully" });
|
|
86749
|
-
} else if (backendUpdateInfo) {
|
|
86750
|
-
snackbarContent = /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
86751
|
-
Alert,
|
|
86752
|
-
{
|
|
86753
|
-
onClose: handleSnackbarClose,
|
|
86754
|
-
severity: "info",
|
|
86755
|
-
action: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
89390
|
+
if (backendUpdateAvailable && backendUpdateInfo) {
|
|
89391
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
89392
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(UpdateContainer, { children: [
|
|
89393
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h6", children: "Server Update Available" }),
|
|
89394
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body1", children: [
|
|
89395
|
+
"Server version ",
|
|
89396
|
+
backendUpdateInfo.latestVersion,
|
|
89397
|
+
" is available. You are currently using version ",
|
|
89398
|
+
backendUpdateInfo.currentVersion,
|
|
89399
|
+
"."
|
|
89400
|
+
] }),
|
|
89401
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", sx: { mt: 1 }, children: "Updating the server will improve AI functionality, improve security, and fix bugs." }),
|
|
89402
|
+
backendUpdateInfo.canManageUpdate ? /* @__PURE__ */ jsxRuntimeExports.jsxs(UpdateActions, { children: [
|
|
86756
89403
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86757
89404
|
Button,
|
|
86758
89405
|
{
|
|
86759
|
-
|
|
86760
|
-
|
|
86761
|
-
onClick:
|
|
86762
|
-
|
|
86763
|
-
children: "
|
|
89406
|
+
variant: "contained",
|
|
89407
|
+
color: "primary",
|
|
89408
|
+
onClick: updateBackend,
|
|
89409
|
+
disabled: checking,
|
|
89410
|
+
children: checking ? "Updating..." : "Update Server"
|
|
86764
89411
|
}
|
|
86765
89412
|
),
|
|
86766
89413
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86767
89414
|
Button,
|
|
86768
89415
|
{
|
|
86769
|
-
|
|
86770
|
-
|
|
86771
|
-
|
|
86772
|
-
|
|
86773
|
-
children: updatingBackend ? "Updating..." : "Update"
|
|
89416
|
+
variant: "outlined",
|
|
89417
|
+
onClick: handleDeferBackendUpdate,
|
|
89418
|
+
disabled: checking,
|
|
89419
|
+
children: "Update Later"
|
|
86774
89420
|
}
|
|
86775
89421
|
)
|
|
86776
|
-
] }),
|
|
86777
|
-
|
|
86778
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
86779
|
-
|
|
86780
|
-
|
|
86781
|
-
|
|
86782
|
-
|
|
86783
|
-
|
|
86784
|
-
|
|
86785
|
-
|
|
86786
|
-
|
|
86787
|
-
|
|
86788
|
-
|
|
86789
|
-
|
|
89422
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
89423
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", sx: { mt: 2, color: "warning.main" }, children: "The backend server is running externally and cannot be updated automatically. Please update it manually using the following command:" }),
|
|
89424
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89425
|
+
Typography,
|
|
89426
|
+
{
|
|
89427
|
+
variant: "body2",
|
|
89428
|
+
sx: {
|
|
89429
|
+
mt: 1,
|
|
89430
|
+
p: 1,
|
|
89431
|
+
backgroundColor: "background.default",
|
|
89432
|
+
borderRadius: 1,
|
|
89433
|
+
fontFamily: "monospace"
|
|
89434
|
+
},
|
|
89435
|
+
children: backendUpdateInfo.updateCommand
|
|
89436
|
+
}
|
|
89437
|
+
),
|
|
89438
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(UpdateActions, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89439
|
+
Button,
|
|
89440
|
+
{
|
|
89441
|
+
variant: "outlined",
|
|
89442
|
+
onClick: handleDeferBackendUpdate,
|
|
89443
|
+
disabled: checking,
|
|
89444
|
+
children: "Dismiss"
|
|
89445
|
+
}
|
|
89446
|
+
) })
|
|
89447
|
+
] })
|
|
89448
|
+
] }),
|
|
89449
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89450
|
+
Snackbar,
|
|
89451
|
+
{
|
|
89452
|
+
open: snackbarOpen,
|
|
89453
|
+
autoHideDuration: 6e3,
|
|
89454
|
+
onClose: handleSnackbarClose,
|
|
89455
|
+
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
89456
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, { onClose: handleSnackbarClose, severity: "info", children: [
|
|
89457
|
+
"A new server update is available: v",
|
|
89458
|
+
backendUpdateInfo.latestVersion
|
|
86790
89459
|
] })
|
|
86791
|
-
|
|
86792
|
-
|
|
86793
|
-
);
|
|
86794
|
-
}
|
|
86795
|
-
|
|
86796
|
-
|
|
89460
|
+
}
|
|
89461
|
+
)
|
|
89462
|
+
] });
|
|
89463
|
+
}
|
|
89464
|
+
if (manualUpdateRequired && manualUpdateInfo) {
|
|
89465
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89466
|
+
Snackbar,
|
|
86797
89467
|
{
|
|
89468
|
+
open: snackbarOpen,
|
|
89469
|
+
autoHideDuration: 1e4,
|
|
86798
89470
|
onClose: handleSnackbarClose,
|
|
86799
|
-
|
|
86800
|
-
|
|
86801
|
-
|
|
89471
|
+
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
89472
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
89473
|
+
Alert,
|
|
86802
89474
|
{
|
|
86803
|
-
|
|
86804
|
-
|
|
86805
|
-
|
|
86806
|
-
children:
|
|
89475
|
+
onClose: handleSnackbarClose,
|
|
89476
|
+
severity: "warning",
|
|
89477
|
+
sx: { width: "100%" },
|
|
89478
|
+
children: [
|
|
89479
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", children: manualUpdateInfo.message }),
|
|
89480
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89481
|
+
Typography,
|
|
89482
|
+
{
|
|
89483
|
+
variant: "body2",
|
|
89484
|
+
sx: {
|
|
89485
|
+
mt: 1,
|
|
89486
|
+
p: 1,
|
|
89487
|
+
backgroundColor: "background.default",
|
|
89488
|
+
borderRadius: 1,
|
|
89489
|
+
fontFamily: "monospace"
|
|
89490
|
+
},
|
|
89491
|
+
children: manualUpdateInfo.command
|
|
89492
|
+
}
|
|
89493
|
+
)
|
|
89494
|
+
]
|
|
86807
89495
|
}
|
|
86808
|
-
)
|
|
86809
|
-
children: [
|
|
86810
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body2", sx: { mb: 1 }, children: [
|
|
86811
|
-
"UI update available: ",
|
|
86812
|
-
npxUpdateInfo.latestVersion,
|
|
86813
|
-
" (current:",
|
|
86814
|
-
" ",
|
|
86815
|
-
npxUpdateInfo.currentVersion,
|
|
86816
|
-
")"
|
|
86817
|
-
] }),
|
|
86818
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body2", children: [
|
|
86819
|
-
"To update, run: ",
|
|
86820
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: npxUpdateInfo.updateCommand })
|
|
86821
|
-
] })
|
|
86822
|
-
]
|
|
89496
|
+
)
|
|
86823
89497
|
}
|
|
86824
|
-
);
|
|
86825
|
-
} else if (devModeMessage) {
|
|
86826
|
-
snackbarContent = /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { onClose: handleSnackbarClose, severity: "info", children: devModeMessage });
|
|
86827
|
-
} else if (noUpdateAvailable) {
|
|
86828
|
-
snackbarContent = /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { onClose: handleSnackbarClose, severity: "info", children: "You're using the latest version" });
|
|
89498
|
+
) });
|
|
86829
89499
|
}
|
|
86830
|
-
|
|
86831
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86832
|
-
Button,
|
|
86833
|
-
{
|
|
86834
|
-
variant: "outlined",
|
|
86835
|
-
onClick: checkForUpdates,
|
|
86836
|
-
disabled: checking,
|
|
86837
|
-
startIcon: checking ? /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { width: 16, height: 16 } }) : void 0,
|
|
86838
|
-
children: checking ? "Checking..." : "Check for Updates"
|
|
86839
|
-
}
|
|
86840
|
-
),
|
|
86841
|
-
snackbarOpen && snackbarContent && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89500
|
+
if (backendUpdateCompleted) {
|
|
89501
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
86842
89502
|
Snackbar,
|
|
86843
89503
|
{
|
|
86844
|
-
open:
|
|
89504
|
+
open: true,
|
|
86845
89505
|
autoHideDuration: 6e3,
|
|
86846
|
-
onClose:
|
|
89506
|
+
onClose: () => setBackendUpdateCompleted(false),
|
|
86847
89507
|
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
86848
|
-
children:
|
|
89508
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
89509
|
+
Alert,
|
|
89510
|
+
{
|
|
89511
|
+
onClose: () => setBackendUpdateCompleted(false),
|
|
89512
|
+
severity: "success",
|
|
89513
|
+
children: "Server update completed successfully"
|
|
89514
|
+
}
|
|
89515
|
+
)
|
|
86849
89516
|
}
|
|
86850
|
-
)
|
|
86851
|
-
|
|
89517
|
+
);
|
|
89518
|
+
}
|
|
89519
|
+
return null;
|
|
89520
|
+
};
|
|
89521
|
+
const truncateText = (text2, maxLength) => {
|
|
89522
|
+
if (text2.length <= maxLength) return text2;
|
|
89523
|
+
return `${text2.substring(0, maxLength)}...`;
|
|
89524
|
+
};
|
|
89525
|
+
const getReleaseUrl = (updateInfo) => {
|
|
89526
|
+
if (updateInfo.releaseNotes && typeof updateInfo.releaseNotes !== "string") {
|
|
89527
|
+
const releaseNotesObj = updateInfo.releaseNotes;
|
|
89528
|
+
const defaultUrl = `https://github.com/local-operator/local-operator-ui/releases/tag/v${updateInfo.version}`;
|
|
89529
|
+
return releaseNotesObj.path || defaultUrl;
|
|
89530
|
+
}
|
|
89531
|
+
return `https://github.com/local-operator/local-operator-ui/releases/tag/v${updateInfo.version}`;
|
|
86852
89532
|
};
|
|
86853
89533
|
const localOperatorIcon = "" + new URL("icon-ngVHF_bZ.png", import.meta.url).href;
|
|
86854
89534
|
const pulse$1 = keyframes`
|
|
@@ -87611,30 +90291,6 @@ const EmojiContainer = styled$1(Box)(({ theme: theme2 }) => ({
|
|
|
87611
90291
|
marginRight: theme2.spacing(1),
|
|
87612
90292
|
fontSize: "1em"
|
|
87613
90293
|
}));
|
|
87614
|
-
const configQueryKey = ["config"];
|
|
87615
|
-
const useConfig = () => {
|
|
87616
|
-
return useQuery({
|
|
87617
|
-
queryKey: configQueryKey,
|
|
87618
|
-
queryFn: async () => {
|
|
87619
|
-
try {
|
|
87620
|
-
const client = createLocalOperatorClient(apiConfig.baseUrl);
|
|
87621
|
-
const response = await client.config.getConfig();
|
|
87622
|
-
if (response.status >= 400) {
|
|
87623
|
-
throw new Error(response.message || "Failed to fetch configuration");
|
|
87624
|
-
}
|
|
87625
|
-
return response.result;
|
|
87626
|
-
} catch (error) {
|
|
87627
|
-
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred while fetching configuration";
|
|
87628
|
-
y$1.error(errorMessage);
|
|
87629
|
-
throw error;
|
|
87630
|
-
}
|
|
87631
|
-
},
|
|
87632
|
-
// Prevent automatic refetches on window focus
|
|
87633
|
-
refetchOnWindowFocus: false,
|
|
87634
|
-
// Prevent stale time to avoid unnecessary refetches
|
|
87635
|
-
staleTime: 5e3
|
|
87636
|
-
});
|
|
87637
|
-
};
|
|
87638
90294
|
const CreateAgentStep = () => {
|
|
87639
90295
|
const [name2, setName] = reactExports.useState("");
|
|
87640
90296
|
const [description, setDescription] = reactExports.useState("");
|
|
@@ -89325,6 +91981,88 @@ const ToggleSetting = ({
|
|
|
89325
91981
|
) })
|
|
89326
91982
|
] });
|
|
89327
91983
|
};
|
|
91984
|
+
const CheckForUpdatesButton = () => {
|
|
91985
|
+
const [checking, setChecking] = reactExports.useState(false);
|
|
91986
|
+
const [snackbarOpen, setSnackbarOpen] = reactExports.useState(false);
|
|
91987
|
+
const [manualUpdateInfo, setManualUpdateInfo] = reactExports.useState(null);
|
|
91988
|
+
const { clearDeferredUpdate } = useDeferredUpdatesStore();
|
|
91989
|
+
reactExports.useEffect(() => {
|
|
91990
|
+
const removeManualUpdateListener = window.api.updater.onUpdateError(
|
|
91991
|
+
(message2) => {
|
|
91992
|
+
if (message2.includes("manually")) {
|
|
91993
|
+
setManualUpdateInfo({
|
|
91994
|
+
message: "Please update the local-operator package manually using pip.",
|
|
91995
|
+
command: "pip install --upgrade local-operator"
|
|
91996
|
+
});
|
|
91997
|
+
setSnackbarOpen(true);
|
|
91998
|
+
}
|
|
91999
|
+
}
|
|
92000
|
+
);
|
|
92001
|
+
return () => {
|
|
92002
|
+
removeManualUpdateListener();
|
|
92003
|
+
};
|
|
92004
|
+
}, []);
|
|
92005
|
+
const checkForUpdates = async () => {
|
|
92006
|
+
try {
|
|
92007
|
+
setChecking(true);
|
|
92008
|
+
clearDeferredUpdate();
|
|
92009
|
+
await window.api.updater.checkForAllUpdates();
|
|
92010
|
+
} catch (error) {
|
|
92011
|
+
console.error("Error checking for updates:", error);
|
|
92012
|
+
} finally {
|
|
92013
|
+
setChecking(false);
|
|
92014
|
+
}
|
|
92015
|
+
};
|
|
92016
|
+
const handleSnackbarClose = () => {
|
|
92017
|
+
setSnackbarOpen(false);
|
|
92018
|
+
};
|
|
92019
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
92020
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
92021
|
+
Button,
|
|
92022
|
+
{
|
|
92023
|
+
variant: "outlined",
|
|
92024
|
+
onClick: checkForUpdates,
|
|
92025
|
+
disabled: checking,
|
|
92026
|
+
startIcon: checking ? /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { width: 16, height: 16 } }) : void 0,
|
|
92027
|
+
children: checking ? "Checking..." : "Check for Updates"
|
|
92028
|
+
}
|
|
92029
|
+
),
|
|
92030
|
+
manualUpdateInfo && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
92031
|
+
Snackbar,
|
|
92032
|
+
{
|
|
92033
|
+
open: snackbarOpen,
|
|
92034
|
+
autoHideDuration: 1e4,
|
|
92035
|
+
onClose: handleSnackbarClose,
|
|
92036
|
+
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
92037
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
92038
|
+
Alert,
|
|
92039
|
+
{
|
|
92040
|
+
onClose: handleSnackbarClose,
|
|
92041
|
+
severity: "warning",
|
|
92042
|
+
sx: { width: "100%" },
|
|
92043
|
+
children: [
|
|
92044
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", children: manualUpdateInfo.message }),
|
|
92045
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
92046
|
+
Typography,
|
|
92047
|
+
{
|
|
92048
|
+
variant: "body2",
|
|
92049
|
+
sx: {
|
|
92050
|
+
mt: 1,
|
|
92051
|
+
p: 1,
|
|
92052
|
+
backgroundColor: "background.default",
|
|
92053
|
+
borderRadius: 1,
|
|
92054
|
+
fontFamily: "monospace"
|
|
92055
|
+
},
|
|
92056
|
+
children: manualUpdateInfo.command
|
|
92057
|
+
}
|
|
92058
|
+
)
|
|
92059
|
+
]
|
|
92060
|
+
}
|
|
92061
|
+
)
|
|
92062
|
+
}
|
|
92063
|
+
)
|
|
92064
|
+
] });
|
|
92065
|
+
};
|
|
89328
92066
|
const StyledCard$3 = styled$1(Card)(() => ({
|
|
89329
92067
|
marginBottom: 32,
|
|
89330
92068
|
backgroundColor: "background.paper",
|
|
@@ -90075,7 +92813,10 @@ const DEFAULT_SETTINGS_SECTIONS = [
|
|
|
90075
92813
|
];
|
|
90076
92814
|
const systemPromptQueryKey = ["system-prompt"];
|
|
90077
92815
|
const useSystemPrompt = () => {
|
|
92816
|
+
const { shouldEnableQuery } = useConnectivityGate();
|
|
90078
92817
|
return useQuery({
|
|
92818
|
+
// Only enable the query if server is online (bypass internet check)
|
|
92819
|
+
enabled: shouldEnableQuery({ bypassInternetCheck: true }),
|
|
90079
92820
|
queryKey: systemPromptQueryKey,
|
|
90080
92821
|
queryFn: async () => {
|
|
90081
92822
|
try {
|
|
@@ -90090,7 +92831,7 @@ const useSystemPrompt = () => {
|
|
|
90090
92831
|
return response.result;
|
|
90091
92832
|
} catch (error) {
|
|
90092
92833
|
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred while fetching system prompt";
|
|
90093
|
-
|
|
92834
|
+
showErrorToast(errorMessage);
|
|
90094
92835
|
throw error;
|
|
90095
92836
|
}
|
|
90096
92837
|
},
|
|
@@ -90824,6 +93565,7 @@ const App = () => {
|
|
|
90824
93565
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
|
|
90825
93566
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ModelsInitializer, {}),
|
|
90826
93567
|
/* @__PURE__ */ jsxRuntimeExports.jsx(OnboardingModal, { open: isOnboardingActive }),
|
|
93568
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ConnectivityBanner, {}),
|
|
90827
93569
|
/* @__PURE__ */ jsxRuntimeExports.jsx(UpdateNotification, {}),
|
|
90828
93570
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarNavigation, {}),
|
|
90829
93571
|
/* @__PURE__ */ jsxRuntimeExports.jsx(MainContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Routes, { children: [
|