matsuri-ui 17.0.2-alpha-1750051925500-43a75f0.0 → 17.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Checkbox","require","_List","_Menu","_Popper","_WithPagination","_react","_Button","_react2","_interopRequireWildcard","_useGridLayout","_useSort","_theme","_ArrowDownward","_interopRequireDefault","_ArrowUpward","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_EMOTION_STRINGIFIED_CSS_ERROR__","DefaultRenderCell","props","cell","jsx","value","JSON","stringify","tableCellStyle","process","env","NODE_ENV","name","styles","toString","_ref4","HeaderCell","theme","useTheme","anchorEl","setAnchorEl","useState","handleClose","useCallback","undefined","handleToggle","event","currentTarget","prev","open","Boolean","css","palette","gray","resetButtonStyle","onClick","children","Popper","disablePortal","onClickOutside","placement","MenuList","paperProps","elevation","menuItems","map","label","renderIcon","Icon","ListItem","key","ListItemIcon","_ref","_ref2","_ref3","TableUI","columns","data","striped","stickyHeader","onSelect","selectedIndex","onSelectAll","renderActions","RenderActions","onPaginate","pageTotal","allChecked","length","dataSorted","order","setOrder","useSort","gridStyle","useGridLayout","WithPagination","typography","body","zIndex","appBar","Checkbox","defaultChecked","onChange","checked","target","indeterminate","column","orderBy","ArrowUpwardIcon","by","direction","ArrowDownwardIcon","title","text","hint","row","index","includes","intentions","primary","light","renderCell","RenderCell","exports"],"sources":["../../../src/TableUI/index.tsx"],"sourcesContent":["import { Checkbox } from \"../Checkbox\";\nimport { ListItem, ListItemIcon } from \"../List\";\nimport { MenuList } from \"../Menu\";\nimport { Popper } from \"../Popper\";\nimport { WithPagination, WithPaginationProps } from \"./WithPagination\";\nimport { css } from \"@emotion/react\";\nimport { resetButtonStyle } from \"../Button\";\nimport { useCallback, useState } from \"react\";\nimport { useGridLayout } from \"./useGridLayout\";\nimport { useSort } from \"./useSort\";\nimport { useTheme } from \"../theme\";\nimport ArrowDownwardIcon from \"@mui/icons-material/ArrowDownward\";\nimport ArrowUpwardIcon from \"@mui/icons-material/ArrowUpward\";\nimport React from \"react\";\n\nexport interface TableUIRenderCellProps<Row, Value> {\n cell: { value: Value };\n row: Row;\n}\n\nconst DefaultRenderCell = (\n props: TableUIRenderCellProps<Record<string, unknown>, unknown>,\n) => {\n const { cell } = props;\n return (\n <div>\n {typeof cell.value === \"string\" ? cell.value : JSON.stringify(cell.value)}\n </div>\n );\n};\n\nconst tableCellStyle = css`\n box-sizing: border-box;\n padding: 8px 16px;\n font: inherit;\n line-height: inherit;\n text-align: left;\n letter-spacing: inherit;\n background-color: white;\n border-bottom: 1px solid #e0e0e0;\n &:first-of-type:has(input[type=\"checkbox\"]) {\n padding: 0px;\n label {\n display: flex;\n padding: 8px;\n }\n }\n`;\n\ninterface HeaderCellProps extends React.PropsWithChildren {\n menuItems: {\n label: string;\n onClick: () => void;\n renderIcon: (props: Record<string, unknown>) => React.JSX.Element;\n }[];\n}\n\nconst HeaderCell = (props: HeaderCellProps) => {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = useState<HTMLElement>();\n const handleClose = useCallback(() => {\n setAnchorEl(undefined);\n }, []);\n const handleToggle = useCallback(\n (event: React.SyntheticEvent<HTMLElement>) => {\n const { currentTarget } = event;\n setAnchorEl((prev) => (prev ? undefined : currentTarget));\n },\n [],\n );\n const open = Boolean(anchorEl);\n\n return (\n <th\n css={[\n tableCellStyle,\n css`\n padding: 0px;\n cursor: pointer;\n transition: background-color 0.1s ease-in-out;\n &:hover {\n background-color: ${theme.palette.gray[200]};\n }\n `,\n ]}\n >\n <button\n css={[\n resetButtonStyle,\n css`\n display: inline-block;\n width: 100%;\n padding: 8px 16px;\n text-align: inherit;\n `,\n ]}\n onClick={handleToggle}\n >\n {props.children}\n </button>\n <Popper\n disablePortal\n onClickOutside={handleClose}\n anchorEl={anchorEl}\n open={open}\n placement=\"bottom-start\"\n >\n <MenuList\n paperProps={{\n elevation: 5,\n }}\n >\n {props.menuItems.map(({ onClick, label, renderIcon: Icon }) => {\n return (\n <ListItem\n key={label}\n onClick={() => {\n onClick();\n handleClose();\n }}\n >\n <ListItemIcon>\n <Icon />\n </ListItemIcon>\n {label}\n </ListItem>\n );\n })}\n </MenuList>\n </Popper>\n </th>\n );\n};\n\nexport type TableUIColumn<Row> = {\n [Key in keyof Row]: {\n // このキーのユニークチェックを行った方が良い。\n // 出来ればランタイムは無駄が大きいので型でチェックしたい。\n key: Key;\n title?: string;\n renderCell?: ({\n cell,\n row,\n }: TableUIRenderCellProps<Row, Row[Key]>) => React.JSX.Element;\n // デフォルトでソートは有効化する\n sort?: (a: Row[Key], b: Row[Key]) => number;\n /**\n * この列の幅が全体に占める比を指定する。\n * columnRatio指定しない場合は、autoが指定されたものとして扱われます。\n * table要素本来の自動調整が効かなくなるので、注意して利用してください。\n */\n columnRatio?: number;\n };\n}[keyof Row];\n\nexport interface TableUIPropsOnSelectArgs<Row> {\n row: Row;\n index: number;\n checked: boolean;\n}\n\nexport interface TableUIPropsRenderActionsArgs<Row> {\n row: Row;\n index: number;\n}\n\nexport interface TableUIProps<Row> extends WithPaginationProps {\n /**\n * テーブルをストライプ柄にするかどうか\n * @default false\n */\n striped?: boolean;\n /**\n * テーブルのヘッダーを固定するかどうか\n * @default false\n */\n stickyHeader?: boolean;\n /**\n * テーブルの列の情報\n */\n columns?: TableUIColumn<Row>[];\n /**\n * 空配列の場合は読み込み済み、undefinedの場合は読み込み中であると見なされます。\n * 基本的にJSONフレンドリーなオブジェクトを渡すようにしてください。ReactElementなどは非推奨です。\n * 代わりにcolumnsで定義できるrenderCellを利用するか、ReactComponentを渡してください。\n *\n * dataにはcolumnsに存在しないものも含められます。\n */\n data?: Row[];\n /**\n * 現在選択されている行のindexの配列\n */\n selectedIndex?: number[];\n /**\n * 行毎のチェックボックスが生える\n */\n onSelect?: ({ row, index, checked }: TableUIPropsOnSelectArgs<Row>) => void;\n /**\n * 全てをチェックするボタンが生える\n */\n onSelectAll?: ({ data, checked }: { data: Row[]; checked: boolean }) => void;\n /**\n * onSelectで生えるチェックボックスのname\n * formDataから取得できる値は選択された行のindexです。\n */\n name?: string;\n /**\n * 行の末尾にインタラクティブ要素を追加するためのメソッド\n */\n renderActions?: (\n args: TableUIPropsRenderActionsArgs<Row>,\n ) => React.JSX.Element;\n}\n\nexport const TableUI = <\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Row extends Record<string, any>,\n>(\n props: TableUIProps<Row>,\n) => {\n const {\n columns,\n data,\n striped,\n stickyHeader,\n onSelect,\n selectedIndex = [],\n onSelectAll,\n name,\n renderActions: RenderActions,\n onPaginate,\n pageTotal,\n } = props;\n const theme = useTheme();\n\n const allChecked = data?.length === selectedIndex?.length;\n\n const [dataSorted, order, setOrder] = useSort(columns, data);\n\n const gridStyle = useGridLayout(columns);\n\n return (\n <WithPagination onPaginate={onPaginate} pageTotal={pageTotal}>\n <table\n css={[\n theme.typography.body,\n css`\n box-sizing: border-box;\n width: 100%;\n border-spacing: 0;\n border-collapse: separate;\n isolation: isolate;\n border-top: 1px solid #e0e0e0;\n border-right: 2px solid #e0e0e0;\n border-bottom: 1px solid #e0e0e0;\n border-left: 2px solid #e0e0e0;\n thead {\n box-sizing: border-box;\n th {\n white-space: nowrap;\n border-top: 1px solid #e0e0e0;\n border-bottom: 2px solid #e0e0e0;\n }\n }\n `,\n striped\n ? css`\n tr:nth-of-type(even) > td {\n background-color: #f2f2f2;\n }\n `\n : null,\n stickyHeader\n ? css`\n position: relative;\n /**\n * ここでtheadをstickyにすると、grid layoutのサポートが困難になる。\n */\n thead tr th {\n position: sticky;\n top: 0px;\n z-index: ${theme.zIndex.appBar};\n }\n `\n : null,\n gridStyle,\n ]}\n >\n <thead>\n <tr>\n {onSelect ? (\n <th css={tableCellStyle}>\n {onSelectAll ? (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label>\n <Checkbox\n defaultChecked={allChecked}\n key={allChecked?.toString()}\n onChange={(event) => {\n if (data) {\n onSelectAll({ data, checked: event.target.checked });\n }\n }}\n indeterminate={selectedIndex.length > 0 && !allChecked}\n />\n </label>\n ) : null}\n </th>\n ) : null}\n {columns?.map((column) => {\n const orderBy = column.key.toString();\n return (\n <HeaderCell\n menuItems={[\n {\n label: \"昇順で並び替え\",\n //@ts-expect-error muiのiconの方がmuiNameプロパティを型で持つようになったためエラーが出る\n renderIcon: ArrowUpwardIcon,\n onClick: () => {\n setOrder({ by: orderBy, direction: \"asc\" });\n },\n },\n {\n label: \"降順で並び替え\",\n //@ts-expect-error muiのiconの方がmuiNameプロパティを型で持つようになったためエラーが出る\n renderIcon: ArrowDownwardIcon,\n onClick: () => {\n setOrder({ by: orderBy, direction: \"desc\" });\n },\n },\n ]}\n key={column.key.toString()}\n >\n <div\n css={css`\n position: relative;\n `}\n >\n {column.title}\n <span\n css={css`\n position: absolute;\n display: inline-flex;\n margin-left: 4px;\n color: ${theme.palette.text.hint};\n `}\n >\n {order?.by === orderBy ? (\n order.direction === \"desc\" ? (\n <ArrowDownwardIcon />\n ) : (\n <ArrowUpwardIcon />\n )\n ) : null}\n </span>\n </div>\n </HeaderCell>\n );\n })}\n {RenderActions ? <th css={tableCellStyle} /> : null}\n </tr>\n </thead>\n <tbody>\n {dataSorted?.map(({ row, index }) => {\n const checked = selectedIndex?.includes(index);\n return (\n <tr\n key={`${index}`}\n css={css`\n &:has(input[type=\"checkbox\"]:checked) > td {\n background-color: ${theme.palette.intentions.primary.light};\n }\n `}\n >\n {onSelect ? (\n <td css={tableCellStyle}>\n {\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label>\n <Checkbox\n key={checked?.toString()}\n name={name}\n value={index}\n defaultChecked={checked}\n onChange={(event) => {\n onSelect({\n row,\n index,\n checked: event.target.checked,\n });\n }}\n />\n </label>\n }\n </td>\n ) : null}\n {columns?.map((column) => {\n const cell = row[column.key];\n const { renderCell: RenderCell = DefaultRenderCell } = column;\n return (\n <td key={column.key.toString()} css={tableCellStyle}>\n <RenderCell cell={{ value: cell }} row={row} />\n </td>\n );\n })}\n {RenderActions ? (\n <td css={tableCellStyle}>\n <RenderActions row={row} index={index} />\n </td>\n ) : null}\n </tr>\n );\n })}\n </tbody>\n </table>\n </WithPagination>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_Checkbox","require","_List","_Menu","_Popper","_WithPagination","_react","_Button","_react2","_interopRequireWildcard","_useGridLayout","_useSort","_theme","_ArrowDownward","_interopRequireDefault","_ArrowUpward","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_EMOTION_STRINGIFIED_CSS_ERROR__","DefaultRenderCell","props","cell","jsx","value","JSON","stringify","tableCellStyle","process","env","NODE_ENV","name","styles","toString","_ref5","HeaderCell","theme","useTheme","anchorEl","setAnchorEl","useState","handleClose","useCallback","undefined","handleToggle","event","currentTarget","prev","open","Boolean","css","palette","gray","resetButtonStyle","onClick","children","Popper","disablePortal","onClickOutside","placement","MenuList","paperProps","elevation","menuItems","map","label","renderIcon","Icon","ListItem","key","ListItemIcon","_ref","_ref2","_ref3","_ref4","TableUI","columns","data","striped","stickyHeader","onSelect","selectedIndex","onSelectAll","renderActions","RenderActions","onPaginate","pageTotal","getRowStyle","allChecked","length","dataSorted","order","setOrder","useSort","gridStyle","useGridLayout","WithPagination","typography","body","zIndex","appBar","Checkbox","defaultChecked","onChange","checked","target","indeterminate","column","orderBy","ArrowUpwardIcon","by","direction","ArrowDownwardIcon","title","text","hint","row","index","includes","customRowStyle","intentions","primary","light","renderCell","RenderCell","exports"],"sources":["../../../src/TableUI/index.tsx"],"sourcesContent":["import { Checkbox } from \"../Checkbox\";\nimport { ListItem, ListItemIcon } from \"../List\";\nimport { MenuList } from \"../Menu\";\nimport { Popper } from \"../Popper\";\nimport { WithPagination, WithPaginationProps } from \"./WithPagination\";\nimport { css } from \"@emotion/react\";\nimport { resetButtonStyle } from \"../Button\";\nimport { useCallback, useState } from \"react\";\nimport { useGridLayout } from \"./useGridLayout\";\nimport { useSort } from \"./useSort\";\nimport { useTheme } from \"../theme\";\nimport ArrowDownwardIcon from \"@mui/icons-material/ArrowDownward\";\nimport ArrowUpwardIcon from \"@mui/icons-material/ArrowUpward\";\nimport React from \"react\";\nimport type { CSSObject, SerializedStyles } from \"@emotion/react\";\nimport type { Theme } from \"../theme\";\n\nexport interface TableUIRenderCellProps<Row, Value> {\n cell: { value: Value };\n row: Row;\n}\n\nconst DefaultRenderCell = (\n props: TableUIRenderCellProps<Record<string, unknown>, unknown>,\n) => {\n const { cell } = props;\n return (\n <div>\n {typeof cell.value === \"string\" ? cell.value : JSON.stringify(cell.value)}\n </div>\n );\n};\n\nconst tableCellStyle = css`\n box-sizing: border-box;\n padding: 8px 16px;\n font: inherit;\n line-height: inherit;\n text-align: left;\n letter-spacing: inherit;\n border-bottom: 1px solid #e0e0e0;\n &:first-of-type:has(input[type=\"checkbox\"]) {\n padding: 0px;\n label {\n display: flex;\n padding: 8px;\n }\n }\n`;\n\ninterface HeaderCellProps extends React.PropsWithChildren {\n menuItems: {\n label: string;\n onClick: () => void;\n renderIcon: (props: Record<string, unknown>) => React.JSX.Element;\n }[];\n}\n\nconst HeaderCell = (props: HeaderCellProps) => {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = useState<HTMLElement>();\n const handleClose = useCallback(() => {\n setAnchorEl(undefined);\n }, []);\n const handleToggle = useCallback(\n (event: React.SyntheticEvent<HTMLElement>) => {\n const { currentTarget } = event;\n setAnchorEl((prev) => (prev ? undefined : currentTarget));\n },\n [],\n );\n const open = Boolean(anchorEl);\n\n return (\n <th\n css={[\n tableCellStyle,\n css`\n padding: 0px;\n cursor: pointer;\n background-color: white;\n transition: background-color 0.1s ease-in-out;\n &:hover {\n background-color: ${theme.palette.gray[200]};\n }\n `,\n ]}\n >\n <button\n css={[\n resetButtonStyle,\n css`\n display: inline-block;\n width: 100%;\n padding: 8px 16px;\n text-align: inherit;\n `,\n ]}\n onClick={handleToggle}\n >\n {props.children}\n </button>\n <Popper\n disablePortal\n onClickOutside={handleClose}\n anchorEl={anchorEl}\n open={open}\n placement=\"bottom-start\"\n >\n <MenuList\n paperProps={{\n elevation: 5,\n }}\n >\n {props.menuItems.map(({ onClick, label, renderIcon: Icon }) => {\n return (\n <ListItem\n key={label}\n onClick={() => {\n onClick();\n handleClose();\n }}\n >\n <ListItemIcon>\n <Icon />\n </ListItemIcon>\n {label}\n </ListItem>\n );\n })}\n </MenuList>\n </Popper>\n </th>\n );\n};\n\nexport type TableUIColumn<Row> = {\n [Key in keyof Row]: {\n // このキーのユニークチェックを行った方が良い。\n // 出来ればランタイムは無駄が大きいので型でチェックしたい。\n key: Key;\n title?: string;\n renderCell?: ({\n cell,\n row,\n }: TableUIRenderCellProps<Row, Row[Key]>) => React.JSX.Element;\n // デフォルトでソートは有効化する\n sort?: (a: Row[Key], b: Row[Key]) => number;\n /**\n * この列の幅が全体に占める比を指定する。\n * columnRatio指定しない場合は、autoが指定されたものとして扱われます。\n * table要素本来の自動調整が効かなくなるので、注意して利用してください。\n */\n columnRatio?: number;\n };\n}[keyof Row];\n\nexport interface TableUIPropsOnSelectArgs<Row> {\n row: Row;\n index: number;\n checked: boolean;\n}\n\nexport interface TableUIPropsRenderActionsArgs<Row> {\n row: Row;\n index: number;\n}\n\nexport interface TableUIPropsGetRowStyleArgs<Row> {\n row: Row;\n index: number;\n theme: Theme;\n}\n\nexport interface TableUIProps<Row> extends WithPaginationProps {\n /**\n * テーブルをストライプ柄にするかどうか\n * @default false\n */\n striped?: boolean;\n /**\n * テーブルのヘッダーを固定するかどうか\n * @default false\n */\n stickyHeader?: boolean;\n /**\n * テーブルの列の情報\n */\n columns?: TableUIColumn<Row>[];\n /**\n * 空配列の場合は読み込み済み、undefinedの場合は読み込み中であると見なされます。\n * 基本的にJSONフレンドリーなオブジェクトを渡すようにしてください。ReactElementなどは非推奨です。\n * 代わりにcolumnsで定義できるrenderCellを利用するか、ReactComponentを渡してください。\n *\n * dataにはcolumnsに存在しないものも含められます。\n */\n data?: Row[];\n /**\n * 現在選択されている行のindexの配列\n */\n selectedIndex?: number[];\n /**\n * 行毎のチェックボックスが生える\n */\n onSelect?: ({ row, index, checked }: TableUIPropsOnSelectArgs<Row>) => void;\n /**\n * 全てをチェックするボタンが生える\n */\n onSelectAll?: ({ data, checked }: { data: Row[]; checked: boolean }) => void;\n /**\n * onSelectで生えるチェックボックスのname\n * formDataから取得できる値は選択された行のindexです。\n */\n name?: string;\n /**\n * 行の末尾にインタラクティブ要素を追加するためのメソッド\n */\n renderActions?: (\n args: TableUIPropsRenderActionsArgs<Row>,\n ) => React.JSX.Element;\n /**\n * 行のスタイルをカスタマイズするための関数\n * @param args - 行のデータ、インデックス、テーマオブジェクトを含むオブジェクト\n * @returns Emotion CSSオブジェクトまたはCSSオブジェクト\n */\n getRowStyle?: (\n args: TableUIPropsGetRowStyleArgs<Row>,\n ) => SerializedStyles | CSSObject | undefined;\n}\n\nexport const TableUI = <\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Row extends Record<string, any>,\n>(\n props: TableUIProps<Row>,\n) => {\n const {\n columns,\n data,\n striped,\n stickyHeader,\n onSelect,\n selectedIndex = [],\n onSelectAll,\n name,\n renderActions: RenderActions,\n onPaginate,\n pageTotal,\n getRowStyle,\n } = props;\n const theme = useTheme();\n\n const allChecked = data?.length === selectedIndex?.length;\n\n const [dataSorted, order, setOrder] = useSort(columns, data);\n\n const gridStyle = useGridLayout(columns);\n\n return (\n <WithPagination onPaginate={onPaginate} pageTotal={pageTotal}>\n <table\n css={[\n theme.typography.body,\n css`\n box-sizing: border-box;\n width: 100%;\n border-spacing: 0;\n border-collapse: separate;\n isolation: isolate;\n border-top: 1px solid #e0e0e0;\n border-right: 2px solid #e0e0e0;\n border-bottom: 1px solid #e0e0e0;\n border-left: 2px solid #e0e0e0;\n thead {\n box-sizing: border-box;\n th {\n white-space: nowrap;\n border-top: 1px solid #e0e0e0;\n border-bottom: 2px solid #e0e0e0;\n }\n }\n `,\n striped\n ? css`\n tr:nth-of-type(even) > td {\n background-color: #f2f2f2;\n }\n `\n : null,\n stickyHeader\n ? css`\n position: relative;\n /**\n * ここでtheadをstickyにすると、grid layoutのサポートが困難になる。\n */\n thead tr th {\n position: sticky;\n top: 0px;\n z-index: ${theme.zIndex.appBar};\n }\n `\n : null,\n gridStyle,\n ]}\n >\n <thead>\n <tr>\n {onSelect ? (\n <th\n css={[\n tableCellStyle,\n css`\n background-color: white;\n `,\n ]}\n >\n {onSelectAll ? (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label>\n <Checkbox\n defaultChecked={allChecked}\n key={allChecked?.toString()}\n onChange={(event) => {\n if (data) {\n onSelectAll({ data, checked: event.target.checked });\n }\n }}\n indeterminate={selectedIndex.length > 0 && !allChecked}\n />\n </label>\n ) : null}\n </th>\n ) : null}\n {columns?.map((column) => {\n const orderBy = column.key.toString();\n return (\n <HeaderCell\n menuItems={[\n {\n label: \"昇順で並び替え\",\n //@ts-expect-error muiのiconの方がmuiNameプロパティを型で持つようになったためエラーが出る\n renderIcon: ArrowUpwardIcon,\n onClick: () => {\n setOrder({ by: orderBy, direction: \"asc\" });\n },\n },\n {\n label: \"降順で並び替え\",\n //@ts-expect-error muiのiconの方がmuiNameプロパティを型で持つようになったためエラーが出る\n renderIcon: ArrowDownwardIcon,\n onClick: () => {\n setOrder({ by: orderBy, direction: \"desc\" });\n },\n },\n ]}\n key={column.key.toString()}\n >\n <div\n css={css`\n position: relative;\n `}\n >\n {column.title}\n <span\n css={css`\n position: absolute;\n display: inline-flex;\n margin-left: 4px;\n color: ${theme.palette.text.hint};\n `}\n >\n {order?.by === orderBy ? (\n order.direction === \"desc\" ? (\n <ArrowDownwardIcon />\n ) : (\n <ArrowUpwardIcon />\n )\n ) : null}\n </span>\n </div>\n </HeaderCell>\n );\n })}\n {RenderActions ? <th css={tableCellStyle} /> : null}\n </tr>\n </thead>\n <tbody>\n {dataSorted?.map(({ row, index }) => {\n const checked = selectedIndex?.includes(index);\n const customRowStyle = getRowStyle?.({ row, index, theme });\n return (\n <tr\n key={`${index}`}\n css={[\n css`\n &:has(input[type=\"checkbox\"]:checked) > td {\n background-color: ${theme.palette.intentions.primary\n .light};\n }\n `,\n customRowStyle,\n ]}\n >\n {onSelect ? (\n <td css={tableCellStyle}>\n {\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label>\n <Checkbox\n key={checked?.toString()}\n name={name}\n value={index}\n defaultChecked={checked}\n onChange={(event) => {\n onSelect({\n row,\n index,\n checked: event.target.checked,\n });\n }}\n />\n </label>\n }\n </td>\n ) : null}\n {columns?.map((column) => {\n const cell = row[column.key];\n const { renderCell: RenderCell = DefaultRenderCell } = column;\n return (\n <td key={column.key.toString()} css={tableCellStyle}>\n <RenderCell cell={{ value: cell }} row={row} />\n </td>\n );\n })}\n {RenderActions ? (\n <td css={tableCellStyle}>\n <RenderActions row={row} index={index} />\n </td>\n ) : null}\n </tr>\n );\n })}\n </tbody>\n </table>\n </WithPagination>\n );\n};\n"],"mappings":"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","ignoreList":[]}