{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import \"./style.pcss\";\r\n\r\nimport type {\r\n  ReactNode, ReactElement, FC, SourceHTMLAttributes,\r\n} from \"react\";\r\nimport type { IPicture, TMediaQueries } from \"./config/types\";\r\nimport { getMediaQuery } from \"./lib/index\";\r\nimport { constants } from \"../../constants\";\r\nimport type { IComponentBaseProps } from \"../../types/components/index\";\r\nimport { useCN } from \"../../utils/react/useCN\";\r\n\r\nconst Sources: FC<{ data: IPicture[\"sources\"]; }> = ({\r\n  data,\r\n}): ReactNode => {\r\n  switch (true) {\r\n    case Array.isArray(data): {\r\n      return data.map((source) => {\r\n        const media = getMediaQuery(source.media);\r\n        return <source key={`${source.srcSet ?? \"\"}_${media ?? \"\"}_${source.type ?? \"\"}`} {...source} media={media} />;\r\n      });\r\n    }\r\n    case typeof data === \"object\" && !!data: {\r\n      return Object.entries(data).map(([ query, source ]: [ string, SourceHTMLAttributes<HTMLSourceElement> ]) => {\r\n        const media = !!constants.mediaQueries[query as keyof TMediaQueries] ? getMediaQuery(query) : query;\r\n        return <source key={query} {...source} media={media} />;\r\n      });\r\n    }\r\n    default: {\r\n      return null;\r\n    }\r\n  }\r\n};\r\n\r\n/**\r\n * Компонент адаптивного изображения с разными источниками\r\n * @returns {ReactElement}\r\n */\r\nconst Picture: FC<IPicture & IComponentBaseProps> = ({\r\n  baseClass = \"picture\",\r\n  extraClasses = {},\r\n  extraAttrs = {},\r\n  children = null,\r\n  sources = [] as IPicture[\"sources\"],\r\n}): ReactElement => {\r\n\r\n  const { getCN } = useCN(baseClass);\r\n\r\n  return (\r\n    <picture className={getCN(\"\", extraClasses)} {...extraAttrs}>\r\n      <Sources data={sources} />\r\n      {children}\r\n    </picture>\r\n  );\r\n\r\n};\r\n\r\nexport type { IPicture };\r\nexport { Picture };\r\n"],"names":["Sources","data","Array","isArray","map","source","media","getMediaQuery","_jsx","srcSet","type","Object","entries","query","constants","mediaQueries","Picture","baseClass","extraClasses","extraAttrs","children","sources","getCN","useCN","_jsxs","className"],"mappings":"mLAWA,MAAMA,QAA8C,EAClDC,cAEA,OAAQ,MACN,KAAKC,MAAMC,QAAQF,MACjB,OAAOA,KAAKG,IAAKC,SACf,MAAMC,MAAQC,cAAcF,OAAOC;AACnC,OAAOE,IAAA,SAAA,IAA+EH,OAAQC,MAAOA,OAAjF,GAAGD,OAAOI,QAAU,MAAMH,OAAS,MAAMD,OAAOK,MAAQ,QAGhF,YAAYT,OAAS,YAAcA,KACjC,OAAOU,OAAOC,QAAQX,MAAMG,IAAI,EAAGS,MAAOR,WACxC,MAAMC,QAAUQ,UAAUC,aAAaF,OAAgCN,cAAcM,OAASA;AAC9F,OAAOL,IAAA,SAAA,IAAwBH,OAAQC,MAAOA,OAA1BO,SAGxB,QACE,OAAO;;;;GASb,MAAMG,QAA8C,EAClDC,oBAAY,UACZC,0BAAe,CAAA,EACfC,sBAAa,CAAA,EACbC,kBAAW,KACXC,gBAAU,OAGV,MAAMC,MAAEA,OAAUC,MAAMN;AAExB,OACEO,KAAA,UAAA,CAASC,UAAWH,MAAM,GAAIJ,iBAAmBC,WAAUC,SAAA,CACzDZ,IAACR,QAAO,CAACC,KAAMoB,UACdD"}