@semcore/data-table 4.49.1 → 16.0.0-prerelease.2

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":"DataTable.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_syncScroll","_assignProps2","_fire","_utils","_Head","_Body","_uniqueID","_intergalacticDynamicLocales","_i18nEnhance","_useFocusLock","_focusSourceEnhance","_excluded","_excluded2","style","_index","sstyled","insert","reversedSortDirection","desc","asc","defaultSortDirection","ROW_GROUP","Symbol","exports","cssVarReg","createCssVarForWidth","name","concat","replace","setBorderGroupColumns","columns","side","firstColumn","lastColumn","length","borderLeft","borderRight","RootDefinitionTable","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","event","column","find","fire","active","sortDirection","forceUpdate","_this$tableRef","_this$tableRef$curren","tableRef","current","scrollIntoView","block","inline","behavior","hasFocusable","some","columnElement","ref","sortable","hasFocusableIn","rowIndex","colIndex","_this$tableRef$curren2","_this$tableRef$curren3","hasFocusableInHeader","maxCol","maxRow","totalRows","currentRow","querySelector","focusedCell","headerRow","headerCells","querySelectorAll","currentCell","item","currentHeaderCell","changed","newRow","newCol","row","getRow","cell","HTMLElement","setAttribute","removeAttribute","headerCell","describedBy","getAttribute","focus","changeFocusCell","e","key","setInert","preventDefault","index","_this$tableRef$curren4","_this$tableRef$curren5","_this$asProps$focusSo","relatedTarget","isFocusInside","currentTarget","asProps","focusSourceRef","_row2","initFocusableCell","_this$asProps$focusSo2","tableElement","syncScroll","scrollBodyRef","scrollHeadRef","_createClass2","value","setVarStyle","_this2","animations","flatMap","_column$props$ref$cur","_column$props$ref$cur2","getAnimations","filter","a","undefined","animationPromise","Promise","resolve","all","map","animation","finished","then","_iterator","_createForOfIteratorHelper2","_step","s","n","done","setVar","_this2$tableRef$curre","setProperty","varWidth","width","err","f","console","error","childrenToColumns","children","_this3","options","arguments","fixed","sort","columnsChildren","Children","forEach","child","_column$props","isValidElement","type","DefinitionTable","Column","_ref3","_ref3$fixed","resizable","flex","vBorders","_objectWithoutProperties2","lastColumnChildren","isGroup","c","flattenColumns","_ref4","join","toArray","columnChildren","_this$props$ref$curre","getBoundingClientRect","_objectSpread2","forwardRef","parentColumns","unshift","push","getHeadProps","_this$asProps","use","uid","getI18nText","$onSortClick","callAllEventHandlers","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","getBodyProps","_this$asProps2","data","uniqueKey","cellPropsLayers","rowPropsLayers","_ref5","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","_this4","parseData","exclude","groupByName","columnsWithoutRowGroup","rowKey","columnNames","_iterator2","_step2","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","cells","_groupByName$column$n","cssVar","flatRowData","componentDidMount","componentDidUpdate","prevProps","focusedRow","isFocusInHeader","get","_this$asProps3","_this$tableRef$curren6","render","_ref","_ref2","SDataTable","Box","_this$asProps4","styles","createElement","cn","assignProps","handleKeyDown","handleMouseMove","handleFocus","handleBlur","Component","uniqueIDEnhancement","i18nEnhance","localizedMessages","focusSourceEnhance","ComponentDefinition","createComponent","Head","Body","_default","wrapDataTable","wrapper","wrapDataTableRow","wrapDataTableCell"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, {\n Component,\n PropGetterFn,\n Root,\n sstyled,\n UnknownProperties,\n Intergalactic,\n} from '@semcore/core';\nimport { Box, BoxProps, FlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport fire from '@semcore/utils/lib/fire';\nimport { flattenColumns } from './utils';\nimport type {\n ColIndex,\n Column,\n NestedCells,\n PropsLayer,\n PseudoChildPropsGetter,\n RowData,\n RowIndex,\n SortDirection,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport style from './style/data-table.shadow.css';\nimport { isFocusInside } from '@semcore/utils/lib/use/useFocusLock';\nimport { hasFocusableIn } from '@semcore/utils/lib/use/useFocusLock';\nimport focusSourceEnhance from '@semcore/utils/lib/enhances/focusSourceEnhance';\n\nconst reversedSortDirection: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst defaultSortDirection: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;\\W]/g;\n\nconst createCssVarForWidth = (name: string) => {\n return `--${name.replace(cssVarReg, '_')}_width`;\n};\n\ntype AsProps = {\n use: 'primary' | 'secondary';\n sort: SortDirection[];\n data: RowData[];\n totalRows?: number;\n uniqueKey: string;\n uid?: string;\n getI18nText?: (str: string) => string;\n focusSourceRef?: React.RefObject<'mouse' | 'keyboard' | 'none'>;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n uid: string;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n uid: string;\n};\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort<Column = string> = [sortBy: Column, sortDirection: 'desc' | 'asc'];\nexport type DataTableTheme = 'muted' | 'info' | 'success' | 'warning' | 'danger';\nexport type DataTableUse = 'primary' | 'secondary';\nexport type DataTableRow = DataTableCell[];\nexport type DataTableCell = {\n /** Name of column */\n name: string;\n /** Data of column */\n data: React.ReactNode;\n [key: string]: unknown;\n};\n\n/**\n * Datatable must have an accessible name (aria-table-name).\n * It should describe table content.\n */\ntype DataTableAriaProps = Intergalactic.RequireAtLeastOne<{\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n title?: string;\n}>;\n\n/** @deprecated */\nexport interface IDataTableProps<\n DataTableData extends { [key: string]: any }[] = UnknownProperties[],\n> extends Omit<DataTableProps<DataTableData>, keyof DataTableAriaProps> {}\nexport type DataTableProps<DataTableData extends { [key: string]: any }[] = UnknownProperties[]> =\n BoxProps & {\n /** Table theme according to visual hierarchy on the page\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData;\n /** Active sort object */\n sort?: DataTableSort<keyof DataTableData[0]>;\n /** Handler call when request will change sort */\n onSortChange?: (sort: DataTableSort<keyof DataTableData[0]>, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all dataset\n * @default id\n */\n uniqueKey?: keyof DataTableData[0];\n /** Make cells compact by changing left and right paddings to smaller ones*/\n compact?: boolean;\n /** Count of total rows if table using virtual scroll. Needs for accessibility */\n totalRows?: number;\n } & DataTableAriaProps;\n\n/** @deprecated */\nexport interface IDataTableHeadProps extends DataTableHeadProps, UnknownProperties {}\nexport type DataTableHeadProps = BoxProps & {\n /** Sticky table header\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll (as action) */\n disabledScroll?: boolean;\n\n /** Enable scroll bar element in header */\n withScrollBar?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableColumnProps extends DataTableColumnProps, UnknownProperties {}\nexport type DataTableColumnProps = FlexProps & {\n /** Unique column name */\n name?: string;\n /** Enable sorting for column. And if you are passing a string, you can also set the default sorting */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fix column on the left o right side of the table */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column */\n flex?: Property.Flex | 'inherit';\n /** Add vertical border to the column */\n vBorders?: boolean;\n /** Add vertical border to the right side of the cell */\n borderRight?: boolean;\n /** Add vertical border to the left side of the cell */\n borderLeft?: boolean;\n /**\n * Enable changing column width with sort icon\n * @default false\n */\n changeSortSize?: boolean;\n /**\n * Enable column to use as a column for recalculation width\n * @default false (By default used first column with maximum width)\n */\n sortSizeRecalculation?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableBodyProps extends DataTableBodyProps, UnknownProperties {}\nexport type DataTableBodyProps = BoxProps & {\n /** Rows table */\n rows?: DataTableRow[];\n /** When enabled, only visually acessable rows are rendered.\n * `tollerance` property controls how many rows outside of viewport are render.\n * `rowHeight` fixes the rows height if it has known. If not provided, first row node height is measured.\n * @default { tollerance: 2 }\n */\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n /** Allows to redefine rows renderning for a very deep and even fragile customization like building custom virtual scrolling */\n renderRows?: (props: {\n rows: DataTableRow[];\n columns: Column[];\n renderRow: (row: DataTableRow, details: { dataIndex: number }) => React.ReactNode;\n }) => React.ReactNode;\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n\n /** Ref for table body container */\n scrollContainerRef?: React.Ref<HTMLDivElement>;\n};\n\n/** @deprecated */\nexport interface IDataTableRowProps extends DataTableRowProps, UnknownProperties {}\nexport type DataTableRowProps = BoxProps & {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Sets row state to active*/\n active?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableCellProps extends DataTableCellProps, UnknownProperties {}\nexport type DataTableCellProps<Name extends string = string> = FlexProps & {\n /** Unique name for column or columns separated by / */\n name: Name;\n /** Theme for cell */\n theme?: DataTableTheme;\n};\n\nfunction setBorderGroupColumns(columns: Column[], side?: string) {\n const firstColumn = columns[0];\n const lastColumn = columns[columns.length - 1];\n if (firstColumn && (!side || side === 'left')) {\n firstColumn.borderLeft = true;\n if (firstColumn.columns) {\n setBorderGroupColumns(firstColumn.columns, 'left');\n }\n }\n if (lastColumn && (!side || side === 'right')) {\n lastColumn.borderRight = true;\n if (lastColumn.columns) {\n setBorderGroupColumns(lastColumn.columns, 'right');\n }\n }\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages), focusSourceEnhance()];\n\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\n\n focusedCell: [RowIndex, ColIndex] = [-1, -1];\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? reversedSortDirection[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n const animations = columns\n .flatMap((column) => column.props.ref.current?.getAnimations?.())\n .filter((a) => a !== undefined) as Animation[];\n\n let animationPromise: Promise<Animation[] | void> = Promise.resolve();\n\n if (animations.length > 0) {\n animationPromise = Promise.all(\n animations.map((animation) => {\n return animation.finished;\n }),\n );\n }\n\n animationPromise\n .then(() => {\n for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\n }\n })\n .catch((err) => {\n console.error(err);\n });\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n flex,\n vBorders,\n active,\n ...props\n } = child.props as Column['props'];\n const lastColumnChildren = columnsChildren[columnsChildren.length - 1];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n active = typeof active === 'boolean' ? active : columns.some((c) => c.active);\n\n if (vBorders) {\n setBorderGroupColumns(columns);\n }\n\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n const columnChildren = {\n get width() {\n // @ts-ignore\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n varWidth: createCssVarForWidth(name),\n setVar: flex !== 'inherit',\n fixed,\n resizable,\n active: typeof active === 'boolean' ? active : sort[0] === name,\n sortable,\n borderLeft: lastColumnChildren?.borderRight === true ? false : vBorders,\n borderRight: vBorders,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable === 'string' ? sortable : defaultSortDirection),\n props: {\n name,\n flex: flex === 'inherit' ? undefined : flex,\n ...props,\n // @ts-ignore\n forwardRef: child.ref,\n children,\n ref: column?.props?.ref || React.createRef(),\n },\n parentColumns: [],\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n columns.forEach((column) => column.parentColumns.unshift(columnChildren));\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use, uid, getI18nText } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n uid,\n getI18nText,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey, uid } = this.asProps;\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n uid,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const columnsWithoutRowGroup: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n columnsWithoutRowGroup[column] = true;\n }\n } else {\n columnsWithoutRowGroup[rowKey] = true;\n }\n }\n\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .flatMap((subRow) => Object.keys(subRow))\n .flatMap((key) => key.split('/'))\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...exclude,\n ...columnsWithoutRowGroup,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n // add empty cell if it is not present in data\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidMount() {\n this.setVarStyle(this.columns);\n }\n\n componentDidUpdate(prevProps: AsProps) {\n this.setVarStyle(this.columns);\n\n if (prevProps.data !== this.props.data) {\n const focusedRow = this.focusedCell[0];\n const isFocusInHeader = focusedRow === 0 && this.hasFocusableInHeader();\n if (this.tableRef.current && !isFocusInside(this.tableRef.current) && !isFocusInHeader) {\n this.focusedCell = [-1, -1];\n }\n }\n }\n\n get totalRows() {\n const { data, totalRows } = this.asProps;\n\n return totalRows ?? (data ?? []).length;\n }\n\n setInert(value: boolean) {\n const cells = this.tableRef.current?.querySelectorAll<HTMLDivElement>(\n '[role=gridcell], [role=columnheader]',\n );\n\n cells?.forEach((cell) => {\n if (value === true) {\n cell.setAttribute('inert', '');\n } else {\n cell.removeAttribute('inert');\n }\n });\n }\n\n hasFocusableInHeader = () => {\n const hasFocusable = this.columns.some((column) => {\n const columnElement = column.props.ref.current;\n\n return column.sortable || (columnElement && hasFocusableIn(columnElement));\n });\n\n return hasFocusable;\n };\n\n changeFocusCell = (rowIndex: RowIndex, colIndex: ColIndex) => {\n const hasFocusable = this.hasFocusableInHeader();\n\n const maxCol = this.columns.length - 1;\n const maxRow = this.totalRows;\n\n const currentRow = this.tableRef.current?.querySelector(\n `[aria-rowindex=\"${this.focusedCell[0] + 1}\"]`,\n );\n const headerRow = this.tableRef.current?.querySelector('[aria-rowindex=\"1\"]');\n const headerCells = headerRow?.querySelectorAll('[role=columnheader]');\n const currentCell = currentRow?.querySelectorAll('[role=gridcell]').item(this.focusedCell[1]);\n const currentHeaderCell = headerCells?.item(this.focusedCell[1]);\n\n let changed = true;\n const newRow = this.focusedCell[0] + rowIndex;\n const newCol = this.focusedCell[1] + colIndex;\n\n if (\n ((hasFocusable && newRow < 0) || (!hasFocusable && newRow < 1) || newRow > maxRow) &&\n newRow !== this.focusedCell[0]\n ) {\n changed = false;\n }\n if ((newCol < 0 || newCol > maxCol) && newCol !== this.focusedCell[1]) {\n changed = false;\n }\n\n if (!changed) return;\n\n this.focusedCell = [newRow, newCol];\n\n const row = this.getRow(newRow);\n const cell = row?.querySelectorAll('[role=gridcell], [role=columnheader]').item(newCol);\n\n if (cell instanceof HTMLElement && currentCell !== cell) {\n currentCell?.setAttribute('inert', '');\n\n if (currentCell !== currentHeaderCell) {\n currentCell?.removeAttribute('aria-describedby');\n }\n\n const headerCell = headerCells?.item(newCol);\n const describedBy = headerCell?.getAttribute('aria-describedby');\n\n cell.removeAttribute('inert');\n if (headerCell !== cell && describedBy) {\n cell.setAttribute('aria-describedby', describedBy);\n }\n\n cell?.focus();\n\n if (newRow !== 0) {\n currentHeaderCell?.setAttribute('inert', '');\n const headerCell = headerCells?.item(newCol);\n\n headerCell?.removeAttribute('inert');\n }\n } else if (currentCell === cell) {\n this.changeFocusCell(rowIndex, colIndex);\n }\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case 'Tab': {\n this.setInert(true);\n break;\n }\n case 'ArrowLeft': {\n e.preventDefault();\n this.changeFocusCell(0, -1);\n break;\n }\n case 'ArrowRight': {\n e.preventDefault();\n this.changeFocusCell(0, 1);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n this.changeFocusCell(-1, 0);\n break;\n }\n case 'ArrowDown': {\n e.preventDefault();\n this.changeFocusCell(1, 0);\n break;\n }\n }\n };\n\n initFocusableCell = () => {\n const hasFocusable = this.hasFocusableInHeader();\n\n if (hasFocusable) {\n this.focusedCell = [0, 0];\n } else {\n this.focusedCell = [1, 0];\n }\n };\n\n getRow = (index: number) => {\n return index === 0\n ? this.tableRef.current?.querySelector('[role=row]')\n : this.tableRef.current?.querySelector(`[aria-rowindex=\"${index + 1}\"]`);\n };\n\n handleFocus = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n if (\n (!e.relatedTarget || !isFocusInside(e.currentTarget, e.relatedTarget)) &&\n this.asProps.focusSourceRef?.current === 'keyboard'\n ) {\n if (this.focusedCell[0] === -1 && this.focusedCell[1] === -1) {\n this.initFocusableCell();\n }\n\n this.setInert(true);\n\n let row = this.getRow(this.focusedCell[0]);\n\n if (!row) {\n this.initFocusableCell();\n row = this.getRow(this.focusedCell[0]);\n }\n\n const cell = row\n ?.querySelectorAll('[role=gridcell], [role=columnheader]')\n .item(this.focusedCell[1]);\n\n cell?.removeAttribute('inert');\n cell instanceof HTMLElement && cell.focus();\n\n e.currentTarget.setAttribute('tabIndex', '-1');\n }\n };\n\n handleBlur = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n const relatedTarget = e.relatedTarget;\n const tableElement = this.tableRef.current;\n\n if (\n tableElement &&\n (!relatedTarget ||\n !isFocusInside(tableElement, relatedTarget) ||\n this.asProps.focusSourceRef?.current !== 'keyboard')\n ) {\n this.setInert(false);\n tableElement.setAttribute('tabIndex', '0');\n }\n };\n\n handleMouseMove = () => {\n this.setInert(false);\n };\n\n render() {\n const SDataTable = Root;\n const { Children, styles } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role='grid'\n onKeyDown={this.handleKeyDown}\n onMouseMove={this.handleMouseMove}\n tabIndex={0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-rowcount={this.totalRows}\n aria-colcount={this.columns.length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ntype DataTableCtx = {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n};\n\nfunction ComponentDefinition() {\n return null;\n}\n\ntype IntergalacticDataTableComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n DataTableProps<Data> & PropsExtending,\n DataTableCtx,\n never\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableProps>;\n\ntype IntergalacticDataTableRowComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableRowProps & {\n /**\n * That property is ONLY used for the component strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableRowProps>;\n\ntype IntergalacticDataTableCellComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[] = [],\n Name extends string = string,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableCellProps<Name> & {\n /**\n * That property is ONLY used for the componenct strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableCellProps>;\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as IntergalacticDataTableComponent & {\n Head: Intergalactic.Component<'div', DataTableHeadProps>;\n Body: Intergalactic.Component<'div', DataTableBodyProps>;\n Column: Intergalactic.Component<'div', DataTableColumnProps>;\n Row: IntergalacticDataTableRowComponent;\n Cell: IntergalacticDataTableCellComponent;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n\nexport const wrapDataTable = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableRow = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableRowComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableRowComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableCell = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableCellComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableCellComponent<PropsExtending> => wrapper as any;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_syncScroll","_assignProps2","_fire","_utils","_Head","_Body","_uniqueID","_intergalacticDynamicLocales","_i18nEnhance","_useFocusLock","_excluded","_excluded2","style","sstyled","insert","reversedSortDirection","desc","asc","defaultSortDirection","ROW_GROUP","Symbol","exports","cssVarReg","createCssVarForWidth","name","concat","replace","setBorderGroupColumns","columns","side","firstColumn","lastColumn","length","borderLeft","borderRight","RootDefinitionTable","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","event","column","find","fire","active","sortDirection","forceUpdate","_this$tableRef","_this$tableRef$curren","tableRef","current","scrollIntoView","block","inline","behavior","hasFocusable","some","columnElement","ref","sortable","hasFocusableIn","rowIndex","colIndex","_this$tableRef$curren2","_this$tableRef$curren3","hasFocusableInHeader","maxCol","maxRow","totalRows","currentRow","querySelector","focusedCell","headerRow","headerCells","querySelectorAll","currentCell","item","currentHeaderCell","changed","newRow","newCol","row","getRow","cell","HTMLElement","setAttribute","removeAttribute","headerCell","describedBy","getAttribute","focus","changeFocusCell","e","key","setInert","preventDefault","index","_this$tableRef$curren4","_this$tableRef$curren5","relatedTarget","isFocusInside","currentTarget","lastInteraction","isKeyboard","_row2","initFocusableCell","tableElement","syncScroll","scrollBodyRef","scrollHeadRef","_createClass2","value","setVarStyle","_this2","animations","flatMap","_column$props$ref$cur","_column$props$ref$cur2","getAnimations","filter","a","undefined","animationPromise","Promise","resolve","all","map","animation","finished","then","_iterator","_createForOfIteratorHelper2","_step","s","n","done","setVar","_this2$tableRef$curre","setProperty","varWidth","width","err","f","console","error","childrenToColumns","children","_this3","options","arguments","fixed","sort","asProps","columnsChildren","Children","forEach","child","_column$props","isValidElement","type","DefinitionTable","Column","_ref3","_ref3$fixed","resizable","flex","vBorders","_objectWithoutProperties2","lastColumnChildren","isGroup","c","flattenColumns","_ref4","join","toArray","columnChildren","_this$props$ref$curre","getBoundingClientRect","_objectSpread2","forwardRef","parentColumns","unshift","push","getHeadProps","_this$asProps","use","uid","getI18nText","$onSortClick","callAllEventHandlers","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","getBodyProps","_this$asProps2","data","uniqueKey","cellPropsLayers","rowPropsLayers","_ref5","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","_this4","parseData","exclude","groupByName","columnsWithoutRowGroup","rowKey","columnNames","_iterator2","_step2","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","cells","_groupByName$column$n","cssVar","flatRowData","componentDidMount","componentDidUpdate","prevProps","focusedRow","isFocusInHeader","get","_this$asProps3","_this$tableRef$curren6","render","_ref","_ref2","SDataTable","Box","_this$asProps4","styles","createElement","cn","assignProps","handleKeyDown","handleMouseMove","handleFocus","handleBlur","Component","uniqueIDEnhancement","i18nEnhance","localizedMessages","ComponentDefinition","createComponent","Head","Body","_default","wrapDataTable","wrapper","wrapDataTableRow","wrapDataTableCell"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport {\n createComponent,\n Component,\n PropGetterFn,\n Root,\n sstyled,\n UnknownProperties,\n Intergalactic,\n lastInteraction,\n} from '@semcore/core';\nimport { Box, BoxProps, FlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/core/lib/utils/syncScroll';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport fire from '@semcore/core/lib/utils/fire';\nimport { flattenColumns } from './utils';\nimport type {\n ColIndex,\n Column,\n NestedCells,\n PropsLayer,\n PseudoChildPropsGetter,\n RowData,\n RowIndex,\n SortDirection,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport style from './style/data-table.shadow.css';\nimport { isFocusInside } from '@semcore/core/lib/utils/use/useFocusLock';\nimport { hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';\n\nconst reversedSortDirection: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst defaultSortDirection: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;\\W]/g;\n\nconst createCssVarForWidth = (name: string) => {\n return `--${name.replace(cssVarReg, '_')}_width`;\n};\n\ntype AsProps = {\n use: 'primary' | 'secondary';\n sort: SortDirection[];\n data: RowData[];\n totalRows?: number;\n uniqueKey: string;\n uid?: string;\n getI18nText?: (str: string) => string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n uid: string;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n uid: string;\n};\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort<Column = string> = [sortBy: Column, sortDirection: 'desc' | 'asc'];\nexport type DataTableTheme = 'muted' | 'info' | 'success' | 'warning' | 'danger';\nexport type DataTableUse = 'primary' | 'secondary';\nexport type DataTableRow = DataTableCell[];\nexport type DataTableCell = {\n /** Name of column */\n name: string;\n /** Data of column */\n data: React.ReactNode;\n [key: string]: unknown;\n};\n\n/**\n * Datatable must have an accessible name (aria-table-name).\n * It should describe table content.\n */\ntype DataTableAriaProps = Intergalactic.RequireAtLeastOne<{\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n title?: string;\n}>;\n\n/** @deprecated */\nexport interface IDataTableProps<\n DataTableData extends { [key: string]: any }[] = UnknownProperties[],\n> extends Omit<DataTableProps<DataTableData>, keyof DataTableAriaProps> {}\nexport type DataTableProps<DataTableData extends { [key: string]: any }[] = UnknownProperties[]> =\n BoxProps & {\n /** Table theme according to visual hierarchy on the page\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData;\n /** Active sort object */\n sort?: DataTableSort<keyof DataTableData[0]>;\n /** Handler call when request will change sort */\n onSortChange?: (sort: DataTableSort<keyof DataTableData[0]>, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all dataset\n * @default id\n */\n uniqueKey?: keyof DataTableData[0];\n /** Make cells compact by changing left and right paddings to smaller ones*/\n compact?: boolean;\n /** Count of total rows if table using virtual scroll. Needs for accessibility */\n totalRows?: number;\n } & DataTableAriaProps;\n\n/** @deprecated */\nexport interface IDataTableHeadProps extends DataTableHeadProps, UnknownProperties {}\nexport type DataTableHeadProps = BoxProps & {\n /** Sticky table header\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll (as action) */\n disabledScroll?: boolean;\n\n /** Enable scroll bar element in header */\n withScrollBar?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableColumnProps extends DataTableColumnProps, UnknownProperties {}\nexport type DataTableColumnProps = FlexProps & {\n /** Unique column name */\n name?: string;\n /** Enable sorting for column. And if you are passing a string, you can also set the default sorting */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fix column on the left o right side of the table */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column */\n flex?: Property.Flex | 'inherit';\n /** Add vertical border to the column */\n vBorders?: boolean;\n /** Add vertical border to the right side of the cell */\n borderRight?: boolean;\n /** Add vertical border to the left side of the cell */\n borderLeft?: boolean;\n /**\n * Enable changing column width with sort icon\n * @default false\n */\n changeSortSize?: boolean;\n /**\n * Enable column to use as a column for recalculation width\n * @default false (By default used first column with maximum width)\n */\n sortSizeRecalculation?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableBodyProps extends DataTableBodyProps, UnknownProperties {}\nexport type DataTableBodyProps = BoxProps & {\n /** Rows table */\n rows?: DataTableRow[];\n /** When enabled, only visually acessable rows are rendered.\n * `tollerance` property controls how many rows outside of viewport are render.\n * `rowHeight` fixes the rows height if it has known. If not provided, first row node height is measured.\n * @default { tollerance: 2 }\n */\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n /** Allows to redefine rows renderning for a very deep and even fragile customization like building custom virtual scrolling */\n renderRows?: (props: {\n rows: DataTableRow[];\n columns: Column[];\n renderRow: (row: DataTableRow, details: { dataIndex: number }) => React.ReactNode;\n }) => React.ReactNode;\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n\n /** Ref for table body container */\n scrollContainerRef?: React.Ref<HTMLDivElement>;\n};\n\n/** @deprecated */\nexport interface IDataTableRowProps extends DataTableRowProps, UnknownProperties {}\nexport type DataTableRowProps = BoxProps & {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Sets row state to active*/\n active?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableCellProps extends DataTableCellProps, UnknownProperties {}\nexport type DataTableCellProps<Name extends string = string> = FlexProps & {\n /** Unique name for column or columns separated by / */\n name: Name;\n /** Theme for cell */\n theme?: DataTableTheme;\n};\n\nfunction setBorderGroupColumns(columns: Column[], side?: string) {\n const firstColumn = columns[0];\n const lastColumn = columns[columns.length - 1];\n if (firstColumn && (!side || side === 'left')) {\n firstColumn.borderLeft = true;\n if (firstColumn.columns) {\n setBorderGroupColumns(firstColumn.columns, 'left');\n }\n }\n if (lastColumn && (!side || side === 'right')) {\n lastColumn.borderRight = true;\n if (lastColumn.columns) {\n setBorderGroupColumns(lastColumn.columns, 'right');\n }\n }\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\n\n focusedCell: [RowIndex, ColIndex] = [-1, -1];\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? reversedSortDirection[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n const animations = columns\n .flatMap((column) => column.props.ref.current?.getAnimations?.())\n .filter((a) => a !== undefined) as Animation[];\n\n let animationPromise: Promise<Animation[] | void> = Promise.resolve();\n\n if (animations.length > 0) {\n animationPromise = Promise.all(\n animations.map((animation) => {\n return animation.finished;\n }),\n );\n }\n\n animationPromise\n .then(() => {\n for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\n }\n })\n .catch((err) => {\n console.error(err);\n });\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n flex,\n vBorders,\n active,\n ...props\n } = child.props as Column['props'];\n const lastColumnChildren = columnsChildren[columnsChildren.length - 1];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n active = typeof active === 'boolean' ? active : columns.some((c) => c.active);\n\n if (vBorders) {\n setBorderGroupColumns(columns);\n }\n\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n const columnChildren = {\n get width() {\n // @ts-ignore\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n varWidth: createCssVarForWidth(name),\n setVar: flex !== 'inherit',\n fixed,\n resizable,\n active: typeof active === 'boolean' ? active : sort[0] === name,\n sortable,\n borderLeft: lastColumnChildren?.borderRight === true ? false : vBorders,\n borderRight: vBorders,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable === 'string' ? sortable : defaultSortDirection),\n props: {\n name,\n flex: flex === 'inherit' ? undefined : flex,\n ...props,\n // @ts-ignore\n forwardRef: child.ref,\n children,\n ref: column?.props?.ref || React.createRef(),\n },\n parentColumns: [],\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n columns.forEach((column) => column.parentColumns.unshift(columnChildren));\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use, uid, getI18nText } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n uid,\n getI18nText,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey, uid } = this.asProps;\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n uid,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const columnsWithoutRowGroup: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n columnsWithoutRowGroup[column] = true;\n }\n } else {\n columnsWithoutRowGroup[rowKey] = true;\n }\n }\n\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .flatMap((subRow) => Object.keys(subRow))\n .flatMap((key) => key.split('/'))\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...exclude,\n ...columnsWithoutRowGroup,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n // add empty cell if it is not present in data\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidMount() {\n this.setVarStyle(this.columns);\n }\n\n componentDidUpdate(prevProps: AsProps) {\n this.setVarStyle(this.columns);\n\n if (prevProps.data !== this.props.data) {\n const focusedRow = this.focusedCell[0];\n const isFocusInHeader = focusedRow === 0 && this.hasFocusableInHeader();\n if (this.tableRef.current && !isFocusInside(this.tableRef.current) && !isFocusInHeader) {\n this.focusedCell = [-1, -1];\n }\n }\n }\n\n get totalRows() {\n const { data, totalRows } = this.asProps;\n\n return totalRows ?? (data ?? []).length;\n }\n\n setInert(value: boolean) {\n const cells = this.tableRef.current?.querySelectorAll<HTMLDivElement>(\n '[role=gridcell], [role=columnheader]',\n );\n\n cells?.forEach((cell) => {\n if (value === true) {\n cell.setAttribute('inert', '');\n } else {\n cell.removeAttribute('inert');\n }\n });\n }\n\n hasFocusableInHeader = () => {\n const hasFocusable = this.columns.some((column) => {\n const columnElement = column.props.ref.current;\n\n return column.sortable || (columnElement && hasFocusableIn(columnElement));\n });\n\n return hasFocusable;\n };\n\n changeFocusCell = (rowIndex: RowIndex, colIndex: ColIndex) => {\n const hasFocusable = this.hasFocusableInHeader();\n\n const maxCol = this.columns.length - 1;\n const maxRow = this.totalRows;\n\n const currentRow = this.tableRef.current?.querySelector(\n `[aria-rowindex=\"${this.focusedCell[0] + 1}\"]`,\n );\n const headerRow = this.tableRef.current?.querySelector('[aria-rowindex=\"1\"]');\n const headerCells = headerRow?.querySelectorAll('[role=columnheader]');\n const currentCell = currentRow?.querySelectorAll('[role=gridcell]').item(this.focusedCell[1]);\n const currentHeaderCell = headerCells?.item(this.focusedCell[1]);\n\n let changed = true;\n const newRow = this.focusedCell[0] + rowIndex;\n const newCol = this.focusedCell[1] + colIndex;\n\n if (\n ((hasFocusable && newRow < 0) || (!hasFocusable && newRow < 1) || newRow > maxRow) &&\n newRow !== this.focusedCell[0]\n ) {\n changed = false;\n }\n if ((newCol < 0 || newCol > maxCol) && newCol !== this.focusedCell[1]) {\n changed = false;\n }\n\n if (!changed) return;\n\n this.focusedCell = [newRow, newCol];\n\n const row = this.getRow(newRow);\n const cell = row?.querySelectorAll('[role=gridcell], [role=columnheader]').item(newCol);\n\n if (cell instanceof HTMLElement && currentCell !== cell) {\n currentCell?.setAttribute('inert', '');\n\n if (currentCell !== currentHeaderCell) {\n currentCell?.removeAttribute('aria-describedby');\n }\n\n const headerCell = headerCells?.item(newCol);\n const describedBy = headerCell?.getAttribute('aria-describedby');\n\n cell.removeAttribute('inert');\n if (headerCell !== cell && describedBy) {\n cell.setAttribute('aria-describedby', describedBy);\n }\n\n cell?.focus();\n\n if (newRow !== 0) {\n currentHeaderCell?.setAttribute('inert', '');\n const headerCell = headerCells?.item(newCol);\n\n headerCell?.removeAttribute('inert');\n }\n } else if (currentCell === cell) {\n this.changeFocusCell(rowIndex, colIndex);\n }\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case 'Tab': {\n this.setInert(true);\n break;\n }\n case 'ArrowLeft': {\n e.preventDefault();\n this.changeFocusCell(0, -1);\n break;\n }\n case 'ArrowRight': {\n e.preventDefault();\n this.changeFocusCell(0, 1);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n this.changeFocusCell(-1, 0);\n break;\n }\n case 'ArrowDown': {\n e.preventDefault();\n this.changeFocusCell(1, 0);\n break;\n }\n }\n };\n\n initFocusableCell = () => {\n const hasFocusable = this.hasFocusableInHeader();\n\n if (hasFocusable) {\n this.focusedCell = [0, 0];\n } else {\n this.focusedCell = [1, 0];\n }\n };\n\n getRow = (index: number) => {\n return index === 0\n ? this.tableRef.current?.querySelector('[role=row]')\n : this.tableRef.current?.querySelector(`[aria-rowindex=\"${index + 1}\"]`);\n };\n\n handleFocus = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n if (\n (!e.relatedTarget || !isFocusInside(e.currentTarget, e.relatedTarget)) &&\n lastInteraction.isKeyboard()\n ) {\n if (this.focusedCell[0] === -1 && this.focusedCell[1] === -1) {\n this.initFocusableCell();\n }\n\n this.setInert(true);\n\n let row = this.getRow(this.focusedCell[0]);\n\n if (!row) {\n this.initFocusableCell();\n row = this.getRow(this.focusedCell[0]);\n }\n\n const cell = row\n ?.querySelectorAll('[role=gridcell], [role=columnheader]')\n .item(this.focusedCell[1]);\n\n cell?.removeAttribute('inert');\n cell instanceof HTMLElement && cell.focus();\n\n e.currentTarget.setAttribute('tabIndex', '-1');\n }\n };\n\n handleBlur = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n const relatedTarget = e.relatedTarget;\n const tableElement = this.tableRef.current;\n\n if (\n tableElement &&\n (!relatedTarget ||\n !isFocusInside(tableElement, relatedTarget) ||\n !lastInteraction.isKeyboard())\n ) {\n this.setInert(false);\n tableElement.setAttribute('tabIndex', '0');\n }\n };\n\n handleMouseMove = () => {\n this.setInert(false);\n };\n\n render() {\n const SDataTable = Root;\n const { Children, styles } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role='grid'\n onKeyDown={this.handleKeyDown}\n onMouseMove={this.handleMouseMove}\n tabIndex={0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-rowcount={this.totalRows}\n aria-colcount={this.columns.length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ntype DataTableCtx = {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n};\n\nfunction ComponentDefinition() {\n return null;\n}\n\ntype IntergalacticDataTableComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n DataTableProps<Data> & PropsExtending,\n DataTableCtx,\n never\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableProps>;\n\ntype IntergalacticDataTableRowComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableRowProps & {\n /**\n * That property is ONLY used for the component strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableRowProps>;\n\ntype IntergalacticDataTableCellComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[] = [],\n Name extends string = string,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableCellProps<Name> & {\n /**\n * That property is ONLY used for the componenct strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableCellProps>;\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as IntergalacticDataTableComponent & {\n Head: Intergalactic.Component<'div', DataTableHeadProps>;\n Body: Intergalactic.Component<'div', DataTableBodyProps>;\n Column: Intergalactic.Component<'div', DataTableColumnProps>;\n Row: IntergalacticDataTableRowComponent;\n Cell: IntergalacticDataTableCellComponent;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n\nexport const wrapDataTable = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableRow = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableRowComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableRowComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableCell = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableCellComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableCellComponent<PropsExtending> => wrapper as any;\n"],"mappings":"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"}
package/lib/cjs/Head.js CHANGED
@@ -20,11 +20,11 @@ var _flexBox = require("@semcore/flex-box");
20
20
  var _scrollArea = _interopRequireWildcard(require("@semcore/scroll-area"));
21
21
  var _m = _interopRequireDefault(require("@semcore/icon/SortDesc/m"));
22
22
  var _m2 = _interopRequireDefault(require("@semcore/icon/SortAsc/m"));
23
- var _assignProps2 = require("@semcore/utils/lib/assignProps");
23
+ var _assignProps2 = require("@semcore/core/lib/utils/assignProps");
24
24
  var _utils = require("./utils");
25
- var _logger = _interopRequireDefault(require("@semcore/utils/lib/logger"));
26
- var _ref4 = require("@semcore/utils/lib/ref");
27
- var _getFocusableIn = require("@semcore/utils/lib/focus-lock/getFocusableIn");
25
+ var _logger = _interopRequireDefault(require("@semcore/core/lib/utils/logger"));
26
+ var _ref4 = require("@semcore/core/lib/utils/ref");
27
+ var _getFocusableIn = require("@semcore/core/lib/utils/focus-lock/getFocusableIn");
28
28
  var SORT_ICON_WIDTH = 20;
29
29
  exports.SORT_ICON_WIDTH = SORT_ICON_WIDTH;
30
30
  var SORTING_ICON = {
@@ -323,7 +323,8 @@ var Head = /*#__PURE__*/function (_Component) {
323
323
  "aria-sort": ariaSortValue,
324
324
  "aria-colindex": isGroup ? undefined : index + 1,
325
325
  "onFocus": this.onFocusCell,
326
- "aria-describedby": ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined
326
+ "aria-describedby": ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined,
327
+ "innerOutline": true
327
328
  })), isGroup ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SColumn, _ref2.cn("SColumn", {
328
329
  "id": "igc-table-".concat(uid, "-").concat(column.name, "-group"),
329
330
  "groupHead": true,
@@ -1 +1 @@
1
- {"version":3,"file":"Head.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_scrollArea","_interopRequireWildcard","_m","_m2","_assignProps2","_utils","_logger","_ref4","_getFocusableIn","SORT_ICON_WIDTH","exports","SORTING_ICON","desc","SortDesc","asc","SortAsc","ariaSort","displayContents","display","cssToIntDefault","value","defaultValue","arguments","length","undefined","result","parseFloat","Number","isNaN","Math","round","Head","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","Map","e","currentTarget","lockedCell","focusableChildren","from","children","flatMap","node","getFocusableIn","key","_this$lockedCell$","focus","startsWith","stopPropagation","target","shiftKey","_focusableChildren","preventDefault","_focusableChildren$","_focusableChildren$2","_this$lockedCell$2","setAttribute","name","event","asProps","$onSortClick","active","ref","sortWrapperRefs","set","column","index","setRef","props","headCellMap","forwardRef","getAttribute","defaultWidths","has","computedStyle","window","getComputedStyle","minWidth","getPropertyValue","computedWidth","maxWidth","useForRecalculation","Boolean","sortSizeRecalculation","diff","exceptNode","lastMaxWidth","recalculatedNodes","forEach","push","setNodeMinWidth","_this$defaultWidths$g","_this$defaultWidths$g2","defaultNodeWidth","get","defaultNodeMinWidth","style","setProperty","diffPart","_this$defaultWidths$g3","_this$defaultWidths$g4","defaultNodeMaxWidth","removeProperty","_this$defaultWidths$g5","_this$defaultWidths$g6","clonedColumn","document","createElement","childNodes","append","cloneNode","styles","getPropertyPriority","body","appendChild","ceil","getBoundingClientRect","width","removeChild","changeMaxNodeWidth","freeSpace","_createClass2","sortableColumnDescribeId","uid","componentDidUpdate","_this2","activeColumn","columns","_column$props","changeSortSize","current","backToColumnDefaults","calculateActiveColumnMinWidth","renderColumns","_this3","map","renderColumn","_ref2","_column$columns","_this$asProps","use","hidden","SColumn","Flex","SHead","Box","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","isGroup","cSize","flattenColumns","_getFixedStyle","getFixedStyle","_getFixedStyle2","_slicedToArray2","_objectSpread2","flexBasis","flex","setVar","varWidth","ariaDescribedBy","parentColumns","parentName","findIndex","flattenCol","sstyled","cn","fixed","resizable","borderLeft","borderRight","makeColumnRefHandler","callAllEventHandlers","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","handleKeyDown","onFocusCell","join","Fragment","makeSortRefHandler","render","_ref","_ref3","SHeadWrapper","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","withScrollBar","animationsDisabled","getI18nText","_getScrollOffsetValue","getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","logger","warn","displayName","hideScrollBarsFromScreenReadersContext","Provider","Container","role","tabIndex","zIndex","assignProps","Bar","orientation","origin","ScreenReaderOnly","Component","_default"],"sources":["../../src/Head.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport { ColIndex, Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\nimport { getFocusableIn } from '@semcore/utils/lib/focus-lock/getFocusableIn';\nimport { ScreenReaderOnly } from '@semcore/flex-box';\n\nexport const SORT_ICON_WIDTH = 20;\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\nconst displayContents = { display: 'contents' };\n\nfunction cssToIntDefault(value: string, defaultValue = 0) {\n let result = parseFloat(value);\n if (Number.isNaN(result)) {\n result = defaultValue;\n }\n\n return Math.round(result);\n}\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n uid?: string;\n withScrollBar?: boolean;\n animationsDisabled?: boolean;\n getI18nText?: (str: string) => string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n headCellMap = new Map<ColIndex, HTMLElement | null>();\n lockedCell: [HTMLElement | null, boolean] = [null, false];\n\n sortWrapperRefs = new Map<Node, boolean>();\n defaultWidths = new Map<\n HTMLElement,\n {\n minWidth: number;\n maxWidth: number | null;\n computedWidth: number;\n useForRecalculation: boolean;\n }\n >();\n\n sortableColumnDescribeId() {\n const { uid } = this.asProps;\n return `${uid}-column-sortable-describer`;\n }\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.currentTarget === this.lockedCell[0]) {\n const focusableChildren = Array.from(this.lockedCell[0].children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n\n if (this.lockedCell[1]) {\n if (e.key === 'Escape') {\n this.lockedCell[0]?.focus();\n this.lockedCell[1] = false;\n }\n if (e.key.startsWith('Arrow')) {\n e.stopPropagation();\n }\n if (e.key === 'Tab') {\n if (e.target === focusableChildren[0] && e.shiftKey) {\n focusableChildren[focusableChildren.length - 1]?.focus();\n e.preventDefault();\n } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {\n focusableChildren[0]?.focus();\n e.preventDefault();\n }\n }\n } else if (e.key === 'Enter') {\n this.lockedCell[1] = true;\n focusableChildren[0]?.focus();\n } else if (e.key === 'Tab') {\n this.lockedCell[0]?.setAttribute('inert', '');\n }\n }\n };\n\n onFocusCell = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n if (e.target === e.currentTarget) {\n const focusableChildren = Array.from(e.currentTarget.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n\n if (focusableChildren.length === 1) {\n focusableChildren[0].focus();\n } else if (focusableChildren.length > 1) {\n this.lockedCell = [e.currentTarget, false];\n }\n }\n };\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.asProps.$onSortClick(name, event);\n }\n };\n\n makeSortRefHandler = (active: boolean) => (ref: HTMLElement | null) => {\n if (ref) {\n this.sortWrapperRefs.set(ref, active);\n }\n };\n\n makeColumnRefHandler = (column: Column, index: number) => (ref: HTMLElement | null) => {\n setRef(column.props.ref, ref);\n this.headCellMap.set(index, ref);\n if (column.props.forwardRef) {\n setRef(column.props.forwardRef, ref);\n }\n\n if (ref && ref.getAttribute('scope') === 'col') {\n if (!this.defaultWidths.has(ref)) {\n const computedStyle = window.getComputedStyle(ref);\n\n this.defaultWidths.set(ref, {\n minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),\n computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),\n maxWidth: cssToIntDefault(computedStyle.getPropertyValue('max-width')) || null,\n useForRecalculation: Boolean(column.props.sortSizeRecalculation),\n });\n }\n }\n };\n\n componentDidUpdate() {\n let activeColumn: HTMLElement | null = null;\n\n this.columns.forEach((column) => {\n const { changeSortSize, ref } = column.props;\n\n if (column.active && changeSortSize && ref.current) {\n activeColumn = ref.current;\n }\n\n if (ref.current) {\n this.backToColumnDefaults(ref.current);\n }\n });\n\n if (activeColumn) {\n this.calculateActiveColumnMinWidth(activeColumn);\n }\n }\n\n changeMaxNodeWidth = (diff: number, exceptNode: HTMLElement) => {\n let lastMaxWidth = 0;\n let node: HTMLElement | null = null;\n const recalculatedNodes: HTMLElement[] = [];\n\n this.defaultWidths.forEach((value, key) => {\n if (value.computedWidth > lastMaxWidth && key !== exceptNode) {\n node = key;\n lastMaxWidth = value.computedWidth;\n }\n if (value.useForRecalculation) {\n recalculatedNodes.push(key);\n }\n });\n\n const setNodeMinWidth = (node: HTMLElement, diff: number) => {\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth;\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n\n if (defaultNodeWidth) {\n const maxWidth = defaultNodeWidth - diff;\n node.style.setProperty('max-width', `${maxWidth}px`);\n\n if (defaultNodeMinWidth) {\n node.style.setProperty('min-width', `min(${maxWidth}px, ${defaultNodeMinWidth}px)`);\n }\n }\n };\n\n if (recalculatedNodes.length > 0) {\n const diffPart = diff / recalculatedNodes.length;\n\n recalculatedNodes.forEach((node) => {\n setNodeMinWidth(node, diffPart);\n });\n } else if (node !== null) {\n setNodeMinWidth(node, diff);\n }\n };\n\n backToColumnDefaults = (node: HTMLElement) => {\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n const defaultNodeMaxWidth = this.defaultWidths.get(node)?.maxWidth;\n\n node.style.setProperty('min-width', defaultNodeMinWidth + 'px');\n\n if (defaultNodeMaxWidth) {\n node.style.setProperty('max-width', defaultNodeMaxWidth + 'px');\n } else {\n node.style.removeProperty('max-width');\n }\n };\n\n calculateActiveColumnMinWidth = (node: HTMLElement) => {\n const clonedColumn = document.createElement('div');\n const computedStyle = window.getComputedStyle(node);\n\n node.childNodes.forEach((node) => {\n if (!this.sortWrapperRefs.get(node)) {\n clonedColumn.append(node.cloneNode(true));\n }\n });\n\n clonedColumn.style.setProperty('visibility', 'hidden', 'important');\n\n const styles = [\n 'display',\n 'flex',\n 'margin',\n 'padding',\n 'background',\n 'font-style',\n 'font-width',\n 'font-size',\n 'font-weight',\n ];\n\n styles.forEach((key) => {\n clonedColumn.style.setProperty(\n key,\n computedStyle.getPropertyValue(key),\n computedStyle.getPropertyPriority(key),\n );\n });\n\n clonedColumn.style.setProperty('width', 'fit-content', 'important');\n\n document.body.appendChild(clonedColumn);\n\n const computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);\n\n document.body.removeChild(clonedColumn);\n\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth ?? 0;\n\n if (computedWidth >= defaultNodeWidth) {\n node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');\n this.changeMaxNodeWidth(SORT_ICON_WIDTH, node);\n } else {\n const freeSpace = defaultNodeWidth - computedWidth;\n\n if (freeSpace < SORT_ICON_WIDTH) {\n node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');\n this.changeMaxNodeWidth(freeSpace, node);\n }\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden, uid } = this.asProps;\n const SColumn = Flex as any;\n const SHead = Box;\n const SSortWrapper = 'div';\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const ariaSortValue =\n column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n if (!column.setVar) {\n style['flexBasis'] = `var(${column.varWidth})`;\n }\n\n const ariaDescribedBy = [];\n if (column.sortable && !column.active) {\n ariaDescribedBy.push(this.sortableColumnDescribeId());\n }\n if (column.parentColumns.length > 0) {\n const parentName = column.parentColumns[0].name;\n ariaDescribedBy.push(`igc-table-${uid}-${parentName}-group`);\n }\n\n const index = this.columns.findIndex((flattenCol) => flattenCol.name === column.name);\n\n return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n scope={isGroup ? 'colgroup' : 'col'}\n key={column.name}\n id={`igc-table-${uid}-${column.name}`}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={isGroup ? undefined : -1}\n __excludeProps={['hidden']}\n {...column.props}\n ref={this.makeColumnRefHandler(column, index)}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n this.handleKeyDown,\n )}\n style={style}\n hidden={hidden}\n aria-sort={ariaSortValue}\n aria-colindex={isGroup ? undefined : index + 1}\n onFocus={this.onFocusCell}\n aria-describedby={ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined}\n >\n {isGroup ? (\n <>\n <SColumn\n id={`igc-table-${uid}-${column.name}-group`}\n groupHead\n use={use}\n active={column.active}\n borderLeft={column.borderLeft}\n borderRight={column.borderRight}\n >\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n {column.props.children}\n {column.sortable ? (\n <SSortWrapper ref={this.makeSortRefHandler(column.active)}>\n <SSortIcon />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box as any;\n const {\n Children,\n styles,\n columnsChildren,\n onResize,\n $scrollRef,\n sticky,\n withScrollBar,\n animationsDisabled,\n getI18nText,\n } = this.asProps;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n <SHeadWrapper sticky={sticky} animationsDisabled={animationsDisabled}>\n <ScrollArea\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef} role='rowgroup' tabIndex={-1} zIndex={2}>\n <SHead render={Box} role='row' __excludeProps={['hidden']}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n {Boolean(withScrollBar) && (\n <div style={displayContents}>\n <div style={displayContents}>\n <div style={displayContents}>\n <ScrollArea.Bar orientation='horizontal' />\n </div>\n </div>\n </div>\n )}\n </ScrollArea>\n {Children.origin}\n <ScreenReaderOnly aria-hidden={true} id={this.sortableColumnDescribeId()}>\n {getI18nText?.('sortableColumn')}\n </ScreenReaderOnly>\n </SHeadWrapper>\n </hideScrollBarsFromScreenReadersContext.Provider>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Head.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_scrollArea","_interopRequireWildcard","_m","_m2","_assignProps2","_utils","_logger","_ref4","_getFocusableIn","SORT_ICON_WIDTH","exports","SORTING_ICON","desc","SortDesc","asc","SortAsc","ariaSort","displayContents","display","cssToIntDefault","value","defaultValue","arguments","length","undefined","result","parseFloat","Number","isNaN","Math","round","Head","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","Map","e","currentTarget","lockedCell","focusableChildren","from","children","flatMap","node","getFocusableIn","key","_this$lockedCell$","focus","startsWith","stopPropagation","target","shiftKey","_focusableChildren","preventDefault","_focusableChildren$","_focusableChildren$2","_this$lockedCell$2","setAttribute","name","event","asProps","$onSortClick","active","ref","sortWrapperRefs","set","column","index","setRef","props","headCellMap","forwardRef","getAttribute","defaultWidths","has","computedStyle","window","getComputedStyle","minWidth","getPropertyValue","computedWidth","maxWidth","useForRecalculation","Boolean","sortSizeRecalculation","diff","exceptNode","lastMaxWidth","recalculatedNodes","forEach","push","setNodeMinWidth","_this$defaultWidths$g","_this$defaultWidths$g2","defaultNodeWidth","get","defaultNodeMinWidth","style","setProperty","diffPart","_this$defaultWidths$g3","_this$defaultWidths$g4","defaultNodeMaxWidth","removeProperty","_this$defaultWidths$g5","_this$defaultWidths$g6","clonedColumn","document","createElement","childNodes","append","cloneNode","styles","getPropertyPriority","body","appendChild","ceil","getBoundingClientRect","width","removeChild","changeMaxNodeWidth","freeSpace","_createClass2","sortableColumnDescribeId","uid","componentDidUpdate","_this2","activeColumn","columns","_column$props","changeSortSize","current","backToColumnDefaults","calculateActiveColumnMinWidth","renderColumns","_this3","map","renderColumn","_ref2","_column$columns","_this$asProps","use","hidden","SColumn","Flex","SHead","Box","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","isGroup","cSize","flattenColumns","_getFixedStyle","getFixedStyle","_getFixedStyle2","_slicedToArray2","_objectSpread2","flexBasis","flex","setVar","varWidth","ariaDescribedBy","parentColumns","parentName","findIndex","flattenCol","sstyled","cn","fixed","resizable","borderLeft","borderRight","makeColumnRefHandler","callAllEventHandlers","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","handleKeyDown","onFocusCell","join","Fragment","makeSortRefHandler","render","_ref","_ref3","SHeadWrapper","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","withScrollBar","animationsDisabled","getI18nText","_getScrollOffsetValue","getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","logger","warn","displayName","hideScrollBarsFromScreenReadersContext","Provider","Container","role","tabIndex","zIndex","assignProps","Bar","orientation","origin","ScreenReaderOnly","Component","_default"],"sources":["../../src/Head.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport { ColIndex, Column } from './types';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { setRef } from '@semcore/core/lib/utils/ref';\nimport { getFocusableIn } from '@semcore/core/lib/utils/focus-lock/getFocusableIn';\nimport { ScreenReaderOnly } from '@semcore/flex-box';\n\nexport const SORT_ICON_WIDTH = 20;\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\nconst displayContents = { display: 'contents' };\n\nfunction cssToIntDefault(value: string, defaultValue = 0) {\n let result = parseFloat(value);\n if (Number.isNaN(result)) {\n result = defaultValue;\n }\n\n return Math.round(result);\n}\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n uid?: string;\n withScrollBar?: boolean;\n animationsDisabled?: boolean;\n getI18nText?: (str: string) => string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n headCellMap = new Map<ColIndex, HTMLElement | null>();\n lockedCell: [HTMLElement | null, boolean] = [null, false];\n\n sortWrapperRefs = new Map<Node, boolean>();\n defaultWidths = new Map<\n HTMLElement,\n {\n minWidth: number;\n maxWidth: number | null;\n computedWidth: number;\n useForRecalculation: boolean;\n }\n >();\n\n sortableColumnDescribeId() {\n const { uid } = this.asProps;\n return `${uid}-column-sortable-describer`;\n }\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.currentTarget === this.lockedCell[0]) {\n const focusableChildren = Array.from(this.lockedCell[0].children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n\n if (this.lockedCell[1]) {\n if (e.key === 'Escape') {\n this.lockedCell[0]?.focus();\n this.lockedCell[1] = false;\n }\n if (e.key.startsWith('Arrow')) {\n e.stopPropagation();\n }\n if (e.key === 'Tab') {\n if (e.target === focusableChildren[0] && e.shiftKey) {\n focusableChildren[focusableChildren.length - 1]?.focus();\n e.preventDefault();\n } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {\n focusableChildren[0]?.focus();\n e.preventDefault();\n }\n }\n } else if (e.key === 'Enter') {\n this.lockedCell[1] = true;\n focusableChildren[0]?.focus();\n } else if (e.key === 'Tab') {\n this.lockedCell[0]?.setAttribute('inert', '');\n }\n }\n };\n\n onFocusCell = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n if (e.target === e.currentTarget) {\n const focusableChildren = Array.from(e.currentTarget.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n\n if (focusableChildren.length === 1) {\n focusableChildren[0].focus();\n } else if (focusableChildren.length > 1) {\n this.lockedCell = [e.currentTarget, false];\n }\n }\n };\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.asProps.$onSortClick(name, event);\n }\n };\n\n makeSortRefHandler = (active: boolean) => (ref: HTMLElement | null) => {\n if (ref) {\n this.sortWrapperRefs.set(ref, active);\n }\n };\n\n makeColumnRefHandler = (column: Column, index: number) => (ref: HTMLElement | null) => {\n setRef(column.props.ref, ref);\n this.headCellMap.set(index, ref);\n if (column.props.forwardRef) {\n setRef(column.props.forwardRef, ref);\n }\n\n if (ref && ref.getAttribute('scope') === 'col') {\n if (!this.defaultWidths.has(ref)) {\n const computedStyle = window.getComputedStyle(ref);\n\n this.defaultWidths.set(ref, {\n minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),\n computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),\n maxWidth: cssToIntDefault(computedStyle.getPropertyValue('max-width')) || null,\n useForRecalculation: Boolean(column.props.sortSizeRecalculation),\n });\n }\n }\n };\n\n componentDidUpdate() {\n let activeColumn: HTMLElement | null = null;\n\n this.columns.forEach((column) => {\n const { changeSortSize, ref } = column.props;\n\n if (column.active && changeSortSize && ref.current) {\n activeColumn = ref.current;\n }\n\n if (ref.current) {\n this.backToColumnDefaults(ref.current);\n }\n });\n\n if (activeColumn) {\n this.calculateActiveColumnMinWidth(activeColumn);\n }\n }\n\n changeMaxNodeWidth = (diff: number, exceptNode: HTMLElement) => {\n let lastMaxWidth = 0;\n let node: HTMLElement | null = null;\n const recalculatedNodes: HTMLElement[] = [];\n\n this.defaultWidths.forEach((value, key) => {\n if (value.computedWidth > lastMaxWidth && key !== exceptNode) {\n node = key;\n lastMaxWidth = value.computedWidth;\n }\n if (value.useForRecalculation) {\n recalculatedNodes.push(key);\n }\n });\n\n const setNodeMinWidth = (node: HTMLElement, diff: number) => {\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth;\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n\n if (defaultNodeWidth) {\n const maxWidth = defaultNodeWidth - diff;\n node.style.setProperty('max-width', `${maxWidth}px`);\n\n if (defaultNodeMinWidth) {\n node.style.setProperty('min-width', `min(${maxWidth}px, ${defaultNodeMinWidth}px)`);\n }\n }\n };\n\n if (recalculatedNodes.length > 0) {\n const diffPart = diff / recalculatedNodes.length;\n\n recalculatedNodes.forEach((node) => {\n setNodeMinWidth(node, diffPart);\n });\n } else if (node !== null) {\n setNodeMinWidth(node, diff);\n }\n };\n\n backToColumnDefaults = (node: HTMLElement) => {\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n const defaultNodeMaxWidth = this.defaultWidths.get(node)?.maxWidth;\n\n node.style.setProperty('min-width', defaultNodeMinWidth + 'px');\n\n if (defaultNodeMaxWidth) {\n node.style.setProperty('max-width', defaultNodeMaxWidth + 'px');\n } else {\n node.style.removeProperty('max-width');\n }\n };\n\n calculateActiveColumnMinWidth = (node: HTMLElement) => {\n const clonedColumn = document.createElement('div');\n const computedStyle = window.getComputedStyle(node);\n\n node.childNodes.forEach((node) => {\n if (!this.sortWrapperRefs.get(node)) {\n clonedColumn.append(node.cloneNode(true));\n }\n });\n\n clonedColumn.style.setProperty('visibility', 'hidden', 'important');\n\n const styles = [\n 'display',\n 'flex',\n 'margin',\n 'padding',\n 'background',\n 'font-style',\n 'font-width',\n 'font-size',\n 'font-weight',\n ];\n\n styles.forEach((key) => {\n clonedColumn.style.setProperty(\n key,\n computedStyle.getPropertyValue(key),\n computedStyle.getPropertyPriority(key),\n );\n });\n\n clonedColumn.style.setProperty('width', 'fit-content', 'important');\n\n document.body.appendChild(clonedColumn);\n\n const computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);\n\n document.body.removeChild(clonedColumn);\n\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth ?? 0;\n\n if (computedWidth >= defaultNodeWidth) {\n node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');\n this.changeMaxNodeWidth(SORT_ICON_WIDTH, node);\n } else {\n const freeSpace = defaultNodeWidth - computedWidth;\n\n if (freeSpace < SORT_ICON_WIDTH) {\n node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');\n this.changeMaxNodeWidth(freeSpace, node);\n }\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden, uid } = this.asProps;\n const SColumn = Flex as any;\n const SHead = Box;\n const SSortWrapper = 'div';\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const ariaSortValue =\n column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n if (!column.setVar) {\n style['flexBasis'] = `var(${column.varWidth})`;\n }\n\n const ariaDescribedBy = [];\n if (column.sortable && !column.active) {\n ariaDescribedBy.push(this.sortableColumnDescribeId());\n }\n if (column.parentColumns.length > 0) {\n const parentName = column.parentColumns[0].name;\n ariaDescribedBy.push(`igc-table-${uid}-${parentName}-group`);\n }\n\n const index = this.columns.findIndex((flattenCol) => flattenCol.name === column.name);\n\n return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n scope={isGroup ? 'colgroup' : 'col'}\n key={column.name}\n id={`igc-table-${uid}-${column.name}`}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={isGroup ? undefined : -1}\n __excludeProps={['hidden']}\n {...column.props}\n ref={this.makeColumnRefHandler(column, index)}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n this.handleKeyDown,\n )}\n style={style}\n hidden={hidden}\n aria-sort={ariaSortValue}\n aria-colindex={isGroup ? undefined : index + 1}\n onFocus={this.onFocusCell}\n aria-describedby={ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined}\n innerOutline\n >\n {isGroup ? (\n <>\n <SColumn\n id={`igc-table-${uid}-${column.name}-group`}\n groupHead\n use={use}\n active={column.active}\n borderLeft={column.borderLeft}\n borderRight={column.borderRight}\n >\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n {column.props.children}\n {column.sortable ? (\n <SSortWrapper ref={this.makeSortRefHandler(column.active)}>\n <SSortIcon />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box as any;\n const {\n Children,\n styles,\n columnsChildren,\n onResize,\n $scrollRef,\n sticky,\n withScrollBar,\n animationsDisabled,\n getI18nText,\n } = this.asProps;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n <SHeadWrapper sticky={sticky} animationsDisabled={animationsDisabled}>\n <ScrollArea\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef} role='rowgroup' tabIndex={-1} zIndex={2}>\n <SHead render={Box} role='row' __excludeProps={['hidden']}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n {Boolean(withScrollBar) && (\n <div style={displayContents}>\n <div style={displayContents}>\n <div style={displayContents}>\n <ScrollArea.Bar orientation='horizontal' />\n </div>\n </div>\n </div>\n )}\n </ScrollArea>\n {Children.origin}\n <ScreenReaderOnly aria-hidden={true} id={this.sortableColumnDescribeId()}>\n {getI18nText?.('sortableColumn')}\n </ScreenReaderOnly>\n </SHeadWrapper>\n </hideScrollBarsFromScreenReadersContext.Provider>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
@@ -42,12 +42,6 @@ SColumn {
42
42
  color: var(--intergalactic-text-primary, #191b23);
43
43
  box-sizing: border-box;
44
44
  position: relative;
45
-
46
- &:focus-visible {
47
- outline: none;
48
- box-shadow: inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
49
- }
50
-
51
45
  transition: width calc(var(--intergalactic-duration-extra-fast, 100) * 1ms) ease-in-out, min-width calc(var(--intergalactic-duration-extra-fast, 100) * 1ms) ease-in-out, max-width calc(var(--intergalactic-duration-extra-fast, 100) * 1ms) ease-in-out;
52
46
  }
53
47
 
@@ -390,19 +384,6 @@ SCell[theme='danger'] {
390
384
  background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
391
385
  }
392
386
 
393
- SCell:focus-visible:not([fixed]) {
394
- position: relative;
395
- }
396
-
397
- SCell:focus-visible::after {
398
- position: absolute;
399
- display: block;
400
- content: '';
401
- inset: 3px;
402
- box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
403
- pointer-events: none;
404
- }
405
-
406
387
  SHeightHold {
407
388
  position: absolute;
408
389
  top: 0;
package/lib/es6/Body.js CHANGED
@@ -10,7 +10,7 @@ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized
10
10
  import _inherits from "@babel/runtime/helpers/inherits";
11
11
  import _createSuper from "@babel/runtime/helpers/createSuper";
12
12
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
13
- import { sstyled as _sstyled } from "@semcore/utils/lib/core/index";
13
+ import { sstyled as _sstyled } from "@semcore/core";
14
14
  import { assignProps as _assignProps } from "@semcore/core";
15
15
  var _excluded = ["childrenPropsGetter"],
16
16
  _excluded2 = ["childrenPropsGetter"];
@@ -19,17 +19,17 @@ import { Component, sstyled, Root } from '@semcore/core';
19
19
  import { Box, Flex } from '@semcore/flex-box';
20
20
  import ScrollArea, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';
21
21
  import { getFixedStyle, getScrollOffsetValue } from './utils';
22
- import assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
23
- import trottle from '@semcore/utils/lib/rafTrottle';
24
- import { forkRef } from '@semcore/utils/lib/ref';
25
- import canUseDOM from '@semcore/utils/lib/canUseDOM';
22
+ import assignProps, { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
23
+ import trottle from '@semcore/core/lib/utils/rafTrottle';
24
+ import { forkRef } from '@semcore/core/lib/utils/ref';
25
+ import canUseDOM from '@semcore/core/lib/utils/canUseDOM';
26
26
  import { SORT_ICON_WIDTH } from './Head';
27
27
  /*__reshadow-styles__:"./style/scroll-shadows.shadow.css"*/
28
- var scrollStyles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_uv7k9_gg_:after,.___SShadowHorizontal_uv7k9_gg_:before,.___SShadowVertical_uv7k9_gg_:after,.___SShadowVertical_uv7k9_gg_:before{z-index:1}" /*__inner_css_end__*/, "uv7k9_gg_") /*__reshadow_css_end__*/, {
29
- "__SShadowHorizontal": "___SShadowHorizontal_uv7k9_gg_",
30
- "__SShadowVertical": "___SShadowVertical_uv7k9_gg_"
28
+ var scrollStyles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_11aq4_gg_:after,.___SShadowHorizontal_11aq4_gg_:before,.___SShadowVertical_11aq4_gg_:after,.___SShadowVertical_11aq4_gg_:before{z-index:1}" /*__inner_css_end__*/, "11aq4_gg_") /*__reshadow_css_end__*/, {
29
+ "__SShadowHorizontal": "___SShadowHorizontal_11aq4_gg_",
30
+ "__SShadowVertical": "___SShadowVertical_11aq4_gg_"
31
31
  });
32
- import { getFocusableIn } from '@semcore/utils/lib/focus-lock/getFocusableIn';
32
+ import { getFocusableIn } from '@semcore/core/lib/utils/focus-lock/getFocusableIn';
33
33
  var testEnv = process.env.NODE_ENV === 'test';
34
34
  var getCellsByColumn = function getCellsByColumn(cells) {
35
35
  var flattenCells = cells.flat(20);
@@ -260,7 +260,8 @@ var Body = /*#__PURE__*/function (_Component) {
260
260
  "onKeyDown": _this2.handleKeyDown,
261
261
  "onFocus": _this2.onFocusCell,
262
262
  "aria-colindex": cellIndex + 1,
263
- "aria-colspan": ariaColspan === 1 ? undefined : ariaColspan
263
+ "aria-colspan": ariaColspan === 1 ? undefined : ariaColspan,
264
+ "innerOutline": true
264
265
  })));
265
266
  }
266
267
  }, []);