From 52ff7a715f30ec458efb2fb824bfbd058588ed1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=9A=D0=B0=D1=82=D0=B0?= =?UTF-8?q?=D0=B5=D0=B2?= Date: Fri, 31 Jan 2025 02:37:08 +0000 Subject: [PATCH] hotfix/redesign-palmistry --- src/api/resources/Session.ts | 10 +- src/components/App/index.tsx | 301 +++++++++--------- .../ChatsPath/pages/ExpertChat/index.tsx | 48 ++- .../v1/pages/SecretDiscount/index.tsx | 50 ++- .../v1/pages/SpecialOffer/index.tsx | 45 ++- .../PaymentModalV1/PaymentForm/index.tsx | 44 ++- .../PalmistryV1/images/SVG/Darkness/index.tsx | 17 + .../PalmistryV1/images/SVG/Light/index.tsx | 15 + .../pages/ElementResonates/index.tsx | 22 +- .../PalmistryV1/pages/FavoriteColor/index.tsx | 25 +- .../PalmistryV1/pages/FindHappiness/index.tsx | 29 +- .../pages/FindHappiness/styles.module.scss | 20 ++ .../pages/GenderPalmistry/index.tsx | 11 +- .../pages/GenderPalmistry/styles.module.scss | 4 + .../PalmistryV1/pages/HeadOrHeart/index.tsx | 4 + .../pages/HeadOrHeartResult/index.tsx | 39 ++- .../pages/RelationshipStatus/index.tsx | 12 + .../PalmistryV1/pages/WhatAspects/index.tsx | 4 + .../pages/SecretDiscount/index.tsx | 41 ++- .../PalmistryV2/pages/TrialPayment/index.tsx | 45 ++- .../v1/components/PrivacyPolicy/index.tsx | 4 +- .../ABDesign/v1/pages/TrialPayment/index.tsx | 44 ++- .../pages/TrialPaymentWithDiscount/index.tsx | 42 ++- .../pages/GetInformationPartner/index.tsx | 3 +- .../palmistry/AdditionalPurchases/index.tsx | 14 +- .../pages/SkipTrial/index.tsx | 8 +- .../authentication/use-authentication.ts | 3 +- src/routes.ts | 4 +- 28 files changed, 617 insertions(+), 291 deletions(-) create mode 100644 src/components/PalmistryV1/images/SVG/Darkness/index.tsx create mode 100644 src/components/PalmistryV1/images/SVG/Light/index.tsx diff --git a/src/api/resources/Session.ts b/src/api/resources/Session.ts index 85b945b..6e548f9 100644 --- a/src/api/resources/Session.ts +++ b/src/api/resources/Session.ts @@ -26,11 +26,11 @@ export interface PayloadUpdate { } export interface IAnswersSessionPalmistry { - what_aspects: 'love_relationships' | 'health_vitality' | 'career_destiny', // Type: string, optional - 'love_relationships' | 'health_vitality' | 'career_destiny'; - relationship_status: 'single' | 'in_relationship', // Type: string, optional - 'single' | 'in_relationship'; - element_resonates: 'water' | 'fire' | 'air' | 'earth', // Type: string, optional - 'water' | 'fire' | 'air' | 'earth'; - favorite_color: 'blue' | 'green' | 'orange' | 'violet' | 'red' | 'yellow', // Type: string, optional - 'blue' | 'green' | 'orange' | 'violet' | 'red' | 'yellow'; - head_or_heart: 'head' | 'heart' | 'both', // Type: string, optional - 'head' | 'heart' | 'both'; + what_aspects: 'love_relationships' | 'health_vitality' | 'career_destiny' | 'life_transitions', // Type: string, optional - 'love_relationships' | 'health_vitality' | 'career_destiny'; + relationship_status: 'single' | 'in_relationship' | 'engaged' | 'divorced' | 'complicated', // Type: string, optional - 'single' | 'in_relationship'; + element_resonates: 'water' | 'fire' | 'air' | 'earth' | 'light' | 'darkness', // Type: string, optional - 'water' | 'fire' | 'air' | 'earth'; + favorite_color: 'blue' | 'green' | 'orange' | 'violet' | 'red' | 'yellow' | 'turquoise', // Type: string, optional - 'blue' | 'green' | 'orange' | 'violet' | 'red' | 'yellow'; + head_or_heart: 'head' | 'heart' | 'both' | 'depends', // Type: string, optional - 'head' | 'heart' | 'both'; time_alone: 1 | 2 | 3 | 4 | 5, // Type: number, optional - 1 | 2 | 3 | 4 | 5; own_company: 1 | 2 | 3 | 4 | 5, // Type: number, optional - 1 | 2 | 3 | 4 | 5; socializing_in_groups: 1 | 2 | 3 | 4 | 5, // Type: number, optional - 1 | 2 | 3 | 4 | 5; diff --git a/src/components/App/index.tsx b/src/components/App/index.tsx index 926b591..095da4d 100755 --- a/src/components/App/index.tsx +++ b/src/components/App/index.tsx @@ -317,13 +317,11 @@ function App(): JSX.Element { } > - } /> - } /> - } /> } /> + } /> } @@ -332,6 +330,159 @@ function App(): JSX.Element { path={`${emailMarketingV1Prefix}/*`} element={} /> + + {/* Additional Purchases Palmistry */} + }> + }> + } /> + } + /> + } /> + + + {/* Additional Purchases Palmistry End */} + + } + /> + + } + > + } /> + + } + /> + } + /> + }> + } /> + } /> + } + /> + } + /> + } /> + } + /> + } + /> + } + /> + {/* } + /> */} + } + /> + {/* } /> */} + } + /> + + {/* }> + } + > + } /> + + */} + }> + }> + } + /> + + }> + } /> + } + /> + } + /> + } + /> + } + /> + } + /> + } /> + + } /> + + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + + + + } /> + + {/* ROUTES OFF */} + + } /> + } /> } @@ -801,151 +952,7 @@ function App(): JSX.Element { {/* Additional Purchases End */} - {/* Additional Purchases Palmistry */} - }> - }> - } /> - } - /> - } /> - - - {/* Additional Purchases Palmistry End */} - } - /> - - } - > - } /> - - } - /> - } - /> - }> - } /> - } /> - } - /> - } - /> - } /> - } - /> - } - /> - } - /> - {/* } - /> */} - } - /> - {/* } /> */} - } - /> - - {/* }> - } - > - } /> - - */} - }> - }> - } - /> - - }> - } /> - } - /> - } - /> - } - /> - } - /> - } - /> - } /> - - } /> - - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - - } /> diff --git a/src/components/ChatsPath/pages/ExpertChat/index.tsx b/src/components/ChatsPath/pages/ExpertChat/index.tsx index 447d6f2..dab1e68 100644 --- a/src/components/ChatsPath/pages/ExpertChat/index.tsx +++ b/src/components/ChatsPath/pages/ExpertChat/index.tsx @@ -20,14 +20,10 @@ import { usePaywall } from "@/hooks/paywall/usePaywall"; import { EPlacementKeys, IPaywallProduct } from "@/api/resources/Paywall"; import { useAuth } from "@/auth"; import { createSinglePayment } from "@/services/singlePayment"; -import Modal from "@/components/Modal"; -import Title from "@/components/Title"; -// import PaymentForm from "@/components/pages/SinglePaymentPage/PaymentForm"; -import { getPriceCentsToDollars } from "@/services/price"; import { IMessage } from "@/api/resources/ChatMessages"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; -import PaymentForm from "@/components/Payment/nmi/PaymentForm"; +import { usePayment } from "@/hooks/payment/nmi/usePayment"; const returnUrl = `${window.location.protocol}//${window.location.host }${routes.client.chatsExpert()}`; @@ -76,7 +72,18 @@ function ExpertChat() { const setCurrentProduct = (product: IPaywallProduct) => { dispatch(actions.payment.update({ activeProduct: product })); }; - const [isPaymentModalOpen, setIsPaymentModalOpen] = useState(false); + // const [isPaymentModalOpen, setIsPaymentModalOpen] = useState(false); + + + const { + error, + isPaymentSuccess, + showCreditCardForm, + } = usePayment({ + placementKey, + activeProduct: currentProduct!, + paymentFormType: "lightbox" + }); const isPayedFirstPurchase = useSelector( selectors.selectIsPayedFirstPurchase @@ -189,7 +196,8 @@ function ExpertChat() { setIsLoadingPayment(true); const isPaymentMethodExist = await api.getPaymentMethods({ token: tokenFromStore }); if (isPaymentMethodExist.status === "error") { - return setIsPaymentModalOpen(true); + // return setIsPaymentModalOpen(true); + return showCreditCardForm(); } // if (!isPayedFirstPurchase) { // return setIsPaymentModalOpen(true); @@ -262,19 +270,31 @@ function ExpertChat() { }; const onPaymentError = () => { - setIsPaymentModalOpen(false); + // setIsPaymentModalOpen(false); return setIsError(true); } const onPaymentSuccess = () => { - setIsPaymentModalOpen(false); + // setIsPaymentModalOpen(false); setIsLoadingPayment(false); return closeModals(); } + useEffect(() => { + if (error) { + onPaymentError(); + } + }, [error]) + + useEffect(() => { + if (isPaymentSuccess) { + onPaymentSuccess(); + } + }, [isPaymentSuccess]) + return (
- {!isLoading && + {/* {!isLoading && !!tokenFromStore.length && currentProduct && ( <> @@ -286,12 +306,6 @@ function ExpertChat() { {getPriceCentsToDollars(currentProduct.price || 0)}$ - {/* */} - )} + )} */} {isLoading && ( )} diff --git a/src/components/EmailMarketing/v1/pages/SecretDiscount/index.tsx b/src/components/EmailMarketing/v1/pages/SecretDiscount/index.tsx index 6ac9f81..4407c42 100644 --- a/src/components/EmailMarketing/v1/pages/SecretDiscount/index.tsx +++ b/src/components/EmailMarketing/v1/pages/SecretDiscount/index.tsx @@ -7,9 +7,7 @@ import Button from "../../components/Button"; import { usePaywall } from "@/hooks/paywall/usePaywall"; import { EPlacementKeys } from "@/api/resources/Paywall"; import { addCurrency, ELocalesPlacement } from "@/locales"; -import Modal from "@/components/Modal"; -import { useEffect, useState } from "react"; -import PaymentForm from "@/components/Payment/nmi/PaymentForm"; +import { useEffect } from "react"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { useDispatch } from "react-redux"; @@ -17,6 +15,7 @@ import { actions } from "@/store"; import { useTranslations } from "@/hooks/translations"; import Header from "@/components/pages/ABDesign/v1/components/Header"; import { useDynamicSize } from "@/hooks/useDynamicSize"; +import { usePayment } from "@/hooks/payment/nmi/usePayment"; const placementKey = EPlacementKeys["aura.placement.email.compatibility.discount"] @@ -42,27 +41,50 @@ function SecretDiscount() { })) }, [activeProduct]) - const [isPaymentModalOpen, setIsPaymentModalOpen] = useState(false); + // const [isPaymentModalOpen, setIsPaymentModalOpen] = useState(false); + + + const { + error, + isPaymentSuccess, + showCreditCardForm, + } = usePayment({ + placementKey, + activeProduct, + paymentFormType: "lightbox" + }); + + useEffect(() => { + if (error) { + onPaymentError(); + } + }, [error]) + + useEffect(() => { + if (isPaymentSuccess) { + onPaymentSuccess(); + } + }, [isPaymentSuccess]) const onPaymentSuccess = () => { return navigate(routes.client.paymentSuccess()) } - const onModalClosed = () => { - setIsPaymentModalOpen(false); - } + // const onModalClosed = () => { + // setIsPaymentModalOpen(false); + // } const onPaymentError = () => { return navigate(routes.client.paymentFail()) } - const openPaymentModal = () => { - setIsPaymentModalOpen(true); - }; + // const openPaymentModal = () => { + // setIsPaymentModalOpen(true); + // }; return ( -
- {activeProduct && ( + {/* {activeProduct && ( - )} + )} */} {translate("secret-discount.title")} - diff --git a/src/components/EmailMarketing/v1/pages/SpecialOffer/index.tsx b/src/components/EmailMarketing/v1/pages/SpecialOffer/index.tsx index 22f8cec..5be50d3 100644 --- a/src/components/EmailMarketing/v1/pages/SpecialOffer/index.tsx +++ b/src/components/EmailMarketing/v1/pages/SpecialOffer/index.tsx @@ -3,24 +3,23 @@ import styles from "./styles.module.scss"; import PricingSummary from "../../components/PricingSummary"; import Button from "../../components/Button"; import { useDispatch, useSelector } from "react-redux"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import { actions, selectors } from "@/store"; import { usePaywall } from "@/hooks/paywall/usePaywall"; import { EPlacementKeys } from "@/api/resources/Paywall"; -import Modal from "@/components/Modal"; -import PaymentForm from "@/components/Payment/nmi/PaymentForm"; import routes from "@/routes"; import { useNavigate } from "react-router-dom"; import BlurComponent from "@/components/BlurComponent"; import { useTranslations } from "@/hooks/translations"; import { addCurrency, ELocalesPlacement } from "@/locales"; +import { usePayment } from "@/hooks/payment/nmi/usePayment"; const placementKey = EPlacementKeys["aura.placement.email.marketing"]; function SpecialOffer() { const dispatch = useDispatch(); const navigate = useNavigate(); - const [isOpenPaymentModal, setIsOpenPaymentModal] = useState(false); + // const [isOpenPaymentModal, setIsOpenPaymentModal] = useState(false); const activeProduct = useSelector(selectors.selectActiveProduct); const { translate } = useTranslations(ELocalesPlacement.EmailMarketingCompatibilityV1); @@ -36,12 +35,42 @@ function SpecialOffer() { dispatch(actions.payment.update({ activeProduct: products[0] })); }, [dispatch, products]); + const { + error, + isPaymentSuccess, + isModalClosed, + showCreditCardForm, + } = usePayment({ + placementKey, + activeProduct: products[0], + paymentFormType: "lightbox" + }); + const openPaymentModal = () => { - setIsOpenPaymentModal(true); + // setIsOpenPaymentModal(true); + showCreditCardForm(); }; + useEffect(() => { + if (error) { + onPaymentError(); + } + }, [error]) + + useEffect(() => { + if (isPaymentSuccess) { + onPaymentSuccess(); + } + }, [isPaymentSuccess]) + + useEffect(() => { + if (isModalClosed) { + handleCloseModal() + } + }, [isModalClosed]) + const handleCloseModal = () => { - setIsOpenPaymentModal(false); + // setIsOpenPaymentModal(false); return navigate(routes.client.emailMarketingV1SaveOff()) }; @@ -55,7 +84,7 @@ function SpecialOffer() { return ( <> - {products[0] && ( + {/* {products[0] && ( - )} + )} */}
{translate("special-offer.title")} diff --git a/src/components/PalmistryV1/components/PaymentModalV1/PaymentForm/index.tsx b/src/components/PalmistryV1/components/PaymentModalV1/PaymentForm/index.tsx index c1486f3..3dd0a36 100644 --- a/src/components/PalmistryV1/components/PaymentModalV1/PaymentForm/index.tsx +++ b/src/components/PalmistryV1/components/PaymentModalV1/PaymentForm/index.tsx @@ -1,7 +1,7 @@ import { useTranslations } from '@/hooks/translations'; import { addCurrency, ELocalesPlacement } from '@/locales'; import styles from "./styles.module.scss"; -import { LegacyRef, useRef, useState } from 'react'; +import { LegacyRef, useEffect, useRef, useState } from 'react'; import { useSelector } from 'react-redux'; import { selectors } from '@/store'; import { EPlacementKeys, IPaywallProduct } from '@/api/resources/Paywall'; @@ -13,9 +13,9 @@ import metricService, { EGoals, EMetrics } from '@/services/metric/metricService import { useNavigate } from 'react-router-dom'; import routes from '@/routes'; import CreditCardIcon from '@/components/PaymentModalNew/PaymentCardModal/CreditCardIcon'; -import Modal from '@/components/Modal'; -import NMIPaymentForm from '@/components/Payment/nmi/PaymentForm'; +import { usePayment } from '@/hooks/payment/nmi/usePayment'; +const placementKey = EPlacementKeys['aura.placement.palmistry.redesign']; interface IPaymentFormProps { activeProduct: IPaywallProduct; @@ -28,16 +28,39 @@ function PaymentForm({ const { translate } = useTranslations(ELocalesPlacement.PalmistryV1); const ref = useRef<HTMLDivElement>(); const currency = useSelector(selectors.selectCurrency); - const [isPaymentSuccess, setIsPaymentSuccess] = useState(false); + // const [isPaymentSuccess, setIsPaymentSuccess] = useState(false); const [isPaymentError, setIsPaymentError] = useState(false); - const [isPaymentModalOpen, setIsPaymentModalOpen] = useState(false); + // const [isPaymentModalOpen, setIsPaymentModalOpen] = useState(false); + + + const { + error, + isPaymentSuccess, + showCreditCardForm, + } = usePayment({ + placementKey, + activeProduct, + paymentFormType: "lightbox" + }); + + useEffect(() => { + if (error) { + onPaymentError(); + } + }, [error]) + + useEffect(() => { + if (isPaymentSuccess) { + onPaymentSuccess(); + } + }, [isPaymentSuccess]) const onPaymentError = () => { setIsPaymentError(true); } const onPaymentSuccess = () => { - setIsPaymentSuccess(true); + // setIsPaymentSuccess(true); metricService.reachGoal(EGoals.PAYMENT_SUCCESS); metricService.reachGoal(EGoals.PAYMENT_SUCCESS_PALMISTRY, [ EMetrics.YANDEX, @@ -100,9 +123,9 @@ function PaymentForm({ )} > - <Modal containerClassName={styles["modal-content"]} open={isPaymentModalOpen} onClose={() => setIsPaymentModalOpen(false)}> - <NMIPaymentForm onPaymentError={onPaymentError} onPaymentSuccess={onPaymentSuccess} placementKey={EPlacementKeys['aura.placement.palmistry.redesign']} /> - </Modal> + {/* <Modal containerClassName={styles["modal-content"]} open={isPaymentModalOpen} onClose={() => setIsPaymentModalOpen(false)}> + <NMIPaymentForm onPaymentError={onPaymentError} onPaymentSuccess={onPaymentSuccess} placementKey={placementKey} /> + </Modal> */} <div className={styles.paymentModalPrice}> {translate( @@ -118,7 +141,8 @@ function PaymentForm({ </div> <div className={styles.paymentCreditCard} - onClick={() => setIsPaymentModalOpen(true)} + // onClick={() => setIsPaymentModalOpen(true)} + onClick={() => showCreditCardForm()} > <CreditCardIcon /> <div>Credit / Debit Card</div> diff --git a/src/components/PalmistryV1/images/SVG/Darkness/index.tsx b/src/components/PalmistryV1/images/SVG/Darkness/index.tsx new file mode 100644 index 0000000..3cf37ce --- /dev/null +++ b/src/components/PalmistryV1/images/SVG/Darkness/index.tsx @@ -0,0 +1,17 @@ +function DarknessSVG() { + return ( + <svg width="48" height="49" viewBox="0 0 48 49" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path fillRule="evenodd" clipRule="evenodd" d="M28.1969 0.865479C33.5795 1.81436 38.3436 4.5571 41.8496 8.45422C40.4797 10.7123 37.9981 12.221 35.1641 12.221C30.8485 12.221 27.3501 8.72258 27.3501 4.40705C27.3501 3.13218 27.6554 1.92861 28.1969 0.865479Z" fill="#62C3ED" /> + <circle cx="24" cy="24.5" r="24" fill="#62C3ED" /> + <circle cx="13.1163" cy="16.9651" r="4.74419" fill="#82DAFF" /> + <circle cx="40.4652" cy="32.0348" r="2.51163" fill="#82DAFF" /> + <circle cx="20.3714" cy="39.2906" r="1.39535" fill="#8BDCFF" /> + <path fillRule="evenodd" clipRule="evenodd" d="M28.1969 0.865479C33.5795 1.81436 38.3436 4.5571 41.8496 8.45422C40.4797 10.7123 37.9981 12.221 35.1641 12.221C30.8485 12.221 27.3501 8.72258 27.3501 4.40705C27.3501 3.13218 27.6554 1.92861 28.1969 0.865479Z" fill="#9AE1FF" /> + <circle cx="35.1636" cy="11.1048" r="0.55814" fill="#71D3FD" /> + <circle cx="30.4188" cy="2.45342" r="0.837209" fill="#71D3FD" /> + </svg> + + ); +} + +export default DarknessSVG; diff --git a/src/components/PalmistryV1/images/SVG/Light/index.tsx b/src/components/PalmistryV1/images/SVG/Light/index.tsx new file mode 100644 index 0000000..3958a9b --- /dev/null +++ b/src/components/PalmistryV1/images/SVG/Light/index.tsx @@ -0,0 +1,15 @@ +function LightSVG() { + return ( + <svg width="63" height="61" viewBox="0 0 63 61" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M42.0311 31.9256C42.0311 37.9779 37.1206 42.8847 31.0631 42.8847C25.0056 42.8847 20.0942 37.9779 20.0942 31.9256C20.0942 25.8726 25.0056 20.9658 31.0631 20.9658C37.1206 20.9658 42.0311 25.8726 42.0311 31.9256Z" fill="#62C3ED" /> + <mask id="mask0_1260_389" style={{maskType: "luminance"}} maskUnits="userSpaceOnUse" x="0" y="0" width="63" height="61"> + <path d="M0 0H62.2633V61H0V0Z" fill="white" /> + </mask> + <g mask="url(#mask0_1260_389)"> + <path d="M37.8053 17.2569C37.8782 17.2674 37.9871 17.2764 38.1118 17.2569C38.2485 17.2358 38.3949 17.184 38.7592 16.9166C39.0243 16.7214 39.1971 16.5952 39.4074 16.3721C39.6132 16.1528 39.7454 16.0206 39.8498 15.793C39.9256 15.6293 39.9549 15.4896 39.985 15.3514C40.009 15.244 40.0375 15.0817 40.0533 14.7039C40.0713 14.2901 40.0593 13.9701 40.0533 13.853C40.0405 13.5631 40.018 13.3482 39.985 13.0358C39.9542 12.7354 39.9482 12.6212 39.9166 12.4575C39.8881 12.3132 39.8663 12.2637 39.7814 11.9467C39.65 11.4623 39.656 11.4172 39.6785 11.4022C39.7619 11.3474 40.0698 11.6793 40.2231 11.8446C40.2876 11.9144 40.4679 12.1105 40.8367 12.6272C41.0485 12.9216 41.1521 13.0703 41.2445 13.2401C41.3895 13.506 41.4668 13.7208 41.5517 13.9544C41.6749 14.2946 41.7478 14.583 41.7898 14.7708C41.8123 14.8722 41.8822 15.1922 41.925 15.6218C41.9656 16.0161 41.922 15.9057 41.9596 16.7454C41.9731 17.0458 41.9851 17.2186 41.925 17.4597C41.9047 17.5408 41.8657 17.6497 41.7898 17.8668C41.7064 18.1003 41.6531 18.2521 41.5855 18.4113C41.4623 18.7035 41.3399 18.91 41.2107 19.1256C41.1198 19.2773 41.0545 19.3757 40.6654 19.9428C40.3913 20.3423 40.3815 20.3754 40.2906 20.4873C40.1029 20.7194 39.9166 20.8989 39.7799 21.0318C39.6335 21.1715 39.5208 21.2714 39.4044 21.3721C39.2376 21.5178 39.0438 21.6785 38.8253 21.8483L38.4843 22.0863C38.4437 22.0533 38.3859 22.0075 38.3145 21.9512C38.1523 21.8227 38.0449 21.7401 37.906 21.6447C37.8421 21.6011 37.7497 21.5403 37.6341 21.475C37.5875 21.4404 37.5432 21.4066 37.4981 21.3721L37.8053 17.2569ZM26.9777 20.2222C27.0333 20.2071 27.0881 20.1936 27.1437 20.1793C27.2669 20.1298 27.3728 20.096 27.4471 20.0719C27.6079 20.0216 27.7408 19.9901 27.9413 19.9443C28.0307 19.9232 28.1036 19.9067 28.1546 19.8962L28.1794 19.4816C28.1824 19.2044 28.1779 18.9528 28.1682 18.7313C28.1622 18.578 28.1546 18.4278 28.1351 18.2273C28.1171 18.0365 28.0916 17.7804 28.0277 17.489C27.9969 17.3493 27.9774 17.3207 27.8354 16.8566C27.6349 16.1994 27.5988 16.0859 27.5365 15.9222C27.4471 15.6856 27.3622 15.4625 27.2105 15.1846C27.1287 15.0329 27.0423 14.8955 26.9108 14.6859C26.7892 14.4899 26.7276 14.3915 26.6758 14.3246C26.524 14.1264 26.3806 14.0302 26.138 13.853C25.459 13.3573 25.5724 13.3948 25.2389 13.1792C24.8754 12.9457 24.5825 12.8007 24.4886 12.7549C24.3159 12.6715 24.0447 12.5483 23.7007 12.4319C23.4641 12.3516 23.2493 12.2787 22.9504 12.2254C22.7596 12.1908 22.5778 12.1818 22.2158 12.163C21.5834 12.1285 21.3168 12.1465 21.2214 12.154C20.9968 12.1705 20.5439 12.2043 20.5349 12.3042C20.5319 12.3305 20.5634 12.3636 21.0246 12.5641C21.3273 12.6955 21.3791 12.7091 21.5091 12.7759C21.6563 12.8533 21.7502 12.9201 22.0048 13.0839C22.2684 13.2536 22.4517 13.3693 22.6868 13.5405C22.7821 13.6104 23.0398 13.7996 23.3522 14.0715C23.6384 14.3201 23.7465 14.4433 23.8156 14.5282C23.9043 14.6386 23.9951 14.7483 24.0755 14.9105C24.1874 15.1336 24.21 15.3213 24.2528 15.6173C24.2963 15.9207 24.2888 16.134 24.2753 16.4622C24.2573 16.9136 24.2069 17.0608 24.1386 17.1795C24.0755 17.2899 24.0012 17.3688 23.9478 17.4191L26.9777 20.2222ZM19.4451 27.7135C19.4684 27.6609 19.4909 27.6091 19.5149 27.5587C19.5532 27.4303 19.5923 27.3282 19.6208 27.2553C19.6817 27.0991 19.7395 26.9751 19.8289 26.7896C19.8679 26.7063 19.9017 26.6394 19.9243 26.5928L19.6163 26.3149C19.4015 26.1392 19.2025 25.9875 19.0222 25.8568C18.8983 25.7674 18.7766 25.678 18.6069 25.5676C18.4454 25.464 18.2298 25.322 17.9617 25.1913C17.8325 25.129 17.798 25.126 17.3465 24.9472C16.7081 24.6949 16.5962 24.6528 16.428 24.598C16.1884 24.5206 15.9593 24.4478 15.6476 24.3922C15.4779 24.3629 15.3171 24.3434 15.0715 24.3148C14.8424 24.2885 14.7275 24.275 14.6426 24.2735C14.394 24.269 14.2288 24.3193 13.9381 24.3997C13.1285 24.6213 13.2269 24.5559 12.8498 24.6828C12.4405 24.821 12.1438 24.9592 12.0499 25.0043C11.8757 25.0869 11.612 25.2229 11.3056 25.4174C11.0953 25.5518 10.9038 25.675 10.6754 25.8756C10.5297 26.004 10.411 26.1392 10.1692 26.4096C9.74784 26.8828 9.59612 27.1036 9.54279 27.1809C9.41586 27.3665 9.16124 27.7413 9.2326 27.8096C9.25212 27.8291 9.29719 27.8246 9.74183 27.5895C10.0325 27.4363 10.0753 27.4025 10.2098 27.3424C10.3615 27.2756 10.4734 27.2448 10.7588 27.1479C11.0555 27.0465 11.2613 26.9767 11.5407 26.8993C11.6541 26.8685 11.9635 26.7851 12.3721 26.7108C12.7439 26.6417 12.9076 26.6349 13.0181 26.6334C13.1593 26.6319 13.3042 26.6304 13.48 26.6672C13.7256 26.7198 13.8833 26.8189 14.1424 26.9691C14.4076 27.1239 14.5683 27.2643 14.8184 27.4784C15.1609 27.7743 15.2443 27.905 15.2946 28.0334C15.3412 28.1506 15.3577 28.258 15.3637 28.3324L19.4451 27.7135ZM20.8954 38.8926C20.8684 38.8423 20.8428 38.7912 20.8166 38.7409C20.7407 38.6305 20.6836 38.5373 20.6453 38.4697C20.5604 38.324 20.5004 38.2023 20.4095 38.0161C20.3697 37.9342 20.3366 37.8659 20.3163 37.82L19.9047 37.8869C19.6336 37.9447 19.391 38.0056 19.1769 38.0656C19.0297 38.1055 18.8833 38.146 18.6917 38.2099C18.51 38.2692 18.2659 38.3511 17.9947 38.4787C17.8648 38.5403 17.8408 38.5651 17.4209 38.8077C16.8253 39.1502 16.7232 39.2095 16.5752 39.3079C16.3641 39.4476 16.1658 39.5798 15.9278 39.7901C15.7978 39.9028 15.6837 40.0177 15.5079 40.1912C15.3442 40.3534 15.2623 40.4353 15.2067 40.5007C15.0475 40.6929 14.9851 40.8537 14.8657 41.1301C14.5337 41.9022 14.5443 41.7835 14.4091 42.1568C14.2611 42.5631 14.1852 42.8816 14.162 42.9822C14.1184 43.17 14.0591 43.4614 14.0215 43.822C13.9967 44.0698 13.9727 44.2966 13.9877 44.5986C13.9967 44.7916 14.0275 44.9704 14.0899 45.3271C14.1973 45.952 14.2746 46.2081 14.3032 46.299C14.37 46.5146 14.5045 46.9465 14.6021 46.9344C14.6291 46.9314 14.6532 46.8924 14.7471 46.3989C14.8079 46.076 14.8079 46.0204 14.8454 45.8792C14.8883 45.7184 14.9333 45.6133 15.0355 45.3286C15.1414 45.0342 15.2142 44.8307 15.3291 44.564C15.375 44.4559 15.5034 44.1622 15.6987 43.7979C15.8767 43.4644 15.9721 43.3307 16.0412 43.2444C16.129 43.1332 16.2169 43.0198 16.3551 42.9049C16.5489 42.7464 16.7262 42.6833 17.0056 42.5767C17.2917 42.4662 17.5013 42.4279 17.825 42.3664C18.2696 42.283 18.4236 42.2995 18.5558 42.3401C18.6782 42.3769 18.7706 42.4309 18.8314 42.4723L20.8954 38.8926ZM29.8461 44.2426C29.7913 44.232 29.7342 44.2208 29.6793 44.2103C29.5464 44.1997 29.4367 44.1862 29.3609 44.1742C29.1941 44.1487 29.0597 44.1209 28.8584 44.0758C28.7698 44.057 28.6962 44.039 28.6459 44.027L28.4416 44.3898C28.3184 44.6369 28.214 44.866 28.1276 45.0703C28.0683 45.21 28.0082 45.3497 27.9383 45.5389C27.8715 45.7184 27.7836 45.9595 27.7153 46.251C27.6822 46.3914 27.6882 46.4252 27.6139 46.9044C27.5095 47.5826 27.4929 47.7005 27.4772 47.8763C27.4546 48.1272 27.4336 48.3653 27.4501 48.6822C27.4591 48.855 27.4757 49.0157 27.502 49.2613C27.5275 49.4904 27.5395 49.6045 27.5575 49.6879C27.6094 49.932 27.6942 50.0822 27.8369 50.3474C28.235 51.0879 28.1486 51.0061 28.3552 51.3441C28.582 51.7113 28.7825 51.9705 28.8486 52.0523C28.9673 52.2025 29.1596 52.4301 29.4172 52.6847C29.596 52.8605 29.7582 53.0197 30.0038 53.1947C30.1615 53.3081 30.3193 53.396 30.6385 53.5695C31.1935 53.8752 31.4421 53.9743 31.53 54.0089C31.7403 54.0908 32.1617 54.256 32.2135 54.1711C32.227 54.1471 32.2135 54.1058 31.8845 53.7242C31.6705 53.4764 31.6269 53.4418 31.5405 53.3247C31.4406 53.1902 31.3873 53.0896 31.2281 52.832C31.0628 52.5653 30.9494 52.3813 30.8127 52.1252C30.7556 52.0208 30.6069 51.7384 30.4432 51.3591C30.2945 51.0106 30.2494 50.8528 30.2239 50.7477C30.1916 50.6087 30.157 50.4705 30.154 50.2895C30.1495 50.0394 30.2126 49.8622 30.302 49.5768C30.3936 49.2853 30.4935 49.0961 30.649 48.8061C30.86 48.4073 30.9705 48.2969 31.0831 48.218C31.1875 48.1467 31.2889 48.1084 31.3588 48.0859L29.8461 44.2426ZM39.7897 40.7883C39.7469 40.8251 39.7033 40.8612 39.6605 40.898C39.5696 40.9964 39.4907 41.0722 39.4344 41.1256C39.3105 41.2405 39.2046 41.3269 39.0439 41.456C38.9725 41.5139 38.9132 41.5604 38.8726 41.5912L39.0288 41.9765C39.1468 42.2267 39.2602 42.4512 39.3653 42.6465C39.4389 42.7817 39.5103 42.9139 39.6139 43.0866C39.7138 43.2504 39.8468 43.4704 40.0315 43.7055C40.1209 43.8189 40.1502 43.8355 40.4792 44.1922C40.9456 44.6962 41.0275 44.7826 41.1551 44.905C41.3384 45.0793 41.5127 45.2438 41.7688 45.4285C41.9092 45.5299 42.0459 45.6163 42.2547 45.7485C42.4493 45.8717 42.5462 45.9347 42.622 45.9716C42.8458 46.0835 43.0156 46.1098 43.3115 46.1638C44.1385 46.3155 44.0205 46.3313 44.4149 46.3809C44.8437 46.4342 45.1712 46.4372 45.2756 46.4372C45.4679 46.4372 45.7653 46.4297 46.1258 46.3869C46.3729 46.3569 46.5998 46.3283 46.8912 46.2472C47.0774 46.1946 47.2457 46.1248 47.5792 45.9851C48.1643 45.741 48.3971 45.6103 48.4805 45.5622C48.675 45.4496 49.0686 45.2235 49.0325 45.1296C49.0235 45.104 48.9822 45.089 48.479 45.1071C48.15 45.1191 48.0959 45.1311 47.9502 45.1266C47.7835 45.1206 47.67 45.0995 47.3711 45.0642C47.0594 45.0267 46.8439 45.0004 46.5592 44.9478C46.4435 44.9268 46.1288 44.8675 45.7285 44.7593C45.3635 44.6594 45.2118 44.5956 45.1119 44.549C44.9842 44.4897 44.8527 44.4288 44.71 44.3184C44.5117 44.1652 44.4118 44.0075 44.2436 43.7589C44.0724 43.505 43.9875 43.3097 43.8568 43.0078C43.6765 42.5924 43.6585 42.4392 43.669 42.301C43.678 42.1748 43.7111 42.0719 43.7374 42.0021L39.7897 40.7883ZM43.2702 30.5728C43.2717 30.6292 43.2732 30.6863 43.2747 30.7426C43.2935 30.8748 43.3055 30.9837 43.3115 31.061C43.325 31.2293 43.325 31.366 43.3265 31.571C43.3265 31.6619 43.3265 31.7378 43.3265 31.7881L43.7254 31.906C43.995 31.9714 44.2406 32.0217 44.4599 32.0607C44.6101 32.0878 44.7588 32.1156 44.9601 32.1411C45.1494 32.1659 45.4055 32.1989 45.7045 32.2004C45.8472 32.2019 45.8802 32.1884 46.3639 32.1546C47.0489 32.105 47.1683 32.0945 47.3426 32.0712C47.5927 32.0367 47.8293 32.0044 48.135 31.918C48.3002 31.8715 48.4534 31.8181 48.6885 31.7378C48.9078 31.6634 49.016 31.6244 49.0933 31.5891C49.3202 31.4847 49.4464 31.3675 49.6747 31.1692C50.3086 30.6172 50.2478 30.7201 50.5324 30.4422C50.8404 30.1402 51.0477 29.8856 51.113 29.8052C51.2332 29.655 51.4119 29.4184 51.6027 29.1105C51.7342 28.8979 51.8528 28.7041 51.9707 28.4262C52.0466 28.2475 52.0954 28.0732 52.1953 27.7255C52.3696 27.1148 52.4116 26.852 52.4259 26.7581C52.459 26.535 52.5273 26.0874 52.4319 26.0558C52.4071 26.0468 52.3681 26.0708 52.0706 26.4757C51.8754 26.7401 51.8513 26.7896 51.7559 26.8993C51.6478 27.0262 51.5614 27.1021 51.3451 27.3131C51.122 27.5332 50.9673 27.6849 50.748 27.8757C50.6586 27.9531 50.416 28.1626 50.0825 28.4067C49.7768 28.6298 49.6326 28.7086 49.5342 28.756C49.4081 28.8191 49.2781 28.8829 49.1024 28.9257C48.8598 28.985 48.672 28.9648 48.3746 28.9407C48.0689 28.9152 47.8623 28.8604 47.5454 28.774C47.109 28.6568 46.976 28.575 46.8746 28.4811C46.7815 28.3947 46.7214 28.3053 46.6846 28.2415L43.2702 30.5728ZM29.3594 19.6401H29.801C30.0932 19.6378 30.489 19.6363 30.9599 19.6401C31.5285 19.6461 31.8222 19.6491 32.185 19.6746C32.5305 19.6987 32.9 19.7234 33.3784 19.8098C33.7149 19.8714 33.9988 19.9525 34.5711 20.1163C35.4762 20.3754 35.7624 20.5061 35.9336 20.5924C36.1852 20.7194 36.3828 20.8441 36.5127 20.9334L36.6156 20.3543L36.6839 19.435C36.7207 19.1744 36.7658 18.7996 36.7868 18.346C36.8146 17.706 36.8267 17.3808 36.7177 17.0533C36.6779 16.9309 36.6216 16.8047 36.0703 16.0326C35.7338 15.5609 35.5656 15.3258 35.4229 15.1471C34.6838 14.2248 34.3503 14.3216 33.7532 13.548C33.283 12.9366 32.8684 12.3996 32.7663 11.608C32.7483 11.4705 32.7092 11.0987 32.9698 10.0427C33.3274 8.59313 33.6428 8.30772 33.8561 7.38839C34.1077 6.30533 33.9665 5.4198 33.8561 4.73406C33.7397 4.00476 33.5181 2.61375 32.4937 1.3985C31.7891 0.562545 30.8691 0.00298797 30.7233 0.139685C30.6189 0.236575 30.969 0.632396 31.3024 1.60355C31.536 2.28703 31.6284 2.62577 31.6089 3.06741C31.5871 3.56463 31.3993 3.95444 31.0981 4.63267C30.9314 5.00971 30.7098 5.43182 29.5321 7.08345C29.267 7.45524 28.7127 8.22585 28.0668 9.26159C27.7761 9.72727 27.562 10.0945 27.4877 10.6226C27.4096 11.1716 27.517 11.6568 27.5898 11.9843C27.6139 12.0939 27.7092 12.5228 27.9654 13.0733C28.2658 13.7193 28.4566 13.8049 28.8171 14.5034C29.0267 14.909 29.261 15.3732 29.3624 15.9996C29.4322 16.4344 29.3902 16.653 29.3624 17.3613C29.3444 17.8119 29.3308 18.4639 29.3624 19.2668V19.6401H29.3594ZM20.435 25.467L20.7107 25.1215C20.8909 24.8909 21.1365 24.5814 21.4324 24.2172C21.793 23.7748 21.9777 23.5487 22.2233 23.2798C22.4569 23.0237 22.707 22.7518 23.0736 22.4333C23.3312 22.208 23.5723 22.0375 24.0567 21.692C24.8236 21.146 25.103 21.0048 25.2787 20.9244C25.5349 20.8065 25.7572 20.7306 25.9059 20.6848L25.5176 20.2447L24.8416 19.6183C24.6614 19.426 24.3947 19.1586 24.0537 18.8597C23.5708 18.4383 23.3237 18.2258 22.9992 18.1064C22.8783 18.062 22.7446 18.026 21.7975 17.9757C21.2199 17.9441 20.9292 17.9291 20.7016 17.9291C19.5194 17.9306 19.3865 18.2521 18.4101 18.2363C17.6372 18.2228 16.9597 18.2108 16.2763 17.7984C16.1583 17.7271 15.8429 17.525 15.1789 16.6635C14.2671 15.4806 14.2408 15.0562 13.6542 14.3171C12.9632 13.4451 12.1813 13.0035 11.5767 12.6625C10.933 12.2997 9.70653 11.605 8.11724 11.6478C7.02291 11.6763 6.01345 12.0481 6.02847 12.2464C6.03899 12.3891 6.56775 12.3606 7.53364 12.7061C8.21413 12.9479 8.53709 13.0884 8.86982 13.3783C9.24461 13.7058 9.43238 14.0941 9.77638 14.7528C9.96715 15.1193 10.1587 15.5549 10.7175 17.5055C10.8422 17.9441 11.0998 18.8582 11.5084 20.0081C11.6916 20.5256 11.8449 20.9214 12.2121 21.3097C12.5937 21.7131 13.0406 21.9316 13.341 22.0788C13.4424 22.1284 13.8367 22.3214 14.4263 22.4656C15.1188 22.6339 15.3051 22.537 16.0765 22.6917C16.5264 22.7811 17.0341 22.8885 17.5876 23.1995C17.9707 23.415 18.1164 23.5833 18.6527 24.0474C18.9937 24.3419 19.4954 24.7587 20.1436 25.2364L20.435 25.467ZM19.4616 36.4245L19.3632 35.9927C19.2941 35.7087 19.2055 35.3234 19.1056 34.8653C18.9847 34.3087 18.9223 34.0233 18.8652 33.6628C18.8119 33.3211 18.7541 32.956 18.7331 32.4716C18.718 32.1306 18.7346 31.8347 18.7676 31.2421C18.8179 30.3032 18.8833 29.9953 18.9298 29.8097C18.9967 29.5356 19.0755 29.3155 19.1319 29.1698L18.5453 29.1999L17.6342 29.3381C17.3706 29.3591 16.995 29.3989 16.5489 29.4808C15.9187 29.5957 15.5973 29.6565 15.3021 29.8345C15.1924 29.9021 15.0805 29.984 14.4504 30.6915C14.0666 31.1249 13.8728 31.3404 13.7316 31.5192C12.9955 32.443 13.1638 32.748 12.5419 33.5006C12.0499 34.0962 11.618 34.6182 10.8677 34.8946C10.7385 34.9426 10.384 35.0628 9.29569 35.044C7.80178 35.0185 7.45178 34.7744 6.50766 34.7714C5.39381 34.7684 4.56311 35.1034 3.91868 35.3617C3.23369 35.6374 1.92605 36.1639 0.966921 37.4317C0.307469 38.3052 -0.0320204 39.3245 0.133218 39.4371C0.250387 39.5175 0.559082 39.0879 1.43184 38.5471C2.04473 38.1678 2.35643 38.0018 2.7913 37.9229C3.28101 37.8336 3.70237 37.9297 4.43242 38.0717C4.83725 38.1505 5.29842 38.2722 7.17162 39.0518C7.59448 39.2276 8.46874 39.5949 9.62316 39.9937C10.1429 40.1724 10.5477 40.3001 11.081 40.2558C11.6346 40.2092 12.083 39.9967 12.3864 39.8525C12.4878 39.8044 12.8859 39.6159 13.3666 39.2456C13.9306 38.8092 13.9712 38.6027 14.5713 38.0979C14.9213 37.8035 15.3216 37.4715 15.9112 37.2334C16.3191 37.0682 16.5414 37.0614 17.2399 36.93C17.683 36.8481 18.3222 36.716 19.0996 36.5064L19.4616 36.4245ZM27.4712 43.9722L27.0716 43.7799C26.8064 43.6567 26.4497 43.4855 26.0283 43.2789C25.5176 43.0273 25.2555 42.8966 24.9378 42.7164C24.6373 42.5451 24.3159 42.3633 23.9223 42.0764C23.6466 41.8759 23.4251 41.6776 22.9812 41.2833C22.2789 40.6584 22.0776 40.4158 21.9612 40.2626C21.7885 40.0395 21.6668 39.8405 21.5879 39.7053L21.2439 40.1822L20.7835 40.9814C20.6363 41.1999 20.4335 41.5184 20.2194 41.9187C19.9153 42.4828 19.7635 42.7712 19.7185 43.1137C19.7027 43.2414 19.6982 43.3796 19.8589 44.3139C19.9573 44.884 20.0061 45.1694 20.0587 45.3917C20.3231 46.5431 20.6656 46.5995 20.8669 47.5563C21.0261 48.3119 21.1651 48.9736 20.9142 49.733C20.8714 49.8637 20.7445 50.2167 20.0512 51.0541C19.0996 52.204 18.6917 52.3257 18.0999 53.061C17.4036 53.9285 17.1475 54.787 16.9477 55.4532C16.7359 56.16 16.3326 57.5097 16.7277 59.0494C16.998 60.1084 17.5846 61.0105 17.7754 60.9527C17.9129 60.9106 17.7679 60.4021 17.8888 59.3829C17.9737 58.6656 18.039 58.3201 18.2479 57.9303C18.4829 57.4917 18.8209 57.2235 19.388 56.7421C19.7027 56.474 20.085 56.1915 21.8643 55.2136C22.2654 54.9936 23.0991 54.5399 24.1296 53.8865C24.5938 53.5935 24.9453 53.3555 25.2419 52.9108C25.5499 52.4496 25.6648 51.966 25.7407 51.64C25.7662 51.5303 25.8668 51.103 25.8759 50.4961C25.8864 49.7833 25.7512 49.6241 25.7301 48.8384C25.7181 48.3803 25.7076 47.8628 25.8894 47.2529C26.0148 46.8315 26.147 46.6513 26.4805 46.0264C26.6923 45.6291 26.9867 45.0477 27.3089 44.3094L27.4712 43.9722ZM37.9495 42.3416L37.5507 42.5331C37.2886 42.663 36.9326 42.835 36.5067 43.0348C35.9914 43.2759 35.7263 43.3991 35.3868 43.5358C35.0654 43.6657 34.7229 43.8024 34.2534 43.9301C33.9245 44.021 33.6315 44.0706 33.0457 44.1712C32.1181 44.3304 31.8042 44.3364 31.6119 44.3319C31.3295 44.3274 31.0981 44.2996 30.9419 44.2771L31.1011 44.8427L31.4391 45.6997C31.518 45.9505 31.6419 46.308 31.8207 46.7241C32.0723 47.3137 32.203 47.6127 32.4426 47.8598C32.532 47.9522 32.6379 48.0423 33.4686 48.4997C33.977 48.7776 34.2302 48.9173 34.4367 49.0157C35.5032 49.5257 35.7624 49.2936 36.6344 49.733C37.3239 50.0792 37.93 50.3842 38.3664 51.0526C38.4422 51.1683 38.6375 51.4868 38.8621 52.5518C39.1693 54.0119 39.0101 54.4077 39.2166 55.3286C39.4607 56.4131 39.9729 57.1492 40.3695 57.7208C40.7909 58.3276 41.5945 59.4835 43.0449 60.1355C44.0431 60.5831 45.1149 60.6875 45.1877 60.5013C45.2403 60.3691 44.7513 60.164 44.031 59.4347C43.5233 58.9217 43.292 58.6551 43.1192 58.2488C42.9232 57.7906 42.9247 57.3595 42.9007 56.6167C42.8871 56.2051 42.9037 55.7289 43.2477 53.7302C43.325 53.2796 43.4888 52.3452 43.6217 51.133C43.681 50.587 43.7133 50.1641 43.5511 49.6556C43.3829 49.1261 43.0764 48.7378 42.8676 48.4727C42.7978 48.3848 42.5266 48.0385 42.0579 47.654C41.5067 47.2018 41.2971 47.2078 40.6699 46.7362C40.3034 46.4613 39.8926 46.1443 39.5291 45.6238C39.2774 45.2633 39.2196 45.0477 38.938 44.3973C38.7592 43.9842 38.4873 43.3901 38.1103 42.6803L37.9495 42.3416ZM43.4234 33.0394L43.325 33.4713C43.2627 33.7567 43.1763 34.142 43.0674 34.5986C42.9352 35.1522 42.8661 35.4361 42.761 35.7861C42.6611 36.1181 42.5537 36.4703 42.3629 36.9165C42.2277 37.2304 42.085 37.4896 41.7988 38.0101C41.3444 38.8348 41.1536 39.0834 41.0305 39.2321C40.8502 39.4491 40.685 39.6129 40.5686 39.7195L41.1108 39.9471L41.9926 40.2183C42.2382 40.3136 42.5942 40.4398 43.0314 40.5607C43.6495 40.7297 43.9657 40.8146 44.3097 40.7823C44.4374 40.7703 44.5741 40.7433 45.4498 40.379C45.9846 40.1559 46.2528 40.044 46.4578 39.9464C47.5228 39.4311 47.5018 39.0849 48.3911 38.6755C49.0918 38.3526 49.707 38.0702 50.5039 38.1445C50.6406 38.1573 51.0131 38.2023 51.9858 38.6921C53.3197 39.3628 53.53 39.7331 54.3787 40.1454C55.3807 40.6306 56.2752 40.6899 56.9677 40.7357C57.7053 40.7853 59.1121 40.8777 60.5256 40.1514C61.499 39.6512 62.2478 38.8791 62.1487 38.7063C62.0766 38.5831 61.6124 38.8378 60.5924 38.9444C59.8744 39.0203 59.5214 39.0353 59.0955 38.9181C58.6148 38.7852 58.2784 38.5163 57.6827 38.0717C57.3523 37.8246 56.9902 37.5151 55.6398 36.0002C55.3356 35.6599 54.7077 34.9487 53.841 34.0887C53.4504 33.7019 53.1409 33.4112 52.6422 33.2212C52.1225 33.0229 51.6268 33.0206 51.2918 33.0176C51.1784 33.0176 50.739 33.0131 50.1449 33.1393C49.4479 33.288 49.3217 33.4562 48.5608 33.6508C48.1169 33.7642 47.6122 33.8904 46.9775 33.8491C46.5382 33.8205 46.3346 33.7311 45.6496 33.5456C45.2148 33.4277 44.5801 33.27 43.7899 33.1213L43.4234 33.0394ZM39.4044 22.7278L39.68 23.0725C39.8648 23.2986 40.1134 23.6073 40.4018 23.9776C40.7518 24.4252 40.9321 24.6558 41.1409 24.9562C41.3369 25.2409 41.5487 25.5443 41.7778 25.9725C41.9385 26.2729 42.0534 26.547 42.281 27.0946C42.643 27.9621 42.7189 28.2685 42.758 28.4555C42.8158 28.7327 42.8413 28.9633 42.8533 29.121L43.3701 28.8393L44.1309 28.3203C44.3585 28.1866 44.6785 27.9884 45.0465 27.721C45.5648 27.3439 45.8284 27.1509 46.0162 26.861C46.086 26.7521 46.1514 26.6304 46.412 25.7178C46.5712 25.162 46.6501 24.8834 46.7011 24.6603C46.961 23.5089 46.6786 23.3076 46.9122 22.359C47.097 21.6087 47.2592 20.953 47.8143 20.3769C47.9096 20.277 48.1778 20.0156 49.167 19.5605C50.5234 18.9371 50.9448 19.0039 51.7965 18.5976C52.8014 18.1184 53.4046 17.4552 53.874 16.9429C54.3712 16.3969 55.3213 15.3574 55.6338 13.7996C55.8493 12.7263 55.7127 11.6598 55.5144 11.6298C55.3732 11.6095 55.2823 12.13 54.7295 12.9945C54.3412 13.6029 54.1324 13.8868 53.7756 14.1459C53.3715 14.4388 52.9517 14.5342 52.2314 14.7235C51.8318 14.8271 51.3631 14.918 49.3367 15.0269C48.8793 15.0517 47.9322 15.0998 46.7184 15.241C46.1739 15.3048 45.7525 15.3657 45.2921 15.6368C44.8144 15.9192 44.5012 16.3045 44.2902 16.5651C44.2203 16.653 43.9432 16.994 43.672 17.537C43.3536 18.1747 43.4069 18.3775 43.0839 19.0933C42.8962 19.5109 42.6806 19.9826 42.2517 20.4527C41.9551 20.7787 41.7583 20.8816 41.1867 21.3007C40.8232 21.5673 40.3049 21.9647 39.6965 22.4897L39.4044 22.7278Z" fill="#9AE1FF" /> + </g> + </svg> + ); +} + +export default LightSVG; diff --git a/src/components/PalmistryV1/pages/ElementResonates/index.tsx b/src/components/PalmistryV1/pages/ElementResonates/index.tsx index 3f3ee23..ad677de 100644 --- a/src/components/PalmistryV1/pages/ElementResonates/index.tsx +++ b/src/components/PalmistryV1/pages/ElementResonates/index.tsx @@ -18,6 +18,8 @@ import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { IAnswersSessionPalmistry } from "@/api/resources/Session"; import { useSession } from "@/hooks/session/useSession"; import { ESourceAuthorization } from "@/api/resources/User"; +import DarknessSVG from "../../images/SVG/Darkness"; +import LightSVG from "../../images/SVG/Light"; function ElementResonates() { const { translate } = useTranslations(ELocalesPlacement.PalmistryV1); @@ -35,6 +37,11 @@ function ElementResonates() { Icon: JSX.Element; }[] = useMemo( () => [ + { + id: "air", + title: translate("/element-resonates.answer3"), + Icon: <AirSVG />, + }, { id: "water", title: translate("/element-resonates.answer1"), @@ -45,16 +52,21 @@ function ElementResonates() { title: translate("/element-resonates.answer2"), Icon: <FireSVG />, }, - { - id: "air", - title: translate("/element-resonates.answer3"), - Icon: <AirSVG />, - }, { id: "earth", title: translate("/element-resonates.answer4"), Icon: <EarthSVG />, }, + { + id: "light", + title: translate("/element-resonates.answer5"), + Icon: <LightSVG />, + }, + { + id: "darkness", + title: translate("/element-resonates.answer6"), + Icon: <DarknessSVG />, + }, ], [translate] ); diff --git a/src/components/PalmistryV1/pages/FavoriteColor/index.tsx b/src/components/PalmistryV1/pages/FavoriteColor/index.tsx index 07fdbaa..7194b9b 100644 --- a/src/components/PalmistryV1/pages/FavoriteColor/index.tsx +++ b/src/components/PalmistryV1/pages/FavoriteColor/index.tsx @@ -46,16 +46,6 @@ function FavoriteColor() { title: translate("/favorite-color.answer2"), color: "#20C63B", }, - { - id: "orange", - title: translate("/favorite-color.answer3"), - color: "#EFA006", - }, - { - id: "violet", - title: translate("/favorite-color.answer4"), - color: "#7B29E4", - }, { id: "red", title: translate("/favorite-color.answer5"), @@ -66,6 +56,21 @@ function FavoriteColor() { title: translate("/favorite-color.answer6"), color: "#E4DD29", }, + { + id: "violet", + title: translate("/favorite-color.answer4"), + color: "#7B29E4", + }, + // { + // id: "orange", + // title: translate("/favorite-color.answer3"), + // color: "#EFA006", + // }, + { + id: "turquoise", + title: translate("/favorite-color.answer7"), + color: "#00C6C6", + }, ], [translate] ); diff --git a/src/components/PalmistryV1/pages/FindHappiness/index.tsx b/src/components/PalmistryV1/pages/FindHappiness/index.tsx index c705664..a3902a0 100644 --- a/src/components/PalmistryV1/pages/FindHappiness/index.tsx +++ b/src/components/PalmistryV1/pages/FindHappiness/index.tsx @@ -8,7 +8,7 @@ import { ELocalesPlacement } from "@/locales"; import { useDispatch } from "react-redux"; import { useEffect } from "react"; import { actions } from "@/store"; -import StarSVG from "../../images/SVG/Star"; +// import StarSVG from "../../images/SVG/Star"; import { usePreloadImages } from "@/hooks/preload/images"; function FindHappiness() { @@ -32,7 +32,7 @@ function FindHappiness() { return ( <> - <div className={styles["blocks-container"]}> + {/* <div className={styles["blocks-container"]}> <div className={styles.block}> <img src={`${palmistryV1Prefix}/darts.png`} alt="darts" /> <ol> @@ -49,7 +49,7 @@ function FindHappiness() { <li>{translate("/find-your-happiness.point4")}</li> </ol> </div> - </div> + </div> */} <img className={styles.image} src={`${palmistryV1Prefix}/hand-with-lines.png`} @@ -58,12 +58,25 @@ function FindHappiness() { <Title variant="h2" className={styles.title}> {translate("/find-your-happiness.title")} -
- +
+
    +
  • + {translate("/find-your-happiness.advantage1")} +
  • +
  • + {translate("/find-your-happiness.advantage2")} +
  • +
  • + {translate("/find-your-happiness.advantage3")} +
  • +
-

+

+ +
+

{translate("/find-your-happiness.text")}

diff --git a/src/components/PalmistryV1/pages/FindHappiness/styles.module.scss b/src/components/PalmistryV1/pages/FindHappiness/styles.module.scss index 557a4e5..e3e7350 100644 --- a/src/components/PalmistryV1/pages/FindHappiness/styles.module.scss +++ b/src/components/PalmistryV1/pages/FindHappiness/styles.module.scss @@ -55,3 +55,23 @@ -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); } + +.advantages { + width: 100%; + text-align: center; + margin: 16px 0; + display: flex; + flex-direction: column; + gap: 8px; +} + +.list { + list-style: disc; + padding-left: 20px; + margin: 0; + text-align: left; +} + +.list li { + margin-bottom: 8px; +} \ No newline at end of file diff --git a/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx b/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx index 38aa46d..5c65287 100644 --- a/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx +++ b/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx @@ -4,7 +4,7 @@ import { useDispatch, useSelector } from "react-redux"; import { actions, selectors } from "@/store"; import { Gender } from "@/data"; import PrivacyPolicy from "@/components/pages/ABDesign/v1/components/PrivacyPolicy"; -import Toast from "@/components/pages/ABDesign/v1/components/Toast"; +// import Toast from "@/components/pages/ABDesign/v1/components/Toast"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useCallback, useEffect, useState } from "react"; @@ -28,7 +28,6 @@ function GenderPalmistry() { const { checked: privacyPolicyChecked } = useSelector( selectors.selectPrivacyPolicy ); - console.log(privacyPolicyChecked); const { gender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); @@ -84,7 +83,9 @@ function GenderPalmistry() { {translate("/gender.title")} -

{translate("/gender.description")}

+

{translate("/gender.description", { + br:
, + })}

{/* */}
@@ -98,11 +99,11 @@ function GenderPalmistry() { ))}
- {gender && !privacyPolicyChecked && ( + {/* {gender && !privacyPolicyChecked && ( {translate("/gender.toast", undefined, ELocalesPlacement.V1)} - )} + )} */} ); } diff --git a/src/components/PalmistryV1/pages/GenderPalmistry/styles.module.scss b/src/components/PalmistryV1/pages/GenderPalmistry/styles.module.scss index 92280b1..0922519 100644 --- a/src/components/PalmistryV1/pages/GenderPalmistry/styles.module.scss +++ b/src/components/PalmistryV1/pages/GenderPalmistry/styles.module.scss @@ -14,6 +14,10 @@ max-width: 302px; } +.leftAlign { + text-align: left; +} + .privacy-policy { max-width: 316px; margin-top: 26px; diff --git a/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx b/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx index 30026c0..4e291a3 100644 --- a/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx +++ b/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx @@ -49,6 +49,10 @@ function HeadOrHeart() { id: "both", title: translate("/head-or-heart.answer3"), }, + { + id: "depends", + title: translate("/head-or-heart.answer4"), + }, ], [translate] ); diff --git a/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx b/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx index 645bcc0..7e15a8a 100644 --- a/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx +++ b/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx @@ -1,6 +1,6 @@ -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; +// import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import styles from "./styles.module.scss"; -import { DotLottieReact } from "@lottiefiles/dotlottie-react"; +// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; import Title from "@/components/Title"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; @@ -11,20 +11,22 @@ import Button from "../../components/Button"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; -const animations = { - both: ELottieKeys.scalesNeutralPalmistry, - heart: ELottieKeys.scalesHeartPalmistry, - head: ELottieKeys.scalesHeadPalmistry, -}; +// const animations = { +// both: ELottieKeys.scalesNeutralPalmistry, +// heart: ELottieKeys.scalesHeartPalmistry, +// head: ELottieKeys.scalesHeadPalmistry, +// depends: ELottieKeys.scalesNeutralPalmistry, +// }; function HeadOrHeartResult() { const navigate = useNavigate(); const { translate } = useTranslations(ELocalesPlacement.V1); const { headOrHeart } = useSelector(selectors.selectPalmistryV1Answers); + const { gender } = useSelector(selectors.selectQuestionnaire); - const { animationData } = useLottie({ - loadKey: animations[headOrHeart as keyof typeof animations], - }); + // const { animationData } = useLottie({ + // loadKey: animations[headOrHeart as keyof typeof animations], + // }); const birthdate = useSelector(selectors.selectBirthdate); const zodiacSign = getZodiacSignByDate(birthdate); @@ -40,7 +42,7 @@ function HeadOrHeartResult() { return (
-
+ {/*
{animationData && ( )} -
+
*/} {headOrHeart === "both" && translate("/both.title", { @@ -61,6 +63,7 @@ function HeadOrHeartResult() { {translate(`zodiac_signs.${zodiacSign?.toLowerCase()}`)} </b> ), + gender: translate(gender?.toLowerCase()).toLowerCase() })} {headOrHeart === "head" && translate("/with-head.title", { @@ -69,6 +72,7 @@ function HeadOrHeartResult() { {translate(`zodiac_signs.${zodiacSign?.toLowerCase()}`)} </b> ), + gender: translate(gender?.toLowerCase()).toLowerCase() })} {headOrHeart === "heart" && translate("/with-heart.title", { @@ -77,7 +81,18 @@ function HeadOrHeartResult() { {translate(`zodiac_signs.${zodiacSign?.toLowerCase()}`)} </b> ), + gender: translate(gender?.toLowerCase()).toLowerCase() })} + {headOrHeart === "depends" && + translate("/depends.title", { + zodiacSign: ( + <b style={{ color: "#224e90" }}> + {translate(`zodiac_signs.${zodiacSign?.toLowerCase()}`)} + </b> + ), + gender: translate(gender?.toLowerCase()).toLowerCase() + }) + }