@orderly.network/ui-share 2.8.10-alpha.0 → 2.8.11-alpha.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/dist/index.js CHANGED
@@ -28,13 +28,11 @@ var useSharePnLScript = (props) => {
28
28
  return info;
29
29
  }, [getFirstRefCode, pnl]);
30
30
  const base_dp = React.useMemo(() => {
31
- if (!entity)
32
- return void 0;
31
+ if (!entity) return void 0;
33
32
  return symbolInfo[entity?.symbol]("base_dp");
34
33
  }, [entity, symbolInfo]);
35
34
  const quote_dp = React.useMemo(() => {
36
- if (!entity)
37
- return void 0;
35
+ if (!entity) return void 0;
38
36
  return symbolInfo[entity?.symbol]("quote_dp");
39
37
  }, [entity, symbolInfo]);
40
38
  return {
@@ -1214,8 +1212,7 @@ var MobileSharePnLContent = (props) => {
1214
1212
  }
1215
1213
  }, [carouselRef, domain]);
1216
1214
  const onSharePnL = async (posterRef) => {
1217
- if (!posterRef.current)
1218
- return;
1215
+ if (!posterRef.current) return;
1219
1216
  const data = posterRef.current?.toDataURL();
1220
1217
  const blob = dataURItoBlob(data);
1221
1218
  try {
@@ -1558,5 +1555,5 @@ exports.SharePnLBottomSheetWidget = SharePnLBottomSheetWidget;
1558
1555
  exports.SharePnLDialogId = SharePnLDialogId;
1559
1556
  exports.SharePnLDialogWidget = SharePnLDialogWidget;
1560
1557
  exports.useSharePnLScript = useSharePnLScript;
1561
- //# sourceMappingURL=out.js.map
1558
+ //# sourceMappingURL=index.js.map
1562
1559
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/sharePnL/sharePnL.script.tsx","../src/sharePnL/desktop/content.tsx","../src/sharePnL/poster/poster.tsx","../src/sharePnL/utils/utils.tsx","../src/sharePnL/desktop/bottomBtns.tsx","../src/sharePnL/desktop/carousel.tsx","../src/sharePnL/desktop/buttons.tsx","../src/sharePnL/desktop/message.tsx","../src/sharePnL/desktop/checkbox.tsx","../src/sharePnL/desktop/options.tsx","../src/sharePnL/desktop/pnlFormat.tsx","../src/sharePnL/mobile/content.tsx","../src/sharePnL/carousel/carousel.tsx","../src/sharePnL/carousel/index.tsx","../src/sharePnL/sharePnL.ui.tsx","../src/sharePnL/sharePnL.widget.tsx"],"names":["useEffect","useMemo","useRef","useState","useTranslation","Flex","toast","Text","Box","jsx","jsxs","emblaApi","cn","Button","CloseCircleFillIcon","Input","useEmblaCarousel","api","Carousel","PnlFormatView","ShareOption"],"mappings":"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","sourcesContent":["import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport {\n SharePnLDialogWidget,\n SharePnLBottomSheetWidget,\n} from \"./sharePnL/sharePnL.widget\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nconst SharePnLDialogId = \"sharePnLDialog\";\nconst SharePnLBottomSheetId = \"sharePnLBottomSheet\";\n\nregisterSimpleDialog(SharePnLDialogId, SharePnLDialogWidget, {\n classNames: {\n content: \"!oui-max-w-[624px] oui-p-0\",\n },\n});\n\nregisterSimpleSheet(SharePnLBottomSheetId, SharePnLBottomSheetWidget, {\n title: i18n.t(\"share.pnl.sharePnl\"),\n classNames: {\n body: \"oui-pb-4 oui-pt-0\",\n },\n});\n\nexport * from \"./sharePnL\";\nexport { SharePnLDialogId, SharePnLBottomSheetId };\nexport type {\n SharePnLConfig,\n SharePnLOptions,\n SharePnLParams,\n} from \"./types/types\";\n","import { useMemo } from \"react\";\nimport { useReferralInfo, useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { ReferralType, SharePnLOptions, SharePnLParams } from \"../types/types\";\n\nexport const useSharePnLScript = (props: {\n pnl?: SharePnLOptions & SharePnLParams;\n hide?: () => void;\n}) => {\n const { pnl, hide } = props;\n const entity = pnl?.entity;\n const symbolInfo = useSymbolsInfo();\n const { getFirstRefCode } = useReferralInfo();\n const referralInfo = useMemo((): ReferralType | undefined => {\n const code = getFirstRefCode()?.code;\n const info = {\n code: pnl?.refCode ?? code,\n slogan: pnl?.refSlogan,\n link: pnl?.refLink,\n };\n return info;\n }, [getFirstRefCode, pnl]);\n\n // print warning if entity is null\n if (!entity) {\n console.warn(\"Entity is null, the share pnl will not be displayed\");\n }\n\n // convert base_dp and quote_dp useMemo\n const base_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"base_dp\");\n }, [entity, symbolInfo]);\n const quote_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"quote_dp\");\n }, [entity, symbolInfo]);\n\n return {\n entity,\n baseDp: base_dp,\n quoteDp: quote_dp,\n referralInfo,\n shareOptions: pnl as SharePnLOptions,\n hide,\n };\n};\n\nexport type SharePnLState = ReturnType<typeof useSharePnLScript>;\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { Divider, Flex, toast, Text, Box } from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\nimport { BottomButtons } from \"./bottomBtns\";\nimport { CarouselBackgroundImage } from \"./carousel\";\nimport { Message } from \"./message\";\nimport { ShareOption } from \"./options\";\nimport { PnlFormatView } from \"./pnlFormat\";\n\nexport const DesktopSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n\n const localPnlConfig = getPnlInfo();\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [selectedSnap, setSelectedSnap] = useState(localPnlConfig.bgIndex);\n const [message, setMessage] = useState(localPnlConfig.message);\n const [check, setCheck] = useState(false);\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRef = useRef<PosterRef | null>(null);\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const curBgImg = useMemo(() => {\n return shareOptions?.backgroundImages?.[selectedSnap];\n }, [shareOptions?.backgroundImages, selectedSnap]);\n\n const posterData = getPnLPosterData(\n props.entity,\n check ? message : \"\",\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n\n const onCopy = () => {\n posterRef.current\n ?.copy()\n .then(() => {\n props.hide?.();\n toast.success(t(\"share.pnl.image.copied\"));\n })\n .catch((e: any) => {\n toast.error(() => {\n return (\n <div>\n <div>{t(\"common.copy.failed\")}</div>\n <div className=\"oui-mt-2 oui-max-w-[396px] oui-text-2xs oui-text-base-contrast-54\">\n {t(\"share.pnl.copy.failed.description\")}\n </div>\n </div>\n );\n });\n });\n };\n const onDownload = () => {\n posterRef.current?.download(\"Poster.png\");\n props.hide?.();\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"markPrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectedSnap, message);\n\n return (\n <div className=\"oui-relative oui-flex oui-size-full oui-flex-col\">\n <div className=\"oui-h-full oui-flex-1 oui-overflow-y-auto\">\n <Box mt={9} height={422}>\n <Flex itemAlign={\"center\"} justify={\"center\"}>\n <Poster\n // className=\"oui-mx-11\"\n width={552}\n height={310}\n data={{\n backgroundImg: curBgImg,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRef}\n />\n </Flex>\n <CarouselBackgroundImage\n backgroundImages={shareOptions?.backgroundImages ?? EMPTY_LIST}\n selectedSnap={selectedSnap}\n setSelectedSnap={setSelectedSnap}\n />\n </Box>\n\n <Flex\n direction={\"column\"}\n px={10}\n mt={6}\n justify={\"start\"}\n itemAlign={\"start\"}\n width={\"100%\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.displayFormat\")}\n </Text>\n <Flex pt={3} gap={3} itemAlign={\"center\"}>\n {formats.map((e, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={e}\n curType={pnlFormat}\n />\n ))}\n </Flex>\n\n <Divider className=\"oui-w-full oui-border-white/10 oui-pt-6\" />\n\n <Flex\n mt={6}\n direction={\"column\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.optionalInfo\")}\n </Text>\n <Flex mt={3} gap={4} className=\"oui-flex-wrap\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </Flex>\n </Flex>\n\n <Message\n message={message}\n setMessage={setMessage}\n check={check}\n setCheck={setCheck}\n />\n </Flex>\n </div>\n\n <BottomButtons onClickCopy={onCopy} onClickDownload={onDownload} />\n </div>\n );\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { type DrawOptions, usePoster } from \"@orderly.network/hooks\";\n\nexport type PosterProps = {\n width: number;\n height: number;\n className?: string;\n ratio?: number;\n data: DrawOptions;\n style?: React.CSSProperties;\n};\n\nexport type PosterRef = {\n download: (filename: string, type?: string, encoderOptions?: number) => void;\n toDataURL: (type?: string, encoderOptions?: number) => string;\n toBlob: (type?: string, encoderOptions?: number) => Promise<Blob | null>;\n copy: () => Promise<void>;\n};\n\nexport const Poster = forwardRef<PosterRef, PosterProps>((props, parentRef) => {\n const { width, height, className, data, style } = props;\n\n const { ref, download, toDataURL, copy, toBlob } = usePoster(data, {\n ratio: props.ratio,\n });\n\n useImperativeHandle(parentRef, () => ({\n download,\n toDataURL,\n toBlob,\n copy,\n }));\n\n return (\n <canvas\n ref={ref}\n width={width}\n height={height}\n className={className}\n style={style}\n />\n );\n});\n","/*\n{\n message: \"I am the Orderly KING.\",\n domain: \"ordely.network\",\n updateTime: \"2022-JAN-01 23:23\",\n position: {\n symbol: \"BTC-PERP\",\n currency: \"USDC\",\n side: \"LONG\",\n leverage: 20,\n pnl: 10432.23,\n ROI: 20.25,\n informations: [\n { title: \"Open Price\", value: 0.12313 },\n { title: \"Opened at\", value: \"Jan-01 23:23\" },\n { title: \"Mark price\", value: \"0.12341\" },\n { title: \"Quantity\", value: \"0.123\" },\n ],\n },\n referral: {\n code: \"WRECKED\",\n link: \"https://orderly.network\",\n slogan: \"Try Orderly now with:\",\n }\n }\n*/\n// import { PnLDisplayFormat, ShareOptions } from \"./type\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Decimal, formatNum } from \"@orderly.network/utils\";\nimport { PnLDisplayFormat, ShareEntity, ShareOptions } from \"../../types/types\";\n\nexport type ReferralType = {\n code?: string;\n link?: string;\n slogan?: string;\n};\n\nexport function getPnLPosterData(\n position: ShareEntity,\n message: string,\n domain: string,\n pnlType: PnLDisplayFormat,\n options: Set<ShareOptions>,\n baseDp?: number,\n quoteDp?: number,\n referral?: ReferralType,\n) {\n const { t } = useTranslation();\n const { symbol, currency } = processSymbol(position.symbol);\n const positionData: any = {\n symbol,\n currency,\n side: position.side,\n };\n\n switch (pnlType) {\n case \"pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n break;\n }\n case \"roi\": {\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n case \"roi_pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n }\n\n const informations: { title: string; value: any }[] = [];\n\n if (options.has(\"leverage\")) {\n positionData[\"leverage\"] = position.leverage;\n }\n const array: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n ];\n array.forEach((key) => {\n if (options.has(key)) {\n switch (key) {\n case \"leverage\": {\n break;\n }\n case \"openPrice\": {\n if (position.openPrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openPrice\"),\n value: formatFixed(position.openPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"closePrice\": {\n if (position.closePrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closePrice\"),\n value: formatFixed(position.closePrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"openTime\": {\n if (position.openTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openTime\"),\n value: formatOpenTime(position.openTime),\n });\n }\n break;\n }\n case \"closeTime\": {\n if (position.closeTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closeTime\"),\n value: formatOpenTime(position.closeTime),\n });\n }\n break;\n }\n case \"markPrice\": {\n if (position.markPrice != null) {\n informations.push({\n title: t(\"common.markPrice\"),\n value: formatFixed(position.markPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"quantity\": {\n if (position.quantity != null) {\n informations.push({\n title: t(\"common.quantity\"),\n value: formatFixed(position.quantity, baseDp || 2),\n });\n }\n }\n default:\n break;\n }\n }\n });\n\n positionData[\"informations\"] = informations;\n\n const data: any = {\n position: positionData,\n updateTime: formatShareTime(new Date()),\n domain,\n };\n if (message.length > 0) {\n data[\"message\"] = message;\n }\n\n if (typeof referral !== \"undefined\" && referral[\"code\"] !== undefined) {\n data[\"referral\"] = referral;\n }\n\n return data;\n}\n\ninterface SymbolResult {\n symbol: string;\n currency: string;\n}\n\nfunction processSymbol(symbol: string): SymbolResult {\n const tokens = symbol.split(\"_\");\n if (tokens.length !== 3) {\n return {\n symbol: symbol,\n currency: \"USDC\",\n };\n }\n\n const [symbol1, symbol2, symbol3] = tokens;\n const formattedString = `${symbol2}-${symbol1}`;\n\n return {\n symbol: formattedString,\n currency: symbol3 || \"USDC\",\n };\n}\n\nfunction formatShareTime(input: number): string;\nfunction formatShareTime(input: Date): string;\nfunction formatShareTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const year = formattedParts.find((part) =>\n part.type === \"year\" ? part.value : \"\",\n )?.value;\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${year}-${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatOpenTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatFixed(value: number, dp: number) {\n return new Decimal(value).toFixed(dp, Decimal.ROUND_DOWN);\n}\n\nexport function savePnlInfo(\n format: PnLDisplayFormat,\n options: Set<ShareOptions>,\n bgIndex: number,\n message: string,\n) {\n localStorage.setItem(\n \"pnl_config_key\",\n JSON.stringify({\n bgIndex: bgIndex,\n pnlFormat: format,\n options: Array.from(options),\n message: message,\n }),\n );\n}\n\nexport function getPnlInfo(): {\n bgIndex: number;\n pnlFormat: PnLDisplayFormat;\n options: ShareOptions[];\n message: \"\";\n} {\n const str = localStorage.getItem(\"pnl_config_key\");\n\n if (str && str.length > 0) {\n try {\n const json = JSON.parse(str);\n\n return json;\n } catch (e) {}\n }\n return {\n bgIndex: 0,\n pnlFormat: \"roi_pnl\",\n options: [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n \"leverage\",\n ],\n message: \"\",\n };\n}\n","import { FC } from \"react\";\nimport { Button, Flex } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const BottomButtons: FC<{\n onClickDownload: any;\n onClickCopy: any;\n}> = (props) => {\n const { onClickDownload, onClickCopy } = props;\n const { t } = useTranslation();\n\n return (\n <Flex px={8} gap={3} mt={3} itemAlign={\"center\"}>\n <Button\n color={\"secondary\"}\n className=\"oui-flex-1 oui-flex oui-gap-1\"\n onClick={onClickDownload}\n >\n <span>\n <DownloadIcon />\n </span>\n {t(\"common.download\")}\n </Button>\n\n <Button className=\"oui-flex-1 oui-flex oui-gap-1\" onClick={onClickCopy}>\n <span>\n <CopyIcon />\n </span>\n {t(\"common.copy\")}\n </Button>\n </Flex>\n );\n};\n\nconst DownloadIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.994A2.667 2.667 0 0 0 1.995 4.66v6.666a2.667 2.667 0 0 0 2.667 2.667h6.666a2.667 2.667 0 0 0 2.667-2.667V4.661a2.667 2.667 0 0 0-2.667-2.667zM7.995 4.66c.368 0 .667.298.667.666V8.66h2l-2.667 2.666L5.328 8.66h2V5.327c0-.368.299-.667.667-.667\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst CopyIcon = () => {\n return (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.166 1.994A2.667 2.667 0 0 0 2.499 4.66v4a2.667 2.667 0 0 0 2.667 2.667 2.667 2.667 0 0 0 2.666 2.667h4a2.667 2.667 0 0 0 2.667-2.667v-4a2.667 2.667 0 0 0-2.667-2.667 2.667 2.667 0 0 0-2.666-2.666zm6.666 4c.737 0 1.334.596 1.334 1.333v4c0 .737-.597 1.334-1.334 1.334h-4A1.333 1.333 0 0 1 6.5 11.327h2.667a2.667 2.667 0 0 0 2.666-2.667z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n","import { FC, useCallback, useEffect } from \"react\";\nimport { Box, cn, Flex, useEmblaCarousel } from \"@orderly.network/ui\";\nimport { NextButton, PrevButton } from \"./buttons\";\n\nexport const CarouselBackgroundImage: FC<{\n backgroundImages: ReadonlyArray<string> | string[];\n selectedSnap: number;\n setSelectedSnap: any;\n}> = (props) => {\n const { backgroundImages, selectedSnap, setSelectedSnap } = props;\n\n const [emblaRef, emblaApi] = useEmblaCarousel({\n // loop: true,\n containScroll: \"keepSnaps\",\n dragFree: true,\n });\n\n const onPrevButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollPrev()) {\n emblaApi.scrollPrev();\n } else if (selectedSnap - 1 >= 0) {\n setSelectedSnap(selectedSnap - 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onNextButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollNext()) {\n emblaApi.scrollNext();\n } else if (selectedSnap + 1 < backgroundImages.length) {\n setSelectedSnap(selectedSnap + 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onSelect = useCallback((emblaApi: any) => {\n // setPrevBtnDisabled(!emblaApi.canScrollPrev());\n // setNextBtnDisabled(!emblaApi.canScrollNext());\n setSelectedSnap(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) {\n return;\n }\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n emblaApi?.scrollTo(selectedSnap);\n return () => {\n emblaApi.off(\"reInit\", onSelect);\n emblaApi.off(\"select\", onSelect);\n };\n }, [emblaApi, onSelect]);\n\n return (\n <Flex mt={4} px={2}>\n <PrevButton onClick={onPrevButtonClick} />\n <div\n ref={emblaRef}\n className=\"oui-w-full oui-overflow oui-overflow-x-auto oui-scrollbar-hidden oui-hide-scrollbar oui-mx-0\"\n >\n <Flex>\n {backgroundImages.map((e, index) => (\n <Box\n key={e}\n onClick={() => {\n if (emblaApi?.canScrollPrev() || emblaApi?.canScrollNext()) {\n emblaApi?.scrollTo(index);\n } else {\n setSelectedSnap(index);\n }\n }}\n mx={2}\n my={1}\n mr={6}\n r=\"base\"\n className={cn(\n \"oui-shrink-0 oui-w-[162px]\",\n selectedSnap === index &&\n \"oui-outline oui-outline-1 oui-outline-primary-darken\",\n )}\n >\n <img src={e} className=\"oui-rounded-sm\" />\n </Box>\n ))}\n </Flex>\n </div>\n <NextButton onClick={onNextButtonClick} />\n </Flex>\n );\n};\n","import { FC, PropsWithChildren } from \"react\";\n\ntype PropType = PropsWithChildren<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n>;\n\nexport const PrevButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M11.186 5.348a.67.67 0 0 0-.436.27l-2.657 4a.69.69 0 0 0 0 .75l2.657 4a.68.68 0 0 0 .934.188.685.685 0 0 0 .187-.937L9.463 9.993 11.87 6.37a.685.685 0 0 0-.187-.938.65.65 0 0 0-.498-.083\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n\nexport const NextButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M8.777 5.348a.65.65 0 0 0-.498.083.685.685 0 0 0-.187.938L10.5 9.993 8.092 13.62a.685.685 0 0 0 .187.937.68.68 0 0 0 .934-.187l2.657-4a.69.69 0 0 0 0-.75l-2.657-4a.67.67 0 0 0-.436-.271\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n","import { FC, useRef, useState } from \"react\";\nimport { CloseCircleFillIcon, Input, toast } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Message: FC<{\n message: string;\n setMessage: any;\n check: boolean;\n setCheck: any;\n}> = (props) => {\n const { message, setMessage, check, setCheck } = props;\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { t } = useTranslation();\n\n return (\n <div className=\"oui-mt-3 oui-mb-6 oui-flex oui-items-center\">\n <Checkbox\n className=\"oui-mt-[2px]\"\n checked={check}\n onCheckedChange={(e: boolean) => {\n setCheck(e);\n }}\n />\n <div\n className=\"oui-text-xs oui-text-base-contrast-54 oui-ml-1 hover:oui-cursor-pointer\"\n onClick={() => {\n setCheck(!props.check);\n }}\n >\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-900 oui-mx-2 oui-rounded-sm\">\n <Input\n ref={inputRef}\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n classNames={{\n root: \"oui-w-[320px]\",\n }}\n size=\"sm\"\n value={message}\n autoFocus={false}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setCheck(e.target.value.length > 0);\n setMessage(e.target.value);\n }}\n />\n </div>\n </div>\n );\n};\n","export const Checkbox = (props: {\n size?: number;\n className?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n}) => {\n const { size = 16, className } = props;\n return (\n <button\n type=\"button\"\n onClick={(e) => {\n props.onCheckedChange(!props.checked);\n }}\n className={className}\n >\n {props.checked ? (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm6.664 2.922a.8.8 0 0 1 .557-.208c.2 0 .406.063.558.208a.734.734 0 0 1 0 1.063l-5.434 5.179a.826.826 0 0 1-1.115 0l-2.33-2.22a.736.736 0 0 1 0-1.063.827.827 0 0 1 1.117 0l1.77 1.687z\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n ) : (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm0 1.334h6.667c.737 0 1.334.596 1.334 1.333v6.667c0 .736-.597 1.333-1.334 1.333H4.661a1.333 1.333 0 0 1-1.334-1.333V4.62c0-.737.597-1.333 1.334-1.333\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n )}\n </button>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { ShareOptions } from \"../../types/types\";\nimport { Flex, Text, cn } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <Flex\n itemAlign={\"center\"}\n gap={1}\n className={cn(\"hover:oui-cursor-pointer\")}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <Checkbox\n size={16}\n checked={isSelected}\n className=\"oui-pt-[2px]\"\n onCheckedChange={(checked: boolean) => {\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n />\n\n <Text size=\"xs\" intensity={54}>\n {text}\n </Text>\n </Flex>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { PnLDisplayFormat } from \"../../types/types\";\nimport { Text, cn } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type, t]);\n\n const isSelected = type === curType;\n\n let clsName = \"oui-flex oui-items-center oui-gap-1 oui-cursor-pointer\";\n if (isSelected) {\n clsName += \" oui-text-base-contrast\";\n } else {\n clsName += \"\";\n }\n\n return (\n <div\n className={clsName}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <RadioButton sel={isSelected} />\n <Text\n size=\"xs\"\n intensity={54}\n className={cn(\n \"oui-ml-2 \"\n // isSelected && \"oui-text-base-contrast\"\n )}\n >\n {text}\n </Text>\n </div>\n );\n};\n\nconst RadioButton = (props: {\n sel?: boolean;\n // onChange?: (sel: boolean) => void;\n}) => {\n return (\n <button\n type=\"button\"\n // onClick={(e) => {\n // e.stopPropagation();\n // }}\n >\n {props.sel === true ? <SelIcon /> : <UnselIcon />}\n </button>\n );\n};\n\nconst SelIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-primary-darken\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n </svg>\n );\n};\n\nconst UnselIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n CloseCircleFillIcon,\n cn,\n Input,\n ScrollArea,\n toast,\n} from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Carousel } from \"../carousel\";\nimport {\n CarouselContent,\n CarouselItem,\n Dot,\n useCarousel,\n} from \"../carousel/carousel\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\n\nexport const MobileSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n const localPnlConfig = getPnlInfo();\n\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [message, setMessage] = useState<string>(localPnlConfig.message);\n const [selectIndex, setSelectIndex] = useState(localPnlConfig.bgIndex);\n // const { shareOptions } = useTradingPageContext();\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRefs = shareOptions?.backgroundImages?.map(() =>\n useRef<PosterRef | null>(null),\n );\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const posterData = getPnLPosterData(\n props.entity,\n message,\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n // console.log(\"pster data\", posterData, props.entity);\n\n const carouselRef = useRef<any>();\n const aspectRatio = 552 / 310;\n const [scale, setScale] = useState(1);\n const [carouselHeight, setCarouselHeight] = useState(0);\n\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (carouselRef.current) {\n const divWidth = carouselRef.current.offsetWidth;\n const divHeight = divWidth / aspectRatio;\n setCarouselHeight(divHeight);\n setScale(divWidth / 552);\n }\n }, [carouselRef, domain]);\n\n const onSharePnL = async (\n posterRef: React.MutableRefObject<PosterRef | null>,\n ) => {\n if (!posterRef.current) return;\n const data = posterRef.current?.toDataURL();\n const blob = dataURItoBlob(data);\n try {\n // Check if the browser supports the share feature\n if (navigator.share) {\n await navigator.share({\n // title: \"Share PnL\",\n text: message,\n // url: imageUrl,\n files: [new File([blob], \"image.png\", { type: \"image/png\" })],\n });\n console.log(\"Image shared successfully!\");\n } else {\n console.log(\"Share API is not supported in this browser.\");\n }\n props.hide?.();\n } catch (error) {\n console.error(\"Error sharing image:\", error);\n }\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"markPrice\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectIndex, message);\n\n return (\n <div className=\"oui-w-full\">\n <div\n ref={carouselRef}\n className=\"oui-mt-4 oui-w-full oui-overflow-hidden\"\n style={{ height: `${carouselHeight + 20}px` }}\n >\n <Carousel\n className=\"oui-w-full oui-overflow-hidden\"\n opts={{ align: \"start\" }}\n initIndex={selectIndex}\n >\n <CarouselContent style={{ height: `${carouselHeight}px` }}>\n {shareOptions?.backgroundImages?.map((item, index) => (\n <CarouselItem key={index}>\n <Poster\n className=\"oui-origin-top-left oui-transform\"\n style={{ scale: `${scale}` }}\n width={552}\n height={310}\n data={{\n backgroundImg: item,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRefs?.[index]}\n />\n </CarouselItem>\n ))}\n </CarouselContent>\n <div className=\"oui-mb-1 oui-mt-2 oui-flex oui-justify-center\">\n <MyIdentifier\n dotClassName=\"oui-w-[16px] oui-h-[4px] oui-bg-base-300\"\n dotActiveClassName=\"!oui-bg-primary-darken oui-w-[20px]\"\n setSelectIndex={setSelectIndex}\n />\n </div>\n </Carousel>\n </div>\n\n {/* @ts-ignore */}\n <ScrollArea className=\"oui-custom-scrollbar oui-max-h-[200px] oui-overflow-y-auto\">\n <div className=\"oui-mt-4\">\n <div className=\"oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.displayFormat\")}\n </div>\n <div className=\"oui-row-span-1 oui-grid oui-grid-cols-3 oui-justify-between oui-gap-3 oui-px-1 oui-pt-3\">\n {formats.map((item, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={item}\n curType={pnlFormat}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo\")}\n </div>\n <div className=\"oui-mt-3 oui-flex oui-flex-wrap oui-gap-3\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mb-8 oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-600 oui-mx-1 oui-mt-3 oui-h-[48px]\">\n <Input\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n containerClassName=\"oui-bg-transparent oui-h-[48px]\"\n value={message}\n autoFocus={false}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setMessage(e.target.value);\n }}\n ref={inputRef}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n />\n </div>\n </div>\n </ScrollArea>\n\n <div className=\"oui-pt-2\">\n <Button\n fullWidth\n className=\"oui-h-[40px] oui-text-[16px]\"\n onClick={() => {\n const ref = posterRefs?.[selectIndex];\n if (ref) {\n onSharePnL(ref);\n }\n }}\n >\n {t(\"common.share\")}\n </Button>\n </div>\n </div>\n );\n};\n\nconst PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type]);\n\n const isSelected = type === curType;\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-flex oui-h-[46px] oui-flex-1 oui-items-center oui-rounded-lg oui-bg-base-4 oui-px-3 oui-shadow-lg hover:oui-cursor-pointer\",\n isSelected && \"oui-dot-sel oui-bg-primary-darken\",\n )}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <div className=\"oui-text-sm oui-text-base-contrast\">{text}</div>\n {/* {isSelected && <RadioIcon size={20} />} */}\n </div>\n );\n};\n\nconst ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-mt-0 oui-flex oui-h-[46px] oui-w-[calc(50%-6px)] oui-items-center oui-rounded-lg oui-bg-base-4 oui-p-3 oui-shadow-lg hover:oui-cursor-pointer\",\n )}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <div className=\"oui-flex-1 oui-text-sm oui-text-base-contrast\">\n {text}\n </div>\n {isSelected && <ChoicesFillIcon />}\n </div>\n );\n};\nfunction dataURItoBlob(dataURI: string) {\n const byteString = atob(dataURI.split(\",\")[1]);\n const mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type: mimeString });\n}\n\nconst MyIdentifier: FC<{\n setSelectIndex: any;\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n}> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n useEffect(() => {\n props.setSelectIndex(selectedIndex);\n }, [selectedIndex]);\n\n return (\n <div className={cn(\"oui-flex oui-gap-1\")}>\n {scrollSnaps.map((_: any, index: number) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nconst ChoicesFillIcon = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.01416 11.9989C2.01416 6.47589 6.49136 1.9989 12.0142 1.9989C17.5372 1.9989 22.0142 6.47589 22.0142 11.9989C22.0142 17.5219 17.5372 21.9989 12.0142 21.9989C6.49136 21.9989 2.01416 17.5219 2.01416 11.9989ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6583 7.31211C19.1139 7.74546 19.1139 8.47384 18.6583 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z\"\n fill=\"white\"\n fillOpacity=\"1\"\n />\n </svg>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n Button,\n ChevronLeftIcon,\n ChevronRightIcon,\n cn,\n useEmblaCarousel,\n type UseEmblaCarouselType,\n} from \"@orderly.network/ui\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n initIndex?: number;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n selectedIndex: number;\n scrollSnaps: number[];\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nexport function useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>((originalProps, ref) => {\n const {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n } = originalProps;\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(\n props.initIndex || 0,\n );\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([]);\n\n const onSelect = React.useCallback(\n (api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n // console.log(\"selected\", api.scrollSnapList());\n\n if (scrollSnaps.length === 0) {\n setScrollSnaps(api.scrollSnapList());\n }\n\n setSelectedIndex(api.selectedScrollSnap());\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n },\n [scrollSnaps],\n );\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n if (props.initIndex) {\n api.scrollTo(props.initIndex);\n }\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n const memoizedValue = React.useMemo<CarouselContextProps>(() => {\n return {\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n };\n }, [\n carouselRef,\n api,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n ]);\n\n return (\n <CarouselContext.Provider value={memoizedValue}>\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"oui-relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n});\n\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { carouselRef, orientation } = useCarousel();\n return (\n <div ref={carouselRef} className=\"oui-overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"oui-flex\",\n orientation === \"horizontal\" ? \"oui--ml-4\" : \"oui--mt-4 oui-flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n});\n\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { orientation } = useCarousel();\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"oui-min-w-0 oui-shrink-0 oui-grow-0 oui-basis-full\",\n orientation === \"horizontal\" ? \"oui-pl-4\" : \"oui-pt-4\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--left-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--top-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon size={20} />\n <span className=\"oui-sr-only\">Previous slide</span>\n </Button>\n );\n});\n\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--right-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--bottom-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon size={20} />\n <span className=\"oui-sr-only\">Next slide</span>\n </Button>\n );\n});\n\nCarouselNext.displayName = \"CarouselNext\";\n\nexport type CarouselIdentifierProps = {\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n // asChild?: boolean;\n};\n\nconst CarouselIdentifier: React.FC<CarouselIdentifierProps> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n return (\n <div className={cn(\"oui-flex oui-gap-1\", props.className)}>\n {scrollSnaps.map((_, index) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nCarouselIdentifier.displayName = \"CarouselIdentifier\";\n\nexport const Dot: React.FC<{\n index: number;\n active: boolean;\n onClick?: (index: number) => void;\n className?: string;\n activeClassName?: string;\n}> = ({ index, active, onClick, className, activeClassName }) => {\n const activedClassName = activeClassName || \"oui-bg-primary-darken\";\n return (\n <button\n onClick={() => onClick?.(index)}\n className={cn(\n \"oui-size-2 oui-rounded-full oui-bg-white/30\",\n className,\n active && `active ${activedClassName}`,\n )}\n />\n );\n};\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n CarouselIdentifier,\n};\n","import {\n Carousel as OriginCarousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n CarouselIdentifier,\n} from \"./carousel\";\n\nexport type Carousel = typeof OriginCarousel & {\n Content: typeof CarouselContent;\n Item: typeof CarouselItem;\n Next: typeof CarouselNext;\n Previous: typeof CarouselPrevious;\n indentify: typeof CarouselIdentifier;\n};\n\nconst Carousel = OriginCarousel as Carousel;\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\nCarousel.indentify = CarouselIdentifier;\n\nexport { Carousel };\n","import { FC } from \"react\";\nimport { DesktopSharePnLContent } from \"./desktop/content\";\nimport { MobileSharePnLContent } from \"./mobile/content\";\nimport { SharePnLState } from \"./sharePnL.script\";\n\nexport const DesktopSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <DesktopSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n\nexport const MobileSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <MobileSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n","import { SharePnLOptions, SharePnLParams } from \"../types/types\";\nimport { useSharePnLScript } from \"./sharePnL.script\";\nimport { DesktopSharePnL, MobileSharePnL } from \"./sharePnL.ui\";\n\nexport const SharePnLBottomSheetWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <MobileSharePnL {...state} />;\n};\n\nexport const SharePnLDialogWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <DesktopSharePnL {...state} />;\n};\n"]}
1
+ {"version":3,"sources":["../src/sharePnL/sharePnL.script.tsx","../src/sharePnL/poster/poster.tsx","../src/sharePnL/utils/utils.tsx","../src/sharePnL/desktop/bottomBtns.tsx","../src/sharePnL/desktop/buttons.tsx","../src/sharePnL/desktop/carousel.tsx","../src/sharePnL/desktop/checkbox.tsx","../src/sharePnL/desktop/message.tsx","../src/sharePnL/desktop/options.tsx","../src/sharePnL/desktop/pnlFormat.tsx","../src/sharePnL/desktop/content.tsx","../src/sharePnL/carousel/carousel.tsx","../src/sharePnL/carousel/index.tsx","../src/sharePnL/mobile/content.tsx","../src/sharePnL/sharePnL.ui.tsx","../src/sharePnL/sharePnL.widget.tsx","../src/index.ts"],"names":["useSymbolsInfo","useReferralInfo","useMemo","forwardRef","usePoster","useImperativeHandle","jsx","useTranslation","formatNum","Decimal","jsxs","Flex","Button","useEmblaCarousel","useCallback","emblaApi","useEffect","Box","cn","useState","useRef","Input","CloseCircleFillIcon","toast","Text","EMPTY_LIST","Divider","React","api","ChevronLeftIcon","ChevronRightIcon","Carousel","ScrollArea","PnlFormatView","ShareOption","registerSimpleDialog","registerSimpleSheet","i18n"],"mappings":"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","file":"index.js","sourcesContent":["import { useMemo } from \"react\";\nimport { useReferralInfo, useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { ReferralType, SharePnLOptions, SharePnLParams } from \"../types/types\";\n\nexport const useSharePnLScript = (props: {\n pnl?: SharePnLOptions & SharePnLParams;\n hide?: () => void;\n}) => {\n const { pnl, hide } = props;\n const entity = pnl?.entity;\n const symbolInfo = useSymbolsInfo();\n const { getFirstRefCode } = useReferralInfo();\n const referralInfo = useMemo((): ReferralType | undefined => {\n const code = getFirstRefCode()?.code;\n const info = {\n code: pnl?.refCode ?? code,\n slogan: pnl?.refSlogan,\n link: pnl?.refLink,\n };\n return info;\n }, [getFirstRefCode, pnl]);\n\n // print warning if entity is null\n if (!entity) {\n console.warn(\"Entity is null, the share pnl will not be displayed\");\n }\n\n // convert base_dp and quote_dp useMemo\n const base_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"base_dp\");\n }, [entity, symbolInfo]);\n const quote_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"quote_dp\");\n }, [entity, symbolInfo]);\n\n return {\n entity,\n baseDp: base_dp,\n quoteDp: quote_dp,\n referralInfo,\n shareOptions: pnl as SharePnLOptions,\n hide,\n };\n};\n\nexport type SharePnLState = ReturnType<typeof useSharePnLScript>;\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { type DrawOptions, usePoster } from \"@orderly.network/hooks\";\n\nexport type PosterProps = {\n width: number;\n height: number;\n className?: string;\n ratio?: number;\n data: DrawOptions;\n style?: React.CSSProperties;\n};\n\nexport type PosterRef = {\n download: (filename: string, type?: string, encoderOptions?: number) => void;\n toDataURL: (type?: string, encoderOptions?: number) => string;\n toBlob: (type?: string, encoderOptions?: number) => Promise<Blob | null>;\n copy: () => Promise<void>;\n};\n\nexport const Poster = forwardRef<PosterRef, PosterProps>((props, parentRef) => {\n const { width, height, className, data, style } = props;\n\n const { ref, download, toDataURL, copy, toBlob } = usePoster(data, {\n ratio: props.ratio,\n });\n\n useImperativeHandle(parentRef, () => ({\n download,\n toDataURL,\n toBlob,\n copy,\n }));\n\n return (\n <canvas\n ref={ref}\n width={width}\n height={height}\n className={className}\n style={style}\n />\n );\n});\n","/*\n{\n message: \"I am the Orderly KING.\",\n domain: \"ordely.network\",\n updateTime: \"2022-JAN-01 23:23\",\n position: {\n symbol: \"BTC-PERP\",\n currency: \"USDC\",\n side: \"LONG\",\n leverage: 20,\n pnl: 10432.23,\n ROI: 20.25,\n informations: [\n { title: \"Open Price\", value: 0.12313 },\n { title: \"Opened at\", value: \"Jan-01 23:23\" },\n { title: \"Mark price\", value: \"0.12341\" },\n { title: \"Quantity\", value: \"0.123\" },\n ],\n },\n referral: {\n code: \"WRECKED\",\n link: \"https://orderly.network\",\n slogan: \"Try Orderly now with:\",\n }\n }\n*/\n// import { PnLDisplayFormat, ShareOptions } from \"./type\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Decimal, formatNum } from \"@orderly.network/utils\";\nimport { PnLDisplayFormat, ShareEntity, ShareOptions } from \"../../types/types\";\n\nexport type ReferralType = {\n code?: string;\n link?: string;\n slogan?: string;\n};\n\nexport function getPnLPosterData(\n position: ShareEntity,\n message: string,\n domain: string,\n pnlType: PnLDisplayFormat,\n options: Set<ShareOptions>,\n baseDp?: number,\n quoteDp?: number,\n referral?: ReferralType,\n) {\n const { t } = useTranslation();\n const { symbol, currency } = processSymbol(position.symbol);\n const positionData: any = {\n symbol,\n currency,\n side: position.side,\n };\n\n switch (pnlType) {\n case \"pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n break;\n }\n case \"roi\": {\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n case \"roi_pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n }\n\n const informations: { title: string; value: any }[] = [];\n\n if (options.has(\"leverage\")) {\n positionData[\"leverage\"] = position.leverage;\n }\n const array: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n ];\n array.forEach((key) => {\n if (options.has(key)) {\n switch (key) {\n case \"leverage\": {\n break;\n }\n case \"openPrice\": {\n if (position.openPrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openPrice\"),\n value: formatFixed(position.openPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"closePrice\": {\n if (position.closePrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closePrice\"),\n value: formatFixed(position.closePrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"openTime\": {\n if (position.openTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openTime\"),\n value: formatOpenTime(position.openTime),\n });\n }\n break;\n }\n case \"closeTime\": {\n if (position.closeTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closeTime\"),\n value: formatOpenTime(position.closeTime),\n });\n }\n break;\n }\n case \"markPrice\": {\n if (position.markPrice != null) {\n informations.push({\n title: t(\"common.markPrice\"),\n value: formatFixed(position.markPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"quantity\": {\n if (position.quantity != null) {\n informations.push({\n title: t(\"common.quantity\"),\n value: formatFixed(position.quantity, baseDp || 2),\n });\n }\n }\n default:\n break;\n }\n }\n });\n\n positionData[\"informations\"] = informations;\n\n const data: any = {\n position: positionData,\n updateTime: formatShareTime(new Date()),\n domain,\n };\n if (message.length > 0) {\n data[\"message\"] = message;\n }\n\n if (typeof referral !== \"undefined\" && referral[\"code\"] !== undefined) {\n data[\"referral\"] = referral;\n }\n\n return data;\n}\n\ninterface SymbolResult {\n symbol: string;\n currency: string;\n}\n\nfunction processSymbol(symbol: string): SymbolResult {\n const tokens = symbol.split(\"_\");\n if (tokens.length !== 3) {\n return {\n symbol: symbol,\n currency: \"USDC\",\n };\n }\n\n const [symbol1, symbol2, symbol3] = tokens;\n const formattedString = `${symbol2}-${symbol1}`;\n\n return {\n symbol: formattedString,\n currency: symbol3 || \"USDC\",\n };\n}\n\nfunction formatShareTime(input: number): string;\nfunction formatShareTime(input: Date): string;\nfunction formatShareTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const year = formattedParts.find((part) =>\n part.type === \"year\" ? part.value : \"\",\n )?.value;\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${year}-${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatOpenTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatFixed(value: number, dp: number) {\n return new Decimal(value).toFixed(dp, Decimal.ROUND_DOWN);\n}\n\nexport function savePnlInfo(\n format: PnLDisplayFormat,\n options: Set<ShareOptions>,\n bgIndex: number,\n message: string,\n) {\n localStorage.setItem(\n \"pnl_config_key\",\n JSON.stringify({\n bgIndex: bgIndex,\n pnlFormat: format,\n options: Array.from(options),\n message: message,\n }),\n );\n}\n\nexport function getPnlInfo(): {\n bgIndex: number;\n pnlFormat: PnLDisplayFormat;\n options: ShareOptions[];\n message: \"\";\n} {\n const str = localStorage.getItem(\"pnl_config_key\");\n\n if (str && str.length > 0) {\n try {\n const json = JSON.parse(str);\n\n return json;\n } catch (e) {}\n }\n return {\n bgIndex: 0,\n pnlFormat: \"roi_pnl\",\n options: [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n \"leverage\",\n ],\n message: \"\",\n };\n}\n","import { FC } from \"react\";\nimport { Button, Flex } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const BottomButtons: FC<{\n onClickDownload: any;\n onClickCopy: any;\n}> = (props) => {\n const { onClickDownload, onClickCopy } = props;\n const { t } = useTranslation();\n\n return (\n <Flex px={8} gap={3} mt={3} itemAlign={\"center\"}>\n <Button\n color={\"secondary\"}\n className=\"oui-flex-1 oui-flex oui-gap-1\"\n onClick={onClickDownload}\n >\n <span>\n <DownloadIcon />\n </span>\n {t(\"common.download\")}\n </Button>\n\n <Button className=\"oui-flex-1 oui-flex oui-gap-1\" onClick={onClickCopy}>\n <span>\n <CopyIcon />\n </span>\n {t(\"common.copy\")}\n </Button>\n </Flex>\n );\n};\n\nconst DownloadIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.994A2.667 2.667 0 0 0 1.995 4.66v6.666a2.667 2.667 0 0 0 2.667 2.667h6.666a2.667 2.667 0 0 0 2.667-2.667V4.661a2.667 2.667 0 0 0-2.667-2.667zM7.995 4.66c.368 0 .667.298.667.666V8.66h2l-2.667 2.666L5.328 8.66h2V5.327c0-.368.299-.667.667-.667\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst CopyIcon = () => {\n return (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.166 1.994A2.667 2.667 0 0 0 2.499 4.66v4a2.667 2.667 0 0 0 2.667 2.667 2.667 2.667 0 0 0 2.666 2.667h4a2.667 2.667 0 0 0 2.667-2.667v-4a2.667 2.667 0 0 0-2.667-2.667 2.667 2.667 0 0 0-2.666-2.666zm6.666 4c.737 0 1.334.596 1.334 1.333v4c0 .737-.597 1.334-1.334 1.334h-4A1.333 1.333 0 0 1 6.5 11.327h2.667a2.667 2.667 0 0 0 2.666-2.667z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n","import { FC, PropsWithChildren } from \"react\";\n\ntype PropType = PropsWithChildren<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n>;\n\nexport const PrevButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M11.186 5.348a.67.67 0 0 0-.436.27l-2.657 4a.69.69 0 0 0 0 .75l2.657 4a.68.68 0 0 0 .934.188.685.685 0 0 0 .187-.937L9.463 9.993 11.87 6.37a.685.685 0 0 0-.187-.938.65.65 0 0 0-.498-.083\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n\nexport const NextButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M8.777 5.348a.65.65 0 0 0-.498.083.685.685 0 0 0-.187.938L10.5 9.993 8.092 13.62a.685.685 0 0 0 .187.937.68.68 0 0 0 .934-.187l2.657-4a.69.69 0 0 0 0-.75l-2.657-4a.67.67 0 0 0-.436-.271\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n","import { FC, useCallback, useEffect } from \"react\";\nimport { Box, cn, Flex, useEmblaCarousel } from \"@orderly.network/ui\";\nimport { NextButton, PrevButton } from \"./buttons\";\n\nexport const CarouselBackgroundImage: FC<{\n backgroundImages: ReadonlyArray<string> | string[];\n selectedSnap: number;\n setSelectedSnap: any;\n}> = (props) => {\n const { backgroundImages, selectedSnap, setSelectedSnap } = props;\n\n const [emblaRef, emblaApi] = useEmblaCarousel({\n // loop: true,\n containScroll: \"keepSnaps\",\n dragFree: true,\n });\n\n const onPrevButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollPrev()) {\n emblaApi.scrollPrev();\n } else if (selectedSnap - 1 >= 0) {\n setSelectedSnap(selectedSnap - 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onNextButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollNext()) {\n emblaApi.scrollNext();\n } else if (selectedSnap + 1 < backgroundImages.length) {\n setSelectedSnap(selectedSnap + 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onSelect = useCallback((emblaApi: any) => {\n // setPrevBtnDisabled(!emblaApi.canScrollPrev());\n // setNextBtnDisabled(!emblaApi.canScrollNext());\n setSelectedSnap(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) {\n return;\n }\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n emblaApi?.scrollTo(selectedSnap);\n return () => {\n emblaApi.off(\"reInit\", onSelect);\n emblaApi.off(\"select\", onSelect);\n };\n }, [emblaApi, onSelect]);\n\n return (\n <Flex mt={4} px={2}>\n <PrevButton onClick={onPrevButtonClick} />\n <div\n ref={emblaRef}\n className=\"oui-w-full oui-overflow oui-overflow-x-auto oui-scrollbar-hidden oui-hide-scrollbar oui-mx-0\"\n >\n <Flex>\n {backgroundImages.map((e, index) => (\n <Box\n key={e}\n onClick={() => {\n if (emblaApi?.canScrollPrev() || emblaApi?.canScrollNext()) {\n emblaApi?.scrollTo(index);\n } else {\n setSelectedSnap(index);\n }\n }}\n mx={2}\n my={1}\n mr={6}\n r=\"base\"\n className={cn(\n \"oui-shrink-0 oui-w-[162px]\",\n selectedSnap === index &&\n \"oui-outline oui-outline-1 oui-outline-primary-darken\",\n )}\n >\n <img src={e} className=\"oui-rounded-sm\" />\n </Box>\n ))}\n </Flex>\n </div>\n <NextButton onClick={onNextButtonClick} />\n </Flex>\n );\n};\n","export const Checkbox = (props: {\n size?: number;\n className?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n}) => {\n const { size = 16, className } = props;\n return (\n <button\n type=\"button\"\n onClick={(e) => {\n props.onCheckedChange(!props.checked);\n }}\n className={className}\n >\n {props.checked ? (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm6.664 2.922a.8.8 0 0 1 .557-.208c.2 0 .406.063.558.208a.734.734 0 0 1 0 1.063l-5.434 5.179a.826.826 0 0 1-1.115 0l-2.33-2.22a.736.736 0 0 1 0-1.063.827.827 0 0 1 1.117 0l1.77 1.687z\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n ) : (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm0 1.334h6.667c.737 0 1.334.596 1.334 1.333v6.667c0 .736-.597 1.333-1.334 1.333H4.661a1.333 1.333 0 0 1-1.334-1.333V4.62c0-.737.597-1.333 1.334-1.333\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n )}\n </button>\n );\n};\n","import { FC, useRef, useState } from \"react\";\nimport { CloseCircleFillIcon, Input, toast } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Message: FC<{\n message: string;\n setMessage: any;\n check: boolean;\n setCheck: any;\n}> = (props) => {\n const { message, setMessage, check, setCheck } = props;\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { t } = useTranslation();\n\n return (\n <div className=\"oui-mt-3 oui-mb-6 oui-flex oui-items-center\">\n <Checkbox\n className=\"oui-mt-[2px]\"\n checked={check}\n onCheckedChange={(e: boolean) => {\n setCheck(e);\n }}\n />\n <div\n className=\"oui-text-xs oui-text-base-contrast-54 oui-ml-1 hover:oui-cursor-pointer\"\n onClick={() => {\n setCheck(!props.check);\n }}\n >\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-900 oui-mx-2 oui-rounded-sm\">\n <Input\n ref={inputRef}\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n classNames={{\n root: \"oui-w-[320px]\",\n }}\n size=\"sm\"\n value={message}\n autoFocus={false}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setCheck(e.target.value.length > 0);\n setMessage(e.target.value);\n }}\n />\n </div>\n </div>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { ShareOptions } from \"../../types/types\";\nimport { Flex, Text, cn } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <Flex\n itemAlign={\"center\"}\n gap={1}\n className={cn(\"hover:oui-cursor-pointer\")}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <Checkbox\n size={16}\n checked={isSelected}\n className=\"oui-pt-[2px]\"\n onCheckedChange={(checked: boolean) => {\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n />\n\n <Text size=\"xs\" intensity={54}>\n {text}\n </Text>\n </Flex>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { PnLDisplayFormat } from \"../../types/types\";\nimport { Text, cn } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type, t]);\n\n const isSelected = type === curType;\n\n let clsName = \"oui-flex oui-items-center oui-gap-1 oui-cursor-pointer\";\n if (isSelected) {\n clsName += \" oui-text-base-contrast\";\n } else {\n clsName += \"\";\n }\n\n return (\n <div\n className={clsName}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <RadioButton sel={isSelected} />\n <Text\n size=\"xs\"\n intensity={54}\n className={cn(\n \"oui-ml-2 \"\n // isSelected && \"oui-text-base-contrast\"\n )}\n >\n {text}\n </Text>\n </div>\n );\n};\n\nconst RadioButton = (props: {\n sel?: boolean;\n // onChange?: (sel: boolean) => void;\n}) => {\n return (\n <button\n type=\"button\"\n // onClick={(e) => {\n // e.stopPropagation();\n // }}\n >\n {props.sel === true ? <SelIcon /> : <UnselIcon />}\n </button>\n );\n};\n\nconst SelIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-primary-darken\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n </svg>\n );\n};\n\nconst UnselIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { Divider, Flex, toast, Text, Box } from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\nimport { BottomButtons } from \"./bottomBtns\";\nimport { CarouselBackgroundImage } from \"./carousel\";\nimport { Message } from \"./message\";\nimport { ShareOption } from \"./options\";\nimport { PnlFormatView } from \"./pnlFormat\";\n\nexport const DesktopSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n\n const localPnlConfig = getPnlInfo();\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [selectedSnap, setSelectedSnap] = useState(localPnlConfig.bgIndex);\n const [message, setMessage] = useState(localPnlConfig.message);\n const [check, setCheck] = useState(false);\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRef = useRef<PosterRef | null>(null);\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const curBgImg = useMemo(() => {\n return shareOptions?.backgroundImages?.[selectedSnap];\n }, [shareOptions?.backgroundImages, selectedSnap]);\n\n const posterData = getPnLPosterData(\n props.entity,\n check ? message : \"\",\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n\n const onCopy = () => {\n posterRef.current\n ?.copy()\n .then(() => {\n props.hide?.();\n toast.success(t(\"share.pnl.image.copied\"));\n })\n .catch((e: any) => {\n toast.error(() => {\n return (\n <div>\n <div>{t(\"common.copy.failed\")}</div>\n <div className=\"oui-mt-2 oui-max-w-[396px] oui-text-2xs oui-text-base-contrast-54\">\n {t(\"share.pnl.copy.failed.description\")}\n </div>\n </div>\n );\n });\n });\n };\n const onDownload = () => {\n posterRef.current?.download(\"Poster.png\");\n props.hide?.();\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"markPrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectedSnap, message);\n\n return (\n <div className=\"oui-relative oui-flex oui-size-full oui-flex-col\">\n <div className=\"oui-h-full oui-flex-1 oui-overflow-y-auto\">\n <Box mt={9} height={422}>\n <Flex itemAlign={\"center\"} justify={\"center\"}>\n <Poster\n // className=\"oui-mx-11\"\n width={552}\n height={310}\n data={{\n backgroundImg: curBgImg,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRef}\n />\n </Flex>\n <CarouselBackgroundImage\n backgroundImages={shareOptions?.backgroundImages ?? EMPTY_LIST}\n selectedSnap={selectedSnap}\n setSelectedSnap={setSelectedSnap}\n />\n </Box>\n\n <Flex\n direction={\"column\"}\n px={10}\n mt={6}\n justify={\"start\"}\n itemAlign={\"start\"}\n width={\"100%\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.displayFormat\")}\n </Text>\n <Flex pt={3} gap={3} itemAlign={\"center\"}>\n {formats.map((e, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={e}\n curType={pnlFormat}\n />\n ))}\n </Flex>\n\n <Divider className=\"oui-w-full oui-border-white/10 oui-pt-6\" />\n\n <Flex\n mt={6}\n direction={\"column\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.optionalInfo\")}\n </Text>\n <Flex mt={3} gap={4} className=\"oui-flex-wrap\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </Flex>\n </Flex>\n\n <Message\n message={message}\n setMessage={setMessage}\n check={check}\n setCheck={setCheck}\n />\n </Flex>\n </div>\n\n <BottomButtons onClickCopy={onCopy} onClickDownload={onDownload} />\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n Button,\n ChevronLeftIcon,\n ChevronRightIcon,\n cn,\n useEmblaCarousel,\n type UseEmblaCarouselType,\n} from \"@orderly.network/ui\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n initIndex?: number;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n selectedIndex: number;\n scrollSnaps: number[];\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nexport function useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>((originalProps, ref) => {\n const {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n } = originalProps;\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(\n props.initIndex || 0,\n );\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([]);\n\n const onSelect = React.useCallback(\n (api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n // console.log(\"selected\", api.scrollSnapList());\n\n if (scrollSnaps.length === 0) {\n setScrollSnaps(api.scrollSnapList());\n }\n\n setSelectedIndex(api.selectedScrollSnap());\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n },\n [scrollSnaps],\n );\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n if (props.initIndex) {\n api.scrollTo(props.initIndex);\n }\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n const memoizedValue = React.useMemo<CarouselContextProps>(() => {\n return {\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n };\n }, [\n carouselRef,\n api,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n ]);\n\n return (\n <CarouselContext.Provider value={memoizedValue}>\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"oui-relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n});\n\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { carouselRef, orientation } = useCarousel();\n return (\n <div ref={carouselRef} className=\"oui-overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"oui-flex\",\n orientation === \"horizontal\" ? \"oui--ml-4\" : \"oui--mt-4 oui-flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n});\n\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { orientation } = useCarousel();\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"oui-min-w-0 oui-shrink-0 oui-grow-0 oui-basis-full\",\n orientation === \"horizontal\" ? \"oui-pl-4\" : \"oui-pt-4\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--left-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--top-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon size={20} />\n <span className=\"oui-sr-only\">Previous slide</span>\n </Button>\n );\n});\n\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--right-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--bottom-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon size={20} />\n <span className=\"oui-sr-only\">Next slide</span>\n </Button>\n );\n});\n\nCarouselNext.displayName = \"CarouselNext\";\n\nexport type CarouselIdentifierProps = {\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n // asChild?: boolean;\n};\n\nconst CarouselIdentifier: React.FC<CarouselIdentifierProps> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n return (\n <div className={cn(\"oui-flex oui-gap-1\", props.className)}>\n {scrollSnaps.map((_, index) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nCarouselIdentifier.displayName = \"CarouselIdentifier\";\n\nexport const Dot: React.FC<{\n index: number;\n active: boolean;\n onClick?: (index: number) => void;\n className?: string;\n activeClassName?: string;\n}> = ({ index, active, onClick, className, activeClassName }) => {\n const activedClassName = activeClassName || \"oui-bg-primary-darken\";\n return (\n <button\n onClick={() => onClick?.(index)}\n className={cn(\n \"oui-size-2 oui-rounded-full oui-bg-white/30\",\n className,\n active && `active ${activedClassName}`,\n )}\n />\n );\n};\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n CarouselIdentifier,\n};\n","import {\n Carousel as OriginCarousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n CarouselIdentifier,\n} from \"./carousel\";\n\nexport type Carousel = typeof OriginCarousel & {\n Content: typeof CarouselContent;\n Item: typeof CarouselItem;\n Next: typeof CarouselNext;\n Previous: typeof CarouselPrevious;\n indentify: typeof CarouselIdentifier;\n};\n\nconst Carousel = OriginCarousel as Carousel;\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\nCarousel.indentify = CarouselIdentifier;\n\nexport { Carousel };\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n CloseCircleFillIcon,\n cn,\n Input,\n ScrollArea,\n toast,\n} from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Carousel } from \"../carousel\";\nimport {\n CarouselContent,\n CarouselItem,\n Dot,\n useCarousel,\n} from \"../carousel/carousel\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\n\nexport const MobileSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n const localPnlConfig = getPnlInfo();\n\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [message, setMessage] = useState<string>(localPnlConfig.message);\n const [selectIndex, setSelectIndex] = useState(localPnlConfig.bgIndex);\n // const { shareOptions } = useTradingPageContext();\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRefs = shareOptions?.backgroundImages?.map(() =>\n useRef<PosterRef | null>(null),\n );\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const posterData = getPnLPosterData(\n props.entity,\n message,\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n // console.log(\"pster data\", posterData, props.entity);\n\n const carouselRef = useRef<any>();\n const aspectRatio = 552 / 310;\n const [scale, setScale] = useState(1);\n const [carouselHeight, setCarouselHeight] = useState(0);\n\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (carouselRef.current) {\n const divWidth = carouselRef.current.offsetWidth;\n const divHeight = divWidth / aspectRatio;\n setCarouselHeight(divHeight);\n setScale(divWidth / 552);\n }\n }, [carouselRef, domain]);\n\n const onSharePnL = async (\n posterRef: React.MutableRefObject<PosterRef | null>,\n ) => {\n if (!posterRef.current) return;\n const data = posterRef.current?.toDataURL();\n const blob = dataURItoBlob(data);\n try {\n // Check if the browser supports the share feature\n if (navigator.share) {\n await navigator.share({\n // title: \"Share PnL\",\n text: message,\n // url: imageUrl,\n files: [new File([blob], \"image.png\", { type: \"image/png\" })],\n });\n console.log(\"Image shared successfully!\");\n } else {\n console.log(\"Share API is not supported in this browser.\");\n }\n props.hide?.();\n } catch (error) {\n console.error(\"Error sharing image:\", error);\n }\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"markPrice\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectIndex, message);\n\n return (\n <div className=\"oui-w-full\">\n <div\n ref={carouselRef}\n className=\"oui-mt-4 oui-w-full oui-overflow-hidden\"\n style={{ height: `${carouselHeight + 20}px` }}\n >\n <Carousel\n className=\"oui-w-full oui-overflow-hidden\"\n opts={{ align: \"start\" }}\n initIndex={selectIndex}\n >\n <CarouselContent style={{ height: `${carouselHeight}px` }}>\n {shareOptions?.backgroundImages?.map((item, index) => (\n <CarouselItem key={index}>\n <Poster\n className=\"oui-origin-top-left oui-transform\"\n style={{ scale: `${scale}` }}\n width={552}\n height={310}\n data={{\n backgroundImg: item,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRefs?.[index]}\n />\n </CarouselItem>\n ))}\n </CarouselContent>\n <div className=\"oui-mb-1 oui-mt-2 oui-flex oui-justify-center\">\n <MyIdentifier\n dotClassName=\"oui-w-[16px] oui-h-[4px] oui-bg-base-300\"\n dotActiveClassName=\"!oui-bg-primary-darken oui-w-[20px]\"\n setSelectIndex={setSelectIndex}\n />\n </div>\n </Carousel>\n </div>\n\n {/* @ts-ignore */}\n <ScrollArea className=\"oui-custom-scrollbar oui-max-h-[200px] oui-overflow-y-auto\">\n <div className=\"oui-mt-4\">\n <div className=\"oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.displayFormat\")}\n </div>\n <div className=\"oui-row-span-1 oui-grid oui-grid-cols-3 oui-justify-between oui-gap-3 oui-px-1 oui-pt-3\">\n {formats.map((item, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={item}\n curType={pnlFormat}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo\")}\n </div>\n <div className=\"oui-mt-3 oui-flex oui-flex-wrap oui-gap-3\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mb-8 oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-600 oui-mx-1 oui-mt-3 oui-h-[48px]\">\n <Input\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n containerClassName=\"oui-bg-transparent oui-h-[48px]\"\n value={message}\n autoFocus={false}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setMessage(e.target.value);\n }}\n ref={inputRef}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n />\n </div>\n </div>\n </ScrollArea>\n\n <div className=\"oui-pt-2\">\n <Button\n fullWidth\n className=\"oui-h-[40px] oui-text-[16px]\"\n onClick={() => {\n const ref = posterRefs?.[selectIndex];\n if (ref) {\n onSharePnL(ref);\n }\n }}\n >\n {t(\"common.share\")}\n </Button>\n </div>\n </div>\n );\n};\n\nconst PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type]);\n\n const isSelected = type === curType;\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-flex oui-h-[46px] oui-flex-1 oui-items-center oui-rounded-lg oui-bg-base-4 oui-px-3 oui-shadow-lg hover:oui-cursor-pointer\",\n isSelected && \"oui-dot-sel oui-bg-primary-darken\",\n )}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <div className=\"oui-text-sm oui-text-base-contrast\">{text}</div>\n {/* {isSelected && <RadioIcon size={20} />} */}\n </div>\n );\n};\n\nconst ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-mt-0 oui-flex oui-h-[46px] oui-w-[calc(50%-6px)] oui-items-center oui-rounded-lg oui-bg-base-4 oui-p-3 oui-shadow-lg hover:oui-cursor-pointer\",\n )}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <div className=\"oui-flex-1 oui-text-sm oui-text-base-contrast\">\n {text}\n </div>\n {isSelected && <ChoicesFillIcon />}\n </div>\n );\n};\nfunction dataURItoBlob(dataURI: string) {\n const byteString = atob(dataURI.split(\",\")[1]);\n const mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type: mimeString });\n}\n\nconst MyIdentifier: FC<{\n setSelectIndex: any;\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n}> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n useEffect(() => {\n props.setSelectIndex(selectedIndex);\n }, [selectedIndex]);\n\n return (\n <div className={cn(\"oui-flex oui-gap-1\")}>\n {scrollSnaps.map((_: any, index: number) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nconst ChoicesFillIcon = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.01416 11.9989C2.01416 6.47589 6.49136 1.9989 12.0142 1.9989C17.5372 1.9989 22.0142 6.47589 22.0142 11.9989C22.0142 17.5219 17.5372 21.9989 12.0142 21.9989C6.49136 21.9989 2.01416 17.5219 2.01416 11.9989ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6583 7.31211C19.1139 7.74546 19.1139 8.47384 18.6583 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z\"\n fill=\"white\"\n fillOpacity=\"1\"\n />\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { DesktopSharePnLContent } from \"./desktop/content\";\nimport { MobileSharePnLContent } from \"./mobile/content\";\nimport { SharePnLState } from \"./sharePnL.script\";\n\nexport const DesktopSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <DesktopSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n\nexport const MobileSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <MobileSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n","import { SharePnLOptions, SharePnLParams } from \"../types/types\";\nimport { useSharePnLScript } from \"./sharePnL.script\";\nimport { DesktopSharePnL, MobileSharePnL } from \"./sharePnL.ui\";\n\nexport const SharePnLBottomSheetWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <MobileSharePnL {...state} />;\n};\n\nexport const SharePnLDialogWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <DesktopSharePnL {...state} />;\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport {\n SharePnLDialogWidget,\n SharePnLBottomSheetWidget,\n} from \"./sharePnL/sharePnL.widget\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nconst SharePnLDialogId = \"sharePnLDialog\";\nconst SharePnLBottomSheetId = \"sharePnLBottomSheet\";\n\nregisterSimpleDialog(SharePnLDialogId, SharePnLDialogWidget, {\n classNames: {\n content: \"!oui-max-w-[624px] oui-p-0\",\n },\n});\n\nregisterSimpleSheet(SharePnLBottomSheetId, SharePnLBottomSheetWidget, {\n title: i18n.t(\"share.pnl.sharePnl\"),\n classNames: {\n body: \"oui-pb-4 oui-pt-0\",\n },\n});\n\nexport * from \"./sharePnL\";\nexport { SharePnLDialogId, SharePnLBottomSheetId };\nexport type {\n SharePnLConfig,\n SharePnLOptions,\n SharePnLParams,\n} from \"./types/types\";\n"]}
package/dist/index.mjs CHANGED
@@ -22,13 +22,11 @@ var useSharePnLScript = (props) => {
22
22
  return info;
23
23
  }, [getFirstRefCode, pnl]);
24
24
  const base_dp = useMemo(() => {
25
- if (!entity)
26
- return void 0;
25
+ if (!entity) return void 0;
27
26
  return symbolInfo[entity?.symbol]("base_dp");
28
27
  }, [entity, symbolInfo]);
29
28
  const quote_dp = useMemo(() => {
30
- if (!entity)
31
- return void 0;
29
+ if (!entity) return void 0;
32
30
  return symbolInfo[entity?.symbol]("quote_dp");
33
31
  }, [entity, symbolInfo]);
34
32
  return {
@@ -1208,8 +1206,7 @@ var MobileSharePnLContent = (props) => {
1208
1206
  }
1209
1207
  }, [carouselRef, domain]);
1210
1208
  const onSharePnL = async (posterRef) => {
1211
- if (!posterRef.current)
1212
- return;
1209
+ if (!posterRef.current) return;
1213
1210
  const data = posterRef.current?.toDataURL();
1214
1211
  const blob = dataURItoBlob(data);
1215
1212
  try {
@@ -1548,5 +1545,5 @@ registerSimpleSheet(SharePnLBottomSheetId, SharePnLBottomSheetWidget, {
1548
1545
  });
1549
1546
 
1550
1547
  export { SharePnLBottomSheetId, SharePnLBottomSheetWidget, SharePnLDialogId, SharePnLDialogWidget, useSharePnLScript };
1551
- //# sourceMappingURL=out.js.map
1548
+ //# sourceMappingURL=index.mjs.map
1552
1549
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/sharePnL/sharePnL.script.tsx","../src/sharePnL/desktop/content.tsx","../src/sharePnL/poster/poster.tsx","../src/sharePnL/utils/utils.tsx","../src/sharePnL/desktop/bottomBtns.tsx","../src/sharePnL/desktop/carousel.tsx","../src/sharePnL/desktop/buttons.tsx","../src/sharePnL/desktop/message.tsx","../src/sharePnL/desktop/checkbox.tsx","../src/sharePnL/desktop/options.tsx","../src/sharePnL/desktop/pnlFormat.tsx","../src/sharePnL/mobile/content.tsx","../src/sharePnL/carousel/carousel.tsx","../src/sharePnL/carousel/index.tsx","../src/sharePnL/sharePnL.ui.tsx","../src/sharePnL/sharePnL.widget.tsx"],"names":["useEffect","useMemo","useRef","useState","useTranslation","Flex","toast","Text","Box","jsx","jsxs","emblaApi","cn","Button","CloseCircleFillIcon","Input","useEmblaCarousel","api","Carousel","PnlFormatView","ShareOption"],"mappings":"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","sourcesContent":["import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport {\n SharePnLDialogWidget,\n SharePnLBottomSheetWidget,\n} from \"./sharePnL/sharePnL.widget\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nconst SharePnLDialogId = \"sharePnLDialog\";\nconst SharePnLBottomSheetId = \"sharePnLBottomSheet\";\n\nregisterSimpleDialog(SharePnLDialogId, SharePnLDialogWidget, {\n classNames: {\n content: \"!oui-max-w-[624px] oui-p-0\",\n },\n});\n\nregisterSimpleSheet(SharePnLBottomSheetId, SharePnLBottomSheetWidget, {\n title: i18n.t(\"share.pnl.sharePnl\"),\n classNames: {\n body: \"oui-pb-4 oui-pt-0\",\n },\n});\n\nexport * from \"./sharePnL\";\nexport { SharePnLDialogId, SharePnLBottomSheetId };\nexport type {\n SharePnLConfig,\n SharePnLOptions,\n SharePnLParams,\n} from \"./types/types\";\n","import { useMemo } from \"react\";\nimport { useReferralInfo, useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { ReferralType, SharePnLOptions, SharePnLParams } from \"../types/types\";\n\nexport const useSharePnLScript = (props: {\n pnl?: SharePnLOptions & SharePnLParams;\n hide?: () => void;\n}) => {\n const { pnl, hide } = props;\n const entity = pnl?.entity;\n const symbolInfo = useSymbolsInfo();\n const { getFirstRefCode } = useReferralInfo();\n const referralInfo = useMemo((): ReferralType | undefined => {\n const code = getFirstRefCode()?.code;\n const info = {\n code: pnl?.refCode ?? code,\n slogan: pnl?.refSlogan,\n link: pnl?.refLink,\n };\n return info;\n }, [getFirstRefCode, pnl]);\n\n // print warning if entity is null\n if (!entity) {\n console.warn(\"Entity is null, the share pnl will not be displayed\");\n }\n\n // convert base_dp and quote_dp useMemo\n const base_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"base_dp\");\n }, [entity, symbolInfo]);\n const quote_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"quote_dp\");\n }, [entity, symbolInfo]);\n\n return {\n entity,\n baseDp: base_dp,\n quoteDp: quote_dp,\n referralInfo,\n shareOptions: pnl as SharePnLOptions,\n hide,\n };\n};\n\nexport type SharePnLState = ReturnType<typeof useSharePnLScript>;\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { Divider, Flex, toast, Text, Box } from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\nimport { BottomButtons } from \"./bottomBtns\";\nimport { CarouselBackgroundImage } from \"./carousel\";\nimport { Message } from \"./message\";\nimport { ShareOption } from \"./options\";\nimport { PnlFormatView } from \"./pnlFormat\";\n\nexport const DesktopSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n\n const localPnlConfig = getPnlInfo();\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [selectedSnap, setSelectedSnap] = useState(localPnlConfig.bgIndex);\n const [message, setMessage] = useState(localPnlConfig.message);\n const [check, setCheck] = useState(false);\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRef = useRef<PosterRef | null>(null);\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const curBgImg = useMemo(() => {\n return shareOptions?.backgroundImages?.[selectedSnap];\n }, [shareOptions?.backgroundImages, selectedSnap]);\n\n const posterData = getPnLPosterData(\n props.entity,\n check ? message : \"\",\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n\n const onCopy = () => {\n posterRef.current\n ?.copy()\n .then(() => {\n props.hide?.();\n toast.success(t(\"share.pnl.image.copied\"));\n })\n .catch((e: any) => {\n toast.error(() => {\n return (\n <div>\n <div>{t(\"common.copy.failed\")}</div>\n <div className=\"oui-mt-2 oui-max-w-[396px] oui-text-2xs oui-text-base-contrast-54\">\n {t(\"share.pnl.copy.failed.description\")}\n </div>\n </div>\n );\n });\n });\n };\n const onDownload = () => {\n posterRef.current?.download(\"Poster.png\");\n props.hide?.();\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"markPrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectedSnap, message);\n\n return (\n <div className=\"oui-relative oui-flex oui-size-full oui-flex-col\">\n <div className=\"oui-h-full oui-flex-1 oui-overflow-y-auto\">\n <Box mt={9} height={422}>\n <Flex itemAlign={\"center\"} justify={\"center\"}>\n <Poster\n // className=\"oui-mx-11\"\n width={552}\n height={310}\n data={{\n backgroundImg: curBgImg,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRef}\n />\n </Flex>\n <CarouselBackgroundImage\n backgroundImages={shareOptions?.backgroundImages ?? EMPTY_LIST}\n selectedSnap={selectedSnap}\n setSelectedSnap={setSelectedSnap}\n />\n </Box>\n\n <Flex\n direction={\"column\"}\n px={10}\n mt={6}\n justify={\"start\"}\n itemAlign={\"start\"}\n width={\"100%\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.displayFormat\")}\n </Text>\n <Flex pt={3} gap={3} itemAlign={\"center\"}>\n {formats.map((e, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={e}\n curType={pnlFormat}\n />\n ))}\n </Flex>\n\n <Divider className=\"oui-w-full oui-border-white/10 oui-pt-6\" />\n\n <Flex\n mt={6}\n direction={\"column\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.optionalInfo\")}\n </Text>\n <Flex mt={3} gap={4} className=\"oui-flex-wrap\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </Flex>\n </Flex>\n\n <Message\n message={message}\n setMessage={setMessage}\n check={check}\n setCheck={setCheck}\n />\n </Flex>\n </div>\n\n <BottomButtons onClickCopy={onCopy} onClickDownload={onDownload} />\n </div>\n );\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { type DrawOptions, usePoster } from \"@orderly.network/hooks\";\n\nexport type PosterProps = {\n width: number;\n height: number;\n className?: string;\n ratio?: number;\n data: DrawOptions;\n style?: React.CSSProperties;\n};\n\nexport type PosterRef = {\n download: (filename: string, type?: string, encoderOptions?: number) => void;\n toDataURL: (type?: string, encoderOptions?: number) => string;\n toBlob: (type?: string, encoderOptions?: number) => Promise<Blob | null>;\n copy: () => Promise<void>;\n};\n\nexport const Poster = forwardRef<PosterRef, PosterProps>((props, parentRef) => {\n const { width, height, className, data, style } = props;\n\n const { ref, download, toDataURL, copy, toBlob } = usePoster(data, {\n ratio: props.ratio,\n });\n\n useImperativeHandle(parentRef, () => ({\n download,\n toDataURL,\n toBlob,\n copy,\n }));\n\n return (\n <canvas\n ref={ref}\n width={width}\n height={height}\n className={className}\n style={style}\n />\n );\n});\n","/*\n{\n message: \"I am the Orderly KING.\",\n domain: \"ordely.network\",\n updateTime: \"2022-JAN-01 23:23\",\n position: {\n symbol: \"BTC-PERP\",\n currency: \"USDC\",\n side: \"LONG\",\n leverage: 20,\n pnl: 10432.23,\n ROI: 20.25,\n informations: [\n { title: \"Open Price\", value: 0.12313 },\n { title: \"Opened at\", value: \"Jan-01 23:23\" },\n { title: \"Mark price\", value: \"0.12341\" },\n { title: \"Quantity\", value: \"0.123\" },\n ],\n },\n referral: {\n code: \"WRECKED\",\n link: \"https://orderly.network\",\n slogan: \"Try Orderly now with:\",\n }\n }\n*/\n// import { PnLDisplayFormat, ShareOptions } from \"./type\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Decimal, formatNum } from \"@orderly.network/utils\";\nimport { PnLDisplayFormat, ShareEntity, ShareOptions } from \"../../types/types\";\n\nexport type ReferralType = {\n code?: string;\n link?: string;\n slogan?: string;\n};\n\nexport function getPnLPosterData(\n position: ShareEntity,\n message: string,\n domain: string,\n pnlType: PnLDisplayFormat,\n options: Set<ShareOptions>,\n baseDp?: number,\n quoteDp?: number,\n referral?: ReferralType,\n) {\n const { t } = useTranslation();\n const { symbol, currency } = processSymbol(position.symbol);\n const positionData: any = {\n symbol,\n currency,\n side: position.side,\n };\n\n switch (pnlType) {\n case \"pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n break;\n }\n case \"roi\": {\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n case \"roi_pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n }\n\n const informations: { title: string; value: any }[] = [];\n\n if (options.has(\"leverage\")) {\n positionData[\"leverage\"] = position.leverage;\n }\n const array: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n ];\n array.forEach((key) => {\n if (options.has(key)) {\n switch (key) {\n case \"leverage\": {\n break;\n }\n case \"openPrice\": {\n if (position.openPrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openPrice\"),\n value: formatFixed(position.openPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"closePrice\": {\n if (position.closePrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closePrice\"),\n value: formatFixed(position.closePrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"openTime\": {\n if (position.openTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openTime\"),\n value: formatOpenTime(position.openTime),\n });\n }\n break;\n }\n case \"closeTime\": {\n if (position.closeTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closeTime\"),\n value: formatOpenTime(position.closeTime),\n });\n }\n break;\n }\n case \"markPrice\": {\n if (position.markPrice != null) {\n informations.push({\n title: t(\"common.markPrice\"),\n value: formatFixed(position.markPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"quantity\": {\n if (position.quantity != null) {\n informations.push({\n title: t(\"common.quantity\"),\n value: formatFixed(position.quantity, baseDp || 2),\n });\n }\n }\n default:\n break;\n }\n }\n });\n\n positionData[\"informations\"] = informations;\n\n const data: any = {\n position: positionData,\n updateTime: formatShareTime(new Date()),\n domain,\n };\n if (message.length > 0) {\n data[\"message\"] = message;\n }\n\n if (typeof referral !== \"undefined\" && referral[\"code\"] !== undefined) {\n data[\"referral\"] = referral;\n }\n\n return data;\n}\n\ninterface SymbolResult {\n symbol: string;\n currency: string;\n}\n\nfunction processSymbol(symbol: string): SymbolResult {\n const tokens = symbol.split(\"_\");\n if (tokens.length !== 3) {\n return {\n symbol: symbol,\n currency: \"USDC\",\n };\n }\n\n const [symbol1, symbol2, symbol3] = tokens;\n const formattedString = `${symbol2}-${symbol1}`;\n\n return {\n symbol: formattedString,\n currency: symbol3 || \"USDC\",\n };\n}\n\nfunction formatShareTime(input: number): string;\nfunction formatShareTime(input: Date): string;\nfunction formatShareTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const year = formattedParts.find((part) =>\n part.type === \"year\" ? part.value : \"\",\n )?.value;\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${year}-${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatOpenTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatFixed(value: number, dp: number) {\n return new Decimal(value).toFixed(dp, Decimal.ROUND_DOWN);\n}\n\nexport function savePnlInfo(\n format: PnLDisplayFormat,\n options: Set<ShareOptions>,\n bgIndex: number,\n message: string,\n) {\n localStorage.setItem(\n \"pnl_config_key\",\n JSON.stringify({\n bgIndex: bgIndex,\n pnlFormat: format,\n options: Array.from(options),\n message: message,\n }),\n );\n}\n\nexport function getPnlInfo(): {\n bgIndex: number;\n pnlFormat: PnLDisplayFormat;\n options: ShareOptions[];\n message: \"\";\n} {\n const str = localStorage.getItem(\"pnl_config_key\");\n\n if (str && str.length > 0) {\n try {\n const json = JSON.parse(str);\n\n return json;\n } catch (e) {}\n }\n return {\n bgIndex: 0,\n pnlFormat: \"roi_pnl\",\n options: [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n \"leverage\",\n ],\n message: \"\",\n };\n}\n","import { FC } from \"react\";\nimport { Button, Flex } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const BottomButtons: FC<{\n onClickDownload: any;\n onClickCopy: any;\n}> = (props) => {\n const { onClickDownload, onClickCopy } = props;\n const { t } = useTranslation();\n\n return (\n <Flex px={8} gap={3} mt={3} itemAlign={\"center\"}>\n <Button\n color={\"secondary\"}\n className=\"oui-flex-1 oui-flex oui-gap-1\"\n onClick={onClickDownload}\n >\n <span>\n <DownloadIcon />\n </span>\n {t(\"common.download\")}\n </Button>\n\n <Button className=\"oui-flex-1 oui-flex oui-gap-1\" onClick={onClickCopy}>\n <span>\n <CopyIcon />\n </span>\n {t(\"common.copy\")}\n </Button>\n </Flex>\n );\n};\n\nconst DownloadIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.994A2.667 2.667 0 0 0 1.995 4.66v6.666a2.667 2.667 0 0 0 2.667 2.667h6.666a2.667 2.667 0 0 0 2.667-2.667V4.661a2.667 2.667 0 0 0-2.667-2.667zM7.995 4.66c.368 0 .667.298.667.666V8.66h2l-2.667 2.666L5.328 8.66h2V5.327c0-.368.299-.667.667-.667\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst CopyIcon = () => {\n return (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.166 1.994A2.667 2.667 0 0 0 2.499 4.66v4a2.667 2.667 0 0 0 2.667 2.667 2.667 2.667 0 0 0 2.666 2.667h4a2.667 2.667 0 0 0 2.667-2.667v-4a2.667 2.667 0 0 0-2.667-2.667 2.667 2.667 0 0 0-2.666-2.666zm6.666 4c.737 0 1.334.596 1.334 1.333v4c0 .737-.597 1.334-1.334 1.334h-4A1.333 1.333 0 0 1 6.5 11.327h2.667a2.667 2.667 0 0 0 2.666-2.667z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n","import { FC, useCallback, useEffect } from \"react\";\nimport { Box, cn, Flex, useEmblaCarousel } from \"@orderly.network/ui\";\nimport { NextButton, PrevButton } from \"./buttons\";\n\nexport const CarouselBackgroundImage: FC<{\n backgroundImages: ReadonlyArray<string> | string[];\n selectedSnap: number;\n setSelectedSnap: any;\n}> = (props) => {\n const { backgroundImages, selectedSnap, setSelectedSnap } = props;\n\n const [emblaRef, emblaApi] = useEmblaCarousel({\n // loop: true,\n containScroll: \"keepSnaps\",\n dragFree: true,\n });\n\n const onPrevButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollPrev()) {\n emblaApi.scrollPrev();\n } else if (selectedSnap - 1 >= 0) {\n setSelectedSnap(selectedSnap - 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onNextButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollNext()) {\n emblaApi.scrollNext();\n } else if (selectedSnap + 1 < backgroundImages.length) {\n setSelectedSnap(selectedSnap + 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onSelect = useCallback((emblaApi: any) => {\n // setPrevBtnDisabled(!emblaApi.canScrollPrev());\n // setNextBtnDisabled(!emblaApi.canScrollNext());\n setSelectedSnap(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) {\n return;\n }\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n emblaApi?.scrollTo(selectedSnap);\n return () => {\n emblaApi.off(\"reInit\", onSelect);\n emblaApi.off(\"select\", onSelect);\n };\n }, [emblaApi, onSelect]);\n\n return (\n <Flex mt={4} px={2}>\n <PrevButton onClick={onPrevButtonClick} />\n <div\n ref={emblaRef}\n className=\"oui-w-full oui-overflow oui-overflow-x-auto oui-scrollbar-hidden oui-hide-scrollbar oui-mx-0\"\n >\n <Flex>\n {backgroundImages.map((e, index) => (\n <Box\n key={e}\n onClick={() => {\n if (emblaApi?.canScrollPrev() || emblaApi?.canScrollNext()) {\n emblaApi?.scrollTo(index);\n } else {\n setSelectedSnap(index);\n }\n }}\n mx={2}\n my={1}\n mr={6}\n r=\"base\"\n className={cn(\n \"oui-shrink-0 oui-w-[162px]\",\n selectedSnap === index &&\n \"oui-outline oui-outline-1 oui-outline-primary-darken\",\n )}\n >\n <img src={e} className=\"oui-rounded-sm\" />\n </Box>\n ))}\n </Flex>\n </div>\n <NextButton onClick={onNextButtonClick} />\n </Flex>\n );\n};\n","import { FC, PropsWithChildren } from \"react\";\n\ntype PropType = PropsWithChildren<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n>;\n\nexport const PrevButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M11.186 5.348a.67.67 0 0 0-.436.27l-2.657 4a.69.69 0 0 0 0 .75l2.657 4a.68.68 0 0 0 .934.188.685.685 0 0 0 .187-.937L9.463 9.993 11.87 6.37a.685.685 0 0 0-.187-.938.65.65 0 0 0-.498-.083\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n\nexport const NextButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M8.777 5.348a.65.65 0 0 0-.498.083.685.685 0 0 0-.187.938L10.5 9.993 8.092 13.62a.685.685 0 0 0 .187.937.68.68 0 0 0 .934-.187l2.657-4a.69.69 0 0 0 0-.75l-2.657-4a.67.67 0 0 0-.436-.271\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n","import { FC, useRef, useState } from \"react\";\nimport { CloseCircleFillIcon, Input, toast } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Message: FC<{\n message: string;\n setMessage: any;\n check: boolean;\n setCheck: any;\n}> = (props) => {\n const { message, setMessage, check, setCheck } = props;\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { t } = useTranslation();\n\n return (\n <div className=\"oui-mt-3 oui-mb-6 oui-flex oui-items-center\">\n <Checkbox\n className=\"oui-mt-[2px]\"\n checked={check}\n onCheckedChange={(e: boolean) => {\n setCheck(e);\n }}\n />\n <div\n className=\"oui-text-xs oui-text-base-contrast-54 oui-ml-1 hover:oui-cursor-pointer\"\n onClick={() => {\n setCheck(!props.check);\n }}\n >\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-900 oui-mx-2 oui-rounded-sm\">\n <Input\n ref={inputRef}\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n classNames={{\n root: \"oui-w-[320px]\",\n }}\n size=\"sm\"\n value={message}\n autoFocus={false}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setCheck(e.target.value.length > 0);\n setMessage(e.target.value);\n }}\n />\n </div>\n </div>\n );\n};\n","export const Checkbox = (props: {\n size?: number;\n className?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n}) => {\n const { size = 16, className } = props;\n return (\n <button\n type=\"button\"\n onClick={(e) => {\n props.onCheckedChange(!props.checked);\n }}\n className={className}\n >\n {props.checked ? (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm6.664 2.922a.8.8 0 0 1 .557-.208c.2 0 .406.063.558.208a.734.734 0 0 1 0 1.063l-5.434 5.179a.826.826 0 0 1-1.115 0l-2.33-2.22a.736.736 0 0 1 0-1.063.827.827 0 0 1 1.117 0l1.77 1.687z\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n ) : (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm0 1.334h6.667c.737 0 1.334.596 1.334 1.333v6.667c0 .736-.597 1.333-1.334 1.333H4.661a1.333 1.333 0 0 1-1.334-1.333V4.62c0-.737.597-1.333 1.334-1.333\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n )}\n </button>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { ShareOptions } from \"../../types/types\";\nimport { Flex, Text, cn } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <Flex\n itemAlign={\"center\"}\n gap={1}\n className={cn(\"hover:oui-cursor-pointer\")}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <Checkbox\n size={16}\n checked={isSelected}\n className=\"oui-pt-[2px]\"\n onCheckedChange={(checked: boolean) => {\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n />\n\n <Text size=\"xs\" intensity={54}>\n {text}\n </Text>\n </Flex>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { PnLDisplayFormat } from \"../../types/types\";\nimport { Text, cn } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type, t]);\n\n const isSelected = type === curType;\n\n let clsName = \"oui-flex oui-items-center oui-gap-1 oui-cursor-pointer\";\n if (isSelected) {\n clsName += \" oui-text-base-contrast\";\n } else {\n clsName += \"\";\n }\n\n return (\n <div\n className={clsName}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <RadioButton sel={isSelected} />\n <Text\n size=\"xs\"\n intensity={54}\n className={cn(\n \"oui-ml-2 \"\n // isSelected && \"oui-text-base-contrast\"\n )}\n >\n {text}\n </Text>\n </div>\n );\n};\n\nconst RadioButton = (props: {\n sel?: boolean;\n // onChange?: (sel: boolean) => void;\n}) => {\n return (\n <button\n type=\"button\"\n // onClick={(e) => {\n // e.stopPropagation();\n // }}\n >\n {props.sel === true ? <SelIcon /> : <UnselIcon />}\n </button>\n );\n};\n\nconst SelIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-primary-darken\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n </svg>\n );\n};\n\nconst UnselIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n CloseCircleFillIcon,\n cn,\n Input,\n ScrollArea,\n toast,\n} from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Carousel } from \"../carousel\";\nimport {\n CarouselContent,\n CarouselItem,\n Dot,\n useCarousel,\n} from \"../carousel/carousel\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\n\nexport const MobileSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n const localPnlConfig = getPnlInfo();\n\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [message, setMessage] = useState<string>(localPnlConfig.message);\n const [selectIndex, setSelectIndex] = useState(localPnlConfig.bgIndex);\n // const { shareOptions } = useTradingPageContext();\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRefs = shareOptions?.backgroundImages?.map(() =>\n useRef<PosterRef | null>(null),\n );\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const posterData = getPnLPosterData(\n props.entity,\n message,\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n // console.log(\"pster data\", posterData, props.entity);\n\n const carouselRef = useRef<any>();\n const aspectRatio = 552 / 310;\n const [scale, setScale] = useState(1);\n const [carouselHeight, setCarouselHeight] = useState(0);\n\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (carouselRef.current) {\n const divWidth = carouselRef.current.offsetWidth;\n const divHeight = divWidth / aspectRatio;\n setCarouselHeight(divHeight);\n setScale(divWidth / 552);\n }\n }, [carouselRef, domain]);\n\n const onSharePnL = async (\n posterRef: React.MutableRefObject<PosterRef | null>,\n ) => {\n if (!posterRef.current) return;\n const data = posterRef.current?.toDataURL();\n const blob = dataURItoBlob(data);\n try {\n // Check if the browser supports the share feature\n if (navigator.share) {\n await navigator.share({\n // title: \"Share PnL\",\n text: message,\n // url: imageUrl,\n files: [new File([blob], \"image.png\", { type: \"image/png\" })],\n });\n console.log(\"Image shared successfully!\");\n } else {\n console.log(\"Share API is not supported in this browser.\");\n }\n props.hide?.();\n } catch (error) {\n console.error(\"Error sharing image:\", error);\n }\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"markPrice\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectIndex, message);\n\n return (\n <div className=\"oui-w-full\">\n <div\n ref={carouselRef}\n className=\"oui-mt-4 oui-w-full oui-overflow-hidden\"\n style={{ height: `${carouselHeight + 20}px` }}\n >\n <Carousel\n className=\"oui-w-full oui-overflow-hidden\"\n opts={{ align: \"start\" }}\n initIndex={selectIndex}\n >\n <CarouselContent style={{ height: `${carouselHeight}px` }}>\n {shareOptions?.backgroundImages?.map((item, index) => (\n <CarouselItem key={index}>\n <Poster\n className=\"oui-origin-top-left oui-transform\"\n style={{ scale: `${scale}` }}\n width={552}\n height={310}\n data={{\n backgroundImg: item,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRefs?.[index]}\n />\n </CarouselItem>\n ))}\n </CarouselContent>\n <div className=\"oui-mb-1 oui-mt-2 oui-flex oui-justify-center\">\n <MyIdentifier\n dotClassName=\"oui-w-[16px] oui-h-[4px] oui-bg-base-300\"\n dotActiveClassName=\"!oui-bg-primary-darken oui-w-[20px]\"\n setSelectIndex={setSelectIndex}\n />\n </div>\n </Carousel>\n </div>\n\n {/* @ts-ignore */}\n <ScrollArea className=\"oui-custom-scrollbar oui-max-h-[200px] oui-overflow-y-auto\">\n <div className=\"oui-mt-4\">\n <div className=\"oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.displayFormat\")}\n </div>\n <div className=\"oui-row-span-1 oui-grid oui-grid-cols-3 oui-justify-between oui-gap-3 oui-px-1 oui-pt-3\">\n {formats.map((item, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={item}\n curType={pnlFormat}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo\")}\n </div>\n <div className=\"oui-mt-3 oui-flex oui-flex-wrap oui-gap-3\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mb-8 oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-600 oui-mx-1 oui-mt-3 oui-h-[48px]\">\n <Input\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n containerClassName=\"oui-bg-transparent oui-h-[48px]\"\n value={message}\n autoFocus={false}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setMessage(e.target.value);\n }}\n ref={inputRef}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n />\n </div>\n </div>\n </ScrollArea>\n\n <div className=\"oui-pt-2\">\n <Button\n fullWidth\n className=\"oui-h-[40px] oui-text-[16px]\"\n onClick={() => {\n const ref = posterRefs?.[selectIndex];\n if (ref) {\n onSharePnL(ref);\n }\n }}\n >\n {t(\"common.share\")}\n </Button>\n </div>\n </div>\n );\n};\n\nconst PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type]);\n\n const isSelected = type === curType;\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-flex oui-h-[46px] oui-flex-1 oui-items-center oui-rounded-lg oui-bg-base-4 oui-px-3 oui-shadow-lg hover:oui-cursor-pointer\",\n isSelected && \"oui-dot-sel oui-bg-primary-darken\",\n )}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <div className=\"oui-text-sm oui-text-base-contrast\">{text}</div>\n {/* {isSelected && <RadioIcon size={20} />} */}\n </div>\n );\n};\n\nconst ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-mt-0 oui-flex oui-h-[46px] oui-w-[calc(50%-6px)] oui-items-center oui-rounded-lg oui-bg-base-4 oui-p-3 oui-shadow-lg hover:oui-cursor-pointer\",\n )}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <div className=\"oui-flex-1 oui-text-sm oui-text-base-contrast\">\n {text}\n </div>\n {isSelected && <ChoicesFillIcon />}\n </div>\n );\n};\nfunction dataURItoBlob(dataURI: string) {\n const byteString = atob(dataURI.split(\",\")[1]);\n const mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type: mimeString });\n}\n\nconst MyIdentifier: FC<{\n setSelectIndex: any;\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n}> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n useEffect(() => {\n props.setSelectIndex(selectedIndex);\n }, [selectedIndex]);\n\n return (\n <div className={cn(\"oui-flex oui-gap-1\")}>\n {scrollSnaps.map((_: any, index: number) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nconst ChoicesFillIcon = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.01416 11.9989C2.01416 6.47589 6.49136 1.9989 12.0142 1.9989C17.5372 1.9989 22.0142 6.47589 22.0142 11.9989C22.0142 17.5219 17.5372 21.9989 12.0142 21.9989C6.49136 21.9989 2.01416 17.5219 2.01416 11.9989ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6583 7.31211C19.1139 7.74546 19.1139 8.47384 18.6583 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z\"\n fill=\"white\"\n fillOpacity=\"1\"\n />\n </svg>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n Button,\n ChevronLeftIcon,\n ChevronRightIcon,\n cn,\n useEmblaCarousel,\n type UseEmblaCarouselType,\n} from \"@orderly.network/ui\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n initIndex?: number;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n selectedIndex: number;\n scrollSnaps: number[];\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nexport function useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>((originalProps, ref) => {\n const {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n } = originalProps;\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(\n props.initIndex || 0,\n );\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([]);\n\n const onSelect = React.useCallback(\n (api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n // console.log(\"selected\", api.scrollSnapList());\n\n if (scrollSnaps.length === 0) {\n setScrollSnaps(api.scrollSnapList());\n }\n\n setSelectedIndex(api.selectedScrollSnap());\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n },\n [scrollSnaps],\n );\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n if (props.initIndex) {\n api.scrollTo(props.initIndex);\n }\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n const memoizedValue = React.useMemo<CarouselContextProps>(() => {\n return {\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n };\n }, [\n carouselRef,\n api,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n ]);\n\n return (\n <CarouselContext.Provider value={memoizedValue}>\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"oui-relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n});\n\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { carouselRef, orientation } = useCarousel();\n return (\n <div ref={carouselRef} className=\"oui-overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"oui-flex\",\n orientation === \"horizontal\" ? \"oui--ml-4\" : \"oui--mt-4 oui-flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n});\n\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { orientation } = useCarousel();\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"oui-min-w-0 oui-shrink-0 oui-grow-0 oui-basis-full\",\n orientation === \"horizontal\" ? \"oui-pl-4\" : \"oui-pt-4\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--left-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--top-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon size={20} />\n <span className=\"oui-sr-only\">Previous slide</span>\n </Button>\n );\n});\n\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--right-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--bottom-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon size={20} />\n <span className=\"oui-sr-only\">Next slide</span>\n </Button>\n );\n});\n\nCarouselNext.displayName = \"CarouselNext\";\n\nexport type CarouselIdentifierProps = {\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n // asChild?: boolean;\n};\n\nconst CarouselIdentifier: React.FC<CarouselIdentifierProps> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n return (\n <div className={cn(\"oui-flex oui-gap-1\", props.className)}>\n {scrollSnaps.map((_, index) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nCarouselIdentifier.displayName = \"CarouselIdentifier\";\n\nexport const Dot: React.FC<{\n index: number;\n active: boolean;\n onClick?: (index: number) => void;\n className?: string;\n activeClassName?: string;\n}> = ({ index, active, onClick, className, activeClassName }) => {\n const activedClassName = activeClassName || \"oui-bg-primary-darken\";\n return (\n <button\n onClick={() => onClick?.(index)}\n className={cn(\n \"oui-size-2 oui-rounded-full oui-bg-white/30\",\n className,\n active && `active ${activedClassName}`,\n )}\n />\n );\n};\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n CarouselIdentifier,\n};\n","import {\n Carousel as OriginCarousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n CarouselIdentifier,\n} from \"./carousel\";\n\nexport type Carousel = typeof OriginCarousel & {\n Content: typeof CarouselContent;\n Item: typeof CarouselItem;\n Next: typeof CarouselNext;\n Previous: typeof CarouselPrevious;\n indentify: typeof CarouselIdentifier;\n};\n\nconst Carousel = OriginCarousel as Carousel;\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\nCarousel.indentify = CarouselIdentifier;\n\nexport { Carousel };\n","import { FC } from \"react\";\nimport { DesktopSharePnLContent } from \"./desktop/content\";\nimport { MobileSharePnLContent } from \"./mobile/content\";\nimport { SharePnLState } from \"./sharePnL.script\";\n\nexport const DesktopSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <DesktopSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n\nexport const MobileSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <MobileSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n","import { SharePnLOptions, SharePnLParams } from \"../types/types\";\nimport { useSharePnLScript } from \"./sharePnL.script\";\nimport { DesktopSharePnL, MobileSharePnL } from \"./sharePnL.ui\";\n\nexport const SharePnLBottomSheetWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <MobileSharePnL {...state} />;\n};\n\nexport const SharePnLDialogWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <DesktopSharePnL {...state} />;\n};\n"]}
1
+ {"version":3,"sources":["../src/sharePnL/sharePnL.script.tsx","../src/sharePnL/poster/poster.tsx","../src/sharePnL/utils/utils.tsx","../src/sharePnL/desktop/bottomBtns.tsx","../src/sharePnL/desktop/buttons.tsx","../src/sharePnL/desktop/carousel.tsx","../src/sharePnL/desktop/checkbox.tsx","../src/sharePnL/desktop/message.tsx","../src/sharePnL/desktop/options.tsx","../src/sharePnL/desktop/pnlFormat.tsx","../src/sharePnL/desktop/content.tsx","../src/sharePnL/carousel/carousel.tsx","../src/sharePnL/carousel/index.tsx","../src/sharePnL/mobile/content.tsx","../src/sharePnL/sharePnL.ui.tsx","../src/sharePnL/sharePnL.widget.tsx","../src/index.ts"],"names":["useTranslation","jsx","jsxs","emblaApi","Flex","useMemo","cn","Text","useState","useRef","useEffect","toast","Box","useEmblaCarousel","api","Button","Carousel","PnlFormatView","ShareOption","Input","CloseCircleFillIcon"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useMemo } from \"react\";\nimport { useReferralInfo, useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { ReferralType, SharePnLOptions, SharePnLParams } from \"../types/types\";\n\nexport const useSharePnLScript = (props: {\n pnl?: SharePnLOptions & SharePnLParams;\n hide?: () => void;\n}) => {\n const { pnl, hide } = props;\n const entity = pnl?.entity;\n const symbolInfo = useSymbolsInfo();\n const { getFirstRefCode } = useReferralInfo();\n const referralInfo = useMemo((): ReferralType | undefined => {\n const code = getFirstRefCode()?.code;\n const info = {\n code: pnl?.refCode ?? code,\n slogan: pnl?.refSlogan,\n link: pnl?.refLink,\n };\n return info;\n }, [getFirstRefCode, pnl]);\n\n // print warning if entity is null\n if (!entity) {\n console.warn(\"Entity is null, the share pnl will not be displayed\");\n }\n\n // convert base_dp and quote_dp useMemo\n const base_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"base_dp\");\n }, [entity, symbolInfo]);\n const quote_dp = useMemo(() => {\n if (!entity) return undefined;\n return symbolInfo[entity?.symbol](\"quote_dp\");\n }, [entity, symbolInfo]);\n\n return {\n entity,\n baseDp: base_dp,\n quoteDp: quote_dp,\n referralInfo,\n shareOptions: pnl as SharePnLOptions,\n hide,\n };\n};\n\nexport type SharePnLState = ReturnType<typeof useSharePnLScript>;\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { type DrawOptions, usePoster } from \"@orderly.network/hooks\";\n\nexport type PosterProps = {\n width: number;\n height: number;\n className?: string;\n ratio?: number;\n data: DrawOptions;\n style?: React.CSSProperties;\n};\n\nexport type PosterRef = {\n download: (filename: string, type?: string, encoderOptions?: number) => void;\n toDataURL: (type?: string, encoderOptions?: number) => string;\n toBlob: (type?: string, encoderOptions?: number) => Promise<Blob | null>;\n copy: () => Promise<void>;\n};\n\nexport const Poster = forwardRef<PosterRef, PosterProps>((props, parentRef) => {\n const { width, height, className, data, style } = props;\n\n const { ref, download, toDataURL, copy, toBlob } = usePoster(data, {\n ratio: props.ratio,\n });\n\n useImperativeHandle(parentRef, () => ({\n download,\n toDataURL,\n toBlob,\n copy,\n }));\n\n return (\n <canvas\n ref={ref}\n width={width}\n height={height}\n className={className}\n style={style}\n />\n );\n});\n","/*\n{\n message: \"I am the Orderly KING.\",\n domain: \"ordely.network\",\n updateTime: \"2022-JAN-01 23:23\",\n position: {\n symbol: \"BTC-PERP\",\n currency: \"USDC\",\n side: \"LONG\",\n leverage: 20,\n pnl: 10432.23,\n ROI: 20.25,\n informations: [\n { title: \"Open Price\", value: 0.12313 },\n { title: \"Opened at\", value: \"Jan-01 23:23\" },\n { title: \"Mark price\", value: \"0.12341\" },\n { title: \"Quantity\", value: \"0.123\" },\n ],\n },\n referral: {\n code: \"WRECKED\",\n link: \"https://orderly.network\",\n slogan: \"Try Orderly now with:\",\n }\n }\n*/\n// import { PnLDisplayFormat, ShareOptions } from \"./type\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Decimal, formatNum } from \"@orderly.network/utils\";\nimport { PnLDisplayFormat, ShareEntity, ShareOptions } from \"../../types/types\";\n\nexport type ReferralType = {\n code?: string;\n link?: string;\n slogan?: string;\n};\n\nexport function getPnLPosterData(\n position: ShareEntity,\n message: string,\n domain: string,\n pnlType: PnLDisplayFormat,\n options: Set<ShareOptions>,\n baseDp?: number,\n quoteDp?: number,\n referral?: ReferralType,\n) {\n const { t } = useTranslation();\n const { symbol, currency } = processSymbol(position.symbol);\n const positionData: any = {\n symbol,\n currency,\n side: position.side,\n };\n\n switch (pnlType) {\n case \"pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n break;\n }\n case \"roi\": {\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n case \"roi_pnl\": {\n if (position.pnl != null) {\n positionData[\"pnl\"] = formatNum.pnl(position.pnl)?.toFixed(2);\n }\n if (position.roi != null) {\n positionData[\"ROI\"] = formatNum.roi(position.roi)?.toFixed(2);\n }\n break;\n }\n }\n\n const informations: { title: string; value: any }[] = [];\n\n if (options.has(\"leverage\")) {\n positionData[\"leverage\"] = position.leverage;\n }\n const array: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n ];\n array.forEach((key) => {\n if (options.has(key)) {\n switch (key) {\n case \"leverage\": {\n break;\n }\n case \"openPrice\": {\n if (position.openPrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openPrice\"),\n value: formatFixed(position.openPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"closePrice\": {\n if (position.closePrice != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closePrice\"),\n value: formatFixed(position.closePrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"openTime\": {\n if (position.openTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.openTime\"),\n value: formatOpenTime(position.openTime),\n });\n }\n break;\n }\n case \"closeTime\": {\n if (position.closeTime != null) {\n informations.push({\n title: t(\"share.pnl.optionalInfo.closeTime\"),\n value: formatOpenTime(position.closeTime),\n });\n }\n break;\n }\n case \"markPrice\": {\n if (position.markPrice != null) {\n informations.push({\n title: t(\"common.markPrice\"),\n value: formatFixed(position.markPrice, quoteDp || 2),\n });\n }\n break;\n }\n case \"quantity\": {\n if (position.quantity != null) {\n informations.push({\n title: t(\"common.quantity\"),\n value: formatFixed(position.quantity, baseDp || 2),\n });\n }\n }\n default:\n break;\n }\n }\n });\n\n positionData[\"informations\"] = informations;\n\n const data: any = {\n position: positionData,\n updateTime: formatShareTime(new Date()),\n domain,\n };\n if (message.length > 0) {\n data[\"message\"] = message;\n }\n\n if (typeof referral !== \"undefined\" && referral[\"code\"] !== undefined) {\n data[\"referral\"] = referral;\n }\n\n return data;\n}\n\ninterface SymbolResult {\n symbol: string;\n currency: string;\n}\n\nfunction processSymbol(symbol: string): SymbolResult {\n const tokens = symbol.split(\"_\");\n if (tokens.length !== 3) {\n return {\n symbol: symbol,\n currency: \"USDC\",\n };\n }\n\n const [symbol1, symbol2, symbol3] = tokens;\n const formattedString = `${symbol2}-${symbol1}`;\n\n return {\n symbol: formattedString,\n currency: symbol3 || \"USDC\",\n };\n}\n\nfunction formatShareTime(input: number): string;\nfunction formatShareTime(input: Date): string;\nfunction formatShareTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const year = formattedParts.find((part) =>\n part.type === \"year\" ? part.value : \"\",\n )?.value;\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${year}-${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatOpenTime(input: number | Date): string {\n const date = input instanceof Date ? input : new Date(input);\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n };\n\n const formatter = new Intl.DateTimeFormat(\"en-US\", options);\n const formattedParts = formatter.formatToParts(date);\n\n // console.log(\"formattedParts\", formattedParts);\n\n const month = formattedParts.find((part) =>\n part.type === \"month\" ? part.value : \"\",\n )?.value;\n const day = formattedParts.find((part) =>\n part.type === \"day\" ? part.value : \"\",\n )?.value;\n const hour = formattedParts.find((part) =>\n part.type === \"hour\" ? part.value : \"\",\n )?.value;\n const minute = formattedParts.find((part) =>\n part.type === \"minute\" ? part.value : \"\",\n )?.value;\n\n return `${month}-${day} ${hour}:${minute}`;\n}\n\nfunction formatFixed(value: number, dp: number) {\n return new Decimal(value).toFixed(dp, Decimal.ROUND_DOWN);\n}\n\nexport function savePnlInfo(\n format: PnLDisplayFormat,\n options: Set<ShareOptions>,\n bgIndex: number,\n message: string,\n) {\n localStorage.setItem(\n \"pnl_config_key\",\n JSON.stringify({\n bgIndex: bgIndex,\n pnlFormat: format,\n options: Array.from(options),\n message: message,\n }),\n );\n}\n\nexport function getPnlInfo(): {\n bgIndex: number;\n pnlFormat: PnLDisplayFormat;\n options: ShareOptions[];\n message: \"\";\n} {\n const str = localStorage.getItem(\"pnl_config_key\");\n\n if (str && str.length > 0) {\n try {\n const json = JSON.parse(str);\n\n return json;\n } catch (e) {}\n }\n return {\n bgIndex: 0,\n pnlFormat: \"roi_pnl\",\n options: [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"markPrice\",\n \"quantity\",\n \"leverage\",\n ],\n message: \"\",\n };\n}\n","import { FC } from \"react\";\nimport { Button, Flex } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const BottomButtons: FC<{\n onClickDownload: any;\n onClickCopy: any;\n}> = (props) => {\n const { onClickDownload, onClickCopy } = props;\n const { t } = useTranslation();\n\n return (\n <Flex px={8} gap={3} mt={3} itemAlign={\"center\"}>\n <Button\n color={\"secondary\"}\n className=\"oui-flex-1 oui-flex oui-gap-1\"\n onClick={onClickDownload}\n >\n <span>\n <DownloadIcon />\n </span>\n {t(\"common.download\")}\n </Button>\n\n <Button className=\"oui-flex-1 oui-flex oui-gap-1\" onClick={onClickCopy}>\n <span>\n <CopyIcon />\n </span>\n {t(\"common.copy\")}\n </Button>\n </Flex>\n );\n};\n\nconst DownloadIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.994A2.667 2.667 0 0 0 1.995 4.66v6.666a2.667 2.667 0 0 0 2.667 2.667h6.666a2.667 2.667 0 0 0 2.667-2.667V4.661a2.667 2.667 0 0 0-2.667-2.667zM7.995 4.66c.368 0 .667.298.667.666V8.66h2l-2.667 2.666L5.328 8.66h2V5.327c0-.368.299-.667.667-.667\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst CopyIcon = () => {\n return (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.166 1.994A2.667 2.667 0 0 0 2.499 4.66v4a2.667 2.667 0 0 0 2.667 2.667 2.667 2.667 0 0 0 2.666 2.667h4a2.667 2.667 0 0 0 2.667-2.667v-4a2.667 2.667 0 0 0-2.667-2.667 2.667 2.667 0 0 0-2.666-2.666zm6.666 4c.737 0 1.334.596 1.334 1.333v4c0 .737-.597 1.334-1.334 1.334h-4A1.333 1.333 0 0 1 6.5 11.327h2.667a2.667 2.667 0 0 0 2.666-2.667z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n","import { FC, PropsWithChildren } from \"react\";\n\ntype PropType = PropsWithChildren<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n>;\n\nexport const PrevButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M11.186 5.348a.67.67 0 0 0-.436.27l-2.657 4a.69.69 0 0 0 0 .75l2.657 4a.68.68 0 0 0 .934.188.685.685 0 0 0 .187-.937L9.463 9.993 11.87 6.37a.685.685 0 0 0-.187-.938.65.65 0 0 0-.498-.083\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n\nexport const NextButton: FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button {...restProps}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#333948\" />\n <path\n d=\"M8.777 5.348a.65.65 0 0 0-.498.083.685.685 0 0 0-.187.938L10.5 9.993 8.092 13.62a.685.685 0 0 0 .187.937.68.68 0 0 0 .934-.187l2.657-4a.69.69 0 0 0 0-.75l-2.657-4a.67.67 0 0 0-.436-.271\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n </button>\n );\n};\n","import { FC, useCallback, useEffect } from \"react\";\nimport { Box, cn, Flex, useEmblaCarousel } from \"@orderly.network/ui\";\nimport { NextButton, PrevButton } from \"./buttons\";\n\nexport const CarouselBackgroundImage: FC<{\n backgroundImages: ReadonlyArray<string> | string[];\n selectedSnap: number;\n setSelectedSnap: any;\n}> = (props) => {\n const { backgroundImages, selectedSnap, setSelectedSnap } = props;\n\n const [emblaRef, emblaApi] = useEmblaCarousel({\n // loop: true,\n containScroll: \"keepSnaps\",\n dragFree: true,\n });\n\n const onPrevButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollPrev()) {\n emblaApi.scrollPrev();\n } else if (selectedSnap - 1 >= 0) {\n setSelectedSnap(selectedSnap - 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onNextButtonClick = useCallback(() => {\n if (!emblaApi) {\n return;\n }\n if (emblaApi?.canScrollNext()) {\n emblaApi.scrollNext();\n } else if (selectedSnap + 1 < backgroundImages.length) {\n setSelectedSnap(selectedSnap + 1);\n }\n }, [emblaApi, selectedSnap]);\n\n const onSelect = useCallback((emblaApi: any) => {\n // setPrevBtnDisabled(!emblaApi.canScrollPrev());\n // setNextBtnDisabled(!emblaApi.canScrollNext());\n setSelectedSnap(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) {\n return;\n }\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n emblaApi?.scrollTo(selectedSnap);\n return () => {\n emblaApi.off(\"reInit\", onSelect);\n emblaApi.off(\"select\", onSelect);\n };\n }, [emblaApi, onSelect]);\n\n return (\n <Flex mt={4} px={2}>\n <PrevButton onClick={onPrevButtonClick} />\n <div\n ref={emblaRef}\n className=\"oui-w-full oui-overflow oui-overflow-x-auto oui-scrollbar-hidden oui-hide-scrollbar oui-mx-0\"\n >\n <Flex>\n {backgroundImages.map((e, index) => (\n <Box\n key={e}\n onClick={() => {\n if (emblaApi?.canScrollPrev() || emblaApi?.canScrollNext()) {\n emblaApi?.scrollTo(index);\n } else {\n setSelectedSnap(index);\n }\n }}\n mx={2}\n my={1}\n mr={6}\n r=\"base\"\n className={cn(\n \"oui-shrink-0 oui-w-[162px]\",\n selectedSnap === index &&\n \"oui-outline oui-outline-1 oui-outline-primary-darken\",\n )}\n >\n <img src={e} className=\"oui-rounded-sm\" />\n </Box>\n ))}\n </Flex>\n </div>\n <NextButton onClick={onNextButtonClick} />\n </Flex>\n );\n};\n","export const Checkbox = (props: {\n size?: number;\n className?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n}) => {\n const { size = 16, className } = props;\n return (\n <button\n type=\"button\"\n onClick={(e) => {\n props.onCheckedChange(!props.checked);\n }}\n className={className}\n >\n {props.checked ? (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm6.664 2.922a.8.8 0 0 1 .557-.208c.2 0 .406.063.558.208a.734.734 0 0 1 0 1.063l-5.434 5.179a.826.826 0 0 1-1.115 0l-2.33-2.22a.736.736 0 0 1 0-1.063.827.827 0 0 1 1.117 0l1.77 1.687z\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n ) : (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.66 1.953A2.667 2.667 0 0 0 1.995 4.62v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.62a2.667 2.667 0 0 0-2.667-2.667zm0 1.334h6.667c.737 0 1.334.596 1.334 1.333v6.667c0 .736-.597 1.333-1.334 1.333H4.661a1.333 1.333 0 0 1-1.334-1.333V4.62c0-.737.597-1.333 1.334-1.333\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n )}\n </button>\n );\n};\n","import { FC, useRef, useState } from \"react\";\nimport { CloseCircleFillIcon, Input, toast } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Message: FC<{\n message: string;\n setMessage: any;\n check: boolean;\n setCheck: any;\n}> = (props) => {\n const { message, setMessage, check, setCheck } = props;\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { t } = useTranslation();\n\n return (\n <div className=\"oui-mt-3 oui-mb-6 oui-flex oui-items-center\">\n <Checkbox\n className=\"oui-mt-[2px]\"\n checked={check}\n onCheckedChange={(e: boolean) => {\n setCheck(e);\n }}\n />\n <div\n className=\"oui-text-xs oui-text-base-contrast-54 oui-ml-1 hover:oui-cursor-pointer\"\n onClick={() => {\n setCheck(!props.check);\n }}\n >\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-900 oui-mx-2 oui-rounded-sm\">\n <Input\n ref={inputRef}\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n classNames={{\n root: \"oui-w-[320px]\",\n }}\n size=\"sm\"\n value={message}\n autoFocus={false}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setCheck(e.target.value.length > 0);\n setMessage(e.target.value);\n }}\n />\n </div>\n </div>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { ShareOptions } from \"../../types/types\";\nimport { Flex, Text, cn } from \"@orderly.network/ui\";\nimport { Checkbox } from \"./checkbox\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <Flex\n itemAlign={\"center\"}\n gap={1}\n className={cn(\"hover:oui-cursor-pointer\")}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <Checkbox\n size={16}\n checked={isSelected}\n className=\"oui-pt-[2px]\"\n onCheckedChange={(checked: boolean) => {\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n />\n\n <Text size=\"xs\" intensity={54}>\n {text}\n </Text>\n </Flex>\n );\n};\n","import { FC, useMemo } from \"react\";\nimport { PnLDisplayFormat } from \"../../types/types\";\nimport { Text, cn } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type, t]);\n\n const isSelected = type === curType;\n\n let clsName = \"oui-flex oui-items-center oui-gap-1 oui-cursor-pointer\";\n if (isSelected) {\n clsName += \" oui-text-base-contrast\";\n } else {\n clsName += \"\";\n }\n\n return (\n <div\n className={clsName}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <RadioButton sel={isSelected} />\n <Text\n size=\"xs\"\n intensity={54}\n className={cn(\n \"oui-ml-2 \"\n // isSelected && \"oui-text-base-contrast\"\n )}\n >\n {text}\n </Text>\n </div>\n );\n};\n\nconst RadioButton = (props: {\n sel?: boolean;\n // onChange?: (sel: boolean) => void;\n}) => {\n return (\n <button\n type=\"button\"\n // onClick={(e) => {\n // e.stopPropagation();\n // }}\n >\n {props.sel === true ? <SelIcon /> : <UnselIcon />}\n </button>\n );\n};\n\nconst SelIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-fill-primary-darken\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n </svg>\n );\n};\n\nconst UnselIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { Divider, Flex, toast, Text, Box } from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\nimport { BottomButtons } from \"./bottomBtns\";\nimport { CarouselBackgroundImage } from \"./carousel\";\nimport { Message } from \"./message\";\nimport { ShareOption } from \"./options\";\nimport { PnlFormatView } from \"./pnlFormat\";\n\nexport const DesktopSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n\n const localPnlConfig = getPnlInfo();\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [selectedSnap, setSelectedSnap] = useState(localPnlConfig.bgIndex);\n const [message, setMessage] = useState(localPnlConfig.message);\n const [check, setCheck] = useState(false);\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRef = useRef<PosterRef | null>(null);\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const curBgImg = useMemo(() => {\n return shareOptions?.backgroundImages?.[selectedSnap];\n }, [shareOptions?.backgroundImages, selectedSnap]);\n\n const posterData = getPnLPosterData(\n props.entity,\n check ? message : \"\",\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n\n const onCopy = () => {\n posterRef.current\n ?.copy()\n .then(() => {\n props.hide?.();\n toast.success(t(\"share.pnl.image.copied\"));\n })\n .catch((e: any) => {\n toast.error(() => {\n return (\n <div>\n <div>{t(\"common.copy.failed\")}</div>\n <div className=\"oui-mt-2 oui-max-w-[396px] oui-text-2xs oui-text-base-contrast-54\">\n {t(\"share.pnl.copy.failed.description\")}\n </div>\n </div>\n );\n });\n });\n };\n const onDownload = () => {\n posterRef.current?.download(\"Poster.png\");\n props.hide?.();\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"markPrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectedSnap, message);\n\n return (\n <div className=\"oui-relative oui-flex oui-size-full oui-flex-col\">\n <div className=\"oui-h-full oui-flex-1 oui-overflow-y-auto\">\n <Box mt={9} height={422}>\n <Flex itemAlign={\"center\"} justify={\"center\"}>\n <Poster\n // className=\"oui-mx-11\"\n width={552}\n height={310}\n data={{\n backgroundImg: curBgImg,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRef}\n />\n </Flex>\n <CarouselBackgroundImage\n backgroundImages={shareOptions?.backgroundImages ?? EMPTY_LIST}\n selectedSnap={selectedSnap}\n setSelectedSnap={setSelectedSnap}\n />\n </Box>\n\n <Flex\n direction={\"column\"}\n px={10}\n mt={6}\n justify={\"start\"}\n itemAlign={\"start\"}\n width={\"100%\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.displayFormat\")}\n </Text>\n <Flex pt={3} gap={3} itemAlign={\"center\"}>\n {formats.map((e, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={e}\n curType={pnlFormat}\n />\n ))}\n </Flex>\n\n <Divider className=\"oui-w-full oui-border-white/10 oui-pt-6\" />\n\n <Flex\n mt={6}\n direction={\"column\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Text size=\"sm\" intensity={80}>\n {t(\"share.pnl.optionalInfo\")}\n </Text>\n <Flex mt={3} gap={4} className=\"oui-flex-wrap\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </Flex>\n </Flex>\n\n <Message\n message={message}\n setMessage={setMessage}\n check={check}\n setCheck={setCheck}\n />\n </Flex>\n </div>\n\n <BottomButtons onClickCopy={onCopy} onClickDownload={onDownload} />\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n Button,\n ChevronLeftIcon,\n ChevronRightIcon,\n cn,\n useEmblaCarousel,\n type UseEmblaCarouselType,\n} from \"@orderly.network/ui\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n initIndex?: number;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n selectedIndex: number;\n scrollSnaps: number[];\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nexport function useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>((originalProps, ref) => {\n const {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n } = originalProps;\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(\n props.initIndex || 0,\n );\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([]);\n\n const onSelect = React.useCallback(\n (api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n // console.log(\"selected\", api.scrollSnapList());\n\n if (scrollSnaps.length === 0) {\n setScrollSnaps(api.scrollSnapList());\n }\n\n setSelectedIndex(api.selectedScrollSnap());\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n },\n [scrollSnaps],\n );\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n if (props.initIndex) {\n api.scrollTo(props.initIndex);\n }\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n const memoizedValue = React.useMemo<CarouselContextProps>(() => {\n return {\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n };\n }, [\n carouselRef,\n api,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n selectedIndex,\n scrollSnaps,\n ]);\n\n return (\n <CarouselContext.Provider value={memoizedValue}>\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"oui-relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n});\n\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { carouselRef, orientation } = useCarousel();\n return (\n <div ref={carouselRef} className=\"oui-overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"oui-flex\",\n orientation === \"horizontal\" ? \"oui--ml-4\" : \"oui--mt-4 oui-flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n});\n\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>((originalProps, ref) => {\n const { className, children, ...props } = originalProps;\n const { orientation } = useCarousel();\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"oui-min-w-0 oui-shrink-0 oui-grow-0 oui-basis-full\",\n orientation === \"horizontal\" ? \"oui-pl-4\" : \"oui-pt-4\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--left-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--top-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon size={20} />\n <span className=\"oui-sr-only\">Previous slide</span>\n </Button>\n );\n});\n\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>((originalProps, ref) => {\n const {\n className,\n variant = \"contained\",\n size = \"icon\",\n ...props\n } = originalProps;\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n return (\n <Button\n ref={ref}\n variant={variant}\n // size={size}\n className={cn(\n \"oui-absolute oui-size-8 oui-rounded-full\",\n orientation === \"horizontal\"\n ? \"oui--right-12 oui-top-1/2 oui--translate-y-1/2\"\n : \"oui--bottom-12 oui-left-1/2 oui--translate-x-1/2 oui-rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon size={20} />\n <span className=\"oui-sr-only\">Next slide</span>\n </Button>\n );\n});\n\nCarouselNext.displayName = \"CarouselNext\";\n\nexport type CarouselIdentifierProps = {\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n // asChild?: boolean;\n};\n\nconst CarouselIdentifier: React.FC<CarouselIdentifierProps> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n return (\n <div className={cn(\"oui-flex oui-gap-1\", props.className)}>\n {scrollSnaps.map((_, index) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nCarouselIdentifier.displayName = \"CarouselIdentifier\";\n\nexport const Dot: React.FC<{\n index: number;\n active: boolean;\n onClick?: (index: number) => void;\n className?: string;\n activeClassName?: string;\n}> = ({ index, active, onClick, className, activeClassName }) => {\n const activedClassName = activeClassName || \"oui-bg-primary-darken\";\n return (\n <button\n onClick={() => onClick?.(index)}\n className={cn(\n \"oui-size-2 oui-rounded-full oui-bg-white/30\",\n className,\n active && `active ${activedClassName}`,\n )}\n />\n );\n};\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n CarouselIdentifier,\n};\n","import {\n Carousel as OriginCarousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n CarouselIdentifier,\n} from \"./carousel\";\n\nexport type Carousel = typeof OriginCarousel & {\n Content: typeof CarouselContent;\n Item: typeof CarouselItem;\n Next: typeof CarouselNext;\n Previous: typeof CarouselPrevious;\n indentify: typeof CarouselIdentifier;\n};\n\nconst Carousel = OriginCarousel as Carousel;\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\nCarousel.indentify = CarouselIdentifier;\n\nexport { Carousel };\n","import { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n CloseCircleFillIcon,\n cn,\n Input,\n ScrollArea,\n toast,\n} from \"@orderly.network/ui\";\nimport {\n PnLDisplayFormat,\n ReferralType,\n ShareEntity,\n ShareOptions,\n SharePnLOptions,\n} from \"../../types/types\";\nimport { Carousel } from \"../carousel\";\nimport {\n CarouselContent,\n CarouselItem,\n Dot,\n useCarousel,\n} from \"../carousel/carousel\";\nimport { Poster } from \"../poster\";\nimport { PosterRef } from \"../poster/poster\";\nimport { getPnlInfo, getPnLPosterData, savePnlInfo } from \"../utils/utils\";\n\nexport const MobileSharePnLContent: FC<{\n entity: ShareEntity;\n hide: any;\n baseDp?: number;\n quoteDp?: number;\n referral?: ReferralType;\n shareOptions: SharePnLOptions;\n}> = (props) => {\n const { shareOptions } = props;\n const { t } = useTranslation();\n const localPnlConfig = getPnlInfo();\n\n const hasRoiAndPnl = props.entity.roi != null && props.entity.pnl != null;\n const formats: PnLDisplayFormat[] = hasRoiAndPnl\n ? [\"roi_pnl\", \"roi\", \"pnl\"]\n : props.entity.roi != null\n ? [\"roi\"]\n : props.entity.pnl != null\n ? [\"pnl\"]\n : [];\n\n const [pnlFormat, setPnlFormat] = useState<PnLDisplayFormat>(\n formats.length == 1 ? formats[0] : localPnlConfig.pnlFormat,\n );\n const [shareOption, setShareOption] = useState<Set<ShareOptions>>(\n new Set(localPnlConfig.options),\n );\n const [message, setMessage] = useState<string>(localPnlConfig.message);\n const [selectIndex, setSelectIndex] = useState(localPnlConfig.bgIndex);\n // const { shareOptions } = useTradingPageContext();\n const { backgroundImages, ...resetOptions } = shareOptions ?? {\n backgroundImages: [],\n };\n\n const [domain, setDomain] = useState(\"\");\n\n const posterRefs = shareOptions?.backgroundImages?.map(() =>\n useRef<PosterRef | null>(null),\n );\n\n useEffect(() => {\n const currentDomain = window.location.hostname;\n setDomain(currentDomain);\n }, []);\n\n const posterData = getPnLPosterData(\n props.entity,\n message,\n domain,\n pnlFormat,\n shareOption,\n props.baseDp,\n props.quoteDp,\n props.referral,\n );\n // console.log(\"pster data\", posterData, props.entity);\n\n const carouselRef = useRef<any>();\n const aspectRatio = 552 / 310;\n const [scale, setScale] = useState(1);\n const [carouselHeight, setCarouselHeight] = useState(0);\n\n const [focus, setFocus] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (carouselRef.current) {\n const divWidth = carouselRef.current.offsetWidth;\n const divHeight = divWidth / aspectRatio;\n setCarouselHeight(divHeight);\n setScale(divWidth / 552);\n }\n }, [carouselRef, domain]);\n\n const onSharePnL = async (\n posterRef: React.MutableRefObject<PosterRef | null>,\n ) => {\n if (!posterRef.current) return;\n const data = posterRef.current?.toDataURL();\n const blob = dataURItoBlob(data);\n try {\n // Check if the browser supports the share feature\n if (navigator.share) {\n await navigator.share({\n // title: \"Share PnL\",\n text: message,\n // url: imageUrl,\n files: [new File([blob], \"image.png\", { type: \"image/png\" })],\n });\n console.log(\"Image shared successfully!\");\n } else {\n console.log(\"Share API is not supported in this browser.\");\n }\n props.hide?.();\n } catch (error) {\n console.error(\"Error sharing image:\", error);\n }\n };\n\n // check if the entity has the option, like formats\n const options: ShareOptions[] = useMemo(() => {\n const mapping: ShareOptions[] = [\n \"openPrice\",\n \"closePrice\",\n \"openTime\",\n \"closeTime\",\n \"leverage\",\n \"markPrice\",\n \"quantity\",\n ];\n\n return mapping.filter((key) => !!props.entity[key]);\n }, [props.entity]);\n\n savePnlInfo(pnlFormat, shareOption, selectIndex, message);\n\n return (\n <div className=\"oui-w-full\">\n <div\n ref={carouselRef}\n className=\"oui-mt-4 oui-w-full oui-overflow-hidden\"\n style={{ height: `${carouselHeight + 20}px` }}\n >\n <Carousel\n className=\"oui-w-full oui-overflow-hidden\"\n opts={{ align: \"start\" }}\n initIndex={selectIndex}\n >\n <CarouselContent style={{ height: `${carouselHeight}px` }}>\n {shareOptions?.backgroundImages?.map((item, index) => (\n <CarouselItem key={index}>\n <Poster\n className=\"oui-origin-top-left oui-transform\"\n style={{ scale: `${scale}` }}\n width={552}\n height={310}\n data={{\n backgroundImg: item,\n ...resetOptions,\n data: posterData,\n }}\n ratio={3}\n ref={posterRefs?.[index]}\n />\n </CarouselItem>\n ))}\n </CarouselContent>\n <div className=\"oui-mb-1 oui-mt-2 oui-flex oui-justify-center\">\n <MyIdentifier\n dotClassName=\"oui-w-[16px] oui-h-[4px] oui-bg-base-300\"\n dotActiveClassName=\"!oui-bg-primary-darken oui-w-[20px]\"\n setSelectIndex={setSelectIndex}\n />\n </div>\n </Carousel>\n </div>\n\n {/* @ts-ignore */}\n <ScrollArea className=\"oui-custom-scrollbar oui-max-h-[200px] oui-overflow-y-auto\">\n <div className=\"oui-mt-4\">\n <div className=\"oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.displayFormat\")}\n </div>\n <div className=\"oui-row-span-1 oui-grid oui-grid-cols-3 oui-justify-between oui-gap-3 oui-px-1 oui-pt-3\">\n {formats.map((item, index) => (\n <PnlFormatView\n key={index}\n setPnlFormat={setPnlFormat}\n type={item}\n curType={pnlFormat}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo\")}\n </div>\n <div className=\"oui-mt-3 oui-flex oui-flex-wrap oui-gap-3\">\n {options.map((item, index) => (\n <ShareOption\n key={index}\n setShareOption={setShareOption}\n type={item}\n curType={shareOption}\n />\n ))}\n </div>\n </div>\n\n <div className=\"oui-mb-8 oui-mt-3\">\n <div className=\"oui-h-[18px] oui-text-3xs oui-text-base-contrast-54\">\n {t(\"share.pnl.optionalInfo.message\")}\n </div>\n <div className=\"oui-bg-base-600 oui-mx-1 oui-mt-3 oui-h-[48px]\">\n <Input\n placeholder={t(\"share.pnl.optionalInfo.message.placeholder\")}\n containerClassName=\"oui-bg-transparent oui-h-[48px]\"\n value={message}\n autoFocus={false}\n onChange={(e) => {\n if (e.target.value.length > 25) {\n toast.error(t(\"share.pnl.optionalInfo.message.maxLength\"));\n return;\n }\n setMessage(e.target.value);\n }}\n ref={inputRef}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n suffix={\n focus && (\n <button\n className=\"oui-mr-3 oui-cursor-pointer\"\n onMouseDown={(e) => {\n console.log(\"set message to empty\");\n\n setMessage(\"\");\n setTimeout(() => {\n inputRef.current?.focus();\n }, 50);\n e.stopPropagation();\n }}\n >\n <CloseCircleFillIcon size={18} color=\"white\" />\n </button>\n )\n }\n />\n </div>\n </div>\n </ScrollArea>\n\n <div className=\"oui-pt-2\">\n <Button\n fullWidth\n className=\"oui-h-[40px] oui-text-[16px]\"\n onClick={() => {\n const ref = posterRefs?.[selectIndex];\n if (ref) {\n onSharePnL(ref);\n }\n }}\n >\n {t(\"common.share\")}\n </Button>\n </div>\n </div>\n );\n};\n\nconst PnlFormatView: FC<{\n type: PnLDisplayFormat;\n curType?: PnLDisplayFormat;\n setPnlFormat: any;\n}> = (props) => {\n const { type, curType, setPnlFormat } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"roi_pnl\":\n return t(\"share.pnl.displayFormat.roi&Pnl\");\n case \"roi\":\n return t(\"share.pnl.displayFormat.roi\");\n case \"pnl\":\n return t(\"share.pnl.displayFormat.pnl\");\n }\n }, [type]);\n\n const isSelected = type === curType;\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-flex oui-h-[46px] oui-flex-1 oui-items-center oui-rounded-lg oui-bg-base-4 oui-px-3 oui-shadow-lg hover:oui-cursor-pointer\",\n isSelected && \"oui-dot-sel oui-bg-primary-darken\",\n )}\n onClick={() => {\n setPnlFormat(type);\n }}\n >\n <div className=\"oui-text-sm oui-text-base-contrast\">{text}</div>\n {/* {isSelected && <RadioIcon size={20} />} */}\n </div>\n );\n};\n\nconst ShareOption: FC<{\n type: ShareOptions;\n curType: Set<ShareOptions>;\n setShareOption: any;\n}> = (props) => {\n const { type, curType, setShareOption } = props;\n const { t } = useTranslation();\n\n const text = useMemo(() => {\n switch (type) {\n case \"openPrice\":\n return t(\"share.pnl.optionalInfo.openPrice\");\n case \"closePrice\":\n return t(\"share.pnl.optionalInfo.closePrice\");\n case \"openTime\":\n return t(\"share.pnl.optionalInfo.openTime\");\n case \"closeTime\":\n return t(\"share.pnl.optionalInfo.closeTime\");\n case \"markPrice\":\n return t(\"common.markPrice\");\n case \"quantity\":\n return t(\"common.quantity\");\n case \"leverage\":\n return t(\"common.leverage\");\n }\n }, [type, t]);\n\n const isSelected = curType.has(type);\n\n return (\n <div\n className={cn(\n \"oui-referral-shadow oui-mt-0 oui-flex oui-h-[46px] oui-w-[calc(50%-6px)] oui-items-center oui-rounded-lg oui-bg-base-4 oui-p-3 oui-shadow-lg hover:oui-cursor-pointer\",\n )}\n onClick={() => {\n // setPnlFormat(type);\n setShareOption((value: Set<ShareOptions>) => {\n const updateSet = new Set(value);\n if (isSelected) {\n updateSet.delete(type);\n } else {\n updateSet.add(type);\n }\n return updateSet;\n });\n }}\n >\n <div className=\"oui-flex-1 oui-text-sm oui-text-base-contrast\">\n {text}\n </div>\n {isSelected && <ChoicesFillIcon />}\n </div>\n );\n};\nfunction dataURItoBlob(dataURI: string) {\n const byteString = atob(dataURI.split(\",\")[1]);\n const mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type: mimeString });\n}\n\nconst MyIdentifier: FC<{\n setSelectIndex: any;\n className?: string;\n dotClassName?: string;\n dotActiveClassName?: string;\n onClick?: (index: number) => void;\n}> = (props) => {\n const { scrollSnaps, selectedIndex } = useCarousel();\n useEffect(() => {\n props.setSelectIndex(selectedIndex);\n }, [selectedIndex]);\n\n return (\n <div className={cn(\"oui-flex oui-gap-1\")}>\n {scrollSnaps.map((_: any, index: number) => {\n return (\n <Dot\n key={index}\n index={index}\n active={index === selectedIndex}\n onClick={props.onClick}\n className={props.dotClassName}\n activeClassName={props.dotActiveClassName}\n />\n );\n })}\n </div>\n );\n};\n\nconst ChoicesFillIcon = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.01416 11.9989C2.01416 6.47589 6.49136 1.9989 12.0142 1.9989C17.5372 1.9989 22.0142 6.47589 22.0142 11.9989C22.0142 17.5219 17.5372 21.9989 12.0142 21.9989C6.49136 21.9989 2.01416 17.5219 2.01416 11.9989ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6583 7.31211C19.1139 7.74546 19.1139 8.47384 18.6583 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z\"\n fill=\"white\"\n fillOpacity=\"1\"\n />\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { DesktopSharePnLContent } from \"./desktop/content\";\nimport { MobileSharePnLContent } from \"./mobile/content\";\nimport { SharePnLState } from \"./sharePnL.script\";\n\nexport const DesktopSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <DesktopSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n\nexport const MobileSharePnL: FC<SharePnLState> = (props) => {\n const { entity, baseDp, quoteDp, referralInfo, shareOptions, hide } = props;\n if (!shareOptions || !entity) {\n return null;\n }\n return (\n <MobileSharePnLContent\n entity={entity}\n hide={hide}\n baseDp={baseDp}\n quoteDp={quoteDp}\n referral={referralInfo}\n shareOptions={shareOptions}\n />\n );\n};\n","import { SharePnLOptions, SharePnLParams } from \"../types/types\";\nimport { useSharePnLScript } from \"./sharePnL.script\";\nimport { DesktopSharePnL, MobileSharePnL } from \"./sharePnL.ui\";\n\nexport const SharePnLBottomSheetWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <MobileSharePnL {...state} />;\n};\n\nexport const SharePnLDialogWidget = (props: {\n hide?: () => void;\n pnl?: SharePnLOptions & SharePnLParams;\n}) => {\n const state = useSharePnLScript({\n hide: props.hide,\n pnl: props.pnl,\n });\n return <DesktopSharePnL {...state} />;\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport {\n SharePnLDialogWidget,\n SharePnLBottomSheetWidget,\n} from \"./sharePnL/sharePnL.widget\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nconst SharePnLDialogId = \"sharePnLDialog\";\nconst SharePnLBottomSheetId = \"sharePnLBottomSheet\";\n\nregisterSimpleDialog(SharePnLDialogId, SharePnLDialogWidget, {\n classNames: {\n content: \"!oui-max-w-[624px] oui-p-0\",\n },\n});\n\nregisterSimpleSheet(SharePnLBottomSheetId, SharePnLBottomSheetWidget, {\n title: i18n.t(\"share.pnl.sharePnl\"),\n classNames: {\n body: \"oui-pb-4 oui-pt-0\",\n },\n});\n\nexport * from \"./sharePnL\";\nexport { SharePnLDialogId, SharePnLBottomSheetId };\nexport type {\n SharePnLConfig,\n SharePnLOptions,\n SharePnLParams,\n} from \"./types/types\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orderly.network/ui-share",
3
- "version": "2.8.10-alpha.0",
3
+ "version": "2.8.11-alpha.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -15,11 +15,11 @@
15
15
  "access": "public"
16
16
  },
17
17
  "dependencies": {
18
- "@orderly.network/hooks": "2.8.10-alpha.0",
19
- "@orderly.network/types": "2.8.10-alpha.0",
20
- "@orderly.network/ui": "2.8.10-alpha.0",
21
- "@orderly.network/utils": "2.8.10-alpha.0",
22
- "@orderly.network/i18n": "2.8.10-alpha.0"
18
+ "@orderly.network/hooks": "2.8.11-alpha.0",
19
+ "@orderly.network/types": "2.8.11-alpha.0",
20
+ "@orderly.network/i18n": "2.8.11-alpha.0",
21
+ "@orderly.network/utils": "2.8.11-alpha.0",
22
+ "@orderly.network/ui": "2.8.11-alpha.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@swc/cli": "^0.3.12",
@@ -29,8 +29,8 @@
29
29
  "react": "^18.2.0",
30
30
  "react-dom": "^18.2.0",
31
31
  "tailwindcss": "^3.4.4",
32
- "tsup": "^7.1.0",
33
- "tsconfig": "0.11.10-alpha.0"
32
+ "tsup": "^8.5.1",
33
+ "tsconfig": "0.11.11-alpha.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "react": ">=18",