@semcore/data-table 16.1.0-prerelease.2 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Column.js","names":["Flex","ButtonLink","Component","lastInteraction","Root","sstyled","canUseDOM","getFocusableIn","isFocusInside","SortAsc","SortDesc","React","style","_sstyled","insert","SORTING_ICON","desc","asc","ARIA_SORT","SORT_ICON_WIDTH","DEFAULT_DIRECTION","reversedSortDirection","Column","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","sortVisible","node","columnRef","current","_this$columnRef$curre","_this$columnRef$curre2","clonedColumn","document","createElement","computedStyle","window","getComputedStyle","childNodes","forEach","sortWrapperRef","append","cloneNode","setProperty","styles","key","getPropertyValue","getPropertyPriority","body","appendChild","computedWidth","Math","ceil","getBoundingClientRect","width","removeChild","defaultNodeWidth","clientWidth","freeSpace","setState","e","relatedTarget","currentTarget","isKeyboard","_this$asProps","asProps","sort","onSortChange","name","sortable","isMouse","target","sortDirection","defaultDirection","lockedCell","focusableChildren","from","children","flatMap","_this$lockedCell$","focus","startsWith","stopPropagation","shiftKey","_focusableChildren","preventDefault","_focusableChildren$","_focusableChildren$2","_this$lockedCell$2","setAttribute","cellElement","_this$asProps2","onClick","columnIndex","handleSortClick","rowIndex","colIndex","_inherits","_createClass","value","componentDidMount","_this$asProps3","parent","sticky","changeSortSize","_columnElement$parent","columnElement","groupElement","parentElement","item","groupHeight","height","changeTemplateColumnBySort","componentDidUpdate","prevProps","_prevProps$sort","_this$asProps$sort","_this$asProps4","tableRef","gridTemplateColumns","newWidth","calculateActiveColumnMinWidth","setTimeout","map","gtcWidth","index","join","currentGridTemplateColumns","split","get","render","_ref","_ref2","SColumn","SSortWrapper","SSortButton","_this$asProps5","uid","sortableColumnDescribeId","Children","_ref3","undefined","_ref4","_slicedToArray","sortBy","isSorted","SSortIcon","visibleSort","Boolean","state","ariaDescribedBy","push","ariaSortValue","cn","_objectSpread","_assignProps","handleMouseEnter","handleMouseLeave","handleFocusCell","handleBlur","handleKeyDown","handleClick","Addon","tag"],"sources":["../../../../src/components/Head/Column.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { ButtonLink } from '@semcore/button';\nimport { Component, lastInteraction, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport { getFocusableIn } from '@semcore/core/lib/utils/focus-lock/getFocusableIn';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport type Icon from '@semcore/icon';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport * as React from 'react';\n\nimport type { ColumnPropsInner, DataTableColumnProps } from './Column.types';\nimport style from './style.shadow.css';\nimport type { DataTableData, SortDirection } from '../DataTable/DataTable.types';\n\nconst SORTING_ICON: { [key in SortDirection]: typeof Icon } = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\n\nconst ARIA_SORT = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\n\nconst SORT_ICON_WIDTH = 20;\n\nconst DEFAULT_DIRECTION = 'desc';\n\nconst reversedSortDirection: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\n\ntype State = {\n sortVisible: boolean;\n};\n\nexport class Column<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> extends Component<\n DataTableColumnProps,\n {},\n {},\n [],\n ColumnPropsInner<Data, UniqKey, UniqKeyType>\n > {\n static displayName = 'Column';\n static style = style;\n\n lockedCell: [HTMLElement | null, boolean] = [null, false];\n\n columnRef = React.createRef<HTMLDivElement>();\n sortWrapperRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n sortVisible: false,\n };\n\n componentDidMount() {\n const { parent, sticky, changeSortSize, name, sort } = this.asProps;\n\n if (parent && sticky) {\n const columnElement = this.columnRef.current;\n const groupElement = columnElement?.parentElement?.children.item(0);\n\n const groupHeight = groupElement?.getBoundingClientRect().height;\n\n if (groupHeight) {\n columnElement?.style.setProperty('top', `${groupHeight}px`);\n }\n }\n\n if (canUseDOM() && changeSortSize && sort?.[0] === name) {\n this.changeTemplateColumnBySort();\n }\n }\n\n componentDidUpdate(prevProps: DataTableColumnProps & ColumnPropsInner<Data, UniqKey, UniqKeyType>): void {\n if (\n this.asProps.changeSortSize &&\n canUseDOM() &&\n prevProps.sort?.[0] !== this.asProps.sort?.[0]\n ) {\n this.changeTemplateColumnBySort();\n }\n }\n\n changeTemplateColumnBySort() {\n const { tableRef, gridTemplateColumns, columnIndex, sort, name } = this.asProps;\n\n if (sort?.[0] === name) {\n const newWidth = this.calculateActiveColumnMinWidth();\n\n setTimeout(() => {\n if (tableRef.current && newWidth !== null) {\n tableRef.current.style.setProperty(\n 'grid-template-columns',\n gridTemplateColumns\n .map((gtcWidth, index) => {\n if (index === columnIndex) {\n return `${newWidth}px`;\n }\n return gtcWidth;\n })\n .join(' '),\n );\n }\n });\n } else if (sort?.[0] !== name) {\n setTimeout(() => {\n if (tableRef.current) {\n const currentGridTemplateColumns = tableRef.current.style.getPropertyValue('grid-template-columns');\n\n if (currentGridTemplateColumns) {\n tableRef.current.style.setProperty(\n 'grid-template-columns',\n currentGridTemplateColumns.split(' ')\n .map((gtcWidth, index) => {\n if (index === columnIndex) {\n return gridTemplateColumns[index];\n }\n return gtcWidth;\n })\n .join(' '),\n );\n }\n }\n });\n }\n }\n\n calculateActiveColumnMinWidth = (): number | null => {\n const node = this.columnRef.current;\n\n if (node) {\n const clonedColumn = document.createElement('div');\n const computedStyle = window.getComputedStyle(node);\n\n node.childNodes.forEach((node) => {\n if (this.sortWrapperRef.current !== 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.columnRef.current?.clientWidth ?? 0;\n\n if (computedWidth >= defaultNodeWidth) {\n return defaultNodeWidth + SORT_ICON_WIDTH;\n } else {\n const freeSpace = defaultNodeWidth - computedWidth;\n\n if (freeSpace < SORT_ICON_WIDTH) {\n return computedWidth + SORT_ICON_WIDTH;\n }\n }\n }\n\n return null;\n };\n\n get defaultDirection() {\n const { sortable } = this.asProps;\n\n if (typeof sortable === 'string') {\n return sortable;\n }\n\n return DEFAULT_DIRECTION;\n }\n\n handleMouseEnter = () => {\n this.setState({ sortVisible: true });\n };\n\n handleMouseLeave = () => {\n this.setState({ sortVisible: false });\n };\n\n handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const relatedTarget = e.relatedTarget as HTMLElement | undefined;\n if (!isFocusInside(e.currentTarget, relatedTarget) && lastInteraction.isKeyboard()) {\n this.setState({ sortVisible: false });\n }\n };\n\n handleSortClick = (e: React.SyntheticEvent<HTMLElement>) => {\n const { sort, onSortChange, name, sortable } = this.asProps;\n\n if (\n lastInteraction.isMouse() ||\n (lastInteraction.isKeyboard() && e.target === e.currentTarget)\n ) {\n if (sortable && onSortChange) {\n const sortDirection =\n sort?.[0] === name ? reversedSortDirection[sort[1]] : this.defaultDirection;\n\n onSortChange([name, sortDirection], e);\n }\n }\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 e.stopPropagation();\n }\n } else if (e.key === 'Enter') {\n this.lockedCell[1] = true;\n focusableChildren[0]?.focus();\n e.preventDefault();\n e.stopPropagation();\n } else if (e.key === 'Tab') {\n this.lockedCell[0]?.setAttribute('inert', '');\n }\n }\n };\n\n handleFocusCell = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n const cellElement = e.currentTarget;\n const target = e.target;\n\n if (lastInteraction.isKeyboard()) {\n this.setState({ sortVisible: true }, () => {\n if (target === cellElement) {\n const focusableChildren = Array.from(cellElement.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 = [cellElement, false];\n }\n }\n });\n }\n };\n\n handleClick = (e: React.SyntheticEvent<HTMLElement>) => {\n const { sortable, onClick, columnIndex } = this.asProps;\n if (sortable) {\n this.handleSortClick(e);\n }\n\n onClick?.(e, { rowIndex: -1, colIndex: columnIndex });\n };\n\n render() {\n const SColumn = Root;\n const SSortWrapper = 'div';\n const SSortButton = ButtonLink;\n const { styles, sortable, sort, uid, name, parent, sortableColumnDescribeId, Children } =\n this.asProps;\n\n const [sortBy, sortDirection] = sort ?? [undefined, undefined];\n const isSorted = sortBy === name && !!sortDirection;\n\n const SSortIcon = isSorted ? SORTING_ICON[sortDirection] : SORTING_ICON[this.defaultDirection];\n\n const visibleSort = Boolean(sortable) && (this.state.sortVisible || isSorted);\n\n const ariaDescribedBy = [];\n if (sortable) {\n ariaDescribedBy.push(sortableColumnDescribeId);\n }\n if (parent) {\n ariaDescribedBy.push(`igc-table-${uid}-${parent.name}-group`);\n }\n\n const ariaSortValue = isSorted ? ARIA_SORT[sortDirection] : undefined;\n\n return sstyled(styles)(\n <SColumn\n render={Flex}\n ref={this.columnRef}\n role='columnheader'\n tabIndex={-1}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onFocus={this.handleFocusCell}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n visibleSort={visibleSort}\n isSorted={isSorted}\n innerOutline\n aria-describedby={ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined}\n aria-sort={ariaSortValue}\n use:onClick={this.handleClick}\n >\n <Children />\n\n {sortable && (\n <SSortWrapper ref={this.sortWrapperRef}>\n <SSortButton\n onClick={this.handleSortClick}\n aria-label={ariaSortValue}\n color='--intergalactic-icon-primary-neutral'\n >\n <SSortButton.Addon tag={SSortIcon} />\n </SSortButton>\n </SSortWrapper>\n )}\n </SColumn>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Column.js","names":["Flex","ButtonLink","Component","lastInteraction","Root","sstyled","canUseDOM","getFocusableIn","isFocusInside","SortAsc","SortDesc","React","style","_sstyled","insert","SORTING_ICON","desc","asc","ARIA_SORT","SORT_ICON_WIDTH","DEFAULT_DIRECTION","reversedSortDirection","Column","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","sortVisible","node","columnRef","current","_this$columnRef$curre","_this$columnRef$curre2","clonedColumn","document","createElement","computedStyle","window","getComputedStyle","childNodes","forEach","sortWrapperRef","append","cloneNode","setProperty","styles","key","getPropertyValue","getPropertyPriority","body","appendChild","computedWidth","Math","ceil","getBoundingClientRect","width","removeChild","defaultNodeWidth","clientWidth","freeSpace","setState","e","relatedTarget","currentTarget","isKeyboard","_this$asProps","asProps","sort","onSortChange","name","sortable","isMouse","target","sortDirection","defaultDirection","lockedCell","focusableChildren","from","children","flatMap","_this$lockedCell$","focus","startsWith","stopPropagation","shiftKey","_focusableChildren","preventDefault","_focusableChildren$","_focusableChildren$2","_this$lockedCell$2","setAttribute","cellElement","_this$asProps2","onClick","columnIndex","handleSortClick","rowIndex","colIndex","_inherits","_createClass","value","componentDidMount","_this$asProps3","parent","sticky","changeSortSize","scrollDirection","_columnElement$parent","columnElement","groupElement","parentElement","item","groupHeight","height","changeTemplateColumnBySort","componentDidUpdate","prevProps","_prevProps$sort","_this$asProps$sort","_this$asProps4","tableRef","gridTemplateColumns","newWidth","calculateActiveColumnMinWidth","setTimeout","map","gtcWidth","index","join","currentGridTemplateColumns","split","get","render","_ref","_ref2","SColumn","SSortWrapper","SSortButton","_this$asProps5","uid","sortableColumnDescribeId","Children","_ref3","undefined","_ref4","_slicedToArray","sortBy","isSorted","SSortIcon","visibleSort","Boolean","state","ariaDescribedBy","push","ariaSortValue","cn","_objectSpread","_assignProps","handleMouseEnter","handleMouseLeave","handleFocusCell","handleBlur","handleKeyDown","handleClick","Addon","tag"],"sources":["../../../../src/components/Head/Column.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport { ButtonLink } from '@semcore/button';\nimport { Component, lastInteraction, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport { getFocusableIn } from '@semcore/core/lib/utils/focus-lock/getFocusableIn';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport type Icon from '@semcore/icon';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport * as React from 'react';\n\nimport type { ColumnPropsInner, DataTableColumnProps } from './Column.types';\nimport style from './style.shadow.css';\nimport type { DataTableData, SortDirection } from '../DataTable/DataTable.types';\n\nconst SORTING_ICON: { [key in SortDirection]: typeof Icon } = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\n\nconst ARIA_SORT = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\n\nconst SORT_ICON_WIDTH = 20;\n\nconst DEFAULT_DIRECTION = 'desc';\n\nconst reversedSortDirection: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\n\ntype State = {\n sortVisible: boolean;\n};\n\nexport class Column<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> extends Component<\n DataTableColumnProps,\n {},\n {},\n [],\n ColumnPropsInner<Data, UniqKey, UniqKeyType>\n > {\n static displayName = 'Column';\n static style = style;\n\n lockedCell: [HTMLElement | null, boolean] = [null, false];\n\n columnRef = React.createRef<HTMLDivElement>();\n sortWrapperRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n sortVisible: false,\n };\n\n componentDidMount() {\n const { parent, sticky, changeSortSize, name, sort, scrollDirection } = this.asProps;\n\n if (parent && sticky && scrollDirection !== 'horizontal') {\n const columnElement = this.columnRef.current;\n const groupElement = columnElement?.parentElement?.children.item(0);\n\n const groupHeight = groupElement?.getBoundingClientRect().height;\n\n if (groupHeight) {\n columnElement?.style.setProperty('top', `${groupHeight}px`);\n }\n }\n\n if (canUseDOM() && changeSortSize && sort?.[0] === name) {\n this.changeTemplateColumnBySort();\n }\n }\n\n componentDidUpdate(prevProps: DataTableColumnProps & ColumnPropsInner<Data, UniqKey, UniqKeyType>): void {\n if (\n this.asProps.changeSortSize &&\n canUseDOM() &&\n prevProps.sort?.[0] !== this.asProps.sort?.[0]\n ) {\n this.changeTemplateColumnBySort();\n }\n }\n\n changeTemplateColumnBySort() {\n const { tableRef, gridTemplateColumns, columnIndex, sort, name } = this.asProps;\n\n if (sort?.[0] === name) {\n const newWidth = this.calculateActiveColumnMinWidth();\n\n setTimeout(() => {\n if (tableRef.current && newWidth !== null) {\n tableRef.current.style.setProperty(\n 'grid-template-columns',\n gridTemplateColumns\n .map((gtcWidth, index) => {\n if (index === columnIndex) {\n return `${newWidth}px`;\n }\n return gtcWidth;\n })\n .join(' '),\n );\n }\n });\n } else if (sort?.[0] !== name) {\n setTimeout(() => {\n if (tableRef.current) {\n const currentGridTemplateColumns = tableRef.current.style.getPropertyValue('grid-template-columns');\n\n if (currentGridTemplateColumns) {\n tableRef.current.style.setProperty(\n 'grid-template-columns',\n currentGridTemplateColumns.split(' ')\n .map((gtcWidth, index) => {\n if (index === columnIndex) {\n return gridTemplateColumns[index];\n }\n return gtcWidth;\n })\n .join(' '),\n );\n }\n }\n });\n }\n }\n\n calculateActiveColumnMinWidth = (): number | null => {\n const node = this.columnRef.current;\n\n if (node) {\n const clonedColumn = document.createElement('div');\n const computedStyle = window.getComputedStyle(node);\n\n node.childNodes.forEach((node) => {\n if (this.sortWrapperRef.current !== 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.columnRef.current?.clientWidth ?? 0;\n\n if (computedWidth >= defaultNodeWidth) {\n return defaultNodeWidth + SORT_ICON_WIDTH;\n } else {\n const freeSpace = defaultNodeWidth - computedWidth;\n\n if (freeSpace < SORT_ICON_WIDTH) {\n return computedWidth + SORT_ICON_WIDTH;\n }\n }\n }\n\n return null;\n };\n\n get defaultDirection() {\n const { sortable } = this.asProps;\n\n if (typeof sortable === 'string') {\n return sortable;\n }\n\n return DEFAULT_DIRECTION;\n }\n\n handleMouseEnter = () => {\n this.setState({ sortVisible: true });\n };\n\n handleMouseLeave = () => {\n this.setState({ sortVisible: false });\n };\n\n handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const relatedTarget = e.relatedTarget as HTMLElement | undefined;\n if (!isFocusInside(e.currentTarget, relatedTarget) && lastInteraction.isKeyboard()) {\n this.setState({ sortVisible: false });\n }\n };\n\n handleSortClick = (e: React.SyntheticEvent<HTMLElement>) => {\n const { sort, onSortChange, name, sortable } = this.asProps;\n\n if (\n lastInteraction.isMouse() ||\n (lastInteraction.isKeyboard() && e.target === e.currentTarget)\n ) {\n if (sortable && onSortChange) {\n const sortDirection =\n sort?.[0] === name ? reversedSortDirection[sort[1]] : this.defaultDirection;\n\n onSortChange([name, sortDirection], e);\n }\n }\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 e.stopPropagation();\n }\n } else if (e.key === 'Enter') {\n this.lockedCell[1] = true;\n focusableChildren[0]?.focus();\n e.preventDefault();\n e.stopPropagation();\n } else if (e.key === 'Tab') {\n this.lockedCell[0]?.setAttribute('inert', '');\n }\n }\n };\n\n handleFocusCell = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n const cellElement = e.currentTarget;\n const target = e.target;\n\n if (lastInteraction.isKeyboard()) {\n this.setState({ sortVisible: true }, () => {\n if (target === cellElement) {\n const focusableChildren = Array.from(cellElement.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 = [cellElement, false];\n }\n }\n });\n }\n };\n\n handleClick = (e: React.SyntheticEvent<HTMLElement>) => {\n const { sortable, onClick, columnIndex } = this.asProps;\n if (sortable) {\n this.handleSortClick(e);\n }\n\n onClick?.(e, { rowIndex: -1, colIndex: columnIndex });\n };\n\n render() {\n const SColumn = Root;\n const SSortWrapper = 'div';\n const SSortButton = ButtonLink;\n const { styles, sortable, sort, uid, name, parent, sortableColumnDescribeId, Children } =\n this.asProps;\n\n const [sortBy, sortDirection] = sort ?? [undefined, undefined];\n const isSorted = sortBy === name && !!sortDirection;\n\n const SSortIcon = isSorted ? SORTING_ICON[sortDirection] : SORTING_ICON[this.defaultDirection];\n\n const visibleSort = Boolean(sortable) && (this.state.sortVisible || isSorted);\n\n const ariaDescribedBy = [];\n if (sortable) {\n ariaDescribedBy.push(sortableColumnDescribeId);\n }\n if (parent) {\n ariaDescribedBy.push(`igc-table-${uid}-${parent.name}-group`);\n }\n\n const ariaSortValue = isSorted ? ARIA_SORT[sortDirection] : undefined;\n\n return sstyled(styles)(\n <SColumn\n render={Flex}\n ref={this.columnRef}\n role='columnheader'\n tabIndex={-1}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onFocus={this.handleFocusCell}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n visibleSort={visibleSort}\n isSorted={isSorted}\n innerOutline\n aria-describedby={ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined}\n aria-sort={ariaSortValue}\n use:onClick={this.handleClick}\n >\n <Children />\n\n {sortable && (\n <SSortWrapper ref={this.sortWrapperRef}>\n <SSortButton\n onClick={this.handleSortClick}\n aria-label={ariaSortValue}\n color='--intergalactic-icon-primary-neutral'\n >\n <SSortButton.Addon tag={SSortIcon} />\n </SSortButton>\n </SSortWrapper>\n )}\n </SColumn>,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Column.types.js","names":[],"sources":["../../../../src/components/Head/Column.types.ts"],"sourcesContent":["import type { Property } from 'csstype';\n\nimport type { BodyPropsInner } from '../Body/Body.types';\nimport type { CellPropsInner } from '../Body/Cell.types';\nimport type {\n ColumnGroupConfig,\n ColumnItemConfig,\n DataTableData,\n DataTableProps,\n DTUse,\n SortDirection,\n} from '../DataTable/DataTable.types';\n\nexport type CommonColumnType = {\n /**\n * Name of column for mapping with data\n */\n name: string;\n /**\n * Flag to define column as sortable\n */\n sortable?: boolean | SortDirection;\n /**\n * Fixes column to some side of table\n */\n fixed?: 'left' | 'right';\n /**\n * Adds vertical border(s)\n */\n borders?: 'both' | 'left' | 'right';\n /**\n * It manages the `flex-wrap` property\n */\n flexWrap?: boolean;\n /**\n * It manages the `align-items` property\n */\n alignItems?: Property.AlignItems;\n /**\n * It manages the `align-content` property\n */\n alignContent?: Property.AlignContent;\n /**\n * CSS `justify-content` property\n */\n justifyContent?: Property.JustifyContent;\n /**\n * CSS `text-align` property\n */\n textAlign?: Property.TextAlign;\n};\n\nexport type DTColumn = ColumnItemConfig &\n CommonColumnType & {\n /**\n * Width for grid-template-columns\n */\n gtcWidth: string;\n\n parent?: DTColumn | ColumnGroupConfig;\n\n columns?: DTColumn[];\n children?: React.ReactNode | React.FC;\n\n gridArea?: string;\n\n showShadowVertical?: boolean;\n };\n\nexport type DataTableColumnProps = CommonColumnType & {\n /**\n * Value for grid-template-columns for current column\n */\n gtcWidth?: string;\n\n /**\n * Flag for change column size if sorted by it\n */\n changeSortSize?: boolean;\n};\n\nexport type ColumnPropsInner<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> = {\n use: DTUse;\n borders?: 'both' | 'left' | 'right';\n sort?: DataTableProps<Data, UniqKey, UniqKeyType>['sort'];\n onSortChange?: DataTableProps<Data, UniqKey, UniqKeyType>['onSortChange'];\n uid: string;\n parent?: DTColumn;\n sortableColumnDescribeId: string;\n columnIndex: number;\n tableRef: React.RefObject<HTMLElement>;\n gridTemplateColumns: string[];\n gridTemplateAreas: string[];\n sticky: boolean;\n onClick: CellPropsInner<UniqKeyType>['onClick'];\n shadowVertical?: BodyPropsInner<UniqKeyType>['shadowVertical'];\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Column.types.js","names":[],"sources":["../../../../src/components/Head/Column.types.ts"],"sourcesContent":["import type { Property } from 'csstype';\n\nimport type { BodyPropsInner } from '../Body/Body.types';\nimport type { CellPropsInner } from '../Body/Cell.types';\nimport type {\n ColumnGroupConfig,\n ColumnItemConfig,\n DataTableData,\n DataTableProps,\n DTUse,\n SortDirection,\n} from '../DataTable/DataTable.types';\n\nexport type CommonColumnType = {\n /**\n * Name of column for mapping with data\n */\n name: string;\n /**\n * Flag to define column as sortable\n */\n sortable?: boolean | SortDirection;\n /**\n * Fixes column to some side of table\n */\n fixed?: 'left' | 'right';\n /**\n * Adds vertical border(s)\n */\n borders?: 'both' | 'left' | 'right';\n /**\n * It manages the `flex-wrap` property\n */\n flexWrap?: boolean;\n /**\n * It manages the `align-items` property\n */\n alignItems?: Property.AlignItems;\n /**\n * It manages the `align-content` property\n */\n alignContent?: Property.AlignContent;\n /**\n * CSS `justify-content` property\n */\n justifyContent?: Property.JustifyContent;\n /**\n * CSS `text-align` property\n */\n textAlign?: Property.TextAlign;\n};\n\nexport type DTColumn = ColumnItemConfig &\n CommonColumnType & {\n /**\n * Width for grid-template-columns\n */\n gtcWidth: string;\n\n parent?: DTColumn | ColumnGroupConfig;\n\n columns?: DTColumn[];\n children?: React.ReactNode | React.FC;\n\n gridArea?: string;\n\n showShadowVertical?: boolean;\n };\n\nexport type DataTableColumnProps = CommonColumnType & {\n /**\n * Value for grid-template-columns for current column\n */\n gtcWidth?: string;\n\n /**\n * Flag for change column size if sorted by it\n */\n changeSortSize?: boolean;\n};\n\nexport type ColumnPropsInner<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> = {\n use: DTUse;\n borders?: 'both' | 'left' | 'right';\n sort?: DataTableProps<Data, UniqKey, UniqKeyType>['sort'];\n onSortChange?: DataTableProps<Data, UniqKey, UniqKeyType>['onSortChange'];\n uid: string;\n parent?: DTColumn;\n sortableColumnDescribeId: string;\n columnIndex: number;\n tableRef: React.RefObject<HTMLElement>;\n gridTemplateColumns: string[];\n gridTemplateAreas: string[];\n sticky: boolean;\n onClick: CellPropsInner<UniqKeyType>['onClick'];\n shadowVertical?: BodyPropsInner<UniqKeyType>['shadowVertical'];\n scrollDirection?: 'horizontal' | 'vertical' | 'both';\n};\n"],"mappings":"","ignoreList":[]}
@@ -115,7 +115,8 @@ var HeadRoot = /*#__PURE__*/function (_Component) {
115
115
  h = _this$asProps4.h,
116
116
  getFixedStyle = _this$asProps4.getFixedStyle,
117
117
  onCellClick = _this$asProps4.onCellClick,
118
- shadowVertical = _this$asProps4.shadowVertical;
118
+ shadowVertical = _this$asProps4.shadowVertical,
119
+ scrollDirection = _this$asProps4.scrollDirection;
119
120
  var column = columns[index];
120
121
  if (index === 0 && selectedRows && columns[index + 1].fixed) {
121
122
  column.fixed = 'left';
@@ -125,7 +126,7 @@ var HeadRoot = /*#__PURE__*/function (_Component) {
125
126
  name = _getFixedStyle2[0],
126
127
  value = _getFixedStyle2[1];
127
128
  var style = {};
128
- if (top) {
129
+ if (top && scrollDirection !== 'horizontal') {
129
130
  style.top = "".concat(top, "px");
130
131
  }
131
132
  if (name !== undefined && value !== undefined) {
@@ -149,7 +150,8 @@ var HeadRoot = /*#__PURE__*/function (_Component) {
149
150
  gridTemplateAreas: gridTemplateAreas,
150
151
  h: h,
151
152
  'onClick': onCellClick,
152
- 'shadowVertical': column.showShadowVertical ? shadowVertical : undefined
153
+ 'shadowVertical': column.showShadowVertical ? shadowVertical : undefined,
154
+ scrollDirection: scrollDirection
153
155
  };
154
156
  }
155
157
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"Head.js","names":["Box","ScreenReaderOnly","Checkbox","Component","createComponent","Root","sstyled","React","Column","Group","style","_sstyled","insert","DataTableInternal","SELECT_ALL","UNIQ_ROW_KEY","HeadRoot","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","value","event","_this$asProps$onChang","_this$asProps","asProps","onChangeSelectAll","call","_this$asProps$onChang2","_this$asProps2","preventDefault","stopPropagation","_inherits","_createClass","key","sortableColumnDescribeId","uid","getGroupProps","_","index","_this$asProps3","use","gridAreaGroupMap","children","getFixedStyle","shadowVertical","gridArea","get","withConfig","undefined","getColumnProps","_this$asProps4","columns","sort","onSortChange","tableRef","gridTemplateColumns","gridTemplateAreas","sticky","top","selectedRows","h","onCellClick","column","fixed","_getFixedStyle","_getFixedStyle2","_slicedToArray","name","borders","parent","showShadowVertical","_this$asProps5","_this$asProps5$select","flatRows","every","row","includes","_this$asProps6","some","render","_ref","_ref2","SHead","SHeadCheckboxCol","Head","_this$asProps7","Children","styles","getI18nText","treeColumns","animationDuration","areAllRowsSelected","indeterminate","isIndeterminate","createElement","Fragment","cn","_objectSpread","_assignProps","toString","handleClickSelectAll","handleSelectAll","Value","Control","CheckMark","mt","map","_i","_column$columns","_extends","c","join","title"],"sources":["../../../../src/components/Head/Head.tsx"],"sourcesContent":["import { Box, ScreenReaderOnly } from '@semcore/base-components';\nimport Checkbox from '@semcore/checkbox';\nimport { Component, createComponent, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport type Tooltip from '@semcore/tooltip';\nimport React from 'react';\n\nimport { Column } from './Column';\nimport type { DataTableColumnProps } from './Column.types';\nimport { Group } from './Group';\nimport type { DataTableGroupProps } from './Group.type';\nimport type { DataTableHeadProps, HeadPropsInner } from './Head.types';\nimport style from './style.shadow.css';\nimport { DataTableInternal, SELECT_ALL, UNIQ_ROW_KEY } from '../DataTable/DataTable';\nimport type { DataTableData } from '../DataTable/DataTable.types';\n\nclass HeadRoot<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> extends Component<\n DataTableHeadProps,\n {},\n {},\n [],\n HeadPropsInner<Data, UniqKey, UniqKeyType>\n > {\n static displayName = 'Head';\n static style = style;\n\n sortableColumnDescribeId() {\n const { uid } = this.asProps;\n return `${uid}-column-sortable-describer`;\n }\n\n getGroupProps(_: any, index: number) {\n const { use, gridAreaGroupMap, children, getFixedStyle, shadowVertical } = this.asProps;\n\n return {\n use,\n gridArea: gridAreaGroupMap.get(index),\n withConfig: children === undefined,\n getFixedStyle,\n shadowVertical,\n };\n }\n\n getColumnProps(_: any, index: number) {\n const {\n use,\n columns,\n sort,\n onSortChange,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n sticky,\n top,\n selectedRows,\n h,\n getFixedStyle,\n onCellClick,\n shadowVertical,\n } = this.asProps;\n const column = columns[index];\n\n if (index === 0 && selectedRows && columns[index + 1].fixed) {\n column.fixed = 'left';\n }\n\n const [name, value] = getFixedStyle(column);\n const style: any = {};\n\n if (top) {\n style.top = `${top}px`;\n }\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return {\n use,\n 'aria-colindex': index + 1,\n style,\n 'gridArea': column.gridArea,\n 'fixed': column.fixed,\n sticky,\n 'borders': column.borders,\n sort,\n onSortChange,\n 'parent': column.parent,\n 'sortableColumnDescribeId': this.sortableColumnDescribeId(),\n 'columnIndex': index,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n h,\n 'onClick': onCellClick,\n 'shadowVertical': column.showShadowVertical ? shadowVertical : undefined,\n };\n }\n\n handleSelectAll = (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => {\n this.asProps.onChangeSelectAll?.(value, event);\n };\n\n handleClickSelectAll = (value: boolean) => (event?: React.SyntheticEvent<HTMLElement>) => {\n event?.preventDefault();\n event?.stopPropagation();\n this.asProps.onChangeSelectAll?.(value, event);\n };\n\n get areAllRowsSelected() {\n const { selectedRows = [], flatRows } = this.asProps;\n\n return selectedRows.length > 0 && flatRows.every((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n }\n\n get isIndeterminate() {\n const { flatRows, selectedRows } = this.asProps;\n\n return flatRows.some((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n }\n\n render() {\n const SHead = Root;\n const SHeadCheckboxCol = Head.Column;\n const { Children, styles, getI18nText, children, treeColumns, selectedRows, sticky, animationDuration } = this.asProps;\n\n const areAllRowsSelected = this.areAllRowsSelected;\n const indeterminate = this.isIndeterminate && !areAllRowsSelected;\n\n return sstyled(styles)(\n <>\n <SHead\n render={Box}\n role='row'\n aria-rowindex={1}\n sticky={sticky}\n use:animationDuration={animationDuration ? `${animationDuration}ms` : undefined}\n >\n {selectedRows && (\n <SHeadCheckboxCol\n name={SELECT_ALL.toString()}\n onClick={this.handleClickSelectAll(!areAllRowsSelected)}\n >\n <Checkbox\n checked={areAllRowsSelected}\n indeterminate={indeterminate}\n aria-label={getI18nText('DataTable.Header.selectAllCheckbox:aria-label')}\n onChange={this.handleSelectAll}\n >\n <Checkbox.Value>\n <Checkbox.Value.Control />\n <Checkbox.Value.CheckMark mt={0} />\n </Checkbox.Value>\n </Checkbox>\n </SHeadCheckboxCol>\n )}\n\n {children\n ? (\n <Children />\n )\n : (\n <>\n {treeColumns.map((column, _i) => {\n if ('columns' in column) {\n return (\n <DataTableInternal.Head.Group\n key={column.name}\n {...column}\n name={column.columns?.map((c) => c.name).join('/')}\n title=''\n />\n );\n }\n\n return <DataTableInternal.Head.Column key={column.name} {...column} />;\n })}\n </>\n )}\n </SHead>\n\n <ScreenReaderOnly aria-hidden={true} id={this.sortableColumnDescribeId()}>\n {getI18nText('sortableColumn')}\n </ScreenReaderOnly>\n </>,\n );\n }\n}\n\nexport const Head = createComponent(HeadRoot, { Column, Group }) as Intergalactic.Component<\n 'div',\n DataTableHeadProps\n> & {\n Column: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableColumnProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n Group: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableGroupProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Head.js","names":["Box","ScreenReaderOnly","Checkbox","Component","createComponent","Root","sstyled","React","Column","Group","style","_sstyled","insert","DataTableInternal","SELECT_ALL","UNIQ_ROW_KEY","HeadRoot","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","value","event","_this$asProps$onChang","_this$asProps","asProps","onChangeSelectAll","call","_this$asProps$onChang2","_this$asProps2","preventDefault","stopPropagation","_inherits","_createClass","key","sortableColumnDescribeId","uid","getGroupProps","_","index","_this$asProps3","use","gridAreaGroupMap","children","getFixedStyle","shadowVertical","gridArea","get","withConfig","undefined","getColumnProps","_this$asProps4","columns","sort","onSortChange","tableRef","gridTemplateColumns","gridTemplateAreas","sticky","top","selectedRows","h","onCellClick","scrollDirection","column","fixed","_getFixedStyle","_getFixedStyle2","_slicedToArray","name","borders","parent","showShadowVertical","_this$asProps5","_this$asProps5$select","flatRows","every","row","includes","_this$asProps6","some","render","_ref","_ref2","SHead","SHeadCheckboxCol","Head","_this$asProps7","Children","styles","getI18nText","treeColumns","animationDuration","areAllRowsSelected","indeterminate","isIndeterminate","createElement","Fragment","cn","_objectSpread","_assignProps","toString","handleClickSelectAll","handleSelectAll","Value","Control","CheckMark","mt","map","_i","_column$columns","_extends","c","join","title"],"sources":["../../../../src/components/Head/Head.tsx"],"sourcesContent":["import { Box, ScreenReaderOnly } from '@semcore/base-components';\nimport Checkbox from '@semcore/checkbox';\nimport { Component, createComponent, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport type Tooltip from '@semcore/tooltip';\nimport React from 'react';\n\nimport { Column } from './Column';\nimport type { DataTableColumnProps } from './Column.types';\nimport { Group } from './Group';\nimport type { DataTableGroupProps } from './Group.type';\nimport type { DataTableHeadProps, HeadPropsInner } from './Head.types';\nimport style from './style.shadow.css';\nimport { DataTableInternal, SELECT_ALL, UNIQ_ROW_KEY } from '../DataTable/DataTable';\nimport type { DataTableData } from '../DataTable/DataTable.types';\n\nclass HeadRoot<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> extends Component<\n DataTableHeadProps,\n {},\n {},\n [],\n HeadPropsInner<Data, UniqKey, UniqKeyType>\n > {\n static displayName = 'Head';\n static style = style;\n\n sortableColumnDescribeId() {\n const { uid } = this.asProps;\n return `${uid}-column-sortable-describer`;\n }\n\n getGroupProps(_: any, index: number) {\n const { use, gridAreaGroupMap, children, getFixedStyle, shadowVertical } = this.asProps;\n\n return {\n use,\n gridArea: gridAreaGroupMap.get(index),\n withConfig: children === undefined,\n getFixedStyle,\n shadowVertical,\n };\n }\n\n getColumnProps(_: any, index: number) {\n const {\n use,\n columns,\n sort,\n onSortChange,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n sticky,\n top,\n selectedRows,\n h,\n getFixedStyle,\n onCellClick,\n shadowVertical,\n scrollDirection,\n } = this.asProps;\n const column = columns[index];\n\n if (index === 0 && selectedRows && columns[index + 1].fixed) {\n column.fixed = 'left';\n }\n\n const [name, value] = getFixedStyle(column);\n const style: any = {};\n\n if (top && scrollDirection !== 'horizontal') {\n style.top = `${top}px`;\n }\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return {\n use,\n 'aria-colindex': index + 1,\n style,\n 'gridArea': column.gridArea,\n 'fixed': column.fixed,\n sticky,\n 'borders': column.borders,\n sort,\n onSortChange,\n 'parent': column.parent,\n 'sortableColumnDescribeId': this.sortableColumnDescribeId(),\n 'columnIndex': index,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n h,\n 'onClick': onCellClick,\n 'shadowVertical': column.showShadowVertical ? shadowVertical : undefined,\n scrollDirection,\n };\n }\n\n handleSelectAll = (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => {\n this.asProps.onChangeSelectAll?.(value, event);\n };\n\n handleClickSelectAll = (value: boolean) => (event?: React.SyntheticEvent<HTMLElement>) => {\n event?.preventDefault();\n event?.stopPropagation();\n this.asProps.onChangeSelectAll?.(value, event);\n };\n\n get areAllRowsSelected() {\n const { selectedRows = [], flatRows } = this.asProps;\n\n return selectedRows.length > 0 && flatRows.every((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n }\n\n get isIndeterminate() {\n const { flatRows, selectedRows } = this.asProps;\n\n return flatRows.some((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n }\n\n render() {\n const SHead = Root;\n const SHeadCheckboxCol = Head.Column;\n const { Children, styles, getI18nText, children, treeColumns, selectedRows, sticky, animationDuration } = this.asProps;\n\n const areAllRowsSelected = this.areAllRowsSelected;\n const indeterminate = this.isIndeterminate && !areAllRowsSelected;\n\n return sstyled(styles)(\n <>\n <SHead\n render={Box}\n role='row'\n aria-rowindex={1}\n sticky={sticky}\n use:animationDuration={animationDuration ? `${animationDuration}ms` : undefined}\n >\n {selectedRows && (\n <SHeadCheckboxCol\n name={SELECT_ALL.toString()}\n onClick={this.handleClickSelectAll(!areAllRowsSelected)}\n >\n <Checkbox\n checked={areAllRowsSelected}\n indeterminate={indeterminate}\n aria-label={getI18nText('DataTable.Header.selectAllCheckbox:aria-label')}\n onChange={this.handleSelectAll}\n >\n <Checkbox.Value>\n <Checkbox.Value.Control />\n <Checkbox.Value.CheckMark mt={0} />\n </Checkbox.Value>\n </Checkbox>\n </SHeadCheckboxCol>\n )}\n\n {children\n ? (\n <Children />\n )\n : (\n <>\n {treeColumns.map((column, _i) => {\n if ('columns' in column) {\n return (\n <DataTableInternal.Head.Group\n key={column.name}\n {...column}\n name={column.columns?.map((c) => c.name).join('/')}\n title=''\n />\n );\n }\n\n return <DataTableInternal.Head.Column key={column.name} {...column} />;\n })}\n </>\n )}\n </SHead>\n\n <ScreenReaderOnly aria-hidden={true} id={this.sortableColumnDescribeId()}>\n {getI18nText('sortableColumn')}\n </ScreenReaderOnly>\n </>,\n );\n }\n}\n\nexport const Head = createComponent(HeadRoot, { Column, Group }) as Intergalactic.Component<\n 'div',\n DataTableHeadProps\n> & {\n Column: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableColumnProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n Group: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableGroupProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Head.types.js","names":[],"sources":["../../../../src/components/Head/Head.types.ts"],"sourcesContent":["import type { DTColumn } from './Column.types';\nimport type { BodyPropsInner } from '../Body/Body.types';\nimport type { CellPropsInner } from '../Body/Cell.types';\nimport type { DTRow } from '../Body/Row.types';\nimport type { DataTableData, DataTableProps, DTUse } from '../DataTable/DataTable.types';\n\nexport type DataTableHeadProps = {\n /**\n * Sticky header\n * @default false\n */\n sticky?: boolean;\n\n /**\n * offset for sticky header\n */\n top?: number;\n\n /**\n * Height of header in px\n */\n h?: number;\n\n /** Enable scroll bar element in header */\n withScrollBar?: boolean;\n\n /** Animation duration for a top property. When it's set adds animation for top changes */\n animationDuration?: number;\n\n /** Outer ref for the header */\n ref?: React.Ref<HTMLDivElement>;\n};\n\nexport type HeadPropsInner<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> = {\n use: DTUse;\n tableRef: React.RefObject<HTMLElement>;\n columns: DTColumn[];\n treeColumns: DTColumn[];\n compact: boolean;\n sort?: DataTableProps<Data, UniqKey, UniqKeyType>['sort'];\n onSortChange?: DataTableProps<Data, UniqKey, UniqKeyType>['onSortChange'];\n getI18nText: (key: string) => string;\n uid: string;\n ref: React.Ref<HTMLDivElement>;\n\n gridAreaGroupMap: Map<number, string>;\n gridTemplateColumns: string[];\n gridTemplateAreas: string[];\n sideIndents?: 'wide';\n\n totalRows: number;\n selectedRows?: UniqKeyType[];\n onChangeSelectAll?: (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => void;\n flatRows: DTRow<UniqKeyType>[];\n\n getFixedStyle: (\n cell: Pick<DTColumn, 'name' | 'fixed'>,\n ) => [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined];\n onCellClick: CellPropsInner<UniqKeyType>['onClick'];\n shadowVertical?: BodyPropsInner<UniqKeyType>['shadowVertical'];\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Head.types.js","names":[],"sources":["../../../../src/components/Head/Head.types.ts"],"sourcesContent":["import type { ColumnPropsInner, DTColumn } from './Column.types';\nimport type { BodyPropsInner } from '../Body/Body.types';\nimport type { CellPropsInner } from '../Body/Cell.types';\nimport type { DTRow } from '../Body/Row.types';\nimport type { DataTableData, DataTableProps, DTUse } from '../DataTable/DataTable.types';\n\nexport type DataTableHeadProps = {\n /**\n * Sticky header\n * @default false\n */\n sticky?: boolean;\n\n /**\n * offset for sticky header\n */\n top?: number;\n\n /**\n * Height of header in px\n */\n h?: number;\n\n /** Enable scroll bar element in header */\n withScrollBar?: boolean;\n\n /** Animation duration for a top property. When it's set adds animation for top changes */\n animationDuration?: number;\n\n /** Outer ref for the header */\n ref?: React.Ref<HTMLDivElement>;\n};\n\nexport type HeadPropsInner<\n Data extends DataTableData,\n UniqKey extends keyof Data[number],\n UniqKeyType extends Data[number][UniqKey],\n> = {\n use: DTUse;\n tableRef: React.RefObject<HTMLElement>;\n columns: DTColumn[];\n treeColumns: DTColumn[];\n compact: boolean;\n sort?: DataTableProps<Data, UniqKey, UniqKeyType>['sort'];\n onSortChange?: DataTableProps<Data, UniqKey, UniqKeyType>['onSortChange'];\n getI18nText: (key: string) => string;\n uid: string;\n ref: React.Ref<HTMLDivElement>;\n\n gridAreaGroupMap: Map<number, string>;\n gridTemplateColumns: string[];\n gridTemplateAreas: string[];\n sideIndents?: 'wide';\n\n totalRows: number;\n selectedRows?: UniqKeyType[];\n onChangeSelectAll?: (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => void;\n flatRows: DTRow<UniqKeyType>[];\n\n getFixedStyle: (\n cell: Pick<DTColumn, 'name' | 'fixed'>,\n ) => [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined];\n onCellClick: CellPropsInner<UniqKeyType>['onClick'];\n shadowVertical?: BodyPropsInner<UniqKeyType>['shadowVertical'];\n scrollDirection?: ColumnPropsInner<Data, UniqKey, UniqKeyType>['scrollDirection'];\n\n};\n"],"mappings":"","ignoreList":[]}
@@ -10,6 +10,7 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
10
10
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
11
11
  import { createComponent, sstyled, assignProps, Component, lastInteraction } from "@semcore/core";
12
12
  import { ScrollArea, Box, ScreenReaderOnly } from "@semcore/base-components";
13
+ import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
13
14
  import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
14
15
  import findComponent from "@semcore/core/lib/utils/findComponent";
15
16
  import { hasParent } from "@semcore/core/lib/utils/hasParent";
@@ -107,6 +108,37 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
107
108
  selectAllMessage: "",
108
109
  shadowVertical: ""
109
110
  });
111
+ _defineProperty(_this, "handleDocumentScroll", trottle(function() {
112
+ var _headerProps$top, _this$scrollAreaRef$c;
113
+ var tableContainer = _this.tableContainerRef.current;
114
+ if (!tableContainer) return;
115
+ var tableContainerTop = tableContainer.getBoundingClientRect().top;
116
+ var headerProps = _this.asProps.headerProps;
117
+ var headerContainer = _this.headerRef.current;
118
+ var elements = headerContainer === null || headerContainer === void 0 ? void 0 : headerContainer.querySelectorAll('[role="columnheader"], [data-ui-name="Head.Group"]');
119
+ var top = tableContainerTop - ((_headerProps$top = headerProps === null || headerProps === void 0 ? void 0 : headerProps.top) !== null && _headerProps$top !== void 0 ? _headerProps$top : 0);
120
+ var headerScrollBar = headerProps !== null && headerProps !== void 0 && headerProps.withScrollBar ? (_this$scrollAreaRef$c = _this.scrollAreaRef.current) === null || _this$scrollAreaRef$c === void 0 ? void 0 : _this$scrollAreaRef$c.querySelector("[role=scrollbar][aria-orientation=horizontal]") : void 0;
121
+ if (top && top < 0) {
122
+ var translate = "translateY(".concat(Math.abs(top), "px)");
123
+ elements === null || elements === void 0 || elements.forEach(function(column) {
124
+ if (column instanceof HTMLElement) {
125
+ column.style.setProperty("transform", translate);
126
+ }
127
+ });
128
+ if (headerScrollBar instanceof HTMLElement) {
129
+ headerScrollBar.style.setProperty("transform", translate);
130
+ }
131
+ } else {
132
+ elements === null || elements === void 0 || elements.forEach(function(column) {
133
+ if (column instanceof HTMLElement) {
134
+ column.style.removeProperty("transform");
135
+ }
136
+ });
137
+ if (headerScrollBar instanceof HTMLElement) {
138
+ headerScrollBar.style.removeProperty("transform");
139
+ }
140
+ }
141
+ }));
110
142
  _defineProperty(_this, "handleCellClick", function(e, opt) {
111
143
  if (lastInteraction.isMouse()) {
112
144
  _this.initFocusableCell([_this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
@@ -446,6 +478,9 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
446
478
  _this2.calculateVerticalShadow();
447
479
  });
448
480
  }
481
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && canUseDOM() && this.scrollDirection === "horizontal") {
482
+ document.addEventListener("scroll", this.handleDocumentScroll);
483
+ }
449
484
  }
450
485
  }, {
451
486
  key: "componentDidUpdate",
@@ -472,6 +507,13 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
472
507
  }
473
508
  }
474
509
  }
510
+ }, {
511
+ key: "componentWillUnmount",
512
+ value: function componentWillUnmount() {
513
+ if (canUseDOM()) {
514
+ document.removeEventListener("scroll", this.handleDocumentScroll);
515
+ }
516
+ }
475
517
  }, {
476
518
  key: "totalRows",
477
519
  get: function get() {
@@ -518,11 +560,27 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
518
560
  gridTemplateAreas
519
561
  };
520
562
  }
563
+ }, {
564
+ key: "scrollDirection",
565
+ get: function get() {
566
+ var _this$asProps6 = this.asProps, w = _this$asProps6.w, wMax = _this$asProps6.wMax, h = _this$asProps6.h, hMax = _this$asProps6.hMax;
567
+ var scrollDirection = void 0;
568
+ var hasWidthSettings = Boolean(w) || Boolean(wMax);
569
+ var hasHeightSettings = Boolean(h) && h !== "fit-content" || Boolean(hMax);
570
+ if (hasWidthSettings && !hasHeightSettings) {
571
+ scrollDirection = "horizontal";
572
+ } else if (hasHeightSettings && !hasWidthSettings) {
573
+ scrollDirection = "vertical";
574
+ } else if (hasWidthSettings && hasHeightSettings) {
575
+ scrollDirection = "both";
576
+ }
577
+ return scrollDirection;
578
+ }
521
579
  }, {
522
580
  key: "getHeadProps",
523
581
  value: function getHeadProps() {
524
582
  var _this3 = this;
525
- var _this$asProps6 = this.asProps, use = _this$asProps6.use, compact = _this$asProps6.compact, sort = _this$asProps6.sort, onSortChange = _this$asProps6.onSortChange, getI18nText = _this$asProps6.getI18nText, uid = _this$asProps6.uid, headerProps = _this$asProps6.headerProps, onSelectedRowsChange = _this$asProps6.onSelectedRowsChange, selectedRows = _this$asProps6.selectedRows, sideIndents = _this$asProps6.sideIndents;
583
+ var _this$asProps7 = this.asProps, use = _this$asProps7.use, compact = _this$asProps7.compact, sort = _this$asProps7.sort, onSortChange = _this$asProps7.onSortChange, getI18nText = _this$asProps7.getI18nText, uid = _this$asProps7.uid, headerProps = _this$asProps7.headerProps, onSelectedRowsChange = _this$asProps7.onSelectedRowsChange, selectedRows = _this$asProps7.selectedRows, sideIndents = _this$asProps7.sideIndents;
526
584
  var _this$gridSettings = this.gridSettings, gridTemplateColumns = _this$gridSettings.gridTemplateColumns, gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
527
585
  var shadowVertical = this.state.shadowVertical;
528
586
  return _objectSpread(_objectSpread({}, headerProps), {}, {
@@ -557,13 +615,14 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
557
615
  },
558
616
  getFixedStyle: this.getFixedStyle,
559
617
  onCellClick: this.handleCellClick,
560
- shadowVertical
618
+ shadowVertical,
619
+ scrollDirection: this.scrollDirection
561
620
  });
562
621
  }
563
622
  }, {
564
623
  key: "getBodyProps",
565
624
  value: function getBodyProps() {
566
- var _this$asProps7 = this.asProps, use = _this$asProps7.use, compact = _this$asProps7.compact, loading = _this$asProps7.loading, getI18nText = _this$asProps7.getI18nText, expandedRows = _this$asProps7.expandedRows, virtualScroll = _this$asProps7.virtualScroll, uid = _this$asProps7.uid, rowProps = _this$asProps7.rowProps, renderCell = _this$asProps7.renderCell, headerProps = _this$asProps7.headerProps, renderEmptyData2 = _this$asProps7.renderEmptyData, sideIndents = _this$asProps7.sideIndents, selectedRows = _this$asProps7.selectedRows, accordionDuration = _this$asProps7.accordionDuration, accordionMode = _this$asProps7.accordionMode, rawData = _this$asProps7.data, renderCellOverlay = _this$asProps7.renderCellOverlay;
625
+ var _this$asProps8 = this.asProps, use = _this$asProps8.use, compact = _this$asProps8.compact, loading = _this$asProps8.loading, getI18nText = _this$asProps8.getI18nText, expandedRows = _this$asProps8.expandedRows, virtualScroll = _this$asProps8.virtualScroll, uid = _this$asProps8.uid, rowProps = _this$asProps8.rowProps, renderCell = _this$asProps8.renderCell, headerProps = _this$asProps8.headerProps, renderEmptyData2 = _this$asProps8.renderEmptyData, sideIndents = _this$asProps8.sideIndents, selectedRows = _this$asProps8.selectedRows, accordionDuration = _this$asProps8.accordionDuration, accordionMode = _this$asProps8.accordionMode, rawData = _this$asProps8.data, renderCellOverlay = _this$asProps8.renderCellOverlay;
567
626
  var _this$gridSettings2 = this.gridSettings, gridTemplateColumns = _this$gridSettings2.gridTemplateColumns, gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
568
627
  var shadowVertical = this.state.shadowVertical;
569
628
  return {
@@ -636,7 +695,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
636
695
  value: function render() {
637
696
  var _ref = this.asProps, _ref2;
638
697
  var SDataTable = Box;
639
- var _this$asProps8 = this.asProps, Children = _this$asProps8.Children, styles = _this$asProps8.styles, w = _this$asProps8.w, wMax = _this$asProps8.wMax, wMin = _this$asProps8.wMin, h = _this$asProps8.h, hMax = _this$asProps8.hMax, hMin = _this$asProps8.hMin, virtualScroll = _this$asProps8.virtualScroll, children = _this$asProps8.children, headerProps = _this$asProps8.headerProps, loading = _this$asProps8.loading, selectedRows = _this$asProps8.selectedRows;
698
+ var _this$asProps9 = this.asProps, Children = _this$asProps9.Children, styles = _this$asProps9.styles, w = _this$asProps9.w, wMax = _this$asProps9.wMax, wMin = _this$asProps9.wMin, h = _this$asProps9.h, hMax = _this$asProps9.hMax, hMin = _this$asProps9.hMin, virtualScroll = _this$asProps9.virtualScroll, children = _this$asProps9.children, headerProps = _this$asProps9.headerProps, loading = _this$asProps9.loading, selectedRows = _this$asProps9.selectedRows;
640
699
  var _this$getScrollOffset = this.getScrollOffsetValue(), _this$getScrollOffset2 = _slicedToArray(_this$getScrollOffset, 2), offsetLeftSum = _this$getScrollOffset2[0], offsetRightSum = _this$getScrollOffset2[1];
641
700
  var _this$gridSettings3 = this.gridSettings, gridTemplateColumns = _this$gridSettings3.gridTemplateColumns, gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
642
701
  var Head2 = findComponent(Children, ["DataTable.Head"]);
@@ -650,16 +709,6 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
650
709
  if (virtualScroll && typeof virtualScroll !== "boolean" && "rowHeight" in virtualScroll) {
651
710
  gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
652
711
  }
653
- var scrollDirection = void 0;
654
- var hasWidthSettings = Boolean(w) || Boolean(wMax);
655
- var hasHeightSettings = Boolean(h) && h !== "fit-content" || Boolean(hMax);
656
- if (hasWidthSettings && !hasHeightSettings) {
657
- scrollDirection = "horizontal";
658
- } else if (hasHeightSettings && !hasWidthSettings) {
659
- scrollDirection = "vertical";
660
- } else if (hasWidthSettings && hasHeightSettings) {
661
- scrollDirection = "both";
662
- }
663
712
  return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
664
713
  "leftOffset": offsetLeftSum,
665
714
  "rightOffset": offsetRightSum,
@@ -678,7 +727,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
678
727
  "disableAutofocusToContent": true
679
728
  }), /* @__PURE__ */ React.createElement(ScrollArea.Container, {
680
729
  tabIndex: -1,
681
- scrollDirection,
730
+ scrollDirection: this.scrollDirection,
682
731
  loading,
683
732
  headerHeight: "".concat(headerHeight, "px"),
684
733
  leftScrollPadding: "".concat(offsetLeftSum, "px"),
@@ -221,8 +221,8 @@ var Column = /* @__PURE__ */ function(_Component) {
221
221
  return _createClass(Column2, [{
222
222
  key: "componentDidMount",
223
223
  value: function componentDidMount() {
224
- var _this$asProps3 = this.asProps, parent = _this$asProps3.parent, sticky = _this$asProps3.sticky, changeSortSize = _this$asProps3.changeSortSize, name = _this$asProps3.name, sort = _this$asProps3.sort;
225
- if (parent && sticky) {
224
+ var _this$asProps3 = this.asProps, parent = _this$asProps3.parent, sticky = _this$asProps3.sticky, changeSortSize = _this$asProps3.changeSortSize, name = _this$asProps3.name, sort = _this$asProps3.sort, scrollDirection = _this$asProps3.scrollDirection;
225
+ if (parent && sticky && scrollDirection !== "horizontal") {
226
226
  var _columnElement$parent;
227
227
  var columnElement = this.columnRef.current;
228
228
  var groupElement = columnElement === null || columnElement === void 0 || (_columnElement$parent = columnElement.parentElement) === null || _columnElement$parent === void 0 ? void 0 : _columnElement$parent.children.item(0);
@@ -103,14 +103,14 @@ var HeadRoot = /* @__PURE__ */ function(_Component) {
103
103
  }, {
104
104
  key: "getColumnProps",
105
105
  value: function getColumnProps(_, index) {
106
- var _this$asProps4 = this.asProps, use = _this$asProps4.use, columns = _this$asProps4.columns, sort = _this$asProps4.sort, onSortChange = _this$asProps4.onSortChange, tableRef = _this$asProps4.tableRef, gridTemplateColumns = _this$asProps4.gridTemplateColumns, gridTemplateAreas = _this$asProps4.gridTemplateAreas, sticky = _this$asProps4.sticky, top = _this$asProps4.top, selectedRows = _this$asProps4.selectedRows, h = _this$asProps4.h, getFixedStyle = _this$asProps4.getFixedStyle, onCellClick = _this$asProps4.onCellClick, shadowVertical = _this$asProps4.shadowVertical;
106
+ var _this$asProps4 = this.asProps, use = _this$asProps4.use, columns = _this$asProps4.columns, sort = _this$asProps4.sort, onSortChange = _this$asProps4.onSortChange, tableRef = _this$asProps4.tableRef, gridTemplateColumns = _this$asProps4.gridTemplateColumns, gridTemplateAreas = _this$asProps4.gridTemplateAreas, sticky = _this$asProps4.sticky, top = _this$asProps4.top, selectedRows = _this$asProps4.selectedRows, h = _this$asProps4.h, getFixedStyle = _this$asProps4.getFixedStyle, onCellClick = _this$asProps4.onCellClick, shadowVertical = _this$asProps4.shadowVertical, scrollDirection = _this$asProps4.scrollDirection;
107
107
  var column = columns[index];
108
108
  if (index === 0 && selectedRows && columns[index + 1].fixed) {
109
109
  column.fixed = "left";
110
110
  }
111
111
  var _getFixedStyle = getFixedStyle(column), _getFixedStyle2 = _slicedToArray(_getFixedStyle, 2), name = _getFixedStyle2[0], value = _getFixedStyle2[1];
112
112
  var style2 = {};
113
- if (top) {
113
+ if (top && scrollDirection !== "horizontal") {
114
114
  style2.top = "".concat(top, "px");
115
115
  }
116
116
  if (name !== void 0 && value !== void 0) {
@@ -134,7 +134,8 @@ var HeadRoot = /* @__PURE__ */ function(_Component) {
134
134
  gridTemplateAreas,
135
135
  h,
136
136
  "onClick": onCellClick,
137
- "shadowVertical": column.showShadowVertical ? shadowVertical : void 0
137
+ "shadowVertical": column.showShadowVertical ? shadowVertical : void 0,
138
+ scrollDirection
138
139
  };
139
140
  }
140
141
  }, {
@@ -76,4 +76,5 @@ export type ColumnPropsInner<Data extends DataTableData, UniqKey extends keyof D
76
76
  sticky: boolean;
77
77
  onClick: CellPropsInner<UniqKeyType>['onClick'];
78
78
  shadowVertical?: BodyPropsInner<UniqKeyType>['shadowVertical'];
79
+ scrollDirection?: 'horizontal' | 'vertical' | 'both';
79
80
  };
@@ -1,4 +1,4 @@
1
- import type { DTColumn } from './Column.types';
1
+ import type { ColumnPropsInner, DTColumn } from './Column.types';
2
2
  import type { BodyPropsInner } from '../Body/Body.types';
3
3
  import type { CellPropsInner } from '../Body/Cell.types';
4
4
  import type { DTRow } from '../Body/Row.types';
@@ -46,4 +46,5 @@ export type HeadPropsInner<Data extends DataTableData, UniqKey extends keyof Dat
46
46
  getFixedStyle: (cell: Pick<DTColumn, 'name' | 'fixed'>) => [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined];
47
47
  onCellClick: CellPropsInner<UniqKeyType>['onClick'];
48
48
  shadowVertical?: BodyPropsInner<UniqKeyType>['shadowVertical'];
49
+ scrollDirection?: ColumnPropsInner<Data, UniqKey, UniqKeyType>['scrollDirection'];
49
50
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/data-table",
3
3
  "description": "Semrush DataTable Component",
4
- "version": "16.1.0-prerelease.2",
4
+ "version": "16.1.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,34 +14,34 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/icon": "16.5.0-prerelease.2",
18
- "@semcore/button": "16.0.6-prerelease.2",
19
- "@semcore/checkbox": "16.1.0-prerelease.2",
20
- "@semcore/flex-box": "16.0.6-prerelease.2",
21
- "@semcore/scroll-area": "16.0.6-prerelease.2",
22
- "@semcore/spin": "16.0.6-prerelease.2",
23
- "@semcore/tooltip": "16.0.6-prerelease.2",
24
- "@semcore/widget-empty": "16.0.6-prerelease.2"
17
+ "@semcore/icon": "16.5.0",
18
+ "@semcore/button": "16.0.6",
19
+ "@semcore/checkbox": "16.1.0",
20
+ "@semcore/flex-box": "16.0.6",
21
+ "@semcore/scroll-area": "16.0.6",
22
+ "@semcore/spin": "16.0.6",
23
+ "@semcore/tooltip": "16.0.6",
24
+ "@semcore/widget-empty": "16.0.6"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "18.16.15",
28
28
  "csstype": "3.1.3",
29
29
  "@semcore/testing-utils": "1.0.0",
30
- "@semcore/dropdown-menu": "16.1.7-prerelease.2",
31
- "@semcore/base-trigger": "16.3.0-prerelease.2",
32
- "@semcore/typography": "16.2.0-prerelease.2",
33
- "@semcore/accordion": "16.4.0-prerelease.2",
34
- "@semcore/divider": "16.0.6-prerelease.2",
35
- "@semcore/portal": "16.0.6-prerelease.2",
36
- "@semcore/progress-bar": "16.0.6-prerelease.2",
37
- "@semcore/skeleton": "16.0.6-prerelease.2",
38
- "@semcore/spin": "16.0.6-prerelease.2",
39
- "@semcore/spin-container": "16.0.6-prerelease.2",
40
- "@semcore/base-components": "16.2.0-prerelease.2",
41
- "@semcore/tooltip": "16.0.6-prerelease.2"
30
+ "@semcore/dropdown-menu": "16.1.7",
31
+ "@semcore/base-trigger": "16.3.0",
32
+ "@semcore/typography": "16.2.0",
33
+ "@semcore/accordion": "16.4.0",
34
+ "@semcore/progress-bar": "16.0.6",
35
+ "@semcore/divider": "16.0.6",
36
+ "@semcore/skeleton": "16.0.6",
37
+ "@semcore/portal": "16.0.6",
38
+ "@semcore/spin": "16.0.6",
39
+ "@semcore/tooltip": "16.0.6",
40
+ "@semcore/spin-container": "16.0.6",
41
+ "@semcore/base-components": "16.2.0"
42
42
  },
43
43
  "peerDependencies": {
44
- "@semcore/base-components": "^16.2.0-prerelease.2"
44
+ "@semcore/base-components": "^16.0.0"
45
45
  },
46
46
  "repository": {
47
47
  "type": "git",