profinansy-ui-lib 3.8.43 → 3.8.44
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/dist/components/uikit/Dropdown/Dropdown.d.ts +1 -1
- package/dist/components/uikit/FilterButton/components/Drop/Drop.d.ts +1 -1
- package/dist/components/uikit/Hint/Hint.d.ts +1 -1
- package/dist/components/uikit/Popup/components/PopupDesktop.d.ts +1 -1
- package/dist/components/uikit/Tooltip/Tooltip.d.ts +1 -1
- package/dist/profinansy-ui-lib.cjs.js +1 -1
- package/dist/profinansy-ui-lib.cjs.js.map +1 -1
- package/dist/profinansy-ui-lib.es.js +1 -0
- package/dist/profinansy-ui-lib.es.js.map +1 -1
- package/dist/urls/constant.d.ts +3 -3
- package/package.json +1 -1
- package/dist/Icons.stories.d.ts +0 -5
- package/dist/components/blocks/Comment/Comment.stories.d.ts +0 -7
- package/dist/components/blocks/CompanyInfo/CompanyInfo.stories.d.ts +0 -7
- package/dist/components/blocks/Cookies/Cookies.stories.d.ts +0 -7
- package/dist/components/blocks/Favourite/Favourite.stories.d.ts +0 -7
- package/dist/components/blocks/Like/Like.stories.d.ts +0 -7
- package/dist/components/blocks/Notification/Notification.stories.d.ts +0 -7
- package/dist/components/blocks/ShareList/ShareList.stories.d.ts +0 -7
- package/dist/components/blocks/Views/Views.stories.d.ts +0 -7
- package/dist/components/blocks/footer/Footer.stories.d.ts +0 -16
- package/dist/components/blocks/header/Header.stories.d.ts +0 -75
- package/dist/components/blocks/headerWelcome/HeaderWelcome.stories.d.ts +0 -7
- package/dist/components/blocks/sideMenu/SideMenu.stories.d.ts +0 -6
- package/dist/components/layouts/LayoutSideMenu/LayoutSideMenu.stories.d.ts +0 -12
- package/dist/components/modals/SuccessModal/SuccessModal.stories.d.ts +0 -6
- package/dist/components/uikit/Alert/Alert.stories.d.ts +0 -13
- package/dist/components/uikit/ArrowButton/ArrowButton.stories.d.ts +0 -7
- package/dist/components/uikit/Avatar/Avatar.stories.d.ts +0 -13
- package/dist/components/uikit/AvatarCompany/AvatarCompany.stories.d.ts +0 -7
- package/dist/components/uikit/Bubbles/Bubbles.stories.d.ts +0 -13
- package/dist/components/uikit/Button/Button.stories.d.ts +0 -14
- package/dist/components/uikit/ButtonPaging/ButtonPaging.stories.d.ts +0 -13
- package/dist/components/uikit/Card/Card.stories.d.ts +0 -8
- package/dist/components/uikit/Checkbox/Checkbox.stories.d.ts +0 -13
- package/dist/components/uikit/ControlButton/ControlButton.stories.d.ts +0 -8
- package/dist/components/uikit/Counter/Counter.stories.d.ts +0 -13
- package/dist/components/uikit/Datepicker/Datepicker.stories.d.ts +0 -7
- package/dist/components/uikit/Dropdown/Dropdown.stories.d.ts +0 -8
- package/dist/components/uikit/ErrorText/ErrorText.stories.d.ts +0 -7
- package/dist/components/uikit/FieldRow/FieldRow.stories.d.ts +0 -7
- package/dist/components/uikit/FilterButton/FilterButton.stories.d.ts +0 -14
- package/dist/components/uikit/HiddenText/HiddenText.stories.d.ts +0 -7
- package/dist/components/uikit/Hint/Hint.stories.d.ts +0 -7
- package/dist/components/uikit/Input/Input.stories.d.ts +0 -8
- package/dist/components/uikit/InputNumber/InputNumber.stories.d.ts +0 -8
- package/dist/components/uikit/Loader/Loader.stories.d.ts +0 -7
- package/dist/components/uikit/Modal/Modal.stories.d.ts +0 -13
- package/dist/components/uikit/ModalMobile/ModalMobile.stories.d.ts +0 -6
- package/dist/components/uikit/PageTitle/PageTitle.stories.d.ts +0 -7
- package/dist/components/uikit/PasswordInput/PasswordInput.stories.d.ts +0 -6
- package/dist/components/uikit/Popup/Popup.stories.d.ts +0 -7
- package/dist/components/uikit/Portal/Portal.stories.d.ts +0 -7
- package/dist/components/uikit/Radio/Radio.stories.d.ts +0 -13
- package/dist/components/uikit/SegmentControl/SegmentControl.stories.d.ts +0 -13
- package/dist/components/uikit/Select/Select.stories.d.ts +0 -8
- package/dist/components/uikit/SideModal/SideModal.stories.d.ts +0 -13
- package/dist/components/uikit/Skeleton/Skeleton.stories.d.ts +0 -13
- package/dist/components/uikit/SortingButton/SortingButton.stories.d.ts +0 -14
- package/dist/components/uikit/Spinner/Spinner.stories.d.ts +0 -7
- package/dist/components/uikit/SwiperButton/SwiperButton.stories.d.ts +0 -13
- package/dist/components/uikit/Switch/Switched.stories.d.ts +0 -13
- package/dist/components/uikit/Table/Table.stories.d.ts +0 -13
- package/dist/components/uikit/Tabs/Tabs.stories.d.ts +0 -13
- package/dist/components/uikit/TextButton/TextButton.stories.d.ts +0 -7
- package/dist/components/uikit/TextButtonLink/TextButtonLink.stories.d.ts +0 -7
- package/dist/components/uikit/Textarea/Textarea.stories.d.ts +0 -8
- package/dist/components/uikit/Textarea/Text/320/260reaAutoSize.stories.d.ts +0 -7
- package/dist/components/uikit/Tooltip/Tooltip.stories.d.ts +0 -7
- package/dist/components/uikit/Typography/Typography.stories.d.ts +0 -14
- package/dist/components/uikit/WidgetTitle/WidgetTitle.stories.d.ts +0 -7
- package/dist/constants/animation/animations.stories.d.ts +0 -5
- package/dist/styles/Styled.stories.d.ts +0 -6
- package/dist/theme/Theme.stories.d.ts +0 -5
- package/dist/theme/shadows.stories.d.ts +0 -5
|
@@ -43,7 +43,7 @@ export declare function useDrop({ placement, onOpenList }: {
|
|
|
43
43
|
};
|
|
44
44
|
getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
|
|
45
45
|
getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
|
|
46
|
-
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "
|
|
46
|
+
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "active" | "selected"> & {
|
|
47
47
|
active?: boolean;
|
|
48
48
|
selected?: boolean;
|
|
49
49
|
}) => Record<string, unknown>;
|
|
@@ -42,7 +42,7 @@ export declare function useDrop({ placement }: {
|
|
|
42
42
|
};
|
|
43
43
|
getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
|
|
44
44
|
getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
|
|
45
|
-
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "
|
|
45
|
+
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "active" | "selected"> & {
|
|
46
46
|
active?: boolean;
|
|
47
47
|
selected?: boolean;
|
|
48
48
|
}) => Record<string, unknown>;
|
|
@@ -44,7 +44,7 @@ export declare function useHint({ placement, isClickMobile }?: HintOptions): {
|
|
|
44
44
|
};
|
|
45
45
|
getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
|
|
46
46
|
getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
|
|
47
|
-
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "
|
|
47
|
+
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "active" | "selected"> & {
|
|
48
48
|
active?: boolean;
|
|
49
49
|
selected?: boolean;
|
|
50
50
|
}) => Record<string, unknown>;
|
|
@@ -47,7 +47,7 @@ export declare function usePopup({ placement, isHover }: {
|
|
|
47
47
|
};
|
|
48
48
|
getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
|
|
49
49
|
getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
|
|
50
|
-
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "
|
|
50
|
+
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "active" | "selected"> & {
|
|
51
51
|
active?: boolean;
|
|
52
52
|
selected?: boolean;
|
|
53
53
|
}) => Record<string, unknown>;
|
|
@@ -45,7 +45,7 @@ export declare function useTooltip({ placement, isHover, showArrow, onOpenToolti
|
|
|
45
45
|
};
|
|
46
46
|
getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
|
|
47
47
|
getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
|
|
48
|
-
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "
|
|
48
|
+
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "active" | "selected"> & {
|
|
49
49
|
active?: boolean;
|
|
50
50
|
selected?: boolean;
|
|
51
51
|
}) => Record<string, unknown>;
|
|
@@ -2514,7 +2514,7 @@ Check the top-level render call using <`+q+">.")}return G}}function Q2(M,G){{if(
|
|
|
2514
2514
|
min-height: ${e=>e.$logoSize?`${e.$logoSize}px`:"28px"};
|
|
2515
2515
|
border-radius: 50%;
|
|
2516
2516
|
background: ${e=>e.theme.icons.secondary};
|
|
2517
|
-
`;let Go=null;const a2=(e,t)=>{if(!e||!t)return"";Go===null&&ov();const n=/(.+)\/(.+)\.(.+)/,[,r,o,i]=n.exec(e);return Go?`${r}/${o}-${t}W.webp`:`${r}/${o}-${t}.${i}`};function ov(){if(!zr)return!0;const e=document.createElement("canvas");if(e.getContext&&e.getContext("2d")){Go=e.toDataURL("image/webp").indexOf("data:image/webp")==0;return}Go=!1}const s2=({ticker:e,logo:t,logoSize:n=28,compressionImage:r})=>{const o=i=>i&&i.includes("https://files.profinansy.ru")?a2(i,r||"_"):i;if(Array.isArray(t)){const i=o(t[0]),a=o(t[1]);return s.jsxs(nv,{$logoSize:n,children:[i?s.jsx(oa,{loading:"lazy",src:i,$logoSize:n/1.5,alt:"logo"}):null,a?s.jsx(oa,{loading:"lazy",src:a,$logoSize:n/1.5,alt:"logo"}):null]})}if(t){const i=o(t);return s.jsx(oa,{loading:"lazy",src:i,$logoSize:n,alt:"logo"})}return s.jsx(rv,{$logoSize:n,children:s.jsx(O,{tag:"span",variant:"tag-Medium10",colorName:"contrastThemed",children:e?e.slice(0,4):""})})},iv=e=>{switch(e){case"USD":return"$";case"JPY":return"¥";case"EUR":return"€";case"RUB":return"₽";case"CHF":return"₣";case"GBP":return"£";case"GBX":return"P£";case"HKD":return"HK$";case"CNY":return"¥";case"TRY":return"₺";case"PCT":return"%";case"шт":return"шт.";default:return""}},av=(e,t=2)=>e===0||!e?0:Number(e.toFixed(t)),Tr=(e,t=!1,n=2)=>{if(isNaN(e)||Math.abs(e)===1/0||e===null)return"-";if(Math.abs(e)<1e-6)return"0";const r=t?av(e,n):e,o=String(r).split(".");let i=Number(o[0]).toLocaleString("ru-RU");return o[1]&&(i+=","+o[1]),i},sv=e=>wt("/search/last","GET",e),lv=e=>wt("/search/last","DELETE",e),cv=e=>wt("/search/top","GET",e),uv=(e,t)=>wt("/search/top","POST",e,t),Ql={ru:{stocks:"Акции",etfs:"ETF",bonds:"Облигации",crypto:"Криптовалюта",metals:"Металлы",index:"Индекс",currency:"Валюта"},en:{stocks:"Stocks",etfs:"ETF",bonds:"Bonds",crypto:"Crypto",metals:"Metals",index:"Index",currency:"Currency"}},dv=e=>d.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},d.createElement("path",{d:"M5.00047 18.24H5C4.30931 18.24 3.75 17.6809 3.75 17V7C3.75 6.31421 4.31421 5.75 5 5.75H18.7252C19.2636 5.75 19.6266 6.30054 19.4145 6.79544L17.5639 11.1137C17.3213 11.6797 17.3213 12.3203 17.5639 12.8863L19.4139 17.2031C19.6261 17.6982 19.2627 18.2489 18.7241 18.2486L5.00047 18.24Z",stroke:"#AAAABA",strokeWidth:1.5})),fv=e=>wt("/user/fav_list?full=1","GET",e),pv=(e,t)=>wt("/user/instrument","POST",e,t),hv=(e,t)=>wt("/user/instrument","DELETE",e,t),mv=(e,t)=>wt("/user/fav_list","POST",e,t),gv=(e,t,n)=>e.reduce((r,o)=>(!o.instruments?.includes(n)&&t.includes(o.id)&&r.push(o),r),[]),Cv=(e,t,n)=>e.reduce((r,o)=>(o.instruments?.includes(n)&&!t.includes(o.id)&&r.push(o),r),[]),r6=m.createContext({groups:[],allInstruments:[],selectedGroups:[],instrumentId:null,loader:!1,handleClose:()=>null,handleOpen:()=>null,onSave:()=>null,onCheckboxClick:()=>null,submitNewList:()=>null}),vv=({children:e})=>{const[t,n]=m.useState(null),[r,o]=m.useState([]),[i,a]=m.useState([]),[l,c]=m.useState([]),[u,f]=m.useState(!1),{user:{token:p}}=Ce();m.useEffect(()=>{const w=[];r.forEach(E=>{E.instruments?.includes(t)&&w.push(E.id)}),a(w)},[r,t]);const C=async()=>{if(p){const w=await fv({token:p});w.ok&&(c([...new Set(w.data.flatMap(E=>E.instruments))]),o(w.data))}};m.useEffect(()=>{C()},[p]);const g=w=>{if(i.includes(w)){a(I=>I.filter(k=>k!==w));return}a(I=>[...I,w])},v=async()=>{const w=gv(r,i,t),E=Cv(r,i,t);(w.length||E.length)&&(f(!0),await Promise.all(w.map(I=>pv({token:p},{instrument_id:t,user_fav_list_id:I.id}))),await Promise.all(E.map(I=>hv({token:p},{instrument_id:t,user_fav_list_id:I.id}))),f(!1),nt.publish(qe.refreshFavourite),x(),C())},b=async w=>{await mv({token:p},{name:w,sort_num:25e3}),await C()},x=()=>{n(null)},y=w=>{n(w)};return s.jsx(r6.Provider,{value:{loader:u,allInstruments:l,selectedGroups:i,instrumentId:t,groups:r,handleClose:x,handleOpen:y,onSave:v,onCheckboxClick:g,submitNewList:b},children:e})},Ei=()=>{const e=m.useContext(r6);if(!e)throw new Error("useFavourite must be used within a FavouriteProvider");return e},Yo=(e="",t="")=>{const n=new RegExp(`(${t})`,"gi");return e.replace(n,'<span class="highlight">$1</span>')},o6=({item:e,onClose:t,href:n,isLast:r,isHovered:o,searchText:i="",refItem:a})=>{const{id:l,logo:c,type:u,profit:f,isPositiveChange:p,priceChange:C,currency:g,description:v,price:b,market:x,ticker:y,flag:w}=e,{locale:E}=ce(),{LinkWrapper:I,user:{token:k}}=Ce(),{allInstruments:S,handleOpen:L}=Ei(),$=async()=>{await uv({token:k},{instrument_id:l}),t&&t()};return s.jsx(OC,{onClick:$,children:s.jsxs(I,{href:n,ref:a,children:[s.jsxs(n6,{$isHovered:o,children:[s.jsx(VC,{$isActive:S.includes(l),onClick:D=>{D.stopPropagation(),D.preventDefault(),L(l)},children:s.jsx(dv,{})}),s.jsxs(ZC,{children:[s.jsx(s2,{ticker:y,logo:c}),s.jsxs(WC,{children:[s.jsxs(QC,{children:[s.jsx(O,{variant:"caption-SemiBold",tag:"span",colorName:"primary",children:s.jsx(Jl,{dangerouslySetInnerHTML:{__html:Yo(y,i)}})}),x&&s.jsxs(s.Fragment,{children:[s.jsx(ev,{}),s.jsx(O,{variant:"caption-SemiBold",tag:"span",colorName:"fourth",children:x})]}),w&&s.jsx(tv,{src:a2(w,"_"),alt:"flag"}),!!Ql[E][u]&&s.jsxs(KC,{children:[s.jsx(qC,{}),s.jsx(O,{variant:"caption2-Medium",colorName:"secondary",colorCategory:"text",children:Ql[E][u]})]})]}),s.jsx(JC,{variant:"tag-Medium11",tag:"span",children:s.jsx(Jl,{dangerouslySetInnerHTML:{__html:Yo(v,i)}})})]})]}),s.jsxs(GC,{children:[f&&s.jsxs(YC,{children:[s.jsx(O,{variant:"description-Medium",tag:"span",colorName:"secondary",children:"ДКП"}),s.jsxs(O,{variant:"description-Medium",tag:"span",colorName:"primary",children:[Tr(f*100,!0)," %"]})]}),s.jsxs(zC,{isProfit:!!f,children:[s.jsxs(XC,{variant:"caption-Medium",tag:"span",children:[iv(g)," ",Tr(b,!0)]}),s.jsxs(UC,{variant:"caption2-Medium",tag:"span",isPositive:p,children:[p?"":"-",Tr(C*100,!0)," %"]})]})]})]}),!r&&s.jsx(NC,{})]})})},Kl=({items:e,type:t,title:n,handleDelete:r,onClose:o})=>{const[i,a]=m.useState(!1),{locale:l}=ce(),{hostnames:{hostname:c}}=Ce(),u=m.useMemo(()=>i?e:e.slice(0,5),[e,i]),f=p=>({id:p.instrument_id,logo:p.logo,flag:p.countryFlag,ticker:p.code?.split("-")?.[0],description:p.description,currency:p.currency_code,price:p.price,priceChange:p.priceChange,profit:p.Y,market:p.market_code,type:p.type,isPositiveChange:p.priceChangePositive});return s.jsxs(jC,{children:[s.jsxs(BC,{children:[s.jsx(O,{variant:"header5-Bold",tag:"h5",margin:"0px",children:n}),t==="last"&&s.jsx(cn,{text:Ye[l].clear,onClick:r})]}),s.jsx("div",{children:u.map((p,C)=>s.jsx(o6,{isLast:C===u.length-1,href:`${c}/market/instrument/${p.code}`,item:f(p),onClose:o},p.instrument_id))}),e.length>5&&s.jsx(FC,{text:i?Ye[l].collapse:Ye[l].show_more,onClick:()=>a(!i)})]})},bv=({onClose:e,isRenderSelections:t})=>{const[n,r]=m.useState([]),[o,i]=m.useState([]),[a,l]=m.useState(!1),{locale:c}=ce(),{user:{token:u}}=Ce();m.useEffect(()=>{(async()=>{l(!0);const[{data:C},{data:g}]=await Promise.all([sv({token:u}),cv({token:u})]);r(C||[]),i(g||[]),l(!1)})()},[]);const f=async()=>{await lv({token:u}),r([])};return t?a?s.jsx(qg,{size:"M"}):s.jsxs(s.Fragment,{children:[n.length?s.jsx(Kl,{items:n,onClose:e,title:Ye[c].find_recently,type:"last",handleDelete:f}):null,o.length?s.jsx(Kl,{items:o,onClose:e,title:Ye[c].popular,type:"top",handleDelete:f}):null]}):null},i6=h.styled.a`
|
|
2517
|
+
`;let Go=null;const a2=(e,t)=>{if(!e||!t)return"";Go===null&&ov();const n=/(.+)\/(.+)\.(.+)/,[,r,o,i]=n.exec(e);return Go?`${r}/${o}-${t}W.webp`:`${r}/${o}-${t}.${i}`};function ov(){if(!zr)return!0;const e=document.createElement("canvas");if(e.getContext&&e.getContext("2d")){Go=e.toDataURL("image/webp").indexOf("data:image/webp")==0;return}Go=!1}const s2=({ticker:e,logo:t,logoSize:n=28,compressionImage:r})=>{const o=i=>i&&i.includes("https://files.profinansy.ru")?a2(i,r||"_"):i;if(Array.isArray(t)){const i=o(t[0]),a=o(t[1]);return s.jsxs(nv,{$logoSize:n,children:[i?s.jsx(oa,{loading:"lazy",src:i,$logoSize:n/1.5,alt:"logo"}):null,a?s.jsx(oa,{loading:"lazy",src:a,$logoSize:n/1.5,alt:"logo"}):null]})}if(t){const i=o(t);return s.jsx(oa,{loading:"lazy",src:i,$logoSize:n,alt:"logo"})}return s.jsx(rv,{$logoSize:n,children:s.jsx(O,{tag:"span",variant:"tag-Medium10",colorName:"contrastThemed",children:e?e.slice(0,4):""})})},iv=e=>{switch(e){case"USD":return"$";case"JPY":return"¥";case"EUR":return"€";case"RUB":return"₽";case"CHF":return"₣";case"GBP":return"£";case"GBX":return"P£";case"HKD":return"HK$";case"CNY":return"¥";case"TRY":return"₺";case"PCT":return"%";case"шт":return"шт.";default:return""}},av=(e,t=2)=>e===0||!e?0:Number(e.toFixed(t)),Tr=(e,t=!1,n=2)=>{if(isNaN(e)||Math.abs(e)===1/0||e===null)return"-";if(Math.abs(e)<1e-6)return"0";const r=t?av(e,n):e,o=String(r).split(".");let i=Number(o[0]).toLocaleString("ru-RU");return o[1]&&(i+=","+o[1]),i},sv=e=>wt("/search/last","GET",e),lv=e=>wt("/search/last","DELETE",e),cv=e=>wt("/search/top","GET",e),uv=(e,t)=>wt("/search/top","POST",e,t),Ql={ru:{stocks:"Акции",etfs:"ETF",bonds:"Облигации",crypto:"Криптовалюта",metals:"Металлы",index:"Индекс",currency:"Валюта"},en:{stocks:"Stocks",etfs:"ETF",bonds:"Bonds",crypto:"Crypto",metals:"Metals",index:"Index",currency:"Currency"}},dv=e=>d.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},d.createElement("path",{d:"M5.00047 18.24H5C4.30931 18.24 3.75 17.6809 3.75 17V7C3.75 6.31421 4.31421 5.75 5 5.75H18.7252C19.2636 5.75 19.6266 6.30054 19.4145 6.79544L17.5639 11.1137C17.3213 11.6797 17.3213 12.3203 17.5639 12.8863L19.4139 17.2031C19.6261 17.6982 19.2627 18.2489 18.7241 18.2486L5.00047 18.24Z",stroke:"#AAAABA",strokeWidth:1.5})),fv=e=>wt("/user/fav_list?full=1","GET",e),pv=(e,t)=>wt("/user/instrument","POST",e,t),hv=(e,t)=>wt("/user/instrument","DELETE",e,t),mv=(e,t)=>wt("/user/fav_list","POST",e,t),gv=(e,t,n)=>e.reduce((r,o)=>(!o.instruments?.includes(n)&&t.includes(o.id)&&r.push(o),r),[]),Cv=(e,t,n)=>e.reduce((r,o)=>(o.instruments?.includes(n)&&!t.includes(o.id)&&r.push(o),r),[]),r6=m.createContext({groups:[],allInstruments:[],selectedGroups:[],instrumentId:null,loader:!1,handleClose:()=>null,handleOpen:()=>null,onSave:()=>null,onCheckboxClick:()=>null,submitNewList:()=>null}),vv=({children:e})=>{const[t,n]=m.useState(null),[r,o]=m.useState([]),[i,a]=m.useState([]),[l,c]=m.useState([]),[u,f]=m.useState(!1),{user:{token:p}}=Ce();m.useEffect(()=>{const w=[];r.forEach(E=>{E.instruments?.includes(t)&&w.push(E.id)}),a(w)},[r,t]);const C=async()=>{if(p){const w=await fv({token:p});w.ok&&(c([...new Set(w.data.flatMap(E=>E.instruments))]),o(w.data))}};m.useEffect(()=>{C()},[p]);const g=w=>{if(i.includes(w)){a(I=>I.filter(k=>k!==w));return}a(I=>[...I,w])},v=async()=>{const w=gv(r,i,t),E=Cv(r,i,t);(w.length||E.length)&&(f(!0),await Promise.all(w.map(I=>pv({token:p},{instrument_id:t,user_fav_list_id:I.id}))),await Promise.all(E.map(I=>hv({token:p},{instrument_id:t,user_fav_list_id:I.id}))),f(!1),nt.publish(qe.refreshFavourite),x(),C())},b=async w=>{await mv({token:p},{name:w,sort_num:25e3}),await C()},x=()=>{n(null)},y=w=>{n(w)};return s.jsx(r6.Provider,{value:{loader:u,allInstruments:l,selectedGroups:i,instrumentId:t,groups:r,handleClose:x,handleOpen:y,onSave:v,onCheckboxClick:g,submitNewList:b},children:e})},Ei=()=>{const e=m.useContext(r6);if(!e)throw new Error("useFavourite must be used within a FavouriteProvider");return e},Yo=(e="",t="")=>{if(!e)return"";const n=new RegExp(`(${t})`,"gi");return e.replace(n,'<span class="highlight">$1</span>')},o6=({item:e,onClose:t,href:n,isLast:r,isHovered:o,searchText:i="",refItem:a})=>{const{id:l,logo:c,type:u,profit:f,isPositiveChange:p,priceChange:C,currency:g,description:v,price:b,market:x,ticker:y,flag:w}=e,{locale:E}=ce(),{LinkWrapper:I,user:{token:k}}=Ce(),{allInstruments:S,handleOpen:L}=Ei(),$=async()=>{await uv({token:k},{instrument_id:l}),t&&t()};return s.jsx(OC,{onClick:$,children:s.jsxs(I,{href:n,ref:a,children:[s.jsxs(n6,{$isHovered:o,children:[s.jsx(VC,{$isActive:S.includes(l),onClick:D=>{D.stopPropagation(),D.preventDefault(),L(l)},children:s.jsx(dv,{})}),s.jsxs(ZC,{children:[s.jsx(s2,{ticker:y,logo:c}),s.jsxs(WC,{children:[s.jsxs(QC,{children:[s.jsx(O,{variant:"caption-SemiBold",tag:"span",colorName:"primary",children:s.jsx(Jl,{dangerouslySetInnerHTML:{__html:Yo(y,i)}})}),x&&s.jsxs(s.Fragment,{children:[s.jsx(ev,{}),s.jsx(O,{variant:"caption-SemiBold",tag:"span",colorName:"fourth",children:x})]}),w&&s.jsx(tv,{src:a2(w,"_"),alt:"flag"}),!!Ql[E][u]&&s.jsxs(KC,{children:[s.jsx(qC,{}),s.jsx(O,{variant:"caption2-Medium",colorName:"secondary",colorCategory:"text",children:Ql[E][u]})]})]}),s.jsx(JC,{variant:"tag-Medium11",tag:"span",children:s.jsx(Jl,{dangerouslySetInnerHTML:{__html:Yo(v,i)}})})]})]}),s.jsxs(GC,{children:[f&&s.jsxs(YC,{children:[s.jsx(O,{variant:"description-Medium",tag:"span",colorName:"secondary",children:"ДКП"}),s.jsxs(O,{variant:"description-Medium",tag:"span",colorName:"primary",children:[Tr(f*100,!0)," %"]})]}),s.jsxs(zC,{isProfit:!!f,children:[s.jsxs(XC,{variant:"caption-Medium",tag:"span",children:[iv(g)," ",Tr(b,!0)]}),s.jsxs(UC,{variant:"caption2-Medium",tag:"span",isPositive:p,children:[p?"":"-",Tr(C*100,!0)," %"]})]})]})]}),!r&&s.jsx(NC,{})]})})},Kl=({items:e,type:t,title:n,handleDelete:r,onClose:o})=>{const[i,a]=m.useState(!1),{locale:l}=ce(),{hostnames:{hostname:c}}=Ce(),u=m.useMemo(()=>i?e:e.slice(0,5),[e,i]),f=p=>({id:p.instrument_id,logo:p.logo,flag:p.countryFlag,ticker:p.code?.split("-")?.[0],description:p.description,currency:p.currency_code,price:p.price,priceChange:p.priceChange,profit:p.Y,market:p.market_code,type:p.type,isPositiveChange:p.priceChangePositive});return s.jsxs(jC,{children:[s.jsxs(BC,{children:[s.jsx(O,{variant:"header5-Bold",tag:"h5",margin:"0px",children:n}),t==="last"&&s.jsx(cn,{text:Ye[l].clear,onClick:r})]}),s.jsx("div",{children:u.map((p,C)=>s.jsx(o6,{isLast:C===u.length-1,href:`${c}/market/instrument/${p.code}`,item:f(p),onClose:o},p.instrument_id))}),e.length>5&&s.jsx(FC,{text:i?Ye[l].collapse:Ye[l].show_more,onClick:()=>a(!i)})]})},bv=({onClose:e,isRenderSelections:t})=>{const[n,r]=m.useState([]),[o,i]=m.useState([]),[a,l]=m.useState(!1),{locale:c}=ce(),{user:{token:u}}=Ce();m.useEffect(()=>{(async()=>{l(!0);const[{data:C},{data:g}]=await Promise.all([sv({token:u}),cv({token:u})]);r(C||[]),i(g||[]),l(!1)})()},[]);const f=async()=>{await lv({token:u}),r([])};return t?a?s.jsx(qg,{size:"M"}):s.jsxs(s.Fragment,{children:[n.length?s.jsx(Kl,{items:n,onClose:e,title:Ye[c].find_recently,type:"last",handleDelete:f}):null,o.length?s.jsx(Kl,{items:o,onClose:e,title:Ye[c].popular,type:"top",handleDelete:f}):null]}):null},i6=h.styled.a`
|
|
2518
2518
|
display: flex;
|
|
2519
2519
|
overflow: hidden;
|
|
2520
2520
|
text-decoration: none;
|