@semcore/data-table 3.5.5 → 3.6.1
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 +8 -2
- package/lib/cjs/Body.js +7 -7
- package/lib/cjs/DataTable.js +35 -37
- package/lib/cjs/DataTable.js.map +1 -1
- package/lib/cjs/Head.js +7 -7
- package/lib/cjs/style/data-table.shadow.css +45 -47
- package/lib/es6/Body.js +7 -7
- package/lib/es6/DataTable.js +35 -37
- package/lib/es6/DataTable.js.map +1 -1
- package/lib/es6/Head.js +7 -7
- package/lib/es6/style/data-table.shadow.css +45 -47
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
-
## [3.
|
|
5
|
+
## [3.6.1] - 2022-12-13
|
|
6
6
|
|
|
7
7
|
### Changed
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- Added `react-dom` to peer dependencies.
|
|
10
|
+
|
|
11
|
+
## [3.6.0] - 2022-12-12
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Design tokens based theming.
|
|
10
16
|
|
|
11
17
|
## [3.5.1] - 2022-11-08
|
|
12
18
|
|
package/lib/cjs/Body.js
CHANGED
|
@@ -71,16 +71,16 @@ var scrollStyles = (
|
|
|
71
71
|
/*__reshadow_css_start__*/
|
|
72
72
|
_core.sstyled.insert(
|
|
73
73
|
/*__inner_css_start__*/
|
|
74
|
-
".
|
|
74
|
+
".___SShadowHorizontal_6jmlb_gg_:before{left:var(--left_6jmlb)!important}.___SShadowHorizontal_6jmlb_gg_:after{right:var(--right_6jmlb)!important}.___SContainer_6jmlb_gg_.__disabledScroll_6jmlb_gg_{overflow:visible}"
|
|
75
75
|
/*__inner_css_end__*/
|
|
76
|
-
, "
|
|
76
|
+
, "6jmlb_gg_")
|
|
77
77
|
/*__reshadow_css_end__*/
|
|
78
78
|
, {
|
|
79
|
-
"__SShadowHorizontal": "
|
|
80
|
-
"--left": "--
|
|
81
|
-
"--right": "--
|
|
82
|
-
"__SContainer": "
|
|
83
|
-
"_disabledScroll": "
|
|
79
|
+
"__SShadowHorizontal": "___SShadowHorizontal_6jmlb_gg_",
|
|
80
|
+
"--left": "--left_6jmlb",
|
|
81
|
+
"--right": "--right_6jmlb",
|
|
82
|
+
"__SContainer": "___SContainer_6jmlb_gg_",
|
|
83
|
+
"_disabledScroll": "__disabledScroll_6jmlb_gg_"
|
|
84
84
|
});
|
|
85
85
|
var testEnv = process.env.NODE_ENV === 'test';
|
|
86
86
|
|
package/lib/cjs/DataTable.js
CHANGED
|
@@ -69,46 +69,44 @@ var style = (
|
|
|
69
69
|
/*__reshadow_css_start__*/
|
|
70
70
|
_core.sstyled.insert(
|
|
71
71
|
/*__inner_css_start__*/
|
|
72
|
-
".
|
|
72
|
+
".___SDataTable_fe34n_gg_{position:relative}.___SHeadWrapper_fe34n_gg_{position:relative}.___SHeadWrapper_fe34n_gg_.__sticky_fe34n_gg_{position:sticky;top:0;z-index:2}.___SHead_fe34n_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_fe34n_gg_{display:flex;align-items:center;flex-grow:1;font-size:var(--intergalactic-fs-100,12px);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;position:relative}.___SColumn_fe34n_gg_:focus{outline:none;box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SColumn_fe34n_gg_.__hidden_fe34n_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_fe34n_gg_._use_primary_fe34n_gg_{padding:var(--intergalactic-spacing-3x,12px);border-right:1px solid var(--intergalactic-border-secondary,#e0e1e9);border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);background-color:var(--intergalactic-table-th-primary-cell,#f4f5f9)}.___SColumn_fe34n_gg_._use_secondary_fe34n_gg_{padding:var(--intergalactic-spacing-2x,8px);border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6);background-color:var(--intergalactic-table-th-secondary-cell,#fff)}.___SColumn_fe34n_gg_.__use_fe34n_gg_:last-child{border-right:none}.___SColumn_fe34n_gg_.__group_fe34n_gg_.__use_fe34n_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_fe34n_gg_.__groupHead_fe34n_gg_.__use_fe34n_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_fe34n_gg_.__groupHead_fe34n_gg_._use_primary_fe34n_gg_{border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9)}.___SColumn_fe34n_gg_.__groupHead_fe34n_gg_._use_secondary_fe34n_gg_{border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6)}.___SColumn_fe34n_gg_.__sortable_fe34n_gg_{cursor:pointer}.___SColumn_fe34n_gg_.__sortable_fe34n_gg_._use_primary_fe34n_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_fe34n_gg_.__active_fe34n_gg_._use_primary_fe34n_gg_{background-color:var(--intergalactic-table-th-primary-cell-active,#e0e1e9)}.___SColumn_fe34n_gg_.__resizable_fe34n_gg_:hover:after{background:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_fe34n_gg_.__resizable_fe34n_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_fe34n_gg_.__fixed_fe34n_gg_{position:sticky;z-index:2}.___SSortIcon_fe34n_gg_{fill:var(--intergalactic-icon-secondary-neutral,#a9abb6);margin-left:calc(var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px))}.___SSortIcon_fe34n_gg_.__active_fe34n_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active,#8a8e9b)}.___SBodyWrapper_fe34n_gg_{position:relative}.___SBody_fe34n_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_fe34n_gg_{display:flex;flex-direction:row;position:relative}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-hover,rgba(224,225,233,.5))}.___SRow_fe34n_gg_._theme_muted_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_muted_fe34n_gg_,.___SRow_fe34n_gg_._theme_muted_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_muted_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_muted_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-hover,rgba(224,225,233,.5))}.___SRow_fe34n_gg_._theme_info_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_info_fe34n_gg_,.___SRow_fe34n_gg_._theme_info_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_info_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_info_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-selected-hover,#c4e5fe)}.___SRow_fe34n_gg_._theme_success_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_success_fe34n_gg_,.___SRow_fe34n_gg_._theme_success_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_success_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_success_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-new-hover,#9ef2c9)}.___SRow_fe34n_gg_._theme_warning_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_warning_fe34n_gg_,.___SRow_fe34n_gg_._theme_warning_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_warning_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_warning_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-warning-hover,#ffdca2)}.___SRow_fe34n_gg_._theme_danger_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_danger_fe34n_gg_,.___SRow_fe34n_gg_._theme_danger_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_danger_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_danger_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-critical-hover,#ffd7df)}.___SRow_fe34n_gg_.__positioned_fe34n_gg_{position:absolute}.___SCell_fe34n_gg_{display:flex;flex:1;flex-basis:auto;font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);overflow:hidden;white-space:nowrap}.___SCell_fe34n_gg_._use_primary_fe34n_gg_{padding:var(--intergalactic-spacing-3x,12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_fe34n_gg_._use_secondary_fe34n_gg_{padding:var(--intergalactic-spacing-2x,8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_fe34n_gg_.__fixed_fe34n_gg_{position:sticky;z-index:1}.___SCell_fe34n_gg_._theme_muted_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SCell_fe34n_gg_._theme_info_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SCell_fe34n_gg_._theme_success_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SCell_fe34n_gg_._theme_warning_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SCell_fe34n_gg_._theme_danger_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SScrollAreaBar_fe34n_gg_._orientation_horizontal_fe34n_gg_{position:sticky;bottom:0;left:0;margin-top:calc(var(--intergalactic-spacing-3x, 12px)*-1);z-index:2}.___SScrollAreaBar_fe34n_gg_._orientation_vertical_fe34n_gg_{width:12px}.___SScrollAreaBar_fe34n_gg_._orientation_horizontal_fe34n_gg_{margin-left:calc(var(--left) + var(--intergalactic-spacing-1x, 4px));margin-right:calc(var(--right) + var(--intergalactic-spacing-1x, 4px));width:calc(100% - var(--offsetSum_fe34n) - 8px)}.___SHeightHold_fe34n_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
|
|
73
73
|
/*__inner_css_end__*/
|
|
74
|
-
, "
|
|
74
|
+
, "fe34n_gg_")
|
|
75
75
|
/*__reshadow_css_end__*/
|
|
76
76
|
, {
|
|
77
|
-
"__SDataTable": "
|
|
78
|
-
"__SHeadWrapper": "
|
|
79
|
-
"_sticky": "
|
|
80
|
-
"__SHead": "
|
|
81
|
-
"__SColumn": "
|
|
82
|
-
"_hidden": "
|
|
83
|
-
"_use_primary": "
|
|
84
|
-
"_use_secondary": "
|
|
85
|
-
"_use": "
|
|
86
|
-
"_group": "
|
|
87
|
-
"_groupHead": "
|
|
88
|
-
"_sortable": "
|
|
89
|
-
"_active": "
|
|
90
|
-
"_resizable": "
|
|
91
|
-
"_fixed": "
|
|
92
|
-
"__SSortIcon": "
|
|
93
|
-
"__SBodyWrapper": "
|
|
94
|
-
"__SBody": "
|
|
95
|
-
"__SRow": "
|
|
96
|
-
"__SCell": "
|
|
97
|
-
"_theme": "
|
|
98
|
-
"__SGroupCell": "
|
|
99
|
-
"_theme_muted": "
|
|
100
|
-
"_theme_info": "
|
|
101
|
-
"_theme_success": "
|
|
102
|
-
"_theme_warning": "
|
|
103
|
-
"_theme_danger": "
|
|
104
|
-
"_positioned": "
|
|
105
|
-
"__SScrollAreaBar": "
|
|
106
|
-
"_orientation_horizontal": "
|
|
107
|
-
"_orientation_vertical": "
|
|
108
|
-
"--
|
|
109
|
-
"
|
|
110
|
-
"--offsetSum": "--offsetSum_1h8o7",
|
|
111
|
-
"__SHeightHold": "___SHeightHold_1h8o7_gg_"
|
|
77
|
+
"__SDataTable": "___SDataTable_fe34n_gg_",
|
|
78
|
+
"__SHeadWrapper": "___SHeadWrapper_fe34n_gg_",
|
|
79
|
+
"_sticky": "__sticky_fe34n_gg_",
|
|
80
|
+
"__SHead": "___SHead_fe34n_gg_",
|
|
81
|
+
"__SColumn": "___SColumn_fe34n_gg_",
|
|
82
|
+
"_hidden": "__hidden_fe34n_gg_",
|
|
83
|
+
"_use_primary": "_use_primary_fe34n_gg_",
|
|
84
|
+
"_use_secondary": "_use_secondary_fe34n_gg_",
|
|
85
|
+
"_use": "__use_fe34n_gg_",
|
|
86
|
+
"_group": "__group_fe34n_gg_",
|
|
87
|
+
"_groupHead": "__groupHead_fe34n_gg_",
|
|
88
|
+
"_sortable": "__sortable_fe34n_gg_",
|
|
89
|
+
"_active": "__active_fe34n_gg_",
|
|
90
|
+
"_resizable": "__resizable_fe34n_gg_",
|
|
91
|
+
"_fixed": "__fixed_fe34n_gg_",
|
|
92
|
+
"__SSortIcon": "___SSortIcon_fe34n_gg_",
|
|
93
|
+
"__SBodyWrapper": "___SBodyWrapper_fe34n_gg_",
|
|
94
|
+
"__SBody": "___SBody_fe34n_gg_",
|
|
95
|
+
"__SRow": "___SRow_fe34n_gg_",
|
|
96
|
+
"__SCell": "___SCell_fe34n_gg_",
|
|
97
|
+
"_theme": "__theme_fe34n_gg_",
|
|
98
|
+
"__SGroupCell": "___SGroupCell_fe34n_gg_",
|
|
99
|
+
"_theme_muted": "_theme_muted_fe34n_gg_",
|
|
100
|
+
"_theme_info": "_theme_info_fe34n_gg_",
|
|
101
|
+
"_theme_success": "_theme_success_fe34n_gg_",
|
|
102
|
+
"_theme_warning": "_theme_warning_fe34n_gg_",
|
|
103
|
+
"_theme_danger": "_theme_danger_fe34n_gg_",
|
|
104
|
+
"_positioned": "__positioned_fe34n_gg_",
|
|
105
|
+
"__SScrollAreaBar": "___SScrollAreaBar_fe34n_gg_",
|
|
106
|
+
"_orientation_horizontal": "_orientation_horizontal_fe34n_gg_",
|
|
107
|
+
"_orientation_vertical": "_orientation_vertical_fe34n_gg_",
|
|
108
|
+
"--offsetSum": "--offsetSum_fe34n",
|
|
109
|
+
"__SHeightHold": "___SHeightHold_fe34n_gg_"
|
|
112
110
|
});
|
|
113
111
|
var REVERSED_SORT_DIRECTION = {
|
|
114
112
|
desc: 'asc',
|
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","RootDefinitionTable","props","React","createRef","event","column","columns","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","isGroup","childrenToColumns","flattenColumns","map","join","length","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","groupedColumns","ungroupedColumns","rowKey","columnNames","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}\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 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\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 ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\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\n const columnChildren = {\n get width() {\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: sort[0] === name,\n sortable,\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 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 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\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 groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [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 groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\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, 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 ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\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 !== undefined)\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":["REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","React","createRef","event","column","columns","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","isGroup","childrenToColumns","flattenColumns","map","join","length","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","groupedColumns","ungroupedColumns","rowKey","columnNames","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}\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 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\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 ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\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\n const columnChildren = {\n get width() {\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: sort[0] === name,\n sortable,\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 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 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\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 groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [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 groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\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, 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 ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\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 !== undefined)\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
|
@@ -58,16 +58,16 @@ var scrollStyles = (
|
|
|
58
58
|
/*__reshadow_css_start__*/
|
|
59
59
|
_core.sstyled.insert(
|
|
60
60
|
/*__inner_css_start__*/
|
|
61
|
-
".
|
|
61
|
+
".___SShadowHorizontal_6jmlb_gg_:before{left:var(--left_6jmlb)!important}.___SShadowHorizontal_6jmlb_gg_:after{right:var(--right_6jmlb)!important}.___SContainer_6jmlb_gg_.__disabledScroll_6jmlb_gg_{overflow:visible}"
|
|
62
62
|
/*__inner_css_end__*/
|
|
63
|
-
, "
|
|
63
|
+
, "6jmlb_gg_")
|
|
64
64
|
/*__reshadow_css_end__*/
|
|
65
65
|
, {
|
|
66
|
-
"__SShadowHorizontal": "
|
|
67
|
-
"--left": "--
|
|
68
|
-
"--right": "--
|
|
69
|
-
"__SContainer": "
|
|
70
|
-
"_disabledScroll": "
|
|
66
|
+
"__SShadowHorizontal": "___SShadowHorizontal_6jmlb_gg_",
|
|
67
|
+
"--left": "--left_6jmlb",
|
|
68
|
+
"--right": "--right_6jmlb",
|
|
69
|
+
"__SContainer": "___SContainer_6jmlb_gg_",
|
|
70
|
+
"_disabledScroll": "__disabledScroll_6jmlb_gg_"
|
|
71
71
|
});
|
|
72
72
|
var SORTING_ICON = {
|
|
73
73
|
desc: _m["default"],
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@import '@semcore/utils/style/var.css';
|
|
2
|
-
|
|
3
1
|
SDataTable {
|
|
4
2
|
position: relative;
|
|
5
3
|
}
|
|
@@ -26,14 +24,14 @@ SColumn {
|
|
|
26
24
|
display: flex;
|
|
27
25
|
align-items: center;
|
|
28
26
|
flex-grow: 1;
|
|
29
|
-
font-size: var(--fs-100);
|
|
30
|
-
color: var(--
|
|
27
|
+
font-size: var(--intergalactic-fs-100, 12px);
|
|
28
|
+
color: var(--intergalactic-text-primary, #191b23);
|
|
31
29
|
box-sizing: border-box;
|
|
32
30
|
position: relative;
|
|
33
31
|
|
|
34
32
|
&:focus {
|
|
35
33
|
outline: none;
|
|
36
|
-
box-shadow: var(--keyboard-focus);
|
|
34
|
+
box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3));
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
|
|
@@ -45,16 +43,16 @@ SColumn[hidden] {
|
|
|
45
43
|
}
|
|
46
44
|
|
|
47
45
|
SColumn[use='primary'] {
|
|
48
|
-
padding: 12px;
|
|
49
|
-
border-right: 1px solid var(--
|
|
50
|
-
border-bottom: 1px solid var(--
|
|
51
|
-
background-color: var(--
|
|
46
|
+
padding: var(--intergalactic-spacing-3x, 12px);
|
|
47
|
+
border-right: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
48
|
+
border-bottom: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
49
|
+
background-color: var(--intergalactic-table-th-primary-cell, #f4f5f9);
|
|
52
50
|
}
|
|
53
51
|
|
|
54
52
|
SColumn[use='secondary'] {
|
|
55
|
-
padding: 8px;
|
|
56
|
-
border-bottom: 1px solid var(--
|
|
57
|
-
background-color: var(--
|
|
53
|
+
padding: var(--intergalactic-spacing-2x, 8px);
|
|
54
|
+
border-bottom: 1px solid var(--intergalactic-border-table-accent-border, #a9abb6);
|
|
55
|
+
background-color: var(--intergalactic-table-th-secondary-cell, #ffffff);
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
SColumn[use]:last-child {
|
|
@@ -78,28 +76,28 @@ SColumn[groupHead][use] {
|
|
|
78
76
|
}
|
|
79
77
|
|
|
80
78
|
SColumn[groupHead][use='primary'] {
|
|
81
|
-
border-bottom: 1px solid var(--
|
|
79
|
+
border-bottom: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
82
80
|
}
|
|
83
81
|
|
|
84
82
|
SColumn[groupHead][use='secondary'] {
|
|
85
|
-
border-bottom: 1px solid var(--
|
|
83
|
+
border-bottom: 1px solid var(--intergalactic-border-table-accent-border, #a9abb6);
|
|
86
84
|
}
|
|
87
85
|
|
|
88
86
|
SColumn[sortable] {
|
|
89
87
|
cursor: pointer;
|
|
90
88
|
|
|
91
89
|
&[use='primary']:hover {
|
|
92
|
-
background-color: var(--
|
|
90
|
+
background-color: var(--intergalactic-table-th-primary-cell-hover, #e0e1e9);
|
|
93
91
|
}
|
|
94
92
|
}
|
|
95
93
|
|
|
96
94
|
SColumn[active][use='primary'] {
|
|
97
|
-
background-color: var(--
|
|
95
|
+
background-color: var(--intergalactic-table-th-primary-cell-active, #e0e1e9);
|
|
98
96
|
}
|
|
99
97
|
|
|
100
98
|
SColumn[resizable] {
|
|
101
99
|
&:hover:after {
|
|
102
|
-
background: var(--
|
|
100
|
+
background: var(--intergalactic-table-th-primary-cell-hover, #e0e1e9);
|
|
103
101
|
}
|
|
104
102
|
|
|
105
103
|
&:after {
|
|
@@ -121,12 +119,12 @@ SColumn[fixed] {
|
|
|
121
119
|
}
|
|
122
120
|
|
|
123
121
|
SSortIcon {
|
|
124
|
-
fill: var(--
|
|
125
|
-
margin-left:
|
|
122
|
+
fill: var(--intergalactic-icon-secondary-neutral, #a9abb6);
|
|
123
|
+
margin-left: calc(var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px));
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
SSortIcon[active] {
|
|
129
|
-
fill: var(--
|
|
127
|
+
fill: var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b);
|
|
130
128
|
}
|
|
131
129
|
|
|
132
130
|
SBodyWrapper {
|
|
@@ -150,67 +148,67 @@ SRow {
|
|
|
150
148
|
SRow[active] > SCell:not([theme]),
|
|
151
149
|
SRow:hover > SCell:not([theme]),
|
|
152
150
|
SRow SCell:hover + SGroupCell SCell:not([theme]) {
|
|
153
|
-
background-color:
|
|
151
|
+
background-color: var(--intergalactic-table-td-cell-hover, rgba(224, 225, 233, 0.5));
|
|
154
152
|
}
|
|
155
153
|
|
|
156
154
|
/* MUTED THEME */
|
|
157
155
|
SRow[theme='muted'] SCell:not([theme]) {
|
|
158
|
-
background-color: #
|
|
156
|
+
background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
|
|
159
157
|
}
|
|
160
158
|
|
|
161
159
|
SRow:hover > SCell[theme='muted'],
|
|
162
160
|
SRow[theme='muted'][active] > SCell:not([theme]),
|
|
163
161
|
SRow[theme='muted']:hover > SCell:not([theme]),
|
|
164
162
|
SRow[theme='muted'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
165
|
-
background-color:
|
|
163
|
+
background-color: var(--intergalactic-table-td-cell-hover, rgba(224, 225, 233, 0.5));
|
|
166
164
|
}
|
|
167
165
|
|
|
168
166
|
/* INFO THEME */
|
|
169
167
|
SRow[theme='info'] SCell:not([theme]) {
|
|
170
|
-
background-color: var(--
|
|
168
|
+
background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
|
|
171
169
|
}
|
|
172
170
|
|
|
173
171
|
SRow:hover > SCell[theme='info'],
|
|
174
172
|
SRow[theme='info'][active] > SCell:not([theme]),
|
|
175
173
|
SRow[theme='info']:hover > SCell:not([theme]),
|
|
176
174
|
SRow[theme='info'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
177
|
-
background-color: var(--
|
|
175
|
+
background-color: var(--intergalactic-table-td-cell-selected-hover, #c4e5fe);
|
|
178
176
|
}
|
|
179
177
|
|
|
180
178
|
/* SUCCESS THEME */
|
|
181
179
|
SRow[theme='success'] SCell:not([theme]) {
|
|
182
|
-
background-color: var(--
|
|
180
|
+
background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
|
|
183
181
|
}
|
|
184
182
|
|
|
185
183
|
SRow:hover > SCell[theme='success'],
|
|
186
184
|
SRow[theme='success'][active] > SCell:not([theme]),
|
|
187
185
|
SRow[theme='success']:hover > SCell:not([theme]),
|
|
188
186
|
SRow[theme='success'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
189
|
-
background-color: var(--
|
|
187
|
+
background-color: var(--intergalactic-table-td-cell-new-hover, #9ef2c9);
|
|
190
188
|
}
|
|
191
189
|
|
|
192
190
|
/* WARNING THEME */
|
|
193
191
|
SRow[theme='warning'] SCell:not([theme]) {
|
|
194
|
-
background-color: var(--
|
|
192
|
+
background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
|
|
195
193
|
}
|
|
196
194
|
|
|
197
195
|
SRow:hover > SCell[theme='warning'],
|
|
198
196
|
SRow[theme='warning'][active] > SCell:not([theme]),
|
|
199
197
|
SRow[theme='warning']:hover > SCell:not([theme]),
|
|
200
198
|
SRow[theme='warning'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
201
|
-
background-color: var(--
|
|
199
|
+
background-color: var(--intergalactic-table-td-cell-warning-hover, #ffdca2);
|
|
202
200
|
}
|
|
203
201
|
|
|
204
202
|
/* DANGER THEME */
|
|
205
203
|
SRow[theme='danger'] SCell:not([theme]) {
|
|
206
|
-
background-color: var(--
|
|
204
|
+
background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
|
|
207
205
|
}
|
|
208
206
|
|
|
209
207
|
SRow:hover > SCell[theme='danger'],
|
|
210
208
|
SRow[theme='danger'][active] > SCell:not([theme]),
|
|
211
209
|
SRow[theme='danger']:hover > SCell:not([theme]),
|
|
212
210
|
SRow[theme='danger'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
213
|
-
background-color: var(--
|
|
211
|
+
background-color: var(--intergalactic-table-td-cell-critical-hover, #ffd7df);
|
|
214
212
|
}
|
|
215
213
|
|
|
216
214
|
SRow[positioned] {
|
|
@@ -221,25 +219,25 @@ SCell {
|
|
|
221
219
|
display: flex;
|
|
222
220
|
flex: 1;
|
|
223
221
|
flex-basis: auto;
|
|
224
|
-
font-size: var(--fs-200);
|
|
225
|
-
line-height: var(--lh-200);
|
|
226
|
-
color: var(--
|
|
222
|
+
font-size: var(--intergalactic-fs-200, 14px);
|
|
223
|
+
line-height: var(--intergalactic-lh-200, 142%);
|
|
224
|
+
color: var(--intergalactic-text-primary, #191b23);
|
|
227
225
|
box-sizing: border-box;
|
|
228
|
-
border-bottom: 1px solid var(--
|
|
226
|
+
border-bottom: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
229
227
|
overflow: hidden;
|
|
230
228
|
white-space: nowrap;
|
|
231
229
|
}
|
|
232
230
|
|
|
233
231
|
SCell[use='primary'] {
|
|
234
|
-
padding: 12px;
|
|
232
|
+
padding: var(--intergalactic-spacing-3x, 12px);
|
|
235
233
|
min-height: 45px;
|
|
236
|
-
background-color: var(--
|
|
234
|
+
background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
|
|
237
235
|
}
|
|
238
236
|
|
|
239
237
|
SCell[use='secondary'] {
|
|
240
|
-
padding: 8px;
|
|
238
|
+
padding: var(--intergalactic-spacing-2x, 8px);
|
|
241
239
|
min-height: 37px;
|
|
242
|
-
background-color: var(--
|
|
240
|
+
background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
|
|
243
241
|
}
|
|
244
242
|
|
|
245
243
|
SCell[fixed] {
|
|
@@ -248,30 +246,30 @@ SCell[fixed] {
|
|
|
248
246
|
}
|
|
249
247
|
|
|
250
248
|
SCell[theme='muted'] {
|
|
251
|
-
background-color: #
|
|
249
|
+
background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
|
|
252
250
|
}
|
|
253
251
|
|
|
254
252
|
SCell[theme='info'] {
|
|
255
|
-
background-color: var(--
|
|
253
|
+
background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
|
|
256
254
|
}
|
|
257
255
|
|
|
258
256
|
SCell[theme='success'] {
|
|
259
|
-
background-color: var(--
|
|
257
|
+
background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
|
|
260
258
|
}
|
|
261
259
|
|
|
262
260
|
SCell[theme='warning'] {
|
|
263
|
-
background-color: var(--
|
|
261
|
+
background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
|
|
264
262
|
}
|
|
265
263
|
|
|
266
264
|
SCell[theme='danger'] {
|
|
267
|
-
background-color: var(--
|
|
265
|
+
background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
|
|
268
266
|
}
|
|
269
267
|
|
|
270
268
|
SScrollAreaBar[orientation='horizontal'] {
|
|
271
269
|
position: sticky;
|
|
272
270
|
bottom: 0;
|
|
273
271
|
left: 0;
|
|
274
|
-
margin-top: -12px;
|
|
272
|
+
margin-top: calc(-1 * var(--intergalactic-spacing-3x, 12px));
|
|
275
273
|
z-index: 2;
|
|
276
274
|
}
|
|
277
275
|
|
|
@@ -280,8 +278,8 @@ SScrollAreaBar[orientation='vertical'] {
|
|
|
280
278
|
}
|
|
281
279
|
|
|
282
280
|
SScrollAreaBar[orientation='horizontal'] {
|
|
283
|
-
margin-left: calc(var(--left) + 4px);
|
|
284
|
-
margin-right: calc(var(--right) + 4px);
|
|
281
|
+
margin-left: calc(var(--left) + var(--intergalactic-spacing-1x, 4px));
|
|
282
|
+
margin-right: calc(var(--right) + var(--intergalactic-spacing-1x, 4px));
|
|
285
283
|
width: calc(100% - var(--offsetSum) - 8px);
|
|
286
284
|
}
|
|
287
285
|
|
package/lib/es6/Body.js
CHANGED
|
@@ -40,16 +40,16 @@ var scrollStyles = (
|
|
|
40
40
|
/*__reshadow_css_start__*/
|
|
41
41
|
_sstyled.insert(
|
|
42
42
|
/*__inner_css_start__*/
|
|
43
|
-
".
|
|
43
|
+
".___SShadowHorizontal_6jmlb_gg_:before{left:var(--left_6jmlb)!important}.___SShadowHorizontal_6jmlb_gg_:after{right:var(--right_6jmlb)!important}.___SContainer_6jmlb_gg_.__disabledScroll_6jmlb_gg_{overflow:visible}"
|
|
44
44
|
/*__inner_css_end__*/
|
|
45
|
-
, "
|
|
45
|
+
, "6jmlb_gg_")
|
|
46
46
|
/*__reshadow_css_end__*/
|
|
47
47
|
, {
|
|
48
|
-
"__SShadowHorizontal": "
|
|
49
|
-
"--left": "--
|
|
50
|
-
"--right": "--
|
|
51
|
-
"__SContainer": "
|
|
52
|
-
"_disabledScroll": "
|
|
48
|
+
"__SShadowHorizontal": "___SShadowHorizontal_6jmlb_gg_",
|
|
49
|
+
"--left": "--left_6jmlb",
|
|
50
|
+
"--right": "--right_6jmlb",
|
|
51
|
+
"__SContainer": "___SContainer_6jmlb_gg_",
|
|
52
|
+
"_disabledScroll": "__disabledScroll_6jmlb_gg_"
|
|
53
53
|
});
|
|
54
54
|
import trottle from '@semcore/utils/lib/rafTrottle';
|
|
55
55
|
var testEnv = process.env.NODE_ENV === 'test';
|
package/lib/es6/DataTable.js
CHANGED
|
@@ -40,46 +40,44 @@ var style = (
|
|
|
40
40
|
/*__reshadow_css_start__*/
|
|
41
41
|
_sstyled.insert(
|
|
42
42
|
/*__inner_css_start__*/
|
|
43
|
-
".
|
|
43
|
+
".___SDataTable_fe34n_gg_{position:relative}.___SHeadWrapper_fe34n_gg_{position:relative}.___SHeadWrapper_fe34n_gg_.__sticky_fe34n_gg_{position:sticky;top:0;z-index:2}.___SHead_fe34n_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_fe34n_gg_{display:flex;align-items:center;flex-grow:1;font-size:var(--intergalactic-fs-100,12px);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;position:relative}.___SColumn_fe34n_gg_:focus{outline:none;box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SColumn_fe34n_gg_.__hidden_fe34n_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_fe34n_gg_._use_primary_fe34n_gg_{padding:var(--intergalactic-spacing-3x,12px);border-right:1px solid var(--intergalactic-border-secondary,#e0e1e9);border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);background-color:var(--intergalactic-table-th-primary-cell,#f4f5f9)}.___SColumn_fe34n_gg_._use_secondary_fe34n_gg_{padding:var(--intergalactic-spacing-2x,8px);border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6);background-color:var(--intergalactic-table-th-secondary-cell,#fff)}.___SColumn_fe34n_gg_.__use_fe34n_gg_:last-child{border-right:none}.___SColumn_fe34n_gg_.__group_fe34n_gg_.__use_fe34n_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_fe34n_gg_.__groupHead_fe34n_gg_.__use_fe34n_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_fe34n_gg_.__groupHead_fe34n_gg_._use_primary_fe34n_gg_{border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9)}.___SColumn_fe34n_gg_.__groupHead_fe34n_gg_._use_secondary_fe34n_gg_{border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6)}.___SColumn_fe34n_gg_.__sortable_fe34n_gg_{cursor:pointer}.___SColumn_fe34n_gg_.__sortable_fe34n_gg_._use_primary_fe34n_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_fe34n_gg_.__active_fe34n_gg_._use_primary_fe34n_gg_{background-color:var(--intergalactic-table-th-primary-cell-active,#e0e1e9)}.___SColumn_fe34n_gg_.__resizable_fe34n_gg_:hover:after{background:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_fe34n_gg_.__resizable_fe34n_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_fe34n_gg_.__fixed_fe34n_gg_{position:sticky;z-index:2}.___SSortIcon_fe34n_gg_{fill:var(--intergalactic-icon-secondary-neutral,#a9abb6);margin-left:calc(var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px))}.___SSortIcon_fe34n_gg_.__active_fe34n_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active,#8a8e9b)}.___SBodyWrapper_fe34n_gg_{position:relative}.___SBody_fe34n_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_fe34n_gg_{display:flex;flex-direction:row;position:relative}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-hover,rgba(224,225,233,.5))}.___SRow_fe34n_gg_._theme_muted_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_muted_fe34n_gg_,.___SRow_fe34n_gg_._theme_muted_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_muted_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_muted_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-hover,rgba(224,225,233,.5))}.___SRow_fe34n_gg_._theme_info_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_info_fe34n_gg_,.___SRow_fe34n_gg_._theme_info_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_info_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_info_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-selected-hover,#c4e5fe)}.___SRow_fe34n_gg_._theme_success_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_success_fe34n_gg_,.___SRow_fe34n_gg_._theme_success_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_success_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_success_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-new-hover,#9ef2c9)}.___SRow_fe34n_gg_._theme_warning_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_warning_fe34n_gg_,.___SRow_fe34n_gg_._theme_warning_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_warning_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_warning_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-warning-hover,#ffdca2)}.___SRow_fe34n_gg_._theme_danger_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SRow_fe34n_gg_:hover>.___SCell_fe34n_gg_._theme_danger_fe34n_gg_,.___SRow_fe34n_gg_._theme_danger_fe34n_gg_:hover>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_danger_fe34n_gg_.__active_fe34n_gg_>.___SCell_fe34n_gg_:not(.__theme_fe34n_gg_),.___SRow_fe34n_gg_._theme_danger_fe34n_gg_ .___SCell_fe34n_gg_:hover+.___SGroupCell_fe34n_gg_ .___SCell_fe34n_gg_:not(.__theme_fe34n_gg_){background-color:var(--intergalactic-table-td-cell-critical-hover,#ffd7df)}.___SRow_fe34n_gg_.__positioned_fe34n_gg_{position:absolute}.___SCell_fe34n_gg_{display:flex;flex:1;flex-basis:auto;font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);overflow:hidden;white-space:nowrap}.___SCell_fe34n_gg_._use_primary_fe34n_gg_{padding:var(--intergalactic-spacing-3x,12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_fe34n_gg_._use_secondary_fe34n_gg_{padding:var(--intergalactic-spacing-2x,8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_fe34n_gg_.__fixed_fe34n_gg_{position:sticky;z-index:1}.___SCell_fe34n_gg_._theme_muted_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SCell_fe34n_gg_._theme_info_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SCell_fe34n_gg_._theme_success_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SCell_fe34n_gg_._theme_warning_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SCell_fe34n_gg_._theme_danger_fe34n_gg_{background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SScrollAreaBar_fe34n_gg_._orientation_horizontal_fe34n_gg_{position:sticky;bottom:0;left:0;margin-top:calc(var(--intergalactic-spacing-3x, 12px)*-1);z-index:2}.___SScrollAreaBar_fe34n_gg_._orientation_vertical_fe34n_gg_{width:12px}.___SScrollAreaBar_fe34n_gg_._orientation_horizontal_fe34n_gg_{margin-left:calc(var(--left) + var(--intergalactic-spacing-1x, 4px));margin-right:calc(var(--right) + var(--intergalactic-spacing-1x, 4px));width:calc(100% - var(--offsetSum_fe34n) - 8px)}.___SHeightHold_fe34n_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
|
|
44
44
|
/*__inner_css_end__*/
|
|
45
|
-
, "
|
|
45
|
+
, "fe34n_gg_")
|
|
46
46
|
/*__reshadow_css_end__*/
|
|
47
47
|
, {
|
|
48
|
-
"__SDataTable": "
|
|
49
|
-
"__SHeadWrapper": "
|
|
50
|
-
"_sticky": "
|
|
51
|
-
"__SHead": "
|
|
52
|
-
"__SColumn": "
|
|
53
|
-
"_hidden": "
|
|
54
|
-
"_use_primary": "
|
|
55
|
-
"_use_secondary": "
|
|
56
|
-
"_use": "
|
|
57
|
-
"_group": "
|
|
58
|
-
"_groupHead": "
|
|
59
|
-
"_sortable": "
|
|
60
|
-
"_active": "
|
|
61
|
-
"_resizable": "
|
|
62
|
-
"_fixed": "
|
|
63
|
-
"__SSortIcon": "
|
|
64
|
-
"__SBodyWrapper": "
|
|
65
|
-
"__SBody": "
|
|
66
|
-
"__SRow": "
|
|
67
|
-
"__SCell": "
|
|
68
|
-
"_theme": "
|
|
69
|
-
"__SGroupCell": "
|
|
70
|
-
"_theme_muted": "
|
|
71
|
-
"_theme_info": "
|
|
72
|
-
"_theme_success": "
|
|
73
|
-
"_theme_warning": "
|
|
74
|
-
"_theme_danger": "
|
|
75
|
-
"_positioned": "
|
|
76
|
-
"__SScrollAreaBar": "
|
|
77
|
-
"_orientation_horizontal": "
|
|
78
|
-
"_orientation_vertical": "
|
|
79
|
-
"--
|
|
80
|
-
"
|
|
81
|
-
"--offsetSum": "--offsetSum_1h8o7",
|
|
82
|
-
"__SHeightHold": "___SHeightHold_1h8o7_gg_"
|
|
48
|
+
"__SDataTable": "___SDataTable_fe34n_gg_",
|
|
49
|
+
"__SHeadWrapper": "___SHeadWrapper_fe34n_gg_",
|
|
50
|
+
"_sticky": "__sticky_fe34n_gg_",
|
|
51
|
+
"__SHead": "___SHead_fe34n_gg_",
|
|
52
|
+
"__SColumn": "___SColumn_fe34n_gg_",
|
|
53
|
+
"_hidden": "__hidden_fe34n_gg_",
|
|
54
|
+
"_use_primary": "_use_primary_fe34n_gg_",
|
|
55
|
+
"_use_secondary": "_use_secondary_fe34n_gg_",
|
|
56
|
+
"_use": "__use_fe34n_gg_",
|
|
57
|
+
"_group": "__group_fe34n_gg_",
|
|
58
|
+
"_groupHead": "__groupHead_fe34n_gg_",
|
|
59
|
+
"_sortable": "__sortable_fe34n_gg_",
|
|
60
|
+
"_active": "__active_fe34n_gg_",
|
|
61
|
+
"_resizable": "__resizable_fe34n_gg_",
|
|
62
|
+
"_fixed": "__fixed_fe34n_gg_",
|
|
63
|
+
"__SSortIcon": "___SSortIcon_fe34n_gg_",
|
|
64
|
+
"__SBodyWrapper": "___SBodyWrapper_fe34n_gg_",
|
|
65
|
+
"__SBody": "___SBody_fe34n_gg_",
|
|
66
|
+
"__SRow": "___SRow_fe34n_gg_",
|
|
67
|
+
"__SCell": "___SCell_fe34n_gg_",
|
|
68
|
+
"_theme": "__theme_fe34n_gg_",
|
|
69
|
+
"__SGroupCell": "___SGroupCell_fe34n_gg_",
|
|
70
|
+
"_theme_muted": "_theme_muted_fe34n_gg_",
|
|
71
|
+
"_theme_info": "_theme_info_fe34n_gg_",
|
|
72
|
+
"_theme_success": "_theme_success_fe34n_gg_",
|
|
73
|
+
"_theme_warning": "_theme_warning_fe34n_gg_",
|
|
74
|
+
"_theme_danger": "_theme_danger_fe34n_gg_",
|
|
75
|
+
"_positioned": "__positioned_fe34n_gg_",
|
|
76
|
+
"__SScrollAreaBar": "___SScrollAreaBar_fe34n_gg_",
|
|
77
|
+
"_orientation_horizontal": "_orientation_horizontal_fe34n_gg_",
|
|
78
|
+
"_orientation_vertical": "_orientation_vertical_fe34n_gg_",
|
|
79
|
+
"--offsetSum": "--offsetSum_fe34n",
|
|
80
|
+
"__SHeightHold": "___SHeightHold_fe34n_gg_"
|
|
83
81
|
});
|
|
84
82
|
var REVERSED_SORT_DIRECTION = {
|
|
85
83
|
desc: 'asc',
|
package/lib/es6/DataTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["React","createComponent","Component","Root","sstyled","Box","syncScroll","callAllEventHandlers","fire","flattenColumns","Head","Body","REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","createRef","event","column","columns","find","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","setVar","style","setProperty","varWidth","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","flex","isGroup","childrenToColumns","map","join","length","toArray","filter","columnChildren","ref","getBoundingClientRect","forwardRef","push","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","uniqueKey","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","parseData","exclude","row","groupByName","groupedColumns","ungroupedColumns","rowKey","columnNames","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","cssVar","flatRowData","setVarStyle","SDataTable","styles","ComponentDefinition"],"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}\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 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\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 ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\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\n const columnChildren = {\n get width() {\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: sort[0] === name,\n sortable,\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 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 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\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 groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [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 groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\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, 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 ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\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 !== undefined)\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":["React","createComponent","Component","Root","sstyled","Box","syncScroll","callAllEventHandlers","fire","flattenColumns","Head","Body","REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","createRef","event","column","columns","find","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","setVar","style","setProperty","varWidth","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","flex","isGroup","childrenToColumns","map","join","length","toArray","filter","columnChildren","ref","getBoundingClientRect","forwardRef","push","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","uniqueKey","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","parseData","exclude","row","groupByName","groupedColumns","ungroupedColumns","rowKey","columnNames","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","cssVar","flatRowData","setVarStyle","SDataTable","styles","ComponentDefinition"],"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}\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 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\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 ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\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\n const columnChildren = {\n get width() {\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: sort[0] === name,\n sortable,\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 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 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\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 groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [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 groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\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, 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 ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\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 !== undefined)\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/es6/Head.js
CHANGED
|
@@ -34,16 +34,16 @@ var scrollStyles = (
|
|
|
34
34
|
/*__reshadow_css_start__*/
|
|
35
35
|
_sstyled.insert(
|
|
36
36
|
/*__inner_css_start__*/
|
|
37
|
-
".
|
|
37
|
+
".___SShadowHorizontal_6jmlb_gg_:before{left:var(--left_6jmlb)!important}.___SShadowHorizontal_6jmlb_gg_:after{right:var(--right_6jmlb)!important}.___SContainer_6jmlb_gg_.__disabledScroll_6jmlb_gg_{overflow:visible}"
|
|
38
38
|
/*__inner_css_end__*/
|
|
39
|
-
, "
|
|
39
|
+
, "6jmlb_gg_")
|
|
40
40
|
/*__reshadow_css_end__*/
|
|
41
41
|
, {
|
|
42
|
-
"__SShadowHorizontal": "
|
|
43
|
-
"--left": "--
|
|
44
|
-
"--right": "--
|
|
45
|
-
"__SContainer": "
|
|
46
|
-
"_disabledScroll": "
|
|
42
|
+
"__SShadowHorizontal": "___SShadowHorizontal_6jmlb_gg_",
|
|
43
|
+
"--left": "--left_6jmlb",
|
|
44
|
+
"--right": "--right_6jmlb",
|
|
45
|
+
"__SContainer": "___SContainer_6jmlb_gg_",
|
|
46
|
+
"_disabledScroll": "__disabledScroll_6jmlb_gg_"
|
|
47
47
|
});
|
|
48
48
|
var SORTING_ICON = {
|
|
49
49
|
desc: SortDesc,
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@import '@semcore/utils/style/var.css';
|
|
2
|
-
|
|
3
1
|
SDataTable {
|
|
4
2
|
position: relative;
|
|
5
3
|
}
|
|
@@ -26,14 +24,14 @@ SColumn {
|
|
|
26
24
|
display: flex;
|
|
27
25
|
align-items: center;
|
|
28
26
|
flex-grow: 1;
|
|
29
|
-
font-size: var(--fs-100);
|
|
30
|
-
color: var(--
|
|
27
|
+
font-size: var(--intergalactic-fs-100, 12px);
|
|
28
|
+
color: var(--intergalactic-text-primary, #191b23);
|
|
31
29
|
box-sizing: border-box;
|
|
32
30
|
position: relative;
|
|
33
31
|
|
|
34
32
|
&:focus {
|
|
35
33
|
outline: none;
|
|
36
|
-
box-shadow: var(--keyboard-focus);
|
|
34
|
+
box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3));
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
|
|
@@ -45,16 +43,16 @@ SColumn[hidden] {
|
|
|
45
43
|
}
|
|
46
44
|
|
|
47
45
|
SColumn[use='primary'] {
|
|
48
|
-
padding: 12px;
|
|
49
|
-
border-right: 1px solid var(--
|
|
50
|
-
border-bottom: 1px solid var(--
|
|
51
|
-
background-color: var(--
|
|
46
|
+
padding: var(--intergalactic-spacing-3x, 12px);
|
|
47
|
+
border-right: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
48
|
+
border-bottom: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
49
|
+
background-color: var(--intergalactic-table-th-primary-cell, #f4f5f9);
|
|
52
50
|
}
|
|
53
51
|
|
|
54
52
|
SColumn[use='secondary'] {
|
|
55
|
-
padding: 8px;
|
|
56
|
-
border-bottom: 1px solid var(--
|
|
57
|
-
background-color: var(--
|
|
53
|
+
padding: var(--intergalactic-spacing-2x, 8px);
|
|
54
|
+
border-bottom: 1px solid var(--intergalactic-border-table-accent-border, #a9abb6);
|
|
55
|
+
background-color: var(--intergalactic-table-th-secondary-cell, #ffffff);
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
SColumn[use]:last-child {
|
|
@@ -78,28 +76,28 @@ SColumn[groupHead][use] {
|
|
|
78
76
|
}
|
|
79
77
|
|
|
80
78
|
SColumn[groupHead][use='primary'] {
|
|
81
|
-
border-bottom: 1px solid var(--
|
|
79
|
+
border-bottom: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
82
80
|
}
|
|
83
81
|
|
|
84
82
|
SColumn[groupHead][use='secondary'] {
|
|
85
|
-
border-bottom: 1px solid var(--
|
|
83
|
+
border-bottom: 1px solid var(--intergalactic-border-table-accent-border, #a9abb6);
|
|
86
84
|
}
|
|
87
85
|
|
|
88
86
|
SColumn[sortable] {
|
|
89
87
|
cursor: pointer;
|
|
90
88
|
|
|
91
89
|
&[use='primary']:hover {
|
|
92
|
-
background-color: var(--
|
|
90
|
+
background-color: var(--intergalactic-table-th-primary-cell-hover, #e0e1e9);
|
|
93
91
|
}
|
|
94
92
|
}
|
|
95
93
|
|
|
96
94
|
SColumn[active][use='primary'] {
|
|
97
|
-
background-color: var(--
|
|
95
|
+
background-color: var(--intergalactic-table-th-primary-cell-active, #e0e1e9);
|
|
98
96
|
}
|
|
99
97
|
|
|
100
98
|
SColumn[resizable] {
|
|
101
99
|
&:hover:after {
|
|
102
|
-
background: var(--
|
|
100
|
+
background: var(--intergalactic-table-th-primary-cell-hover, #e0e1e9);
|
|
103
101
|
}
|
|
104
102
|
|
|
105
103
|
&:after {
|
|
@@ -121,12 +119,12 @@ SColumn[fixed] {
|
|
|
121
119
|
}
|
|
122
120
|
|
|
123
121
|
SSortIcon {
|
|
124
|
-
fill: var(--
|
|
125
|
-
margin-left:
|
|
122
|
+
fill: var(--intergalactic-icon-secondary-neutral, #a9abb6);
|
|
123
|
+
margin-left: calc(var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px));
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
SSortIcon[active] {
|
|
129
|
-
fill: var(--
|
|
127
|
+
fill: var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b);
|
|
130
128
|
}
|
|
131
129
|
|
|
132
130
|
SBodyWrapper {
|
|
@@ -150,67 +148,67 @@ SRow {
|
|
|
150
148
|
SRow[active] > SCell:not([theme]),
|
|
151
149
|
SRow:hover > SCell:not([theme]),
|
|
152
150
|
SRow SCell:hover + SGroupCell SCell:not([theme]) {
|
|
153
|
-
background-color:
|
|
151
|
+
background-color: var(--intergalactic-table-td-cell-hover, rgba(224, 225, 233, 0.5));
|
|
154
152
|
}
|
|
155
153
|
|
|
156
154
|
/* MUTED THEME */
|
|
157
155
|
SRow[theme='muted'] SCell:not([theme]) {
|
|
158
|
-
background-color: #
|
|
156
|
+
background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
|
|
159
157
|
}
|
|
160
158
|
|
|
161
159
|
SRow:hover > SCell[theme='muted'],
|
|
162
160
|
SRow[theme='muted'][active] > SCell:not([theme]),
|
|
163
161
|
SRow[theme='muted']:hover > SCell:not([theme]),
|
|
164
162
|
SRow[theme='muted'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
165
|
-
background-color:
|
|
163
|
+
background-color: var(--intergalactic-table-td-cell-hover, rgba(224, 225, 233, 0.5));
|
|
166
164
|
}
|
|
167
165
|
|
|
168
166
|
/* INFO THEME */
|
|
169
167
|
SRow[theme='info'] SCell:not([theme]) {
|
|
170
|
-
background-color: var(--
|
|
168
|
+
background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
|
|
171
169
|
}
|
|
172
170
|
|
|
173
171
|
SRow:hover > SCell[theme='info'],
|
|
174
172
|
SRow[theme='info'][active] > SCell:not([theme]),
|
|
175
173
|
SRow[theme='info']:hover > SCell:not([theme]),
|
|
176
174
|
SRow[theme='info'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
177
|
-
background-color: var(--
|
|
175
|
+
background-color: var(--intergalactic-table-td-cell-selected-hover, #c4e5fe);
|
|
178
176
|
}
|
|
179
177
|
|
|
180
178
|
/* SUCCESS THEME */
|
|
181
179
|
SRow[theme='success'] SCell:not([theme]) {
|
|
182
|
-
background-color: var(--
|
|
180
|
+
background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
|
|
183
181
|
}
|
|
184
182
|
|
|
185
183
|
SRow:hover > SCell[theme='success'],
|
|
186
184
|
SRow[theme='success'][active] > SCell:not([theme]),
|
|
187
185
|
SRow[theme='success']:hover > SCell:not([theme]),
|
|
188
186
|
SRow[theme='success'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
189
|
-
background-color: var(--
|
|
187
|
+
background-color: var(--intergalactic-table-td-cell-new-hover, #9ef2c9);
|
|
190
188
|
}
|
|
191
189
|
|
|
192
190
|
/* WARNING THEME */
|
|
193
191
|
SRow[theme='warning'] SCell:not([theme]) {
|
|
194
|
-
background-color: var(--
|
|
192
|
+
background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
|
|
195
193
|
}
|
|
196
194
|
|
|
197
195
|
SRow:hover > SCell[theme='warning'],
|
|
198
196
|
SRow[theme='warning'][active] > SCell:not([theme]),
|
|
199
197
|
SRow[theme='warning']:hover > SCell:not([theme]),
|
|
200
198
|
SRow[theme='warning'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
201
|
-
background-color: var(--
|
|
199
|
+
background-color: var(--intergalactic-table-td-cell-warning-hover, #ffdca2);
|
|
202
200
|
}
|
|
203
201
|
|
|
204
202
|
/* DANGER THEME */
|
|
205
203
|
SRow[theme='danger'] SCell:not([theme]) {
|
|
206
|
-
background-color: var(--
|
|
204
|
+
background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
|
|
207
205
|
}
|
|
208
206
|
|
|
209
207
|
SRow:hover > SCell[theme='danger'],
|
|
210
208
|
SRow[theme='danger'][active] > SCell:not([theme]),
|
|
211
209
|
SRow[theme='danger']:hover > SCell:not([theme]),
|
|
212
210
|
SRow[theme='danger'] SCell:hover + SGroupCell SCell:not([theme]) {
|
|
213
|
-
background-color: var(--
|
|
211
|
+
background-color: var(--intergalactic-table-td-cell-critical-hover, #ffd7df);
|
|
214
212
|
}
|
|
215
213
|
|
|
216
214
|
SRow[positioned] {
|
|
@@ -221,25 +219,25 @@ SCell {
|
|
|
221
219
|
display: flex;
|
|
222
220
|
flex: 1;
|
|
223
221
|
flex-basis: auto;
|
|
224
|
-
font-size: var(--fs-200);
|
|
225
|
-
line-height: var(--lh-200);
|
|
226
|
-
color: var(--
|
|
222
|
+
font-size: var(--intergalactic-fs-200, 14px);
|
|
223
|
+
line-height: var(--intergalactic-lh-200, 142%);
|
|
224
|
+
color: var(--intergalactic-text-primary, #191b23);
|
|
227
225
|
box-sizing: border-box;
|
|
228
|
-
border-bottom: 1px solid var(--
|
|
226
|
+
border-bottom: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
|
|
229
227
|
overflow: hidden;
|
|
230
228
|
white-space: nowrap;
|
|
231
229
|
}
|
|
232
230
|
|
|
233
231
|
SCell[use='primary'] {
|
|
234
|
-
padding: 12px;
|
|
232
|
+
padding: var(--intergalactic-spacing-3x, 12px);
|
|
235
233
|
min-height: 45px;
|
|
236
|
-
background-color: var(--
|
|
234
|
+
background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
|
|
237
235
|
}
|
|
238
236
|
|
|
239
237
|
SCell[use='secondary'] {
|
|
240
|
-
padding: 8px;
|
|
238
|
+
padding: var(--intergalactic-spacing-2x, 8px);
|
|
241
239
|
min-height: 37px;
|
|
242
|
-
background-color: var(--
|
|
240
|
+
background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
|
|
243
241
|
}
|
|
244
242
|
|
|
245
243
|
SCell[fixed] {
|
|
@@ -248,30 +246,30 @@ SCell[fixed] {
|
|
|
248
246
|
}
|
|
249
247
|
|
|
250
248
|
SCell[theme='muted'] {
|
|
251
|
-
background-color: #
|
|
249
|
+
background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
|
|
252
250
|
}
|
|
253
251
|
|
|
254
252
|
SCell[theme='info'] {
|
|
255
|
-
background-color: var(--
|
|
253
|
+
background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
|
|
256
254
|
}
|
|
257
255
|
|
|
258
256
|
SCell[theme='success'] {
|
|
259
|
-
background-color: var(--
|
|
257
|
+
background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
|
|
260
258
|
}
|
|
261
259
|
|
|
262
260
|
SCell[theme='warning'] {
|
|
263
|
-
background-color: var(--
|
|
261
|
+
background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
|
|
264
262
|
}
|
|
265
263
|
|
|
266
264
|
SCell[theme='danger'] {
|
|
267
|
-
background-color: var(--
|
|
265
|
+
background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
|
|
268
266
|
}
|
|
269
267
|
|
|
270
268
|
SScrollAreaBar[orientation='horizontal'] {
|
|
271
269
|
position: sticky;
|
|
272
270
|
bottom: 0;
|
|
273
271
|
left: 0;
|
|
274
|
-
margin-top: -12px;
|
|
272
|
+
margin-top: calc(-1 * var(--intergalactic-spacing-3x, 12px));
|
|
275
273
|
z-index: 2;
|
|
276
274
|
}
|
|
277
275
|
|
|
@@ -280,8 +278,8 @@ SScrollAreaBar[orientation='vertical'] {
|
|
|
280
278
|
}
|
|
281
279
|
|
|
282
280
|
SScrollAreaBar[orientation='horizontal'] {
|
|
283
|
-
margin-left: calc(var(--left) + 4px);
|
|
284
|
-
margin-right: calc(var(--right) + 4px);
|
|
281
|
+
margin-left: calc(var(--left) + var(--intergalactic-spacing-1x, 4px));
|
|
282
|
+
margin-right: calc(var(--right) + var(--intergalactic-spacing-1x, 4px));
|
|
285
283
|
width: calc(100% - var(--offsetSum) - 8px);
|
|
286
284
|
}
|
|
287
285
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/data-table",
|
|
3
3
|
"description": "Semrush DataTable Component",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.6.1",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@semcore/core": "^1.11",
|
|
42
|
-
"react": "16.8 - 18"
|
|
42
|
+
"react": "16.8 - 18",
|
|
43
|
+
"react-dom": "16.8 - 18"
|
|
43
44
|
},
|
|
44
45
|
"jest": {
|
|
45
46
|
"preset": "@semcore/jest-preset-ui"
|