@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 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.5] - 2022-12-09
5
+ ## [3.6.1] - 2022-12-13
6
6
 
7
7
  ### Changed
8
8
 
9
- - Version patch update due to children dependencies update (`@semcore/scroll-area` [4.1.5 ~> 4.1.6]).
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
- ".___SShadowHorizontal_16ehr_gg_:before{left:var(--left_16ehr)!important}.___SShadowHorizontal_16ehr_gg_:after{right:var(--right_16ehr)!important}.___SContainer_16ehr_gg_.__disabledScroll_16ehr_gg_{overflow:visible}"
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
- , "16ehr_gg_")
76
+ , "6jmlb_gg_")
77
77
  /*__reshadow_css_end__*/
78
78
  , {
79
- "__SShadowHorizontal": "___SShadowHorizontal_16ehr_gg_",
80
- "--left": "--left_16ehr",
81
- "--right": "--right_16ehr",
82
- "__SContainer": "___SContainer_16ehr_gg_",
83
- "_disabledScroll": "__disabledScroll_16ehr_gg_"
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
 
@@ -69,46 +69,44 @@ var style = (
69
69
  /*__reshadow_css_start__*/
70
70
  _core.sstyled.insert(
71
71
  /*__inner_css_start__*/
72
- ".___SDataTable_1h8o7_gg_{position:relative}.___SHeadWrapper_1h8o7_gg_{position:relative}.___SHeadWrapper_1h8o7_gg_.__sticky_1h8o7_gg_{position:sticky;top:0;z-index:2}.___SHead_1h8o7_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_1h8o7_gg_{display:flex;align-items:center;flex-grow:1;font-size:12px;color:#191b23;box-sizing:border-box;position:relative}.___SColumn_1h8o7_gg_:focus{outline:none;box-shadow:0 0 0 3px rgba(0, 143, 248, 0.3)}.___SColumn_1h8o7_gg_.__hidden_1h8o7_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_1h8o7_gg_._use_primary_1h8o7_gg_{padding:12px;border-right:1px solid #e0e1e9;border-bottom:1px solid #e0e1e9;background-color:#f4f5f9}.___SColumn_1h8o7_gg_._use_secondary_1h8o7_gg_{padding:8px;border-bottom:1px solid #a9abb6;background-color:#ffffff}.___SColumn_1h8o7_gg_.__use_1h8o7_gg_:last-child{border-right:none}.___SColumn_1h8o7_gg_.__group_1h8o7_gg_.__use_1h8o7_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_1h8o7_gg_.__groupHead_1h8o7_gg_.__use_1h8o7_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_1h8o7_gg_.__groupHead_1h8o7_gg_._use_primary_1h8o7_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_1h8o7_gg_.__groupHead_1h8o7_gg_._use_secondary_1h8o7_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_1h8o7_gg_.__sortable_1h8o7_gg_{cursor:pointer}.___SColumn_1h8o7_gg_.__sortable_1h8o7_gg_._use_primary_1h8o7_gg_:hover{background-color:#e0e1e9}.___SColumn_1h8o7_gg_.__active_1h8o7_gg_._use_primary_1h8o7_gg_{background-color:#e0e1e9}.___SColumn_1h8o7_gg_.__resizable_1h8o7_gg_:hover:after{background:#e0e1e9}.___SColumn_1h8o7_gg_.__resizable_1h8o7_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_1h8o7_gg_.__fixed_1h8o7_gg_{position:sticky;z-index:2}.___SSortIcon_1h8o7_gg_{fill:#a9abb6;margin-left:6px}.___SSortIcon_1h8o7_gg_.__active_1h8o7_gg_{fill:#8a8e9b}.___SBodyWrapper_1h8o7_gg_{position:relative}.___SBody_1h8o7_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_1h8o7_gg_{display:flex;flex-direction:row;position:relative}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#f0f0f4}.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#f2f3f4}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_muted_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#f6f7f7}.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#e9f7ff}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_info_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#c4e5fe}.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#dbfee8}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_success_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#9ef2c9}.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#fff3d9}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_warning_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#ffdca2}.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#fff0f7}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_danger_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#ffd7df}.___SRow_1h8o7_gg_.__positioned_1h8o7_gg_{position:absolute}.___SCell_1h8o7_gg_{display:flex;flex:1;flex-basis:auto;font-size:14px;line-height:1.42;color:#191b23;box-sizing:border-box;border-bottom:1px solid #e0e1e9;overflow:hidden;white-space:nowrap}.___SCell_1h8o7_gg_._use_primary_1h8o7_gg_{padding:12px;min-height:45px;background-color:#ffffff}.___SCell_1h8o7_gg_._use_secondary_1h8o7_gg_{padding:8px;min-height:37px;background-color:#ffffff}.___SCell_1h8o7_gg_.__fixed_1h8o7_gg_{position:sticky;z-index:1}.___SCell_1h8o7_gg_._theme_muted_1h8o7_gg_{background-color:#f2f3f4}.___SCell_1h8o7_gg_._theme_info_1h8o7_gg_{background-color:#e9f7ff}.___SCell_1h8o7_gg_._theme_success_1h8o7_gg_{background-color:#dbfee8}.___SCell_1h8o7_gg_._theme_warning_1h8o7_gg_{background-color:#fff3d9}.___SCell_1h8o7_gg_._theme_danger_1h8o7_gg_{background-color:#fff0f7}.___SScrollAreaBar_1h8o7_gg_._orientation_horizontal_1h8o7_gg_{position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_1h8o7_gg_._orientation_vertical_1h8o7_gg_{width:12px}.___SScrollAreaBar_1h8o7_gg_._orientation_horizontal_1h8o7_gg_{margin-left:calc(var(--left_1h8o7) + 4px);margin-right:calc(var(--right_1h8o7) + 4px);width:calc(100% - var(--offsetSum_1h8o7) - 8px)}.___SHeightHold_1h8o7_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
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
- , "1h8o7_gg_")
74
+ , "fe34n_gg_")
75
75
  /*__reshadow_css_end__*/
76
76
  , {
77
- "__SDataTable": "___SDataTable_1h8o7_gg_",
78
- "__SHeadWrapper": "___SHeadWrapper_1h8o7_gg_",
79
- "_sticky": "__sticky_1h8o7_gg_",
80
- "__SHead": "___SHead_1h8o7_gg_",
81
- "__SColumn": "___SColumn_1h8o7_gg_",
82
- "_hidden": "__hidden_1h8o7_gg_",
83
- "_use_primary": "_use_primary_1h8o7_gg_",
84
- "_use_secondary": "_use_secondary_1h8o7_gg_",
85
- "_use": "__use_1h8o7_gg_",
86
- "_group": "__group_1h8o7_gg_",
87
- "_groupHead": "__groupHead_1h8o7_gg_",
88
- "_sortable": "__sortable_1h8o7_gg_",
89
- "_active": "__active_1h8o7_gg_",
90
- "_resizable": "__resizable_1h8o7_gg_",
91
- "_fixed": "__fixed_1h8o7_gg_",
92
- "__SSortIcon": "___SSortIcon_1h8o7_gg_",
93
- "__SBodyWrapper": "___SBodyWrapper_1h8o7_gg_",
94
- "__SBody": "___SBody_1h8o7_gg_",
95
- "__SRow": "___SRow_1h8o7_gg_",
96
- "__SCell": "___SCell_1h8o7_gg_",
97
- "_theme": "__theme_1h8o7_gg_",
98
- "__SGroupCell": "___SGroupCell_1h8o7_gg_",
99
- "_theme_muted": "_theme_muted_1h8o7_gg_",
100
- "_theme_info": "_theme_info_1h8o7_gg_",
101
- "_theme_success": "_theme_success_1h8o7_gg_",
102
- "_theme_warning": "_theme_warning_1h8o7_gg_",
103
- "_theme_danger": "_theme_danger_1h8o7_gg_",
104
- "_positioned": "__positioned_1h8o7_gg_",
105
- "__SScrollAreaBar": "___SScrollAreaBar_1h8o7_gg_",
106
- "_orientation_horizontal": "_orientation_horizontal_1h8o7_gg_",
107
- "_orientation_vertical": "_orientation_vertical_1h8o7_gg_",
108
- "--left": "--left_1h8o7",
109
- "--right": "--right_1h8o7",
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',
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAFA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AASA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,uBAAwE,GAAG;EAC/EC,IAAI,EAAE,KADyE;EAE/EC,GAAG,EAAE;AAF0E,CAAjF;AAIA,IAAMC,sBAAqC,GAAG,MAA9C;AAEA,IAAMC,SAAS,GAAGC,MAAM,CAAC,WAAD,CAAxB;;AAEA,IAAMC,SAAS,GAAG,OAAlB;;AAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,IAAD,EAAkB;EAC7C,mBAAYA,IAAI,CAACC,OAAL,CAAaH,SAAb,EAAwB,GAAxB,CAAZ;AACD,CAFD;;IAoHMI,mB;;;;;EAkBJ,6BAAYC,KAAZ,EAA4B;IAAA;;IAAA;IAC1B,0BAAMA,KAAN;IAD0B,4FANR,EAMQ;IAAA,0GAJjBC,iBAAA,CAAMC,SAAN,EAIiB;IAAA,kGAHsC,IAGtC;IAAA,kGAFsC,IAEtC;IAAA,qGAST,UAACL,IAAD,EAAeM,KAAf,EAA2C;MAC5D,IAAMC,MAAM,GAAG,MAAKC,OAAL,CAAaC,IAAb,CAAkB,UAACF,MAAD;QAAA,OAAYA,MAAM,CAACP,IAAP,KAAgBA,IAA5B;MAAA,CAAlB,CAAf;;MACA,OAAO,IAAAU,gBAAA,kDAEL,cAFK,EAGL,CACEH,MAAM,CAACP,IADT,EAEEO,MAAM,CAACI,MAAP,GAAgBnB,uBAAuB,CAACe,MAAM,CAACK,aAAR,CAAvC,GAAgEL,MAAM,CAACK,aAFzE,CAHK,EAOLN,KAPK,CAAP;IASD,CApB2B;IAAA,kGAsBZ,YAAM;MACpB,MAAKO,WAAL;IACD,CAxB2B;IAAA,+FA0Bf,YAAM;MAAA;;MACjB,wBAAKC,QAAL,2FAAeC,OAAf,gFAAwBC,cAAxB,CAAuC;QACrCC,KAAK,EAAE,SAD8B;QAErCC,MAAM,EAAE,SAF6B;QAGrCC,QAAQ,EAAE;MAH2B,CAAvC;IAKD,CAhC2B;IAG1B,IAAMd,SAAS,GAAG,IAAAe,sBAAA,GAAlB,CAH0B,CAI1B;;IACA,MAAKC,aAAL,GAAqBhB,SAAS,CAAC,MAAD,CAA9B;IACA,MAAKiB,aAAL,GAAqBjB,SAAS,CAAC,MAAD,CAA9B;IAN0B;EAO3B;;;;WA2BD,qBAAYG,OAAZ,EAA+B;MAAA,2CACRA,OADQ;MAAA;;MAAA;QAC7B,oDAA8B;UAAA,IAAnBD,OAAmB;;UAC5B,IAAIA,OAAM,CAACgB,MAAX,EAAmB;YAAA;;YACjB,+BAAKT,QAAL,CAAcC,OAAd,kFAAuBS,KAAvB,CAA6BC,WAA7B,CAAyClB,OAAM,CAACmB,QAAhD,YAA6DnB,OAAM,CAACoB,KAApE;UACD;QACF;MAL4B;QAAA;MAAA;QAAA;MAAA;IAM9B;;;WAED,2BACEC,QADF,EAGE;MAAA;;MAAA,IADAC,OACA,uEADwC;QAAEC,KAAK,EAAEC;MAAT,CACxC;MACA,IAAQC,IAAR,GAAiB,KAAKC,OAAtB,CAAQD,IAAR;MACA,IAAME,eAAyB,GAAG,EAAlC;;MACA9B,iBAAA,CAAM+B,QAAN,CAAeC,OAAf,CAAuBR,QAAvB,EAAiC,UAACS,KAAD,EAAW;QAAA;;QAC1C,IAAI,eAACjC,iBAAA,CAAMkC,cAAN,CAAqBD,KAArB,CAAL,EAAkC;QAClC,IAAIA,KAAK,CAACE,IAAN,KAAeC,eAAe,CAACC,MAAnC,EAA2C;QAE3C,YAQIJ,KAAK,CAAClC,KARV;QAAA,IACEyB,QADF,SACEA,QADF;QAAA,IAEE5B,IAFF,SAEEA,IAFF;QAAA,wBAGE8B,KAHF;QAAA,IAGEA,KAHF,4BAGUD,OAAO,CAACC,KAHlB;QAAA,IAIEY,SAJF,SAIEA,SAJF;QAAA,IAKEC,QALF,SAKEA,QALF;QAAA,IAMEC,IANF,SAMEA,IANF;QAAA,IAOKzC,KAPL;QASA,IAAM0C,OAAO,GAAG,CAAC7C,IAAjB;QACA,IAAIQ,OAAJ;;QAEA,IAAIqC,OAAJ,EAAa;UACXrC,OAAO,GAAG,MAAI,CAACsC,iBAAL,CAAuBlB,QAAvB,EAAiC;YAAEE,KAAK,EAALA;UAAF,CAAjC,CAAV;UACA9B,IAAI,GAAG,IAAA+C,qBAAA,EAAevC,OAAf,EACJwC,GADI,CACA;YAAA,IAAGhD,IAAH,SAAGA,IAAH;YAAA,OAAcA,IAAd;UAAA,CADA,EAEJiD,IAFI,CAEC,GAFD,CAAP;UAGA,IAAI,CAACzC,OAAO,CAAC0C,MAAb,EAAqB;UACrBtB,QAAQ,GAAGxB,iBAAA,CAAM+B,QAAN,CAAegB,OAAf,CAAuBvB,QAAvB,EAAiCwB,MAAjC,CACT,UAACf,KAAD;YAAA,OAAW,EAAE,cAAAjC,iBAAA,CAAMkC,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,eAAe,CAACC,MAAhE,CAAX;UAAA,CADS,CAAX;QAGD;;QAED,IAAMlC,MAAM,GAAG,MAAI,CAACC,OAAL,CAAaC,IAAb,CAAkB,UAACF,MAAD;UAAA,OAAYA,MAAM,CAACP,IAAP,KAAgBA,IAA5B;QAAA,CAAlB,CAAf;;QAEA,IAAMqD,cAAc,GAAG;UACrB,IAAI1B,KAAJ,GAAY;YAAA;;YACV,OAAO,+BAAKxB,KAAL,CAAWmD,GAAX,CAAevC,OAAf,gFAAwBwC,qBAAxB,GAAgD5B,KAAhD,KAAyD,CAAhE;UACD,CAHoB;;UAIrB3B,IAAI,EAAJA,IAJqB;UAKrB0B,QAAQ,EAAE3B,oBAAoB,CAACC,IAAD,CALT;UAMrBuB,MAAM,EAAEqB,IAAI,KAAK,SANI;UAOrBd,KAAK,EAALA,KAPqB;UAQrBY,SAAS,EAATA,SARqB;UASrB/B,MAAM,EAAEqB,IAAI,CAAC,CAAD,CAAJ,KAAYhC,IATC;UAUrB2C,QAAQ,EAARA,QAVqB;UAWrB/B,aAAa,EACXoB,IAAI,CAAC,CAAD,CAAJ,KAAYhC,IAAZ,GACIgC,IAAI,CAAC,CAAD,CADR,GAEI,CAAAzB,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEK,aAAR,MACC,OAAO+B,QAAP,IAAmB,QAAnB,GAA8BA,QAA9B,GAAyChD,sBAD1C,CAde;UAgBrBQ,KAAK;YACHH,IAAI,EAAJA,IADG;YAEH4C,IAAI,EAAEA,IAAI,KAAK,SAAT,GAAqBb,SAArB,GAAiCa;UAFpC,GAGAzC,KAHA;YAIH;YACAqD,UAAU,EAAEnB,KAAK,CAACiB,GALf;YAMH1B,QAAQ,EAARA,QANG;YAOH0B,GAAG,EAAE,CAAA/C,MAAM,SAAN,IAAAA,MAAM,WAAN,6BAAAA,MAAM,CAAEJ,KAAR,gEAAemD,GAAf,kBAAsBlD,iBAAA,CAAMC,SAAN;UAPxB;QAhBgB,CAAvB;;QA2BA,IAAIG,OAAJ,EAAa;UACX6C,cAAc,CAAC7C,OAAf,GAAyBA,OAAzB;QACD;;QACD0B,eAAe,CAACuB,IAAhB,CAAqBJ,cAArB;MACD,CA5DD;;MA6DA,OAAOnB,eAAP;IACD;;;WAED,sBAAa/B,KAAb,EAAiC;MAC/B,IAAQuD,GAAR,GAAgB,KAAKzB,OAArB,CAAQyB,GAAR;MACA,IAAMxB,eAAe,GAAG,KAAKY,iBAAL,CAAuB3C,KAAK,CAACyB,QAA7B,CAAxB;MACA,KAAKpB,OAAL,GAAe,IAAAuC,qBAAA,EAAeb,eAAf,CAAf;MACA,OAAO;QACLyB,YAAY,EAAE,IAAAC,kCAAA,EAAqB,KAAKC,gBAA1B,EAA4C,KAAKC,UAAjD,CADT;QAEL5B,eAAe,EAAfA,eAFK;QAGLwB,GAAG,EAAHA,GAHK;QAILK,QAAQ,EAAE,KAAKC,aAJV;QAKLC,UAAU,EAAE,KAAK3C;MALZ,CAAP;IAOD;;;WAED,sBAAanB,KAAb,EAAiC;MAC/B,oBAAiC,KAAK8B,OAAtC;MAAA,IAAQiC,IAAR,iBAAQA,IAAR;MAAA,IAAcR,GAAd,iBAAcA,GAAd;MAAA,IAAmBS,SAAnB,iBAAmBA,SAAnB;MAEA,IAAMC,eAAuD,GAAG,EAAhE;MACA,IAAMC,cAA4B,GAAG,EAArC;;MAEAjE,iBAAA,CAAM+B,QAAN,CAAeC,OAAf,CAAuBjC,KAAK,CAACyB,QAA7B,EAAuC,UAACS,KAAD,EAAW;QAChD,kBAAIjC,iBAAA,CAAMkC,cAAN,CAAqBD,KAArB,CAAJ,EAAiC;UAC/B,YAAqCA,KAAK,CAAClC,KAA3C;UAAA,IAAQH,IAAR,SAAQA,IAAR;UAAA,IAAc4B,QAAd,SAAcA,QAAd;UAAA,IAA2B0C,KAA3B;;UAIA,IAAIjC,KAAK,CAACE,IAAN,KAAeC,eAAe,CAAC+B,IAA/B,IAAuCvE,IAA3C,EAAiD;YAC/CA,IAAI,CAACwE,KAAL,CAAW,GAAX,EAAgBpC,OAAhB,CAAwB,UAACpC,IAAD,EAAU;cAChCoE,eAAe,CAACpE,IAAD,CAAf,GAAwBoE,eAAe,CAACpE,IAAD,CAAf,IAAyB,EAAjD;cACAoE,eAAe,CAACpE,IAAD,CAAf,CAAsByD,IAAtB,iCACKa,KADL;gBAEEG,mBAAmB,EAAE7C;cAFvB;YAID,CAND;UAOD;;UACD,IAAIS,KAAK,CAACE,IAAN,KAAeC,eAAe,CAACkC,GAAnC,EAAwC;YACtCL,cAAc,CAACZ,IAAf,iCACKa,KADL;cAEEG,mBAAmB,EAAE7C;YAFvB;UAID;QACF;MACF,CAtBD;;MAwBA,OAAO;QACLpB,OAAO,EAAE,KAAKA,OADT;QAELmE,IAAI,EAAE,KAAKC,UAAL,CAAgBV,IAAhB,EAAsBE,eAAtB,CAFD;QAGLD,SAAS,EAATA,SAHK;QAILT,GAAG,EAAHA,GAJK;QAKLW,cAAc,EAAdA,cALK;QAMLJ,UAAU,EAAE,KAAK5C;MANZ,CAAP;IAQD;;;WAED,oBAAW6C,IAAX,EAA4BE,eAA5B,EAAqF;MAAA;;MACnF,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAACX,IAAD,EAAkBY,OAAlB;QAAA,OAChBZ,IAAI,CAAClB,GAAL,CAAS,UAAC+B,GAAD,EAAS;UAChB,IAAMC,WAKL,GAAG,EALJ;UAMA,IAAMC,cAA8C,GAAG,EAAvD;UACA,IAAMC,gBAAgD,GAAG,EAAzD;;UACA,KAAK,IAAMC,MAAX,IAAqBJ,GAArB,EAA0B;YACxB,IAAMK,WAAW,GAAGD,MAAM,CAACX,KAAP,CAAa,GAAb,CAApB;;YACA,IAAIY,WAAW,CAAClC,MAAZ,IAAsB,CAA1B,EAA6B;cAAA,4CACNkC,WADM;cAAA;;cAAA;gBAC3B,uDAAkC;kBAAA,IAAvB7E,QAAuB;kBAChCyE,WAAW,CAACzE,QAAD,CAAX,GAAsB;oBACpB0E,cAAc,EAAEG,WADI;oBAEpBC,SAAS,EAAEN,GAAG,CAACI,MAAD;kBAFM,CAAtB;kBAIAF,cAAc,CAACE,MAAD,CAAd,GAAyB,IAAzB;gBACD;cAP0B;gBAAA;cAAA;gBAAA;cAAA;YAQ5B,CARD,MAQO;cACLD,gBAAgB,CAACC,MAAD,CAAhB,GAA2B,IAA3B;YACD;UACF;;UACD,IAAMG,SAAS,GAAGP,GAAG,CAACnF,SAAD,CAAH,IAAkB,EAApC;UACA,IAAM2F,gBAAgB,GAAGC,MAAM,CAACC,WAAP,CACvBH,SAAS,CACNtC,GADH,CACO,UAAC0C,MAAD;YAAA,OAAYF,MAAM,CAACG,IAAP,CAAYD,MAAZ,CAAZ;UAAA,CADP,EAEGE,IAFH,GAGG5C,GAHH,CAGO,UAAC6C,GAAD;YAAA,OAAS,CAACA,GAAD,EAAM,IAAN,CAAT;UAAA,CAHP,CADuB,CAAzB;UAOA,IAAIhD,OAAO,GAAG,KAAd;;UAEA,IAAMiD,KAAkB,GAAG,MAAI,CAACtF,OAAL,CACxBwC,GADwB,CACpB,UAACzC,MAAD,EAAY;YACf,IAAIyE,WAAW,CAACzE,MAAM,CAACP,IAAR,CAAf,EAA8B;cAC5B,4BAAsCgF,WAAW,CAACzE,MAAM,CAACP,IAAR,CAAjD;cAAA,IAAQiF,eAAR,yBAAQA,cAAR;cAAA,IAAwBI,SAAxB,yBAAwBA,SAAxB;;cACA,IAAIJ,eAAc,CAAC,CAAD,CAAd,KAAsB1E,MAAM,CAACP,IAAjC,EAAuC;gBACrC,OAAO;kBACLA,IAAI,EAAEiF,eAAc,CAAChC,IAAf,CAAoB,GAApB,CADD;kBAEL8C,MAAM,EAAEd,eAAc,CAACjC,GAAf,CAAmBjD,oBAAnB,CAFH;kBAGL+B,KAAK,EAAEvB,MAAM,CAACuB,KAHT;kBAILoC,IAAI,EAAEmB,SAJD;kBAKLjB,eAAe,EAAEA,eAAe,CAAC7D,MAAM,CAACP,IAAR,CAAf,IAAgC;gBAL5C,CAAP;cAOD;YACF,CAXD,MAWO,IAAIO,MAAM,CAACP,IAAP,IAAe+E,GAAnB,EAAwB;cAC7B,OAAO;gBACL/E,IAAI,EAAEO,MAAM,CAACP,IADR;gBAEL+F,MAAM,EAAExF,MAAM,CAACmB,QAFV;gBAGLI,KAAK,EAAEvB,MAAM,CAACuB,KAHT;gBAILoC,IAAI,EAAEa,GAAG,CAACxE,MAAM,CAACP,IAAR,CAJJ;gBAKLoE,eAAe,EAAEA,eAAe,CAAC7D,MAAM,CAACP,IAAR,CAAf,IAAgC;cAL5C,CAAP;YAOD,CARM,MAQA,IAAI,CAAC6C,OAAD,IAAY0C,gBAAgB,CAAChF,MAAM,CAACP,IAAR,CAAhC,EAA+C;cACpD;cACA6C,OAAO,GAAG,IAAV;cACA,OAAOgC,SAAS,CAACS,SAAD,kCACXJ,gBADW,GAEXD,cAFW,EAAhB;YAID,CAPM,MAOA,IAAI,CAACH,OAAO,CAACvE,MAAM,CAACP,IAAR,CAAR,IAAyB,CAACuF,gBAAgB,CAAChF,MAAM,CAACP,IAAR,CAA9C,EAA6D;cAClE,OAAO;gBACLA,IAAI,EAAEO,MAAM,CAACP,IADR;gBAEL+F,MAAM,EAAExF,MAAM,CAACmB,QAFV;gBAGLI,KAAK,EAAEvB,MAAM,CAACuB,KAHT;gBAILoC,IAAI,EAAE,IAJD;gBAKLE,eAAe,EAAEA,eAAe,CAAC7D,MAAM,CAACP,IAAR,CAAf,IAAgC;cAL5C,CAAP;YAOD;UACF,CArCwB,EAsCxBoD,MAtCwB,CAsCjB,UAAC7C,MAAD;YAAA,OAAYA,MAAM,KAAKwB,SAAvB;UAAA,CAtCiB,EAuCxBiB,GAvCwB,CAuCpB,UAACzC,MAAD;YAAA,OAAYA,MAAZ;UAAA,CAvCoB,CAA3B;;UAyCAuF,KAAK,CAACE,WAAN,GAAoBjB,GAApB;UACA,OAAOe,KAAP;QACD,CA5ED,CADgB;MAAA,CAAlB;;MA+EA,OAAOjB,SAAS,CAACX,IAAD,EAAO,EAAP,CAAhB;IACD;;;WAED,8BAAqB;MACnB,KAAK+B,WAAL,CAAiB,KAAKzF,OAAtB;IACD;;;WAED,kBAAS;MAAA;MAAA;;MACP,IAAM0F,UAAU,GAKJC,YALZ;MACA,qBAAmC,KAAKlE,OAAxC;MAAA,IAAQE,QAAR,kBAAQA,QAAR;MAAA,IAAkBiE,MAAlB,kBAAkBA,MAAlB;MAAA,IAA0BlC,IAA1B,kBAA0BA,IAA1B;MAEA,eAAO,IAAAmC,aAAA,EAAQD,MAAR,CAAP,eACE,gCAAC,UAAD;QAAA,kBAEkB,CAAC,MAAD,CAFlB;QAAA,OAGO,KAAKtF,QAHZ;QAAA,QAIO,OAJP;QAAA,iBAKiB,CAACoD,IAAD,aAACA,IAAD,cAACA,IAAD,GAAS,EAAT,EAAahB;MAL9B,yBAOE,gCAAC,QAAD,2BAPF,CADF;IAWD;;;EA7R+BoD,e;;iCAA5BpG,mB,iBACiB,iB;iCADjBA,mB,WAGWsB,K;iCAHXtB,mB,kBAKkB;EACpBwD,GAAG,EAAE,SADe;EAEpBS,SAAS,EAAE,IAFS;EAGpBnC,IAAI,EAAE,EAHc;EAIpBkC,IAAI,EAAE;AAJc,C;;AAgSxB,SAASqC,mBAAT,GAA+B;EAC7B,OAAO,IAAP;AACD;;AAED,IAAM/D,eAAe,GAAG,IAAAgE,gBAAA,EACtBtG,mBADsB,EAEtB;EACEuG,IAAI,EAAJA,gBADF;EAEEC,IAAI,EAAJA,gBAFF;EAGEjE,MAAM,EAAE8D,mBAHV;EAIEhC,IAAI,EAAEgC,mBAJR;EAKE7B,GAAG,EAAE6B;AALP,CAFsB,EAStB,EATsB,CAAxB;eAmBe/D,e"}
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
- ".___SShadowHorizontal_16ehr_gg_:before{left:var(--left_16ehr)!important}.___SShadowHorizontal_16ehr_gg_:after{right:var(--right_16ehr)!important}.___SContainer_16ehr_gg_.__disabledScroll_16ehr_gg_{overflow:visible}"
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
- , "16ehr_gg_")
63
+ , "6jmlb_gg_")
64
64
  /*__reshadow_css_end__*/
65
65
  , {
66
- "__SShadowHorizontal": "___SShadowHorizontal_16ehr_gg_",
67
- "--left": "--left_16ehr",
68
- "--right": "--right_16ehr",
69
- "__SContainer": "___SContainer_16ehr_gg_",
70
- "_disabledScroll": "__disabledScroll_16ehr_gg_"
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(--gray-800);
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(--gray-100);
50
- border-bottom: 1px solid var(--gray-100);
51
- background-color: var(--gray-50);
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(--gray-300);
57
- background-color: var(--white);
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(--gray-100);
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(--gray-100);
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(--gray-100);
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(--gray-100);
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(--gray-100);
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(--gray-300);
125
- margin-left: 6px;
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(--gray-400);
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: color-mod(var(--gray-100) blend(var(--white) 50%));
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: #f2f3f4;
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: #f6f7f7;
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(--blue-50);
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(--blue-100);
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(--green-50);
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(--green-100);
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(--orange-50);
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(--orange-100);
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(--red-50);
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(--red-100);
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(--gray-800);
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(--gray-100);
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(--white);
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(--white);
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: #f2f3f4;
249
+ background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
252
250
  }
253
251
 
254
252
  SCell[theme='info'] {
255
- background-color: var(--blue-50);
253
+ background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
256
254
  }
257
255
 
258
256
  SCell[theme='success'] {
259
- background-color: var(--green-50);
257
+ background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
260
258
  }
261
259
 
262
260
  SCell[theme='warning'] {
263
- background-color: var(--orange-50);
261
+ background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
264
262
  }
265
263
 
266
264
  SCell[theme='danger'] {
267
- background-color: var(--red-50);
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
- ".___SShadowHorizontal_16ehr_gg_:before{left:var(--left_16ehr)!important}.___SShadowHorizontal_16ehr_gg_:after{right:var(--right_16ehr)!important}.___SContainer_16ehr_gg_.__disabledScroll_16ehr_gg_{overflow:visible}"
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
- , "16ehr_gg_")
45
+ , "6jmlb_gg_")
46
46
  /*__reshadow_css_end__*/
47
47
  , {
48
- "__SShadowHorizontal": "___SShadowHorizontal_16ehr_gg_",
49
- "--left": "--left_16ehr",
50
- "--right": "--right_16ehr",
51
- "__SContainer": "___SContainer_16ehr_gg_",
52
- "_disabledScroll": "__disabledScroll_16ehr_gg_"
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';
@@ -40,46 +40,44 @@ var style = (
40
40
  /*__reshadow_css_start__*/
41
41
  _sstyled.insert(
42
42
  /*__inner_css_start__*/
43
- ".___SDataTable_1h8o7_gg_{position:relative}.___SHeadWrapper_1h8o7_gg_{position:relative}.___SHeadWrapper_1h8o7_gg_.__sticky_1h8o7_gg_{position:sticky;top:0;z-index:2}.___SHead_1h8o7_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_1h8o7_gg_{display:flex;align-items:center;flex-grow:1;font-size:12px;color:#191b23;box-sizing:border-box;position:relative}.___SColumn_1h8o7_gg_:focus{outline:none;box-shadow:0 0 0 3px rgba(0, 143, 248, 0.3)}.___SColumn_1h8o7_gg_.__hidden_1h8o7_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_1h8o7_gg_._use_primary_1h8o7_gg_{padding:12px;border-right:1px solid #e0e1e9;border-bottom:1px solid #e0e1e9;background-color:#f4f5f9}.___SColumn_1h8o7_gg_._use_secondary_1h8o7_gg_{padding:8px;border-bottom:1px solid #a9abb6;background-color:#ffffff}.___SColumn_1h8o7_gg_.__use_1h8o7_gg_:last-child{border-right:none}.___SColumn_1h8o7_gg_.__group_1h8o7_gg_.__use_1h8o7_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_1h8o7_gg_.__groupHead_1h8o7_gg_.__use_1h8o7_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_1h8o7_gg_.__groupHead_1h8o7_gg_._use_primary_1h8o7_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_1h8o7_gg_.__groupHead_1h8o7_gg_._use_secondary_1h8o7_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_1h8o7_gg_.__sortable_1h8o7_gg_{cursor:pointer}.___SColumn_1h8o7_gg_.__sortable_1h8o7_gg_._use_primary_1h8o7_gg_:hover{background-color:#e0e1e9}.___SColumn_1h8o7_gg_.__active_1h8o7_gg_._use_primary_1h8o7_gg_{background-color:#e0e1e9}.___SColumn_1h8o7_gg_.__resizable_1h8o7_gg_:hover:after{background:#e0e1e9}.___SColumn_1h8o7_gg_.__resizable_1h8o7_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_1h8o7_gg_.__fixed_1h8o7_gg_{position:sticky;z-index:2}.___SSortIcon_1h8o7_gg_{fill:#a9abb6;margin-left:6px}.___SSortIcon_1h8o7_gg_.__active_1h8o7_gg_{fill:#8a8e9b}.___SBodyWrapper_1h8o7_gg_{position:relative}.___SBody_1h8o7_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_1h8o7_gg_{display:flex;flex-direction:row;position:relative}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#f0f0f4}.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#f2f3f4}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_muted_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_muted_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#f6f7f7}.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#e9f7ff}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_info_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_info_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#c4e5fe}.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#dbfee8}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_success_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_success_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#9ef2c9}.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#fff3d9}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_warning_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_warning_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#ffdca2}.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#fff0f7}.___SRow_1h8o7_gg_:hover>.___SCell_1h8o7_gg_._theme_danger_1h8o7_gg_,.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_:hover>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_.__active_1h8o7_gg_>.___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_),.___SRow_1h8o7_gg_._theme_danger_1h8o7_gg_ .___SCell_1h8o7_gg_:hover+.___SGroupCell_1h8o7_gg_ .___SCell_1h8o7_gg_:not(.__theme_1h8o7_gg_){background-color:#ffd7df}.___SRow_1h8o7_gg_.__positioned_1h8o7_gg_{position:absolute}.___SCell_1h8o7_gg_{display:flex;flex:1;flex-basis:auto;font-size:14px;line-height:1.42;color:#191b23;box-sizing:border-box;border-bottom:1px solid #e0e1e9;overflow:hidden;white-space:nowrap}.___SCell_1h8o7_gg_._use_primary_1h8o7_gg_{padding:12px;min-height:45px;background-color:#ffffff}.___SCell_1h8o7_gg_._use_secondary_1h8o7_gg_{padding:8px;min-height:37px;background-color:#ffffff}.___SCell_1h8o7_gg_.__fixed_1h8o7_gg_{position:sticky;z-index:1}.___SCell_1h8o7_gg_._theme_muted_1h8o7_gg_{background-color:#f2f3f4}.___SCell_1h8o7_gg_._theme_info_1h8o7_gg_{background-color:#e9f7ff}.___SCell_1h8o7_gg_._theme_success_1h8o7_gg_{background-color:#dbfee8}.___SCell_1h8o7_gg_._theme_warning_1h8o7_gg_{background-color:#fff3d9}.___SCell_1h8o7_gg_._theme_danger_1h8o7_gg_{background-color:#fff0f7}.___SScrollAreaBar_1h8o7_gg_._orientation_horizontal_1h8o7_gg_{position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_1h8o7_gg_._orientation_vertical_1h8o7_gg_{width:12px}.___SScrollAreaBar_1h8o7_gg_._orientation_horizontal_1h8o7_gg_{margin-left:calc(var(--left_1h8o7) + 4px);margin-right:calc(var(--right_1h8o7) + 4px);width:calc(100% - var(--offsetSum_1h8o7) - 8px)}.___SHeightHold_1h8o7_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
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
- , "1h8o7_gg_")
45
+ , "fe34n_gg_")
46
46
  /*__reshadow_css_end__*/
47
47
  , {
48
- "__SDataTable": "___SDataTable_1h8o7_gg_",
49
- "__SHeadWrapper": "___SHeadWrapper_1h8o7_gg_",
50
- "_sticky": "__sticky_1h8o7_gg_",
51
- "__SHead": "___SHead_1h8o7_gg_",
52
- "__SColumn": "___SColumn_1h8o7_gg_",
53
- "_hidden": "__hidden_1h8o7_gg_",
54
- "_use_primary": "_use_primary_1h8o7_gg_",
55
- "_use_secondary": "_use_secondary_1h8o7_gg_",
56
- "_use": "__use_1h8o7_gg_",
57
- "_group": "__group_1h8o7_gg_",
58
- "_groupHead": "__groupHead_1h8o7_gg_",
59
- "_sortable": "__sortable_1h8o7_gg_",
60
- "_active": "__active_1h8o7_gg_",
61
- "_resizable": "__resizable_1h8o7_gg_",
62
- "_fixed": "__fixed_1h8o7_gg_",
63
- "__SSortIcon": "___SSortIcon_1h8o7_gg_",
64
- "__SBodyWrapper": "___SBodyWrapper_1h8o7_gg_",
65
- "__SBody": "___SBody_1h8o7_gg_",
66
- "__SRow": "___SRow_1h8o7_gg_",
67
- "__SCell": "___SCell_1h8o7_gg_",
68
- "_theme": "__theme_1h8o7_gg_",
69
- "__SGroupCell": "___SGroupCell_1h8o7_gg_",
70
- "_theme_muted": "_theme_muted_1h8o7_gg_",
71
- "_theme_info": "_theme_info_1h8o7_gg_",
72
- "_theme_success": "_theme_success_1h8o7_gg_",
73
- "_theme_warning": "_theme_warning_1h8o7_gg_",
74
- "_theme_danger": "_theme_danger_1h8o7_gg_",
75
- "_positioned": "__positioned_1h8o7_gg_",
76
- "__SScrollAreaBar": "___SScrollAreaBar_1h8o7_gg_",
77
- "_orientation_horizontal": "_orientation_horizontal_1h8o7_gg_",
78
- "_orientation_vertical": "_orientation_vertical_1h8o7_gg_",
79
- "--left": "--left_1h8o7",
80
- "--right": "--right_1h8o7",
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',
@@ -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
- ".___SShadowHorizontal_16ehr_gg_:before{left:var(--left_16ehr)!important}.___SShadowHorizontal_16ehr_gg_:after{right:var(--right_16ehr)!important}.___SContainer_16ehr_gg_.__disabledScroll_16ehr_gg_{overflow:visible}"
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
- , "16ehr_gg_")
39
+ , "6jmlb_gg_")
40
40
  /*__reshadow_css_end__*/
41
41
  , {
42
- "__SShadowHorizontal": "___SShadowHorizontal_16ehr_gg_",
43
- "--left": "--left_16ehr",
44
- "--right": "--right_16ehr",
45
- "__SContainer": "___SContainer_16ehr_gg_",
46
- "_disabledScroll": "__disabledScroll_16ehr_gg_"
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(--gray-800);
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(--gray-100);
50
- border-bottom: 1px solid var(--gray-100);
51
- background-color: var(--gray-50);
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(--gray-300);
57
- background-color: var(--white);
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(--gray-100);
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(--gray-100);
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(--gray-100);
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(--gray-100);
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(--gray-100);
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(--gray-300);
125
- margin-left: 6px;
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(--gray-400);
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: color-mod(var(--gray-100) blend(var(--white) 50%));
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: #f2f3f4;
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: #f6f7f7;
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(--blue-50);
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(--blue-100);
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(--green-50);
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(--green-100);
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(--orange-50);
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(--orange-100);
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(--red-50);
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(--red-100);
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(--gray-800);
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(--gray-100);
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(--white);
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(--white);
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: #f2f3f4;
249
+ background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
252
250
  }
253
251
 
254
252
  SCell[theme='info'] {
255
- background-color: var(--blue-50);
253
+ background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
256
254
  }
257
255
 
258
256
  SCell[theme='success'] {
259
- background-color: var(--green-50);
257
+ background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
260
258
  }
261
259
 
262
260
  SCell[theme='warning'] {
263
- background-color: var(--orange-50);
261
+ background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
264
262
  }
265
263
 
266
264
  SCell[theme='danger'] {
267
- background-color: var(--red-50);
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.5.5",
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"