{
  "version": 3,
  "sources": ["../../src/components/CryptoAssetRenderer.tsx", "../../src/components/Asset.tsx", "../../src/modules/price-widget/hooks/useApiCall.ts", "../../src/modules/price-widget/hooks/useParsePriceWidgetConfig.ts", "../../src/modules/price-widget/models/PriceWidgetConfig.ts", "../../src/modules/price-widget/lib/appendSvg.ts", "../../src/modules/price-widget/lib/PriceWidgetConfigs.ts", "../../src/modules/price-widget/hooks/usePriceWidgetConfigs.ts", "../../src/Plugin.ts"],
  "sourcesContent": ["import { Grid } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport type { PayloadDetailsRenderProps } from '@xyo-network/react-payload-plugin'\nimport { PayloadDataMissing } from '@xyo-network/react-shared'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport React from 'react'\n\nimport { CryptoAsset } from './Asset.tsx'\n\nexport type CryptoAssetRendererProps = PayloadDetailsRenderProps & {\n  payload?: Payload\n}\n\nconst isEmpty = (obj?: object) => Object.keys(obj ?? {}).length === 0\n\nexport const CryptoAssetRenderer: React.FC<CryptoAssetRendererProps> = ({ payload, ...props }) => {\n  const cryptoAssetPayload = payload as CryptoMarketAssetPayload | undefined\n\n  if (isEmpty(cryptoAssetPayload?.assets)) {\n    return <PayloadDataMissing alertBody=\"Payload is missing valid asset prices\" />\n  }\n\n  return (\n    <FlexCol\n      {...props}\n      sx={{\n        alignItems: 'stretch',\n        justifyContent: 'flex-start',\n      }}\n    >\n      <Grid\n        container\n        spacing={1}\n        sx={{ justifyContent: 'center' }}\n      >\n        {cryptoAssetPayload\n          ? Object.entries(cryptoAssetPayload.assets).map(([asset, priceInfo]) => (\n              <Grid\n                key={asset}\n                size={{\n                  xs: 12, md: 6, lg: 4, xl: 3,\n                }}\n              >\n                <CryptoAsset style={{ height: '100%' }} asset={asset} priceInfo={priceInfo} />\n              </Grid>\n            ))\n          : null}\n      </Grid>\n    </FlexCol>\n  )\n}\n", "import type { CardProps, PaperProps } from '@mui/material'\nimport {\n  Card, CardContent, Divider, Link, Paper,\n} from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { useIsDark } from '@xylabs/react-theme'\nimport { toDecimalPrecision } from '@xylabs/sdk-js'\nimport type { AssetInfo } from '@xyo-network/crypto-asset-payload-plugin'\nimport {\n  getTokenData,\n  TokenBar, TokenSummary,\n} from '@xyo-network/react-shared'\nimport React, { Fragment } from 'react'\n\nexport interface CryptoAssetProps extends CardProps {\n  asset: string\n  priceInfo?: AssetInfo\n}\n\nexport const CryptoAsset: React.FC<CryptoAssetProps> = ({\n  asset, priceInfo, ...props\n}) => {\n  const isDarkMode = useIsDark()\n\n  const [tokenInfo] = getTokenData([asset])\n\n  const tokenBarBgProps: PaperProps = {\n    sx: {\n      bgcolor: isDarkMode ? 'inherit' : '#F6F5FA',\n      border: 'none',\n    },\n  }\n\n  const formattedPrice = (price: string) => {\n    const floatedPrice = Number.parseFloat(price)\n    return toDecimalPrecision(floatedPrice, 3)\n  }\n\n  return (\n    <Card className=\"CryptoAsset-root\" {...props}>\n      <TokenSummary\n        icon={tokenInfo.icon}\n        symbol={asset}\n        symbolElement={(\n          <Link href={tokenInfo.coinmarketcapLink} underline=\"hover\" target=\"_blank\">\n            {asset}\n          </Link>\n        )}\n        action={<QuickTipButton hoverText=\"The price of cryptos based on multiple inputs.\" disableDialog />}\n      />\n      <CardContent style={{ height: '100%' }}>\n        <FlexCol\n          sx={{\n            alignItems: 'stretch',\n            height: '100%',\n            justifyContent: 'flex-start',\n          }}\n        >\n          <FlexCol\n            sx={{\n              alignItems: 'stretch',\n              justifyContent: 'flex-start',\n            }}\n          >\n            <Paper\n              sx={{\n                alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1, overflow: 'hidden',\n              }}\n              elevation={0}\n            >\n              {Object.entries(priceInfo?.value ?? {}).map(([currency, price], index, arr) => (\n                <Fragment key={currency}>\n                  <TokenBar square text1={currency.toUpperCase()} text2={formattedPrice(price)} text2Props={{ title: price }} {...tokenBarBgProps} />\n                  {/* hide the last divider */}\n                  {index === arr.length - 1 ? null : <Divider flexItem />}\n                </Fragment>\n              ))}\n            </Paper>\n          </FlexCol>\n        </FlexCol>\n      </CardContent>\n    </Card>\n  )\n}\n", "import { usePromise } from '@xylabs/react-promise'\nimport { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport axios from 'axios'\nimport { useState } from 'react'\n\nexport const useApiCall = <T extends Payload = Payload>(url?: string, idFunction?: (payload?: Payload) => boolean) => {\n  const [retry, setRetry] = useState(1)\n\n  const [response, error, state] = usePromise<T>(async () => {\n    if (isDefined(url) && retry > 0) {\n      const response = await axios(url)\n      const json = response.data\n      if (idFunction) {\n        const assertedValue = assertEx(idFunction(json) ? json : null, () => 'Api Response did not match expected format')\n        return assertedValue\n      }\n      return json\n    }\n  }, [idFunction, url, retry])\n\n  return [response, error, state, () => setRetry(retry + 1)] as const\n}\n", "import type { UsePromiseState } from '@xylabs/react-promise'\nimport {\n  assertEx, isDefined, isDefinedNotNull,\n} from '@xylabs/sdk-js'\nimport type { CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { JSONPath } from 'jsonpath-plus'\nimport { DateTime } from 'luxon'\nimport { useMemo } from 'react'\n\nimport { isPriceWidgetConfigLike, type PriceWidgetConfigFields } from '../models/index.ts'\nimport { useApiCall } from './useApiCall.ts'\n\nexport interface ParsedPriceWidgetResult extends PriceWidgetConfigFields {\n  error?: Error\n  name?: string\n  price?: string\n  relativeTime?: string | null\n  result?: CryptoMarketAssetPayload\n  retry?: () => void\n  state?: UsePromiseState\n  timestamp?: number\n}\n\nconst normalizeTimestamp = (timestamp?: number | string) => {\n  switch (typeof timestamp) {\n    case 'string': {\n      return DateTime.fromISO(timestamp).toMillis()\n    }\n    case 'number': {\n      return timestamp\n    }\n    default: {\n      return\n    }\n  }\n}\n\nexport const useParsePriceWidgetConfig = (payload?: Payload) => {\n  const priceWidgetConfig = useMemo(\n    () => (payload ? assertEx(isPriceWidgetConfigLike(payload) ? payload : null, () => 'Invalid payload') : undefined),\n    [payload],\n  )\n\n  const [result, error, state, retry] = useApiCall<CryptoMarketAssetPayload>(priceWidgetConfig?.source)\n\n  const ret: ParsedPriceWidgetResult = useMemo(() => {\n    if (!result) return {} as ParsedPriceWidgetResult\n    const normalizedTimestamp = normalizeTimestamp(result?.timestamp)\n    let price = 'none'\n    for (const path of priceWidgetConfig?.priceJsonPaths || []) {\n      const foundPrice = JSONPath({ json: result, path })[0]\n      if (isDefinedNotNull(foundPrice)) {\n        price = foundPrice\n        break\n      }\n    }\n\n    return isDefined(result) && priceWidgetConfig && isDefined(normalizedTimestamp)\n      ? ({\n          ...priceWidgetConfig,\n          // Custom Fields for easier ui rendering\n          error,\n          name: priceWidgetConfig.currency.toUpperCase(),\n          price,\n          relativeTime: DateTime.fromMillis(normalizedTimestamp).toRelative(),\n          result,\n          retry,\n          state,\n          timestamp: normalizedTimestamp,\n        })\n      : ({} as ParsedPriceWidgetResult)\n  }, [error, priceWidgetConfig, result, retry, state])\n\n  return ret\n}\n", "import type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nexport const PriceWidgetConfigSchema = asSchema('network.xyo.price.widget.config', true)\nexport type PriceWidgetConfigSchema = typeof PriceWidgetConfigSchema\n\nexport interface PriceWidgetConfigFields {\n  buyLink?: string\n  // Name of the currency\n  currency: string\n  // Number of decimal places to display\n  decimals: number\n  // Icon of the currency - currently only supports svg\n  iconSrc?: string\n  // json path to the price value\n  priceJsonPaths: string[]\n  // Source of the data - i.e. API endpoint\n  source: string\n}\n\nexport type PriceWidgetConfig = Payload<PriceWidgetConfigFields, PriceWidgetConfigSchema>\n\nexport const isPriceWidgetConfig = isPayloadOfSchemaType<PriceWidgetConfig>(PriceWidgetConfigSchema)\n\nexport const isPriceWidgetConfigLike = (obj: unknown): obj is PriceWidgetConfigFields => {\n  if (typeof obj !== 'object' || obj === null) return false\n  const o = obj as PriceWidgetConfigFields\n  return (\n    typeof o.currency === 'string'\n    && typeof o.decimals === 'number'\n    && Array.isArray(o.priceJsonPaths)\n    && o.priceJsonPaths.every(p => typeof p === 'string')\n    && typeof o.source === 'string'\n    && (o.buyLink === undefined || typeof o.buyLink === 'string')\n    && (o.iconSrc === undefined || typeof o.iconSrc === 'string')\n  )\n}\n", "import { assertEx, isUndefinedOrNull } from '@xylabs/sdk-js'\n\nexport const appendSvg = (iconSrc?: string, container?: HTMLElement | null) => {\n  if (isUndefinedOrNull(iconSrc) || isUndefinedOrNull(container)) return null\n  const parser = new DOMParser()\n\n  const fragment = assertEx(parser.parseFromString(iconSrc, 'text/html').body.firstChild, () => `Failed to get SVG body: ${iconSrc}`)\n  container.append(fragment)\n}\n", "/* eslint-disable @stylistic/max-len */\nimport { type PriceWidgetConfig, PriceWidgetConfigSchema } from '../models/index.ts'\n\nexport const XyoPriceWidgetConfig: PriceWidgetConfig = {\n  buyLink: 'https://xyo.network/token/exchange',\n  currency: 'XYO',\n  decimals: 5,\n  iconSrc: `\n    <svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 900 900\">\n      <defs>\n        <style>.cls-1{fill:url(#linear-gradient);}.cls-1,.cls-2{stroke-width:0px;}.cls-2{fill:#a8a8a8;opacity:.21;}</style>\n        <linearGradient id=\"linear-gradient\" x1=\"34.7\" y1=\"450.98\" x2=\"865.07\" y2=\"450.98\" gradientUnits=\"userSpaceOnUse\">\n          <stop offset=\"0\" stop-color=\"#579fd6\"/><stop offset=\".52\" stop-color=\"#eb407a\"/>\n          <stop offset=\"1\" stop-color=\"#f27046\"/>\n        </linearGradient>\n      </defs>\n      <path class=\"cls-2\" d=\"M864.29,297.43c-2.44-6.58-9.76-9.94-16.34-7.5l-143.74,53.26L533.2,21.88c-1.85-3.48-5.21-5.9-9.09-6.56-3.89-.66-7.85.51-10.75,3.18l-267.76,246.55-118-97.86c-5.4-4.48-13.42-3.73-17.9,1.67-4.48,5.4-3.73,13.42,1.67,17.9l118,97.86L36.62,593.37c-2.09,3.34-2.5,7.46-1.14,11.15s4.37,6.54,8.13,7.72l347.4,108.61-25.75,151.12c-1.18,6.92,3.48,13.49,10.4,14.67.24.04.47.07.7.1,6.66.76,12.82-3.81,13.96-10.5l25.75-151.12,363.77,12.56c3.94.14,7.71-1.56,10.22-4.59,2.51-3.03,3.48-7.06,2.62-10.9l-79.64-355.16,143.75-53.26c6.58-2.44,9.94-9.75,7.5-16.34ZM518.49,48.34l156.33,293.75-401.12-68.35,244.79-225.4ZM674.37,367.8l-264.69,319.16-144.06-388.81,408.75,69.65ZM66.9,592.88l176.22-282.26,141.37,381.56-317.59-99.29ZM431.72,700.22l259.75-313.21,72.81,324.69-332.56-11.48Z\"/>\n      <path class=\"cls-1\" d=\"M865.04,302.64c.01-.2.02-.4.03-.6,0-.33,0-.66-.03-.99-.01-.2-.02-.39-.04-.58-.04-.35-.1-.71-.17-1.06-.03-.16-.05-.32-.09-.48-.12-.5-.26-1.01-.45-1.5-.18-.49-.4-.97-.64-1.43-.08-.15-.17-.29-.25-.43-.17-.31-.35-.61-.55-.9-.12-.17-.24-.33-.37-.49-.19-.25-.39-.5-.6-.74-.14-.16-.29-.32-.45-.47-.22-.22-.45-.44-.68-.65-.1-.08-.18-.18-.27-.26L530.1,18.07c-.34-.28-.7-.53-1.07-.77-.09-.06-.17-.13-.26-.19-.62-.39-1.26-.7-1.92-.98-.18-.07-.36-.14-.54-.21-.71-.26-1.43-.47-2.16-.6,0,0-.01,0-.02,0,0,0,0,0-.01,0-.67-.11-1.35-.15-2.03-.16-.37,0-.73,0-1.09.03-.23.02-.46.06-.7.09-.86.11-1.69.31-2.5.59-.07.03-.15.04-.23.07l-.32.12c-.2.08-.4.13-.59.22L115.08,165.06c-.11.04-.22.1-.33.15-.3.12-.59.25-.88.39-.19.1-.38.19-.57.3-.27.15-.54.32-.81.5-.17.12-.35.22-.52.35-.27.2-.53.42-.79.64-.14.12-.28.23-.41.35-.35.33-.68.68-1,1.05-.04.05-.08.1-.12.14-.32.38-.6.78-.87,1.2-.09.14-.16.29-.25.43-.18.31-.36.62-.51.94-.08.17-.15.35-.23.53-.13.31-.25.62-.36.93-.06.19-.12.38-.17.57-.09.33-.17.65-.23.98-.02.11-.06.22-.08.33l-72.09,423.12c-.07.43-.11.87-.13,1.3,0,.11-.03.22-.03.33-.03.73.02,1.44.12,2.16.02.19.06.38.09.57.13.74.31,1.48.57,2.19,0,0,0,0,0,0,0,.02.01.03.02.04.2.53.43,1.04.7,1.53.12.22.26.42.38.63.17.28.33.56.52.82.17.23.35.44.54.66.18.22.36.44.56.65.2.21.42.4.63.6.16.14.29.3.46.43l330.39,274c.08.07.17.12.25.18.32.25.65.49.99.71.15.09.29.19.44.28.44.26.9.5,1.37.7.04.02.08.04.12.06.51.21,1.03.39,1.56.53.17.05.35.08.53.12.24.06.47.12.71.16.23.04.46.07.69.1.47.05.95.08,1.42.08.15,0,.3-.02.45-.02.32-.01.65-.02.97-.06.18-.02.36-.06.54-.08.29-.04.58-.09.86-.15.19-.04.38-.1.56-.15.28-.08.55-.16.82-.25.08-.03.15-.04.23-.07l402.48-149.13s.06-.03.09-.04c.39-.15.76-.32,1.13-.51.12-.06.24-.1.35-.16.44-.24.88-.51,1.29-.8.03-.02.06-.04.09-.06.55-.39,1.07-.85,1.56-1.34.83-.82,1.54-1.76,2.11-2.78.09-.17.19-.33.27-.5.32-.64.61-1.3.82-2,.03-.11.05-.22.08-.33.12-.42.23-.84.3-1.27l72.09-423.12c.02-.11.02-.22.03-.33.05-.34.08-.67.1-1.01ZM771.44,701.13l-101.05-83.8,158.61-254.06-57.56,337.86ZM121.2,242.67l65.53,292.26-123.1,45.61,57.57-337.87ZM656.65,591.33l-141.37-381.56,317.59,99.3-176.22,282.26ZM508.76,181.1l22.05-129.41,263.81,218.79-285.86-89.37ZM483.7,176.83l-299.33-10.33L505.75,47.42l-22.05,129.41ZM208.31,514.94l-72.81-324.69,332.56,11.48-259.75,313.21ZM490.1,214.98l144.06,388.81-382.98-65.25-25.77-4.39L490.1,214.98ZM246.9,563.6l379.17,64.6-244.79,225.4-156.33-293.74,21.95,3.74ZM654.16,636.9l101.05,83.8-321.38,119.08,220.33-202.88ZM72.47,604.37l123.1-45.61,140.72,264.4-84.17-69.81-179.65-148.98Z\"/>\n    </svg>\n  `,\n  priceJsonPaths: ['$.assets.xyo.value.usd'],\n  schema: PriceWidgetConfigSchema,\n  source: 'https://api.archivist.xyo.network/02a7da44f1070140043a4f24f8cc2b643602c0c731f1936a36fd6291445cb720',\n}\n\nexport const XL1PriceWidgetConfig: PriceWidgetConfig = {\n  buyLink: 'https://xyo.network/token/exchange',\n  currency: 'XL1',\n  decimals: 5,\n  iconSrc: `\n    <svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\">\n      <path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#8d8fc6;\"/>\n      <path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#eb407a;\"/>\n      <path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/>\n      <path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f27046;\"/>\n      <path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#572aff;\"/>\n    </svg>\n  `,\n  priceJsonPaths: ['$.assets.xl1.value.usd'],\n  schema: PriceWidgetConfigSchema,\n  source: 'https://api.archivist.xyo.network/02a7da44f1070140043a4f24f8cc2b643602c0c731f1936a36fd6291445cb720',\n}\n\nexport const XyLabsPriceWidgetConfig: PriceWidgetConfig = {\n  buyLink: 'https://xylabs.com/investors/trade',\n  currency: 'XYLabs',\n  decimals: 5,\n  iconSrc: `\n   <svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 372 372\">\n    <defs>\n      <style>.cls-1{fill:#1d53ff;}</style>\n    </defs>\n    <path class=\"cls-1\" d=\"M87.86,187.77L176.07,34.99C97.39,40.1,35.14,105.51,35.14,185.49c0,23.95,5.6,46.58,15.54,66.69l37.18-64.4Z\"/>\n    <path class=\"cls-1\" d=\"M285.3,187.77l36.57,63.34c9.6-19.84,14.99-42.1,14.99-65.63,0-79.57-61.61-144.7-139.72-150.41l88.16,152.69Z\"/>\n    <path class=\"cls-1\" d=\"M188.29,240.7c-1.05-.63-2.37-.63-3.42,0l-97.55,58.84c26.46,22.91,60.94,36.81,98.68,36.81s72.64-14.06,99.16-37.22l-96.87-58.43Zm-17.95,53.86l-9.28,4.64v-27.3l9.28-6.96v29.62Zm20.88,27.84h-9.28v-50.5h9.28v50.5Zm11.6-27.84v-27.3l9.28,4.64v27.3l-9.28-4.64Z\"/>\n  </svg>\n  `,\n  priceJsonPaths: ['$.lastPrice', '$.prevClosePx'],\n  schema: PriceWidgetConfigSchema,\n  source: 'https://api.archivist.xyo.network/f43576ad97cb5e7abf6c5d4dc7aaad493b159cef9faff21324bd93aa61440436',\n}\n", "import {\n  XL1PriceWidgetConfig, XyLabsPriceWidgetConfig, XyoPriceWidgetConfig,\n} from '../lib/index.ts'\nimport { useParsePriceWidgetConfig } from './useParsePriceWidgetConfig.ts'\n\nexport const useXyoPriceWidget = () => {\n  return useParsePriceWidgetConfig(XyoPriceWidgetConfig)\n}\n\nexport const useXL1PriceWidget = () => {\n  return useParsePriceWidgetConfig(XL1PriceWidgetConfig)\n}\n\nexport const useXLBPriceWidget = () => {\n  return useParsePriceWidgetConfig(XyLabsPriceWidgetConfig)\n}\n", "import type { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\nimport { createPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nimport { CryptoAssetRenderer } from './components/index.ts'\n\nexport const CryptoAssetRenderPlugin: PayloadRenderPlugin = {\n  ...createPayloadRenderPlugin({\n    canRender: (payload?: Payload) => payload?.schema === 'network.xyo.crypto.asset',\n    components: { box: { detailsBox: CryptoAssetRenderer } },\n    name: 'Aggregate Price',\n  }),\n}\n"],
  "mappings": "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",
  "names": ["FlexCol", "jsx", "FlexCol", "response", "assertEx", "isDefined", "assertEx", "isDefined", "assertEx"]
}
