@peassoft/mnr-web-topline 0.1.0
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/README.md +44 -0
- package/dist/css/index.css +192 -0
- package/dist/en/hooks/use-topline/index.d.ts +11 -0
- package/dist/en/hooks/use-topline/index.js +14 -0
- package/dist/en/index.d.ts +8 -0
- package/dist/en/index.js +5 -0
- package/dist/en/modules/env/index.d.ts +12 -0
- package/dist/en/modules/env/index.js +27 -0
- package/dist/en/modules/focus-marshal/index.d.ts +6 -0
- package/dist/en/modules/focus-marshal/index.js +6 -0
- package/dist/en/modules/keyboard-navigation/key-codes.d.ts +18 -0
- package/dist/en/modules/keyboard-navigation/key-codes.js +18 -0
- package/dist/en/modules/keyboard-navigation/vertical-menu.d.ts +14 -0
- package/dist/en/modules/keyboard-navigation/vertical-menu.js +45 -0
- package/dist/en/modules/local-db/actions/delete-all-data/index.d.ts +4 -0
- package/dist/en/modules/local-db/actions/delete-all-data/index.js +21 -0
- package/dist/en/modules/local-db/actions/get-all-data/index.d.ts +11 -0
- package/dist/en/modules/local-db/actions/get-all-data/index.js +51 -0
- package/dist/en/modules/local-db/actions/update-grant-token/index.d.ts +4 -0
- package/dist/en/modules/local-db/actions/update-grant-token/index.js +26 -0
- package/dist/en/modules/local-db/actions/update-refresh-token/index.d.ts +4 -0
- package/dist/en/modules/local-db/actions/update-refresh-token/index.js +26 -0
- package/dist/en/modules/local-db/actions/update-user/index.d.ts +5 -0
- package/dist/en/modules/local-db/actions/update-user/index.js +26 -0
- package/dist/en/modules/local-db/create-request-error.d.ts +5 -0
- package/dist/en/modules/local-db/create-request-error.js +9 -0
- package/dist/en/modules/local-db/index.d.ts +6 -0
- package/dist/en/modules/local-db/index.js +6 -0
- package/dist/en/modules/local-db/init-db.d.ts +17 -0
- package/dist/en/modules/local-db/init-db.js +52 -0
- package/dist/en/modules/logger/index.d.ts +1 -0
- package/dist/en/modules/logger/index.js +3 -0
- package/dist/en/modules/request/index.d.ts +20 -0
- package/dist/en/modules/request/index.js +78 -0
- package/dist/en/modules/request/normalize-request-opts.d.ts +5 -0
- package/dist/en/modules/request/normalize-request-opts.js +11 -0
- package/dist/en/modules/request/should-retry.d.ts +6 -0
- package/dist/en/modules/request/should-retry.js +16 -0
- package/dist/en/modules/request/types.d.ts +20 -0
- package/dist/en/modules/request/types.js +1 -0
- package/dist/en/modules/tokens/index.d.ts +4 -0
- package/dist/en/modules/tokens/index.js +14 -0
- package/dist/en/modules/topline-service/index.d.ts +24 -0
- package/dist/en/modules/topline-service/index.js +46 -0
- package/dist/en/modules/topline-service/inner-service.d.ts +45 -0
- package/dist/en/modules/topline-service/inner-service.js +219 -0
- package/dist/en/modules/topline-service/types.d.ts +32 -0
- package/dist/en/modules/topline-service/types.js +19 -0
- package/dist/en/modules/validators/email.d.ts +4 -0
- package/dist/en/modules/validators/email.js +7 -0
- package/dist/en/modules/validators/password-recovery-code.d.ts +4 -0
- package/dist/en/modules/validators/password-recovery-code.js +6 -0
- package/dist/en/modules/validators/password.d.ts +4 -0
- package/dist/en/modules/validators/password.js +6 -0
- package/dist/en/modules/websocket/index.d.ts +4 -0
- package/dist/en/modules/websocket/index.js +92 -0
- package/dist/en/parts/login/actions/perform-login/index.d.ts +27 -0
- package/dist/en/parts/login/actions/perform-login/index.js +60 -0
- package/dist/en/parts/login/index.d.ts +1 -0
- package/dist/en/parts/login/index.js +1 -0
- package/dist/en/parts/login/ui/login/index.d.ts +8 -0
- package/dist/en/parts/login/ui/login/index.js +138 -0
- package/dist/en/parts/logout/actions/perform-logout/index.d.ts +23 -0
- package/dist/en/parts/logout/actions/perform-logout/index.js +54 -0
- package/dist/en/parts/logout/actions/perform-logout/make-second-attempt.d.ts +1 -0
- package/dist/en/parts/logout/actions/perform-logout/make-second-attempt.js +3 -0
- package/dist/en/parts/logout/index.d.ts +1 -0
- package/dist/en/parts/logout/index.js +1 -0
- package/dist/en/parts/password-recovery/actions/create-claim/index.d.ts +22 -0
- package/dist/en/parts/password-recovery/actions/create-claim/index.js +41 -0
- package/dist/en/parts/password-recovery/actions/save-password/index.d.ts +27 -0
- package/dist/en/parts/password-recovery/actions/save-password/index.js +61 -0
- package/dist/en/parts/password-recovery/index.d.ts +1 -0
- package/dist/en/parts/password-recovery/index.js +1 -0
- package/dist/en/parts/password-recovery/ui/password-recovery/index.d.ts +6 -0
- package/dist/en/parts/password-recovery/ui/password-recovery/index.js +33 -0
- package/dist/en/parts/password-recovery/ui/step-one/index.d.ts +7 -0
- package/dist/en/parts/password-recovery/ui/step-one/index.js +82 -0
- package/dist/en/parts/password-recovery/ui/step-two/index.d.ts +7 -0
- package/dist/en/parts/password-recovery/ui/step-two/index.js +134 -0
- package/dist/en/parts/shell/actions/refresh-user/has-user-been-changed.d.ts +5 -0
- package/dist/en/parts/shell/actions/refresh-user/has-user-been-changed.js +6 -0
- package/dist/en/parts/shell/actions/refresh-user/index.d.ts +28 -0
- package/dist/en/parts/shell/actions/refresh-user/index.js +79 -0
- package/dist/en/parts/shell/actions/refresh-user/make-second-attempt.d.ts +2 -0
- package/dist/en/parts/shell/actions/refresh-user/make-second-attempt.js +3 -0
- package/dist/en/parts/shell/context.d.ts +12 -0
- package/dist/en/parts/shell/context.js +8 -0
- package/dist/en/parts/shell/index.d.ts +2 -0
- package/dist/en/parts/shell/index.js +2 -0
- package/dist/en/parts/shell/ui/logged-out-user-menu/index.d.ts +8 -0
- package/dist/en/parts/shell/ui/logged-out-user-menu/index.js +42 -0
- package/dist/en/parts/shell/ui/loggeg-in-user-menu/index.d.ts +8 -0
- package/dist/en/parts/shell/ui/loggeg-in-user-menu/index.js +42 -0
- package/dist/en/parts/shell/ui/logo/index.d.ts +1 -0
- package/dist/en/parts/shell/ui/logo/index.js +8 -0
- package/dist/en/parts/shell/ui/logo/logo-full.d.ts +2 -0
- package/dist/en/parts/shell/ui/logo/logo-full.js +26 -0
- package/dist/en/parts/shell/ui/logo/logo-short.d.ts +2 -0
- package/dist/en/parts/shell/ui/logo/logo-short.js +26 -0
- package/dist/en/parts/shell/ui/shell/index.d.ts +2 -0
- package/dist/en/parts/shell/ui/shell/index.js +187 -0
- package/dist/en/parts/shell/ui/user-avatar/index.d.ts +7 -0
- package/dist/en/parts/shell/ui/user-avatar/index.js +48 -0
- package/dist/en/parts/shell/ui/user-menu/index.d.ts +8 -0
- package/dist/en/parts/shell/ui/user-menu/index.js +37 -0
- package/dist/en/parts/shell/ui/user-menu-item/index.d.ts +10 -0
- package/dist/en/parts/shell/ui/user-menu-item/index.js +19 -0
- package/dist/en/parts/signup/actions/perform-signup/index.d.ts +33 -0
- package/dist/en/parts/signup/actions/perform-signup/index.js +58 -0
- package/dist/en/parts/signup/index.d.ts +1 -0
- package/dist/en/parts/signup/index.js +1 -0
- package/dist/en/parts/signup/ui/signup/index.d.ts +8 -0
- package/dist/en/parts/signup/ui/signup/index.js +163 -0
- package/dist/en/shared/components/alternative/index.d.ts +7 -0
- package/dist/en/shared/components/alternative/index.js +3 -0
- package/dist/en/shared/components/modal/index.d.ts +8 -0
- package/dist/en/shared/components/modal/index.js +32 -0
- package/dist/en/shared/procedures/process-successful-response/index.d.ts +30 -0
- package/dist/en/shared/procedures/process-successful-response/index.js +66 -0
- package/dist/en/topline.d.ts +24 -0
- package/dist/en/topline.js +33 -0
- package/dist/en/types/app.d.ts +1 -0
- package/dist/en/types/app.js +1 -0
- package/dist/en/types/data.d.ts +10 -0
- package/dist/en/types/data.js +4 -0
- package/dist/en/types/helpers.d.ts +2 -0
- package/dist/en/types/helpers.js +3 -0
- package/dist/ru/hooks/use-topline/index.d.ts +11 -0
- package/dist/ru/hooks/use-topline/index.js +14 -0
- package/dist/ru/index.d.ts +8 -0
- package/dist/ru/index.js +5 -0
- package/dist/ru/modules/env/index.d.ts +12 -0
- package/dist/ru/modules/env/index.js +27 -0
- package/dist/ru/modules/focus-marshal/index.d.ts +6 -0
- package/dist/ru/modules/focus-marshal/index.js +6 -0
- package/dist/ru/modules/keyboard-navigation/key-codes.d.ts +18 -0
- package/dist/ru/modules/keyboard-navigation/key-codes.js +18 -0
- package/dist/ru/modules/keyboard-navigation/vertical-menu.d.ts +14 -0
- package/dist/ru/modules/keyboard-navigation/vertical-menu.js +45 -0
- package/dist/ru/modules/local-db/actions/delete-all-data/index.d.ts +4 -0
- package/dist/ru/modules/local-db/actions/delete-all-data/index.js +21 -0
- package/dist/ru/modules/local-db/actions/get-all-data/index.d.ts +11 -0
- package/dist/ru/modules/local-db/actions/get-all-data/index.js +51 -0
- package/dist/ru/modules/local-db/actions/update-grant-token/index.d.ts +4 -0
- package/dist/ru/modules/local-db/actions/update-grant-token/index.js +26 -0
- package/dist/ru/modules/local-db/actions/update-refresh-token/index.d.ts +4 -0
- package/dist/ru/modules/local-db/actions/update-refresh-token/index.js +26 -0
- package/dist/ru/modules/local-db/actions/update-user/index.d.ts +5 -0
- package/dist/ru/modules/local-db/actions/update-user/index.js +26 -0
- package/dist/ru/modules/local-db/create-request-error.d.ts +5 -0
- package/dist/ru/modules/local-db/create-request-error.js +9 -0
- package/dist/ru/modules/local-db/index.d.ts +6 -0
- package/dist/ru/modules/local-db/index.js +6 -0
- package/dist/ru/modules/local-db/init-db.d.ts +17 -0
- package/dist/ru/modules/local-db/init-db.js +52 -0
- package/dist/ru/modules/logger/index.d.ts +1 -0
- package/dist/ru/modules/logger/index.js +3 -0
- package/dist/ru/modules/request/index.d.ts +20 -0
- package/dist/ru/modules/request/index.js +78 -0
- package/dist/ru/modules/request/normalize-request-opts.d.ts +5 -0
- package/dist/ru/modules/request/normalize-request-opts.js +11 -0
- package/dist/ru/modules/request/should-retry.d.ts +6 -0
- package/dist/ru/modules/request/should-retry.js +16 -0
- package/dist/ru/modules/request/types.d.ts +20 -0
- package/dist/ru/modules/request/types.js +1 -0
- package/dist/ru/modules/tokens/index.d.ts +4 -0
- package/dist/ru/modules/tokens/index.js +14 -0
- package/dist/ru/modules/topline-service/index.d.ts +24 -0
- package/dist/ru/modules/topline-service/index.js +46 -0
- package/dist/ru/modules/topline-service/inner-service.d.ts +45 -0
- package/dist/ru/modules/topline-service/inner-service.js +219 -0
- package/dist/ru/modules/topline-service/types.d.ts +32 -0
- package/dist/ru/modules/topline-service/types.js +19 -0
- package/dist/ru/modules/validators/email.d.ts +4 -0
- package/dist/ru/modules/validators/email.js +7 -0
- package/dist/ru/modules/validators/password-recovery-code.d.ts +4 -0
- package/dist/ru/modules/validators/password-recovery-code.js +6 -0
- package/dist/ru/modules/validators/password.d.ts +4 -0
- package/dist/ru/modules/validators/password.js +6 -0
- package/dist/ru/modules/websocket/index.d.ts +4 -0
- package/dist/ru/modules/websocket/index.js +92 -0
- package/dist/ru/parts/login/actions/perform-login/index.d.ts +27 -0
- package/dist/ru/parts/login/actions/perform-login/index.js +60 -0
- package/dist/ru/parts/login/index.d.ts +1 -0
- package/dist/ru/parts/login/index.js +1 -0
- package/dist/ru/parts/login/ui/login/index.d.ts +8 -0
- package/dist/ru/parts/login/ui/login/index.js +138 -0
- package/dist/ru/parts/logout/actions/perform-logout/index.d.ts +23 -0
- package/dist/ru/parts/logout/actions/perform-logout/index.js +54 -0
- package/dist/ru/parts/logout/actions/perform-logout/make-second-attempt.d.ts +1 -0
- package/dist/ru/parts/logout/actions/perform-logout/make-second-attempt.js +3 -0
- package/dist/ru/parts/logout/index.d.ts +1 -0
- package/dist/ru/parts/logout/index.js +1 -0
- package/dist/ru/parts/password-recovery/actions/create-claim/index.d.ts +22 -0
- package/dist/ru/parts/password-recovery/actions/create-claim/index.js +41 -0
- package/dist/ru/parts/password-recovery/actions/save-password/index.d.ts +27 -0
- package/dist/ru/parts/password-recovery/actions/save-password/index.js +61 -0
- package/dist/ru/parts/password-recovery/index.d.ts +1 -0
- package/dist/ru/parts/password-recovery/index.js +1 -0
- package/dist/ru/parts/password-recovery/ui/password-recovery/index.d.ts +6 -0
- package/dist/ru/parts/password-recovery/ui/password-recovery/index.js +33 -0
- package/dist/ru/parts/password-recovery/ui/step-one/index.d.ts +7 -0
- package/dist/ru/parts/password-recovery/ui/step-one/index.js +82 -0
- package/dist/ru/parts/password-recovery/ui/step-two/index.d.ts +7 -0
- package/dist/ru/parts/password-recovery/ui/step-two/index.js +134 -0
- package/dist/ru/parts/shell/actions/refresh-user/has-user-been-changed.d.ts +5 -0
- package/dist/ru/parts/shell/actions/refresh-user/has-user-been-changed.js +6 -0
- package/dist/ru/parts/shell/actions/refresh-user/index.d.ts +28 -0
- package/dist/ru/parts/shell/actions/refresh-user/index.js +79 -0
- package/dist/ru/parts/shell/actions/refresh-user/make-second-attempt.d.ts +2 -0
- package/dist/ru/parts/shell/actions/refresh-user/make-second-attempt.js +3 -0
- package/dist/ru/parts/shell/context.d.ts +12 -0
- package/dist/ru/parts/shell/context.js +8 -0
- package/dist/ru/parts/shell/index.d.ts +2 -0
- package/dist/ru/parts/shell/index.js +2 -0
- package/dist/ru/parts/shell/ui/logged-out-user-menu/index.d.ts +8 -0
- package/dist/ru/parts/shell/ui/logged-out-user-menu/index.js +42 -0
- package/dist/ru/parts/shell/ui/loggeg-in-user-menu/index.d.ts +8 -0
- package/dist/ru/parts/shell/ui/loggeg-in-user-menu/index.js +42 -0
- package/dist/ru/parts/shell/ui/logo/index.d.ts +1 -0
- package/dist/ru/parts/shell/ui/logo/index.js +8 -0
- package/dist/ru/parts/shell/ui/logo/logo-full.d.ts +2 -0
- package/dist/ru/parts/shell/ui/logo/logo-full.js +26 -0
- package/dist/ru/parts/shell/ui/logo/logo-short.d.ts +2 -0
- package/dist/ru/parts/shell/ui/logo/logo-short.js +26 -0
- package/dist/ru/parts/shell/ui/shell/index.d.ts +2 -0
- package/dist/ru/parts/shell/ui/shell/index.js +187 -0
- package/dist/ru/parts/shell/ui/user-avatar/index.d.ts +7 -0
- package/dist/ru/parts/shell/ui/user-avatar/index.js +48 -0
- package/dist/ru/parts/shell/ui/user-menu/index.d.ts +8 -0
- package/dist/ru/parts/shell/ui/user-menu/index.js +37 -0
- package/dist/ru/parts/shell/ui/user-menu-item/index.d.ts +10 -0
- package/dist/ru/parts/shell/ui/user-menu-item/index.js +19 -0
- package/dist/ru/parts/signup/actions/perform-signup/index.d.ts +33 -0
- package/dist/ru/parts/signup/actions/perform-signup/index.js +58 -0
- package/dist/ru/parts/signup/index.d.ts +1 -0
- package/dist/ru/parts/signup/index.js +1 -0
- package/dist/ru/parts/signup/ui/signup/index.d.ts +8 -0
- package/dist/ru/parts/signup/ui/signup/index.js +163 -0
- package/dist/ru/shared/components/alternative/index.d.ts +7 -0
- package/dist/ru/shared/components/alternative/index.js +3 -0
- package/dist/ru/shared/components/modal/index.d.ts +8 -0
- package/dist/ru/shared/components/modal/index.js +32 -0
- package/dist/ru/shared/procedures/process-successful-response/index.d.ts +30 -0
- package/dist/ru/shared/procedures/process-successful-response/index.js +66 -0
- package/dist/ru/topline.d.ts +24 -0
- package/dist/ru/topline.js +33 -0
- package/dist/ru/types/app.d.ts +1 -0
- package/dist/ru/types/app.js +1 -0
- package/dist/ru/types/data.d.ts +10 -0
- package/dist/ru/types/data.js +4 -0
- package/dist/ru/types/helpers.d.ts +2 -0
- package/dist/ru/types/helpers.js +3 -0
- package/package.json +75 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, createRef, useEffect } from 'react';
|
|
3
|
+
import { InputField } from '@peassoft/mnr-web-ui-kit/input-field/index.js';
|
|
4
|
+
import Alternative from '../../../../shared/components/alternative/index.js';
|
|
5
|
+
import { ErrorMessage } from '@peassoft/mnr-web-ui-kit/error-message/index.js';
|
|
6
|
+
import { Button } from '@peassoft/mnr-web-ui-kit/button/index.js';
|
|
7
|
+
import { globalRefs } from '../../../../modules/focus-marshal/index.js';
|
|
8
|
+
import validateEmail from '../../../../modules/validators/email.js';
|
|
9
|
+
import createClaim from '../../actions/create-claim/index.js';
|
|
10
|
+
export default function StepOne(props) {
|
|
11
|
+
const {
|
|
12
|
+
onNext,
|
|
13
|
+
onClose
|
|
14
|
+
} = props;
|
|
15
|
+
const lastElementRef = createRef();
|
|
16
|
+
const [email, setEmail] = useState('');
|
|
17
|
+
const [isEmailValid, setIsEmailValid] = useState(true);
|
|
18
|
+
const [isMakingRequest, setIsMakingRequest] = useState(false);
|
|
19
|
+
const [errorMessage, setErrorMessage] = useState('');
|
|
20
|
+
const handleEmailChange = useCallback(newValue => setEmail(newValue.trim()), []);
|
|
21
|
+
const handleEmailBlur = useCallback(() => setIsEmailValid(validateEmail(email)), [email]);
|
|
22
|
+
const handleTabOnLastElement = useCallback(() => globalRefs.modalFirstItem.current?.focus(), []);
|
|
23
|
+
const handleShiftTabOnFirstElement = useCallback(() => lastElementRef.current?.focus(), [lastElementRef]);
|
|
24
|
+
const handleMainBtnClick = useCallback(async () => {
|
|
25
|
+
let hasFormValidationFailed = false;
|
|
26
|
+
if (!validateEmail(email)) {
|
|
27
|
+
setIsEmailValid(false);
|
|
28
|
+
hasFormValidationFailed = true;
|
|
29
|
+
}
|
|
30
|
+
if (hasFormValidationFailed) return;
|
|
31
|
+
setIsMakingRequest(true);
|
|
32
|
+
const {
|
|
33
|
+
error
|
|
34
|
+
} = await createClaim(email);
|
|
35
|
+
if (error) {
|
|
36
|
+
setErrorMessage("Server is unavailable. Please, try later.");
|
|
37
|
+
setIsMakingRequest(false);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
onNext(email);
|
|
41
|
+
}, [email, onNext]);
|
|
42
|
+
useEffect(() => globalRefs.modalFirstItem.current?.focus(), []);
|
|
43
|
+
return _jsxs(_Fragment, {
|
|
44
|
+
children: [_jsx("p", {
|
|
45
|
+
children: "We will send you an email message with a code for password recovery."
|
|
46
|
+
}), _jsxs("form", {
|
|
47
|
+
children: [_jsx(InputField, {
|
|
48
|
+
ref: globalRefs.modalFirstItem,
|
|
49
|
+
type: 'email',
|
|
50
|
+
autocompleteAttribute: 'username',
|
|
51
|
+
label: "Your email address. Required",
|
|
52
|
+
errorMessage: isEmailValid ? '' : "Please type in a correct email address",
|
|
53
|
+
value: email,
|
|
54
|
+
onChange: handleEmailChange,
|
|
55
|
+
onBlur: handleEmailBlur,
|
|
56
|
+
onShiftTab: handleShiftTabOnFirstElement
|
|
57
|
+
}), _jsx(Alternative, {
|
|
58
|
+
condition: () => Boolean(errorMessage),
|
|
59
|
+
true: _jsx(ErrorMessage, {
|
|
60
|
+
variant: 'standalone',
|
|
61
|
+
children: errorMessage
|
|
62
|
+
}),
|
|
63
|
+
false: null
|
|
64
|
+
}), _jsxs("div", {
|
|
65
|
+
className: 'topline_passwordRecovery_btnsCont',
|
|
66
|
+
children: [_jsx(Button, {
|
|
67
|
+
label: "Save new password",
|
|
68
|
+
stretched: true,
|
|
69
|
+
isInProgress: isMakingRequest,
|
|
70
|
+
onClick: handleMainBtnClick
|
|
71
|
+
}), _jsx(Button, {
|
|
72
|
+
ref: lastElementRef,
|
|
73
|
+
label: "Cancel",
|
|
74
|
+
variant: 'secondary',
|
|
75
|
+
stretched: true,
|
|
76
|
+
onClick: onClose,
|
|
77
|
+
onTab: handleTabOnLastElement
|
|
78
|
+
})]
|
|
79
|
+
})]
|
|
80
|
+
})]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, createRef, useCallback, useContext } from 'react';
|
|
3
|
+
import Alternative from '../../../../shared/components/alternative/index.js';
|
|
4
|
+
import { InputField } from '@peassoft/mnr-web-ui-kit/input-field/index.js';
|
|
5
|
+
import { Button } from '@peassoft/mnr-web-ui-kit/button/index.js';
|
|
6
|
+
import { ErrorMessage } from '@peassoft/mnr-web-ui-kit/error-message/index.js';
|
|
7
|
+
import { ToplineContext } from '../../../shell/index.js';
|
|
8
|
+
import { globalRefs } from '../../../../modules/focus-marshal/index.js';
|
|
9
|
+
import validatePasswordRecoveryCode from '../../../../modules/validators/password-recovery-code.js';
|
|
10
|
+
import validatePassword from '../../../../modules/validators/password.js';
|
|
11
|
+
import savePassword from '../../actions/save-password/index.js';
|
|
12
|
+
export default function StepTwo(props) {
|
|
13
|
+
const {
|
|
14
|
+
email,
|
|
15
|
+
onClose
|
|
16
|
+
} = props;
|
|
17
|
+
const lastElementRef = createRef();
|
|
18
|
+
const [secretCode, setSecretCode] = useState('');
|
|
19
|
+
const [isSecretCodeValid, setIsSecretCodeValid] = useState(true);
|
|
20
|
+
const [password, setPassword] = useState('');
|
|
21
|
+
const [isPasswordValid, setIsPasswordValid] = useState(true);
|
|
22
|
+
const [passwordConfirmation, setPasswordConfirmation] = useState('');
|
|
23
|
+
const [isPasswordConfirmationValid, setIsPasswordConfirmationValid] = useState(true);
|
|
24
|
+
const [isMakingRequest, setIsMakingRequest] = useState(false);
|
|
25
|
+
const [errorMessage, setErrorMessage] = useState('');
|
|
26
|
+
const {
|
|
27
|
+
handleUserChange
|
|
28
|
+
} = useContext(ToplineContext);
|
|
29
|
+
const handleSecretCodeChange = useCallback(newValue => setSecretCode(newValue.trim()), []);
|
|
30
|
+
const handleSecretCodeBlur = useCallback(() => setIsSecretCodeValid(validatePasswordRecoveryCode(secretCode)), [secretCode]);
|
|
31
|
+
const handlePasswordChange = useCallback(newValue => setPassword(newValue.trim()), []);
|
|
32
|
+
const handlePasswordBlur = useCallback(() => setIsPasswordValid(validatePassword(password)), [password]);
|
|
33
|
+
const handlePasswordConfirmationChange = useCallback(newValue => setPasswordConfirmation(newValue.trim()), []);
|
|
34
|
+
const handlePasswordConfirmationBlur = useCallback(() => setIsPasswordConfirmationValid(password === passwordConfirmation), [password, passwordConfirmation]);
|
|
35
|
+
const handleTabOnLastElement = useCallback(() => globalRefs.modalFirstItem.current?.focus(), []);
|
|
36
|
+
const handleShiftTabOnFirstElement = useCallback(() => lastElementRef.current?.focus(), [lastElementRef]);
|
|
37
|
+
const handleMainBtnClick = useCallback(async () => {
|
|
38
|
+
let hasFormValidationFailed = false;
|
|
39
|
+
if (!validatePasswordRecoveryCode(secretCode)) {
|
|
40
|
+
setIsSecretCodeValid(false);
|
|
41
|
+
hasFormValidationFailed = true;
|
|
42
|
+
}
|
|
43
|
+
if (!validatePassword(password)) {
|
|
44
|
+
setIsPasswordValid(false);
|
|
45
|
+
hasFormValidationFailed = true;
|
|
46
|
+
}
|
|
47
|
+
if (password !== passwordConfirmation) {
|
|
48
|
+
setIsPasswordConfirmationValid(false);
|
|
49
|
+
hasFormValidationFailed = true;
|
|
50
|
+
}
|
|
51
|
+
if (hasFormValidationFailed) return;
|
|
52
|
+
setIsMakingRequest(true);
|
|
53
|
+
const {
|
|
54
|
+
user,
|
|
55
|
+
error
|
|
56
|
+
} = await savePassword(email, password, secretCode);
|
|
57
|
+
if (user && !error) {
|
|
58
|
+
onClose();
|
|
59
|
+
handleUserChange(user);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
setIsMakingRequest(false);
|
|
63
|
+
switch (error) {
|
|
64
|
+
case 'network':
|
|
65
|
+
setErrorMessage("Server is unavailable. Please, try later.");
|
|
66
|
+
break;
|
|
67
|
+
case 'no-claim':
|
|
68
|
+
setErrorMessage("Secret code did not match.");
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
throw new Error('Unknown error of a login request');
|
|
72
|
+
}
|
|
73
|
+
}, [email, secretCode, password, passwordConfirmation, handleUserChange, onClose]);
|
|
74
|
+
useEffect(() => globalRefs.modalFirstItem.current?.focus(), []);
|
|
75
|
+
return _jsxs(_Fragment, {
|
|
76
|
+
children: [_jsxs("p", {
|
|
77
|
+
children: ["We have sent a secret code for password recovery to the following email address:", '\u{20}', _jsx("span", {
|
|
78
|
+
className: 'topline_passwordRecovery_email',
|
|
79
|
+
children: email
|
|
80
|
+
}), "."]
|
|
81
|
+
}), _jsx("p", {
|
|
82
|
+
children: "Enter that secret code and your new password into the fields below."
|
|
83
|
+
}), _jsxs("form", {
|
|
84
|
+
children: [_jsx(InputField, {
|
|
85
|
+
ref: globalRefs.modalFirstItem,
|
|
86
|
+
type: 'text',
|
|
87
|
+
label: "Secret code from email. Required",
|
|
88
|
+
errorMessage: isSecretCodeValid ? '' : "Enter the secret code",
|
|
89
|
+
value: secretCode,
|
|
90
|
+
onChange: handleSecretCodeChange,
|
|
91
|
+
onBlur: handleSecretCodeBlur,
|
|
92
|
+
onShiftTab: handleShiftTabOnFirstElement
|
|
93
|
+
}), _jsx(InputField, {
|
|
94
|
+
type: 'password',
|
|
95
|
+
autocompleteAttribute: 'new-password',
|
|
96
|
+
label: "Your new password. Required",
|
|
97
|
+
errorMessage: isPasswordValid ? '' : "Password cannot be empty",
|
|
98
|
+
value: password,
|
|
99
|
+
onChange: handlePasswordChange,
|
|
100
|
+
onBlur: handlePasswordBlur
|
|
101
|
+
}), _jsx(InputField, {
|
|
102
|
+
type: 'password',
|
|
103
|
+
autocompleteAttribute: 'new-password',
|
|
104
|
+
label: "Type in your new password one more time. Required",
|
|
105
|
+
errorMessage: isPasswordConfirmationValid ? '' : "Passwords do not match",
|
|
106
|
+
value: passwordConfirmation,
|
|
107
|
+
onChange: handlePasswordConfirmationChange,
|
|
108
|
+
onBlur: handlePasswordConfirmationBlur
|
|
109
|
+
}), _jsx(Alternative, {
|
|
110
|
+
condition: () => Boolean(errorMessage),
|
|
111
|
+
true: _jsx(ErrorMessage, {
|
|
112
|
+
variant: 'standalone',
|
|
113
|
+
children: errorMessage
|
|
114
|
+
}),
|
|
115
|
+
false: null
|
|
116
|
+
}), _jsxs("div", {
|
|
117
|
+
className: 'topline_passwordRecovery_btnsCont',
|
|
118
|
+
children: [_jsx(Button, {
|
|
119
|
+
label: "Save new password",
|
|
120
|
+
stretched: true,
|
|
121
|
+
isInProgress: isMakingRequest,
|
|
122
|
+
onClick: handleMainBtnClick
|
|
123
|
+
}), _jsx(Button, {
|
|
124
|
+
ref: lastElementRef,
|
|
125
|
+
label: "Cancel",
|
|
126
|
+
variant: 'secondary',
|
|
127
|
+
stretched: true,
|
|
128
|
+
onClick: onClose,
|
|
129
|
+
onTab: handleTabOnLastElement
|
|
130
|
+
})]
|
|
131
|
+
})]
|
|
132
|
+
})]
|
|
133
|
+
});
|
|
134
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether user data has been changed
|
|
3
|
+
*/
|
|
4
|
+
export default function hasUserBeenChanged(currUser, newUser) {
|
|
5
|
+
return currUser.userName !== newUser.userName || currUser.uiLang !== newUser.uiLang || currUser.roles.length !== newUser.roles.length || !currUser.roles.every(role => newUser.roles.includes(role));
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import stampit from 'stampit';
|
|
2
|
+
import { getGrantToken } from '../../../../modules/tokens/index.js';
|
|
3
|
+
import { type InnerService } from '../../../../modules/topline-service/index.js';
|
|
4
|
+
import { getApiBaseUrl } from '../../../../modules/env/index.js';
|
|
5
|
+
import request from '../../../../modules/request/index.js';
|
|
6
|
+
import hasUserBeenChanged from './has-user-been-changed.js';
|
|
7
|
+
import { logError } from '../../../../modules/logger/index.js';
|
|
8
|
+
import makeSecondAttempt from './make-second-attempt.js';
|
|
9
|
+
import { type ToplineUser } from '../../../../types/data.js';
|
|
10
|
+
export type This = {
|
|
11
|
+
getGrantToken: typeof getGrantToken;
|
|
12
|
+
innerToplineService: Pick<InnerService, 'processLogout' | 'updateUser' | 'upgradeGrantToken'>;
|
|
13
|
+
getApiBaseUrl: typeof getApiBaseUrl;
|
|
14
|
+
request: typeof request;
|
|
15
|
+
hasUserBeenChanged: typeof hasUserBeenChanged;
|
|
16
|
+
logError: typeof logError;
|
|
17
|
+
makeSecondAttempt: typeof makeSecondAttempt;
|
|
18
|
+
refreshUser: typeof refreshUser;
|
|
19
|
+
};
|
|
20
|
+
export declare const RefreshUser: stampit.Stamp<This>;
|
|
21
|
+
declare const self: (currUser: ToplineUser) => Promise<void>;
|
|
22
|
+
export default self;
|
|
23
|
+
/**
|
|
24
|
+
* Try to refresh user data after initialization
|
|
25
|
+
*
|
|
26
|
+
* @param currUser User data fetched from local DB on initialization
|
|
27
|
+
*/
|
|
28
|
+
declare function refreshUser(this: This, currUser: ToplineUser): Promise<void>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import stampit from 'stampit';
|
|
2
|
+
import WebError from '@memnrev/web-error';
|
|
3
|
+
import { getGrantToken } from '../../../../modules/tokens/index.js';
|
|
4
|
+
import { innerToplineService } from '../../../../modules/topline-service/index.js';
|
|
5
|
+
import { getApiBaseUrl } from '../../../../modules/env/index.js';
|
|
6
|
+
import request from '../../../../modules/request/index.js';
|
|
7
|
+
import hasUserBeenChanged from './has-user-been-changed.js';
|
|
8
|
+
import { logError } from '../../../../modules/logger/index.js';
|
|
9
|
+
import makeSecondAttempt from './make-second-attempt.js';
|
|
10
|
+
import { isToplineUser } from '../../../../types/data.js';
|
|
11
|
+
import { isObject } from '../../../../types/helpers.js';
|
|
12
|
+
export const RefreshUser = stampit().props({
|
|
13
|
+
getGrantToken,
|
|
14
|
+
innerToplineService,
|
|
15
|
+
getApiBaseUrl,
|
|
16
|
+
request,
|
|
17
|
+
hasUserBeenChanged,
|
|
18
|
+
logError,
|
|
19
|
+
makeSecondAttempt
|
|
20
|
+
}).methods({
|
|
21
|
+
refreshUser
|
|
22
|
+
});
|
|
23
|
+
const self = refreshUser.bind(RefreshUser());
|
|
24
|
+
export default self;
|
|
25
|
+
/**
|
|
26
|
+
* Try to refresh user data after initialization
|
|
27
|
+
*
|
|
28
|
+
* @param currUser User data fetched from local DB on initialization
|
|
29
|
+
*/
|
|
30
|
+
async function refreshUser(currUser) {
|
|
31
|
+
const grantToken = this.getGrantToken();
|
|
32
|
+
if (!grantToken) return;
|
|
33
|
+
const url = `${this.getApiBaseUrl()}/private/user`;
|
|
34
|
+
const options = {
|
|
35
|
+
method: 'GET',
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: `Bearer ${grantToken}`
|
|
38
|
+
},
|
|
39
|
+
cache: 'no-store',
|
|
40
|
+
redirect: 'error'
|
|
41
|
+
};
|
|
42
|
+
const response = await this.request(url, options, {
|
|
43
|
+
maxRetries: 1
|
|
44
|
+
});
|
|
45
|
+
if (!response) return;
|
|
46
|
+
if (response.status === 200) {
|
|
47
|
+
let newUser = null;
|
|
48
|
+
try {
|
|
49
|
+
const responsePayload = await response.json();
|
|
50
|
+
if (isObject(responsePayload) && 'user' in responsePayload && (isToplineUser(responsePayload.user) || responsePayload.user === null)) {
|
|
51
|
+
newUser = responsePayload.user;
|
|
52
|
+
} else {
|
|
53
|
+
this.logError(new WebError({
|
|
54
|
+
name: 'UnexpectedPayload'
|
|
55
|
+
}, `unexpected payload of request to ${url}`));
|
|
56
|
+
}
|
|
57
|
+
} catch (err) {
|
|
58
|
+
this.logError(new WebError({
|
|
59
|
+
name: 'UnexpectedError',
|
|
60
|
+
...(err instanceof Error ? {
|
|
61
|
+
cause: err
|
|
62
|
+
} : {})
|
|
63
|
+
}, `parsing 200 response of request to ${url} failed`));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!newUser) {
|
|
67
|
+
this.innerToplineService.processLogout();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (this.hasUserBeenChanged(currUser, newUser)) {
|
|
71
|
+
await this.innerToplineService.updateUser(newUser);
|
|
72
|
+
}
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (response.status === 401) {
|
|
76
|
+
await this.innerToplineService.upgradeGrantToken();
|
|
77
|
+
await this.makeSecondAttempt(currUser, self);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ToplineUser } from '../../types/data.js';
|
|
3
|
+
import type { ToplineService } from '../../modules/topline-service/index.js';
|
|
4
|
+
export type InnerToplineContext = {
|
|
5
|
+
ssrUser: ToplineUser | null;
|
|
6
|
+
user: ToplineUser | null;
|
|
7
|
+
handleUserChange: (user: ToplineUser | null) => unknown;
|
|
8
|
+
onReady: (toplineService: ToplineService, user: ToplineUser | null) => unknown;
|
|
9
|
+
onError: (err: Error) => unknown;
|
|
10
|
+
};
|
|
11
|
+
declare const _default: React.Context<InnerToplineContext>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type JSX } from 'react';
|
|
2
|
+
import type { ToplineAction } from '../../../../types/app.js';
|
|
3
|
+
type Props = {
|
|
4
|
+
onSelect: (actionName: ToplineAction) => unknown;
|
|
5
|
+
onClose: () => unknown;
|
|
6
|
+
};
|
|
7
|
+
export default function LoggedOutUserMenu(props: Props): JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, createRef } from 'react';
|
|
3
|
+
import UserMenuItem from '../user-menu-item/index.js';
|
|
4
|
+
import { globalRefs } from '../../../../modules/focus-marshal/index.js';
|
|
5
|
+
import { processKeyDown } from '../../../../modules/keyboard-navigation/vertical-menu.js';
|
|
6
|
+
const menuItemRefs = [globalRefs.userMenuFirstItem, createRef()];
|
|
7
|
+
export default function LoggedOutUserMenu(props) {
|
|
8
|
+
const {
|
|
9
|
+
onSelect,
|
|
10
|
+
onClose
|
|
11
|
+
} = props;
|
|
12
|
+
const [currItemIdx, setCurrItemIdx] = useState(0);
|
|
13
|
+
const handleKeyDown = useCallback(function (actionName, e) {
|
|
14
|
+
processKeyDown({
|
|
15
|
+
currIndex: currItemIdx,
|
|
16
|
+
e,
|
|
17
|
+
setCurrItemIdx,
|
|
18
|
+
menuItemRefs,
|
|
19
|
+
actionName,
|
|
20
|
+
onSelect,
|
|
21
|
+
onClose
|
|
22
|
+
});
|
|
23
|
+
}, [currItemIdx, onSelect, onClose]);
|
|
24
|
+
const handleSelect = useCallback(function (actionName) {
|
|
25
|
+
onSelect(actionName);
|
|
26
|
+
}, [onSelect]);
|
|
27
|
+
return _jsxs(_Fragment, {
|
|
28
|
+
children: [_jsx(UserMenuItem, {
|
|
29
|
+
label: "Log in" + '...',
|
|
30
|
+
itemRef: menuItemRefs[0],
|
|
31
|
+
tabIndex: currItemIdx === 0 ? 0 : -1,
|
|
32
|
+
onKeyDown: handleKeyDown.bind(null, 'login'),
|
|
33
|
+
onClick: handleSelect.bind(null, 'login')
|
|
34
|
+
}), _jsx(UserMenuItem, {
|
|
35
|
+
label: "Create account" + '...',
|
|
36
|
+
itemRef: menuItemRefs[1],
|
|
37
|
+
tabIndex: currItemIdx === 1 ? 0 : -1,
|
|
38
|
+
onKeyDown: handleKeyDown.bind(null, 'signup'),
|
|
39
|
+
onClick: handleSelect.bind(null, 'signup')
|
|
40
|
+
})]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type JSX } from 'react';
|
|
2
|
+
import type { ToplineAction } from '../../../../types/app.js';
|
|
3
|
+
type Props = {
|
|
4
|
+
onSelect: (actionName: ToplineAction) => unknown;
|
|
5
|
+
onClose: () => unknown;
|
|
6
|
+
};
|
|
7
|
+
export default function LoggedInUserMenu(props: Props): JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, createRef } from 'react';
|
|
3
|
+
import UserMenuItem from '../user-menu-item/index.js';
|
|
4
|
+
import { globalRefs } from '../../../../modules/focus-marshal/index.js';
|
|
5
|
+
import { processKeyDown } from '../../../../modules/keyboard-navigation/vertical-menu.js';
|
|
6
|
+
const menuItemRefs = [globalRefs.userMenuFirstItem, createRef()];
|
|
7
|
+
export default function LoggedInUserMenu(props) {
|
|
8
|
+
const {
|
|
9
|
+
onSelect,
|
|
10
|
+
onClose
|
|
11
|
+
} = props;
|
|
12
|
+
const [currItemIdx, setCurrItemIdx] = useState(0);
|
|
13
|
+
const handleKeyDown = useCallback(function (actionName, e) {
|
|
14
|
+
processKeyDown({
|
|
15
|
+
currIndex: currItemIdx,
|
|
16
|
+
e,
|
|
17
|
+
setCurrItemIdx,
|
|
18
|
+
menuItemRefs,
|
|
19
|
+
actionName,
|
|
20
|
+
onSelect,
|
|
21
|
+
onClose
|
|
22
|
+
});
|
|
23
|
+
}, [currItemIdx, onSelect, onClose]);
|
|
24
|
+
const handleSelect = useCallback(function (actionName) {
|
|
25
|
+
onSelect(actionName);
|
|
26
|
+
}, [onSelect]);
|
|
27
|
+
return _jsxs(_Fragment, {
|
|
28
|
+
children: [_jsx(UserMenuItem, {
|
|
29
|
+
label: "My profile" + '...',
|
|
30
|
+
itemRef: menuItemRefs[0],
|
|
31
|
+
tabIndex: currItemIdx === 0 ? 0 : -1,
|
|
32
|
+
onKeyDown: handleKeyDown.bind(null, 'profile'),
|
|
33
|
+
onClick: handleSelect.bind(null, 'profile')
|
|
34
|
+
}), _jsx(UserMenuItem, {
|
|
35
|
+
label: "Log out" + '',
|
|
36
|
+
itemRef: menuItemRefs[1],
|
|
37
|
+
tabIndex: currItemIdx === 1 ? 0 : -1,
|
|
38
|
+
onKeyDown: handleKeyDown.bind(null, 'logout'),
|
|
39
|
+
onClick: handleSelect.bind(null, 'logout')
|
|
40
|
+
})]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function Logo(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import LogoFull from './logo-full.js';
|
|
3
|
+
import LogoShort from './logo-short.js';
|
|
4
|
+
export default function Logo() {
|
|
5
|
+
return _jsxs(_Fragment, {
|
|
6
|
+
children: [_jsx(LogoFull, {}), _jsx(LogoShort, {})]
|
|
7
|
+
});
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable @stylistic/max-len */
|
|
3
|
+
export default function LogoFull() {
|
|
4
|
+
return _jsxs("svg", {
|
|
5
|
+
width: '300',
|
|
6
|
+
height: '40',
|
|
7
|
+
viewBox: '0 0 300 40',
|
|
8
|
+
className: 'topline_shell_fullLogo',
|
|
9
|
+
children: [_jsx("path", {
|
|
10
|
+
d: 'M207.4375,24.234375 L207.4375,27.796875 C207.4375,28.6614627 207.234377,29.3098937 206.828125,29.7421875 C206.421873,30.1744813 205.906253,30.390625 205.28125,30.390625 C204.666664,30.390625 204.16146,30.1718772 203.765625,29.734375 C203.36979,29.2968728 203.171875,28.6510459 203.171875,27.796875 L203.171875,15.921875 C203.171875,14.0051988 203.864576,13.046875 205.25,13.046875 C205.958337,13.046875 206.468748,13.2708311 206.78125,13.71875 C207.093752,14.1666689 207.265625,14.8281206 207.296875,15.703125 C207.807294,14.8281206 208.330726,14.1666689 208.867188,13.71875 C209.403649,13.2708311 210.119787,13.046875 211.015625,13.046875 C211.911463,13.046875 212.781246,13.2708311 213.625,13.71875 C214.468754,14.1666689 214.890625,14.760413 214.890625,15.5 C214.890625,16.0208359 214.710939,16.4505191 214.351562,16.7890625 C213.992186,17.1276059 213.604169,17.296875 213.1875,17.296875 C213.031249,17.296875 212.653649,17.2005218 212.054688,17.0078125 C211.455726,16.8151032 210.927086,16.71875 210.46875,16.71875 C209.843747,16.71875 209.333335,16.8828109 208.9375,17.2109375 C208.541665,17.5390641 208.234376,18.0260384 208.015625,18.671875 C207.796874,19.3177116 207.645834,20.085933 207.5625,20.9765625 C207.479166,21.867192 207.4375,22.9531186 207.4375,24.234375 Z M228.328125,22.765625 L219.984375,22.765625 C219.994792,23.7343798 220.190102,24.588538 220.570312,25.328125 C220.950523,26.067712 221.455726,26.6249981 222.085938,27 C222.716149,27.3750019 223.411455,27.5625 224.171875,27.5625 C224.682294,27.5625 225.148435,27.5026048 225.570312,27.3828125 C225.99219,27.2630202 226.40104,27.0755221 226.796875,26.8203125 C227.19271,26.5651029 227.55729,26.2916681 227.890625,26 C228.22396,25.7083319 228.656247,25.3125025 229.1875,24.8125 C229.406251,24.6249991 229.718748,24.53125 230.125,24.53125 C230.562502,24.53125 230.916665,24.6510405 231.1875,24.890625 C231.458335,25.1302095 231.59375,25.4687478 231.59375,25.90625 C231.59375,26.2916686 231.44271,26.7421849 231.140625,27.2578125 C230.83854,27.7734401 230.382816,28.2682268 229.773438,28.7421875 C229.164059,29.2161482 228.398442,29.6093734 227.476562,29.921875 C226.554683,30.2343766 225.494798,30.390625 224.296875,30.390625 C221.557278,30.390625 219.427091,29.6093828 217.90625,28.046875 C216.385409,26.4843672 215.625,24.3645967 215.625,21.6875 C215.625,20.427077 215.812498,19.2578179 216.1875,18.1796875 C216.562502,17.1015571 217.109371,16.1770872 217.828125,15.40625 C218.546879,14.6354128 219.432286,14.0442729 220.484375,13.6328125 C221.536464,13.2213521 222.703119,13.015625 223.984375,13.015625 C225.65105,13.015625 227.080723,13.367184 228.273438,14.0703125 C229.466152,14.773441 230.359372,15.6822861 230.953125,16.796875 C231.546878,17.9114639 231.84375,19.0468692 231.84375,20.203125 C231.84375,21.276047 231.536461,21.9713526 230.921875,22.2890625 C230.307289,22.6067724 229.442714,22.765625 228.328125,22.765625 Z M219.984375,20.34375 L227.71875,20.34375 C227.614583,18.8854094 227.221358,17.7942745 226.539062,17.0703125 C225.856767,16.3463505 224.958339,15.984375 223.84375,15.984375 C222.781245,15.984375 221.908858,16.3515588 221.226562,17.0859375 C220.544267,17.8203162 220.130209,18.9062428 219.984375,20.34375 Z M237.65625,15.703125 L241.109375,25.390625 L244.828125,15.28125 C245.119793,14.4687459 245.406249,13.8932309 245.6875,13.5546875 C245.968751,13.2161441 246.39583,13.046875 246.96875,13.046875 C247.510419,13.046875 247.971352,13.2291648 248.351562,13.59375 C248.731773,13.9583352 248.921875,14.3802059 248.921875,14.859375 C248.921875,15.0468759 248.888021,15.2656237 248.820312,15.515625 C248.752604,15.7656263 248.67448,15.9999989 248.585938,16.21875 C248.497395,16.4375011 248.395834,16.6874986 248.28125,16.96875 L244.1875,27.125 C244.072916,27.4166681 243.92448,27.7864561 243.742188,28.234375 C243.559895,28.6822939 243.356772,29.0651026 243.132812,29.3828125 C242.908853,29.7005224 242.632814,29.9479158 242.304688,30.125 C241.976561,30.3020842 241.578127,30.390625 241.109375,30.390625 C240.505205,30.390625 240.023439,30.2526055 239.664062,29.9765625 C239.304686,29.7005195 239.039063,29.3984391 238.867188,29.0703125 C238.695312,28.7421859 238.406252,28.0937548 238,27.125 L233.9375,17.078125 C233.84375,16.8281237 233.747396,16.5781263 233.648438,16.328125 C233.549479,16.0781237 233.466146,15.822918 233.398438,15.5625 C233.330729,15.302082 233.296875,15.0781259 233.296875,14.890625 C233.296875,14.5989569 233.385416,14.3098973 233.5625,14.0234375 C233.739584,13.7369777 233.984373,13.5026051 234.296875,13.3203125 C234.609377,13.1380199 234.947915,13.046875 235.3125,13.046875 C236.020837,13.046875 236.507811,13.249998 236.773438,13.65625 C237.039064,14.062502 237.333332,14.7447869 237.65625,15.703125 Z M256.25,15.46875 L256.25,27.796875 C256.25,28.6510459 256.046877,29.2968728 255.640625,29.734375 C255.234373,30.1718772 254.718753,30.390625 254.09375,30.390625 C253.468747,30.390625 252.960939,30.1666689 252.570312,29.71875 C252.179686,29.2708311 251.984375,28.6302125 251.984375,27.796875 L251.984375,15.59375 C251.984375,14.7499958 252.179686,14.1145855 252.570312,13.6875 C252.960939,13.2604145 253.468747,13.046875 254.09375,13.046875 C254.718753,13.046875 255.234373,13.2604145 255.640625,13.6875 C256.046877,14.1145855 256.25,14.7083295 256.25,15.46875 Z M254.140625,11.0625 C253.546872,11.0625 253.039065,10.8802102 252.617188,10.515625 C252.19531,10.1510398 251.984375,9.63542 251.984375,8.96875 C251.984375,8.36458031 252.200519,7.86718945 252.632812,7.4765625 C253.065106,7.08593555 253.567705,6.890625 254.140625,6.890625 C254.692711,6.890625 255.18229,7.06770656 255.609375,7.421875 C256.03646,7.77604344 256.25,8.29166328 256.25,8.96875 C256.25,9.62500328 256.041669,10.138019 255.625,10.5078125 C255.208331,10.877606 254.713545,11.0625 254.140625,11.0625 Z M274.390625,24.8125 C274.390625,25.9895892 274.10417,26.9973916 273.53125,27.8359375 C272.95833,28.6744834 272.111985,29.3098937 270.992188,29.7421875 C269.87239,30.1744813 268.510425,30.390625 266.90625,30.390625 C265.374992,30.390625 264.062505,30.1562523 262.96875,29.6875 C261.874995,29.2187477 261.067711,28.632816 260.546875,27.9296875 C260.026039,27.226559 259.765625,26.5208369 259.765625,25.8125 C259.765625,25.3437477 259.93229,24.94271 260.265625,24.609375 C260.59896,24.27604 261.020831,24.109375 261.53125,24.109375 C261.979169,24.109375 262.322915,24.2187489 262.5625,24.4375 C262.802085,24.6562511 263.031249,24.9635397 263.25,25.359375 C263.687502,26.1197955 264.210934,26.6874981 264.820312,27.0625 C265.429691,27.4375019 266.260411,27.625 267.3125,27.625 C268.166671,27.625 268.867185,27.4348977 269.414062,27.0546875 C269.96094,26.6744773 270.234375,26.2395858 270.234375,25.75 C270.234375,24.9999962 269.950524,24.4531267 269.382812,24.109375 C268.815101,23.7656233 267.880215,23.4375016 266.578125,23.125 C265.109368,22.7604148 263.914067,22.3776062 262.992188,21.9765625 C262.070308,21.5755188 261.333336,21.0468783 260.78125,20.390625 C260.229164,19.7343717 259.953125,18.9270881 259.953125,17.96875 C259.953125,17.1145791 260.208331,16.3072955 260.71875,15.546875 C261.229169,14.7864545 261.981766,14.1796898 262.976562,13.7265625 C263.971359,13.2734352 265.171868,13.046875 266.578125,13.046875 C267.682297,13.046875 268.674475,13.1614572 269.554688,13.390625 C270.4349,13.6197928 271.169268,13.9270814 271.757812,14.3125 C272.346357,14.6979186 272.794269,15.1249977 273.101562,15.59375 C273.408856,16.0625023 273.5625,16.5208311 273.5625,16.96875 C273.5625,17.4583358 273.398439,17.8593734 273.070312,18.171875 C272.742186,18.4843766 272.276045,18.640625 271.671875,18.640625 C271.234373,18.640625 270.861981,18.5156263 270.554688,18.265625 C270.247394,18.0156237 269.895835,17.6406275 269.5,17.140625 C269.177082,16.7239563 268.796877,16.3906263 268.359375,16.140625 C267.921873,15.8906237 267.328129,15.765625 266.578125,15.765625 C265.807288,15.765625 265.166669,15.9296859 264.65625,16.2578125 C264.145831,16.5859391 263.890625,16.9947892 263.890625,17.484375 C263.890625,17.9322939 264.078123,18.2994777 264.453125,18.5859375 C264.828127,18.8723973 265.33333,19.1093741 265.96875,19.296875 C266.60417,19.4843759 267.479161,19.7135403 268.59375,19.984375 C269.916673,20.3072933 270.997392,20.6927061 271.835938,21.140625 C272.674483,21.5885439 273.309894,22.1171845 273.742188,22.7265625 C274.174481,23.3359405 274.390625,24.0312461 274.390625,24.8125 Z M289.90625,22.765625 L281.5625,22.765625 C281.572917,23.7343798 281.768227,24.588538 282.148438,25.328125 C282.528648,26.067712 283.033851,26.6249981 283.664062,27 C284.294274,27.3750019 284.98958,27.5625 285.75,27.5625 C286.260419,27.5625 286.72656,27.5026048 287.148438,27.3828125 C287.570315,27.2630202 287.979165,27.0755221 288.375,26.8203125 C288.770835,26.5651029 289.135415,26.2916681 289.46875,26 C289.802085,25.7083319 290.234372,25.3125025 290.765625,24.8125 C290.984376,24.6249991 291.296873,24.53125 291.703125,24.53125 C292.140627,24.53125 292.49479,24.6510405 292.765625,24.890625 C293.03646,25.1302095 293.171875,25.4687478 293.171875,25.90625 C293.171875,26.2916686 293.020835,26.7421849 292.71875,27.2578125 C292.416665,27.7734401 291.960941,28.2682268 291.351562,28.7421875 C290.742184,29.2161482 289.976567,29.6093734 289.054688,29.921875 C288.132808,30.2343766 287.072923,30.390625 285.875,30.390625 C283.135403,30.390625 281.005216,29.6093828 279.484375,28.046875 C277.963534,26.4843672 277.203125,24.3645967 277.203125,21.6875 C277.203125,20.427077 277.390623,19.2578179 277.765625,18.1796875 C278.140627,17.1015571 278.687496,16.1770872 279.40625,15.40625 C280.125004,14.6354128 281.010411,14.0442729 282.0625,13.6328125 C283.114589,13.2213521 284.281244,13.015625 285.5625,13.015625 C287.229175,13.015625 288.658848,13.367184 289.851562,14.0703125 C291.044277,14.773441 291.937497,15.6822861 292.53125,16.796875 C293.125003,17.9114639 293.421875,19.0468692 293.421875,20.203125 C293.421875,21.276047 293.114586,21.9713526 292.5,22.2890625 C291.885414,22.6067724 291.020839,22.765625 289.90625,22.765625 Z M281.5625,20.34375 L289.296875,20.34375 C289.192708,18.8854094 288.799483,17.7942745 288.117188,17.0703125 C287.434892,16.3463505 286.536464,15.984375 285.421875,15.984375 C284.35937,15.984375 283.486983,16.3515588 282.804688,17.0859375 C282.122392,17.8203162 281.708334,18.9062428 281.5625,20.34375 Z',
|
|
11
|
+
fill: '#3F72AF'
|
|
12
|
+
}), _jsx("path", {
|
|
13
|
+
d: 'M176.078125,15.40625 L176.078125,15.921875 C176.828129,14.9322867 177.648433,14.2057315 178.539062,13.7421875 C179.429692,13.2786435 180.453119,13.046875 181.609375,13.046875 C182.734381,13.046875 183.739579,13.2916642 184.625,13.78125 C185.510421,14.2708358 186.171873,14.9635372 186.609375,15.859375 C186.890626,16.3802109 187.072916,16.9427053 187.15625,17.546875 C187.239584,18.1510447 187.28125,18.9218703 187.28125,19.859375 L187.28125,27.796875 C187.28125,28.6510459 187.085939,29.2968728 186.695312,29.734375 C186.304686,30.1718772 185.796878,30.390625 185.171875,30.390625 C184.536455,30.390625 184.020835,30.1666689 183.625,29.71875 C183.229165,29.2708311 183.03125,28.6302125 183.03125,27.796875 L183.03125,20.6875 C183.03125,19.281243 182.835939,18.2057329 182.445312,17.4609375 C182.054686,16.7161421 181.276048,16.34375 180.109375,16.34375 C179.348955,16.34375 178.656253,16.5703102 178.03125,17.0234375 C177.406247,17.4765648 176.947918,18.0989544 176.65625,18.890625 C176.447916,19.5260448 176.34375,20.713533 176.34375,22.453125 L176.34375,27.796875 C176.34375,28.6614627 176.143231,29.3098937 175.742188,29.7421875 C175.341144,30.1744813 174.82292,30.390625 174.1875,30.390625 C173.572914,30.390625 173.06771,30.1666689 172.671875,29.71875 C172.27604,29.2708311 172.078125,28.6302125 172.078125,27.796875 L172.078125,15.46875 C172.078125,14.6562459 172.255207,14.0494812 172.609375,13.6484375 C172.963543,13.2473938 173.447914,13.046875 174.0625,13.046875 C174.437502,13.046875 174.77604,13.1354158 175.078125,13.3125 C175.38021,13.4895842 175.622395,13.7552066 175.804688,14.109375 C175.98698,14.4635434 176.078125,14.8958308 176.078125,15.40625 Z',
|
|
14
|
+
fill: '#DBE2EF'
|
|
15
|
+
}), _jsx("path", {
|
|
16
|
+
d: 'M164.09375,11.4375 L163.859375,11.4375 C163.276039,11.4375 162.747398,11.2005232 162.273438,10.7265625 C161.799477,10.2526018 161.5625,9.69271156 161.5625,9.046875 C161.5625,8.380205 161.799477,7.82291891 162.273438,7.375 C162.747398,6.92708109 163.33333,6.703125 164.03125,6.703125 C164.510419,6.703125 164.958331,6.84114445 165.375,7.1171875 C165.791669,7.39323055 166.114582,7.7942682 166.34375,8.3203125 C166.572918,8.8463568 166.6875,9.48957953 166.6875,10.25 C166.6875,11.2812552 166.468752,12.2473913 166.03125,13.1484375 C165.593748,14.0494837 165.059899,14.7630182 164.429688,15.2890625 C163.799476,15.8151068 163.229169,16.078125 162.71875,16.078125 C162.395832,16.078125 162.132814,15.9765635 161.929688,15.7734375 C161.726561,15.5703115 161.625,15.3229181 161.625,15.03125 C161.625,14.5624977 161.83854,14.2187511 162.265625,14 C162.817711,13.6770817 163.249998,13.3229186 163.5625,12.9375 C163.875002,12.5520814 164.052083,12.0520864 164.09375,11.4375 Z',
|
|
17
|
+
fill: '#DBE2EF'
|
|
18
|
+
}), _jsx("path", {
|
|
19
|
+
d: 'M195.09375,11.4375 L194.859375,11.4375 C194.276039,11.4375 193.747398,11.2005232 193.273438,10.7265625 C192.799477,10.2526018 192.5625,9.69271156 192.5625,9.046875 C192.5625,8.380205 192.799477,7.82291891 193.273438,7.375 C193.747398,6.92708109 194.33333,6.703125 195.03125,6.703125 C195.510419,6.703125 195.958331,6.84114445 196.375,7.1171875 C196.791669,7.39323055 197.114582,7.7942682 197.34375,8.3203125 C197.572918,8.8463568 197.6875,9.48957953 197.6875,10.25 C197.6875,11.2812552 197.468752,12.2473913 197.03125,13.1484375 C196.593748,14.0494837 196.059899,14.7630182 195.429688,15.2890625 C194.799476,15.8151068 194.229169,16.078125 193.71875,16.078125 C193.395832,16.078125 193.132814,15.9765635 192.929688,15.7734375 C192.726561,15.5703115 192.625,15.3229181 192.625,15.03125 C192.625,14.5624977 192.83854,14.2187511 193.265625,14 C193.817711,13.6770817 194.249998,13.3229186 194.5625,12.9375 C194.875002,12.5520814 195.052083,12.0520864 195.09375,11.4375 Z',
|
|
20
|
+
fill: '#DBE2EF'
|
|
21
|
+
}), _jsx("path", {
|
|
22
|
+
d: 'M22.390625,22.03125 L22.390625,27.703125 C22.390625,28.5989628 22.187502,29.2708311 21.78125,29.71875 C21.374998,30.1666689 20.838545,30.390625 20.171875,30.390625 C19.5260384,30.390625 19.0026062,30.1666689 18.6015625,29.71875 C18.2005188,29.2708311 18,28.5989628 18,27.703125 L18,20.90625 C18,19.833328 17.963542,19.000003 17.890625,18.40625 C17.817708,17.812497 17.6197933,17.3255227 17.296875,16.9453125 C16.9739567,16.5651023 16.4635452,16.375 15.765625,16.375 C14.3697847,16.375 13.450523,16.8541619 13.0078125,17.8125 C12.565102,18.7708381 12.34375,20.1458244 12.34375,21.9375 L12.34375,27.703125 C12.34375,28.5885461 12.1432312,29.2578102 11.7421875,29.7109375 C11.3411438,30.1640648 10.8125033,30.390625 10.15625,30.390625 C9.51041344,30.390625 8.98177289,30.1640648 8.5703125,29.7109375 C8.15885211,29.2578102 7.953125,28.5885461 7.953125,27.703125 L7.953125,15.5 C7.953125,14.6979127 8.13801898,14.0885437 8.5078125,13.671875 C8.87760602,13.2552063 9.36458031,13.046875 9.96875,13.046875 C10.5520863,13.046875 11.0390605,13.2421855 11.4296875,13.6328125 C11.8203145,14.0234395 12.015625,14.5624966 12.015625,15.25 L12.015625,15.65625 C12.755212,14.7708289 13.5468708,14.1197937 14.390625,13.703125 C15.2343792,13.2864563 16.1718698,13.078125 17.203125,13.078125 C18.276047,13.078125 19.1979128,13.2916645 19.96875,13.71875 C20.7395872,14.1458355 21.3749975,14.7916623 21.875,15.65625 C22.5937536,14.7812456 23.3645792,14.1328146 24.1875,13.7109375 C25.0104208,13.2890604 25.92187,13.078125 26.921875,13.078125 C28.0885475,13.078125 29.0937458,13.3072894 29.9375,13.765625 C30.7812542,14.2239606 31.4114563,14.8802041 31.828125,15.734375 C32.1927102,16.5052122 32.375,17.7187417 32.375,19.375 L32.375,27.703125 C32.375,28.5989628 32.171877,29.2708311 31.765625,29.71875 C31.359373,30.1666689 30.82292,30.390625 30.15625,30.390625 C29.5104134,30.390625 28.9817729,30.1640648 28.5703125,29.7109375 C28.1588521,29.2578102 27.953125,28.5885461 27.953125,27.703125 L27.953125,20.53125 C27.953125,19.6145787 27.9140629,18.8802111 27.8359375,18.328125 C27.7578121,17.7760389 27.5468767,17.3125019 27.203125,16.9375 C26.8593733,16.5624981 26.3385452,16.375 25.640625,16.375 C25.0781222,16.375 24.5442734,16.541665 24.0390625,16.875 C23.5338516,17.208335 23.1406264,17.6562472 22.859375,18.21875 C22.5468734,18.9375036 22.390625,20.2083242 22.390625,22.03125 Z M48.421875,22.765625 L40.078125,22.765625 C40.0885417,23.7343798 40.2838523,24.588538 40.6640625,25.328125 C41.0442727,26.067712 41.549476,26.6249981 42.1796875,27 C42.809899,27.3750019 43.5052045,27.5625 44.265625,27.5625 C44.7760442,27.5625 45.2421854,27.5026048 45.6640625,27.3828125 C46.0859396,27.2630202 46.4947897,27.0755221 46.890625,26.8203125 C47.2864603,26.5651029 47.65104,26.2916681 47.984375,26 C48.31771,25.7083319 48.7499973,25.3125025 49.28125,24.8125 C49.5000011,24.6249991 49.812498,24.53125 50.21875,24.53125 C50.6562522,24.53125 51.0104153,24.6510405 51.28125,24.890625 C51.5520847,25.1302095 51.6875,25.4687478 51.6875,25.90625 C51.6875,26.2916686 51.5364598,26.7421849 51.234375,27.2578125 C50.9322902,27.7734401 50.4765655,28.2682268 49.8671875,28.7421875 C49.2578095,29.2161482 48.4921921,29.6093734 47.5703125,29.921875 C46.6484329,30.2343766 45.5885477,30.390625 44.390625,30.390625 C41.651028,30.390625 39.5208409,29.6093828 38,28.046875 C36.4791591,26.4843672 35.71875,24.3645967 35.71875,21.6875 C35.71875,20.427077 35.9062481,19.2578179 36.28125,18.1796875 C36.6562519,17.1015571 37.2031214,16.1770872 37.921875,15.40625 C38.6406286,14.6354128 39.5260364,14.0442729 40.578125,13.6328125 C41.6302136,13.2213521 42.7968686,13.015625 44.078125,13.015625 C45.7448,13.015625 47.1744732,13.367184 48.3671875,14.0703125 C49.5599018,14.773441 50.453122,15.6822861 51.046875,16.796875 C51.640628,17.9114639 51.9375,19.0468692 51.9375,20.203125 C51.9375,21.276047 51.6302114,21.9713526 51.015625,22.2890625 C50.4010386,22.6067724 49.5364639,22.765625 48.421875,22.765625 Z M40.078125,20.34375 L47.8125,20.34375 C47.7083328,18.8854094 47.3151076,17.7942745 46.6328125,17.0703125 C45.9505174,16.3463505 45.0520889,15.984375 43.9375,15.984375 C42.8749947,15.984375 42.0026076,16.3515588 41.3203125,17.0859375 C40.6380174,17.8203162 40.2239591,18.9062428 40.078125,20.34375 Z M69.71875,22.03125 L69.71875,27.703125 C69.71875,28.5989628 69.515627,29.2708311 69.109375,29.71875 C68.703123,30.1666689 68.16667,30.390625 67.5,30.390625 C66.8541634,30.390625 66.3307312,30.1666689 65.9296875,29.71875 C65.5286438,29.2708311 65.328125,28.5989628 65.328125,27.703125 L65.328125,20.90625 C65.328125,19.833328 65.291667,19.000003 65.21875,18.40625 C65.145833,17.812497 64.9479183,17.3255227 64.625,16.9453125 C64.3020817,16.5651023 63.7916702,16.375 63.09375,16.375 C61.6979097,16.375 60.778648,16.8541619 60.3359375,17.8125 C59.893227,18.7708381 59.671875,20.1458244 59.671875,21.9375 L59.671875,27.703125 C59.671875,28.5885461 59.4713562,29.2578102 59.0703125,29.7109375 C58.6692688,30.1640648 58.1406283,30.390625 57.484375,30.390625 C56.8385384,30.390625 56.3098979,30.1640648 55.8984375,29.7109375 C55.4869771,29.2578102 55.28125,28.5885461 55.28125,27.703125 L55.28125,15.5 C55.28125,14.6979127 55.466144,14.0885437 55.8359375,13.671875 C56.205731,13.2552063 56.6927053,13.046875 57.296875,13.046875 C57.8802113,13.046875 58.3671855,13.2421855 58.7578125,13.6328125 C59.1484395,14.0234395 59.34375,14.5624966 59.34375,15.25 L59.34375,15.65625 C60.083337,14.7708289 60.8749958,14.1197937 61.71875,13.703125 C62.5625042,13.2864563 63.4999948,13.078125 64.53125,13.078125 C65.604172,13.078125 66.5260378,13.2916645 67.296875,13.71875 C68.0677122,14.1458355 68.7031225,14.7916623 69.203125,15.65625 C69.9218786,14.7812456 70.6927042,14.1328146 71.515625,13.7109375 C72.3385458,13.2890604 73.249995,13.078125 74.25,13.078125 C75.4166725,13.078125 76.4218708,13.3072894 77.265625,13.765625 C78.1093792,14.2239606 78.7395813,14.8802041 79.15625,15.734375 C79.5208352,16.5052122 79.703125,17.7187417 79.703125,19.375 L79.703125,27.703125 C79.703125,28.5989628 79.500002,29.2708311 79.09375,29.71875 C78.687498,30.1666689 78.151045,30.390625 77.484375,30.390625 C76.8385384,30.390625 76.3098979,30.1640648 75.8984375,29.7109375 C75.4869771,29.2578102 75.28125,28.5885461 75.28125,27.703125 L75.28125,20.53125 C75.28125,19.6145787 75.2421879,18.8802111 75.1640625,18.328125 C75.0859371,17.7760389 74.8750017,17.3125019 74.53125,16.9375 C74.1874983,16.5624981 73.6666702,16.375 72.96875,16.375 C72.4062472,16.375 71.8723984,16.541665 71.3671875,16.875 C70.8619766,17.208335 70.4687514,17.6562472 70.1875,18.21875 C69.8749984,18.9375036 69.71875,20.2083242 69.71875,22.03125 Z M99.8125,21.71875 C99.8125,22.9895897 99.6145853,24.161453 99.21875,25.234375 C98.8229147,26.307297 98.2500038,27.2291628 97.5,28 C96.7499963,28.7708372 95.8541719,29.3619771 94.8125,29.7734375 C93.7708281,30.1848979 92.5989648,30.390625 91.296875,30.390625 C90.0052019,30.390625 88.8437552,30.1822937 87.8125,29.765625 C86.7812448,29.3489563 85.8880246,28.752608 85.1328125,27.9765625 C84.3776004,27.200517 83.8046895,26.2838595 83.4140625,25.2265625 C83.0234355,24.1692655 82.828125,23.0000064 82.828125,21.71875 C82.828125,20.4270769 83.0260397,19.244797 83.421875,18.171875 C83.8177103,17.098953 84.385413,16.1822955 85.125,15.421875 C85.864587,14.6614545 86.7604114,14.0755229 87.8125,13.6640625 C88.8645886,13.2526021 90.0260353,13.046875 91.296875,13.046875 C92.5885481,13.046875 93.7604114,13.2552063 94.8125,13.671875 C95.8645886,14.0885437 96.7656213,14.6822878 97.515625,15.453125 C98.2656287,16.2239622 98.8359355,17.1406197 99.2265625,18.203125 C99.6171895,19.2656303 99.8125,20.4374936 99.8125,21.71875 Z M95.53125,21.71875 C95.53125,19.979158 95.1484413,18.6250048 94.3828125,17.65625 C93.6171837,16.6874952 92.5885481,16.203125 91.296875,16.203125 C90.4635375,16.203125 89.7291698,16.4192687 89.09375,16.8515625 C88.4583302,17.2838563 87.9687517,17.9218708 87.625,18.765625 C87.2812483,19.6093792 87.109375,20.5937444 87.109375,21.71875 C87.109375,22.8333389 87.2786441,23.8072875 87.6171875,24.640625 C87.9557309,25.4739625 88.440101,26.111977 89.0703125,26.5546875 C89.700524,26.997398 90.4427041,27.21875 91.296875,27.21875 C92.5885481,27.21875 93.6171837,26.7317757 94.3828125,25.7578125 C95.1484413,24.7838493 95.53125,23.4375086 95.53125,21.71875 Z M107.40625,24.234375 L107.40625,27.796875 C107.40625,28.6614627 107.203127,29.3098937 106.796875,29.7421875 C106.390623,30.1744813 105.875003,30.390625 105.25,30.390625 C104.635414,30.390625 104.13021,30.1718772 103.734375,29.734375 C103.33854,29.2968728 103.140625,28.6510459 103.140625,27.796875 L103.140625,15.921875 C103.140625,14.0051988 103.833326,13.046875 105.21875,13.046875 C105.927087,13.046875 106.437498,13.2708311 106.75,13.71875 C107.062502,14.1666689 107.234375,14.8281206 107.265625,15.703125 C107.776044,14.8281206 108.299476,14.1666689 108.835938,13.71875 C109.372399,13.2708311 110.088537,13.046875 110.984375,13.046875 C111.880213,13.046875 112.749996,13.2708311 113.59375,13.71875 C114.437504,14.1666689 114.859375,14.760413 114.859375,15.5 C114.859375,16.0208359 114.679689,16.4505191 114.320312,16.7890625 C113.960936,17.1276059 113.572919,17.296875 113.15625,17.296875 C112.999999,17.296875 112.622399,17.2005218 112.023438,17.0078125 C111.424476,16.8151032 110.895836,16.71875 110.4375,16.71875 C109.812497,16.71875 109.302085,16.8828109 108.90625,17.2109375 C108.510415,17.5390641 108.203126,18.0260384 107.984375,18.671875 C107.765624,19.3177116 107.614584,20.085933 107.53125,20.9765625 C107.447916,21.867192 107.40625,22.9531186 107.40625,24.234375 Z M121.453125,15.46875 L121.453125,27.796875 C121.453125,28.6510459 121.250002,29.2968728 120.84375,29.734375 C120.437498,30.1718772 119.921878,30.390625 119.296875,30.390625 C118.671872,30.390625 118.164064,30.1666689 117.773438,29.71875 C117.382811,29.2708311 117.1875,28.6302125 117.1875,27.796875 L117.1875,15.59375 C117.1875,14.7499958 117.382811,14.1145855 117.773438,13.6875 C118.164064,13.2604145 118.671872,13.046875 119.296875,13.046875 C119.921878,13.046875 120.437498,13.2604145 120.84375,13.6875 C121.250002,14.1145855 121.453125,14.7083295 121.453125,15.46875 Z M119.34375,11.0625 C118.749997,11.0625 118.24219,10.8802102 117.820312,10.515625 C117.398435,10.1510398 117.1875,9.63542 117.1875,8.96875 C117.1875,8.36458031 117.403644,7.86718945 117.835938,7.4765625 C118.268231,7.08593555 118.77083,6.890625 119.34375,6.890625 C119.895836,6.890625 120.385415,7.06770656 120.8125,7.421875 C121.239585,7.77604344 121.453125,8.29166328 121.453125,8.96875 C121.453125,9.62500328 121.244794,10.138019 120.828125,10.5078125 C120.411456,10.877606 119.91667,11.0625 119.34375,11.0625 Z M137.453125,17.9375 L129.640625,26.671875 L138,26.671875 C138.677087,26.671875 139.187498,26.8307276 139.53125,27.1484375 C139.875002,27.4661474 140.046875,27.8749975 140.046875,28.375 C140.046875,28.8541691 139.877606,29.2447902 139.539062,29.546875 C139.200519,29.8489598 138.687503,30 138,30 L126.4375,30 C125.624996,30 125.018231,29.8229184 124.617188,29.46875 C124.216144,29.1145816 124.015625,28.6302114 124.015625,28.015625 C124.015625,27.6510398 124.156249,27.283856 124.4375,26.9140625 C124.718751,26.544269 125.302079,25.8645883 126.1875,24.875 C127.125005,23.8333281 127.976559,22.8906292 128.742188,22.046875 C129.507816,21.2031208 130.218747,20.4140662 130.875,19.6796875 C131.531253,18.9453088 132.075519,18.3229192 132.507812,17.8125 C132.940106,17.3020808 133.286457,16.8645852 133.546875,16.5 L127.203125,16.5 C126.328121,16.5 125.666669,16.4218758 125.21875,16.265625 C124.770831,16.1093742 124.546875,15.69792 124.546875,15.03125 C124.546875,14.5416642 124.716144,14.1510431 125.054688,13.859375 C125.393231,13.5677069 125.874997,13.421875 126.5,13.421875 L136.296875,13.421875 C137.20313,13.421875 137.898435,13.5546862 138.382812,13.8203125 C138.86719,14.0859388 139.109375,14.5624966 139.109375,15.25 C139.109375,15.4791678 139.0625,15.7161446 138.96875,15.9609375 C138.875,16.2057304 138.770834,16.4062492 138.65625,16.5625 C138.541666,16.7187508 138.385418,16.908853 138.1875,17.1328125 C137.989582,17.356772 137.744793,17.6249984 137.453125,17.9375 Z M154.015625,22.765625 L145.671875,22.765625 C145.682292,23.7343798 145.877602,24.588538 146.257812,25.328125 C146.638023,26.067712 147.143226,26.6249981 147.773438,27 C148.403649,27.3750019 149.098955,27.5625 149.859375,27.5625 C150.369794,27.5625 150.835935,27.5026048 151.257812,27.3828125 C151.67969,27.2630202 152.08854,27.0755221 152.484375,26.8203125 C152.88021,26.5651029 153.24479,26.2916681 153.578125,26 C153.91146,25.7083319 154.343747,25.3125025 154.875,24.8125 C155.093751,24.6249991 155.406248,24.53125 155.8125,24.53125 C156.250002,24.53125 156.604165,24.6510405 156.875,24.890625 C157.145835,25.1302095 157.28125,25.4687478 157.28125,25.90625 C157.28125,26.2916686 157.13021,26.7421849 156.828125,27.2578125 C156.52604,27.7734401 156.070316,28.2682268 155.460938,28.7421875 C154.851559,29.2161482 154.085942,29.6093734 153.164062,29.921875 C152.242183,30.2343766 151.182298,30.390625 149.984375,30.390625 C147.244778,30.390625 145.114591,29.6093828 143.59375,28.046875 C142.072909,26.4843672 141.3125,24.3645967 141.3125,21.6875 C141.3125,20.427077 141.499998,19.2578179 141.875,18.1796875 C142.250002,17.1015571 142.796871,16.1770872 143.515625,15.40625 C144.234379,14.6354128 145.119786,14.0442729 146.171875,13.6328125 C147.223964,13.2213521 148.390619,13.015625 149.671875,13.015625 C151.33855,13.015625 152.768223,13.367184 153.960938,14.0703125 C155.153652,14.773441 156.046872,15.6822861 156.640625,16.796875 C157.234378,17.9114639 157.53125,19.0468692 157.53125,20.203125 C157.53125,21.276047 157.223961,21.9713526 156.609375,22.2890625 C155.994789,22.6067724 155.130214,22.765625 154.015625,22.765625 Z M145.671875,20.34375 L153.40625,20.34375 C153.302083,18.8854094 152.908858,17.7942745 152.226562,17.0703125 C151.544267,16.3463505 150.645839,15.984375 149.53125,15.984375 C148.468745,15.984375 147.596358,16.3515588 146.914062,17.0859375 C146.231767,17.8203162 145.817709,18.9062428 145.671875,20.34375 Z',
|
|
23
|
+
fill: '#3F72AF'
|
|
24
|
+
})]
|
|
25
|
+
});
|
|
26
|
+
}
|