@semcore/data-table 3.7.29 → 3.8.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.
- package/CHANGELOG.md +4 -12
- package/lib/cjs/Body.js +49 -116
- package/lib/cjs/Body.js.map +1 -1
- package/lib/cjs/DataTable.js +67 -144
- package/lib/cjs/DataTable.js.map +1 -1
- package/lib/cjs/Head.js +24 -74
- package/lib/cjs/Head.js.map +1 -1
- package/lib/cjs/index.js +0 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/data-table.shadow.css +45 -29
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/utils.js +0 -8
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Body.js +49 -108
- package/lib/es6/Body.js.map +1 -1
- package/lib/es6/DataTable.js +67 -133
- package/lib/es6/DataTable.js.map +1 -1
- package/lib/es6/Head.js +24 -60
- package/lib/es6/Head.js.map +1 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/data-table.shadow.css +45 -29
- package/lib/es6/types.js.map +1 -1
- package/lib/es6/utils.js +0 -2
- package/lib/es6/utils.js.map +1 -1
- package/package.json +1 -1
package/lib/cjs/DataTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","setBorderGroupColumns","columns","side","firstColumn","lastColumn","length","borderLeft","borderRight","RootDefinitionTable","props","React","createRef","event","column","find","fire","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","syncScroll","scrollBodyRef","scrollHeadRef","setVar","style","setProperty","varWidth","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","flex","vBorders","lastColumnChildren","isGroup","childrenToColumns","some","c","flattenColumns","map","join","toArray","filter","columnChildren","ref","getBoundingClientRect","forwardRef","push","use","$onSortClick","callAllEventHandlers","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","uniqueKey","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","parseData","exclude","row","groupByName","columnsWithoutRowGroup","rowKey","columnNames","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","cssVar","flatRowData","setVarStyle","SDataTable","Box","styles","sstyled","Component","ComponentDefinition","createComponent","Head","Body"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, { Component, PropGetterFn, Root, sstyled } from '@semcore/core';\nimport { Box, IBoxProps, IFlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport fire from '@semcore/utils/lib/fire';\nimport { flattenColumns } from './utils';\nimport type {\n Column,\n NestedCells,\n PropsLayer,\n PseudoChildPropsGetter,\n RowData,\n SortDirection,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst REVERSED_SORT_DIRECTION: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/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 uniqueKey: string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n};\n\n/* utils type */\ntype CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\ntype ReturnEl = React.ReactElement | null;\ntype ChildRenderFn<Props> = Props & {\n children?: (props: Props, column: DataTableData, index: number) => { [key: string]: unknown };\n};\n/* utils type */\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort = [string, '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\nexport interface IDataTableProps extends IBoxProps {\n /** Theme for table\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData[];\n /** Active sort object */\n sort?: DataTableSort;\n /** Handler call when will request change sort */\n onSortChange?: (sort: DataTableSort, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all set of data\n * @default id\n */\n uniqueKey?: string;\n}\n\nexport interface IDataTableHeadProps extends IBoxProps {\n /** Sticky header table\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableColumnProps extends IFlexProps {\n /** Unique name column */\n name?: string;\n /** Enable sort for column also if you pass string you can set default sort */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fixed column on the left/right */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column. */\n flex?: Property.Flex | 'inherit';\n /** Add vertical borders */\n vBorders?: boolean;\n /** Add vertical border to the right side */\n borderRight?: boolean;\n /** Add vertical border to the left side */\n borderLeft?: boolean;\n /** Make cells less */\n compact?: boolean;\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\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 /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\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\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\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 ? REVERSED_SORT_DIRECTION[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 for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\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 : DEFAULT_SORT_DIRECTION),\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 } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = 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 };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey } = 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 };\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 .map((subRow) => Object.keys(subRow))\n .flat()\n .map(key => key.split('/'))\n .flat()\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 componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles, data } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role='table'\n aria-rowcount={(data ?? []).length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_syncScroll","_assignProps2","_fire","_utils","_Head","_Body","_excluded","_excluded2","style","sstyled","insert","REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","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","syncScroll","scrollBodyRef","scrollHeadRef","_createClass2","key","value","setVarStyle","_iterator","_createForOfIteratorHelper2","_step","s","n","done","setVar","_this$tableRef$curren2","setProperty","varWidth","width","err","e","f","childrenToColumns","children","_this2","options","arguments","undefined","fixed","sort","asProps","columnsChildren","Children","forEach","child","_column$props","isValidElement","type","DefinitionTable","Column","_ref3","_ref3$fixed","resizable","sortable","flex","vBorders","_objectWithoutProperties2","lastColumnChildren","isGroup","some","c","flattenColumns","map","_ref4","join","toArray","filter","columnChildren","_this$props$ref$curre","ref","getBoundingClientRect","_objectSpread2","forwardRef","push","getHeadProps","use","$onSortClick","callAllEventHandlers","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","getBodyProps","_this$asProps","data","uniqueKey","cellPropsLayers","rowPropsLayers","_ref5","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","_this3","parseData","exclude","row","groupByName","columnsWithoutRowGroup","rowKey","columnNames","_iterator2","_step2","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","cells","_groupByName$column$n","cssVar","flatRowData","componentDidUpdate","render","_ref","_ref2","SDataTable","Box","_this$asProps2","styles","createElement","cn","assignProps","Component","ComponentDefinition","createComponent","Head","Body","_default"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, { Component, PropGetterFn, Root, sstyled } from '@semcore/core';\nimport { Box, IBoxProps, IFlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport fire from '@semcore/utils/lib/fire';\nimport { flattenColumns } from './utils';\nimport type {\n Column,\n NestedCells,\n PropsLayer,\n PseudoChildPropsGetter,\n RowData,\n SortDirection,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst REVERSED_SORT_DIRECTION: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/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 uniqueKey: string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n};\n\n/* utils type */\ntype CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\ntype ReturnEl = React.ReactElement | null;\ntype ChildRenderFn<Props> = Props & {\n children?: (props: Props, column: DataTableData, index: number) => { [key: string]: unknown };\n};\n/* utils type */\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort = [string, '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\nexport interface IDataTableProps extends IBoxProps {\n /** Theme for table\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData[];\n /** Active sort object */\n sort?: DataTableSort;\n /** Handler call when will request change sort */\n onSortChange?: (sort: DataTableSort, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all set of data\n * @default id\n */\n uniqueKey?: string;\n}\n\nexport interface IDataTableHeadProps extends IBoxProps {\n /** Sticky header table\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableColumnProps extends IFlexProps {\n /** Unique name column */\n name?: string;\n /** Enable sort for column also if you pass string you can set default sort */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fixed column on the left/right */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column. */\n flex?: Property.Flex | 'inherit';\n /** Add vertical borders */\n vBorders?: boolean;\n /** Add vertical border to the right side */\n borderRight?: boolean;\n /** Add vertical border to the left side */\n borderLeft?: boolean;\n /** Make cells less */\n compact?: boolean;\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\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 /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\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\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\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 ? REVERSED_SORT_DIRECTION[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 for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\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 : DEFAULT_SORT_DIRECTION),\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 } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = 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 };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey } = 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 };\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 .map((subRow) => Object.keys(subRow))\n .flat()\n .map(key => key.split('/'))\n .flat()\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 componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles, data } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role='table'\n aria-rowcount={(data ?? []).length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"mappings":"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"}
|
package/lib/cjs/Head.js
CHANGED
|
@@ -1,65 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
14
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
23
|
-
|
|
24
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
16
|
var _core = require("@semcore/core");
|
|
27
|
-
|
|
28
17
|
var _react = _interopRequireDefault(require("react"));
|
|
29
|
-
|
|
30
18
|
var _flexBox = require("@semcore/flex-box");
|
|
31
|
-
|
|
32
19
|
var _scrollArea = _interopRequireDefault(require("@semcore/scroll-area"));
|
|
33
|
-
|
|
34
20
|
var _m = _interopRequireDefault(require("@semcore/icon/SortDesc/m"));
|
|
35
|
-
|
|
36
21
|
var _m2 = _interopRequireDefault(require("@semcore/icon/SortAsc/m"));
|
|
37
|
-
|
|
38
22
|
var _assignProps2 = require("@semcore/utils/lib/assignProps");
|
|
39
|
-
|
|
40
23
|
var _utils = require("./utils");
|
|
41
|
-
|
|
42
24
|
var _logger = _interopRequireDefault(require("@semcore/utils/lib/logger"));
|
|
43
|
-
|
|
44
25
|
var _ref4 = require("@semcore/utils/lib/ref");
|
|
45
|
-
|
|
46
26
|
require("resize-observer-polyfill");
|
|
47
|
-
|
|
48
27
|
/*__reshadow-styles__:"./style/scroll-area.shadow.css"*/
|
|
49
|
-
var scrollStyles = (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
, "cog1g_gg_")
|
|
56
|
-
/*__reshadow_css_end__*/
|
|
57
|
-
, {
|
|
58
|
-
"__SShadowHorizontal": "___SShadowHorizontal_cog1g_gg_",
|
|
59
|
-
"--left": "--left_cog1g",
|
|
60
|
-
"--right": "--right_cog1g",
|
|
61
|
-
"__SContainer": "___SContainer_cog1g_gg_",
|
|
62
|
-
"_disabledScroll": "__disabledScroll_cog1g_gg_"
|
|
28
|
+
var scrollStyles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_hmn2a_gg_:before{left:var(--left_hmn2a)!important}.___SShadowHorizontal_hmn2a_gg_:after{right:var(--right_hmn2a)!important}.___SContainer_hmn2a_gg_.__disabledScroll_hmn2a_gg_{overflow:visible}" /*__inner_css_end__*/, "hmn2a_gg_") /*__reshadow_css_end__*/, {
|
|
29
|
+
"__SShadowHorizontal": "___SShadowHorizontal_hmn2a_gg_",
|
|
30
|
+
"--left": "--left_hmn2a",
|
|
31
|
+
"--right": "--right_hmn2a",
|
|
32
|
+
"__SContainer": "___SContainer_hmn2a_gg_",
|
|
33
|
+
"_disabledScroll": "__disabledScroll_hmn2a_gg_"
|
|
63
34
|
});
|
|
64
35
|
var SORTING_ICON = {
|
|
65
36
|
desc: _m["default"],
|
|
@@ -69,21 +40,15 @@ var ariaSort = {
|
|
|
69
40
|
desc: 'descending',
|
|
70
41
|
asc: 'ascending'
|
|
71
42
|
};
|
|
72
|
-
|
|
73
43
|
var Head = /*#__PURE__*/function (_Component) {
|
|
74
44
|
(0, _inherits2["default"])(Head, _Component);
|
|
75
|
-
|
|
76
45
|
var _super = (0, _createSuper2["default"])(Head);
|
|
77
|
-
|
|
78
46
|
function Head() {
|
|
79
47
|
var _this;
|
|
80
|
-
|
|
81
48
|
(0, _classCallCheck2["default"])(this, Head);
|
|
82
|
-
|
|
83
49
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
84
50
|
args[_key] = arguments[_key];
|
|
85
51
|
}
|
|
86
|
-
|
|
87
52
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
88
53
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columns", []);
|
|
89
54
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerSortClick", function (name) {
|
|
@@ -101,7 +66,6 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
101
66
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "refColumn", function (props) {
|
|
102
67
|
return function (ref) {
|
|
103
68
|
(0, _ref4.setRef)(props.ref, ref);
|
|
104
|
-
|
|
105
69
|
if (props.forwardRef) {
|
|
106
70
|
(0, _ref4.setRef)(props.forwardRef, ref);
|
|
107
71
|
}
|
|
@@ -109,12 +73,10 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
109
73
|
});
|
|
110
74
|
return _this;
|
|
111
75
|
}
|
|
112
|
-
|
|
113
76
|
(0, _createClass2["default"])(Head, [{
|
|
114
77
|
key: "renderColumns",
|
|
115
78
|
value: function renderColumns(columns, width) {
|
|
116
79
|
var _this2 = this;
|
|
117
|
-
|
|
118
80
|
return columns.map(function (column) {
|
|
119
81
|
return _this2.renderColumn(column, width);
|
|
120
82
|
});
|
|
@@ -122,12 +84,11 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
122
84
|
}, {
|
|
123
85
|
key: "renderColumn",
|
|
124
86
|
value: function renderColumn(column, width) {
|
|
125
|
-
var _ref2, _column$columns
|
|
126
|
-
|
|
87
|
+
var _ref2, _column$columns;
|
|
127
88
|
var _this$asProps = this.asProps,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
89
|
+
styles = _this$asProps.styles,
|
|
90
|
+
use = _this$asProps.use,
|
|
91
|
+
hidden = _this$asProps.hidden;
|
|
131
92
|
var SColumn = _flexBox.Flex;
|
|
132
93
|
var SHead = _flexBox.Box;
|
|
133
94
|
var SSortWrapper = 'div';
|
|
@@ -135,24 +96,19 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
135
96
|
var ariaSortValue = column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;
|
|
136
97
|
var isGroup = ((_column$columns = column.columns) === null || _column$columns === void 0 ? void 0 : _column$columns.length) > 0;
|
|
137
98
|
var cSize = isGroup ? (0, _utils.flattenColumns)(column.columns).length : 1;
|
|
138
|
-
|
|
139
99
|
var _getFixedStyle = (0, _utils.getFixedStyle)(column, this.columns),
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
100
|
+
_getFixedStyle2 = (0, _slicedToArray2["default"])(_getFixedStyle, 2),
|
|
101
|
+
name = _getFixedStyle2[0],
|
|
102
|
+
value = _getFixedStyle2[1];
|
|
144
103
|
var style = (0, _objectSpread2["default"])({
|
|
145
104
|
flexBasis: column.props.flex === undefined && "".concat(width * cSize, "%")
|
|
146
105
|
}, column.props.style);
|
|
147
|
-
|
|
148
106
|
if (name !== undefined && value !== undefined) {
|
|
149
107
|
style[name] = value;
|
|
150
108
|
}
|
|
151
|
-
|
|
152
109
|
if (!column.setVar) {
|
|
153
110
|
style['flexBasis'] = "var(".concat(column.varWidth, ")");
|
|
154
111
|
}
|
|
155
|
-
|
|
156
112
|
return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SColumn, _ref2.cn("SColumn", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
|
|
157
113
|
"role": isGroup ? undefined : 'columnheader',
|
|
158
114
|
"key": column.name,
|
|
@@ -160,7 +116,6 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
160
116
|
"fixed": column.fixed,
|
|
161
117
|
"resizable": column.resizable,
|
|
162
118
|
"sortable": column.sortable,
|
|
163
|
-
"sortIconFloat": (_column$props$justify = column.props.justifyContent) === null || _column$props$justify === void 0 ? void 0 : _column$props$justify.includes('end'),
|
|
164
119
|
"borderLeft": isGroup ? false : column.borderLeft,
|
|
165
120
|
"borderRight": isGroup ? false : column.borderRight,
|
|
166
121
|
"active": isGroup ? false : column.active,
|
|
@@ -188,27 +143,23 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
188
143
|
key: "render",
|
|
189
144
|
value: function render() {
|
|
190
145
|
var _ref = this.asProps,
|
|
191
|
-
|
|
192
|
-
|
|
146
|
+
_ref3;
|
|
193
147
|
var SHead = _flexBox.Box;
|
|
194
148
|
var SHeadWrapper = _flexBox.Box;
|
|
195
149
|
var _this$asProps2 = this.asProps,
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
150
|
+
Children = _this$asProps2.Children,
|
|
151
|
+
styles = _this$asProps2.styles,
|
|
152
|
+
columnsChildren = _this$asProps2.columnsChildren,
|
|
153
|
+
onResize = _this$asProps2.onResize,
|
|
154
|
+
$scrollRef = _this$asProps2.$scrollRef,
|
|
155
|
+
sticky = _this$asProps2.sticky,
|
|
156
|
+
disabledScroll = _this$asProps2.disabledScroll;
|
|
203
157
|
this.columns = (0, _utils.flattenColumns)(columnsChildren);
|
|
204
|
-
|
|
205
158
|
var _getScrollOffsetValue = (0, _utils.getScrollOffsetValue)(this.columns),
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
159
|
+
_getScrollOffsetValue2 = (0, _slicedToArray2["default"])(_getScrollOffsetValue, 2),
|
|
160
|
+
offsetLeftSum = _getScrollOffsetValue2[0],
|
|
161
|
+
offsetRightSum = _getScrollOffsetValue2[1];
|
|
210
162
|
_logger["default"].warn(sticky, "'sticky' property is deprecated, use '<Sticky/>' wrapper", this.asProps['data-ui-name'] || Head.displayName);
|
|
211
|
-
|
|
212
163
|
return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SHeadWrapper, _ref3.cn("SHeadWrapper", {
|
|
213
164
|
"sticky": sticky,
|
|
214
165
|
"role": "rowgroup"
|
|
@@ -228,7 +179,6 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
228
179
|
}]);
|
|
229
180
|
return Head;
|
|
230
181
|
}(_core.Component);
|
|
231
|
-
|
|
232
182
|
(0, _defineProperty2["default"])(Head, "displayName", void 0);
|
|
233
183
|
var _default = Head;
|
|
234
184
|
exports["default"] = _default;
|
package/lib/cjs/Head.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Head.js","names":["SORTING_ICON","desc","SortDesc","asc","SortAsc","ariaSort","Head","name","event","asProps","$onSortClick","code","props","ref","setRef","forwardRef","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","Flex","SHead","Box","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","active","undefined","isGroup","length","cSize","flattenColumns","getFixedStyle","value","style","flexBasis","flex","setVar","varWidth","sstyled","fixed","resizable","justifyContent","includes","borderLeft","borderRight","refColumn","callAllEventHandlers","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","SHeadWrapper","Children","columnsChildren","onResize","$scrollRef","sticky","disabledScroll","getScrollOffsetValue","offsetLeftSum","offsetRightSum","logger","warn","displayName","scrollStyles","origin","Component"],"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 from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\nimport 'resize-observer-polyfill';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\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 disabledScroll?: boolean;\n ['data-ui-name']: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\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.code === 'Enter') {\n this.asProps.$onSortClick(name, event);\n }\n };\n\n refColumn = (props: Column['props']) => (ref: HTMLElement) => {\n setRef(props.ref, ref);\n if (props.forwardRef) {\n setRef(props.forwardRef, ref);\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 } = this.asProps;\n const SColumn = Flex;\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 return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n sortIconFloat={column.props.justifyContent?.includes('end')}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n ref={this.refColumn(column.props)}\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 )}\n style={style}\n hidden={hidden}\n aria-sort={ariaSortValue}\n >\n {isGroup ? (\n <>\n <SColumn\n role=\"columnheader\"\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>\n <SSortIcon active={column.active} />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky, disabledScroll } =\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 <SHeadWrapper sticky={sticky} role=\"rowgroup\">\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll}>\n <SHead render={Box} role=\"row\">\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Head.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_scrollArea","_m","_m2","_assignProps2","_utils","_logger","_ref4","scrollStyles","sstyled","insert","SORTING_ICON","desc","SortDesc","asc","SortAsc","ariaSort","Head","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","name","event","asProps","$onSortClick","code","props","ref","setRef","forwardRef","_createClass2","key","value","renderColumns","columns","width","_this2","map","column","renderColumn","_ref2","_column$columns","_this$asProps","styles","use","hidden","SColumn","Flex","SHead","Box","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","active","undefined","isGroup","cSize","flattenColumns","_getFixedStyle","getFixedStyle","_getFixedStyle2","_slicedToArray2","style","_objectSpread2","flexBasis","flex","setVar","varWidth","createElement","cn","fixed","resizable","borderLeft","borderRight","refColumn","callAllEventHandlers","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","Fragment","children","render","_ref","_ref3","SHeadWrapper","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","disabledScroll","_getScrollOffsetValue","getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","logger","warn","displayName","Container","assignProps","origin","Component","_default","exports"],"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 from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\nimport 'resize-observer-polyfill';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\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 disabledScroll?: boolean;\n ['data-ui-name']: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\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.code === 'Enter') {\n this.asProps.$onSortClick(name, event);\n }\n };\n\n refColumn = (props: Column['props']) => (ref: HTMLElement) => {\n setRef(props.ref, ref);\n if (props.forwardRef) {\n setRef(props.forwardRef, ref);\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 } = this.asProps;\n const SColumn = Flex;\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 return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n key={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={column.sortable && 0}\n {...column.props}\n ref={this.refColumn(column.props)}\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 )}\n style={style}\n hidden={hidden}\n aria-sort={ariaSortValue}\n >\n {isGroup ? (\n <>\n <SColumn\n role=\"columnheader\"\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>\n <SSortIcon active={column.active} />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky, disabledScroll } =\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 <SHeadWrapper sticky={sticky} role=\"rowgroup\">\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll}>\n <SHead render={Box} role=\"row\">\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -12,9 +11,7 @@ Object.defineProperty(exports, "default", {
|
|
|
12
11
|
return _DataTable["default"];
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
|
-
|
|
16
14
|
var _DataTable = _interopRequireWildcard(require("./DataTable"));
|
|
17
|
-
|
|
18
15
|
Object.keys(_DataTable).forEach(function (key) {
|
|
19
16
|
if (key === "default" || key === "__esModule") return;
|
|
20
17
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './DataTable';\nexport * from './DataTable';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_DataTable","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './DataTable';\nexport * from './DataTable';\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,UAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,UAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAd,UAAA,CAAAM,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -32,6 +32,7 @@ SColumn {
|
|
|
32
32
|
align-items: flex-start;
|
|
33
33
|
flex-grow: 1;
|
|
34
34
|
font-size: var(--intergalactic-fs-100, 12px);
|
|
35
|
+
line-height: var(--intergalactic-lh-100, 133%);
|
|
35
36
|
color: var(--intergalactic-text-primary, #191b23);
|
|
36
37
|
box-sizing: border-box;
|
|
37
38
|
position: relative;
|
|
@@ -88,7 +89,18 @@ SColumn[sortable] {
|
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
&:hover SSortWrapper {
|
|
92
|
+
flex-basis: calc(var(--intergalactic-spacing-1x, 4px) + 16px);
|
|
93
|
+
opacity: 1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&:hover SSortWrapper:before {
|
|
97
|
+
display: block;
|
|
98
|
+
opacity: 1;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:hover SSortIcon {
|
|
91
102
|
display: block;
|
|
103
|
+
opacity: 1;
|
|
92
104
|
}
|
|
93
105
|
}
|
|
94
106
|
|
|
@@ -97,20 +109,15 @@ SColumn[use='primary'][active] {
|
|
|
97
109
|
width: 100%;
|
|
98
110
|
}
|
|
99
111
|
|
|
100
|
-
SColumn[active]
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
SColumn[sortIconFloat] SSortWrapper {
|
|
105
|
-
width: 0;
|
|
106
|
-
flex-basis: 0;
|
|
112
|
+
SColumn[active] SSortWrapper {
|
|
113
|
+
flex-basis: calc(var(--intergalactic-spacing-1x, 4px) + 16px);
|
|
114
|
+
opacity: 1;
|
|
107
115
|
}
|
|
108
116
|
|
|
109
|
-
SColumn[active]
|
|
117
|
+
SColumn[active] SSortIcon {
|
|
110
118
|
display: block;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
margin-left: var(--intergalactic-spacing-1x, 4px);
|
|
119
|
+
position: relative;
|
|
120
|
+
opacity: 1;
|
|
114
121
|
}
|
|
115
122
|
|
|
116
123
|
SColumn[resizable] {
|
|
@@ -149,43 +156,52 @@ SCell[borderRight] {
|
|
|
149
156
|
border-right: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
150
157
|
}
|
|
151
158
|
|
|
152
|
-
SSortIcon {
|
|
153
|
-
fill: var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b);
|
|
154
|
-
position: absolute;
|
|
155
|
-
top: -2px;
|
|
156
|
-
right: 0;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
159
|
SSortWrapper {
|
|
160
|
-
display: none;
|
|
161
160
|
flex-shrink: 99999;
|
|
162
161
|
position: relative;
|
|
163
|
-
flex-basis:
|
|
164
|
-
height:
|
|
162
|
+
flex-basis: 0;
|
|
163
|
+
height: 100%;
|
|
164
|
+
min-height: 16px;
|
|
165
|
+
opacity: 0;
|
|
166
|
+
transition: all 0.3s ease;
|
|
165
167
|
}
|
|
166
168
|
|
|
167
169
|
SSortWrapper:before {
|
|
170
|
+
display: none;
|
|
168
171
|
content: '';
|
|
169
172
|
position: absolute;
|
|
170
|
-
top:
|
|
173
|
+
top: 0;
|
|
171
174
|
right: 0;
|
|
172
175
|
width: 20px;
|
|
173
|
-
height:
|
|
176
|
+
height: 100%;
|
|
177
|
+
opacity: 0;
|
|
178
|
+
transition: opacity 0.3s ease;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
SSortIcon {
|
|
182
|
+
display: none;
|
|
183
|
+
fill: var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b);
|
|
184
|
+
position: absolute;
|
|
185
|
+
top: calc(1em * 1.25 - 16px);
|
|
186
|
+
right: 0;
|
|
187
|
+
margin-left: var(--intergalactic-spacing-1x, 4px);
|
|
188
|
+
opacity: 0;
|
|
189
|
+
transition: opacity 0.3s ease;
|
|
174
190
|
}
|
|
175
191
|
|
|
176
192
|
SColumn[use='primary'] SSortWrapper:before {
|
|
177
193
|
background: linear-gradient(
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
194
|
+
270deg,
|
|
195
|
+
var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,
|
|
196
|
+
rgba(224, 225, 233, 0) 105%
|
|
181
197
|
);
|
|
182
198
|
}
|
|
183
199
|
|
|
184
200
|
SColumn[use='secondary'] SSortWrapper:before {
|
|
185
201
|
background: linear-gradient(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
202
|
+
270deg,
|
|
203
|
+
var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,
|
|
204
|
+
rgba(255, 255, 255, 0) 105%
|
|
189
205
|
);
|
|
190
206
|
}
|
|
191
207
|
|
package/lib/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/types.ts"],"sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\nimport { Property } from 'csstype';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n varWidth: string;\n setVar: boolean;\n data?: unknown;\n vBorders?: boolean;\n borderLeft?: boolean;\n borderRight?: boolean;\n props: {\n name: string;\n ref: React.RefObject<HTMLElement>;\n } & Partial<{\n flex: Property.Flex;\n justifyContent: Property.JustifyContent;\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n forwardRef: React.Ref<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n children: React.ReactNode[];\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n vBorders: boolean;\n borderLeft: boolean;\n borderRight: boolean;\n }> &\n Props;\n columns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'fixed' | 'data'> & {\n cssVar: string | string[];\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"mappings":";;AACA"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["_DataTable","require"],"sources":["../../src/types.ts"],"sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\nimport { Property } from 'csstype';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n varWidth: string;\n setVar: boolean;\n data?: unknown;\n vBorders?: boolean;\n borderLeft?: boolean;\n borderRight?: boolean;\n props: {\n name: string;\n ref: React.RefObject<HTMLElement>;\n } & Partial<{\n flex: Property.Flex;\n justifyContent: Property.JustifyContent;\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n forwardRef: React.Ref<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n children: React.ReactNode[];\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n vBorders: boolean;\n borderLeft: boolean;\n borderRight: boolean;\n }> &\n Props;\n columns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'fixed' | 'data'> & {\n cssVar: string | string[];\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"mappings":";;AACA,IAAAA,UAAA,GAAAC,OAAA"}
|
package/lib/cjs/utils.js
CHANGED
|
@@ -4,23 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getScrollOffsetValue = exports.getFixedStyle = exports.flattenColumns = void 0;
|
|
7
|
-
|
|
8
7
|
var getScrollOffsetValue = function getScrollOffsetValue(columns) {
|
|
9
8
|
return columns.reduce(function (acc, column) {
|
|
10
9
|
if (column.fixed === 'left') {
|
|
11
10
|
acc[0] += column.width;
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
if (column.fixed === 'right') {
|
|
15
13
|
acc[1] += column.width;
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
return acc;
|
|
19
16
|
}, [0, 0]);
|
|
20
17
|
};
|
|
21
|
-
|
|
22
18
|
exports.getScrollOffsetValue = getScrollOffsetValue;
|
|
23
|
-
|
|
24
19
|
var flattenColumns = function flattenColumns(columns) {
|
|
25
20
|
return columns.reduce(function (acc, column) {
|
|
26
21
|
var hasNestedColumns = 'columns' in column && column.columns.length > 0;
|
|
@@ -29,9 +24,7 @@ var flattenColumns = function flattenColumns(columns) {
|
|
|
29
24
|
return acc;
|
|
30
25
|
}, []);
|
|
31
26
|
};
|
|
32
|
-
|
|
33
27
|
exports.flattenColumns = flattenColumns;
|
|
34
|
-
|
|
35
28
|
var getFixedStyle = function getFixedStyle(cell, columns) {
|
|
36
29
|
var side = cell.fixed;
|
|
37
30
|
if (!side) return [undefined, undefined];
|
|
@@ -60,6 +53,5 @@ var getFixedStyle = function getFixedStyle(cell, columns) {
|
|
|
60
53
|
});
|
|
61
54
|
return [side, vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")];
|
|
62
55
|
};
|
|
63
|
-
|
|
64
56
|
exports.getFixedStyle = getFixedStyle;
|
|
65
57
|
//# sourceMappingURL=utils.js.map
|