{"version":3,"sources":["../src/components/containers/XGrid/core.tsx"],"names":["React","isEqual","Skeleton","compareProps","prevProps","nextProps","XGridCore","index","props","DynamicXElement","xElement","useXElementValue","articles","useArticles","columns","gap","elements","id","p","article","XArticleProvider_default","XArticle_default","Grid","_","core_default"],"mappings":"6MAAA,UAAYA,MAAW,QACvB,OAAS,WAAAC,MAAe,SAYxB,OAAS,YAAAC,MAAgB,gBAGzB,IAAMC,EAAe,CAACC,EAAgBC,IAC7BJ,EAAQG,EAAWC,CAAS,EAG/BC,EAAwC,CAAC,CAC7C,MAAAC,EACA,MAAAC,EACA,gBAAAC,CACF,IAAM,CAEJ,IAAMC,EAAWC,EAA4CJ,CAAK,EAE5D,CAAE,SAAAK,CAAS,EAAIC,EAAY,CAAE,MAAO,EAAG,GAAGH,EAAS,YAAa,CAAC,EAEjE,CAAE,QAAAI,EAAU,EAAG,IAAAC,EAAM,MAAO,EAAIP,EAElCQ,EAAWP,EACXC,EAAS,gBAAgB,IAAI,CAACO,EAAIC,IAChC,gBAACT,EAAA,CACC,IAAKQ,EACL,MAAOA,EACP,SAAUP,EAAS,SACnB,MAAO,KACP,SAAUQ,EACZ,CACD,EACD,CAAC,EAEL,OAAIN,GAAYF,EAAS,cAAgBA,EAAS,aAAa,UAC7DM,EAAWJ,EAAS,IAAI,CAACO,EAAS,IAAM,CACtC,IAAMF,EAAKE,EAAQ,IAAM,EAAE,SAAS,EAEpC,OACE,gBAACC,EAAA,CAAiB,KAAMD,EAAS,IAAKF,GACpC,gBAACI,EAAA,CAAS,MAAOJ,EAAI,CACvB,CAEJ,CAAC,GAID,gBAACK,EAAA,CACC,QAASR,EACT,IAAKC,EACL,OAAO,OACP,MAAM,OACN,QAASP,EAAM,QACf,QAASA,EAAM,SAEdQ,EACAA,EAAS,SAAW,GAAK,CACxB,GAAG,MAAMF,CAAO,EACb,KAAK,KAAK,EACV,IAAI,CAACS,EAAGhB,IACP,gBAACL,EAAA,CAAS,MAAM,OAAO,OAAQ,IAAK,IAAKK,EAAM,SAAS,EAAG,CA2B5D,CACL,CACF,CAEJ,EAEOiB,EAAc,OAAKlB,EAAWH,CAAY","sourcesContent":["import * as React from \"react\";\nimport { isEqual } from \"lodash\";\nimport { Grid } from \"../../core/Grid\";\nimport {\n  IXGridProps,\n  TXGridProps,\n} from \"../../../utils/interfaces/containers/XGrid.interfaces\";\nimport { TUseXElement, useXElementValue } from \"../../../hooks/useXElement\";\n\nimport XArticleProvider from \"../../../context/XArticleProvider\";\nimport XArticle from \"../../common/XArticle\";\nimport { TCoreXElement } from \"../../../utils/types/core/CoreXelement\";\nimport { useArticles } from \"../../../hooks/useArticles\";\nimport { Skeleton } from \"@mui/material\";\nimport { TColumns } from \"../../../utils/types/containers/XGrid.types\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XGridCore: TCoreXElement<IXGridProps> = ({\n  index,\n  props,\n  DynamicXElement,\n}) => {\n  // WE ARE GETTING THE CURRENT ELEMENT FROM THE ATOM FAMILY\n  const xElement = useXElementValue<TUseXElement<TXGridProps>>(index);\n\n  const { articles } = useArticles({ limit: 8, ...xElement.dataFetching });\n\n  const { columns = 3, gap = \"10px\" } = props;\n\n  let elements = DynamicXElement\n    ? xElement.elementsIndexes.map((id, p) => (\n        <DynamicXElement\n          key={id}\n          index={id}\n          hierachy={xElement.hierachy}\n          child={null}\n          position={p}\n        />\n      ))\n    : [];\n\n  if (articles && xElement.dataFetching && xElement.dataFetching.enabled) {\n    elements = articles.map((article, i) => {\n      const id = article.id ?? i.toString();\n\n      return (\n        <XArticleProvider data={article} key={id}>\n          <XArticle index={id} />\n        </XArticleProvider>\n      );\n    });\n  }\n\n  return (\n    <Grid\n      columns={columns}\n      gap={gap}\n      height=\"100%\"\n      width=\"100%\"\n      rowSpan={props.rowSpan as TColumns}\n      colSpan={props.colSpan as TColumns}\n    >\n      {elements}\n      {elements.length === 0 && [\n        ...Array(columns)\n          .fill(\"col\")\n          .map((_, index) => (\n            <Skeleton width=\"100%\" height={300} key={index.toString()} />\n\n            // <Stack\n            //   height={256}\n            //   width=\"100%\"\n            //   bgcolor={MAIN_COLOR}\n            //   alignItems=\"center\"\n            //   justifyContent=\"center\"\n            //   key={index.toString()}\n            //   boxShadow={`0 10px 30px -15px ${MAIN_COLOR}`}\n            //   my={3}\n            //   boxSizing=\"border-box\"\n            // >\n            //   <Typography\n            //     variant=\"h3\"\n            //     component=\"p\"\n            //     sx={{\n            //       fontSize: 25,\n            //       letterSpacing: 1,\n            //       fontFamily: \"monospace\",\n            //       color: \"white\",\n            //       fontWeight: 700,\n            //     }}\n            //   >\n            //     {index + 1}\n            //   </Typography>\n            // </Stack>\n          )),\n      ]}\n    </Grid>\n  );\n};\n\nexport default React.memo(XGridCore, compareProps);\n"]}