@semcore/data-table 3.0.10 → 3.1.2

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.
@@ -26,7 +26,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
26
26
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
27
 
28
28
  import React from 'react';
29
- import createComponent, { Component, sstyled, Root } from '@semcore/core';
29
+ import createComponent, { Component, Root, sstyled } from '@semcore/core';
30
30
  import { Box } from '@semcore/flex-box';
31
31
  import syncScroll from '@semcore/utils/lib/syncScroll';
32
32
  import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
@@ -40,46 +40,46 @@ var style = (
40
40
  /*__reshadow_css_start__*/
41
41
  _sstyled.insert(
42
42
  /*__inner_css_start__*/
43
- ".___SDataTable_15uol_gg_{position:relative}.___SHeadWrapper_15uol_gg_{position:relative}.___SHeadWrapper_15uol_gg_.__sticky_15uol_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_15uol_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_15uol_gg_{display:flex;align-items:center;flex-grow:1;font-size:12px;color:#191b23;box-sizing:border-box;position:relative}.___SColumn_15uol_gg_:focus{outline:none;box-shadow:0 0 0 3px rgba(0, 143, 248, 0.2)}.___SColumn_15uol_gg_.__hidden_15uol_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_15uol_gg_._use_primary_15uol_gg_{padding:12px;border-right:1px solid #e0e1e9;border-bottom:1px solid #e0e1e9;background-color:#f4f5f9}.___SColumn_15uol_gg_._use_secondary_15uol_gg_{padding:8px;border-bottom:1px solid #a9abb6;background-color:#ffffff}.___SColumn_15uol_gg_.__use_15uol_gg_:last-child{border-right:none}.___SColumn_15uol_gg_.__group_15uol_gg_.__use_15uol_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_15uol_gg_.__groupHead_15uol_gg_.__use_15uol_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_15uol_gg_.__groupHead_15uol_gg_._use_primary_15uol_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_15uol_gg_.__groupHead_15uol_gg_._use_secondary_15uol_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_15uol_gg_.__sortable_15uol_gg_{cursor:pointer}.___SColumn_15uol_gg_.__sortable_15uol_gg_._use_primary_15uol_gg_:hover{background-color:#e0e1e9}.___SColumn_15uol_gg_.__active_15uol_gg_._use_primary_15uol_gg_{background-color:#e0e1e9}.___SColumn_15uol_gg_.__resizable_15uol_gg_:hover:after{background:#e0e1e9}.___SColumn_15uol_gg_.__resizable_15uol_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_15uol_gg_.__fixed_15uol_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_15uol_gg_{fill:#a9abb6;margin-left:6px}.___SSortIcon_15uol_gg_.__active_15uol_gg_{fill:#8a8e9b}.___SBodyWrapper_15uol_gg_{position:relative}.___SBody_15uol_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_15uol_gg_{display:flex;flex-direction:row;position:relative}.___SRow_15uol_gg_:hover>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_.__active_15uol_gg_>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_ .___SCell_15uol_gg_:hover+.___SGroupCell_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#f0f0f4}.___SRow_15uol_gg_._theme_muted_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#f2f3f4}.___SRow_15uol_gg_:hover>.___SCell_15uol_gg_._theme_muted_15uol_gg_,.___SRow_15uol_gg_._theme_muted_15uol_gg_:hover>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_muted_15uol_gg_.__active_15uol_gg_>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_muted_15uol_gg_ .___SCell_15uol_gg_:hover+.___SGroupCell_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#f6f7f7}.___SRow_15uol_gg_._theme_info_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#e9f7ff}.___SRow_15uol_gg_:hover>.___SCell_15uol_gg_._theme_info_15uol_gg_,.___SRow_15uol_gg_._theme_info_15uol_gg_:hover>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_info_15uol_gg_.__active_15uol_gg_>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_info_15uol_gg_ .___SCell_15uol_gg_:hover+.___SGroupCell_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#c4e5fe}.___SRow_15uol_gg_._theme_success_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#dbfee8}.___SRow_15uol_gg_:hover>.___SCell_15uol_gg_._theme_success_15uol_gg_,.___SRow_15uol_gg_._theme_success_15uol_gg_:hover>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_success_15uol_gg_.__active_15uol_gg_>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_success_15uol_gg_ .___SCell_15uol_gg_:hover+.___SGroupCell_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#9ef2c9}.___SRow_15uol_gg_._theme_warning_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#fff3d9}.___SRow_15uol_gg_:hover>.___SCell_15uol_gg_._theme_warning_15uol_gg_,.___SRow_15uol_gg_._theme_warning_15uol_gg_:hover>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_warning_15uol_gg_.__active_15uol_gg_>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_warning_15uol_gg_ .___SCell_15uol_gg_:hover+.___SGroupCell_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#ffdca2}.___SRow_15uol_gg_._theme_danger_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#fff0f7}.___SRow_15uol_gg_:hover>.___SCell_15uol_gg_._theme_danger_15uol_gg_,.___SRow_15uol_gg_._theme_danger_15uol_gg_:hover>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_danger_15uol_gg_.__active_15uol_gg_>.___SCell_15uol_gg_:not(.__theme_15uol_gg_),.___SRow_15uol_gg_._theme_danger_15uol_gg_ .___SCell_15uol_gg_:hover+.___SGroupCell_15uol_gg_ .___SCell_15uol_gg_:not(.__theme_15uol_gg_){background-color:#ffd7df}.___SRow_15uol_gg_.__positioned_15uol_gg_{position:absolute}.___SCell_15uol_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_15uol_gg_._use_primary_15uol_gg_{padding:12px;min-height:45px;background-color:#ffffff}.___SCell_15uol_gg_._use_secondary_15uol_gg_{padding:8px;min-height:37px;background-color:#ffffff}.___SCell_15uol_gg_.__fixed_15uol_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_15uol_gg_._theme_muted_15uol_gg_{background-color:#f2f3f4}.___SCell_15uol_gg_._theme_info_15uol_gg_{background-color:#e9f7ff}.___SCell_15uol_gg_._theme_success_15uol_gg_{background-color:#dbfee8}.___SCell_15uol_gg_._theme_warning_15uol_gg_{background-color:#fff3d9}.___SCell_15uol_gg_._theme_danger_15uol_gg_{background-color:#fff0f7}.___SScrollAreaBar_15uol_gg_._orientation_horizontal_15uol_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_15uol_gg_._orientation_vertical_15uol_gg_{width:12px}.___SScrollAreaBar_15uol_gg_._orientation_horizontal_15uol_gg_{margin-left:calc(var(--left_6ys8u7) + 4px);margin-right:calc(var(--right_6ys8u7) + 4px);width:calc(100% - var(--offsetSum_6ys8u7) - 8px)}.___SHeightHold_15uol_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
43
+ ".___SDataTable_k33va_gg_{position:relative}.___SHeadWrapper_k33va_gg_{position:relative}.___SHeadWrapper_k33va_gg_.__sticky_k33va_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_k33va_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_k33va_gg_{display:flex;align-items:center;flex-grow:1;font-size:12px;color:#191b23;box-sizing:border-box;position:relative}.___SColumn_k33va_gg_:focus{outline:none;box-shadow:0 0 0 3px rgba(0, 143, 248, 0.2)}.___SColumn_k33va_gg_.__hidden_k33va_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_k33va_gg_._use_primary_k33va_gg_{padding:12px;border-right:1px solid #e0e1e9;border-bottom:1px solid #e0e1e9;background-color:#f4f5f9}.___SColumn_k33va_gg_._use_secondary_k33va_gg_{padding:8px;border-bottom:1px solid #a9abb6;background-color:#ffffff}.___SColumn_k33va_gg_.__use_k33va_gg_:last-child{border-right:none}.___SColumn_k33va_gg_.__group_k33va_gg_.__use_k33va_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_k33va_gg_.__groupHead_k33va_gg_.__use_k33va_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_k33va_gg_.__groupHead_k33va_gg_._use_primary_k33va_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_k33va_gg_.__groupHead_k33va_gg_._use_secondary_k33va_gg_{border-bottom:1px solid #e0e1e9}.___SColumn_k33va_gg_.__sortable_k33va_gg_{cursor:pointer}.___SColumn_k33va_gg_.__sortable_k33va_gg_._use_primary_k33va_gg_:hover{background-color:#e0e1e9}.___SColumn_k33va_gg_.__active_k33va_gg_._use_primary_k33va_gg_{background-color:#e0e1e9}.___SColumn_k33va_gg_.__resizable_k33va_gg_:hover:after{background:#e0e1e9}.___SColumn_k33va_gg_.__resizable_k33va_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_k33va_gg_.__fixed_k33va_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_k33va_gg_{fill:#a9abb6;margin-left:6px}.___SSortIcon_k33va_gg_.__active_k33va_gg_{fill:#8a8e9b}.___SBodyWrapper_k33va_gg_{position:relative}.___SBody_k33va_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_k33va_gg_{display:flex;flex-direction:row;position:relative}.___SRow_k33va_gg_:hover>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_.__active_k33va_gg_>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_ .___SCell_k33va_gg_:hover+.___SGroupCell_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#f0f0f4}.___SRow_k33va_gg_._theme_muted_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#f2f3f4}.___SRow_k33va_gg_:hover>.___SCell_k33va_gg_._theme_muted_k33va_gg_,.___SRow_k33va_gg_._theme_muted_k33va_gg_:hover>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_muted_k33va_gg_.__active_k33va_gg_>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_muted_k33va_gg_ .___SCell_k33va_gg_:hover+.___SGroupCell_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#f6f7f7}.___SRow_k33va_gg_._theme_info_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#e9f7ff}.___SRow_k33va_gg_:hover>.___SCell_k33va_gg_._theme_info_k33va_gg_,.___SRow_k33va_gg_._theme_info_k33va_gg_:hover>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_info_k33va_gg_.__active_k33va_gg_>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_info_k33va_gg_ .___SCell_k33va_gg_:hover+.___SGroupCell_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#c4e5fe}.___SRow_k33va_gg_._theme_success_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#dbfee8}.___SRow_k33va_gg_:hover>.___SCell_k33va_gg_._theme_success_k33va_gg_,.___SRow_k33va_gg_._theme_success_k33va_gg_:hover>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_success_k33va_gg_.__active_k33va_gg_>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_success_k33va_gg_ .___SCell_k33va_gg_:hover+.___SGroupCell_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#9ef2c9}.___SRow_k33va_gg_._theme_warning_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#fff3d9}.___SRow_k33va_gg_:hover>.___SCell_k33va_gg_._theme_warning_k33va_gg_,.___SRow_k33va_gg_._theme_warning_k33va_gg_:hover>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_warning_k33va_gg_.__active_k33va_gg_>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_warning_k33va_gg_ .___SCell_k33va_gg_:hover+.___SGroupCell_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#ffdca2}.___SRow_k33va_gg_._theme_danger_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#fff0f7}.___SRow_k33va_gg_:hover>.___SCell_k33va_gg_._theme_danger_k33va_gg_,.___SRow_k33va_gg_._theme_danger_k33va_gg_:hover>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_danger_k33va_gg_.__active_k33va_gg_>.___SCell_k33va_gg_:not(.__theme_k33va_gg_),.___SRow_k33va_gg_._theme_danger_k33va_gg_ .___SCell_k33va_gg_:hover+.___SGroupCell_k33va_gg_ .___SCell_k33va_gg_:not(.__theme_k33va_gg_){background-color:#ffd7df}.___SRow_k33va_gg_.__positioned_k33va_gg_{position:absolute}.___SCell_k33va_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_k33va_gg_._use_primary_k33va_gg_{padding:12px;min-height:45px;background-color:#ffffff}.___SCell_k33va_gg_._use_secondary_k33va_gg_{padding:8px;min-height:37px;background-color:#ffffff}.___SCell_k33va_gg_.__fixed_k33va_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_k33va_gg_._theme_muted_k33va_gg_{background-color:#f2f3f4}.___SCell_k33va_gg_._theme_info_k33va_gg_{background-color:#e9f7ff}.___SCell_k33va_gg_._theme_success_k33va_gg_{background-color:#dbfee8}.___SCell_k33va_gg_._theme_warning_k33va_gg_{background-color:#fff3d9}.___SCell_k33va_gg_._theme_danger_k33va_gg_{background-color:#fff0f7}.___SScrollAreaBar_k33va_gg_._orientation_horizontal_k33va_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_k33va_gg_._orientation_vertical_k33va_gg_{width:12px}.___SScrollAreaBar_k33va_gg_._orientation_horizontal_k33va_gg_{margin-left:calc(var(--left_k33va) + 4px);margin-right:calc(var(--right_k33va) + 4px);width:calc(100% - var(--offsetSum_k33va) - 8px)}.___SHeightHold_k33va_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
44
44
  /*__inner_css_end__*/
45
- , "6ys8u7_gg_")
45
+ , "k33va_gg_")
46
46
  /*__reshadow_css_end__*/
47
47
  , {
48
- "__SDataTable": "___SDataTable_15uol_gg_",
49
- "__SHeadWrapper": "___SHeadWrapper_15uol_gg_",
50
- "_sticky": "__sticky_15uol_gg_",
51
- "__SHead": "___SHead_15uol_gg_",
52
- "__SColumn": "___SColumn_15uol_gg_",
53
- "_hidden": "__hidden_15uol_gg_",
54
- "_use_primary": "_use_primary_15uol_gg_",
55
- "_use_secondary": "_use_secondary_15uol_gg_",
56
- "_use": "__use_15uol_gg_",
57
- "_group": "__group_15uol_gg_",
58
- "_groupHead": "__groupHead_15uol_gg_",
59
- "_sortable": "__sortable_15uol_gg_",
60
- "_active": "__active_15uol_gg_",
61
- "_resizable": "__resizable_15uol_gg_",
62
- "_fixed": "__fixed_15uol_gg_",
63
- "__SSortIcon": "___SSortIcon_15uol_gg_",
64
- "__SBodyWrapper": "___SBodyWrapper_15uol_gg_",
65
- "__SBody": "___SBody_15uol_gg_",
66
- "__SRow": "___SRow_15uol_gg_",
67
- "__SCell": "___SCell_15uol_gg_",
68
- "_theme": "__theme_15uol_gg_",
69
- "__SGroupCell": "___SGroupCell_15uol_gg_",
70
- "_theme_muted": "_theme_muted_15uol_gg_",
71
- "_theme_info": "_theme_info_15uol_gg_",
72
- "_theme_success": "_theme_success_15uol_gg_",
73
- "_theme_warning": "_theme_warning_15uol_gg_",
74
- "_theme_danger": "_theme_danger_15uol_gg_",
75
- "_positioned": "__positioned_15uol_gg_",
76
- "__SScrollAreaBar": "___SScrollAreaBar_15uol_gg_",
77
- "_orientation_horizontal": "_orientation_horizontal_15uol_gg_",
78
- "_orientation_vertical": "_orientation_vertical_15uol_gg_",
79
- "--left": "--left_6ys8u7",
80
- "--right": "--right_6ys8u7",
81
- "--offsetSum": "--offsetSum_6ys8u7",
82
- "__SHeightHold": "___SHeightHold_15uol_gg_"
48
+ "__SDataTable": "___SDataTable_k33va_gg_",
49
+ "__SHeadWrapper": "___SHeadWrapper_k33va_gg_",
50
+ "_sticky": "__sticky_k33va_gg_",
51
+ "__SHead": "___SHead_k33va_gg_",
52
+ "__SColumn": "___SColumn_k33va_gg_",
53
+ "_hidden": "__hidden_k33va_gg_",
54
+ "_use_primary": "_use_primary_k33va_gg_",
55
+ "_use_secondary": "_use_secondary_k33va_gg_",
56
+ "_use": "__use_k33va_gg_",
57
+ "_group": "__group_k33va_gg_",
58
+ "_groupHead": "__groupHead_k33va_gg_",
59
+ "_sortable": "__sortable_k33va_gg_",
60
+ "_active": "__active_k33va_gg_",
61
+ "_resizable": "__resizable_k33va_gg_",
62
+ "_fixed": "__fixed_k33va_gg_",
63
+ "__SSortIcon": "___SSortIcon_k33va_gg_",
64
+ "__SBodyWrapper": "___SBodyWrapper_k33va_gg_",
65
+ "__SBody": "___SBody_k33va_gg_",
66
+ "__SRow": "___SRow_k33va_gg_",
67
+ "__SCell": "___SCell_k33va_gg_",
68
+ "_theme": "__theme_k33va_gg_",
69
+ "__SGroupCell": "___SGroupCell_k33va_gg_",
70
+ "_theme_muted": "_theme_muted_k33va_gg_",
71
+ "_theme_info": "_theme_info_k33va_gg_",
72
+ "_theme_success": "_theme_success_k33va_gg_",
73
+ "_theme_warning": "_theme_warning_k33va_gg_",
74
+ "_theme_danger": "_theme_danger_k33va_gg_",
75
+ "_positioned": "__positioned_k33va_gg_",
76
+ "__SScrollAreaBar": "___SScrollAreaBar_k33va_gg_",
77
+ "_orientation_horizontal": "_orientation_horizontal_k33va_gg_",
78
+ "_orientation_vertical": "_orientation_vertical_k33va_gg_",
79
+ "--left": "--left_k33va",
80
+ "--right": "--right_k33va",
81
+ "--offsetSum": "--offsetSum_k33va",
82
+ "__SHeightHold": "___SHeightHold_k33va_gg_"
83
83
  });
84
84
  var REVERSED_SORT_DIRECTION = {
85
85
  desc: 'asc',
@@ -107,7 +107,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
107
107
 
108
108
  _defineProperty(_assertThisInitialized(_this), "columns", []);
109
109
 
110
- _defineProperty(_assertThisInitialized(_this), "tableRef", React.createRef());
110
+ _defineProperty(_assertThisInitialized(_this), "tableRef", /*#__PURE__*/React.createRef());
111
111
 
112
112
  _defineProperty(_assertThisInitialized(_this), "scrollBodyRef", null);
113
113
 
@@ -126,7 +126,9 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
126
126
  });
127
127
 
128
128
  _defineProperty(_assertThisInitialized(_this), "scrollToUp", function () {
129
- _this.tableRef?.current?.scrollIntoView({
129
+ var _this$tableRef, _this$tableRef$curren;
130
+
131
+ (_this$tableRef = _this.tableRef) === null || _this$tableRef === void 0 ? void 0 : (_this$tableRef$curren = _this$tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.scrollIntoView({
130
132
  block: 'nearest',
131
133
  inline: 'nearest',
132
134
  behavior: 'smooth'
@@ -156,8 +158,10 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
156
158
 
157
159
  try {
158
160
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
161
+ var _this$tableRef$curren2;
162
+
159
163
  var cssVar = _step2.value;
160
- this.tableRef.current?.style.setProperty(cssVar, "".concat(_column.width, "px"));
164
+ (_this$tableRef$curren2 = this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.style.setProperty(cssVar, "".concat(_column.width, "px"));
161
165
  }
162
166
  } catch (err) {
163
167
  _iterator2.e(err);
@@ -165,7 +169,9 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
165
169
  _iterator2.f();
166
170
  }
167
171
  } else {
168
- this.tableRef.current?.style.setProperty(_column.cssVar, "".concat(_column.width, "px"));
172
+ var _this$tableRef$curren3;
173
+
174
+ (_this$tableRef$curren3 = this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.style.setProperty(_column.cssVar, "".concat(_column.width, "px"));
169
175
  }
170
176
  }
171
177
  } catch (err) {
@@ -185,7 +191,9 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
185
191
  var sort = this.asProps.sort;
186
192
  var columnsChildren = [];
187
193
  React.Children.forEach(children, function (child) {
188
- if (!React.isValidElement(child)) return;
194
+ var _column$props;
195
+
196
+ if (! /*#__PURE__*/React.isValidElement(child)) return;
189
197
  if (child.type !== DefinitionTable.Column) return;
190
198
 
191
199
  var _ref3 = child.props,
@@ -210,7 +218,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
210
218
  }).join('/');
211
219
  if (!columns.length) return;
212
220
  children = React.Children.toArray(children).filter(function (child) {
213
- return !(React.isValidElement(child) && child.type === DefinitionTable.Column);
221
+ return !( /*#__PURE__*/React.isValidElement(child) && child.type === DefinitionTable.Column);
214
222
  });
215
223
  }
216
224
 
@@ -220,7 +228,9 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
220
228
 
221
229
  columnsChildren.push({
222
230
  get width() {
223
- return this.props.ref.current?.getBoundingClientRect().width || 0;
231
+ var _this$props$ref$curre;
232
+
233
+ return ((_this$props$ref$curre = this.props.ref.current) === null || _this$props$ref$curre === void 0 ? void 0 : _this$props$ref$curre.getBoundingClientRect().width) || 0;
224
234
  },
225
235
 
226
236
  name: name,
@@ -229,11 +239,11 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
229
239
  resizable: resizable,
230
240
  active: sort[0] === name,
231
241
  sortable: sortable,
232
- sortDirection: sort[0] === name ? sort[1] : column?.sortDirection || (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),
242
+ sortDirection: sort[0] === name ? sort[1] : (column === null || column === void 0 ? void 0 : column.sortDirection) || (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),
233
243
  columns: columns,
234
244
  props: _objectSpread({
235
245
  name: name,
236
- ref: column?.props?.ref || React.createRef(),
246
+ ref: (column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : _column$props.ref) || /*#__PURE__*/React.createRef(),
237
247
  children: children
238
248
  }, props)
239
249
  });
@@ -264,7 +274,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
264
274
  var cellPropsLayers = {};
265
275
  var rowPropsLayers = [];
266
276
  React.Children.forEach(props.children, function (child) {
267
- if (React.isValidElement(child)) {
277
+ if ( /*#__PURE__*/React.isValidElement(child)) {
268
278
  var _ref5 = child.props,
269
279
  name = _ref5.name,
270
280
  children = _ref5.children,
@@ -286,7 +296,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
286
296
  }
287
297
  }
288
298
  });
289
- var result = {
299
+ return {
290
300
  columns: this.columns,
291
301
  rows: this.dataToRows(data, cellPropsLayers),
292
302
  uniqueKey: uniqueKey,
@@ -294,7 +304,6 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
294
304
  rowPropsLayers: rowPropsLayers,
295
305
  $scrollRef: this.scrollBodyRef
296
306
  };
297
- return result;
298
307
  }
299
308
  }, {
300
309
  key: "dataToRows",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DataTable.tsx"],"names":["React","createComponent","Component","sstyled","Root","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","Array","isArray","cssVar","style","setProperty","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","uniqueKey","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","result","rows","dataToRows","parseData","exclude","row","groupByName","groupedColumns","ungroupedColumns","rowKey","columnNames","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","flatRowData","setVarStyle","SDataTable","styles","ComponentDefinition"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root, PropGetterFn } 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 RowData,\n SortDirection,\n PseudoChildPropsGetter,\n PropsLayer,\n NestedCells,\n Column,\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\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}\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\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 (Array.isArray(column.cssVar)) {\n for (const cssVar of column.cssVar) {\n this.tableRef.current?.style.setProperty(cssVar, `${column.width}px`);\n }\n } else {\n this.tableRef.current?.style.setProperty(column.cssVar, `${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 ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] = [];\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 columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\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 columns,\n props: {\n name,\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\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 const result = {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n };\n\n return result;\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.cssVar,\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.cssVar,\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 } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\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"],"file":"DataTable.js"}
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","Array","isArray","cssVar","style","setProperty","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","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","flatRowData","setVarStyle","SDataTable","styles","ComponentDefinition"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\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\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}\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}\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 (Array.isArray(column.cssVar)) {\n for (const cssVar of column.cssVar) {\n this.tableRef.current?.style.setProperty(cssVar, `${column.width}px`);\n }\n } else {\n this.tableRef.current?.style.setProperty(column.cssVar, `${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 ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] = [];\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 columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\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 columns,\n props: {\n name,\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\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.cssVar,\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.cssVar,\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 } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\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
@@ -33,14 +33,14 @@ var scrollStyles = (
33
33
  /*__reshadow_css_start__*/
34
34
  _sstyled.insert(
35
35
  /*__inner_css_start__*/
36
- ".___SShadowHorizontal_1w6je_gg_:before{left:var(--left_1jfuf14)!important}.___SShadowHorizontal_1w6je_gg_:after{right:var(--right_1jfuf14)!important}"
36
+ ".___SShadowHorizontal_1gzhg_gg_:before{left:var(--left_1gzhg)!important}.___SShadowHorizontal_1gzhg_gg_:after{right:var(--right_1gzhg)!important}"
37
37
  /*__inner_css_end__*/
38
- , "1jfuf14_gg_")
38
+ , "1gzhg_gg_")
39
39
  /*__reshadow_css_end__*/
40
40
  , {
41
- "__SShadowHorizontal": "___SShadowHorizontal_1w6je_gg_",
42
- "--left": "--left_1jfuf14",
43
- "--right": "--right_1jfuf14"
41
+ "__SShadowHorizontal": "___SShadowHorizontal_1gzhg_gg_",
42
+ "--left": "--left_1gzhg",
43
+ "--right": "--right_1gzhg"
44
44
  });
45
45
  var SORTING_ICON = {
46
46
  desc: SortDesc,
@@ -94,7 +94,7 @@ var Head = /*#__PURE__*/function (_Component) {
94
94
  }, {
95
95
  key: "renderColumn",
96
96
  value: function renderColumn(column, width) {
97
- var _ref2;
97
+ var _ref2, _column$columns;
98
98
 
99
99
  var _this$asProps = this.asProps,
100
100
  styles = _this$asProps.styles,
@@ -103,7 +103,7 @@ var Head = /*#__PURE__*/function (_Component) {
103
103
  var SColumn = Flex;
104
104
  var SHead = Box;
105
105
  var SSortIcon = SORTING_ICON[column.sortDirection];
106
- var isGroup = column.columns?.length > 0;
106
+ var isGroup = ((_column$columns = column.columns) === null || _column$columns === void 0 ? void 0 : _column$columns.length) > 0;
107
107
  var cSize = isGroup ? flattenColumns(column.columns).length : 1;
108
108
 
109
109
  var _getFixedStyle = getFixedStyle(column, this.columns),
@@ -147,6 +147,7 @@ var Head = /*#__PURE__*/function (_Component) {
147
147
  _ref3;
148
148
 
149
149
  var SHead = Box;
150
+ var SHeadWrapper = Box;
150
151
  var _this$asProps2 = this.asProps,
151
152
  Children = _this$asProps2.Children,
152
153
  styles = _this$asProps2.styles,
@@ -154,7 +155,6 @@ var Head = /*#__PURE__*/function (_Component) {
154
155
  onResize = _this$asProps2.onResize,
155
156
  $scrollRef = _this$asProps2.$scrollRef,
156
157
  sticky = _this$asProps2.sticky;
157
- var SHeadWrapper = Box;
158
158
  this.columns = flattenColumns(columnsChildren);
159
159
 
160
160
  var _getScrollOffsetValue = getScrollOffsetValue(this.columns),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Head.tsx"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","SortDesc","SortAsc","callAllEventHandlers","flattenColumns","getFixedStyle","getScrollOffsetValue","logger","SORTING_ICON","desc","asc","Head","name","event","asProps","$onSortClick","code","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","SHead","SSortIcon","sortDirection","isGroup","length","cSize","value","style","flexBasis","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","Children","columnsChildren","onResize","$scrollRef","sticky","SHeadWrapper","offsetLeftSum","offsetRightSum","warn","displayName","scrollStyles","origin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport 'resize-observer-polyfill';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.code === 'Enter') {\n this.asProps.$onSortClick(name, event);\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n const SHeadWrapper = Box;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"file":"Head.js"}
1
+ {"version":3,"file":"Head.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","SortDesc","SortAsc","callAllEventHandlers","flattenColumns","getFixedStyle","getScrollOffsetValue","logger","SORTING_ICON","desc","asc","Head","name","event","asProps","$onSortClick","code","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","SHead","SSortIcon","sortDirection","isGroup","length","cSize","value","style","flexBasis","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","SHeadWrapper","Children","columnsChildren","onResize","$scrollRef","sticky","offsetLeftSum","offsetRightSum","warn","displayName","scrollStyles","origin"],"sources":["../../src/Head.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport 'resize-observer-polyfill';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.code === 'Enter') {\n this.asProps.$onSortClick(name, event);\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,aAAxB;AACA,cAAc,aAAd","sourcesContent":["export { default } from './DataTable';\nexport * from './DataTable';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './DataTable';\nexport * from './DataTable';\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,aAAxB;AACA,cAAc,aAAd"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types.ts"],"names":["ROW_GROUP"],"mappings":"AACA,SAASA,SAAT,QAA0B,aAA1B","sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n cssVar: string | string[];\n data?: unknown;\n props: {\n name: string;\n } & Partial<{\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n ref: React.RefObject<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n children: React.ReactNode[];\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n }> &\n Props;\n columns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'cssVar' | 'fixed' | 'data'> & {\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"file":"types.js"}
1
+ {"version":3,"file":"types.js","names":["ROW_GROUP"],"sources":["../../src/types.ts"],"sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n cssVar: string | string[];\n data?: unknown;\n props: {\n name: string;\n } & Partial<{\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n ref: React.RefObject<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n children: React.ReactNode[];\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n }> &\n Props;\n columns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'cssVar' | 'fixed' | 'data'> & {\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"mappings":"AACA,SAASA,SAAT,QAA0B,aAA1B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.ts"],"names":["getScrollOffsetValue","columns","reduce","acc","column","fixed","width","flattenColumns","hasNestedColumns","length","concat","getFixedStyle","cell","side","undefined","names","name","split","nameSideMap","left","right","index","findIndex","startIndexSideMap","endIndexSideMap","columnsFixed","slice","vars","map","join"],"mappings":"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","sourcesContent":["import type { Column } from './types';\n\nexport const getScrollOffsetValue = (columns: Column[]) =>\n columns.reduce(\n (acc, column) => {\n if (column.fixed === 'left') {\n acc[0] += column.width;\n }\n if (column.fixed === 'right') {\n acc[1] += column.width;\n }\n return acc;\n },\n [0, 0] as [leftOffset: number, rightOffset: number],\n );\n\nexport const flattenColumns = (columns: Column[]) =>\n columns.reduce((acc, column) => {\n const hasNestedColumns = 'columns' in column && column.columns.length > 0;\n const columns: Column[] = hasNestedColumns ? flattenColumns(column.columns) : [column];\n acc = acc.concat(columns);\n return acc;\n }, [] as Column[]);\n\nexport const getFixedStyle = (\n cell: Pick<Column, 'name' | 'fixed'>,\n columns: Column[],\n): [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined] => {\n const side = cell.fixed;\n if (!side) return [undefined, undefined];\n const names = cell.name.split('/');\n const nameSideMap = {\n left: names[0],\n right: names[names.length - 1],\n };\n const name = nameSideMap[side];\n const index = columns.findIndex((column) => column.name === name);\n\n if (index === -1) return [undefined, undefined];\n\n const startIndexSideMap = {\n left: 0,\n right: index,\n };\n const endIndexSideMap = {\n left: index,\n right: columns.length - 1,\n };\n const columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);\n\n if (columnsFixed.length < 1) return [side, 0];\n\n const vars = columnsFixed.map((column) => `var(--${column.name}_width)`);\n return [side, vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`];\n};\n"],"file":"utils.js"}
1
+ {"version":3,"file":"utils.js","names":["getScrollOffsetValue","columns","reduce","acc","column","fixed","width","flattenColumns","hasNestedColumns","length","concat","getFixedStyle","cell","side","undefined","names","name","split","nameSideMap","left","right","index","findIndex","startIndexSideMap","endIndexSideMap","columnsFixed","slice","vars","map","join"],"sources":["../../src/utils.ts"],"sourcesContent":["import type { Column } from './types';\n\nexport const getScrollOffsetValue = (columns: Column[]) =>\n columns.reduce(\n (acc, column) => {\n if (column.fixed === 'left') {\n acc[0] += column.width;\n }\n if (column.fixed === 'right') {\n acc[1] += column.width;\n }\n return acc;\n },\n [0, 0] as [leftOffset: number, rightOffset: number],\n );\n\nexport const flattenColumns = (columns: Column[]) =>\n columns.reduce((acc, column) => {\n const hasNestedColumns = 'columns' in column && column.columns.length > 0;\n const columns: Column[] = hasNestedColumns ? flattenColumns(column.columns) : [column];\n acc = acc.concat(columns);\n return acc;\n }, [] as Column[]);\n\nexport const getFixedStyle = (\n cell: Pick<Column, 'name' | 'fixed'>,\n columns: Column[],\n): [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined] => {\n const side = cell.fixed;\n if (!side) return [undefined, undefined];\n const names = cell.name.split('/');\n const nameSideMap = {\n left: names[0],\n right: names[names.length - 1],\n };\n const name = nameSideMap[side];\n const index = columns.findIndex((column) => column.name === name);\n\n if (index === -1) return [undefined, undefined];\n\n const startIndexSideMap = {\n left: 0,\n right: index,\n };\n const endIndexSideMap = {\n left: index,\n right: columns.length - 1,\n };\n const columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);\n\n if (columnsFixed.length < 1) return [side, 0];\n\n const vars = columnsFixed.map((column) => `var(--${column.name}_width)`);\n return [side, vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`];\n};\n"],"mappings":"AAEA,OAAO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD;EAAA,OAClCA,OAAO,CAACC,MAAR,CACE,UAACC,GAAD,EAAMC,MAAN,EAAiB;IACf,IAAIA,MAAM,CAACC,KAAP,KAAiB,MAArB,EAA6B;MAC3BF,GAAG,CAAC,CAAD,CAAH,IAAUC,MAAM,CAACE,KAAjB;IACD;;IACD,IAAIF,MAAM,CAACC,KAAP,KAAiB,OAArB,EAA8B;MAC5BF,GAAG,CAAC,CAAD,CAAH,IAAUC,MAAM,CAACE,KAAjB;IACD;;IACD,OAAOH,GAAP;EACD,CATH,EAUE,CAAC,CAAD,EAAI,CAAJ,CAVF,CADkC;AAAA,CAA7B;AAcP,OAAO,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAACN,OAAD;EAAA,OAC5BA,OAAO,CAACC,MAAR,CAAe,UAACC,GAAD,EAAMC,MAAN,EAAiB;IAC9B,IAAMI,gBAAgB,GAAG,aAAaJ,MAAb,IAAuBA,MAAM,CAACH,OAAP,CAAeQ,MAAf,GAAwB,CAAxE;IACA,IAAMR,OAAiB,GAAGO,gBAAgB,GAAGD,cAAc,CAACH,MAAM,CAACH,OAAR,CAAjB,GAAoC,CAACG,MAAD,CAA9E;IACAD,GAAG,GAAGA,GAAG,CAACO,MAAJ,CAAWT,OAAX,CAAN;IACA,OAAOE,GAAP;EACD,CALD,EAKG,EALH,CAD4B;AAAA,CAAvB;AAQP,OAAO,IAAMQ,aAAa,GAAG,SAAhBA,aAAgB,CAC3BC,IAD2B,EAE3BX,OAF2B,EAGgE;EAC3F,IAAMY,IAAI,GAAGD,IAAI,CAACP,KAAlB;EACA,IAAI,CAACQ,IAAL,EAAW,OAAO,CAACC,SAAD,EAAYA,SAAZ,CAAP;EACX,IAAMC,KAAK,GAAGH,IAAI,CAACI,IAAL,CAAUC,KAAV,CAAgB,GAAhB,CAAd;EACA,IAAMC,WAAW,GAAG;IAClBC,IAAI,EAAEJ,KAAK,CAAC,CAAD,CADO;IAElBK,KAAK,EAAEL,KAAK,CAACA,KAAK,CAACN,MAAN,GAAe,CAAhB;EAFM,CAApB;EAIA,IAAMO,IAAI,GAAGE,WAAW,CAACL,IAAD,CAAxB;EACA,IAAMQ,KAAK,GAAGpB,OAAO,CAACqB,SAAR,CAAkB,UAAClB,MAAD;IAAA,OAAYA,MAAM,CAACY,IAAP,KAAgBA,IAA5B;EAAA,CAAlB,CAAd;EAEA,IAAIK,KAAK,KAAK,CAAC,CAAf,EAAkB,OAAO,CAACP,SAAD,EAAYA,SAAZ,CAAP;EAElB,IAAMS,iBAAiB,GAAG;IACxBJ,IAAI,EAAE,CADkB;IAExBC,KAAK,EAAEC;EAFiB,CAA1B;EAIA,IAAMG,eAAe,GAAG;IACtBL,IAAI,EAAEE,KADgB;IAEtBD,KAAK,EAAEnB,OAAO,CAACQ,MAAR,GAAiB;EAFF,CAAxB;EAIA,IAAMgB,YAAY,GAAGxB,OAAO,CAACyB,KAAR,CAAcH,iBAAiB,CAACV,IAAD,CAA/B,EAAuCW,eAAe,CAACX,IAAD,CAAtD,CAArB;EAEA,IAAIY,YAAY,CAAChB,MAAb,GAAsB,CAA1B,EAA6B,OAAO,CAACI,IAAD,EAAO,CAAP,CAAP;EAE7B,IAAMc,IAAI,GAAGF,YAAY,CAACG,GAAb,CAAiB,UAACxB,MAAD;IAAA,uBAAqBA,MAAM,CAACY,IAA5B;EAAA,CAAjB,CAAb;EACA,OAAO,CAACH,IAAD,EAAOc,IAAI,CAAClB,MAAL,KAAgB,CAAhB,GAAoBkB,IAAI,CAAC,CAAD,CAAxB,kBAAsCA,IAAI,CAACE,IAAL,CAAU,KAAV,CAAtC,MAAP,CAAP;AACD,CA9BM"}
@@ -8,6 +8,7 @@ declare type AsProps = {
8
8
  columns: Column[];
9
9
  $scrollRef: ReturnType<ReturnType<typeof syncScroll>>;
10
10
  onResize: ResizeObserverCallback;
11
+ onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;
11
12
  rowPropsLayers: PropsLayer[];
12
13
  use: 'primary' | 'secondary';
13
14
  uniqueKey: string;
@@ -72,6 +72,10 @@ export interface IDataTableBodyProps extends IBoxProps {
72
72
  tollerance?: number;
73
73
  rowHeight?: number;
74
74
  };
75
+ /**
76
+ * Called every time user scrolls area
77
+ */
78
+ onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;
75
79
  }
76
80
  export interface IDataTableRowProps extends IBoxProps {
77
81
  /** Theme for row */
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.0.10",
4
+ "version": "3.1.2",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",