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

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.
Files changed (152) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/cjs/components/Body/Body.js +439 -0
  3. package/lib/cjs/components/Body/Body.js.map +1 -0
  4. package/lib/cjs/components/Body/Body.types.js +2 -0
  5. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  6. package/lib/cjs/components/Body/Cell.js +195 -0
  7. package/lib/cjs/components/Body/Cell.js.map +1 -0
  8. package/lib/cjs/components/Body/Cell.types.js +2 -0
  9. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  10. package/lib/cjs/components/Body/MergedCells.js +29 -0
  11. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  12. package/lib/cjs/components/Body/Row.js +252 -0
  13. package/lib/cjs/components/Body/Row.js.map +1 -0
  14. package/lib/cjs/components/Body/Row.types.js +4 -0
  15. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  16. package/lib/cjs/components/Body/style.shadow.css +263 -0
  17. package/lib/cjs/components/DataTable/DataTable.js +1025 -0
  18. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  19. package/lib/cjs/{types.js → components/DataTable/DataTable.types.js} +1 -1
  20. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  21. package/lib/cjs/components/DataTable/dataTable.shadow.css +17 -0
  22. package/lib/cjs/components/Head/Column.js +311 -0
  23. package/lib/cjs/components/Head/Column.js.map +1 -0
  24. package/lib/cjs/components/Head/Column.types.js +2 -0
  25. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  26. package/lib/cjs/components/Head/Group.js +116 -0
  27. package/lib/cjs/components/Head/Group.js.map +1 -0
  28. package/lib/cjs/components/Head/Group.type.js +2 -0
  29. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  30. package/lib/cjs/components/Head/Head.js +207 -0
  31. package/lib/cjs/components/Head/Head.js.map +1 -0
  32. package/lib/cjs/components/Head/Head.types.js +2 -0
  33. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  34. package/lib/cjs/components/Head/style.shadow.css +180 -0
  35. package/lib/cjs/index.js +25 -15
  36. package/lib/cjs/index.js.map +1 -1
  37. package/lib/cjs/style/scroll-shadows.shadow.css +45 -5
  38. package/lib/cjs/translations/en.json +6 -1
  39. package/lib/es6/components/Body/Body.js +432 -0
  40. package/lib/es6/components/Body/Body.js.map +1 -0
  41. package/lib/es6/components/Body/Body.types.js +2 -0
  42. package/lib/es6/components/Body/Body.types.js.map +1 -0
  43. package/lib/es6/components/Body/Cell.js +188 -0
  44. package/lib/es6/components/Body/Cell.js.map +1 -0
  45. package/lib/es6/components/Body/Cell.types.js +2 -0
  46. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  47. package/lib/es6/components/Body/MergedCells.js +20 -0
  48. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  49. package/lib/es6/components/Body/Row.js +245 -0
  50. package/lib/es6/components/Body/Row.js.map +1 -0
  51. package/lib/es6/components/Body/Row.types.js +2 -0
  52. package/lib/es6/components/Body/Row.types.js.map +1 -0
  53. package/lib/es6/components/Body/style.shadow.css +263 -0
  54. package/lib/es6/components/DataTable/DataTable.js +1013 -0
  55. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  56. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  57. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  58. package/lib/es6/components/DataTable/dataTable.shadow.css +17 -0
  59. package/lib/es6/components/Head/Column.js +304 -0
  60. package/lib/es6/components/Head/Column.js.map +1 -0
  61. package/lib/es6/components/Head/Column.types.js +2 -0
  62. package/lib/es6/components/Head/Column.types.js.map +1 -0
  63. package/lib/es6/components/Head/Group.js +109 -0
  64. package/lib/es6/components/Head/Group.js.map +1 -0
  65. package/lib/es6/components/Head/Group.type.js +2 -0
  66. package/lib/es6/components/Head/Group.type.js.map +1 -0
  67. package/lib/es6/components/Head/Head.js +201 -0
  68. package/lib/es6/components/Head/Head.js.map +1 -0
  69. package/lib/es6/components/Head/Head.types.js +2 -0
  70. package/lib/es6/components/Head/Head.types.js.map +1 -0
  71. package/lib/es6/components/Head/style.shadow.css +180 -0
  72. package/lib/es6/index.js +5 -2
  73. package/lib/es6/index.js.map +1 -1
  74. package/lib/es6/style/scroll-shadows.shadow.css +45 -5
  75. package/lib/es6/translations/en.json +6 -1
  76. package/lib/esm/components/Body/Body.mjs +394 -0
  77. package/lib/esm/components/Body/Cell.mjs +186 -0
  78. package/lib/esm/components/Body/MergedCells.mjs +23 -0
  79. package/lib/esm/components/Body/Row.mjs +224 -0
  80. package/lib/esm/components/Body/style.shadow.css +263 -0
  81. package/lib/esm/components/DataTable/DataTable.mjs +944 -0
  82. package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
  83. package/lib/esm/components/Head/Column.mjs +296 -0
  84. package/lib/esm/components/Head/Group.mjs +103 -0
  85. package/lib/esm/components/Head/Head.mjs +181 -0
  86. package/lib/esm/components/Head/style.shadow.css +180 -0
  87. package/lib/esm/index.mjs +9 -6
  88. package/lib/esm/style/scroll-shadows.shadow.css +47 -0
  89. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +30 -30
  90. package/lib/esm/translations/de.json.mjs +5 -4
  91. package/lib/esm/translations/en.json.mjs +10 -4
  92. package/lib/esm/translations/es.json.mjs +5 -4
  93. package/lib/esm/translations/fr.json.mjs +5 -4
  94. package/lib/esm/translations/it.json.mjs +5 -4
  95. package/lib/esm/translations/ja.json.mjs +5 -4
  96. package/lib/esm/translations/ko.json.mjs +5 -4
  97. package/lib/esm/translations/nl.json.mjs +5 -4
  98. package/lib/esm/translations/pl.json.mjs +5 -4
  99. package/lib/esm/translations/pt.json.mjs +5 -4
  100. package/lib/esm/translations/sv.json.mjs +5 -4
  101. package/lib/esm/translations/tr.json.mjs +5 -4
  102. package/lib/esm/translations/vi.json.mjs +5 -4
  103. package/lib/esm/translations/zh.json.mjs +5 -4
  104. package/lib/types/components/Body/Body.d.ts +8 -0
  105. package/lib/types/components/Body/Body.types.d.ts +57 -0
  106. package/lib/types/components/Body/Cell.d.ts +3 -0
  107. package/lib/types/components/Body/Cell.types.d.ts +20 -0
  108. package/lib/types/components/Body/MergedCells.d.ts +14 -0
  109. package/lib/types/components/Body/Row.d.ts +3 -0
  110. package/lib/types/components/Body/Row.types.d.ts +43 -0
  111. package/lib/types/components/DataTable/DataTable.d.ts +13 -0
  112. package/lib/types/components/DataTable/DataTable.types.d.ts +125 -0
  113. package/lib/types/components/Head/Column.d.ts +30 -0
  114. package/lib/types/components/Head/Column.types.d.ts +71 -0
  115. package/lib/types/components/Head/Group.d.ts +15 -0
  116. package/lib/types/components/Head/Group.type.d.ts +16 -0
  117. package/lib/types/components/Head/Head.d.ts +98 -0
  118. package/lib/types/components/Head/Head.types.d.ts +40 -0
  119. package/lib/types/index.d.ts +10 -2
  120. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +5 -0
  121. package/package.json +11 -6
  122. package/vite.config.ts +0 -3
  123. package/lib/cjs/Body.js +0 -475
  124. package/lib/cjs/Body.js.map +0 -1
  125. package/lib/cjs/DataTable.js +0 -622
  126. package/lib/cjs/DataTable.js.map +0 -1
  127. package/lib/cjs/Head.js +0 -399
  128. package/lib/cjs/Head.js.map +0 -1
  129. package/lib/cjs/style/data-table.shadow.css +0 -394
  130. package/lib/cjs/types.js.map +0 -1
  131. package/lib/cjs/utils.js +0 -57
  132. package/lib/cjs/utils.js.map +0 -1
  133. package/lib/es6/Body.js +0 -468
  134. package/lib/es6/Body.js.map +0 -1
  135. package/lib/es6/DataTable.js +0 -614
  136. package/lib/es6/DataTable.js.map +0 -1
  137. package/lib/es6/Head.js +0 -391
  138. package/lib/es6/Head.js.map +0 -1
  139. package/lib/es6/style/data-table.shadow.css +0 -394
  140. package/lib/es6/types.js +0 -2
  141. package/lib/es6/types.js.map +0 -1
  142. package/lib/es6/utils.js +0 -48
  143. package/lib/es6/utils.js.map +0 -1
  144. package/lib/esm/Body.mjs +0 -320
  145. package/lib/esm/DataTable.mjs +0 -439
  146. package/lib/esm/Head.mjs +0 -258
  147. package/lib/esm/utils.mjs +0 -37
  148. package/lib/types/Body.d.ts +0 -61
  149. package/lib/types/DataTable.d.ts +0 -205
  150. package/lib/types/Head.d.ts +0 -45
  151. package/lib/types/types.d.ts +0 -73
  152. package/lib/types/utils.d.ts +0 -4
@@ -1 +0,0 @@
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 DELETED
@@ -1,399 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.SORT_ICON_WIDTH = void 0;
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
- var _core = require("@semcore/core");
18
- var _react = _interopRequireDefault(require("react"));
19
- var _flexBox = require("@semcore/flex-box");
20
- var _scrollArea = _interopRequireWildcard(require("@semcore/scroll-area"));
21
- var _m = _interopRequireDefault(require("@semcore/icon/SortDesc/m"));
22
- var _m2 = _interopRequireDefault(require("@semcore/icon/SortAsc/m"));
23
- var _assignProps2 = require("@semcore/core/lib/utils/assignProps");
24
- var _utils = require("./utils");
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
- var SORT_ICON_WIDTH = 20;
29
- exports.SORT_ICON_WIDTH = SORT_ICON_WIDTH;
30
- var SORTING_ICON = {
31
- desc: _m["default"],
32
- asc: _m2["default"]
33
- };
34
- var ariaSort = {
35
- desc: 'descending',
36
- asc: 'ascending'
37
- };
38
- var displayContents = {
39
- display: 'contents'
40
- };
41
- function cssToIntDefault(value) {
42
- var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
43
- var result = parseFloat(value);
44
- if (Number.isNaN(result)) {
45
- result = defaultValue;
46
- }
47
- return Math.round(result);
48
- }
49
- var Head = /*#__PURE__*/function (_Component) {
50
- (0, _inherits2["default"])(Head, _Component);
51
- var _super = (0, _createSuper2["default"])(Head);
52
- function Head() {
53
- var _this;
54
- (0, _classCallCheck2["default"])(this, Head);
55
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
56
- args[_key] = arguments[_key];
57
- }
58
- _this = _super.call.apply(_super, [this].concat(args));
59
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columns", []);
60
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "headCellMap", new Map());
61
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "lockedCell", [null, false]);
62
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "sortWrapperRefs", new Map());
63
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "defaultWidths", new Map());
64
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (e) {
65
- if (e.currentTarget === _this.lockedCell[0]) {
66
- var focusableChildren = Array.from(_this.lockedCell[0].children).flatMap(function (node) {
67
- return (0, _getFocusableIn.getFocusableIn)(node);
68
- });
69
- if (_this.lockedCell[1]) {
70
- if (e.key === 'Escape') {
71
- var _this$lockedCell$;
72
- (_this$lockedCell$ = _this.lockedCell[0]) === null || _this$lockedCell$ === void 0 ? void 0 : _this$lockedCell$.focus();
73
- _this.lockedCell[1] = false;
74
- }
75
- if (e.key.startsWith('Arrow')) {
76
- e.stopPropagation();
77
- }
78
- if (e.key === 'Tab') {
79
- if (e.target === focusableChildren[0] && e.shiftKey) {
80
- var _focusableChildren;
81
- (_focusableChildren = focusableChildren[focusableChildren.length - 1]) === null || _focusableChildren === void 0 ? void 0 : _focusableChildren.focus();
82
- e.preventDefault();
83
- } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {
84
- var _focusableChildren$;
85
- (_focusableChildren$ = focusableChildren[0]) === null || _focusableChildren$ === void 0 ? void 0 : _focusableChildren$.focus();
86
- e.preventDefault();
87
- }
88
- }
89
- } else if (e.key === 'Enter') {
90
- var _focusableChildren$2;
91
- _this.lockedCell[1] = true;
92
- (_focusableChildren$2 = focusableChildren[0]) === null || _focusableChildren$2 === void 0 ? void 0 : _focusableChildren$2.focus();
93
- } else if (e.key === 'Tab') {
94
- var _this$lockedCell$2;
95
- (_this$lockedCell$2 = _this.lockedCell[0]) === null || _this$lockedCell$2 === void 0 ? void 0 : _this$lockedCell$2.setAttribute('inert', '');
96
- }
97
- }
98
- });
99
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocusCell", function (e) {
100
- if (e.target === e.currentTarget) {
101
- var focusableChildren = Array.from(e.currentTarget.children).flatMap(function (node) {
102
- return (0, _getFocusableIn.getFocusableIn)(node);
103
- });
104
- if (focusableChildren.length === 1) {
105
- focusableChildren[0].focus();
106
- } else if (focusableChildren.length > 1) {
107
- _this.lockedCell = [e.currentTarget, false];
108
- }
109
- }
110
- });
111
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerSortClick", function (name) {
112
- return function (event) {
113
- _this.asProps.$onSortClick(name, event);
114
- };
115
- });
116
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerKeyDown", function (name) {
117
- return function (event) {
118
- if (event.key === 'Enter' || event.key === ' ') {
119
- event.preventDefault();
120
- _this.asProps.$onSortClick(name, event);
121
- }
122
- };
123
- });
124
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "makeSortRefHandler", function (active) {
125
- return function (ref) {
126
- if (ref) {
127
- _this.sortWrapperRefs.set(ref, active);
128
- }
129
- };
130
- });
131
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "makeColumnRefHandler", function (column, index) {
132
- return function (ref) {
133
- (0, _ref4.setRef)(column.props.ref, ref);
134
- _this.headCellMap.set(index, ref);
135
- if (column.props.forwardRef) {
136
- (0, _ref4.setRef)(column.props.forwardRef, ref);
137
- }
138
- if (ref && ref.getAttribute('scope') === 'col') {
139
- if (!_this.defaultWidths.has(ref)) {
140
- var computedStyle = window.getComputedStyle(ref);
141
- _this.defaultWidths.set(ref, {
142
- minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),
143
- computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),
144
- maxWidth: cssToIntDefault(computedStyle.getPropertyValue('max-width')) || null,
145
- useForRecalculation: Boolean(column.props.sortSizeRecalculation)
146
- });
147
- }
148
- }
149
- };
150
- });
151
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxNodeWidth", function (diff, exceptNode) {
152
- var lastMaxWidth = 0;
153
- var node = null;
154
- var recalculatedNodes = [];
155
- _this.defaultWidths.forEach(function (value, key) {
156
- if (value.computedWidth > lastMaxWidth && key !== exceptNode) {
157
- node = key;
158
- lastMaxWidth = value.computedWidth;
159
- }
160
- if (value.useForRecalculation) {
161
- recalculatedNodes.push(key);
162
- }
163
- });
164
- var setNodeMinWidth = function setNodeMinWidth(node, diff) {
165
- var _this$defaultWidths$g, _this$defaultWidths$g2;
166
- var defaultNodeWidth = (_this$defaultWidths$g = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g === void 0 ? void 0 : _this$defaultWidths$g.computedWidth;
167
- var defaultNodeMinWidth = (_this$defaultWidths$g2 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g2 === void 0 ? void 0 : _this$defaultWidths$g2.minWidth;
168
- if (defaultNodeWidth) {
169
- var maxWidth = defaultNodeWidth - diff;
170
- node.style.setProperty('max-width', "".concat(maxWidth, "px"));
171
- if (defaultNodeMinWidth) {
172
- node.style.setProperty('min-width', "min(".concat(maxWidth, "px, ").concat(defaultNodeMinWidth, "px)"));
173
- }
174
- }
175
- };
176
- if (recalculatedNodes.length > 0) {
177
- var diffPart = diff / recalculatedNodes.length;
178
- recalculatedNodes.forEach(function (node) {
179
- setNodeMinWidth(node, diffPart);
180
- });
181
- } else if (node !== null) {
182
- setNodeMinWidth(node, diff);
183
- }
184
- });
185
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "backToColumnDefaults", function (node) {
186
- var _this$defaultWidths$g3, _this$defaultWidths$g4;
187
- var defaultNodeMinWidth = (_this$defaultWidths$g3 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g3 === void 0 ? void 0 : _this$defaultWidths$g3.minWidth;
188
- var defaultNodeMaxWidth = (_this$defaultWidths$g4 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g4 === void 0 ? void 0 : _this$defaultWidths$g4.maxWidth;
189
- node.style.setProperty('min-width', defaultNodeMinWidth + 'px');
190
- if (defaultNodeMaxWidth) {
191
- node.style.setProperty('max-width', defaultNodeMaxWidth + 'px');
192
- } else {
193
- node.style.removeProperty('max-width');
194
- }
195
- });
196
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "calculateActiveColumnMinWidth", function (node) {
197
- var _this$defaultWidths$g5, _this$defaultWidths$g6;
198
- var clonedColumn = document.createElement('div');
199
- var computedStyle = window.getComputedStyle(node);
200
- node.childNodes.forEach(function (node) {
201
- if (!_this.sortWrapperRefs.get(node)) {
202
- clonedColumn.append(node.cloneNode(true));
203
- }
204
- });
205
- clonedColumn.style.setProperty('visibility', 'hidden', 'important');
206
- var styles = ['display', 'flex', 'margin', 'padding', 'background', 'font-style', 'font-width', 'font-size', 'font-weight'];
207
- styles.forEach(function (key) {
208
- clonedColumn.style.setProperty(key, computedStyle.getPropertyValue(key), computedStyle.getPropertyPriority(key));
209
- });
210
- clonedColumn.style.setProperty('width', 'fit-content', 'important');
211
- document.body.appendChild(clonedColumn);
212
- var computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);
213
- document.body.removeChild(clonedColumn);
214
- var defaultNodeWidth = (_this$defaultWidths$g5 = (_this$defaultWidths$g6 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g6 === void 0 ? void 0 : _this$defaultWidths$g6.computedWidth) !== null && _this$defaultWidths$g5 !== void 0 ? _this$defaultWidths$g5 : 0;
215
- if (computedWidth >= defaultNodeWidth) {
216
- node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');
217
- _this.changeMaxNodeWidth(SORT_ICON_WIDTH, node);
218
- } else {
219
- var freeSpace = defaultNodeWidth - computedWidth;
220
- if (freeSpace < SORT_ICON_WIDTH) {
221
- node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');
222
- _this.changeMaxNodeWidth(freeSpace, node);
223
- }
224
- }
225
- });
226
- return _this;
227
- }
228
- (0, _createClass2["default"])(Head, [{
229
- key: "sortableColumnDescribeId",
230
- value: function sortableColumnDescribeId() {
231
- var uid = this.asProps.uid;
232
- return "".concat(uid, "-column-sortable-describer");
233
- }
234
- }, {
235
- key: "componentDidUpdate",
236
- value: function componentDidUpdate() {
237
- var _this2 = this;
238
- var activeColumn = null;
239
- this.columns.forEach(function (column) {
240
- var _column$props = column.props,
241
- changeSortSize = _column$props.changeSortSize,
242
- ref = _column$props.ref;
243
- if (column.active && changeSortSize && ref.current) {
244
- activeColumn = ref.current;
245
- }
246
- if (ref.current) {
247
- _this2.backToColumnDefaults(ref.current);
248
- }
249
- });
250
- if (activeColumn) {
251
- this.calculateActiveColumnMinWidth(activeColumn);
252
- }
253
- }
254
- }, {
255
- key: "renderColumns",
256
- value: function renderColumns(columns, width) {
257
- var _this3 = this;
258
- return columns.map(function (column) {
259
- return _this3.renderColumn(column, width);
260
- });
261
- }
262
- }, {
263
- key: "renderColumn",
264
- value: function renderColumn(column, width) {
265
- var _ref2, _column$columns;
266
- var _this$asProps = this.asProps,
267
- styles = _this$asProps.styles,
268
- use = _this$asProps.use,
269
- hidden = _this$asProps.hidden,
270
- uid = _this$asProps.uid;
271
- var SColumn = _flexBox.Flex;
272
- var SHead = _flexBox.Box;
273
- var SSortWrapper = 'div';
274
- var SSortIcon = SORTING_ICON[column.sortDirection];
275
- var ariaSortValue = column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;
276
- var isGroup = ((_column$columns = column.columns) === null || _column$columns === void 0 ? void 0 : _column$columns.length) > 0;
277
- var cSize = isGroup ? (0, _utils.flattenColumns)(column.columns).length : 1;
278
- var _getFixedStyle = (0, _utils.getFixedStyle)(column, this.columns),
279
- _getFixedStyle2 = (0, _slicedToArray2["default"])(_getFixedStyle, 2),
280
- name = _getFixedStyle2[0],
281
- value = _getFixedStyle2[1];
282
- var style = (0, _objectSpread2["default"])({
283
- flexBasis: column.props.flex === undefined && "".concat(width * cSize, "%")
284
- }, column.props.style);
285
- if (name !== undefined && value !== undefined) {
286
- style[name] = value;
287
- }
288
- if (!column.setVar) {
289
- style['flexBasis'] = "var(".concat(column.varWidth, ")");
290
- }
291
- var ariaDescribedBy = [];
292
- if (column.sortable && !column.active) {
293
- ariaDescribedBy.push(this.sortableColumnDescribeId());
294
- }
295
- if (column.parentColumns.length > 0) {
296
- var parentName = column.parentColumns[0].name;
297
- ariaDescribedBy.push("igc-table-".concat(uid, "-").concat(parentName, "-group"));
298
- }
299
- var index = this.columns.findIndex(function (flattenCol) {
300
- return flattenCol.name === column.name;
301
- });
302
- return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SColumn, _ref2.cn("SColumn", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
303
- "role": isGroup ? undefined : 'columnheader',
304
- "scope": isGroup ? 'colgroup' : 'col',
305
- "key": column.name,
306
- "id": "igc-table-".concat(uid, "-").concat(column.name),
307
- "use": use,
308
- "fixed": column.fixed,
309
- "resizable": column.resizable,
310
- "sortable": column.sortable,
311
- "borderLeft": isGroup ? false : column.borderLeft,
312
- "borderRight": isGroup ? false : column.borderRight,
313
- "active": isGroup ? false : column.active,
314
- "group": isGroup,
315
- "tabIndex": isGroup ? undefined : -1,
316
- "__excludeProps": ['hidden']
317
- }, column.props), {}, {
318
- "ref": this.makeColumnRefHandler(column, index),
319
- "onClick": (0, _assignProps2.callAllEventHandlers)(column.props.onClick, column.sortable ? this.bindHandlerSortClick(column.name) : undefined),
320
- "onKeyDown": (0, _assignProps2.callAllEventHandlers)(column.props.onKeyDown, column.sortable ? this.bindHandlerKeyDown(column.name) : undefined, this.handleKeyDown),
321
- "style": style,
322
- "hidden": hidden,
323
- "aria-sort": ariaSortValue,
324
- "aria-colindex": isGroup ? undefined : index + 1,
325
- "onFocus": this.onFocusCell,
326
- "aria-describedby": ariaDescribedBy.length > 0 ? ariaDescribedBy.join(' ') : undefined,
327
- "innerOutline": true
328
- })), isGroup ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SColumn, _ref2.cn("SColumn", {
329
- "id": "igc-table-".concat(uid, "-").concat(column.name, "-group"),
330
- "groupHead": true,
331
- "use": use,
332
- "active": column.active,
333
- "borderLeft": column.borderLeft,
334
- "borderRight": column.borderRight
335
- }), /*#__PURE__*/_react["default"].createElement("div", _ref2.cn("div", {}), column.props.children)), /*#__PURE__*/_react["default"].createElement(SHead, _ref2.cn("SHead", {}), this.renderColumns(column.columns, 100 / cSize))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, column.props.children, column.sortable ? /*#__PURE__*/_react["default"].createElement(SSortWrapper, _ref2.cn("SSortWrapper", {
336
- "ref": this.makeSortRefHandler(column.active)
337
- }), /*#__PURE__*/_react["default"].createElement(SSortIcon, _ref2.cn("SSortIcon", {}))) : null));
338
- }
339
- }, {
340
- key: "render",
341
- value: function render() {
342
- var _ref = this.asProps,
343
- _ref3;
344
- var SHead = _flexBox.Box;
345
- var SHeadWrapper = _flexBox.Box;
346
- var _this$asProps2 = this.asProps,
347
- Children = _this$asProps2.Children,
348
- styles = _this$asProps2.styles,
349
- columnsChildren = _this$asProps2.columnsChildren,
350
- onResize = _this$asProps2.onResize,
351
- $scrollRef = _this$asProps2.$scrollRef,
352
- sticky = _this$asProps2.sticky,
353
- withScrollBar = _this$asProps2.withScrollBar,
354
- animationsDisabled = _this$asProps2.animationsDisabled,
355
- getI18nText = _this$asProps2.getI18nText;
356
- this.columns = (0, _utils.flattenColumns)(columnsChildren);
357
- var _getScrollOffsetValue = (0, _utils.getScrollOffsetValue)(this.columns),
358
- _getScrollOffsetValue2 = (0, _slicedToArray2["default"])(_getScrollOffsetValue, 2),
359
- offsetLeftSum = _getScrollOffsetValue2[0],
360
- offsetRightSum = _getScrollOffsetValue2[1];
361
- _logger["default"].warn(sticky, "'sticky' property is deprecated, use '<Sticky/>' wrapper", this.asProps['data-ui-name'] || Head.displayName);
362
- return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_scrollArea.hideScrollBarsFromScreenReadersContext.Provider, {
363
- value: true
364
- }, /*#__PURE__*/_react["default"].createElement(SHeadWrapper, _ref3.cn("SHeadWrapper", {
365
- "sticky": sticky,
366
- "animationsDisabled": animationsDisabled
367
- }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"], _ref3.cn("ScrollArea", {
368
- "leftOffset": offsetLeftSum,
369
- "rightOffset": offsetRightSum,
370
- "shadow": true,
371
- "onResize": onResize
372
- }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Container, {
373
- ref: $scrollRef,
374
- role: "rowgroup",
375
- tabIndex: -1,
376
- zIndex: 2
377
- }, /*#__PURE__*/_react["default"].createElement(SHead, _ref3.cn("SHead", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
378
- "role": 'row',
379
- "__excludeProps": ['hidden']
380
- }, _ref))), this.renderColumns(columnsChildren, 100 / this.columns.length))), Boolean(withScrollBar) && /*#__PURE__*/_react["default"].createElement("div", _ref3.cn("div", {
381
- "style": displayContents
382
- }), /*#__PURE__*/_react["default"].createElement("div", _ref3.cn("div", {
383
- "style": displayContents
384
- }), /*#__PURE__*/_react["default"].createElement("div", _ref3.cn("div", {
385
- "style": displayContents
386
- }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Bar, {
387
- orientation: "horizontal"
388
- }))))), Children.origin, /*#__PURE__*/_react["default"].createElement(_flexBox.ScreenReaderOnly, _ref3.cn("ScreenReaderOnly", {
389
- "aria-hidden": true,
390
- "id": this.sortableColumnDescribeId()
391
- }), getI18nText === null || getI18nText === void 0 ? void 0 : getI18nText('sortableColumn'))));
392
- }
393
- }]);
394
- return Head;
395
- }(_core.Component);
396
- (0, _defineProperty2["default"])(Head, "displayName", void 0);
397
- var _default = Head;
398
- exports["default"] = _default;
399
- //# sourceMappingURL=Head.js.map
@@ -1 +0,0 @@
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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"}