{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import \"./style.pcss\";\r\nimport { Fragment, useMemo } from \"react\";\r\nimport type { IComponent } from \"#package/types\";\r\nimport {\r\n  BlockTableBody,\r\n  BlockTableCaption,\r\n  BlockTableCell,\r\n  BlockTableFoot,\r\n  BlockTableHead,\r\n  BlockTableRow,\r\n  BlockTableSortBtn,\r\n} from \"./components\";\r\nimport type {\r\n  IBlockTable,\r\n  IOnBlockTableRowClickArg,\r\n  TBlockTableItemType,\r\n  IOnBlockTableSortArgs,\r\n  IBlockTableSortBtn,\r\n  IBlockTableCell,\r\n  IBlockTableRow,\r\n} from \"./config/types\";\r\nimport { BlockTableContext } from \"./context\";\r\nimport { getTableItem as getTableItemDefaultFn } from \"./utils/getTableItem\";\r\nimport { useCN } from \"../../utils/react/useCN\";\r\n\r\n/**\r\n * Компонент адаптивных таблиц\r\n * @returns\r\n */\r\nconst BlockTable: IComponent<IBlockTable> = ({\r\n  baseClass = \"blockTable\",\r\n  extraClasses = {},\r\n  extraAttrs = { \"data-js-adaptive-table-custom\": \"\" },\r\n  children = null,\r\n  items = [],\r\n  isAutoLabels = true,\r\n  getTableItem = getTableItemDefaultFn,\r\n  formatCell = (cell = {}) => cell,\r\n}) => {\r\n\r\n  const { getCN } = useCN(baseClass);\r\n\r\n  const value = useMemo(() => ({\r\n    getCN, formatCell, items, isAutoLabels,\r\n  }), [ formatCell, items, isAutoLabels, getCN ]);\r\n\r\n  return (\r\n    <BlockTableContext value={value}>\r\n      <table className={getCN(\"\", extraClasses)} {...extraAttrs}>\r\n        {children || items.map((group, index) => {\r\n          const key = `${group?.type ?? \"tbody\"}_${index.toString()}`;\r\n          return (\r\n            <Fragment key={key}>\r\n              {getTableItem({ ...group, key })}\r\n            </Fragment>\r\n          );\r\n        })}\r\n      </table>\r\n    </BlockTableContext>\r\n  );\r\n\r\n};\r\n\r\nexport type {\r\n  IBlockTable,\r\n  IBlockTableCell,\r\n  IBlockTableRow,\r\n  IBlockTableSortBtn,\r\n  IOnBlockTableRowClickArg,\r\n  IOnBlockTableSortArgs,\r\n  TBlockTableItemType,\r\n};\r\n\r\nexport {\r\n  BlockTable,\r\n  BlockTableBody,\r\n  BlockTableCaption,\r\n  BlockTableCell,\r\n  BlockTableFoot,\r\n  BlockTableHead,\r\n  BlockTableRow,\r\n  BlockTableSortBtn,\r\n};\r\n"],"names":["BlockTable","baseClass","extraClasses","extraAttrs","children","items","isAutoLabels","getTableItem","getTableItemDefaultFn","formatCell","cell","getCN","useCN","value","useMemo","_jsx","BlockTableContext","className","map","group","index","key","type","toString","Fragment"],"mappings":"4NA6BA,MAAMA,WAAsC,EAC1CC,oBAAY,aACZC,0BAAe,CAAA,EACfC,sBAAa,CAAE,gCAAiC,IAChDC,kBAAW,KACXC,YAAQ,GACRC,0BAAe,KACfC,aAAAA,eAAeC,aACfC,sBAAa,CAACC,KAAO,KAAOA,SAG5B,MAAMC,MAAEA,OAAUC,MAAMX,WAExB,MAAMY,MAAQC,QAAQ,KAAA,CACpBH,YAAOF,sBAAYJ,YAAOC,4BACxB,CAAEG,WAAYJ,MAAOC,aAAcK;AAEvC,OACEI,IAACC,kBAAiB,CAACH,MAAOA,MAAMT,SAC9BW,IAAA,QAAA,CAAOE,UAAWN,MAAM,GAAIT,iBAAmBC,WAAUC,SACtDA,UAAYC,MAAMa,IAAI,CAACC,MAAOC,SAC7B,MAAMC,IAAM,GAAGF,OAAOG,MAAQ,WAAWF,MAAMG;AAC/C,OACER,IAACS,SAAQ,CAAApB,SACNG,eAAa,IAAKY,MAAOE,WADbA"}