@postgres.ai/shared 4.2.0-pr-1200.1 → 4.2.0-pr-1203
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/components/Button/index.js +1 -0
- package/components/Button2/index.js +1 -0
- package/components/ErrorBoundary/index.d.ts +15 -0
- package/components/ErrorBoundary/index.js +24 -0
- package/components/Status/index.js +1 -0
- package/components/TextField/index.js +1 -1
- package/config/index.js +1 -1
- package/helpers/getEntropy.js +2 -2
- package/helpers/request.js +1 -1
- package/icons/ArrowDropDown/index.js +1 -3
- package/icons/Renewable/index.js +1 -0
- package/icons/Shield/index.js +1 -0
- package/icons/Warning/index.js +1 -3
- package/package.json +1 -1
- package/pages/Branches/index.js +4 -2
- package/pages/Clone/Status/index.js +1 -0
- package/pages/Clone/index.js +3 -3
- package/pages/CreateClone/index.js +1 -1
- package/pages/CreateClone/utils/index.js +1 -1
- package/pages/Instance/Configuration/Header/index.js +2 -2
- package/pages/Instance/Configuration/index.js +22 -15
- package/pages/Instance/Configuration/tooltipText.js +4 -4
- package/pages/Instance/Configuration/useForm.js +1 -1
- package/pages/Instance/Configuration/utils/index.d.ts +1 -1
- package/pages/Instance/Configuration/utils/index.js +16 -16
- package/pages/Instance/Tabs/PlatformTabs.d.ts +2 -2
- package/pages/Instance/Tabs/PlatformTabs.js +1 -1
- package/pages/Instance/Tabs/index.d.ts +1 -1
- package/pages/Instance/index.js +2 -2
- package/pages/Instance/stores/Main.js +5 -5
- package/pages/Logs/hooks/useWsScroll.js +22 -14
- package/pages/Logs/index.js +11 -14
- package/pages/Logs/utils/index.js +1 -1
- package/pages/Logs/wsLogs.d.ts +1 -0
- package/pages/Logs/wsLogs.js +25 -1
- package/pages/Snapshots/Snapshot/stores/Main.js +2 -1
- package/styles/icons.js +1 -1
- package/styles/styles.js +3 -0
- package/styles/theme.js +1 -2
- package/types/api/endpoints/getFullConfig.d.ts +1 -1
- package/types/api/endpoints/testDbSource.js +2 -2
- package/types/api/entities/clone.d.ts +9 -0
- package/types/api/entities/clone.js +1 -0
- package/types/api/entities/config.d.ts +1 -1
- package/types/api/entities/instance.d.ts +5 -0
- package/types/api/entities/instanceRetrieval.d.ts +2 -2
- package/types/api/entities/instanceState.d.ts +5 -0
- package/utils/api.js +2 -2
|
@@ -38,3 +38,4 @@ export const Button = forwardRef((props, ref) => {
|
|
|
38
38
|
const classes = useStyles();
|
|
39
39
|
return (_jsx(ButtonBase, { ...buttonProps, size: size, ref: ref, disabled: isDisabled, className: clsx(classes.root, className), variant: VARIANT_MAP[variant], color: "primary" }));
|
|
40
40
|
});
|
|
41
|
+
Button.displayName = 'Button';
|
|
@@ -8,3 +8,4 @@ export const Button = React.forwardRef((props, ref) => {
|
|
|
8
8
|
const isDisabled = props.isDisabled || props.isLoading;
|
|
9
9
|
return (_jsxs("button", { ref: ref, className: cn(styles.root, styles[size], styles[theme], props.className), type: type, onClick: props.onClick, disabled: isDisabled, children: [props.children, props.isLoading && _jsx(Spinner, { size: "sm", className: styles.spinner })] }));
|
|
10
10
|
});
|
|
11
|
+
Button.displayName = 'Button2';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Component, ErrorInfo, ReactNode } from 'react';
|
|
2
|
+
declare type Props = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
fallback?: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
declare type State = {
|
|
7
|
+
error: Error | null;
|
|
8
|
+
};
|
|
9
|
+
export declare class ErrorBoundary extends Component<Props, State> {
|
|
10
|
+
state: State;
|
|
11
|
+
static getDerivedStateFromError(error: Error): State;
|
|
12
|
+
componentDidCatch(error: Error, info: ErrorInfo): void;
|
|
13
|
+
render(): {} | null | undefined;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Component } from 'react';
|
|
3
|
+
import { ErrorStub } from '@postgres.ai/shared/components/ErrorStub';
|
|
4
|
+
// React unmounts the entire tree when a render throws and no boundary catches it, leaving a
|
|
5
|
+
// blank page with nothing pointing at the cause.
|
|
6
|
+
export class ErrorBoundary extends Component {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.state = { error: null };
|
|
10
|
+
}
|
|
11
|
+
static getDerivedStateFromError(error) {
|
|
12
|
+
return { error };
|
|
13
|
+
}
|
|
14
|
+
componentDidCatch(error, info) {
|
|
15
|
+
console.error('Unhandled UI error:', error, info.componentStack);
|
|
16
|
+
}
|
|
17
|
+
render() {
|
|
18
|
+
if (!this.state.error)
|
|
19
|
+
return this.props.children;
|
|
20
|
+
if (this.props.fallback)
|
|
21
|
+
return this.props.fallback;
|
|
22
|
+
return (_jsx(ErrorStub, { title: "Something went wrong", message: this.state.error.message }));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -21,3 +21,4 @@ export const Status = React.forwardRef((props, ref) => {
|
|
|
21
21
|
const { type = 'ok', children = type, icon = TYPE_TO_ICON[type], className, classNameIcon, disableColor, ...hiddenProps } = props;
|
|
22
22
|
return (_jsxs("span", { ...hiddenProps, className: clsx(styles.root, !disableColor && styles[type], className), ref: ref, children: [icon && (_jsxs("span", { className: clsx(styles.iconContainer, classNameIcon), children: [icon, "\u2009"] })), children] }));
|
|
23
23
|
});
|
|
24
|
+
Status.displayName = 'Status';
|
|
@@ -39,5 +39,5 @@ export const TextField = (props) => {
|
|
|
39
39
|
classes: {
|
|
40
40
|
root: classes.helperText
|
|
41
41
|
}
|
|
42
|
-
}, onChange: props.onChange,
|
|
42
|
+
}, onChange: props.onChange, select: props.select, type: props.type, error: props.error, placeholder: props.placeholder, onBlur: props.onBlur, onFocus: props.onFocus, name: props.name, helperText: props.helperText, style: props.style, children: props.children }));
|
|
43
43
|
};
|
package/config/index.js
CHANGED
package/helpers/getEntropy.js
CHANGED
|
@@ -6,7 +6,7 @@ const upperChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
6
6
|
const digitsChars = '0123456789';
|
|
7
7
|
export const MIN_ENTROPY = 60;
|
|
8
8
|
function getBase(password) {
|
|
9
|
-
|
|
9
|
+
const uniqueChars = [];
|
|
10
10
|
for (const c of password) {
|
|
11
11
|
if (!uniqueChars.includes(c)) {
|
|
12
12
|
uniqueChars.push(c);
|
|
@@ -71,7 +71,7 @@ const seqKeyboard2 = 'zxcvbnm';
|
|
|
71
71
|
const seqAlphabet = 'abcdefghijklmnopqrstuvwxyz';
|
|
72
72
|
function removeMoreThanTwoFromSequence(s, seq) {
|
|
73
73
|
const seqRunes = Array.from(seq);
|
|
74
|
-
|
|
74
|
+
const runes = Array.from(s);
|
|
75
75
|
let matches = 0;
|
|
76
76
|
for (let i = 0; i < runes.length; i++) {
|
|
77
77
|
for (let j = 0; j < seqRunes.length; j++) {
|
package/helpers/request.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
export const ArrowDropDownIcon = (props) => {
|
|
3
|
-
return (_jsx("svg", { className: props.className, viewBox: "0 0 8 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", onClick: props.onClick, children: _jsx("path", {
|
|
4
|
-
// eslint-disable-next-line max-len
|
|
5
|
-
d: "M7.8515 0.898419C7.75261 0.799446 7.63538 0.75 7.49994 0.75H0.500038C0.364534 0.75 0.247392 0.799446 0.148419 0.898419C0.0494455 0.997501 0 1.11464 0 1.25006C0 1.38546 0.0494455 1.5026 0.148419 1.6016L3.64838 5.10156C3.74746 5.20054 3.86461 5.25009 4 5.25009C4.13539 5.25009 4.25265 5.20054 4.35154 5.10156L7.8515 1.60157C7.95036 1.5026 8 1.38546 8 1.25004C8 1.11464 7.95036 0.997501 7.8515 0.898419Z", fill: "currentColor" }) }));
|
|
3
|
+
return (_jsx("svg", { className: props.className, viewBox: "0 0 8 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", onClick: props.onClick, children: _jsx("path", { d: "M7.8515 0.898419C7.75261 0.799446 7.63538 0.75 7.49994 0.75H0.500038C0.364534 0.75 0.247392 0.799446 0.148419 0.898419C0.0494455 0.997501 0 1.11464 0 1.25006C0 1.38546 0.0494455 1.5026 0.148419 1.6016L3.64838 5.10156C3.74746 5.20054 3.86461 5.25009 4 5.25009C4.13539 5.25009 4.25265 5.20054 4.35154 5.10156L7.8515 1.60157C7.95036 1.5026 8 1.38546 8 1.25004C8 1.11464 7.95036 0.997501 7.8515 0.898419Z", fill: "currentColor" }) }));
|
|
6
4
|
};
|
package/icons/Renewable/index.js
CHANGED
|
@@ -10,3 +10,4 @@ export const RenewableIcon = React.forwardRef((props, ref) => {
|
|
|
10
10
|
const { className, ...hiddenProps } = props;
|
|
11
11
|
return (_jsxs("svg", { ...hiddenProps, ref: ref, className: className, viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M6.14337 0L8.19809 2.9755L4.59387 3.26718L5.16139 2.07055C4.22847 2.10806 3.3161 2.48386 2.66614 3.18795L2.20594 2.76312C3.05679 1.84141 4.26977 1.40592 5.45883 1.44339L6.14337 0Z", fill: "currentColor" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.7343 9.13905L6.12728 9.39371L7.71025 6.14261L8.45158 7.24009C8.89401 6.4179 9.03479 5.44126 8.75942 4.52346L9.35931 4.34347C9.71979 5.54495 9.47743 6.81074 8.8401 7.81527L9.7343 9.13905Z", fill: "currentColor" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M0 7.57495L1.61898 4.34163L3.60962 7.36037L2.28757 7.43896C2.76953 8.23862 3.53811 8.85742 4.46813 9.08819L4.3173 9.69607C3.09983 9.39397 2.13422 8.54041 1.59468 7.48015L0 7.57495Z", fill: "currentColor" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M6.26612 2.51078C5.07868 2.17637 3.73747 2.48899 2.89616 3.40036L1.97575 2.55072C3.17071 1.25624 5.01514 0.857134 6.60567 1.30506L6.26612 2.51078Z", fill: "currentColor" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.33938 8.11969C8.34588 7.28131 8.83847 5.87691 8.45939 4.61345L9.65917 4.25348C10.1969 6.04581 9.49312 7.95595 8.14107 9.08215L7.33938 8.11969Z", fill: "currentColor" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M2.07072 5.82736C2.20416 7.20026 3.19328 8.44922 4.54348 8.78425L4.24181 10C2.32911 9.5254 1.00387 7.79934 0.823976 5.94853L2.07072 5.82736Z", fill: "currentColor" })] }));
|
|
12
12
|
});
|
|
13
|
+
RenewableIcon.displayName = 'RenewableIcon';
|
package/icons/Shield/index.js
CHANGED
|
@@ -10,3 +10,4 @@ export const ShieldIcon = React.forwardRef((props, ref) => {
|
|
|
10
10
|
const { className, ...hiddenProps } = props;
|
|
11
11
|
return (_jsx("svg", { ...hiddenProps, ref: ref, className: className, viewBox: "0 0 8 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M4.00195 0L0.251953 1.66667V4.16667C0.251953 6.47917 1.85195 8.64167 4.00195 9.16667C6.15195 8.64167 7.75195 6.47917 7.75195 4.16667V1.66667L4.00195 0ZM3.16862 6.66667L1.50195 5L2.08945 4.4125L3.16862 5.4875L5.91445 2.74167L6.50195 3.33333L3.16862 6.66667Z", fill: "currentColor" }) }));
|
|
12
12
|
});
|
|
13
|
+
ShieldIcon.displayName = 'ShieldIcon';
|
package/icons/Warning/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
export const WarningIcon = (props) => {
|
|
3
|
-
return (_jsx("svg", { className: props.className, viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", {
|
|
4
|
-
// eslint-disable-next-line max-len
|
|
5
|
-
d: "M9.79222 7.49885L6.2597 1.00518C5.69214 0.04969 4.30861 0.0484205 3.74029 1.00518L0.207947 7.49885C-0.372248 8.4752 0.330193 9.71157 1.46736 9.71157H8.53251C9.66873 9.71157 10.3724 8.47619 9.79222 7.49885ZM5 8.53969C4.67699 8.53969 4.41406 8.27676 4.41406 7.95375C4.41406 7.63074 4.67699 7.36782 5 7.36782C5.323 7.36782 5.58593 7.63074 5.58593 7.95375C5.58593 8.27676 5.323 8.53969 5 8.53969ZM5.58593 6.19594C5.58593 6.51895 5.323 6.78188 5 6.78188C4.67699 6.78188 4.41406 6.51895 4.41406 6.19594V3.26625C4.41406 2.94324 4.67699 2.68032 5 2.68032C5.323 2.68032 5.58593 2.94324 5.58593 3.26625V6.19594Z", fill: "currentColor" }) }));
|
|
3
|
+
return (_jsx("svg", { className: props.className, viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M9.79222 7.49885L6.2597 1.00518C5.69214 0.04969 4.30861 0.0484205 3.74029 1.00518L0.207947 7.49885C-0.372248 8.4752 0.330193 9.71157 1.46736 9.71157H8.53251C9.66873 9.71157 10.3724 8.47619 9.79222 7.49885ZM5 8.53969C4.67699 8.53969 4.41406 8.27676 4.41406 7.95375C4.41406 7.63074 4.67699 7.36782 5 7.36782C5.323 7.36782 5.58593 7.63074 5.58593 7.95375C5.58593 8.27676 5.323 8.53969 5 8.53969ZM5.58593 6.19594C5.58593 6.51895 5.323 6.78188 5 6.78188C4.67699 6.78188 4.41406 6.51895 4.41406 6.19594V3.26625C4.41406 2.94324 4.67699 2.68032 5 2.68032C5.323 2.68032 5.58593 2.94324 5.58593 3.26625V6.19594Z", fill: "currentColor" }) }));
|
|
6
4
|
};
|
package/package.json
CHANGED
package/pages/Branches/index.js
CHANGED
|
@@ -48,7 +48,8 @@ export const Branches = observer(({ instanceId }) => {
|
|
|
48
48
|
const loadBranches = () => {
|
|
49
49
|
getBranches(instanceId)
|
|
50
50
|
.then((response) => {
|
|
51
|
-
|
|
51
|
+
if (response)
|
|
52
|
+
setBranches(response);
|
|
52
53
|
})
|
|
53
54
|
.finally(() => setIsLoading(false));
|
|
54
55
|
};
|
|
@@ -56,7 +57,8 @@ export const Branches = observer(({ instanceId }) => {
|
|
|
56
57
|
loadBranches();
|
|
57
58
|
const intervalId = setInterval(() => {
|
|
58
59
|
getBranches(instanceId, true).then((response) => {
|
|
59
|
-
|
|
60
|
+
if (response)
|
|
61
|
+
setBranches(response);
|
|
60
62
|
});
|
|
61
63
|
}, listRefreshIntervalMs);
|
|
62
64
|
return () => clearInterval(intervalId);
|
|
@@ -39,3 +39,4 @@ export const Status = React.memo((props) => {
|
|
|
39
39
|
const isError = statusType === 'error';
|
|
40
40
|
return (_jsxs("div", { className: clsx(classes.root, className), children: [_jsx(StatusBase, { type: statusType, className: classes.status, children: statusText }), !isError && _jsx("p", { className: classes.message, children: message }), isError && (_jsx(FormattedText, { value: message, className: classes.errorMessage }))] }));
|
|
41
41
|
});
|
|
42
|
+
Status.displayName = 'CloneStatus';
|
package/pages/Clone/index.js
CHANGED
|
@@ -274,21 +274,21 @@ export const Clone = observer((props) => {
|
|
|
274
274
|
: '-'] }), _jsxs("p", { className: classes.text, children: [_jsx("span", { className: classes.paramTitle, children: "Clone creation time:" }), clone.metadata.cloningTime
|
|
275
275
|
? `${round(clone.metadata.cloningTime, 2)} s`
|
|
276
276
|
: '-'] })] }), _jsx("br", {}), hasConnectionInfo && (_jsxs(_Fragment, { children: [_jsx("p", { children: _jsx("strong", { children: "Connection info" }) }), sshPortForwardingUrl && (_jsxs("div", { className: classes.fieldBlock, children: ["In a separate console, set up SSH port forwarding (and keep it running):", _jsxs("div", { className: classes.copyFieldContainer, children: [_jsx(TextField, { variant: "outlined", label: "SSH port forwarding", value: sshPortForwardingUrl, className: classes.textField, margin: "normal", fullWidth: true,
|
|
277
|
-
// @ts-
|
|
277
|
+
// @ts-expect-error TextField forwards readOnly to the input but does not declare it
|
|
278
278
|
readOnly: true, InputLabelProps: {
|
|
279
279
|
shrink: true,
|
|
280
280
|
style: styles.inputFieldLabel,
|
|
281
281
|
}, FormHelperTextProps: {
|
|
282
282
|
style: styles.inputFieldHelper,
|
|
283
283
|
} }), _jsx(IconButton, { className: classes.copyButton, "aria-label": "Copy", onClick: () => copyToClipboard(sshPortForwardingUrl), children: icons.copyIcon })] })] })), psqlConnectionStr && (_jsxs("div", { className: classes.fieldBlock, children: [_jsxs("div", { className: classes.copyFieldContainer, children: [_jsx(TextField, { variant: "outlined", id: "psqlConnStr", label: "psql connection string", value: psqlConnectionStr, className: classes.textField, margin: "normal", fullWidth: true,
|
|
284
|
-
// @ts-
|
|
284
|
+
// @ts-expect-error TextField forwards readOnly to the input but does not declare it
|
|
285
285
|
readOnly: true, InputLabelProps: {
|
|
286
286
|
shrink: true,
|
|
287
287
|
style: styles.inputFieldLabel,
|
|
288
288
|
}, FormHelperTextProps: {
|
|
289
289
|
style: styles.inputFieldHelper,
|
|
290
290
|
} }), _jsx(IconButton, { className: classes.copyButton, "aria-label": "Copy", onClick: () => copyToClipboard(psqlConnectionStr), children: icons.copyIcon })] }), "\u00A0", _jsx(Tooltip, { content: _jsx(_Fragment, { children: "Used to connect to PostgreSQL using psql. Change DBNAME to the name of the database you want to connect to. Use the PGPASSWORD environment variable to set the database password or type it when prompted." }), children: _jsx("span", { className: classes.textFieldInfo, children: icons.infoIcon }) })] })), jdbcConnectionStr && (_jsxs("div", { className: classes.fieldBlock, children: [_jsxs("div", { className: classes.copyFieldContainer, children: [_jsx(TextField, { variant: "outlined", label: "JDBC connection string", value: jdbcConnectionStr, className: classes.textField, margin: "normal", fullWidth: true,
|
|
291
|
-
// @ts-
|
|
291
|
+
// @ts-expect-error TextField forwards readOnly to the input but does not declare it
|
|
292
292
|
readOnly: true, InputLabelProps: {
|
|
293
293
|
shrink: true,
|
|
294
294
|
style: styles.inputFieldLabel,
|
|
@@ -96,7 +96,7 @@ export const CreateClone = observer((props) => {
|
|
|
96
96
|
const allSnapshots = (_f = (_e = (_d = stores.main) === null || _d === void 0 ? void 0 : _d.snapshots) === null || _e === void 0 ? void 0 : _e.data) !== null && _f !== void 0 ? _f : [];
|
|
97
97
|
const sortedSnapshots = allSnapshots.slice().sort(compareSnapshotsDesc);
|
|
98
98
|
setSnapshots(sortedSnapshots);
|
|
99
|
-
|
|
99
|
+
const selectedSnapshot = allSnapshots.find(s => s.id === initialSnapshotId) || allSnapshots[0];
|
|
100
100
|
formik.setFieldValue('snapshotId', selectedSnapshot === null || selectedSnapshot === void 0 ? void 0 : selectedSnapshot.id);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -21,7 +21,7 @@ export const getCliCreateCloneCommand = (values, showPassword) => {
|
|
|
21
21
|
|
|
22
22
|
${protectedFlag} \
|
|
23
23
|
|
|
24
|
-
--id ${cloneIdDisplay}
|
|
24
|
+
--id ${cloneIdDisplay}`;
|
|
25
25
|
};
|
|
26
26
|
export const getCliCloneStatus = (cloneId) => {
|
|
27
27
|
const cloneIdDisplay = cloneId ? shellEscape(cloneId) : `<CLONE_ID>`;
|
|
@@ -13,5 +13,5 @@ import { ExternalIcon } from '@postgres.ai/shared/icons/External';
|
|
|
13
13
|
import styles from '../styles.module.scss';
|
|
14
14
|
export const ConfigSectionTitle = ({ tag }) => (_jsx(SectionTitle, { level: 2, tag: "h2", text: _jsxs("div", { className: styles.sectionTitle, children: [_jsx("p", { children: "Section" }), _jsxs("p", { children: ["\"", tag, "\""] })] }) }));
|
|
15
15
|
const DOCS_URL = 'https://postgres.ai/docs/reference-guides/database-lab-engine-configuration-reference';
|
|
16
|
-
export const Header = (props) => (_jsxs("div", { className: styles.root, children: [_jsxs(Box, { mb: 3, children: [_jsx(Typography, { paragraph: true, children: "Only select parameters can be changed here." }), _jsxs(Typography, { paragraph: true, children: ["However, you can still see", ' ', _jsx(Link, { href: "#", underline: "always", onClick: props.setOpen, className: styles.externalLink, children: "the full config" }), ". For details, read", ' ', _jsxs("a", { href: DOCS_URL, target: "_blank", className: styles.externalLink, children: ["the docs", _jsx(ExternalIcon, { className: styles.externalIcon })] }), "."] }), _jsxs(Typography, { paragraph: true, children: [_jsx("strong", { children: "Data retrieval mode" }), ": ", props.retrievalMode] })] }), _jsx(ConfigSectionTitle, { tag: "global" })] }));
|
|
17
|
-
export const ModalTitle = () => (_jsxs("div", { children: [_jsx(Typography, { className: styles.modalTitle, children: "Full configuration file (view only)" }), _jsxs(Typography, { variant: "h3", children: ["Sensitive values are masked. For details, read", ' ', _jsxs("a", { href: DOCS_URL, target: "_blank", className: styles.externalLink, children: ["the docs", _jsx(ExternalIcon, { className: classNames(styles.externalIcon, styles.largeIcon) })] }), "."] })] }));
|
|
16
|
+
export const Header = (props) => (_jsxs("div", { className: styles.root, children: [_jsxs(Box, { mb: 3, children: [_jsx(Typography, { paragraph: true, children: "Only select parameters can be changed here." }), _jsxs(Typography, { paragraph: true, children: ["However, you can still see", ' ', _jsx(Link, { href: "#", underline: "always", onClick: props.setOpen, className: styles.externalLink, children: "the full config" }), ". For details, read", ' ', _jsxs("a", { href: DOCS_URL, target: "_blank", rel: "noreferrer", className: styles.externalLink, children: ["the docs", _jsx(ExternalIcon, { className: styles.externalIcon })] }), "."] }), _jsxs(Typography, { paragraph: true, children: [_jsx("strong", { children: "Data retrieval mode" }), ": ", props.retrievalMode] })] }), _jsx(ConfigSectionTitle, { tag: "global" })] }));
|
|
17
|
+
export const ModalTitle = () => (_jsxs("div", { children: [_jsx(Typography, { className: styles.modalTitle, children: "Full configuration file (view only)" }), _jsxs(Typography, { variant: "h3", children: ["Sensitive values are masked. For details, read", ' ', _jsxs("a", { href: DOCS_URL, target: "_blank", rel: "noreferrer", className: styles.externalLink, children: ["the docs", _jsx(ExternalIcon, { className: classNames(styles.externalIcon, styles.largeIcon) })] }), "."] })] }));
|
|
@@ -42,7 +42,11 @@ export const Configuration = observer(({ instanceId, switchActiveTab, reload, di
|
|
|
42
42
|
const classes = useStyles();
|
|
43
43
|
const stores = useStores();
|
|
44
44
|
const { config, isConfigurationLoading, updateConfig, getSeImages, fullConfig, testDbSource, configError, getFullConfig, getFullConfigError, getEngine, } = stores.main;
|
|
45
|
-
|
|
45
|
+
// The form mutates its working copy, so the store's config is cloned rather than read
|
|
46
|
+
// directly. The store replaces the whole object on every fetch, so keying the clone on
|
|
47
|
+
// its identity keeps the copy — and everything that depends on it — stable between
|
|
48
|
+
// fetches instead of changing on every render.
|
|
49
|
+
const configData = useMemo(() => config && JSON.parse(JSON.stringify(config)), [config]);
|
|
46
50
|
const isConfigurationDisabled = disableConfigModification;
|
|
47
51
|
const [dleEdition, setDledition] = useState('');
|
|
48
52
|
const isCeEdition = dleEdition === 'community';
|
|
@@ -54,11 +58,14 @@ export const Configuration = observer(({ instanceId, switchActiveTab, reload, di
|
|
|
54
58
|
// Prevents the Simple/Expert default from flipping mid-session when an
|
|
55
59
|
// Apply triggers a refetch and the recomputed default would differ.
|
|
56
60
|
const [initialMode, setInitialMode] = useState(null);
|
|
61
|
+
const defaultMode = configData
|
|
62
|
+
? getInitialConfigMode(configData.host, configData.retrievalMode)
|
|
63
|
+
: null;
|
|
57
64
|
useEffect(() => {
|
|
58
|
-
if (initialMode
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}, [
|
|
65
|
+
if (initialMode !== null || defaultMode === null)
|
|
66
|
+
return;
|
|
67
|
+
setInitialMode(defaultMode);
|
|
68
|
+
}, [defaultMode, initialMode]);
|
|
62
69
|
const configMode = (_a = userPickedMode !== null && userPickedMode !== void 0 ? userPickedMode : initialMode) !== null && _a !== void 0 ? _a : 'simple';
|
|
63
70
|
const setConfigMode = setUserPickedMode;
|
|
64
71
|
const portInitFromConfig = useRef(false);
|
|
@@ -251,7 +258,7 @@ export const Configuration = observer(({ instanceId, switchActiveTab, reload, di
|
|
|
251
258
|
const currentValues = uniqueChipValue(String(formik.values[id]));
|
|
252
259
|
const splitValues = currentValues.split(' ');
|
|
253
260
|
const curDividers = String(formik.values[id]).match(/[,(\s)(\n)(\r)(\t)(\r\n)]/gm);
|
|
254
|
-
for (
|
|
261
|
+
for (const i in splitValues) {
|
|
255
262
|
if (curDividers && splitValues[i] !== uniqueValue) {
|
|
256
263
|
newValues =
|
|
257
264
|
newValues +
|
|
@@ -507,14 +514,14 @@ export const Configuration = observer(({ instanceId, switchActiveTab, reload, di
|
|
|
507
514
|
isCeEdition,
|
|
508
515
|
]);
|
|
509
516
|
return (_jsxs("div", { className: styles.root, children: [_jsx(Snackbar, { onClick: () => {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
517
|
+
if (!dockerState.error)
|
|
518
|
+
return;
|
|
519
|
+
setDockerState({
|
|
520
|
+
...dockerState,
|
|
521
|
+
error: '',
|
|
522
|
+
});
|
|
516
523
|
}, anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, open: (isConfigurationDisabled || Boolean(dockerState.error)) &&
|
|
517
|
-
!isModalOpen, message:
|
|
524
|
+
!isModalOpen, message: dockerState.error
|
|
518
525
|
? dockerState.error
|
|
519
526
|
: PREVENT_MODIFYING_MESSAGE, className: styles.snackbar }), !config && isConfigurationLoading ? (_jsx("div", { className: styles.spinnerContainer, children: _jsx(Spinner, { size: "lg", className: styles.spinner }) })) : (_jsxs(Box, { children: [_jsx(Header, { retrievalMode: formik.values.retrievalMode, setOpen: handleModalClick }), _jsxs(Tabs, { value: configMode, onChange: (_, value) => setConfigMode(value), indicatorColor: "primary", textColor: "primary", "aria-label": "Configuration mode", children: [_jsx(Tab, { value: "simple", label: "Simple" }), _jsx(Tab, { value: "expert", label: "Expert" })] }), configMode === 'simple' ? (_jsx(SimpleMode, { instanceId: instanceId, disabled: isConfigurationDisabled, onApplied: switchTab, onEdit: (proposed, password) => {
|
|
520
527
|
const projection = buildProjectionFromProposed(proposed, password);
|
|
@@ -586,7 +593,7 @@ export const Configuration = observer(({ instanceId, switchActiveTab, reload, di
|
|
|
586
593
|
value: image,
|
|
587
594
|
children: image,
|
|
588
595
|
};
|
|
589
|
-
}) })] })), _jsxs(Typography, { paragraph: true, children: ["Cannot find your image? Reach out to support:", ' ', _jsxs("a", { href: 'https://postgres.ai/contact', target: "_blank", className: styles.externalLink, children: ["https://postgres.ai/contact", _jsx(ExternalIcon, { className: styles.externalIcon })] })] })] })] }), _jsxs(Box, { mb: 3, children: [_jsx(ConfigSectionTitle, { tag: "databaseConfigs" }), _jsx("span", { className: classes.grayText, style: { marginTop: '0.5rem', display: 'block' }, children: "Default PostgreSQL configuration used for all PostgreSQL instances running in containers managed by DBLab." }), _jsx(InputWithTooltip, { type: "textarea", label: "shared_buffers parameter", value: formik.values.sharedBuffers, tooltipText: tooltipText.sharedBuffers, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('sharedBuffers', e.target.value) }), _jsx(InputWithTooltip, { type: "textarea", label: "shared_preload_libraries", value: formik.values.sharedPreloadLibraries, tooltipText: tooltipText.sharedPreloadLibraries, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('sharedPreloadLibraries', e.target.value) }), _jsx(InputWithTooltip, { type: "textarea", label: "Query tuning parameters", value: typeof formik.values.tuningParams === 'object'
|
|
596
|
+
}) })] })), _jsxs(Typography, { paragraph: true, children: ["Cannot find your image? Reach out to support:", ' ', _jsxs("a", { href: 'https://postgres.ai/contact', target: "_blank", className: styles.externalLink, rel: "noreferrer", children: ["https://postgres.ai/contact", _jsx(ExternalIcon, { className: styles.externalIcon })] })] })] })] }), _jsxs(Box, { mb: 3, children: [_jsx(ConfigSectionTitle, { tag: "databaseConfigs" }), _jsx("span", { className: classes.grayText, style: { marginTop: '0.5rem', display: 'block' }, children: "Default PostgreSQL configuration used for all PostgreSQL instances running in containers managed by DBLab." }), _jsx(InputWithTooltip, { type: "textarea", label: "shared_buffers parameter", value: formik.values.sharedBuffers, tooltipText: tooltipText.sharedBuffers, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('sharedBuffers', e.target.value) }), _jsx(InputWithTooltip, { type: "textarea", label: "shared_preload_libraries", value: formik.values.sharedPreloadLibraries, tooltipText: tooltipText.sharedPreloadLibraries, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('sharedPreloadLibraries', e.target.value) }), _jsx(InputWithTooltip, { type: "textarea", label: "Query tuning parameters", value: typeof formik.values.tuningParams === 'object'
|
|
590
597
|
? Object.entries(formik.values.tuningParams)
|
|
591
598
|
.map(([key, value]) => `${key}=${value}`)
|
|
592
599
|
.join('\n')
|
|
@@ -602,7 +609,7 @@ export const Configuration = observer(({ instanceId, switchActiveTab, reload, di
|
|
|
602
609
|
: '', message: testConnectionState.fetchTuning.error ||
|
|
603
610
|
testConnectionState.fetchTuning.message.message })) : null] }), formik.values.retrievalMode === 'logical' && (_jsxs(Box, { children: [_jsxs(Box, { children: [_jsx(Typography, { className: styles.subsection, children: "Subsection \"retrieval.spec.logicalRestore\"" }), _jsx("span", { className: classes.grayText, children: "Restoring options." })] }), _jsx(InputWithTooltip, { label: "pg_restore jobs", value: formik.values.restoreParallelJobs, tooltipText: tooltipText.restoreParallelJobs, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('restoreParallelJobs', e.target.value) }), _jsx(InputWithChip, { value: formik.values.pgRestoreCustomOptions, label: "pg_restore customOptions", id: "pgRestoreCustomOptions", tooltipText: tooltipText.pgRestoreCustomOptions, handleDeleteChip: handleDeleteChip, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('pgRestoreCustomOptions', e.target.value) }), _jsx(InputWithTooltip, { type: "textarea", label: "Restore PostgreSQL configs", value: formik.values.restoreConfigs, tooltipText: tooltipText.restoreConfigs, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('restoreConfigs', e.target.value) }), _jsx(FormControlLabel, { style: { maxWidth: 'max-content' }, control: _jsx(Checkbox, { name: "restoreIgnoreErrors", checked: formik.values.restoreIgnoreErrors, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('restoreIgnoreErrors', e.target.checked), classes: {
|
|
604
611
|
root: classes.checkboxRoot,
|
|
605
|
-
} }), label: 'Ignore errors during logical data restore' })] })), _jsx(Box, { mt: 1, children: _jsx(Typography, { className: styles.subsection, children: "Subsection \"retrieval.refresh\"" }) }), _jsxs("span", { className: classes.grayText, children: ["Define full data refresh on schedule. The process requires at least one additional filesystem mount point. The schedule is to be specified using", ' ', _jsxs("a", { href: "https://en.wikipedia.org/wiki/Cron#Overview", target: "_blank", className: styles.externalLink, children: ["crontab format", _jsx(ExternalIcon, { className: styles.externalIcon })] }), "."] }), _jsx(InputWithTooltip, { label: "timetable", value: formik.values.timetable, tooltipText: tooltipText.timetable, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('timetable', e.target.value) })] }), _jsxs(Box, { mt: 2, mb: 2, sx: {
|
|
612
|
+
} }), label: 'Ignore errors during logical data restore' })] })), _jsx(Box, { mt: 1, children: _jsx(Typography, { className: styles.subsection, children: "Subsection \"retrieval.refresh\"" }) }), _jsxs("span", { className: classes.grayText, children: ["Define full data refresh on schedule. The process requires at least one additional filesystem mount point. The schedule is to be specified using", ' ', _jsxs("a", { href: "https://en.wikipedia.org/wiki/Cron#Overview", target: "_blank", className: styles.externalLink, rel: "noreferrer", children: ["crontab format", _jsx(ExternalIcon, { className: styles.externalIcon })] }), "."] }), _jsx(InputWithTooltip, { label: "timetable", value: formik.values.timetable, tooltipText: tooltipText.timetable, disabled: isConfigurationDisabled, onChange: (e) => formik.setFieldValue('timetable', e.target.value) })] }), _jsxs(Box, { mt: 2, mb: 2, sx: {
|
|
606
613
|
display: 'flex',
|
|
607
614
|
alignItems: 'center',
|
|
608
615
|
}, children: [_jsxs(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
@@ -3,9 +3,9 @@ import styles from './styles.module.scss';
|
|
|
3
3
|
export const tooltipText = {
|
|
4
4
|
dockerTag: () => (_jsx("div", { children: "Docker image version \u2014 the latest ones are listed first. If you are unsure, pick the first one." })),
|
|
5
5
|
dockerImage: () => (_jsxs("div", { children: ["Major PostgreSQL version (e.g., \"9.6\", \"15\"). For logical provisioning mode, the version used by DBLab does not need to match the version on the source, although matching versions is recommended. ", _jsx("br", {}), "If you need a version that is not listed here, contact support."] })),
|
|
6
|
-
dockerImageType: () => (_jsxs("div", { children: ["Docker image used to run all database containers \u2014 clones, snapshot preparation containers, and sync containers. Although such images are based on traditional Docker images for PostgreSQL, DBLab expects slightly different behavior: for example, PostgreSQL is not the first process used to start the container, so PostgreSQL restarts do not trigger a container state change. For details, see", ' ', _jsx("a", { target: '_blank', href: 'https://postgres.ai/docs/database-lab/supported-databases', className: styles.externalLink, children: "the docs" }), "."] })),
|
|
6
|
+
dockerImageType: () => (_jsxs("div", { children: ["Docker image used to run all database containers \u2014 clones, snapshot preparation containers, and sync containers. Although such images are based on traditional Docker images for PostgreSQL, DBLab expects slightly different behavior: for example, PostgreSQL is not the first process used to start the container, so PostgreSQL restarts do not trigger a container state change. For details, see", ' ', _jsx("a", { target: '_blank', href: 'https://postgres.ai/docs/database-lab/supported-databases', className: styles.externalLink, rel: "noreferrer", children: "the docs" }), "."] })),
|
|
7
7
|
sharedBuffers: () => (_jsxs("div", { children: ["Defines the default buffer pool size for each PostgreSQL instance managed by DBLab. Note that this amount of RAM is immediately allocated at PostgreSQL startup time. For example, if the machine running DBLab has 32 GiB of RAM and the value used here is '1GB', then the theoretical limit of clones is 32. Practically, this limit is even lower because some memory is consumed by other processes. If you need more clones, reduce the value of", ' ', _jsx("span", { className: styles.firaCodeFont, children: "configs.shared_buffers" }), "."] })),
|
|
8
|
-
sharedPreloadLibraries: () => (_jsxs("div", { children: ["Specifies one or more shared libraries (comma-separated list) to be preloaded at PostgreSQL server start (", _jsx("a", { target: '_blank', href: 'https://postgresqlco.nf/doc/en/param/shared_preload_libraries/', className: styles.externalLink, children: "details" }), "). If some libraries or extensions are missing, PostgreSQL fails to start, so make sure that ", _jsx("span", { className: styles.firaCodeFont, children: "dockerImage" }), ' ', "used above contains all required extensions."] })),
|
|
8
|
+
sharedPreloadLibraries: () => (_jsxs("div", { children: ["Specifies one or more shared libraries (comma-separated list) to be preloaded at PostgreSQL server start (", _jsx("a", { target: '_blank', href: 'https://postgresqlco.nf/doc/en/param/shared_preload_libraries/', className: styles.externalLink, rel: "noreferrer", children: "details" }), "). If some libraries or extensions are missing, PostgreSQL fails to start, so make sure that ", _jsx("span", { className: styles.firaCodeFont, children: "dockerImage" }), ' ', "used above contains all required extensions."] })),
|
|
9
9
|
host: () => (_jsx("div", { children: "Hostname or IP of the database that will be used as the source for data retrieval (full data refresh)." })),
|
|
10
10
|
port: () => (_jsx("div", { children: "Port of the database that will be used as the source for data retrieval (full data refresh)." })),
|
|
11
11
|
username: () => (_jsx("div", { children: "Username used to connect to the database that will be used as the source for data retrieval (full data refresh)." })),
|
|
@@ -17,6 +17,6 @@ export const tooltipText = {
|
|
|
17
17
|
restoreParallelJobs: () => (_jsx("div", { children: "Number of parallel workers used to restore databases from dump to PostgreSQL managed by DBLab. For initial data retrieval (the first data refresh), it is recommended to match the number of available vCPUs on the machine running DBLab. This yields faster restore times but can increase CPU and disk I/O usage on that machine (up to temporary resource saturation). For subsequent refreshes, if DBLab is in continuous use, it is recommended to reduce this value by 50% to reserve capacity for normal DBLab operations (such as working with clones)." })),
|
|
18
18
|
pgRestoreCustomOptions: () => (_jsx("div", { children: "pg_restore options to be used to restore from a database dump, for example: '--exclude-schema=repack --exclude-schema=\"camelStyleSchemaName\"'. Note that due to security reasons, the current implementation supports only letters, numbers, hyphen, underscore, equal sign, and double quotes." })),
|
|
19
19
|
restoreConfigs: () => (_jsxs("div", { children: ["PostgreSQL configuration parameters applied during logical restore (one", ' ', _jsx("span", { className: styles.firaCodeFont, children: "parameter=value" }), " per line). These settings are written to", ' ', _jsx("span", { className: styles.firaCodeFont, children: "postgresql.conf" }), " before restore starts and do not affect clones. Useful for tuning restore performance, for example:", _jsx("br", {}), _jsx("span", { className: styles.firaCodeFont, children: "maintenance_work_mem=8GB" }), _jsx("br", {}), _jsx("span", { className: styles.firaCodeFont, children: "max_parallel_maintenance_workers=7" }), _jsx("br", {}), _jsx("span", { className: styles.firaCodeFont, children: "shared_preload_libraries=" }), _jsx("br", {}), _jsx("span", { className: styles.firaCodeFont, children: "fsync=off" })] })),
|
|
20
|
-
timetable: () => (_jsxs("div", { children: ["Schedule for full data refreshes, in", ' ', _jsx("a", { target: '_blank', href: 'https://en.wikipedia.org/wiki/Cron#Overview', className: styles.externalLink, children: "crontab format" }), "."] })),
|
|
21
|
-
tuningParams: () => (_jsxs("div", { children: ["Query tuning parameters. These are essential to ensure that cloned PostgreSQL instances generate the same plans as the source (specifically, they are crucial for query performance troubleshooting and optimization, including working with EXPLAIN plans). For details, see the", ' ', _jsx("a", { target: '_blank', href: 'https://postgres.ai/docs/how-to-guides/administration/postgresql-configuration#postgresql-configuration-in-clones', className: styles.externalLink, children: "docs" }), "."] })),
|
|
20
|
+
timetable: () => (_jsxs("div", { children: ["Schedule for full data refreshes, in", ' ', _jsx("a", { target: '_blank', href: 'https://en.wikipedia.org/wiki/Cron#Overview', className: styles.externalLink, rel: "noreferrer", children: "crontab format" }), "."] })),
|
|
21
|
+
tuningParams: () => (_jsxs("div", { children: ["Query tuning parameters. These are essential to ensure that cloned PostgreSQL instances generate the same plans as the source (specifically, they are crucial for query performance troubleshooting and optimization, including working with EXPLAIN plans). For details, see the", ' ', _jsx("a", { target: '_blank', href: 'https://postgres.ai/docs/how-to-guides/administration/postgresql-configuration#postgresql-configuration-in-clones', className: styles.externalLink, rel: "noreferrer", children: "docs" }), "."] })),
|
|
22
22
|
};
|
|
@@ -154,7 +154,7 @@ export const useForm = (onSubmit) => {
|
|
|
154
154
|
const markPortDirty = () => setPortDirty(true);
|
|
155
155
|
const omitPortOnSubmit = originalPortWasUnset && !portDirty;
|
|
156
156
|
const formatDatabaseArray = (database) => {
|
|
157
|
-
|
|
157
|
+
const databases = [];
|
|
158
158
|
const splitDatabaseArray = database.split(/[,(\s)(\n)(\r)(\t)(\r\n)]/);
|
|
159
159
|
for (let i = 0; i < splitDatabaseArray.length; i++) {
|
|
160
160
|
if (splitDatabaseArray[i] !== '') {
|
|
@@ -9,7 +9,7 @@ interface DockerImage {
|
|
|
9
9
|
}
|
|
10
10
|
export declare const uniqueChipValue: (values: string) => string;
|
|
11
11
|
export declare const postUniqueDatabases: (values: string) => {
|
|
12
|
-
[k: string]: string |
|
|
12
|
+
[k: string]: string | object;
|
|
13
13
|
} | null;
|
|
14
14
|
export declare const genericDockerImages: DockerImage[];
|
|
15
15
|
export declare const isSeDockerImage: (dockerImage: string | undefined) => boolean;
|
|
@@ -3,8 +3,8 @@ import { dockerImagesConfig, genericImagePrefix } from '../dockerCatalog';
|
|
|
3
3
|
const seContainerRegistry = 'se-images';
|
|
4
4
|
export const uniqueChipValue = (values) => {
|
|
5
5
|
const splitChipArray = values.split(/[,(\s)(\n)(\r)(\t)(\r\n)]/);
|
|
6
|
-
|
|
7
|
-
for (
|
|
6
|
+
const databaseArray = [];
|
|
7
|
+
for (const i in splitChipArray) {
|
|
8
8
|
if (splitChipArray[i] !== '' &&
|
|
9
9
|
databaseArray.indexOf(splitChipArray[i]) === -1) {
|
|
10
10
|
databaseArray.push(splitChipArray[i]);
|
|
@@ -24,18 +24,18 @@ export const postUniqueDatabases = (values) => {
|
|
|
24
24
|
const createDockerImages = (dockerImagesConfig) => {
|
|
25
25
|
const dockerImages = [];
|
|
26
26
|
for (const pg_major_version in dockerImagesConfig) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
27
|
+
const hasVersion = Object.prototype.hasOwnProperty.call(dockerImagesConfig, pg_major_version);
|
|
28
|
+
if (!hasVersion)
|
|
29
|
+
continue;
|
|
30
|
+
dockerImagesConfig[pg_major_version].forEach((tag) => {
|
|
31
|
+
const image = {
|
|
32
|
+
package_group: 'postgresai',
|
|
33
|
+
pg_major_version,
|
|
34
|
+
tag: `${pg_major_version}-${tag}`,
|
|
35
|
+
location: `${genericImagePrefix}:${pg_major_version}-${tag}`,
|
|
36
|
+
};
|
|
37
|
+
dockerImages.push(image);
|
|
38
|
+
});
|
|
39
39
|
}
|
|
40
40
|
return dockerImages;
|
|
41
41
|
};
|
|
@@ -74,7 +74,7 @@ export const getImageMajorVersion = (pgImage) => {
|
|
|
74
74
|
? pgServerVersion.split('.')[0]
|
|
75
75
|
: pgServerVersion;
|
|
76
76
|
}
|
|
77
|
-
catch
|
|
77
|
+
catch {
|
|
78
78
|
// Return undefined for malformed image strings
|
|
79
79
|
return undefined;
|
|
80
80
|
}
|
|
@@ -114,7 +114,7 @@ export const createFallbackDockerImage = (dockerPath, dockerTag) => {
|
|
|
114
114
|
};
|
|
115
115
|
// Creates enhanced list of Docker images, including image from configuration
|
|
116
116
|
export const createEnhancedDockerImages = (configDockerPath, configDockerTag) => {
|
|
117
|
-
|
|
117
|
+
const enhancedImages = [...genericDockerImages];
|
|
118
118
|
// If there's an image in config, check if we need to add it
|
|
119
119
|
if (configDockerPath && configDockerTag) {
|
|
120
120
|
const existingImage = genericDockerImages.find((image) => image.location === configDockerPath || image.tag === configDockerTag);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare type Props = {
|
|
3
3
|
value: number;
|
|
4
|
-
handleChange: (event: React.ChangeEvent<
|
|
4
|
+
handleChange: (event: React.ChangeEvent<object>, newValue: number) => void;
|
|
5
5
|
hasLogs: boolean;
|
|
6
6
|
isPlatform?: boolean;
|
|
7
7
|
hideInstanceTabs?: boolean;
|
|
8
8
|
};
|
|
9
|
-
export declare const PlatformTabs: ({ value, handleChange,
|
|
9
|
+
export declare const PlatformTabs: ({ value, handleChange, hideInstanceTabs, }: Props) => JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -4,7 +4,7 @@ import { Tab as TabComponent, Tabs as TabsComponent } from '@material-ui/core';
|
|
|
4
4
|
import { TABS_INDEX } from '.';
|
|
5
5
|
import { useTabsStyles } from './styles';
|
|
6
6
|
import { PostgresSQLIcon } from '@postgres.ai/shared/icons/PostgresSQL';
|
|
7
|
-
export const PlatformTabs = ({ value, handleChange,
|
|
7
|
+
export const PlatformTabs = ({ value, handleChange, hideInstanceTabs, }) => {
|
|
8
8
|
const classes = useTabsStyles();
|
|
9
9
|
const { org, instanceId } = useParams();
|
|
10
10
|
const tabs = [
|
|
@@ -9,7 +9,7 @@ export declare const TABS_INDEX: {
|
|
|
9
9
|
};
|
|
10
10
|
export interface TabsProps {
|
|
11
11
|
value: number;
|
|
12
|
-
handleChange: (event: React.ChangeEvent<
|
|
12
|
+
handleChange: (event: React.ChangeEvent<object>, newValue: number) => void;
|
|
13
13
|
hasLogs: boolean;
|
|
14
14
|
isPlatform?: boolean;
|
|
15
15
|
hideInstanceTabs?: boolean;
|
package/pages/Instance/index.js
CHANGED
|
@@ -50,7 +50,7 @@ const useStyles = makeStyles((theme) => ({
|
|
|
50
50
|
},
|
|
51
51
|
}), { index: 1 });
|
|
52
52
|
export const Instance = observer((props) => {
|
|
53
|
-
var _a, _b, _c, _d;
|
|
53
|
+
var _a, _b, _c, _d, _e;
|
|
54
54
|
const classes = useStyles();
|
|
55
55
|
const { instanceId, api, isPlatform } = props;
|
|
56
56
|
const [activeTab, setActiveTab] = React.useState((props === null || props === void 0 ? void 0 : props.renderCurrentTab) || TABS_INDEX.OVERVIEW);
|
|
@@ -84,7 +84,7 @@ export const Instance = observer((props) => {
|
|
|
84
84
|
}
|
|
85
85
|
}, [instance, hasBeenRedirected]);
|
|
86
86
|
return (_jsx(HostProvider, { value: props, children: _jsxs(StoresProvider, { value: stores, children: [props.elements.breadcrumbs, _jsx(SectionTitle, { text: props.title, level: 1, tag: "h1", className: classes.title, rightContent: _jsx(Button, { onClick: () => load(props.instanceId, isPlatform), isDisabled: !instance && !instanceError, className: classes.reloadButton, children: "Reload info" }), children: isInstanceIntegrated && (_jsx(InstanceTabs, { instanceId: props.instanceId, tab: activeTab, onTabChange: (tabID) => setActiveTab(tabID), isPlatform: isPlatform, hasLogs: api.initWS !== undefined, hideInstanceTabs: props.hideBranchingFeatures })) }), instanceError && (_jsx(ErrorStub, { ...instanceError, className: classes.errorStub })), isInstanceIntegrated ? (_jsxs(_Fragment, { children: [_jsxs(TabPanel, { value: activeTab, index: TABS_INDEX.OVERVIEW, children: [!instanceError && (_jsx("div", { className: classes.content, children: instance && ((_b = (_a = instance.state) === null || _a === void 0 ? void 0 : _a.retrieving) === null || _b === void 0 ? void 0 : _b.status) ? (_jsxs(_Fragment, { children: [_jsx(Clones, {}), _jsx(Info, { hideBranchingFeatures: props.hideBranchingFeatures })] })) : (_jsx(StubSpinner, {})) })), _jsx(ClonesModal, {}), _jsx(SnapshotsModal, {})] }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.CLONES, children: activeTab === TABS_INDEX.CLONES && (_jsx("div", { className: classes.content, children: !instanceError &&
|
|
87
|
-
(instance ? _jsx(Clones, { onlyRenderList: true }) : _jsx(StubSpinner, {})) })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.LOGS, children: activeTab === TABS_INDEX.LOGS && (_jsx(Logs, { api: api, instanceId: props.instanceId })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.CONFIGURATION, children: activeTab === TABS_INDEX.CONFIGURATION && (_jsx(Configuration, { instanceId: instanceId, switchActiveTab: switchTab, reload: () => load(props.instanceId), disableConfigModification: (_c = instance === null || instance === void 0 ? void 0 : instance.state) === null || _c === void 0 ? void 0 : _c.engine.disableConfigModification })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.SNAPSHOTS, children: activeTab === TABS_INDEX.SNAPSHOTS && (_jsx(Snapshots, { instanceId: instanceId })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.BRANCHES, children: activeTab === TABS_INDEX.BRANCHES && (_jsx(Branches, { instanceId: instanceId })) })] })) : !isLoadingInstance && !isLoadingInstanceRetrieval && !instanceError ? (_jsx(TabPanel, { value: activeTab, index: activeTab, children: _jsx(InactiveInstance, { instance: instance, org: (_d = props.elements.breadcrumbs) === null || _d === void 0 ? void 0 : _d.props.org }) })) : (!instanceError && (_jsx(TabPanel, { value: activeTab, index: activeTab, children: _jsx("div", { className: classes.content, children: _jsx(StubSpinner, {}) }) })))] }) }));
|
|
87
|
+
(instance ? _jsx(Clones, { onlyRenderList: true }) : _jsx(StubSpinner, {})) })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.LOGS, children: activeTab === TABS_INDEX.LOGS && (_jsx(Logs, { api: api, instanceId: props.instanceId })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.CONFIGURATION, children: activeTab === TABS_INDEX.CONFIGURATION && (_jsx(Configuration, { instanceId: instanceId, switchActiveTab: switchTab, reload: () => load(props.instanceId), disableConfigModification: (_c = instance === null || instance === void 0 ? void 0 : instance.state) === null || _c === void 0 ? void 0 : _c.engine.disableConfigModification })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.SNAPSHOTS, children: activeTab === TABS_INDEX.SNAPSHOTS && (_jsx(Snapshots, { instanceId: instanceId })) }), _jsx(TabPanel, { value: activeTab, index: TABS_INDEX.BRANCHES, children: activeTab === TABS_INDEX.BRANCHES && (_jsx(Branches, { instanceId: instanceId })) })] })) : !isLoadingInstance && !isLoadingInstanceRetrieval && !instanceError ? (_jsx(TabPanel, { value: activeTab, index: activeTab, children: _jsx(InactiveInstance, { instance: instance, org: (_e = (_d = props.elements.breadcrumbs) === null || _d === void 0 ? void 0 : _d.props.org) !== null && _e !== void 0 ? _e : '' }) })) : (!instanceError && (_jsx(TabPanel, { value: activeTab, index: activeTab, children: _jsx("div", { className: classes.content, children: _jsx(StubSpinner, {}) }) })))] }) }));
|
|
88
88
|
});
|
|
89
89
|
function TabPanel(props) {
|
|
90
90
|
const { children, value, index, ...other } = props;
|
|
@@ -164,7 +164,7 @@ export class MainStore {
|
|
|
164
164
|
return response;
|
|
165
165
|
};
|
|
166
166
|
this.getFullConfig = async (instanceId) => {
|
|
167
|
-
var _a, _b, _c, _d, _e, _f;
|
|
167
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
168
168
|
if (!this.api.getFullConfig)
|
|
169
169
|
return;
|
|
170
170
|
const { response, error } = await this.api.getFullConfig(instanceId);
|
|
@@ -176,10 +176,10 @@ export class MainStore {
|
|
|
176
176
|
this.platformUrl = rawPlatformUrl === null || rawPlatformUrl === void 0 ? void 0 : rawPlatformUrl.replace(/['"]+/g, '').trim().split(/\s+/)[0];
|
|
177
177
|
this.uiVersion = (_f = (_e = (_d = splitYML[0]) === null || _d === void 0 ? void 0 : _d.split('dockerImage: "postgresai/ce-ui:')[2]) === null || _e === void 0 ? void 0 : _e.split('\n')[0]) === null || _f === void 0 ? void 0 : _f.replace(/['"]+/g, '');
|
|
178
178
|
}
|
|
179
|
-
if (error)
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
179
|
+
if (error) {
|
|
180
|
+
const failure = (await error.json());
|
|
181
|
+
this.getFullConfigError = (_g = failure.message) !== null && _g !== void 0 ? _g : null;
|
|
182
|
+
}
|
|
183
183
|
return response;
|
|
184
184
|
};
|
|
185
185
|
this.getSeImages = async (values) => {
|
|
@@ -5,33 +5,41 @@ export const useWsScroll = (isLoading, simpleInstall) => {
|
|
|
5
5
|
const [isAtBottom, setIsAtBottom] = useState(true);
|
|
6
6
|
useEffect(() => {
|
|
7
7
|
var _a;
|
|
8
|
-
!isLoading
|
|
8
|
+
if (!isLoading) {
|
|
9
|
+
wsSnackbar(isAtBottom, isNewData);
|
|
10
|
+
}
|
|
9
11
|
const contentElement = document.getElementById('content-container');
|
|
10
12
|
const targetNode = simpleInstall
|
|
11
13
|
? (_a = document.getElementById('logs-container')) === null || _a === void 0 ? void 0 : _a.parentElement
|
|
12
14
|
: document.getElementById('logs-container');
|
|
13
15
|
const clientAtBottom = (element) => element.scrollHeight - element.scrollTop - 50 < element.clientHeight;
|
|
14
16
|
const handleScroll = (e) => {
|
|
15
|
-
if (clientAtBottom(e.target)) {
|
|
16
|
-
setIsAtBottom(true);
|
|
17
|
-
setIsNewData(false);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
17
|
+
if (!clientAtBottom(e.target)) {
|
|
20
18
|
setIsAtBottom(false);
|
|
19
|
+
return;
|
|
21
20
|
}
|
|
21
|
+
setIsAtBottom(true);
|
|
22
|
+
setIsNewData(false);
|
|
22
23
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
// Log lines arrive as <p> nodes; a <div> is page chrome. The filter keeps the tagName
|
|
25
|
+
// guard the removed DOMNodeInserted listener used.
|
|
26
|
+
const handleInsert = (mutations) => {
|
|
27
|
+
const hasNewLine = mutations.some((mutation) => Array.from(mutation.addedNodes).some((node) => node.nodeName !== 'DIV'));
|
|
28
|
+
if (!hasNewLine)
|
|
29
|
+
return;
|
|
30
|
+
if (isAtBottom) {
|
|
31
|
+
targetNode === null || targetNode === void 0 ? void 0 : targetNode.scrollIntoView(false);
|
|
28
32
|
}
|
|
33
|
+
setIsNewData(true);
|
|
29
34
|
};
|
|
35
|
+
const observer = new MutationObserver(handleInsert);
|
|
30
36
|
contentElement === null || contentElement === void 0 ? void 0 : contentElement.addEventListener('scroll', handleScroll, false);
|
|
31
|
-
|
|
37
|
+
if (contentElement) {
|
|
38
|
+
observer.observe(contentElement, { childList: true, subtree: true });
|
|
39
|
+
}
|
|
32
40
|
return () => {
|
|
33
41
|
contentElement === null || contentElement === void 0 ? void 0 : contentElement.removeEventListener('scroll', handleScroll, false);
|
|
34
|
-
|
|
42
|
+
observer.disconnect();
|
|
35
43
|
};
|
|
36
|
-
}, [isAtBottom, isNewData, isLoading]);
|
|
44
|
+
}, [isAtBottom, isNewData, isLoading, simpleInstall]);
|
|
37
45
|
};
|
package/pages/Logs/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { makeStyles } from '@material-ui/core';
|
|
|
4
4
|
import { Alert, AlertTitle } from '@material-ui/lab';
|
|
5
5
|
import React, { useEffect, useReducer } from 'react';
|
|
6
6
|
import { Spinner } from '@postgres.ai/shared/components/Spinner';
|
|
7
|
-
import { establishConnection, restartConnection, } from '@postgres.ai/shared/pages/Logs/wsLogs';
|
|
7
|
+
import { closeConnection, establishConnection, restartConnection, } from '@postgres.ai/shared/pages/Logs/wsLogs';
|
|
8
8
|
import { useWsScroll } from '@postgres.ai/shared/pages/Logs/hooks/useWsScroll';
|
|
9
9
|
import { LAPTOP_WIDTH_PX } from './constants';
|
|
10
10
|
import { PlusIcon } from './Icons/PlusIcon';
|
|
@@ -104,13 +104,6 @@ export const Logs = ({ api, instanceId }) => {
|
|
|
104
104
|
useWsScroll(isLoading);
|
|
105
105
|
const logsFilterState = (localStorage === null || localStorage === void 0 ? void 0 : localStorage.getItem('logsFilter')) &&
|
|
106
106
|
(JSON === null || JSON === void 0 ? void 0 : JSON.parse((localStorage === null || localStorage === void 0 ? void 0 : localStorage.getItem('logsFilter')) || ''));
|
|
107
|
-
const isEmpty = (obj) => {
|
|
108
|
-
for (const key in obj) {
|
|
109
|
-
if (obj.hasOwnProperty(key))
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
return true;
|
|
113
|
-
};
|
|
114
107
|
const initialState = (obj) => {
|
|
115
108
|
const filters = {
|
|
116
109
|
'[DEBUG]': true,
|
|
@@ -125,7 +118,7 @@ export const Logs = ({ api, instanceId }) => {
|
|
|
125
118
|
'[other]': true,
|
|
126
119
|
};
|
|
127
120
|
for (const key in obj) {
|
|
128
|
-
if (
|
|
121
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
129
122
|
filters[key] = obj[key];
|
|
130
123
|
}
|
|
131
124
|
}
|
|
@@ -170,10 +163,11 @@ export const Logs = ({ api, instanceId }) => {
|
|
|
170
163
|
: classes.passiveButton, children: [_jsx("span", { children: type.toLowerCase() }), _jsx("button", { "aria-label": "close", type: "button", className: classes.buttonClassName, children: _jsx(PlusIcon, {}) })] }));
|
|
171
164
|
};
|
|
172
165
|
useEffect(() => {
|
|
173
|
-
if (api.initWS
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
166
|
+
if (api.initWS == undefined)
|
|
167
|
+
return;
|
|
168
|
+
establishConnection(api, instanceId);
|
|
169
|
+
return closeConnection;
|
|
170
|
+
}, [api, instanceId]);
|
|
177
171
|
useEffect(() => {
|
|
178
172
|
localStorage.setItem('logsFilter', JSON.stringify(state));
|
|
179
173
|
}, [state]);
|
|
@@ -189,8 +183,11 @@ export const Logs = ({ api, instanceId }) => {
|
|
|
189
183
|
}
|
|
190
184
|
}
|
|
191
185
|
};
|
|
186
|
+
if (!targetNode)
|
|
187
|
+
return;
|
|
192
188
|
const observer = new MutationObserver(callback);
|
|
193
|
-
|
|
189
|
+
observer.observe(targetNode, config);
|
|
190
|
+
return () => observer.disconnect();
|
|
194
191
|
}, [isLoading, targetNode]);
|
|
195
192
|
return (_jsxs(_Fragment, { children: [_jsxs(Alert, { severity: "info", children: [_jsx(AlertTitle, { children: "Sensitive values are masked." }), "You can see the raw log data connecting to the machine and running", ' ', _jsx("strong", { children: "'docker logs --since 5m -f dblab_server'" }), "."] }), window.innerWidth > LAPTOP_WIDTH_PX && (_jsxs(_Fragment, { children: [_jsx("section", { className: classes.filterSection, children: Object.keys(state)
|
|
196
193
|
.slice(0, 3)
|
package/pages/Logs/wsLogs.d.ts
CHANGED
package/pages/Logs/wsLogs.js
CHANGED
|
@@ -3,9 +3,26 @@ import { stringContainsPattern, stringWithoutBrackets } from './utils';
|
|
|
3
3
|
const logsEndpoint = '/instance/logs';
|
|
4
4
|
const LOGS_TIME_LIMIT = 20;
|
|
5
5
|
const LOGS_LINE_LIMIT = 1000;
|
|
6
|
+
// The page keeps at most one log socket open. `generation` invalidates a connection attempt
|
|
7
|
+
// that is still awaiting its token when the caller reconnects or unmounts, so a socket opened
|
|
8
|
+
// after that point is closed instead of left dangling.
|
|
9
|
+
let activeSocket = null;
|
|
10
|
+
let generation = 0;
|
|
11
|
+
export const closeConnection = () => {
|
|
12
|
+
generation++;
|
|
13
|
+
if (!activeSocket)
|
|
14
|
+
return;
|
|
15
|
+
// Detach the handler first: it reports a server-side drop to the user, which an
|
|
16
|
+
// intentional close is not.
|
|
17
|
+
activeSocket.onclose = null;
|
|
18
|
+
activeSocket.close();
|
|
19
|
+
activeSocket = null;
|
|
20
|
+
};
|
|
6
21
|
export const establishConnection = async (api, instanceId) => {
|
|
7
22
|
if (!api.getWSToken)
|
|
8
23
|
return;
|
|
24
|
+
closeConnection();
|
|
25
|
+
const currentGeneration = generation;
|
|
9
26
|
const logElement = document.getElementById('logs-container');
|
|
10
27
|
if (logElement === null) {
|
|
11
28
|
console.log('Not found container element');
|
|
@@ -64,12 +81,19 @@ export const establishConnection = async (api, instanceId) => {
|
|
|
64
81
|
return;
|
|
65
82
|
}
|
|
66
83
|
const socket = api.initWS(logsEndpoint, response.token);
|
|
84
|
+
if (currentGeneration !== generation) {
|
|
85
|
+
socket.close();
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
activeSocket = socket;
|
|
67
89
|
socket.onopen = () => {
|
|
68
90
|
console.log('Successfully Connected');
|
|
69
91
|
};
|
|
70
92
|
socket.onclose = (event) => {
|
|
71
93
|
console.log('Socket Closed Connection: ', event);
|
|
72
|
-
|
|
94
|
+
if (activeSocket === socket) {
|
|
95
|
+
activeSocket = null;
|
|
96
|
+
}
|
|
73
97
|
appendLogElement('DBLab Connection Closed');
|
|
74
98
|
};
|
|
75
99
|
socket.onerror = (error) => {
|
|
@@ -22,7 +22,8 @@ export class MainStore {
|
|
|
22
22
|
return;
|
|
23
23
|
this.isSnapshotsLoading = true;
|
|
24
24
|
await this.snapshots.load(instanceId).then((loaded) => {
|
|
25
|
-
|
|
25
|
+
if (loaded)
|
|
26
|
+
this.getSnapshot(snapshotId, instanceId);
|
|
26
27
|
});
|
|
27
28
|
};
|
|
28
29
|
this.getSnapshot = async (snapshotId, instanceId) => {
|
package/styles/icons.js
CHANGED
|
@@ -30,7 +30,7 @@ export const icons = {
|
|
|
30
30
|
supportIcon: (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M14 9.47461C14 7.43398 12.625 5.65108 10.6861 5.11382C10.5642 2.27338 8.21562 0 5.3457 0C2.39803 0 0 2.39803 0 5.3457C0 6.30637 0.255707 7.24171 0.741272 8.06288L0.0196533 10.6716L2.62852 9.95013C3.38336 10.3965 4.23486 10.6479 5.11371 10.6859C5.65086 12.6249 7.43387 14 9.47461 14C10.2892 14 11.0813 13.7831 11.7773 13.3709L13.9802 13.9802L13.3709 11.7773C13.7831 11.0813 14 10.2892 14 9.47461ZM2.75798 9.06317L1.19618 9.49522L1.62823 7.93343L1.52975 7.7794C1.06566 7.0533 0.820312 6.21173 0.820312 5.3457C0.820312 2.85037 2.85037 0.820312 5.3457 0.820312C7.84103 0.820312 9.87109 2.85037 9.87109 5.3457C9.87109 7.84103 7.84103 9.87109 5.3457 9.87109C4.47968 9.87109 3.63821 9.62575 2.912 9.16165L2.75798 9.06317ZM12.8038 12.8038L11.6449 12.4832L11.4901 12.5839C10.8902 12.9736 10.1931 13.1797 9.47461 13.1797C7.87073 13.1797 6.46135 12.1427 5.96201 10.6556C8.41803 10.3725 10.3725 8.41803 10.6557 5.9619C12.1427 6.46135 13.1797 7.87073 13.1797 9.47461C13.1797 10.1931 12.9736 10.8902 12.5839 11.4901L12.4832 11.6449L12.8038 12.8038Z", fill: "black" }), _jsx("path", { d: "M4.93555 7.41016H5.75586V8.23047H4.93555V7.41016Z", fill: "black" }), _jsx("path", { d: "M6.16602 4.10156C6.16602 4.33452 6.07117 4.54953 5.89899 4.70708L4.93555 5.58891V6.58984H5.75586V5.95015L6.4528 5.31227C6.79182 5.00198 6.98633 4.56075 6.98633 4.10156C6.98633 3.19687 6.2504 2.46094 5.3457 2.46094C4.44101 2.46094 3.70508 3.19687 3.70508 4.10156H4.52539C4.52539 3.64922 4.89336 3.28125 5.3457 3.28125C5.79805 3.28125 6.16602 3.64922 6.16602 4.10156Z", fill: "black" })] })),
|
|
31
31
|
copyIcon: (_jsx("svg", { width: "12", height: "14", viewBox: "0 0 12 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M7.50391 14H2.28125C1.07503 14 0.09375 13.0187 0.09375 11.8125V4.40234C0.09375 3.19612 1.07503 2.21484 2.28125 2.21484H7.50391C8.71013 2.21484 9.69141 3.19612 9.69141 4.40234V11.8125C9.69141 13.0187 8.71013 14 7.50391 14ZM2.28125 3.30859C1.67819 3.30859 1.1875 3.79929 1.1875 4.40234V11.8125C1.1875 12.4156 1.67819 12.9062 2.28125 12.9062H7.50391C8.10696 12.9062 8.59766 12.4156 8.59766 11.8125V4.40234C8.59766 3.79929 8.10696 3.30859 7.50391 3.30859H2.28125ZM11.8789 10.4453V2.1875C11.8789 0.981277 10.8976 0 9.69141 0H3.62109C3.31903 0 3.07422 0.244812 3.07422 0.546875C3.07422 0.848938 3.31903 1.09375 3.62109 1.09375H9.69141C10.2945 1.09375 10.7852 1.58444 10.7852 2.1875V10.4453C10.7852 10.7474 11.03 10.9922 11.332 10.9922C11.6341 10.9922 11.8789 10.7474 11.8789 10.4453Z", fill: "#808080" }) })),
|
|
32
32
|
joeChatIcon: (_jsxs("svg", { width: "30", height: "30", viewBox: "0 0 30 30", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M13.8984 16.7116H16.1253L14.9676 14.2124L13.8984 16.7116Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M19.7804 12.1688C19.9667 12.1688 20.1182 12.0173 20.1182 11.831C20.1182 11.6447 19.9667 11.4932 19.7804 11.4932C19.5941 11.4932 19.4424 11.6447 19.4424 11.831C19.4424 12.0173 19.5941 12.1688 19.7804 12.1688Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.4478 10.5238C11.1686 10.5238 11.755 11.1103 11.755 11.831C11.755 12.5518 11.1686 13.1382 10.4478 13.1382C9.72716 13.1382 9.14062 12.5518 9.14062 11.831C9.14062 11.1103 9.72716 10.5238 10.4478 10.5238ZM19.7811 10.5238C20.5019 10.5238 21.0883 11.1103 21.0883 11.831C21.0883 12.5518 20.5019 13.1382 19.7811 13.1382C19.0603 13.1382 18.4737 12.5518 18.4737 11.831C18.4737 11.1103 19.0603 10.5238 19.7811 10.5238ZM7.36507 13.8576H22.5494C23.2483 13.8576 23.815 13.291 23.815 12.5919V11.0322C23.815 10.3333 23.2483 9.7666 22.5494 9.7666H7.36507C6.66633 9.7666 6.09961 10.3333 6.09961 11.0322V12.5919C6.09961 13.291 6.66633 13.8576 7.36507 13.8576Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M2.12851 17.2148V17.0357V16.8437V11.5596V11.3678V11.1885C2.12851 11.187 2.12903 11.1858 2.12903 11.1844C2.13144 10.8144 2.43272 10.5141 2.80295 10.5141H3.12785C3.49963 10.5141 3.80229 10.8168 3.80229 11.1885V17.2148C3.80229 17.5867 3.49963 17.8894 3.12785 17.8894H2.80295C2.43272 17.8894 2.13144 17.589 2.12903 17.2191C2.12903 17.2177 2.12851 17.2163 2.12851 17.2148ZM1.6924 13.1716V15.2311V16.9454C1.69154 16.9454 1.69068 16.9457 1.68999 16.9457H1.04174C0.697371 16.9457 0.417114 16.6653 0.417114 16.3209V16.2003V16.031V15.8619V12.5409V12.3716V12.2024V12.0817C0.417114 11.7372 0.697371 11.4571 1.04174 11.4571H1.68999C1.69068 11.4571 1.69154 11.4573 1.6924 11.4573V13.1716ZM4.30014 10.3668C4.30014 8.68994 5.27449 7.23988 6.68473 6.54234C6.74092 6.51459 6.79642 6.48615 6.85399 6.46064C6.90949 6.43634 6.96637 6.41462 7.02307 6.39238C7.39227 6.24829 7.78507 6.15298 8.19546 6.1173C8.26147 6.11161 8.32852 6.10989 8.39505 6.1073C8.45297 6.10489 8.50984 6.09851 8.56845 6.09851H8.60688H10.6997H10.9184H11.1213H13.4226H13.6251H13.8444H15.9368H16.1557H16.3584H18.9891H19.1918H19.4109H21.2124C21.3068 6.09851 21.399 6.10661 21.4918 6.11264C21.5607 6.11713 21.63 6.1204 21.6979 6.12816C21.7632 6.13557 21.827 6.14746 21.8911 6.1578C22.35 6.2314 22.785 6.37601 23.1828 6.58422C23.2402 6.61421 23.2962 6.64679 23.3521 6.67919C23.4093 6.71246 23.466 6.74641 23.5213 6.78226C24.6982 7.54306 25.4809 8.86402 25.4809 10.3668V16.0247C25.4809 18.007 24.1206 19.6732 22.2855 20.151C21.942 20.2405 21.5836 20.2929 21.2124 20.2929H8.56845C8.42504 20.2929 8.28371 20.2853 8.14393 20.2713C5.98892 20.0576 4.30014 18.2349 4.30014 16.0247V10.3668ZM7.0231 5.01378C7.0231 4.5098 7.43297 4.1001 7.93695 4.1001H7.97487H8.14395H8.31338H10.9932H11.1623H11.3317H13.2122H13.3813H13.5507H16.2304H16.3998H16.5687H18.7789H18.948H19.117H21.7971H21.9665H22.1356H22.2691C22.773 4.1001 23.1828 4.5098 23.1828 5.01378V6.11085C22.8269 5.94142 22.4474 5.81525 22.0485 5.74165C21.993 5.73148 21.9365 5.72424 21.8805 5.71597C21.8238 5.7077 21.7678 5.69632 21.7104 5.69012C21.5466 5.67236 21.3808 5.66202 21.2126 5.66202H19.1939H19.0171H18.8411H16.5065H16.3303H16.1538H13.6272H13.4504H13.2744H11.2693H11.0932H10.9165H8.56848C8.50918 5.66202 8.45144 5.66874 8.39267 5.67081C8.33458 5.67323 8.27633 5.67547 8.21876 5.6796C8.16136 5.68426 8.1038 5.68719 8.04692 5.69356C7.69151 5.73407 7.34955 5.81749 7.0231 5.93435V5.01378ZM8.31349 3.16327C8.31349 2.57811 8.78955 2.10205 9.37454 2.10205H9.93195C10.5173 2.10205 10.9933 2.57811 10.9933 3.16327V3.66398H8.31349V3.16327ZM13.5507 3.16327C13.5507 2.57811 14.0266 2.10205 14.6117 2.10205H15.1693C15.7545 2.10205 16.2303 2.57811 16.2303 3.16327V3.66398H13.5507V3.16327ZM19.1171 3.16327C19.1171 2.57811 19.5931 2.10205 20.1785 2.10205H20.7361C21.3212 2.10205 21.7971 2.57811 21.7971 3.16327V3.66398H19.1171V3.16327ZM8.47256 22.1477H21.4802V20.6675H8.47256V22.1477ZM26.0238 11.1885C26.0238 10.8168 26.3265 10.5141 26.6983 10.5141H27.0232C27.3934 10.5141 27.6947 10.8144 27.6971 11.1844C27.6971 11.1858 27.6976 11.187 27.6976 11.1885V11.3678V11.5596V16.8437V17.0357V17.2148C27.6976 17.2163 27.6971 17.2177 27.6971 17.2191C27.6947 17.589 27.3934 17.8894 27.0232 17.8894H26.6983C26.3265 17.8894 26.0238 17.5867 26.0238 17.2148V11.1885ZM28.1338 15.2311V13.1716V11.4573C28.1347 11.4573 28.1353 11.4571 28.1362 11.4571H28.7843C29.1286 11.4571 29.4089 11.7372 29.4089 12.0817V12.2024V12.3716V12.5409V15.8619V16.031V16.2003V16.3209C29.4089 16.6653 29.1286 16.9457 28.7843 16.9457H28.1362C28.1353 16.9457 28.1347 16.9454 28.1338 16.9454V15.2311ZM4.51737 22.5688H8.14398H22.2855H25.6852C26.3903 22.5688 27.0404 22.7996 27.5697 23.1867C29.1063 20.8324 30 18.0209 30 15C30 6.71583 23.2844 0 15.0001 0C6.71564 0 0 6.71583 0 15C0 18.065 0.920054 20.9147 2.49783 23.2894C3.04938 22.8399 3.75157 22.5688 4.51737 22.5688Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.8862 17.4849H13.1781C12.955 17.4849 12.7744 17.6657 12.7744 17.8889C12.7744 18.1119 12.955 18.2927 13.1781 18.2927H16.8862C17.1093 18.2927 17.2901 18.1119 17.2901 17.8889C17.2901 17.6657 17.1093 17.4849 16.8862 17.4849Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.4472 12.1688C10.6335 12.1688 10.785 12.0173 10.785 11.831C10.785 11.6447 10.6335 11.4932 10.4472 11.4932C10.2609 11.4932 10.1094 11.6447 10.1094 11.831C10.1094 12.0173 10.2609 12.1688 10.4472 12.1688Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.44235 26.116C5.68727 25.964 5.97322 25.8721 6.28209 25.8721H23.7831C24.0918 25.8721 24.3779 25.964 24.6227 26.116C24.709 26.1696 24.7878 26.2332 24.8624 26.3013C24.9664 26.2103 25.0691 26.1177 25.1708 26.024C25.0132 25.8628 24.8281 25.7289 24.6227 25.6298C24.3683 25.5069 24.084 25.436 23.7831 25.436H6.28209C5.98097 25.436 5.69693 25.5069 5.44235 25.6298C5.22345 25.7354 5.02834 25.8814 4.86426 26.0567C4.96509 26.1493 5.06695 26.241 5.17054 26.3306C5.25362 26.2504 5.34376 26.1772 5.44235 26.116Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.9933 3.1631C10.9933 2.57794 10.5173 2.10205 9.9321 2.10205H9.37452C8.78953 2.10205 8.31348 2.57794 8.31348 3.1631V3.6638H10.9933V3.1631Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.2306 3.1631C16.2306 2.57794 15.7546 2.10205 15.1696 2.10205H14.6118C14.0268 2.10205 13.5508 2.57794 13.5508 3.1631V3.6638H16.2306V3.1631Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M21.7972 3.1631C21.7972 2.57794 21.3211 2.10205 20.7362 2.10205H20.1784C19.5932 2.10205 19.1172 2.57794 19.1172 3.1631V3.6638H21.7972V3.1631Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M28.7843 16.9458C29.1286 16.9458 29.4089 16.6654 29.4089 16.321V16.2004V16.0309V15.862V12.5408V12.3717V12.2023V12.0817C29.4089 11.7371 29.1286 11.457 28.7843 11.457H28.136C28.1352 11.457 28.1345 11.4572 28.1338 11.4572V13.1717V15.2312V16.9455C28.1345 16.9455 28.1352 16.9458 28.136 16.9458H28.7843Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M26.6979 17.8894H27.0228C27.393 17.8894 27.6943 17.589 27.6967 17.2191C27.6967 17.2178 27.6972 17.2164 27.6972 17.2148V17.0357V16.8437V11.5597V11.3679V11.1886C27.6972 11.1871 27.6967 11.1858 27.6967 11.1845C27.6943 10.8144 27.393 10.5142 27.0228 10.5142H26.6979C26.3261 10.5142 26.0234 10.8168 26.0234 11.1886V17.2148C26.0234 17.5868 26.3261 17.8894 26.6979 17.8894Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M1.04162 11.457C0.697248 11.457 0.416992 11.7371 0.416992 12.0817V12.2023V12.3717V12.5408V15.862V16.0309V16.2004V16.321C0.416992 16.6654 0.697248 16.9458 1.04162 16.9458H1.68987C1.69056 16.9458 1.69142 16.9455 1.69211 16.9455V15.231V13.1715V11.4572C1.69142 11.4572 1.69056 11.457 1.68987 11.457H1.04162Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M22.2859 22.5693H8.14437H4.51775C3.75196 22.5693 3.04977 22.8403 2.49805 23.29C3.17318 24.3062 3.96879 25.2356 4.86489 26.0572C5.0288 25.8819 5.22408 25.7359 5.44281 25.6303C5.69738 25.5074 5.98143 25.4365 6.28254 25.4365H23.7836C24.0847 25.4365 24.3687 25.5074 24.6233 25.6303C24.8286 25.7294 25.0137 25.8633 25.1712 26.0245C26.0827 25.183 26.8895 24.2302 27.5701 23.1872C27.0408 22.8001 26.3905 22.5693 25.6855 22.5693H22.2859Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M23.7835 25.8726H6.28244C5.97358 25.8726 5.68763 25.9644 5.44271 26.1164C5.34412 26.1778 5.25398 26.2509 5.1709 26.331C7.80334 28.6169 11.2402 30.0004 15.0002 30.0004C18.7763 30.0004 22.2259 28.6048 24.8628 26.3017C24.7881 26.2337 24.7094 26.1701 24.623 26.1164C24.3783 25.9644 24.0922 25.8726 23.7835 25.8726Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.21909 5.6796C8.27666 5.67547 8.33492 5.67323 8.393 5.67081C8.45178 5.66874 8.50952 5.66185 8.56881 5.66185H10.9169H11.0935H11.2697H13.2747H13.4509H13.6276H16.1542H16.3308H16.5068H18.8414H19.0174H19.1942H21.2129C21.3811 5.66185 21.547 5.67236 21.7107 5.69012C21.7681 5.69632 21.8241 5.7077 21.8808 5.71597C21.9368 5.72424 21.9934 5.73148 22.0489 5.74165C22.4477 5.81525 22.8272 5.94142 23.1832 6.11085V5.01378C23.1832 4.5098 22.7733 4.1001 22.2695 4.1001H22.1359H21.9668H21.7974H19.1174H18.9483H18.7792H16.569H16.4001H16.2307H13.551H13.3816H13.2125H11.3321H11.1626H10.9936H8.31372H8.14429H7.97521H7.93729C7.43331 4.1001 7.02344 4.5098 7.02344 5.01378V5.93435C7.34989 5.81749 7.69185 5.7339 8.04725 5.69356C8.10413 5.68719 8.1617 5.68408 8.21909 5.6796Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M2.80335 17.8894H3.12825C3.50002 17.8894 3.80269 17.5868 3.80269 17.2148V11.1886C3.80269 10.8168 3.50002 10.5142 3.12825 10.5142H2.80335C2.43312 10.5142 2.13184 10.8144 2.12942 11.1845C2.12942 11.1858 2.12891 11.1871 2.12891 11.1886V11.3679V11.5597V16.8437V17.0357V17.2148C2.12891 17.2164 2.12942 17.2178 2.12942 17.2191C2.13184 17.589 2.43312 17.8894 2.80335 17.8894Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.4479 11.4932C10.6343 11.4932 10.7858 11.6447 10.7858 11.831C10.7858 12.0173 10.6343 12.1688 10.4479 12.1688C10.2616 12.1688 10.1101 12.0173 10.1101 11.831C10.1101 11.6447 10.2616 11.4932 10.4479 11.4932ZM10.4478 13.1383C11.1686 13.1383 11.755 12.5519 11.755 11.8311C11.755 11.1105 11.1686 10.5239 10.4478 10.5239C9.72716 10.5239 9.14062 11.1105 9.14062 11.8311C9.14062 12.5519 9.72716 13.1383 10.4478 13.1383Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M19.7811 11.4932C19.9674 11.4932 20.1189 11.6447 20.1189 11.831C20.1189 12.0173 19.9674 12.1688 19.7811 12.1688C19.5948 12.1688 19.4431 12.0173 19.4431 11.831C19.4431 11.6447 19.5948 11.4932 19.7811 11.4932ZM19.781 13.1383C20.5018 13.1383 21.0882 12.5519 21.0882 11.8311C21.0882 11.1105 20.5018 10.5239 19.781 10.5239C19.06 10.5239 18.4736 11.1105 18.4736 11.8311C18.4736 12.5519 19.06 13.1383 19.781 13.1383Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M6.09901 11.0327C6.09901 10.3336 6.66556 9.76703 7.36448 9.76703H22.5486C23.2476 9.76703 23.8143 10.3336 23.8143 11.0327V12.5924C23.8143 13.2913 23.2476 13.858 22.5486 13.858H7.36448C6.66556 13.858 6.09901 13.2913 6.09901 12.5924V11.0327ZM13.8978 16.7117L14.967 14.2125L16.1247 16.7117H13.8978ZM16.8854 18.2928H13.1772C12.9542 18.2928 12.7736 18.112 12.7736 17.8889C12.7736 17.6657 12.9542 17.4849 13.1772 17.4849H16.8854C17.1084 17.4849 17.2892 17.6657 17.2892 17.8889C17.2892 18.112 17.1084 18.2928 16.8854 18.2928ZM8.14359 20.2716C8.28337 20.2856 8.42471 20.2932 8.56811 20.2932H21.212C21.5833 20.2932 21.9416 20.2406 22.2852 20.1511C24.1203 19.6734 25.4805 18.0071 25.4805 16.0248V10.367C25.4805 8.86415 24.6978 7.54318 23.521 6.78238C23.4656 6.74653 23.4089 6.71275 23.3517 6.67931C23.2957 6.64691 23.2399 6.61433 23.1825 6.58434C22.7847 6.37613 22.3496 6.23169 21.8908 6.15792C21.8267 6.14758 21.7629 6.13569 21.6976 6.12828C21.6295 6.12052 21.5604 6.11725 21.4914 6.11277C21.3987 6.10673 21.3063 6.09863 21.212 6.09863H19.4104H19.1915H18.9888H16.3579H16.1554H15.9365H13.844H13.6248H13.4223H11.1209H10.9181H10.6992H8.60655H8.56811C8.50951 6.09863 8.45263 6.10501 8.39472 6.10742C8.32819 6.11001 8.26114 6.11173 8.19513 6.11742C7.78474 6.1531 7.39193 6.24841 7.02274 6.39251C6.96603 6.41474 6.90915 6.43646 6.85365 6.46093C6.79608 6.48627 6.74058 6.51471 6.68422 6.54246C5.27415 7.24 4.2998 8.69006 4.2998 10.367V16.0248C4.2998 18.235 5.98858 20.0577 8.14359 20.2716Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.47266 22.1477H21.4803V20.6675H8.47266V22.1477Z", fill: "white" })] })),
|
|
33
|
-
userChatIcon: (_jsxs("svg", { width: "30", height: "30", viewBox: "0 0 30 30", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("mask", { id: "mask0",
|
|
33
|
+
userChatIcon: (_jsxs("svg", { width: "30", height: "30", viewBox: "0 0 30 30", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("mask", { id: "mask0", style: { maskType: 'alpha' }, maskUnits: "userSpaceOnUse", x: "0", y: "0", width: "30", height: "30", children: _jsx("circle", { cx: "15", cy: "15", r: "15", fill: "#8D8D8D" }) }), _jsxs("g", { mask: "url(#mask0)", children: [_jsx("circle", { cx: "15", cy: "15", r: "15", fill: "#0F879D" }), _jsx("ellipse", { cx: "15", cy: "30.0001", rx: "11.1111", ry: "14.4444", fill: "#AFD6DE" }), _jsx("circle", { cx: "14.9999", cy: "9.99989", r: "5.55556", fill: "white" })] })] })),
|
|
34
34
|
databaseLabLogo: (_jsxs("svg", { width: "206", height: "130", viewBox: "0 0 206 130", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M121.727 20.091C92.182 -11.8181 11.8184 5.90916 8.27295 20.091V109.909C27.182 135.909 111.091 130 121.727 109.909V20.091Z", fill: "#FF6212" }), _jsx("path", { d: "M123.746 20.1145C121.009 9.97455 100.637 0 65.0001 0C29.3635 0 8.989 9.97455 6.25427 20.1145C6.05572 20.462 5.90918 20.8425 5.90918 21.2727V22.4545V49.6364V50.8182V52V78V79.1818V80.3636V108.727C5.90918 109.11 6.01082 109.472 6.18573 109.793C8.97718 121.363 33.9514 130 65.0001 130C95.9779 130 120.912 121.399 123.796 109.871C123.985 109.533 124.091 109.143 124.091 108.727V80.3636V79.1818V78V52V50.8182V49.6364V22.4545V21.2727C124.091 20.8425 123.944 20.462 123.746 20.1145ZM119.177 80.3282C119.111 80.6142 119.019 80.8978 118.903 81.1862C118.808 81.4202 118.692 81.6542 118.565 81.8882C118.406 82.1789 118.229 82.4696 118.019 82.7604C117.863 82.9802 117.686 83.1976 117.501 83.4151C117.239 83.7247 116.96 84.0344 116.643 84.3416C116.452 84.5284 116.241 84.7127 116.029 84.8995C115.641 85.2375 115.237 85.5731 114.785 85.9064C114.592 86.0506 114.384 86.19 114.178 86.3318C113.644 86.7005 113.086 87.0669 112.474 87.4262C112.313 87.5231 112.14 87.6153 111.973 87.7098C111.268 88.1069 110.533 88.5016 109.739 88.8845C109.637 88.9342 109.531 88.9815 109.427 89.0287C108.541 89.4471 107.614 89.8584 106.624 90.2555C106.595 90.2673 106.567 90.2767 106.539 90.2886C101.171 92.4324 94.3044 94.2358 86.3035 95.4176C86.2634 95.4224 86.2232 95.4271 86.183 95.4342C84.6277 95.6635 83.0323 95.8667 81.3943 96.0464C81.1272 96.0747 80.8459 96.0936 80.5764 96.122C79.1464 96.2709 77.6999 96.408 76.2108 96.5167C75.5301 96.5664 74.8163 96.59 74.1237 96.6325C73.0034 96.6987 71.8948 96.772 70.7461 96.8122C68.8694 96.8713 66.9548 96.9091 65.0001 96.9091C63.0454 96.9091 61.1308 96.8713 59.2517 96.8051C58.103 96.7649 56.9944 96.6893 55.8741 96.6255C55.1815 96.5853 54.4677 96.5593 53.787 96.5096C52.2979 96.4009 50.8514 96.2638 49.4214 96.1149C49.1519 96.0865 48.8706 96.0676 48.6035 96.0393C46.9655 95.8596 45.3701 95.654 43.8148 95.4271C43.7746 95.4224 43.7345 95.4176 43.6943 95.4105C35.6934 94.2287 28.827 92.4253 23.4592 90.2815C23.4308 90.272 23.4025 90.2602 23.3741 90.2484C22.3837 89.8513 21.4548 89.44 20.5708 89.0216C20.4692 88.972 20.3605 88.9247 20.2588 88.8775C19.4646 88.4945 18.7295 88.1022 18.0252 87.7027C17.8597 87.6082 17.6848 87.516 17.5241 87.4191C16.9119 87.0598 16.3541 86.6935 15.8199 86.3247C15.6166 86.1829 15.4063 86.0435 15.2125 85.8993C14.761 85.566 14.3568 85.2304 13.9692 84.8924C13.7588 84.708 13.5461 84.5236 13.3546 84.3345C13.0379 84.0273 12.759 83.72 12.4966 83.408C12.3123 83.1905 12.135 82.9731 11.979 82.7533C11.771 82.4625 11.5937 82.1718 11.433 81.8811C11.3054 81.6471 11.1919 81.4131 11.095 81.1791C10.9792 80.8931 10.887 80.6071 10.8208 80.3211C10.7334 79.9453 10.6365 79.5624 10.6365 79.1818C10.6365 78.9147 10.6672 78.6476 10.7097 78.3829C10.7688 78.026 10.7357 77.6691 10.6365 77.3311V59.7835C10.7026 59.8449 10.7854 59.904 10.8539 59.9655C11.3692 60.4193 11.8939 60.8707 12.4848 61.3056C21.3886 68.0396 39.1939 73.2727 65.0001 73.2727C90.6975 73.2727 108.458 68.0822 117.4 61.3884C118.113 60.8684 118.756 60.3318 119.361 59.7858L119.364 77.3311C119.264 77.6691 119.231 78.026 119.29 78.3829C119.335 78.6476 119.364 78.9147 119.364 79.1818C119.364 79.5624 119.267 79.9453 119.177 80.3282ZM119.364 31.4198V48.9674C119.264 49.3055 119.231 49.6624 119.29 50.0193C119.335 50.284 119.364 50.5511 119.364 50.8182C119.364 51.1987 119.267 51.5816 119.177 51.9645C119.111 52.2505 119.019 52.5342 118.903 52.8225C118.808 53.0565 118.692 53.2905 118.565 53.5245C118.406 53.8153 118.229 54.106 118.019 54.3967C117.863 54.6166 117.686 54.834 117.501 55.0515C117.239 55.3611 116.96 55.6707 116.643 55.978C116.452 56.1647 116.241 56.3491 116.029 56.5358C115.641 56.8738 115.237 57.2094 114.785 57.5427C114.592 57.6869 114.384 57.8264 114.178 57.9682C113.644 58.3369 113.086 58.7033 112.474 59.0625C112.313 59.1595 112.14 59.2516 111.973 59.3462C111.268 59.7433 110.533 60.138 109.739 60.5209C109.637 60.5705 109.531 60.6178 109.427 60.6651C108.541 61.0835 107.614 61.4947 106.624 61.8918C106.595 61.9036 106.567 61.9131 106.539 61.9249C101.171 64.0687 94.3044 65.8722 86.3035 67.054C86.2634 67.0587 86.2232 67.0635 86.183 67.0705C84.6277 67.2998 83.0323 67.5031 81.3943 67.6827C81.1272 67.7111 80.8459 67.73 80.5764 67.7584C79.1464 67.9073 77.6999 68.0444 76.2108 68.1531C75.5301 68.2027 74.8163 68.2264 74.1237 68.2689C73.0034 68.3351 71.8948 68.4084 70.7461 68.4485C68.8694 68.5076 66.9548 68.5455 65.0001 68.5455C63.0454 68.5455 61.1308 68.5076 59.2517 68.4414C58.103 68.4013 56.9944 68.3256 55.8741 68.2618C55.1815 68.2216 54.4677 68.1956 53.787 68.146C52.2979 68.0373 50.8514 67.9002 49.4214 67.7513C49.1519 67.7229 48.8706 67.704 48.6035 67.6756C46.9655 67.496 45.3701 67.2904 43.8148 67.0635C43.7746 67.0587 43.7345 67.054 43.6943 67.0469C35.6934 65.8651 28.827 64.0616 23.4592 61.9178C23.4308 61.9084 23.4025 61.8965 23.3741 61.8847C22.3837 61.4876 21.4548 61.0764 20.5708 60.658C20.4692 60.6084 20.3605 60.5611 20.2588 60.5138C19.4646 60.1309 18.7295 59.7385 18.0252 59.3391C17.8597 59.2445 17.6848 59.1524 17.5241 59.0555C16.9119 58.6962 16.3541 58.3298 15.8199 57.9611C15.6166 57.8193 15.4063 57.6798 15.2125 57.5356C14.761 57.2024 14.3568 56.8667 13.9692 56.5287C13.7588 56.3444 13.5461 56.16 13.3546 55.9709C13.0379 55.6636 12.759 55.3564 12.4966 55.0444C12.3123 54.8269 12.135 54.6095 11.979 54.3896C11.771 54.0989 11.5937 53.8082 11.433 53.5175C11.3054 53.2835 11.1919 53.0495 11.095 52.8155C10.9792 52.5295 10.887 52.2435 10.8208 51.9575C10.7334 51.5816 10.6365 51.1987 10.6365 50.8182C10.6365 50.5511 10.6672 50.284 10.7097 50.0193C10.7688 49.6624 10.7357 49.3055 10.6365 48.9674V31.4198C10.9201 31.6775 11.2439 31.9304 11.5512 32.1856C11.7214 32.3275 11.8797 32.4693 12.0594 32.6111C12.7685 33.1689 13.5343 33.7196 14.3639 34.2562C14.5365 34.3673 14.7303 34.476 14.9099 34.5871C15.6048 35.0196 16.3399 35.4427 17.1128 35.8587C17.3988 36.0124 17.6848 36.1636 17.9803 36.3149C18.843 36.7545 19.7483 37.1824 20.7008 37.596C20.8568 37.6645 20.9986 37.7355 21.157 37.8016C22.2655 38.272 23.4426 38.7211 24.667 39.156C25.005 39.2765 25.3595 39.39 25.707 39.5082C26.6808 39.8367 27.6877 40.1511 28.7301 40.456C29.1059 40.5647 29.4746 40.6782 29.8599 40.7822C31.2426 41.1651 32.6703 41.5291 34.1688 41.8647C34.3745 41.912 34.5966 41.9498 34.8046 41.9947C36.1259 42.2831 37.4968 42.5502 38.9055 42.8007C39.383 42.8858 39.8675 42.9662 40.3545 43.0465C41.6946 43.2664 43.075 43.4673 44.4908 43.6516C44.8548 43.6989 45.2023 43.7533 45.571 43.7982C47.3295 44.0109 49.1495 44.1929 51.0192 44.3489C51.4801 44.3867 51.9599 44.4151 52.4279 44.4482C53.9241 44.5569 55.4534 44.6467 57.0181 44.7176C57.5877 44.7436 58.155 44.7696 58.7365 44.7909C60.7739 44.8595 62.8492 44.9091 65.0001 44.9091C67.151 44.9091 69.2263 44.8595 71.2637 44.7909C71.8428 44.7696 72.4101 44.7436 72.9821 44.7176C74.5468 44.6467 76.0761 44.5569 77.5723 44.4482C78.0403 44.4127 78.5177 44.3867 78.981 44.3489C80.8506 44.1953 82.6706 44.0109 84.4292 43.7982C84.7979 43.7533 85.1453 43.6989 85.5093 43.6516C86.9252 43.4673 88.3032 43.2664 89.6457 43.0465C90.1326 42.9662 90.6172 42.8858 91.0946 42.8007C92.5034 42.5502 93.8743 42.2831 95.1955 41.9947C95.4035 41.9498 95.6257 41.9096 95.8314 41.8647C97.3299 41.5291 98.7575 41.1627 100.14 40.7822C100.526 40.6758 100.894 40.5647 101.27 40.456C102.312 40.1511 103.319 39.8367 104.293 39.5082C104.641 39.39 104.995 39.2765 105.333 39.156C106.558 38.7211 107.737 38.272 108.843 37.8016C109.002 37.7355 109.143 37.6645 109.299 37.596C110.252 37.18 111.157 36.7545 112.02 36.3149C112.315 36.1636 112.604 36.0124 112.887 35.8587C113.66 35.4451 114.395 35.022 115.09 34.5871C115.27 34.476 115.464 34.3673 115.636 34.2562C116.466 33.7196 117.232 33.1713 117.941 32.6111C118.118 32.4693 118.276 32.3275 118.449 32.1856C118.756 31.9304 119.08 31.6775 119.364 31.4198ZM65.0001 4.72727C97.0392 4.72727 119.364 14.0684 119.364 22.4545C119.364 30.8407 97.0392 40.1818 65.0001 40.1818C32.961 40.1818 10.6365 30.8407 10.6365 22.4545C10.6365 14.0684 32.961 4.72727 65.0001 4.72727ZM119.364 108.025C119.331 108.129 119.307 108.236 119.288 108.344C117.948 116.52 95.8124 125.273 65.0001 125.273C34.1877 125.273 12.0523 116.52 10.7121 108.344C10.6932 108.238 10.6672 108.134 10.6365 108.035V88.1471C10.7026 88.2085 10.7854 88.2676 10.8539 88.3291C11.3692 88.7829 11.8939 89.2344 12.4848 89.6693C21.3886 96.4033 39.1939 101.636 65.0001 101.636C90.6975 101.636 108.458 96.4458 117.4 89.752C118.113 89.232 118.756 88.6954 119.361 88.1495L119.364 108.025Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M130.62 120.083C140.028 117.52 147.632 112.619 149.851 106.095V23.3362C145.134 15.4064 138.23 10.8035 130.62 8.56616V120.083Z", fill: "#FF6212" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M130.62 122.86C141.847 119.961 149.845 113.71 151.074 106.061C151.186 105.749 151.249 105.39 151.249 105.007V78.8723V77.7834V76.6945V52.7379V51.649V50.56V25.5146V24.4256C151.249 24.0293 151.162 23.6786 151.045 23.3585C149.838 16.3969 142.836 9.51987 130.62 6.46643V10.9783C141.573 13.9063 148.451 19.9395 148.451 25.5146C148.451 31.0897 141.573 37.1228 130.62 40.0508V44.5493C130.701 44.5291 130.782 44.5087 130.862 44.4881C131.15 44.4141 131.437 44.34 131.72 44.2616C132.554 44.0308 133.365 43.7847 134.147 43.519C134.207 43.4989 134.268 43.4799 134.33 43.4609C134.395 43.4407 134.461 43.4205 134.523 43.3992C135.41 43.09 136.255 42.7524 137.074 42.4017C137.229 42.3348 137.381 42.2658 137.532 42.1969C137.602 42.1649 137.672 42.133 137.742 42.1012C138.359 41.8203 138.955 41.5306 139.532 41.2279C139.606 41.1887 139.68 41.1501 139.755 41.1115C139.887 41.0429 140.019 40.9745 140.147 40.9034C140.872 40.5027 141.57 40.0889 142.225 39.6555C142.279 39.62 142.33 39.5831 142.382 39.546C142.419 39.5193 142.456 39.4924 142.495 39.466C143.058 39.0827 143.594 38.6907 144.105 38.2856C144.28 38.1462 144.45 38.0068 144.618 37.8653C145.076 37.4841 145.511 37.0943 145.922 36.6936C145.966 36.6507 146.012 36.6083 146.058 36.5659C146.122 36.507 146.186 36.4482 146.245 36.3887C146.736 35.8943 147.189 35.389 147.609 34.8729C147.669 34.7982 147.725 34.7235 147.782 34.6488C147.824 34.5928 147.866 34.5368 147.91 34.4808C147.964 34.4109 148.019 34.3412 148.074 34.2715C148.204 34.1067 148.333 33.9421 148.451 33.7752V49.9437C148.393 50.2551 148.373 50.584 148.408 50.9129C148.434 51.1568 148.451 51.4029 148.451 51.649C148.451 51.9756 148.401 52.3041 148.352 52.6328C148.348 52.6569 148.344 52.6811 148.341 52.7052C148.302 52.9688 148.247 53.2301 148.178 53.4958C148.123 53.7114 148.054 53.927 147.978 54.1426C147.885 54.4105 147.78 54.6784 147.655 54.9463C147.563 55.1488 147.458 55.3492 147.349 55.5495C147.194 55.8348 147.029 56.1201 146.841 56.4033C146.729 56.5729 146.607 56.7404 146.483 56.91L146.477 56.9172C146.248 57.2287 146.009 57.5379 145.742 57.845C145.652 57.9491 145.557 58.0506 145.461 58.1525C145.435 58.1806 145.408 58.2088 145.382 58.237C145.066 58.5768 144.736 58.9143 144.373 59.2454C144.307 59.3073 144.238 59.3671 144.169 59.4271C144.138 59.4535 144.107 59.48 144.077 59.5067C143.66 59.8726 143.225 60.2363 142.755 60.5891C142.706 60.6261 142.656 60.6616 142.606 60.6968C142.594 60.7052 142.582 60.7136 142.57 60.722C142.045 61.1075 141.497 61.4864 140.911 61.8523C140.903 61.8577 140.894 61.8626 140.886 61.8675C140.877 61.8724 140.869 61.8773 140.861 61.8828C138.079 63.6124 134.617 65.1016 130.62 66.1763V70.6962C138.264 68.7847 143.867 65.376 147.289 61.3884C147.711 60.9093 148.092 60.4149 148.45 59.9118L148.451 76.0781C148.393 76.3895 148.373 76.7184 148.408 77.0473C148.434 77.2912 148.451 77.5373 148.451 77.7834C148.451 78.11 148.401 78.4385 148.352 78.7671C148.348 78.7913 148.344 78.8155 148.341 78.8396C148.302 79.1032 148.247 79.3645 148.178 79.6302C148.123 79.8458 148.054 80.0614 147.978 80.277C147.885 80.5449 147.78 80.8128 147.655 81.0807C147.563 81.2832 147.458 81.4836 147.349 81.684C147.194 81.9693 147.029 82.2545 146.841 82.5377C146.729 82.7072 146.607 82.8746 146.483 83.0441L146.477 83.0517C146.248 83.3631 146.009 83.6723 145.742 83.9794C145.652 84.0836 145.556 84.185 145.461 84.287C145.435 84.3151 145.408 84.3432 145.382 84.3714C145.066 84.7112 144.736 85.0488 144.373 85.3798C144.307 85.4417 144.238 85.5015 144.169 85.5614C144.138 85.5879 144.107 85.6144 144.077 85.6411C143.66 86.007 143.225 86.3707 142.755 86.7235C142.706 86.7605 142.656 86.796 142.606 86.8313C142.594 86.8397 142.582 86.848 142.57 86.8564C142.045 87.2419 141.497 87.6208 140.911 87.9867C140.903 87.9921 140.894 87.997 140.886 88.0019C140.877 88.0068 140.869 88.0117 140.861 88.0172C138.079 89.7468 134.617 91.236 130.62 92.3107V96.8306C138.264 94.9191 143.867 91.5105 147.289 87.5228C147.711 87.0437 148.092 86.5493 148.45 86.0462L148.451 104.36C148.432 104.456 148.418 104.554 148.406 104.654C147.842 110.011 141.054 115.637 130.62 118.441V122.86Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M157.778 120.083C167.187 117.52 174.791 112.619 177.009 106.095V23.3362C172.293 15.4064 165.389 10.8035 157.778 8.56616V120.083Z", fill: "#FF6212" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M157.778 122.86C169.006 119.961 177.004 113.71 178.233 106.061C178.345 105.749 178.408 105.39 178.408 105.007V78.8723V77.7834V76.6945V52.7379V51.649V50.56V25.5146V24.4256C178.408 24.0293 178.321 23.6786 178.204 23.3585C176.997 16.3969 169.995 9.51987 157.778 6.46643V10.9783C168.732 13.9063 175.61 19.9395 175.61 25.5146C175.61 31.0897 168.732 37.1228 157.778 40.0508V44.5493C157.859 44.5291 157.94 44.5087 158.021 44.4881C158.309 44.4141 158.596 44.34 158.879 44.2616C159.712 44.0308 160.524 43.7847 161.306 43.519C161.365 43.4989 161.427 43.4799 161.489 43.4609C161.554 43.4407 161.619 43.4205 161.682 43.3992C162.569 43.09 163.414 42.7524 164.232 42.4017C164.388 42.3348 164.539 42.2658 164.69 42.1969C164.76 42.1649 164.831 42.133 164.901 42.1012C165.518 41.8203 166.114 41.5306 166.69 41.2279C166.764 41.1887 166.839 41.1501 166.913 41.1115C167.046 41.0429 167.178 40.9745 167.306 40.9034C168.03 40.5027 168.729 40.0889 169.383 39.6555C169.438 39.62 169.489 39.5831 169.54 39.546C169.577 39.5193 169.615 39.4924 169.653 39.466C170.217 39.0827 170.753 38.6907 171.263 38.2856C171.438 38.1462 171.609 38.0068 171.777 37.8653C172.234 37.4841 172.669 37.0943 173.081 36.6936C173.125 36.6507 173.171 36.6083 173.217 36.5659C173.281 36.507 173.344 36.4482 173.404 36.3887C173.895 35.8943 174.348 35.389 174.768 34.8729C174.828 34.7982 174.884 34.7235 174.94 34.6488C174.983 34.5928 175.025 34.5368 175.069 34.4808C175.123 34.4109 175.178 34.3412 175.232 34.2715C175.362 34.1067 175.492 33.9421 175.61 33.7752V49.9437C175.551 50.2551 175.532 50.584 175.567 50.9129C175.593 51.1568 175.61 51.4029 175.61 51.649C175.61 51.9756 175.56 52.3041 175.51 52.6328C175.507 52.6569 175.503 52.6811 175.499 52.7052C175.46 52.9688 175.406 53.2301 175.337 53.4958C175.281 53.7114 175.213 53.927 175.137 54.1426C175.043 54.4105 174.938 54.6784 174.814 54.9463C174.722 55.1488 174.617 55.3492 174.508 55.5495C174.352 55.8348 174.187 56.1201 174 56.4033C173.888 56.5729 173.765 56.7404 173.641 56.91L173.636 56.9172C173.407 57.2287 173.167 57.5379 172.9 57.845C172.81 57.9491 172.715 58.0506 172.62 58.1525C172.593 58.1806 172.567 58.2088 172.541 58.237C172.225 58.5768 171.894 58.9143 171.532 59.2454C171.466 59.3073 171.397 59.3671 171.327 59.4271C171.297 59.4535 171.266 59.48 171.235 59.5067C170.819 59.8726 170.383 60.2363 169.913 60.5891C169.865 60.6261 169.814 60.6616 169.764 60.6968C169.753 60.7052 169.741 60.7136 169.729 60.722C169.204 61.1075 168.656 61.4864 168.07 61.8523C168.061 61.8577 168.053 61.8626 168.044 61.8675C168.036 61.8724 168.028 61.8773 168.019 61.8828C165.237 63.6124 161.776 65.1016 157.778 66.1763V70.6962C165.422 68.7847 171.026 65.376 174.447 61.3884C174.87 60.9093 175.25 60.4149 175.609 59.9118L175.61 76.0781C175.551 76.3895 175.532 76.7184 175.567 77.0473C175.593 77.2912 175.61 77.5373 175.61 77.7834C175.61 78.11 175.56 78.4385 175.51 78.7671C175.507 78.7913 175.503 78.8155 175.499 78.8396C175.46 79.1032 175.406 79.3645 175.337 79.6302C175.281 79.8458 175.213 80.0614 175.137 80.277C175.043 80.5449 174.938 80.8128 174.814 81.0807C174.722 81.2832 174.617 81.4836 174.508 81.684C174.352 81.9693 174.187 82.2545 174 82.5377C173.888 82.7072 173.766 82.8746 173.642 83.0441L173.636 83.0517C173.407 83.3631 173.167 83.6723 172.9 83.9794C172.81 84.0836 172.715 84.185 172.62 84.287C172.593 84.3151 172.567 84.3432 172.541 84.3714C172.225 84.7112 171.894 85.0488 171.532 85.3798C171.466 85.4417 171.397 85.5015 171.327 85.5614C171.297 85.5879 171.266 85.6144 171.235 85.6411C170.819 86.007 170.383 86.3707 169.913 86.7235C169.865 86.7605 169.814 86.796 169.764 86.8313C169.752 86.8397 169.741 86.848 169.729 86.8564C169.204 87.2419 168.656 87.6208 168.07 87.9867C168.061 87.9921 168.053 87.997 168.044 88.0019C168.036 88.0068 168.028 88.0117 168.019 88.0172C165.237 89.7468 161.776 91.236 157.778 92.3107V96.8306C165.422 94.9191 171.026 91.5105 174.447 87.5228C174.87 87.0437 175.25 86.5493 175.609 86.0462L175.61 104.36C175.59 104.456 175.576 104.554 175.565 104.654C175.001 110.011 168.212 115.637 157.778 118.441V122.86Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M184.937 120.083C194.345 117.52 201.95 112.619 204.168 106.095V23.3362C199.452 15.4064 192.547 10.8035 184.937 8.56616V120.083Z", fill: "#FF6212" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M184.937 122.86C196.165 119.961 204.163 113.71 205.392 106.061C205.504 105.749 205.567 105.39 205.567 105.007V78.8723V77.7834V76.6945V52.7379V51.649V50.56V25.5146V24.4256C205.567 24.0293 205.48 23.6786 205.362 23.3585C204.155 16.3969 197.153 9.51987 184.937 6.46643V10.9783C195.89 13.9063 202.769 19.9395 202.769 25.5146C202.769 31.0897 195.89 37.1228 184.937 40.0508V44.5493C185.018 44.5291 185.099 44.5087 185.18 44.4881C185.468 44.4141 185.755 44.34 186.037 44.2616C186.871 44.0308 187.682 43.7847 188.464 43.519C188.524 43.4989 188.586 43.4799 188.647 43.4609C188.713 43.4407 188.778 43.4205 188.841 43.3992C189.728 43.09 190.573 42.7524 191.391 42.4017C191.547 42.3348 191.698 42.2658 191.849 42.1969C191.919 42.1649 191.989 42.133 192.06 42.1012C192.677 41.8203 193.273 41.5306 193.849 41.2279C193.923 41.1887 193.998 41.15 194.072 41.1114C194.204 41.0428 194.336 40.9744 194.464 40.9034C195.189 40.5026 195.887 40.0889 196.542 39.6555C196.596 39.62 196.648 39.5831 196.699 39.546C196.736 39.5193 196.773 39.4924 196.812 39.466C197.376 39.0827 197.912 38.6907 198.422 38.2856C198.597 38.1462 198.768 38.0068 198.936 37.8652C199.393 37.4841 199.828 37.0943 200.239 36.6936C200.284 36.6507 200.33 36.6083 200.376 36.5659C200.439 36.507 200.503 36.4482 200.563 36.3887C201.054 35.8943 201.507 35.389 201.926 34.8729C201.986 34.7982 202.043 34.7235 202.099 34.6488C202.141 34.5928 202.183 34.5368 202.227 34.4808C202.281 34.4109 202.336 34.3412 202.391 34.2716C202.521 34.1068 202.651 33.9421 202.769 33.7752V49.9437C202.71 50.2551 202.69 50.584 202.725 50.9129C202.752 51.1568 202.769 51.4029 202.769 51.649C202.769 51.9756 202.719 52.3041 202.669 52.6328C202.665 52.6569 202.662 52.6811 202.658 52.7052C202.619 52.9688 202.564 53.2301 202.496 53.4958C202.44 53.7114 202.371 53.927 202.296 54.1426C202.202 54.4105 202.097 54.6784 201.973 54.9463C201.88 55.1488 201.775 55.3492 201.666 55.5495C201.511 55.8348 201.346 56.1201 201.158 56.4033C201.047 56.5729 200.924 56.7404 200.8 56.91L200.795 56.9172C200.565 57.2287 200.326 57.5379 200.059 57.845C199.969 57.9491 199.874 58.0506 199.778 58.1526C199.752 58.1807 199.726 58.2088 199.699 58.237C199.383 58.5768 199.053 58.9143 198.691 59.2454C198.625 59.3073 198.555 59.3671 198.486 59.4271C198.455 59.4535 198.425 59.48 198.394 59.5067C197.977 59.8726 197.542 60.2363 197.072 60.5891C197.024 60.6261 196.973 60.6616 196.923 60.6969C196.911 60.7053 196.899 60.7136 196.887 60.722C196.363 61.1075 195.814 61.4864 195.228 61.8523C195.22 61.8577 195.212 61.8626 195.203 61.8675C195.195 61.8724 195.186 61.8773 195.178 61.8828C192.396 63.6124 188.934 65.1016 184.937 66.1763V70.6962C192.581 68.7847 198.185 65.376 201.606 61.3884C202.029 60.9093 202.409 60.4149 202.767 59.9118L202.769 76.0781C202.71 76.3895 202.69 76.7184 202.725 77.0473C202.752 77.2912 202.769 77.5373 202.769 77.7834C202.769 78.11 202.719 78.4385 202.669 78.7671C202.665 78.7913 202.662 78.8155 202.658 78.8396C202.619 79.1032 202.564 79.3645 202.496 79.6302C202.44 79.8458 202.371 80.0614 202.296 80.277C202.202 80.5449 202.097 80.8128 201.973 81.0807C201.88 81.2832 201.775 81.4836 201.666 81.684C201.511 81.9693 201.346 82.2545 201.158 82.5377C201.047 82.7073 200.924 82.8748 200.8 83.0443L200.795 83.0516C200.565 83.3631 200.326 83.6723 200.059 83.9794C199.969 84.0836 199.874 84.185 199.778 84.287C199.752 84.3151 199.726 84.3432 199.699 84.3714C199.383 84.7112 199.053 85.0488 198.691 85.3798C198.625 85.4417 198.555 85.5016 198.486 85.5615C198.455 85.588 198.425 85.6145 198.394 85.6411C197.977 86.007 197.542 86.3707 197.072 86.7235C197.024 86.7605 196.973 86.796 196.923 86.8313C196.911 86.8397 196.899 86.848 196.887 86.8564C196.363 87.2419 195.814 87.6208 195.228 87.9867C195.217 87.9942 195.205 88.0006 195.194 88.0075C195.188 88.0106 195.183 88.0138 195.178 88.0172C192.396 89.7468 188.934 91.236 184.937 92.3107V96.8306C192.581 94.9191 198.185 91.5105 201.606 87.5228C202.029 87.0437 202.409 86.5493 202.767 86.0462L202.769 104.36C202.749 104.456 202.735 104.554 202.724 104.654C202.16 110.011 195.371 115.637 184.937 118.441V122.86Z", fill: "white" })] })),
|
|
35
35
|
checkupLogo: (_jsxs("svg", { width: "82", height: "152", viewBox: "0 0 82 152", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M1.46509 159.386H43.2423V107.745H1.46509V159.386Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M2.07896 158.773H42.6292V108.359H2.07896V158.773ZM0.851807 160H43.856V107.132H0.851807V160Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M34.7439 142.389L4.43616 117.861C0.0128719 114.282 -0.671378 107.794 2.90856 103.37L27.9329 72.4479L53.4379 73.3109L74.2594 109.938L49.2355 140.861C45.6555 145.284 39.1672 145.968 34.7439 142.389Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M28.218 73.0728L3.3859 103.757C1.75768 105.77 1.01045 108.295 1.28202 110.869C1.55319 113.444 2.81085 115.758 4.8227 117.386L35.1301 141.913C37.1423 143.542 39.667 144.29 42.2421 144.017C44.8163 143.746 47.1304 142.488 48.759 140.476L73.52 109.879L53.0743 73.9141L28.218 73.0728ZM41.2154 145.293C38.8028 145.293 36.3754 144.499 34.3586 142.867L4.05086 118.34C1.7838 116.505 0.367035 113.898 0.0615158 110.998C-0.244413 108.098 0.597709 105.253 2.43205 102.986L27.6483 71.8259L53.8023 72.711L53.9716 73.0096L75.0001 110.001L49.7127 141.248C47.5581 143.911 44.3995 145.293 41.2154 145.293Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M66.1661 158.409C66.0565 148.381 65.9076 134.653 53.4185 117.671C39.1438 98.2579 43.3356 81.9807 43.5209 81.2969L51.4157 83.4392L47.4681 82.368L51.4231 83.4093C51.286 83.9472 48.2002 96.7663 60.0087 112.825C74.0585 131.93 74.2311 147.809 74.3452 158.316L66.1661 158.409Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M81.0534 33.3637C81.1749 51.9113 66.2376 67.0457 47.6904 67.1668C29.1429 67.2883 14.0084 52.3513 13.887 33.8038C13.7655 15.2567 28.7028 0.122207 47.2504 0.00073566C65.7975 -0.120736 80.9319 14.8162 81.0534 33.3637Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M72.2467 33.4221C72.1572 19.7375 60.9908 8.71676 47.3066 8.80633C33.622 8.8959 22.6012 20.0623 22.6912 33.7469C22.7808 47.431 33.9468 58.4518 47.6309 58.3622C61.3155 58.2727 72.3367 47.1063 72.2467 33.4221Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M56.6547 33.5241C56.6215 28.4514 52.4821 24.3655 47.4089 24.3986C42.3357 24.4322 38.2503 28.5716 38.2834 33.6448C38.3165 38.7176 42.456 42.803 47.5292 42.7699C52.6023 42.7368 56.6878 38.5973 56.6547 33.5241Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M47.4693 24.8072C47.4497 24.8072 47.4301 24.8076 47.4108 24.8076C42.5716 24.8391 38.6604 28.8023 38.6919 33.6419C38.7234 38.4619 42.655 42.3613 47.4677 42.3613C47.4873 42.3613 47.507 42.3609 47.5262 42.3609C52.3654 42.3294 56.2766 38.3662 56.2451 33.5266C56.2136 28.7066 52.2824 24.8072 47.4693 24.8072ZM47.4688 43.1773C42.207 43.1773 37.9093 38.9151 37.875 33.6456C37.8402 28.3553 42.1162 24.0228 47.4066 23.988H47.4704C52.7321 23.988 57.0299 28.2502 57.0642 33.5197C57.099 38.81 52.8229 43.1425 47.5326 43.1773H47.4688Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M50.3177 33.5647C50.3079 31.9913 49.0237 30.7242 47.4499 30.7344C45.8764 30.7443 44.6094 32.0285 44.6192 33.6023C44.6298 35.1757 45.9137 36.4428 47.4875 36.433C49.0609 36.4223 50.328 35.1385 50.3177 33.5647Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M53.2395 82.3312L42.3394 82.4023L42.2678 71.5018L53.168 71.431L53.2395 82.3312Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M53.1551 69.6287L42.2549 69.7003L42.2435 67.9895C42.2336 66.4173 43.4995 65.1351 45.0708 65.1245L50.2794 65.0905C51.8512 65.0803 53.1334 66.3461 53.144 67.9179L53.1551 69.6287Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M50.2976 65.499H50.2812L45.0731 65.533C43.7291 65.5415 42.6432 66.6426 42.6518 67.9861L42.66 69.2879L52.7426 69.2221L52.734 67.9203C52.7295 67.2691 52.4722 66.6585 52.0092 66.2017C51.5499 65.7481 50.9422 65.499 50.2976 65.499ZM41.8487 70.1125L41.8348 67.9931C41.8229 66.198 43.2736 64.7281 45.0683 64.7162L50.2765 64.6823H50.2989C51.1599 64.6823 51.9709 65.0148 52.5844 65.6205C53.2032 66.2311 53.5472 67.0462 53.5529 67.9158L53.5668 70.0356L41.8487 70.1125Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M44.582 88.2425L36.6843 91.359C35.6201 91.779 34.4168 91.2568 33.9963 90.1925L31.5031 83.8752C31.0831 82.811 31.6054 81.6073 32.67 81.1877L40.5681 78.0707C41.6323 77.6507 42.8356 78.173 43.2556 79.2372L45.7488 85.5545C46.1689 86.6187 45.6466 87.8224 44.582 88.2425Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M41.3288 78.5392C41.148 78.5392 40.9664 78.5731 40.793 78.6418L32.8953 81.7588C32.5325 81.9019 32.2478 82.1772 32.0928 82.5347C31.9374 82.8917 31.9309 83.288 32.074 83.6504L34.5673 89.9673C34.71 90.3297 34.9857 90.6148 35.3431 90.7698C35.6994 90.9252 36.0965 90.9317 36.4593 90.7886L44.3566 87.672C44.7189 87.5289 45.004 87.2536 45.159 86.8962C45.3144 86.5391 45.321 86.1424 45.1778 85.78L42.6846 79.4631C42.5418 79.1003 42.2666 78.8157 41.9091 78.6607C41.723 78.5797 41.5259 78.5392 41.3288 78.5392ZM35.9233 92.1187C35.5605 92.1187 35.1977 92.0443 34.855 91.895C34.1969 91.6095 33.6893 91.0852 33.4259 90.4177L30.9327 84.1007C30.6697 83.4333 30.6816 82.7036 30.9675 82.0455C31.253 81.3875 31.7777 80.8803 32.4448 80.6169L40.3429 77.5C41.0104 77.237 41.74 77.2489 42.3977 77.5347C43.0562 77.8202 43.5633 78.345 43.8263 79.012L46.3195 85.3294C46.8631 86.7065 46.185 88.2692 44.8075 88.8132L36.9098 91.9297C36.5903 92.0557 36.257 92.1187 35.9233 92.1187Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M42.2473 71.069L32.4535 76.9455C30.4662 78.1381 27.6973 77.1156 26.3308 74.685L25.1071 72.5083C23.793 70.1709 24.2683 67.3971 26.1787 66.2511L35.9725 60.3742C37.9598 59.182 40.7287 60.2045 42.0956 62.6351L43.3193 64.8118C44.633 67.1488 44.1581 69.9226 42.2473 71.069Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M37.811 60.4901C37.2634 60.4901 36.7423 60.6288 36.2896 60.8999L26.4958 66.7768C24.8856 67.7428 24.5031 70.1788 25.6434 72.207L26.8671 74.3841C27.5256 75.5555 28.5677 76.4033 29.7272 76.7105C30.5898 76.9395 31.4458 76.8356 32.1395 76.4193L41.9333 70.5428C43.5439 69.5768 43.9263 67.1408 42.7861 65.1126L41.5623 62.9355C40.9039 61.7641 39.8613 60.9163 38.7018 60.6091C38.4016 60.5298 38.1027 60.4901 37.811 60.4901ZM30.6199 78.0565C30.2228 78.0565 29.8174 78.0038 29.4134 77.8966C27.9357 77.5052 26.6179 76.4439 25.7978 74.9854L24.5741 72.8087C23.0866 70.1629 23.6539 67.0517 25.8649 65.7249L35.6587 59.8481C36.6387 59.2595 37.8305 59.109 39.0162 59.4231C40.4943 59.8149 41.812 60.8759 42.6321 62.3344L43.8558 64.511C45.3429 67.1568 44.7756 70.2685 42.5646 71.5948L32.7708 77.4717C32.1254 77.859 31.3872 78.0565 30.6199 78.0565Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M27.8553 79.9788L22.9143 92.5795C21.9527 95.0311 19.0182 96.1435 16.4313 95.0372L14.1282 94.0527C11.6501 92.993 10.4125 90.2834 11.3332 87.935L16.2742 75.3347C17.2354 72.8827 20.1703 71.7703 22.7568 72.8766L25.0599 73.861C27.5384 74.9208 28.776 77.6304 27.8553 79.9788Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M20.6838 73.0642C20.1006 73.0642 19.5239 73.1754 18.9898 73.3991C17.9894 73.818 17.2278 74.5852 16.8458 75.5595L11.9047 88.1598C11.0998 90.2134 12.1829 92.554 14.3702 93.4894L16.6732 94.4743C17.8135 94.9618 19.0986 94.9773 20.1996 94.516C21.2004 94.0976 21.9619 93.3303 22.3439 92.3561L27.285 79.7553C28.0895 77.7022 27.0069 75.3611 24.8192 74.4257L22.5161 73.4413C21.9292 73.1901 21.3031 73.0642 20.6838 73.0642ZM18.5061 96.0777C17.7221 96.0777 16.9315 95.919 16.1912 95.602L13.8882 94.6175C11.0869 93.4204 9.71436 90.3869 10.7626 87.7117L15.7037 75.1113C16.208 73.8255 17.2067 72.8156 18.5163 72.2676C19.9208 71.679 21.5552 71.6958 22.9989 72.3134L25.302 73.2978C28.1032 74.4954 29.4758 77.5289 28.4275 80.2037L23.4865 92.8045C22.9822 94.0899 21.9834 95.1002 20.6738 95.6482C19.9895 95.9345 19.2505 96.0777 18.5061 96.0777Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M68.0044 93.5986L50.2442 100.608C49.0487 101.08 47.6974 100.493 47.225 99.2976L44.9195 93.4547C44.4475 92.2596 45.0344 90.9078 46.2299 90.4363L63.9906 83.4269C65.1856 82.9553 66.5374 83.5418 67.0089 84.7373L69.3149 90.5798C69.7864 91.7753 69.1999 93.127 68.0044 93.5986Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M64.8443 83.8774C64.6316 83.8774 64.419 83.9174 64.2153 83.998L46.4547 91.0074C45.5757 91.3538 45.1426 92.3513 45.4898 93.2299L47.7953 99.0724C48.1426 99.9513 49.1405 100.384 50.0186 100.038L67.7789 93.0282C68.6578 92.6814 69.0909 91.6843 68.7437 90.8053L66.4378 84.9628C66.2701 84.5371 65.9461 84.2025 65.5265 84.0201C65.3077 83.9248 65.0758 83.8774 64.8443 83.8774ZM49.3946 101.384C48.2216 101.384 47.1112 100.678 46.6547 99.5228L44.3492 93.6803C44.0609 92.9499 44.0744 92.1507 44.3869 91.43C44.6997 90.7094 45.2744 90.154 46.0053 89.8656L63.7655 82.8563C65.2726 82.262 66.9851 83.0035 67.5802 84.5123L69.8861 90.3548C70.4812 91.8628 69.7384 93.5744 68.2301 94.1695L50.4703 101.179C50.1169 101.318 49.7529 101.384 49.3946 101.384Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M42.5751 103.634L39.8156 104.723C38.6123 105.198 37.2512 104.608 36.7763 103.404L34.4823 97.5908C34.0074 96.3871 34.5976 95.0268 35.8013 94.5515L38.5612 93.4628C39.7645 92.9879 41.1248 93.5781 41.5996 94.7814L43.8945 100.595C44.3693 101.799 43.7783 103.159 42.5751 103.634Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M39.4213 93.9116C39.207 93.9116 38.9919 93.9525 38.7862 94.0334L36.0263 95.1222C35.1396 95.4719 34.7032 96.4784 35.0529 97.3651L37.3473 103.179C37.5166 103.609 37.8434 103.946 38.2671 104.13C38.6905 104.314 39.16 104.322 39.5902 104.152L42.3497 103.063C43.2369 102.714 43.6733 101.707 43.3236 100.821L41.0291 95.0068C40.8598 94.577 40.533 94.2396 40.1093 94.0555C39.8888 93.9594 39.6549 93.9116 39.4213 93.9116ZM38.9546 105.502C38.555 105.502 38.1558 105.42 37.7783 105.256C37.054 104.942 36.4957 104.364 36.2057 103.63L33.9112 97.816C33.3129 96.2998 34.0601 94.5796 35.5759 93.9808L38.3358 92.8921C39.8527 92.2941 41.5725 93.0405 42.1705 94.5563L44.465 100.37C44.7545 101.105 44.741 101.908 44.4265 102.632C44.1124 103.357 43.5349 103.915 42.8003 104.205L40.0409 105.294C39.6891 105.433 39.3218 105.502 38.9546 105.502Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M72.263 91.9169C71.1616 92.3516 69.9162 91.8113 69.4815 90.7099L67.0414 84.5267C66.6066 83.4253 67.1473 82.1799 68.2487 81.7455C69.3502 81.3104 70.5956 81.8515 71.0299 82.9525L73.47 89.1357C73.9052 90.2371 73.3641 91.4825 72.263 91.9169Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M69.0357 82.2084C68.8455 82.2084 68.6553 82.2444 68.4733 82.3164C68.093 82.4661 67.794 82.7553 67.6312 83.1303C67.4684 83.5054 67.4615 83.9209 67.612 84.3013L70.0516 90.4844C70.2017 90.8648 70.4909 91.1638 70.866 91.327C71.2406 91.4893 71.6569 91.4959 72.0373 91.3462C72.4177 91.1965 72.7167 90.9073 72.879 90.5323C73.0422 90.1573 73.0492 89.7413 72.8987 89.3609L70.4586 83.1777C70.3089 82.7974 70.0197 82.4984 69.6447 82.336C69.4492 82.251 69.2426 82.2084 69.0357 82.2084ZM71.4752 92.6816C71.1026 92.6816 70.7304 92.6051 70.3779 92.4526C69.7022 92.1593 69.1812 91.6203 68.9108 90.9352L66.4712 84.752C66.2004 84.067 66.2131 83.3177 66.5063 82.642C66.7996 81.9659 67.3386 81.4453 68.0233 81.175C68.7075 80.9046 69.4572 80.9165 70.1341 81.2105C70.8094 81.5034 71.3304 82.0424 71.6012 82.7275L74.0408 88.9107C74.3112 89.5958 74.2989 90.345 74.0053 91.0207C73.7124 91.6959 73.1734 92.2174 72.4883 92.4878C72.1607 92.617 71.8175 92.6816 71.4752 92.6816Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M72.0407 107.201L55.9374 113.556C54.6719 114.056 53.2413 113.434 52.7419 112.169L50.5362 106.579C50.0368 105.314 50.6576 103.884 51.9231 103.385L68.0264 97.0292C69.2915 96.5298 70.7221 97.1507 71.2215 98.4161L73.4276 104.006C73.9266 105.271 73.3058 106.702 72.0407 107.201Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M68.931 97.4699C68.7011 97.4699 68.4717 97.5128 68.2516 97.5999L52.1483 103.955C51.6885 104.137 51.3274 104.486 51.1307 104.939C50.9339 105.392 50.9258 105.895 51.107 106.354L53.3127 111.944C53.4943 112.404 53.8435 112.765 54.2967 112.962C54.7495 113.158 55.2521 113.167 55.7122 112.986L71.8156 106.63C72.7641 106.256 73.2311 105.18 72.8569 104.231L70.6508 98.6412C70.4696 98.1815 70.1199 97.8204 69.6672 97.6236C69.4308 97.5214 69.1809 97.4699 68.931 97.4699ZM55.0322 114.343C54.6163 114.343 54.2007 114.258 53.8077 114.087C53.0543 113.76 52.4727 113.159 52.1709 112.395L49.9652 106.805C49.3423 105.227 50.1198 103.437 51.6973 102.814L67.8006 96.4585C68.5651 96.1574 69.4014 96.1713 70.1552 96.4981C70.909 96.8253 71.4906 97.4265 71.792 98.191L73.9981 103.781C74.6206 105.359 73.8435 107.149 72.2656 107.772L56.1623 114.127C55.7966 114.271 55.4138 114.343 55.0322 114.343Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M48.1633 116.621L45.36 117.728C44.1686 118.197 42.8214 117.613 42.3514 116.422L40.0398 110.564C39.5694 109.373 40.1543 108.026 41.3457 107.556L44.1494 106.449C45.3408 105.979 46.6876 106.564 47.1575 107.755L49.4692 113.613C49.9395 114.804 49.3547 116.151 48.1633 116.621Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M45.0009 106.9C44.789 106.9 44.5775 106.94 44.3747 107.02L41.571 108.127C40.6966 108.472 40.2655 109.465 40.6107 110.339L42.9223 116.197C43.0892 116.621 43.4115 116.954 43.8299 117.135C44.2475 117.317 44.7105 117.325 45.1346 117.157L47.9383 116.051C48.362 115.884 48.6953 115.561 48.8769 115.143C49.0581 114.725 49.0659 114.262 48.8986 113.838L46.5869 107.981C46.4201 107.557 46.0978 107.224 45.6798 107.042C45.4618 106.948 45.2311 106.9 45.0009 106.9ZM44.5079 118.504C44.1112 118.504 43.7157 118.423 43.341 118.261C42.6224 117.949 42.0683 117.375 41.7807 116.647L39.4691 110.789C38.8752 109.286 39.6163 107.579 41.1206 106.985L43.9239 105.879C45.4286 105.284 47.1349 106.026 47.7283 107.53L50.04 113.387C50.3275 114.117 50.314 114.913 50.0024 115.632C49.6903 116.35 49.1169 116.904 48.3885 117.192L45.5852 118.298C45.2363 118.436 44.8719 118.504 44.5079 118.504Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M76.2682 105.53C75.1668 105.964 73.9214 105.424 73.4866 104.323L71.0466 98.1395C70.6118 97.0377 71.1521 95.7927 72.2539 95.3579C73.3554 94.9232 74.6007 95.4639 75.0351 96.5653L77.4752 102.748C77.9103 103.85 77.3692 105.095 76.2682 105.53Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M73.0389 95.8214C72.8524 95.8214 72.6626 95.8558 72.479 95.9286C72.0986 96.0787 71.7997 96.3678 71.6365 96.7429C71.4741 97.1175 71.4672 97.5339 71.6173 97.9138L74.0573 104.097C74.3673 104.882 75.2573 105.269 76.043 104.959C76.423 104.809 76.7223 104.52 76.8847 104.145C77.0479 103.77 77.0544 103.353 76.9043 102.973L74.4643 96.7903C74.2271 96.1891 73.6491 95.8214 73.0389 95.8214ZM75.4843 106.293C74.3845 106.293 73.3432 105.63 72.9158 104.548L70.4757 98.3645C70.2054 97.6795 70.2181 96.9298 70.5109 96.2545C70.8042 95.5785 71.3432 95.0578 72.0283 94.7871C73.4438 94.2276 75.0479 94.9261 75.6058 96.34L78.0458 102.523C78.3162 103.208 78.3039 103.958 78.0102 104.633C77.717 105.308 77.1783 105.83 76.4933 106.1C76.1624 106.231 75.8205 106.293 75.4843 106.293Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M74.9979 120.729L62.492 125.664C61.5771 126.026 60.5419 125.577 60.1808 124.661L57.4745 117.804C57.1133 116.889 57.5624 115.854 58.4773 115.493L70.984 110.557C71.8989 110.196 72.9332 110.645 73.2948 111.56L76.0011 118.418C76.3623 119.333 75.9128 120.368 74.9979 120.729Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M71.636 111.046C71.4937 111.046 71.3493 111.072 71.2091 111.128L58.7028 116.064C58.1036 116.3 57.8087 116.979 58.0455 117.579L60.7519 124.436C60.866 124.726 61.0868 124.954 61.3727 125.079C61.6598 125.204 61.9764 125.208 62.2668 125.094L74.7726 120.158C75.3718 119.921 75.6667 119.242 75.4303 118.643L72.724 111.786C72.5432 111.327 72.1019 111.046 71.636 111.046ZM61.8373 126.404C61.5138 126.404 61.1903 126.337 60.8844 126.204C60.2975 125.95 59.8451 125.482 59.6104 124.887L56.9036 118.029C56.4194 116.8 57.0239 115.407 58.2521 114.922L70.7583 109.986C71.9886 109.502 73.3804 110.107 73.8655 111.335L76.5718 118.193C77.0565 119.421 76.4512 120.815 75.2233 121.3L62.7171 126.235C62.4324 126.347 62.1351 126.404 61.8373 126.404Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M55.1636 128.554L52.735 129.513C51.4401 130.024 49.9759 129.388 49.465 128.093L47.301 122.611C46.7902 121.316 47.4258 119.853 48.7207 119.341L51.1493 118.383C52.4442 117.872 53.908 118.507 54.4192 119.802L56.5828 125.285C57.0936 126.579 56.458 128.044 55.1636 128.554Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M52.0738 118.821C51.8415 118.821 51.6051 118.863 51.3764 118.954L48.9478 119.912C47.9699 120.299 47.4881 121.408 47.8738 122.386L50.0378 127.869C50.2247 128.343 50.585 128.715 51.0525 128.918C51.52 129.121 52.0378 129.13 52.5114 128.943L54.9404 127.984C55.9183 127.598 56.4001 126.489 56.014 125.51L53.8504 120.028C53.5547 119.279 52.8341 118.821 52.0738 118.821ZM51.8106 130.305C51.3869 130.305 50.964 130.218 50.5636 130.043C49.7959 129.71 49.2033 129.098 48.8961 128.319L46.7321 122.837C46.0986 121.23 46.89 119.406 48.4974 118.771L50.9256 117.812C52.5333 117.179 54.357 117.97 54.9918 119.578L57.1554 125.06C57.7897 126.668 56.9979 128.492 55.3906 129.126L52.962 130.084C52.5894 130.231 52.2 130.305 51.8106 130.305Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M78.5639 118.942C77.4625 119.377 76.2175 118.837 75.7823 117.735L73.3422 111.552C72.9079 110.451 73.4482 109.206 74.55 108.771C75.651 108.336 76.8964 108.877 77.3308 109.978L79.7712 116.161C80.206 117.263 79.6653 118.508 78.5639 118.942Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M75.3369 109.234C75.1467 109.234 74.9565 109.27 74.7749 109.342C73.9901 109.651 73.6036 110.542 73.9132 111.327L76.3528 117.51C76.6628 118.294 77.5536 118.683 78.3385 118.372C78.7189 118.222 79.0178 117.933 79.1806 117.558C79.3434 117.183 79.3504 116.767 79.2003 116.386L76.7598 110.203C76.6101 109.823 76.3209 109.524 75.9459 109.361C75.7504 109.276 75.5438 109.234 75.3369 109.234ZM77.7805 119.706C76.6807 119.706 75.639 119.044 75.2112 117.961L72.7715 111.778C72.2132 110.364 72.9098 108.759 74.3241 108.2C75.0091 107.93 75.7588 107.943 76.4345 108.236C77.1101 108.529 77.6308 109.068 77.9016 109.753L80.3416 115.936C80.8999 117.351 80.203 118.956 78.7887 119.514C78.4578 119.644 78.1163 119.706 77.7805 119.706Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M67.6487 79.1396L50.7159 85.8221C49.4967 86.3035 48.1184 85.7052 47.637 84.4855L45.3654 78.7289C44.884 77.5101 45.4824 76.1318 46.7016 75.6504L63.6344 68.9678C64.8536 68.4865 66.232 69.0848 66.7133 70.304L68.9853 76.061C69.4659 77.2799 68.8675 78.6582 67.6487 79.1396Z", fill: "#808080" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M64.5037 69.4153C64.2893 69.4153 64.0709 69.455 63.8599 69.5384L46.9271 76.221C46.4899 76.3936 46.1459 76.7257 45.9586 77.1572C45.7717 77.5879 45.7639 78.0664 45.9365 78.5036L48.2081 84.2602C48.3807 84.6974 48.7132 85.0414 49.1443 85.2287C49.5753 85.4152 50.0535 85.4238 50.4907 85.2512L67.4239 78.5687C68.3261 78.2124 68.7707 77.1883 68.4149 76.286L66.1429 70.5294C65.8701 69.8378 65.2055 69.4153 64.5037 69.4153ZM49.844 86.6025C49.4403 86.6025 49.0374 86.5195 48.6559 86.3542C47.9242 86.0364 47.3597 85.4528 47.0665 84.7105L44.7949 78.9539C44.5021 78.2119 44.5156 77.4001 44.833 76.6684C45.1512 75.9367 45.7344 75.3723 46.4767 75.0794L63.4091 68.3969C64.9412 67.7932 66.6795 68.5466 67.2844 70.0787L69.5563 75.8353C70.1604 77.367 69.4058 79.1052 67.8741 79.7101L50.9413 86.3927C50.5863 86.533 50.2145 86.6025 49.844 86.6025Z", fill: "white" })] })),
|
|
36
36
|
joeLogo: (_jsxs("svg", { width: "130", height: "130", viewBox: "0 0 130 130", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M60.2256 72.4191H69.8754L64.8585 61.5891L60.2256 72.4191Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M85.7166 52.7328C86.524 52.7328 87.1805 52.0762 87.1805 51.2688C87.1805 50.4615 86.524 49.8049 85.7166 49.8049C84.9092 49.8049 84.252 50.4615 84.252 51.2688C84.252 52.0762 84.9092 52.7328 85.7166 52.7328Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M45.2726 45.6039C48.3961 45.6039 50.9371 48.1455 50.9371 51.2683C50.9371 54.3918 48.3961 56.9327 45.2726 56.9327C42.1499 56.9327 39.6082 54.3918 39.6082 51.2683C39.6082 48.1455 42.1499 45.6039 45.2726 45.6039ZM85.7166 45.6039C88.8401 45.6039 91.381 48.1455 91.381 51.2683C91.381 54.3918 88.8401 56.9327 85.7166 56.9327C82.5931 56.9327 80.0514 54.3918 80.0514 51.2683C80.0514 48.1455 82.5931 45.6039 85.7166 45.6039ZM31.9136 60.049H97.7124C100.741 60.049 103.197 57.594 103.197 54.5646V47.806C103.197 44.7773 100.741 42.3215 97.7124 42.3215H31.9136C28.8857 42.3215 26.4299 44.7773 26.4299 47.806V54.5646C26.4299 57.594 28.8857 60.049 31.9136 60.049Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.22314 74.5962V73.8202V72.9882V50.0907V49.2594V48.4826C9.22314 48.4759 9.22539 48.4707 9.22539 48.4647C9.23584 46.8611 10.5414 45.56 12.1457 45.56H13.5536C15.1647 45.56 16.4762 46.8716 16.4762 48.4826V74.5962C16.4762 76.208 15.1647 77.5196 13.5536 77.5196H12.1457C10.5414 77.5196 9.23584 76.2177 9.22539 74.6149C9.22539 74.6089 9.22314 74.6029 9.22314 74.5962ZM7.33359 57.0767V66.0013V73.4299C7.32986 73.4299 7.32612 73.4314 7.32314 73.4314H4.51408C3.02179 73.4314 1.80735 72.2162 1.80735 70.7239V70.2011V69.4676V68.7349V54.3438V53.6103V52.8769V52.3541C1.80735 50.861 3.02179 49.6473 4.51408 49.6473H7.32314C7.32612 49.6473 7.32986 49.6481 7.33359 49.6481V57.0767ZM18.6338 44.9219C18.6338 37.6554 22.856 31.3718 28.9671 28.3491C29.2105 28.2289 29.451 28.1056 29.7005 27.9951C29.941 27.8898 30.1875 27.7957 30.4332 27.6993C32.033 27.0749 33.7352 26.6619 35.5136 26.5073C35.7996 26.4826 36.0902 26.4752 36.3785 26.464C36.6294 26.4535 36.8759 26.4259 37.1298 26.4259H37.2964H46.3651H47.3129H48.192H58.1645H59.0421H59.9921H69.0594H70.0079H70.8863H82.2861H83.1644H84.1137H91.9202C92.3295 26.4259 92.7291 26.461 93.1309 26.4871C93.4297 26.5065 93.7299 26.5207 94.0242 26.5543C94.3073 26.5865 94.5836 26.638 94.8615 26.6828C96.8497 27.0017 98.7348 27.6284 100.459 28.5306C100.707 28.6606 100.95 28.8017 101.192 28.9422C101.44 29.0863 101.686 29.2334 101.926 29.3888C107.025 32.6856 110.417 38.4098 110.417 44.9219V69.4394C110.417 78.0294 104.522 85.2496 96.5703 87.32C95.0818 87.7077 93.529 87.9347 91.9202 87.9347H37.1298C36.5084 87.9347 35.896 87.9019 35.2902 87.8414C25.9519 86.9152 18.6338 79.0168 18.6338 69.4394V44.9219ZM30.4341 21.7264C30.4341 19.5425 32.2102 17.7671 34.3941 17.7671H34.5585H35.2912H36.0253H47.638H48.3707H49.1049H57.2535H57.9862H58.7204H70.3323H71.0665H71.7984H81.3758H82.1085H82.8412H94.4546H95.1888H95.9215H96.5003C98.6835 17.7671 100.46 19.5425 100.46 21.7264V26.4803C98.9172 25.7461 97.2726 25.1994 95.5443 24.8805C95.3038 24.8364 95.0588 24.8051 94.8161 24.7692C94.5703 24.7334 94.3276 24.6841 94.0789 24.6572C93.3693 24.5802 92.6508 24.5354 91.9219 24.5354H83.1743H82.408H81.6454H71.5288H70.7655H70.0006H59.052H58.2857H57.5231H48.8345H48.0712H47.3056H37.1307C36.8738 24.5354 36.6236 24.5646 36.3689 24.5735C36.1172 24.584 35.8648 24.5937 35.6153 24.6116C35.3666 24.6318 35.1171 24.6445 34.8707 24.6721C33.3306 24.8476 31.8487 25.2091 30.4341 25.7155V21.7264ZM36.0247 13.7069C36.0247 11.1712 38.0876 9.10831 40.6225 9.10831H43.038C45.5744 9.10831 47.6373 11.1712 47.6373 13.7069V15.8767H36.0247V13.7069ZM58.7199 13.7069C58.7199 11.1712 60.782 9.10831 63.3177 9.10831H65.7339C68.2696 9.10831 70.3318 11.1712 70.3318 13.7069V15.8767H58.7199V13.7069ZM82.8404 13.7069C82.8404 11.1712 84.9033 9.10831 87.4397 9.10831H89.8559C92.3916 9.10831 94.4538 11.1712 94.4538 13.7069V15.8767H82.8404V13.7069ZM36.7143 95.9728H93.0806V89.5585H36.7143V95.9728ZM112.77 48.4826C112.77 46.8716 114.082 45.56 115.693 45.56H117.101C118.705 45.56 120.011 46.8611 120.021 48.4647C120.021 48.4707 120.023 48.4759 120.023 48.4826V49.2594V50.0907V72.9882V73.8202V74.5962C120.023 74.6029 120.021 74.6089 120.021 74.6149C120.011 76.2177 118.705 77.5196 117.101 77.5196H115.693C114.082 77.5196 112.77 76.208 112.77 74.5962V48.4826ZM121.913 66.0013V57.0767V49.6481C121.917 49.6481 121.92 49.6473 121.924 49.6473H124.732C126.224 49.6473 127.439 50.861 127.439 52.3541V52.8769V53.6103V54.3438V68.7349V69.4676V70.2011V70.7239C127.439 72.2162 126.224 73.4314 124.732 73.4314H121.924C121.92 73.4314 121.917 73.4299 121.913 73.4299V66.0013ZM19.5752 97.7981H35.2906H96.5707H111.302C114.358 97.7981 117.175 98.7982 119.469 100.476C126.127 90.2739 130 78.0906 130 64.9998C130 29.1019 100.899 0 65.0004 0C29.1011 0 0 29.1019 0 64.9998C0 78.2818 3.9869 90.6302 10.8239 100.921C13.214 98.973 16.2568 97.7981 19.5752 97.7981Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M73.1718 75.7686H57.1032C56.1367 75.7686 55.354 76.552 55.354 77.5193C55.354 78.4858 56.1367 79.2692 57.1032 79.2692H73.1718C74.1383 79.2692 74.9218 78.4858 74.9218 77.5193C74.9218 76.552 74.1383 75.7686 73.1718 75.7686Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M45.272 52.7328C46.0794 52.7328 46.7359 52.0762 46.7359 51.2688C46.7359 50.4615 46.0794 49.8049 45.272 49.8049C44.4646 49.8049 43.8081 50.4615 43.8081 51.2688C43.8081 52.0762 44.4646 52.7328 45.272 52.7328Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M23.5839 113.169C24.6453 112.511 25.8843 112.113 27.2228 112.113H103.061C104.398 112.113 105.638 112.511 106.699 113.169C107.073 113.402 107.414 113.677 107.738 113.972C108.188 113.578 108.633 113.177 109.074 112.771C108.391 112.072 107.589 111.492 106.699 111.062C105.596 110.53 104.365 110.223 103.061 110.223H27.2228C25.918 110.223 24.6871 110.53 23.5839 111.062C22.6354 111.52 21.7899 112.153 21.0789 112.912C21.5158 113.314 21.9572 113.711 22.4061 114.099C22.7661 113.752 23.1567 113.435 23.5839 113.169Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M47.6373 13.7068C47.6373 11.1711 45.5744 9.10889 43.0387 9.10889H40.6225C38.0876 9.10889 36.0247 11.1711 36.0247 13.7068V15.8765H47.6373V13.7068Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M70.3319 13.7068C70.3319 11.1711 68.269 9.10889 65.734 9.10889H63.3171C60.7821 9.10889 58.7192 11.1711 58.7192 13.7068V15.8765H70.3319V13.7068Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M94.4542 13.7068C94.4542 11.1711 92.3913 9.10889 89.8564 9.10889H87.4394C84.9037 9.10889 82.8408 11.1711 82.8408 13.7068V15.8765H94.4542V13.7068Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M124.732 73.4315C126.224 73.4315 127.439 72.2163 127.439 70.724V70.2012V69.467V68.7351V54.3432V53.6105V52.8763V52.3535C127.439 50.8604 126.224 49.6467 124.732 49.6467H121.923C121.919 49.6467 121.916 49.6475 121.913 49.6475V57.0768V66.0014V73.43C121.916 73.43 121.919 73.4315 121.923 73.4315H124.732Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M115.693 77.5196H117.1C118.705 77.5196 120.01 76.2178 120.021 74.6149C120.021 74.609 120.023 74.603 120.023 74.5963V73.8202V72.9882V50.0907V49.2594V48.4826C120.023 48.4759 120.021 48.4707 120.021 48.4647C120.01 46.8611 118.705 45.5601 117.1 45.5601H115.693C114.082 45.5601 112.77 46.8716 112.77 48.4826V74.5963C112.77 76.2081 114.082 77.5196 115.693 77.5196Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.51459 49.6472C3.02231 49.6472 1.80786 50.8609 1.80786 52.354V52.8768V53.611V54.3437V68.7356V69.4675V70.2017V70.7245C1.80786 72.2168 3.02231 73.432 4.51459 73.432H7.32365C7.32663 73.432 7.33037 73.4305 7.33336 73.4305V66.0012V57.0766V49.648C7.33037 49.648 7.32663 49.6472 7.32365 49.6472H4.51459Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M96.5707 97.7983H35.2906H19.5753C16.2569 97.7983 13.214 98.9725 10.8232 100.921C13.7488 105.325 17.1965 109.352 21.0795 112.912C21.7898 112.153 22.6361 111.52 23.5839 111.062C24.687 110.53 25.9179 110.223 27.2227 110.223H103.06C104.365 110.223 105.596 110.53 106.699 111.062C107.589 111.492 108.391 112.072 109.074 112.771C113.023 109.124 116.519 104.995 119.469 100.476C117.175 98.7984 114.357 97.7983 111.302 97.7983H96.5707Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M103.06 112.113H27.2227C25.8843 112.113 24.6452 112.511 23.5839 113.17C23.1566 113.436 22.766 113.752 22.406 114.1C33.8133 124.005 48.7063 130 64.9997 130C81.3625 130 96.3108 123.953 107.737 113.973C107.414 113.678 107.073 113.402 106.699 113.17C105.638 112.511 104.398 112.113 103.06 112.113Z", fill: "#FF6112" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M35.6148 24.6116C35.8642 24.5937 36.1167 24.584 36.3684 24.5735C36.6231 24.5646 36.8733 24.5347 37.1302 24.5347H47.3051H48.0707H48.834H57.5226H58.2859H59.0514H70.0001H70.7657H71.5282H81.6449H82.4074H83.1738H91.9213C92.6503 24.5347 93.3688 24.5802 94.0784 24.6572C94.3271 24.6841 94.5698 24.7334 94.8155 24.7692C95.0583 24.8051 95.3033 24.8364 95.5438 24.8805C97.2721 25.1994 98.9167 25.7461 100.459 26.4803V21.7264C100.459 19.5425 98.6829 17.7671 96.4998 17.7671H95.9209H95.1882H94.454H82.8406H82.1079H81.3752H71.7979H71.0659H70.3317H58.7198H57.9856H57.2529H49.1044H48.3702H47.6375H36.0248H35.2906H34.5579H34.3936C32.2097 17.7671 30.4336 19.5425 30.4336 21.7264V25.7155C31.8482 25.2091 33.33 24.8469 34.8701 24.6721C35.1166 24.6445 35.3661 24.631 35.6148 24.6116Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.1462 77.5196H13.5541C15.1651 77.5196 16.4767 76.2081 16.4767 74.5963V48.4826C16.4767 46.8716 15.1651 45.5601 13.5541 45.5601H12.1462C10.5419 45.5601 9.23633 46.8611 9.22587 48.4647C9.22587 48.4707 9.22363 48.4759 9.22363 48.4826V49.2594V50.0907V72.9882V73.8202V74.5963C9.22363 74.603 9.22587 74.609 9.22587 74.6149C9.23633 76.2178 10.5419 77.5196 12.1462 77.5196Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M45.2731 49.8043C46.0805 49.8043 46.737 50.4608 46.737 51.2682C46.737 52.0756 46.0805 52.7321 45.2731 52.7321C44.4657 52.7321 43.8092 52.0756 43.8092 51.2682C43.8092 50.4608 44.4657 49.8043 45.2731 49.8043ZM45.2726 56.9326C48.3961 56.9326 50.937 54.3917 50.937 51.2682C50.937 48.1454 48.3961 45.6038 45.2726 45.6038C42.1498 45.6038 39.6082 48.1454 39.6082 51.2682C39.6082 54.3917 42.1498 56.9326 45.2726 56.9326Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M85.7179 49.8043C86.5253 49.8043 87.1818 50.4608 87.1818 51.2682C87.1818 52.0756 86.5253 52.7321 85.7179 52.7321C84.9105 52.7321 84.2533 52.0756 84.2533 51.2682C84.2533 50.4608 84.9105 49.8043 85.7179 49.8043ZM85.7174 56.9326C88.8409 56.9326 91.3818 54.3917 91.3818 51.2682C91.3818 48.1454 88.8409 45.6038 85.7174 45.6038C82.5932 45.6038 80.0522 48.1454 80.0522 51.2682C80.0522 54.3917 82.5932 56.9326 85.7174 56.9326Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M26.4305 47.8066C26.4305 44.7772 28.8855 42.3221 31.9142 42.3221H97.7122C100.741 42.3221 103.197 44.7772 103.197 47.8066V54.5652C103.197 57.5938 100.741 60.0496 97.7122 60.0496H31.9142C28.8855 60.0496 26.4305 57.5938 26.4305 54.5652V47.8066ZM60.226 72.4189L64.8589 61.589L69.8758 72.4189H60.226ZM73.1717 79.2692H57.1031C56.1366 79.2692 55.3539 78.4857 55.3539 77.5192C55.3539 76.552 56.1366 75.7685 57.1031 75.7685H73.1717C74.1382 75.7685 74.9216 76.552 74.9216 77.5192C74.9216 78.4857 74.1382 79.2692 73.1717 79.2692ZM35.2909 87.842C35.8967 87.9025 36.5091 87.9354 37.1305 87.9354H91.9209C93.5297 87.9354 95.0825 87.7076 96.571 87.3199C104.523 85.2496 110.418 78.0294 110.418 69.4393V44.9218C110.418 38.4097 107.026 32.6855 101.926 29.3887C101.686 29.2334 101.441 29.087 101.193 28.9421C100.95 28.8016 100.708 28.6605 100.459 28.5305C98.7355 27.6283 96.8504 27.0024 94.8621 26.6827C94.5843 26.6379 94.308 26.5864 94.0249 26.5542C93.7299 26.5206 93.4304 26.5064 93.1316 26.487C92.7298 26.4609 92.3294 26.4258 91.9209 26.4258H84.1136H83.1651H82.2868H70.8862H70.0086H69.0601H59.9928H59.0428H58.1652H48.1927H47.3136H46.3651H37.2971H37.1305C36.8766 26.4258 36.6301 26.4534 36.3791 26.4639C36.0908 26.4751 35.8003 26.4825 35.5142 26.5072C33.7359 26.6618 32.0337 27.0748 30.4339 27.6992C30.1882 27.7956 29.9417 27.8897 29.7012 27.9957C29.4517 28.1055 29.2112 28.2288 28.967 28.349C22.8567 31.3717 18.6345 37.6553 18.6345 44.9218V69.4393C18.6345 79.0167 25.9526 86.9151 35.2909 87.842Z", fill: "white" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M36.7136 95.9729H93.0799V89.5586H36.7136V95.9729Z", fill: "white" })] })),
|
package/styles/styles.js
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { colors } from './colors';
|
|
8
8
|
import { theme } from './theme';
|
|
9
|
+
// The sheet mixes JSS rules (nested selectors, `!important` strings) with plain objects fed
|
|
10
|
+
// straight into `style` props, so no single CSS type covers both consumers.
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
12
|
export const styles = {
|
|
10
13
|
root: {
|
|
11
14
|
'minHeight': '100%',
|
package/styles/theme.js
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
import { createTheme } from '@material-ui/core';
|
|
8
8
|
import { colors } from './colors';
|
|
9
9
|
export const theme = createTheme({
|
|
10
|
-
// @ts-ignore
|
|
11
10
|
fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
|
|
12
11
|
palette: {
|
|
13
12
|
primary: {
|
|
@@ -24,7 +23,7 @@ export const theme = createTheme({
|
|
|
24
23
|
typography: {
|
|
25
24
|
htmlFontSize: 14,
|
|
26
25
|
fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
|
|
27
|
-
// @ts-
|
|
26
|
+
// @ts-expect-error typography.fontSize is typed as a number
|
|
28
27
|
fontSize: '14px!important',
|
|
29
28
|
h1: {
|
|
30
29
|
fontSize: '16px!important',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const formatTuningParams = (tuningParams) => {
|
|
2
2
|
let formattedTuningParams = '';
|
|
3
3
|
if (tuningParams && Object.keys(tuningParams).length > 0) {
|
|
4
|
-
Object.entries(tuningParams).forEach(([key, value]
|
|
4
|
+
Object.entries(tuningParams).forEach(([key, value]) => {
|
|
5
5
|
if (key !== 'shared_preload_libraries' && key !== 'shared_buffers') {
|
|
6
6
|
formattedTuningParams += `${key}=${value}\n`;
|
|
7
7
|
}
|
|
@@ -17,7 +17,7 @@ export const formatTuningParamsToObj = (tuningParams) => {
|
|
|
17
17
|
if (tuningParams && typeof tuningParams === 'object') {
|
|
18
18
|
return tuningParams;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
const formattedTuningParams = {};
|
|
21
21
|
if (tuningParams) {
|
|
22
22
|
const tuningParamsArr = tuningParams.split('\n');
|
|
23
23
|
tuningParamsArr.forEach((param) => {
|
|
@@ -3,6 +3,8 @@ export declare type CloneDto = {
|
|
|
3
3
|
createdAt: string;
|
|
4
4
|
id: string;
|
|
5
5
|
branch: string;
|
|
6
|
+
revision: number;
|
|
7
|
+
deleteAt: string | null;
|
|
6
8
|
status: {
|
|
7
9
|
code: 'OK' | 'CREATING' | 'DELETING' | 'RESETTING' | 'UPGRADING' | 'WARNING' | 'FATAL';
|
|
8
10
|
message: string;
|
|
@@ -13,7 +15,9 @@ export declare type CloneDto = {
|
|
|
13
15
|
protectedTill?: string;
|
|
14
16
|
metadata: {
|
|
15
17
|
cloneDiffSize: number;
|
|
18
|
+
logicalSize: number;
|
|
16
19
|
cloningTime: number;
|
|
20
|
+
maxIdleMinutes: number;
|
|
17
21
|
protectionLeaseDurationMinutes?: number;
|
|
18
22
|
protectionMaxDurationMinutes?: number;
|
|
19
23
|
};
|
|
@@ -28,6 +32,7 @@ export declare const formatCloneDto: (dto: CloneDto) => {
|
|
|
28
32
|
createdAt: string;
|
|
29
33
|
createdAtDate: Date;
|
|
30
34
|
protectedTillDate: Date | null;
|
|
35
|
+
deleteAtDate: Date | null;
|
|
31
36
|
snapshot: {
|
|
32
37
|
createdAtDate: Date;
|
|
33
38
|
dataStateAtDate: Date;
|
|
@@ -47,6 +52,8 @@ export declare const formatCloneDto: (dto: CloneDto) => {
|
|
|
47
52
|
} | null;
|
|
48
53
|
id: string;
|
|
49
54
|
branch: string;
|
|
55
|
+
revision: number;
|
|
56
|
+
deleteAt: string | null;
|
|
50
57
|
status: {
|
|
51
58
|
code: 'OK' | 'CREATING' | 'DELETING' | 'RESETTING' | 'UPGRADING' | 'WARNING' | 'FATAL';
|
|
52
59
|
message: string;
|
|
@@ -57,7 +64,9 @@ export declare const formatCloneDto: (dto: CloneDto) => {
|
|
|
57
64
|
protectedTill?: string | undefined;
|
|
58
65
|
metadata: {
|
|
59
66
|
cloneDiffSize: number;
|
|
67
|
+
logicalSize: number;
|
|
60
68
|
cloningTime: number;
|
|
69
|
+
maxIdleMinutes: number;
|
|
61
70
|
protectionLeaseDurationMinutes?: number;
|
|
62
71
|
protectionMaxDurationMinutes?: number;
|
|
63
72
|
};
|
|
@@ -11,5 +11,6 @@ export const formatCloneDto = (dto) => ({
|
|
|
11
11
|
createdAt: dto.createdAt,
|
|
12
12
|
createdAtDate: parseDate(dto.createdAt),
|
|
13
13
|
protectedTillDate: dto.protectedTill ? parseDate(dto.protectedTill) : null,
|
|
14
|
+
deleteAtDate: dto.deleteAt ? parseDate(dto.deleteAt) : null,
|
|
14
15
|
snapshot: dto.snapshot ? formatSnapshotDto(dto.snapshot) : null,
|
|
15
16
|
});
|
|
@@ -62,6 +62,7 @@ export declare const formatInstanceDto: (dto: InstanceDto) => {
|
|
|
62
62
|
createdAt: string;
|
|
63
63
|
createdAtDate: Date;
|
|
64
64
|
protectedTillDate: Date | null;
|
|
65
|
+
deleteAtDate: Date | null;
|
|
65
66
|
snapshot: {
|
|
66
67
|
createdAtDate: Date;
|
|
67
68
|
dataStateAtDate: Date;
|
|
@@ -81,6 +82,8 @@ export declare const formatInstanceDto: (dto: InstanceDto) => {
|
|
|
81
82
|
} | null;
|
|
82
83
|
id: string;
|
|
83
84
|
branch: string;
|
|
85
|
+
revision: number;
|
|
86
|
+
deleteAt: string | null;
|
|
84
87
|
status: {
|
|
85
88
|
code: "OK" | "CREATING" | "DELETING" | "RESETTING" | "UPGRADING" | "WARNING" | "FATAL";
|
|
86
89
|
message: string;
|
|
@@ -91,7 +94,9 @@ export declare const formatInstanceDto: (dto: InstanceDto) => {
|
|
|
91
94
|
protectedTill?: string | undefined;
|
|
92
95
|
metadata: {
|
|
93
96
|
cloneDiffSize: number;
|
|
97
|
+
logicalSize: number;
|
|
94
98
|
cloningTime: number;
|
|
99
|
+
maxIdleMinutes: number;
|
|
95
100
|
protectionLeaseDurationMinutes?: number | undefined;
|
|
96
101
|
protectionMaxDurationMinutes?: number | undefined;
|
|
97
102
|
};
|
|
@@ -7,7 +7,7 @@ export interface ActivityType {
|
|
|
7
7
|
}
|
|
8
8
|
export declare type InstanceRetrieval = {
|
|
9
9
|
mode: string;
|
|
10
|
-
alerts:
|
|
10
|
+
alerts: object | null;
|
|
11
11
|
lastRefresh: string | null;
|
|
12
12
|
nextRefresh: string | null;
|
|
13
13
|
status: string;
|
|
@@ -33,7 +33,7 @@ export declare const formatInstanceRetrieval: (retrieval: InstanceRetrieval) =>
|
|
|
33
33
|
}[];
|
|
34
34
|
};
|
|
35
35
|
mode: string;
|
|
36
|
-
alerts:
|
|
36
|
+
alerts: object | null;
|
|
37
37
|
lastRefresh: string | null;
|
|
38
38
|
nextRefresh: string | null;
|
|
39
39
|
status: string;
|
|
@@ -72,6 +72,7 @@ export declare const formatInstanceStateDto: (dto: InstanceStateDto) => {
|
|
|
72
72
|
createdAt: string;
|
|
73
73
|
createdAtDate: Date;
|
|
74
74
|
protectedTillDate: Date | null;
|
|
75
|
+
deleteAtDate: Date | null;
|
|
75
76
|
snapshot: {
|
|
76
77
|
createdAtDate: Date;
|
|
77
78
|
dataStateAtDate: Date;
|
|
@@ -91,6 +92,8 @@ export declare const formatInstanceStateDto: (dto: InstanceStateDto) => {
|
|
|
91
92
|
} | null;
|
|
92
93
|
id: string;
|
|
93
94
|
branch: string;
|
|
95
|
+
revision: number;
|
|
96
|
+
deleteAt: string | null;
|
|
94
97
|
status: {
|
|
95
98
|
code: "OK" | "CREATING" | "DELETING" | "RESETTING" | "UPGRADING" | "WARNING" | "FATAL";
|
|
96
99
|
message: string;
|
|
@@ -101,7 +104,9 @@ export declare const formatInstanceStateDto: (dto: InstanceStateDto) => {
|
|
|
101
104
|
protectedTill?: string | undefined;
|
|
102
105
|
metadata: {
|
|
103
106
|
cloneDiffSize: number;
|
|
107
|
+
logicalSize: number;
|
|
104
108
|
cloningTime: number;
|
|
109
|
+
maxIdleMinutes: number;
|
|
105
110
|
protectionLeaseDurationMinutes?: number | undefined;
|
|
106
111
|
protectionMaxDurationMinutes?: number | undefined;
|
|
107
112
|
};
|
package/utils/api.js
CHANGED
|
@@ -17,7 +17,7 @@ export const getTextFromUnknownApiError = async (error) => {
|
|
|
17
17
|
}
|
|
18
18
|
return JSON.stringify(result);
|
|
19
19
|
}
|
|
20
|
-
catch
|
|
20
|
+
catch {
|
|
21
21
|
// not a json
|
|
22
22
|
}
|
|
23
23
|
try {
|
|
@@ -25,7 +25,7 @@ export const getTextFromUnknownApiError = async (error) => {
|
|
|
25
25
|
log(result);
|
|
26
26
|
return result;
|
|
27
27
|
}
|
|
28
|
-
catch
|
|
28
|
+
catch {
|
|
29
29
|
// not a text
|
|
30
30
|
}
|
|
31
31
|
const result = `${error.status} ${error.statusText}`;
|