@semcore/data-table 3.7.29 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
10
  import { sstyled as _sstyled } from "@semcore/core";
11
11
  import { assignProps as _assignProps } from "@semcore/core";
12
12
  var _excluded = ["children", "name", "fixed", "resizable", "sortable", "flex", "vBorders", "active"],
13
- _excluded2 = ["name", "children"];
13
+ _excluded2 = ["name", "children"];
14
14
  import React from 'react';
15
15
  import createComponent, { Component, Root, sstyled } from '@semcore/core';
16
16
  import { Box } from '@semcore/flex-box';
@@ -20,57 +20,47 @@ import fire from '@semcore/utils/lib/fire';
20
20
  import { flattenColumns } from './utils';
21
21
  import Head from './Head';
22
22
  import Body from './Body';
23
-
24
23
  /*__reshadow-styles__:"./style/data-table.shadow.css"*/
25
- var style = (
26
- /*__reshadow_css_start__*/
27
- _sstyled.insert(
28
- /*__inner_css_start__*/
29
- ".___SDataTable_1kao4_gg_,.___SHeadWrapper_1kao4_gg_{position:relative}.___SDataTable_1kao4_gg_.__compact_1kao4_gg_ .___SCell_1kao4_gg_,.___SDataTable_1kao4_gg_.__compact_1kao4_gg_ .___SColumn_1kao4_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SHeadWrapper_1kao4_gg_.__sticky_1kao4_gg_{position:sticky;top:0;z-index:2}.___SHead_1kao4_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_1kao4_gg_{display:flex;align-items:flex-start;flex-grow:1;font-size:var(--intergalactic-fs-100, 12px);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;position:relative}.___SColumn_1kao4_gg_.focus-visible{outline:0;box-shadow:inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SColumn_1kao4_gg_:focus-visible{outline:0;box-shadow:inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SColumn_1kao4_gg_.__hidden_1kao4_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:0!important}.___SColumn_1kao4_gg_._use_primary_1kao4_gg_{padding:var(--intergalactic-spacing-3x, 12px);border-bottom:1px solid var(--intergalactic-border-secondary, #e0e1e9);background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SColumn_1kao4_gg_._use_secondary_1kao4_gg_{padding:var(--intergalactic-spacing-2x, 8px);border-bottom:1px solid var(--intergalactic-border-table-accent, #a9abb6);background-color:var(--intergalactic-table-th-secondary-cell, #ffffff)}.___SColumn_1kao4_gg_.__group_1kao4_gg_.__use_1kao4_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_1kao4_gg_.__groupHead_1kao4_gg_{justify-content:center;z-index:1;border-bottom:none}.___SColumn_1kao4_gg_.__sortable_1kao4_gg_{cursor:pointer}@media (hover:hover){.___SColumn_1kao4_gg_.__sortable_1kao4_gg_._use_primary_1kao4_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_1kao4_gg_.__sortable_1kao4_gg_:hover .___SSortWrapper_1kao4_gg_{display:block}}.___SColumn_1kao4_gg_._use_primary_1kao4_gg_.__active_1kao4_gg_{background-color:var(--intergalactic-table-th-primary-cell-active, #e0e1e9);width:100%}.___SColumn_1kao4_gg_.__active_1kao4_gg_ .___SSortIcon_1kao4_gg_{position:relative}.___SColumn_1kao4_gg_.__sortIconFloat_1kao4_gg_ .___SSortWrapper_1kao4_gg_{width:0;flex-basis:0}.___SColumn_1kao4_gg_.__active_1kao4_gg_ .___SSortWrapper_1kao4_gg_{display:block;width:16px;flex-basis:20px;margin-left:var(--intergalactic-spacing-1x, 4px)}.___SColumn_1kao4_gg_.__resizable_1kao4_gg_{border-right:1px solid transparent}@media (hover:hover){.___SColumn_1kao4_gg_.__resizable_1kao4_gg_:hover:after{border-right-color:var(--intergalactic-border-table-accent, #a9abb6)}}.___SColumn_1kao4_gg_.__resizable_1kao4_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100%;width:5px;background:0 0;cursor:col-resize;border-right:1px solid transparent}.___SColumn_1kao4_gg_.__fixed_1kao4_gg_{position:sticky;z-index:2}.___SCell_1kao4_gg_.__borderLeft_1kao4_gg_,.___SColumn_1kao4_gg_.__borderLeft_1kao4_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_1kao4_gg_.__borderRight_1kao4_gg_,.___SColumn_1kao4_gg_.__borderRight_1kao4_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SSortIcon_1kao4_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b);position:absolute;top:-2px;right:0}.___SSortWrapper_1kao4_gg_{display:none;flex-shrink:99999;position:relative;flex-basis:20px;height:0}.___SSortWrapper_1kao4_gg_:before{content:\"\";position:absolute;top:-2px;right:0;width:20px;height:16px}.___SColumn_1kao4_gg_._use_primary_1kao4_gg_ .___SSortWrapper_1kao4_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_1kao4_gg_._use_secondary_1kao4_gg_ .___SSortWrapper_1kao4_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SBodyWrapper_1kao4_gg_{position:relative}.___SBody_1kao4_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_1kao4_gg_{display:flex;flex-direction:row;position:relative}.___SRow_1kao4_gg_.__active_1kao4_gg_>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_._theme_muted_1kao4_gg_.__active_1kao4_gg_>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}@media (hover:hover){.___SRow_1kao4_gg_ .___SCell_1kao4_gg_:hover+.___SGroupCell_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_:hover>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_1kao4_gg_._theme_muted_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}@media (hover:hover){.___SRow_1kao4_gg_._theme_muted_1kao4_gg_ .___SCell_1kao4_gg_:hover+.___SGroupCell_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_._theme_muted_1kao4_gg_:hover>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_:hover>.___SCell_1kao4_gg_._theme_muted_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_1kao4_gg_._theme_info_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_1kao4_gg_._theme_info_1kao4_gg_.__active_1kao4_gg_>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}@media (hover:hover){.___SRow_1kao4_gg_._theme_info_1kao4_gg_ .___SCell_1kao4_gg_:hover+.___SGroupCell_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_._theme_info_1kao4_gg_:hover>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_:hover>.___SCell_1kao4_gg_._theme_info_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}}.___SRow_1kao4_gg_._theme_success_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_1kao4_gg_._theme_success_1kao4_gg_.__active_1kao4_gg_>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}@media (hover:hover){.___SRow_1kao4_gg_._theme_success_1kao4_gg_ .___SCell_1kao4_gg_:hover+.___SGroupCell_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_._theme_success_1kao4_gg_:hover>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_:hover>.___SCell_1kao4_gg_._theme_success_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}}.___SRow_1kao4_gg_._theme_warning_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_1kao4_gg_._theme_warning_1kao4_gg_.__active_1kao4_gg_>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}@media (hover:hover){.___SRow_1kao4_gg_._theme_warning_1kao4_gg_ .___SCell_1kao4_gg_:hover+.___SGroupCell_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_._theme_warning_1kao4_gg_:hover>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_:hover>.___SCell_1kao4_gg_._theme_warning_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}}.___SRow_1kao4_gg_._theme_danger_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_1kao4_gg_._theme_danger_1kao4_gg_.__active_1kao4_gg_>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_){background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}@media (hover:hover){.___SRow_1kao4_gg_._theme_danger_1kao4_gg_ .___SCell_1kao4_gg_:hover+.___SGroupCell_1kao4_gg_ .___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_._theme_danger_1kao4_gg_:hover>.___SCell_1kao4_gg_:not(.__theme_1kao4_gg_),.___SRow_1kao4_gg_:hover>.___SCell_1kao4_gg_._theme_danger_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_1kao4_gg_.__positioned_1kao4_gg_{position:absolute}.___SCell_1kao4_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_1kao4_gg_._use_primary_1kao4_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_1kao4_gg_._use_secondary_1kao4_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_1kao4_gg_.__fixed_1kao4_gg_{position:sticky;z-index:1}.___SCell_1kao4_gg_._theme_muted_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_1kao4_gg_._theme_info_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_1kao4_gg_._theme_success_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_1kao4_gg_._theme_warning_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_1kao4_gg_._theme_danger_1kao4_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SScrollAreaBar_1kao4_gg_._orientation_horizontal_1kao4_gg_{position:sticky;bottom:0;left:0;margin-top:calc(-1*var(--intergalactic-spacing-3x, 12px));z-index:2}.___SScrollAreaBar_1kao4_gg_._orientation_vertical_1kao4_gg_{width:12px}.___SScrollAreaBar_1kao4_gg_._orientation_horizontal_1kao4_gg_{margin-left:calc(var(--left_1kao4) + var(--intergalactic-spacing-1x, 4px));margin-right:calc(var(--right_1kao4) + var(--intergalactic-spacing-1x, 4px));width:calc(100% - var(--offsetSum_1kao4) - 8px)}.___SHeightHold_1kao4_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
30
- /*__inner_css_end__*/
31
- , "1kao4_gg_")
32
- /*__reshadow_css_end__*/
33
- , {
34
- "__SDataTable": "___SDataTable_1kao4_gg_",
35
- "_compact": "__compact_1kao4_gg_",
36
- "__SColumn": "___SColumn_1kao4_gg_",
37
- "__SCell": "___SCell_1kao4_gg_",
38
- "__SHeadWrapper": "___SHeadWrapper_1kao4_gg_",
39
- "_sticky": "__sticky_1kao4_gg_",
40
- "__SHead": "___SHead_1kao4_gg_",
41
- "_hidden": "__hidden_1kao4_gg_",
42
- "_use_primary": "_use_primary_1kao4_gg_",
43
- "_use_secondary": "_use_secondary_1kao4_gg_",
44
- "_group": "__group_1kao4_gg_",
45
- "_use": "__use_1kao4_gg_",
46
- "_groupHead": "__groupHead_1kao4_gg_",
47
- "_sortable": "__sortable_1kao4_gg_",
48
- "__SSortWrapper": "___SSortWrapper_1kao4_gg_",
49
- "_active": "__active_1kao4_gg_",
50
- "__SSortIcon": "___SSortIcon_1kao4_gg_",
51
- "_sortIconFloat": "__sortIconFloat_1kao4_gg_",
52
- "_resizable": "__resizable_1kao4_gg_",
53
- "_fixed": "__fixed_1kao4_gg_",
54
- "_borderLeft": "__borderLeft_1kao4_gg_",
55
- "_borderRight": "__borderRight_1kao4_gg_",
56
- "__SBodyWrapper": "___SBodyWrapper_1kao4_gg_",
57
- "__SBody": "___SBody_1kao4_gg_",
58
- "__SRow": "___SRow_1kao4_gg_",
59
- "_theme": "__theme_1kao4_gg_",
60
- "__SGroupCell": "___SGroupCell_1kao4_gg_",
61
- "_theme_muted": "_theme_muted_1kao4_gg_",
62
- "_theme_info": "_theme_info_1kao4_gg_",
63
- "_theme_success": "_theme_success_1kao4_gg_",
64
- "_theme_warning": "_theme_warning_1kao4_gg_",
65
- "_theme_danger": "_theme_danger_1kao4_gg_",
66
- "_positioned": "__positioned_1kao4_gg_",
67
- "__SScrollAreaBar": "___SScrollAreaBar_1kao4_gg_",
68
- "_orientation_horizontal": "_orientation_horizontal_1kao4_gg_",
69
- "_orientation_vertical": "_orientation_vertical_1kao4_gg_",
70
- "--left": "--left_1kao4",
71
- "--right": "--right_1kao4",
72
- "--offsetSum": "--offsetSum_1kao4",
73
- "__SHeightHold": "___SHeightHold_1kao4_gg_"
24
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SDataTable_13obu_gg_,.___SHeadWrapper_13obu_gg_{position:relative}.___SDataTable_13obu_gg_.__compact_13obu_gg_ .___SCell_13obu_gg_,.___SDataTable_13obu_gg_.__compact_13obu_gg_ .___SColumn_13obu_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SHeadWrapper_13obu_gg_.__sticky_13obu_gg_{position:sticky;top:0;z-index:2}.___SHead_13obu_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_13obu_gg_{display:flex;align-items:flex-start;flex-grow:1;font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;position:relative}.___SColumn_13obu_gg_.focus-visible{outline:0;box-shadow:inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SColumn_13obu_gg_:focus-visible{outline:0;box-shadow:inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SColumn_13obu_gg_.__hidden_13obu_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:0!important}.___SColumn_13obu_gg_._use_primary_13obu_gg_{padding:var(--intergalactic-spacing-3x, 12px);border-bottom:1px solid var(--intergalactic-border-secondary, #e0e1e9);background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SColumn_13obu_gg_._use_secondary_13obu_gg_{padding:var(--intergalactic-spacing-2x, 8px);border-bottom:1px solid var(--intergalactic-border-table-accent, #a9abb6);background-color:var(--intergalactic-table-th-secondary-cell, #ffffff)}.___SColumn_13obu_gg_.__group_13obu_gg_.__use_13obu_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_13obu_gg_.__groupHead_13obu_gg_{justify-content:center;z-index:1;border-bottom:none}.___SColumn_13obu_gg_.__sortable_13obu_gg_{cursor:pointer}@media (hover:hover){.___SColumn_13obu_gg_.__sortable_13obu_gg_._use_primary_13obu_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_13obu_gg_.__sortable_13obu_gg_:hover .___SSortWrapper_13obu_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_13obu_gg_.__sortable_13obu_gg_:hover .___SSortIcon_13obu_gg_,.___SColumn_13obu_gg_.__sortable_13obu_gg_:hover .___SSortWrapper_13obu_gg_:before{display:block;opacity:1}}.___SColumn_13obu_gg_._use_primary_13obu_gg_.__active_13obu_gg_{background-color:var(--intergalactic-table-th-primary-cell-active, #e0e1e9);width:100%}.___SColumn_13obu_gg_.__active_13obu_gg_ .___SSortWrapper_13obu_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_13obu_gg_.__active_13obu_gg_ .___SSortIcon_13obu_gg_{display:block;position:relative;opacity:1}.___SColumn_13obu_gg_.__resizable_13obu_gg_{border-right:1px solid transparent}@media (hover:hover){.___SColumn_13obu_gg_.__resizable_13obu_gg_:hover:after{border-right-color:var(--intergalactic-border-table-accent, #a9abb6)}}.___SColumn_13obu_gg_.__resizable_13obu_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100%;width:5px;background:0 0;cursor:col-resize;border-right:1px solid transparent}.___SColumn_13obu_gg_.__fixed_13obu_gg_{position:sticky;z-index:2}.___SCell_13obu_gg_.__borderLeft_13obu_gg_,.___SColumn_13obu_gg_.__borderLeft_13obu_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_13obu_gg_.__borderRight_13obu_gg_,.___SColumn_13obu_gg_.__borderRight_13obu_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SSortWrapper_13obu_gg_{flex-shrink:99999;position:relative;flex-basis:0;height:100%;min-height:16px;opacity:0;transition:all .3s ease}.___SSortIcon_13obu_gg_,.___SSortWrapper_13obu_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_13obu_gg_:before{content:\"\";top:0;width:20px;height:100%}.___SSortIcon_13obu_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b);top:calc(1em*1.25 - 16px);margin-left:var(--intergalactic-spacing-1x, 4px)}.___SColumn_13obu_gg_._use_primary_13obu_gg_ .___SSortWrapper_13obu_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_13obu_gg_._use_secondary_13obu_gg_ .___SSortWrapper_13obu_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SBodyWrapper_13obu_gg_{position:relative}.___SBody_13obu_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_13obu_gg_{display:flex;flex-direction:row;position:relative}.___SRow_13obu_gg_.__active_13obu_gg_>.___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_._theme_muted_13obu_gg_.__active_13obu_gg_>.___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}@media (hover:hover){.___SRow_13obu_gg_ .___SCell_13obu_gg_:hover+.___SGroupCell_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_:hover>.___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_13obu_gg_._theme_muted_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}@media (hover:hover){.___SRow_13obu_gg_._theme_muted_13obu_gg_ .___SCell_13obu_gg_:hover+.___SGroupCell_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_._theme_muted_13obu_gg_:hover>.___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_:hover>.___SCell_13obu_gg_._theme_muted_13obu_gg_{background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_13obu_gg_._theme_info_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_13obu_gg_._theme_info_13obu_gg_.__active_13obu_gg_>.___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}@media (hover:hover){.___SRow_13obu_gg_._theme_info_13obu_gg_ .___SCell_13obu_gg_:hover+.___SGroupCell_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_._theme_info_13obu_gg_:hover>.___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_:hover>.___SCell_13obu_gg_._theme_info_13obu_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}}.___SRow_13obu_gg_._theme_success_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_13obu_gg_._theme_success_13obu_gg_.__active_13obu_gg_>.___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}@media (hover:hover){.___SRow_13obu_gg_._theme_success_13obu_gg_ .___SCell_13obu_gg_:hover+.___SGroupCell_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_._theme_success_13obu_gg_:hover>.___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_:hover>.___SCell_13obu_gg_._theme_success_13obu_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}}.___SRow_13obu_gg_._theme_warning_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_13obu_gg_._theme_warning_13obu_gg_.__active_13obu_gg_>.___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}@media (hover:hover){.___SRow_13obu_gg_._theme_warning_13obu_gg_ .___SCell_13obu_gg_:hover+.___SGroupCell_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_._theme_warning_13obu_gg_:hover>.___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_:hover>.___SCell_13obu_gg_._theme_warning_13obu_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}}.___SRow_13obu_gg_._theme_danger_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_13obu_gg_._theme_danger_13obu_gg_.__active_13obu_gg_>.___SCell_13obu_gg_:not(.__theme_13obu_gg_){background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}@media (hover:hover){.___SRow_13obu_gg_._theme_danger_13obu_gg_ .___SCell_13obu_gg_:hover+.___SGroupCell_13obu_gg_ .___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_._theme_danger_13obu_gg_:hover>.___SCell_13obu_gg_:not(.__theme_13obu_gg_),.___SRow_13obu_gg_:hover>.___SCell_13obu_gg_._theme_danger_13obu_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_13obu_gg_.__positioned_13obu_gg_{position:absolute}.___SCell_13obu_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_13obu_gg_._use_primary_13obu_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_13obu_gg_._use_secondary_13obu_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_13obu_gg_.__fixed_13obu_gg_{position:sticky;z-index:1}.___SCell_13obu_gg_._theme_muted_13obu_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_13obu_gg_._theme_info_13obu_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_13obu_gg_._theme_success_13obu_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_13obu_gg_._theme_warning_13obu_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_13obu_gg_._theme_danger_13obu_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SScrollAreaBar_13obu_gg_._orientation_horizontal_13obu_gg_{position:sticky;bottom:0;left:0;margin-top:calc(-1*var(--intergalactic-spacing-3x, 12px));z-index:2}.___SScrollAreaBar_13obu_gg_._orientation_vertical_13obu_gg_{width:12px}.___SScrollAreaBar_13obu_gg_._orientation_horizontal_13obu_gg_{margin-left:calc(var(--left_13obu) + var(--intergalactic-spacing-1x, 4px));margin-right:calc(var(--right_13obu) + var(--intergalactic-spacing-1x, 4px));width:calc(100% - var(--offsetSum_13obu) - 8px)}.___SHeightHold_13obu_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}" /*__inner_css_end__*/, "13obu_gg_") /*__reshadow_css_end__*/, {
25
+ "__SDataTable": "___SDataTable_13obu_gg_",
26
+ "_compact": "__compact_13obu_gg_",
27
+ "__SColumn": "___SColumn_13obu_gg_",
28
+ "__SCell": "___SCell_13obu_gg_",
29
+ "__SHeadWrapper": "___SHeadWrapper_13obu_gg_",
30
+ "_sticky": "__sticky_13obu_gg_",
31
+ "__SHead": "___SHead_13obu_gg_",
32
+ "_hidden": "__hidden_13obu_gg_",
33
+ "_use_primary": "_use_primary_13obu_gg_",
34
+ "_use_secondary": "_use_secondary_13obu_gg_",
35
+ "_group": "__group_13obu_gg_",
36
+ "_use": "__use_13obu_gg_",
37
+ "_groupHead": "__groupHead_13obu_gg_",
38
+ "_sortable": "__sortable_13obu_gg_",
39
+ "__SSortWrapper": "___SSortWrapper_13obu_gg_",
40
+ "__SSortIcon": "___SSortIcon_13obu_gg_",
41
+ "_active": "__active_13obu_gg_",
42
+ "_resizable": "__resizable_13obu_gg_",
43
+ "_fixed": "__fixed_13obu_gg_",
44
+ "_borderLeft": "__borderLeft_13obu_gg_",
45
+ "_borderRight": "__borderRight_13obu_gg_",
46
+ "__SBodyWrapper": "___SBodyWrapper_13obu_gg_",
47
+ "__SBody": "___SBody_13obu_gg_",
48
+ "__SRow": "___SRow_13obu_gg_",
49
+ "_theme": "__theme_13obu_gg_",
50
+ "__SGroupCell": "___SGroupCell_13obu_gg_",
51
+ "_theme_muted": "_theme_muted_13obu_gg_",
52
+ "_theme_info": "_theme_info_13obu_gg_",
53
+ "_theme_success": "_theme_success_13obu_gg_",
54
+ "_theme_warning": "_theme_warning_13obu_gg_",
55
+ "_theme_danger": "_theme_danger_13obu_gg_",
56
+ "_positioned": "__positioned_13obu_gg_",
57
+ "__SScrollAreaBar": "___SScrollAreaBar_13obu_gg_",
58
+ "_orientation_horizontal": "_orientation_horizontal_13obu_gg_",
59
+ "_orientation_vertical": "_orientation_vertical_13obu_gg_",
60
+ "--left": "--left_13obu",
61
+ "--right": "--right_13obu",
62
+ "--offsetSum": "--offsetSum_13obu",
63
+ "__SHeightHold": "___SHeightHold_13obu_gg_"
74
64
  });
75
65
  var REVERSED_SORT_DIRECTION = {
76
66
  desc: 'asc',
@@ -79,94 +69,69 @@ var REVERSED_SORT_DIRECTION = {
79
69
  var DEFAULT_SORT_DIRECTION = 'desc';
80
70
  var ROW_GROUP = Symbol('ROW_GROUP');
81
71
  var cssVarReg = /[:;]/g;
82
-
83
72
  var createCssVarForWidth = function createCssVarForWidth(name) {
84
73
  return "--".concat(name.replace(cssVarReg, '_'), "_width");
85
74
  };
86
-
87
75
  function setBorderGroupColumns(columns, side) {
88
76
  var firstColumn = columns[0];
89
77
  var lastColumn = columns[columns.length - 1];
90
-
91
78
  if (firstColumn && (!side || side === 'left')) {
92
79
  firstColumn.borderLeft = true;
93
-
94
80
  if (firstColumn.columns) {
95
81
  setBorderGroupColumns(firstColumn.columns, 'left');
96
82
  }
97
83
  }
98
-
99
84
  if (lastColumn && (!side || side === 'right')) {
100
85
  lastColumn.borderRight = true;
101
-
102
86
  if (lastColumn.columns) {
103
87
  setBorderGroupColumns(lastColumn.columns, 'right');
104
88
  }
105
89
  }
106
90
  }
107
-
108
91
  var RootDefinitionTable = /*#__PURE__*/function (_Component) {
109
92
  _inherits(RootDefinitionTable, _Component);
110
-
111
93
  var _super = _createSuper(RootDefinitionTable);
112
-
113
94
  function RootDefinitionTable(props) {
114
95
  var _this;
115
-
116
96
  _classCallCheck(this, RootDefinitionTable);
117
-
118
97
  _this = _super.call(this, props);
119
-
120
98
  _defineProperty(_assertThisInitialized(_this), "columns", []);
121
-
122
99
  _defineProperty(_assertThisInitialized(_this), "tableRef", /*#__PURE__*/React.createRef());
123
-
124
100
  _defineProperty(_assertThisInitialized(_this), "scrollBodyRef", null);
125
-
126
101
  _defineProperty(_assertThisInitialized(_this), "scrollHeadRef", null);
127
-
128
102
  _defineProperty(_assertThisInitialized(_this), "handlerSortClick", function (name, event) {
129
103
  var column = _this.columns.find(function (column) {
130
104
  return column.name === name;
131
105
  });
132
-
133
106
  return fire(_assertThisInitialized(_this), 'onSortChange', [column.name, column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection], event);
134
107
  });
135
-
136
108
  _defineProperty(_assertThisInitialized(_this), "handlerResize", function () {
137
109
  _this.forceUpdate();
138
110
  });
139
-
140
111
  _defineProperty(_assertThisInitialized(_this), "scrollToUp", function () {
141
112
  var _this$tableRef, _this$tableRef$curren;
142
-
143
113
  (_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({
144
114
  block: 'nearest',
145
115
  inline: 'nearest',
146
116
  behavior: 'smooth'
147
117
  });
148
118
  });
149
-
150
- var createRef = syncScroll(); // first create body ref for master scroll
151
-
119
+ var createRef = syncScroll();
120
+ // first create body ref for master scroll
152
121
  _this.scrollBodyRef = createRef('body');
153
122
  _this.scrollHeadRef = createRef('head');
154
123
  return _this;
155
124
  }
156
-
157
125
  _createClass(RootDefinitionTable, [{
158
126
  key: "setVarStyle",
159
127
  value: function setVarStyle(columns) {
160
128
  var _iterator = _createForOfIteratorHelper(columns),
161
- _step;
162
-
129
+ _step;
163
130
  try {
164
131
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
165
132
  var _column = _step.value;
166
-
167
133
  if (_column.setVar) {
168
134
  var _this$tableRef$curren2;
169
-
170
135
  (_this$tableRef$curren2 = this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.style.setProperty(_column.varWidth, "".concat(_column.width, "px"));
171
136
  }
172
137
  }
@@ -180,7 +145,6 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
180
145
  key: "childrenToColumns",
181
146
  value: function childrenToColumns(children) {
182
147
  var _this2 = this;
183
-
184
148
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
185
149
  fixed: undefined
186
150
  };
@@ -188,26 +152,22 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
188
152
  var columnsChildren = [];
189
153
  React.Children.forEach(children, function (child) {
190
154
  var _column$props;
191
-
192
155
  if (! /*#__PURE__*/React.isValidElement(child)) return;
193
156
  if (child.type !== DefinitionTable.Column) return;
194
-
195
157
  var _ref3 = child.props,
196
- children = _ref3.children,
197
- name = _ref3.name,
198
- _ref3$fixed = _ref3.fixed,
199
- fixed = _ref3$fixed === void 0 ? options.fixed : _ref3$fixed,
200
- resizable = _ref3.resizable,
201
- sortable = _ref3.sortable,
202
- flex = _ref3.flex,
203
- vBorders = _ref3.vBorders,
204
- active = _ref3.active,
205
- props = _objectWithoutProperties(_ref3, _excluded);
206
-
158
+ children = _ref3.children,
159
+ name = _ref3.name,
160
+ _ref3$fixed = _ref3.fixed,
161
+ fixed = _ref3$fixed === void 0 ? options.fixed : _ref3$fixed,
162
+ resizable = _ref3.resizable,
163
+ sortable = _ref3.sortable,
164
+ flex = _ref3.flex,
165
+ vBorders = _ref3.vBorders,
166
+ active = _ref3.active,
167
+ props = _objectWithoutProperties(_ref3, _excluded);
207
168
  var lastColumnChildren = columnsChildren[columnsChildren.length - 1];
208
169
  var isGroup = !name;
209
170
  var columns;
210
-
211
171
  if (isGroup) {
212
172
  columns = _this2.childrenToColumns(children, {
213
173
  fixed: fixed
@@ -215,11 +175,9 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
215
175
  active = typeof active === 'boolean' ? active : columns.some(function (c) {
216
176
  return c.active;
217
177
  });
218
-
219
178
  if (vBorders) {
220
179
  setBorderGroupColumns(columns);
221
180
  }
222
-
223
181
  name = flattenColumns(columns).map(function (_ref4) {
224
182
  var name = _ref4.name;
225
183
  return name;
@@ -229,19 +187,15 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
229
187
  return !( /*#__PURE__*/React.isValidElement(child) && child.type === DefinitionTable.Column);
230
188
  });
231
189
  }
232
-
233
190
  var column = _this2.columns.find(function (column) {
234
191
  return column.name === name;
235
192
  });
236
-
237
193
  var columnChildren = {
238
194
  get width() {
239
195
  var _this$props$ref$curre;
240
-
241
196
  // @ts-ignore
242
197
  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;
243
198
  },
244
-
245
199
  name: name,
246
200
  varWidth: createCssVarForWidth(name),
247
201
  setVar: flex !== 'inherit',
@@ -262,11 +216,9 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
262
216
  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()
263
217
  })
264
218
  };
265
-
266
219
  if (columns) {
267
220
  columnChildren.columns = columns;
268
221
  }
269
-
270
222
  columnsChildren.push(columnChildren);
271
223
  });
272
224
  return columnsChildren;
@@ -289,18 +241,17 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
289
241
  key: "getBodyProps",
290
242
  value: function getBodyProps(props) {
291
243
  var _this$asProps = this.asProps,
292
- data = _this$asProps.data,
293
- use = _this$asProps.use,
294
- uniqueKey = _this$asProps.uniqueKey;
244
+ data = _this$asProps.data,
245
+ use = _this$asProps.use,
246
+ uniqueKey = _this$asProps.uniqueKey;
295
247
  var cellPropsLayers = {};
296
248
  var rowPropsLayers = [];
297
249
  React.Children.forEach(props.children, function (child) {
298
250
  if ( /*#__PURE__*/React.isValidElement(child)) {
299
251
  var _ref5 = child.props,
300
- name = _ref5.name,
301
- children = _ref5.children,
302
- other = _objectWithoutProperties(_ref5, _excluded2);
303
-
252
+ name = _ref5.name,
253
+ children = _ref5.children,
254
+ other = _objectWithoutProperties(_ref5, _excluded2);
304
255
  if (child.type === DefinitionTable.Cell && name) {
305
256
  name.split('/').forEach(function (name) {
306
257
  cellPropsLayers[name] = cellPropsLayers[name] || [];
@@ -309,7 +260,6 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
309
260
  }));
310
261
  });
311
262
  }
312
-
313
263
  if (child.type === DefinitionTable.Row) {
314
264
  rowPropsLayers.push(_objectSpread(_objectSpread({}, other), {}, {
315
265
  childrenPropsGetter: children
@@ -330,19 +280,15 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
330
280
  key: "dataToRows",
331
281
  value: function dataToRows(data, cellPropsLayers) {
332
282
  var _this3 = this;
333
-
334
283
  var parseData = function parseData(data, exclude) {
335
284
  return data.map(function (row) {
336
285
  var groupByName = {};
337
286
  var columnsWithoutRowGroup = {};
338
-
339
287
  for (var rowKey in row) {
340
288
  var columnNames = rowKey.split('/');
341
-
342
289
  if (columnNames.length >= 2) {
343
290
  var _iterator2 = _createForOfIteratorHelper(columnNames),
344
- _step2;
345
-
291
+ _step2;
346
292
  try {
347
293
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
348
294
  var _column2 = _step2.value;
@@ -361,7 +307,6 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
361
307
  columnsWithoutRowGroup[rowKey] = true;
362
308
  }
363
309
  }
364
-
365
310
  var rowsGroup = row[ROW_GROUP] || [];
366
311
  var rowsGroupedNames = Object.fromEntries(rowsGroup.map(function (subRow) {
367
312
  return Object.keys(subRow);
@@ -371,13 +316,11 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
371
316
  return [key, true];
372
317
  }));
373
318
  var isGroup = false;
374
-
375
319
  var cells = _this3.columns.map(function (column) {
376
320
  if (groupByName[column.name]) {
377
321
  var _groupByName$column$n = groupByName[column.name],
378
- groupedColumns = _groupByName$column$n.groupedColumns,
379
- groupData = _groupByName$column$n.groupData;
380
-
322
+ groupedColumns = _groupByName$column$n.groupedColumns,
323
+ groupData = _groupByName$column$n.groupData;
381
324
  if (groupedColumns[0] === column.name) {
382
325
  return {
383
326
  name: groupedColumns.join('/'),
@@ -414,12 +357,10 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
414
357
  }).map(function (column) {
415
358
  return column;
416
359
  });
417
-
418
360
  cells.flatRowData = row;
419
361
  return cells;
420
362
  });
421
363
  };
422
-
423
364
  return parseData(data, {});
424
365
  }
425
366
  }, {
@@ -431,13 +372,12 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
431
372
  key: "render",
432
373
  value: function render() {
433
374
  var _ref = this.asProps,
434
- _ref2;
435
-
375
+ _ref2;
436
376
  var SDataTable = Box;
437
377
  var _this$asProps2 = this.asProps,
438
- Children = _this$asProps2.Children,
439
- styles = _this$asProps2.styles,
440
- data = _this$asProps2.data;
378
+ Children = _this$asProps2.Children,
379
+ styles = _this$asProps2.styles,
380
+ data = _this$asProps2.data;
441
381
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, _assignProps({
442
382
  "__excludeProps": ['data'],
443
383
  "ref": this.tableRef,
@@ -446,25 +386,19 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
446
386
  }, _ref))), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
447
387
  }
448
388
  }]);
449
-
450
389
  return RootDefinitionTable;
451
390
  }(Component);
452
-
453
391
  _defineProperty(RootDefinitionTable, "displayName", 'DefinitionTable');
454
-
455
392
  _defineProperty(RootDefinitionTable, "style", style);
456
-
457
393
  _defineProperty(RootDefinitionTable, "defaultProps", {
458
394
  use: 'primary',
459
395
  uniqueKey: 'id',
460
396
  sort: [],
461
397
  data: []
462
398
  });
463
-
464
399
  function ComponentDefinition() {
465
400
  return null;
466
401
  }
467
-
468
402
  var DefinitionTable = createComponent(RootDefinitionTable, {
469
403
  Head: Head,
470
404
  Body: Body,
@@ -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","setBorderGroupColumns","columns","side","firstColumn","lastColumn","length","borderLeft","borderRight","RootDefinitionTable","props","createRef","event","column","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","vBorders","lastColumnChildren","isGroup","childrenToColumns","some","c","map","join","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","columnsWithoutRowGroup","rowKey","columnNames","groupedColumns","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 /** Add vertical borders */\n vBorders?: boolean;\n /** Add vertical border to the right side */\n borderRight?: boolean;\n /** Add vertical border to the left side */\n borderLeft?: boolean;\n /** Make cells less */\n compact?: boolean;\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\n /** Rows table */\n rows?: DataTableRow[];\n /** When enabled, only visually acessable rows are rendered.\n * `tollerance` property controls how many rows outside of viewport are render.\n * `rowHeight` fixes the rows height if it has known. If not provided, first row node height is measured.\n * @default { tollerance: 2 }\n */\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\n /** Theme for cell */\n theme?: DataTableTheme;\n}\n\nfunction setBorderGroupColumns(columns: Column[], side?: string) {\n const firstColumn = columns[0];\n const lastColumn = columns[columns.length - 1];\n if (firstColumn && (!side || side === 'left')) {\n firstColumn.borderLeft = true;\n if (firstColumn.columns) {\n setBorderGroupColumns(firstColumn.columns, 'left');\n }\n }\n if (lastColumn && (!side || side === 'right')) {\n lastColumn.borderRight = true;\n if (lastColumn.columns) {\n setBorderGroupColumns(lastColumn.columns, 'right');\n }\n }\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\n }\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n flex,\n vBorders,\n active,\n ...props\n } = child.props as Column['props'];\n const lastColumnChildren = columnsChildren[columnsChildren.length - 1];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n active = typeof active === 'boolean' ? active : columns.some((c) => c.active);\n\n if (vBorders) {\n setBorderGroupColumns(columns);\n }\n\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n const columnChildren = {\n get width() {\n // @ts-ignore\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n varWidth: createCssVarForWidth(name),\n setVar: flex !== 'inherit',\n fixed,\n resizable,\n active: typeof active === 'boolean' ? active : sort[0] === name,\n sortable,\n borderLeft: lastColumnChildren?.borderRight === true ? false : vBorders,\n borderRight: vBorders,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),\n props: {\n name,\n flex: flex === 'inherit' ? undefined : flex,\n ...props,\n // @ts-ignore\n forwardRef: child.ref,\n children,\n ref: column?.props?.ref || React.createRef(),\n },\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey } = this.asProps;\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const columnsWithoutRowGroup: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n columnsWithoutRowGroup[column] = true;\n }\n } else {\n columnsWithoutRowGroup[rowKey] = true;\n }\n }\n\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .map((subRow) => Object.keys(subRow))\n .flat()\n .map(key => key.split('/'))\n .flat()\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...exclude,\n ...columnsWithoutRowGroup,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n // add empty cell if it is not present in data\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles, data } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role='table'\n aria-rowcount={(data ?? []).length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":["React","createComponent","Component","Root","sstyled","Box","syncScroll","callAllEventHandlers","fire","flattenColumns","Head","Body","style","_sstyled","insert","REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","concat","replace","setBorderGroupColumns","columns","side","firstColumn","lastColumn","length","borderLeft","borderRight","RootDefinitionTable","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","event","column","find","active","sortDirection","forceUpdate","_this$tableRef","_this$tableRef$curren","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","_createClass","key","value","setVarStyle","_iterator","_createForOfIteratorHelper","_step","s","n","done","setVar","_this$tableRef$curren2","setProperty","varWidth","width","err","e","f","childrenToColumns","children","_this2","options","arguments","undefined","fixed","sort","asProps","columnsChildren","Children","forEach","child","_column$props","isValidElement","type","DefinitionTable","Column","_ref3","_ref3$fixed","resizable","sortable","flex","vBorders","_objectWithoutProperties","_excluded","lastColumnChildren","isGroup","some","c","map","_ref4","join","toArray","filter","columnChildren","_this$props$ref$curre","ref","getBoundingClientRect","_objectSpread","forwardRef","push","getHeadProps","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","getBodyProps","_this$asProps","data","uniqueKey","cellPropsLayers","rowPropsLayers","_ref5","other","_excluded2","Cell","split","childrenPropsGetter","Row","rows","dataToRows","_this3","parseData","exclude","row","groupByName","columnsWithoutRowGroup","rowKey","columnNames","_iterator2","_step2","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","cells","_groupByName$column$n","cssVar","flatRowData","componentDidUpdate","render","_ref","_ref2","SDataTable","_this$asProps2","styles","createElement","cn","_assignProps","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 /** Add vertical borders */\n vBorders?: boolean;\n /** Add vertical border to the right side */\n borderRight?: boolean;\n /** Add vertical border to the left side */\n borderLeft?: boolean;\n /** Make cells less */\n compact?: boolean;\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\n /** Rows table */\n rows?: DataTableRow[];\n /** When enabled, only visually acessable rows are rendered.\n * `tollerance` property controls how many rows outside of viewport are render.\n * `rowHeight` fixes the rows height if it has known. If not provided, first row node height is measured.\n * @default { tollerance: 2 }\n */\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\n /** Theme for cell */\n theme?: DataTableTheme;\n}\n\nfunction setBorderGroupColumns(columns: Column[], side?: string) {\n const firstColumn = columns[0];\n const lastColumn = columns[columns.length - 1];\n if (firstColumn && (!side || side === 'left')) {\n firstColumn.borderLeft = true;\n if (firstColumn.columns) {\n setBorderGroupColumns(firstColumn.columns, 'left');\n }\n }\n if (lastColumn && (!side || side === 'right')) {\n lastColumn.borderRight = true;\n if (lastColumn.columns) {\n setBorderGroupColumns(lastColumn.columns, 'right');\n }\n }\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\n }\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n flex,\n vBorders,\n active,\n ...props\n } = child.props as Column['props'];\n const lastColumnChildren = columnsChildren[columnsChildren.length - 1];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n active = typeof active === 'boolean' ? active : columns.some((c) => c.active);\n\n if (vBorders) {\n setBorderGroupColumns(columns);\n }\n\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n const columnChildren = {\n get width() {\n // @ts-ignore\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n varWidth: createCssVarForWidth(name),\n setVar: flex !== 'inherit',\n fixed,\n resizable,\n active: typeof active === 'boolean' ? active : sort[0] === name,\n sortable,\n borderLeft: lastColumnChildren?.borderRight === true ? false : vBorders,\n borderRight: vBorders,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),\n props: {\n name,\n flex: flex === 'inherit' ? undefined : flex,\n ...props,\n // @ts-ignore\n forwardRef: child.ref,\n children,\n ref: column?.props?.ref || React.createRef(),\n },\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey } = this.asProps;\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const columnsWithoutRowGroup: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n columnsWithoutRowGroup[column] = true;\n }\n } else {\n columnsWithoutRowGroup[rowKey] = true;\n }\n }\n\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .map((subRow) => Object.keys(subRow))\n .flat()\n .map(key => key.split('/'))\n .flat()\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...exclude,\n ...columnsWithoutRowGroup,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n // add empty cell if it is not present in data\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles, data } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role='table'\n aria-rowcount={(data ?? []).length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,eAAe,IAAIC,SAAS,EAAgBC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AACvF,SAASC,GAAG,QAA+B,mBAAmB;AAC9D,OAAOC,UAAU,MAAM,+BAA+B;AACtD,SAASC,oBAAoB,QAAQ,gCAAgC;AACrE,OAAOC,IAAI,MAAM,yBAAyB;AAC1C,SAASC,cAAc,QAAQ,SAAS;AASxC,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAAC;AAAA,IAAAC,KAAA,+BAAAC,QAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,IAAMC,uBAAwE,GAAG;EAC/EC,IAAI,EAAE,KAAK;EACXC,GAAG,EAAE;AACP,CAAC;AACD,IAAMC,sBAAqC,GAAG,MAAM;AAEpD,IAAMC,SAAS,GAAGC,MAAM,CAAC,WAAW,CAAC;AAErC,IAAMC,SAAS,GAAG,OAAO;AAEzB,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,IAAY,EAAK;EAC7C,YAAAC,MAAA,CAAYD,IAAI,CAACE,OAAO,CAACJ,SAAS,EAAE,GAAG,CAAC;AAC1C,CAAC;AA0HD,SAASK,qBAAqBA,CAACC,OAAiB,EAAEC,IAAa,EAAE;EAC/D,IAAMC,WAAW,GAAGF,OAAO,CAAC,CAAC,CAAC;EAC9B,IAAMG,UAAU,GAAGH,OAAO,CAACA,OAAO,CAACI,MAAM,GAAG,CAAC,CAAC;EAC9C,IAAIF,WAAW,KAAK,CAACD,IAAI,IAAIA,IAAI,KAAK,MAAM,CAAC,EAAE;IAC7CC,WAAW,CAACG,UAAU,GAAG,IAAI;IAC7B,IAAIH,WAAW,CAACF,OAAO,EAAE;MACvBD,qBAAqB,CAACG,WAAW,CAACF,OAAO,EAAE,MAAM,CAAC;IACpD;EACF;EACA,IAAIG,UAAU,KAAK,CAACF,IAAI,IAAIA,IAAI,KAAK,OAAO,CAAC,EAAE;IAC7CE,UAAU,CAACG,WAAW,GAAG,IAAI;IAC7B,IAAIH,UAAU,CAACH,OAAO,EAAE;MACtBD,qBAAqB,CAACI,UAAU,CAACH,OAAO,EAAE,OAAO,CAAC;IACpD;EACF;AACF;AAAC,IAEKO,mBAAmB,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,mBAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,mBAAA;EAkBvB,SAAAA,oBAAYK,KAAc,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAP,mBAAA;IAC1BM,KAAA,GAAAH,MAAA,CAAAK,IAAA,OAAMH,KAAK;IAAEI,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,cAPK,EAAE;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,4BAEXxC,KAAK,CAAC6C,SAAS,EAAe;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,oBACyB,IAAI;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,oBACJ,IAAI;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,uBAWnD,UAACjB,IAAY,EAAEuB,KAAuB,EAAK;MAC5D,IAAMC,MAAM,GAAGP,KAAA,CAAKb,OAAO,CAACqB,IAAI,CAAC,UAACD,MAAM;QAAA,OAAKA,MAAM,CAACxB,IAAI,KAAKA,IAAI;MAAA,EAAE;MACnE,OAAOf,IAAI,CAAAoC,sBAAA,CAAAJ,KAAA,GAET,cAAc,EACd,CACEO,MAAM,CAACxB,IAAI,EACXwB,MAAM,CAACE,MAAM,GAAGlC,uBAAuB,CAACgC,MAAM,CAACG,aAAa,CAAC,GAAGH,MAAM,CAACG,aAAa,CACrF,EACDJ,KAAK,CACN;IACH,CAAC;IAAAH,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,oBAEe,YAAM;MACpBA,KAAA,CAAKW,WAAW,EAAE;IACpB,CAAC;IAAAR,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,iBAEY,YAAM;MAAA,IAAAY,cAAA,EAAAC,qBAAA;MACjB,CAAAD,cAAA,GAAAZ,KAAA,CAAKc,QAAQ,cAAAF,cAAA,wBAAAC,qBAAA,GAAbD,cAAA,CAAeG,OAAO,cAAAF,qBAAA,uBAAtBA,qBAAA,CAAwBG,cAAc,CAAC;QACrCC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE,SAAS;QACjBC,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ,CAAC;IA7BC,IAAMd,SAAS,GAAGvC,UAAU,EAAE;IAC9B;IACAkC,KAAA,CAAKoB,aAAa,GAAGf,SAAS,CAAC,MAAM,CAAC;IACtCL,KAAA,CAAKqB,aAAa,GAAGhB,SAAS,CAAC,MAAM,CAAC;IAAC,OAAAL,KAAA;EACzC;EAACsB,YAAA,CAAA5B,mBAAA;IAAA6B,GAAA;IAAAC,KAAA,EA2BD,SAAAC,YAAYtC,OAAiB,EAAE;MAAA,IAAAuC,SAAA,GAAAC,0BAAA,CACRxC,OAAO;QAAAyC,KAAA;MAAA;QAA5B,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA8B;UAAA,IAAnBxB,OAAM,GAAAqB,KAAA,CAAAJ,KAAA;UACf,IAAIjB,OAAM,CAACyB,MAAM,EAAE;YAAA,IAAAC,sBAAA;YACjB,CAAAA,sBAAA,OAAI,CAACnB,QAAQ,CAACC,OAAO,cAAAkB,sBAAA,uBAArBA,sBAAA,CAAuB7D,KAAK,CAAC8D,WAAW,CAAC3B,OAAM,CAAC4B,QAAQ,KAAAnD,MAAA,CAAKuB,OAAM,CAAC6B,KAAK,QAAK;UAChF;QACF;MAAC,SAAAC,GAAA;QAAAX,SAAA,CAAAY,CAAA,CAAAD,GAAA;MAAA;QAAAX,SAAA,CAAAa,CAAA;MAAA;IACH;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAAgB,kBACEC,QAAyB,EAEzB;MAAA,IAAAC,MAAA;MAAA,IADAC,OAAqC,GAAAC,SAAA,CAAArD,MAAA,QAAAqD,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG;QAAEE,KAAK,EAAED;MAAU,CAAC;MAE5D,IAAQE,IAAI,GAAK,IAAI,CAACC,OAAO,CAArBD,IAAI;MACZ,IAAME,eAAyB,GAAG,EAAE;MACpCzF,KAAK,CAAC0F,QAAQ,CAACC,OAAO,CAACV,QAAQ,EAAE,UAACW,KAAK,EAAK;QAAA,IAAAC,aAAA;QAC1C,IAAI,eAAC7F,KAAK,CAAC8F,cAAc,CAACF,KAAK,CAAC,EAAE;QAClC,IAAIA,KAAK,CAACG,IAAI,KAAKC,eAAe,CAACC,MAAM,EAAE;QAE3C,IAAAC,KAAA,GAUIN,KAAK,CAACrD,KAAK;UATb0C,QAAQ,GAAAiB,KAAA,CAARjB,QAAQ;UACR1D,IAAI,GAAA2E,KAAA,CAAJ3E,IAAI;UAAA4E,WAAA,GAAAD,KAAA,CACJZ,KAAK;UAALA,KAAK,GAAAa,WAAA,cAAGhB,OAAO,CAACG,KAAK,GAAAa,WAAA;UACrBC,SAAS,GAAAF,KAAA,CAATE,SAAS;UACTC,QAAQ,GAAAH,KAAA,CAARG,QAAQ;UACRC,IAAI,GAAAJ,KAAA,CAAJI,IAAI;UACJC,QAAQ,GAAAL,KAAA,CAARK,QAAQ;UACRtD,MAAM,GAAAiD,KAAA,CAANjD,MAAM;UACHV,KAAK,GAAAiE,wBAAA,CAAAN,KAAA,EAAAO,SAAA;QAEV,IAAMC,kBAAkB,GAAGjB,eAAe,CAACA,eAAe,CAAC1D,MAAM,GAAG,CAAC,CAAC;QACtE,IAAM4E,OAAO,GAAG,CAACpF,IAAI;QACrB,IAAII,OAA6B;QAEjC,IAAIgF,OAAO,EAAE;UACXhF,OAAO,GAAGuD,MAAI,CAACF,iBAAiB,CAACC,QAAQ,EAAE;YAAEK,KAAK,EAALA;UAAM,CAAC,CAAC;UACrDrC,MAAM,GAAG,OAAOA,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGtB,OAAO,CAACiF,IAAI,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAAC5D,MAAM;UAAA,EAAC;UAE7E,IAAIsD,QAAQ,EAAE;YACZ7E,qBAAqB,CAACC,OAAO,CAAC;UAChC;UAEAJ,IAAI,GAAGd,cAAc,CAACkB,OAAO,CAAC,CAC3BmF,GAAG,CAAC,UAAAC,KAAA;YAAA,IAAGxF,IAAI,GAAAwF,KAAA,CAAJxF,IAAI;YAAA,OAAOA,IAAI;UAAA,EAAC,CACvByF,IAAI,CAAC,GAAG,CAAC;UACZ,IAAI,CAACrF,OAAO,CAACI,MAAM,EAAE;UACrBkD,QAAQ,GAAGjF,KAAK,CAAC0F,QAAQ,CAACuB,OAAO,CAAChC,QAAQ,CAAC,CAACiC,MAAM,CAChD,UAACtB,KAAK;YAAA,OAAK,EAAE,cAAA5F,KAAK,CAAC8F,cAAc,CAACF,KAAK,CAAC,IAAIA,KAAK,CAACG,IAAI,KAAKC,eAAe,CAACC,MAAM,CAAC;UAAA,EACnF;QACH;QAEA,IAAMlD,MAAM,GAAGmC,MAAI,CAACvD,OAAO,CAACqB,IAAI,CAAC,UAACD,MAAM;UAAA,OAAKA,MAAM,CAACxB,IAAI,KAAKA,IAAI;QAAA,EAAC;QAClE,IAAM4F,cAAc,GAAG;UACrB,IAAIvC,KAAKA,CAAA,EAAG;YAAA,IAAAwC,qBAAA;YACV;YACA,OAAO,EAAAA,qBAAA,OAAI,CAAC7E,KAAK,CAAC8E,GAAG,CAAC9D,OAAO,cAAA6D,qBAAA,uBAAtBA,qBAAA,CAAwBE,qBAAqB,EAAE,CAAC1C,KAAK,KAAI,CAAC;UACnE,CAAC;UACDrD,IAAI,EAAJA,IAAI;UACJoD,QAAQ,EAAErD,oBAAoB,CAACC,IAAI,CAAC;UACpCiD,MAAM,EAAE8B,IAAI,KAAK,SAAS;UAC1BhB,KAAK,EAALA,KAAK;UACLc,SAAS,EAATA,SAAS;UACTnD,MAAM,EAAE,OAAOA,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGsC,IAAI,CAAC,CAAC,CAAC,KAAKhE,IAAI;UAC/D8E,QAAQ,EAARA,QAAQ;UACRrE,UAAU,EAAE,CAAA0E,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEzE,WAAW,MAAK,IAAI,GAAG,KAAK,GAAGsE,QAAQ;UACvEtE,WAAW,EAAEsE,QAAQ;UACrBrD,aAAa,EACXqC,IAAI,CAAC,CAAC,CAAC,KAAKhE,IAAI,GACZgE,IAAI,CAAC,CAAC,CAAC,GACP,CAAAxC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,aAAa,MACtB,OAAOmD,QAAQ,IAAI,QAAQ,GAAGA,QAAQ,GAAGnF,sBAAsB,CAAC;UACrEqB,KAAK,EAAAgF,aAAA,CAAAA,aAAA;YACHhG,IAAI,EAAJA,IAAI;YACJ+E,IAAI,EAAEA,IAAI,KAAK,SAAS,GAAGjB,SAAS,GAAGiB;UAAI,GACxC/D,KAAK;YACR;YACAiF,UAAU,EAAE5B,KAAK,CAACyB,GAAG;YACrBpC,QAAQ,EAARA,QAAQ;YACRoC,GAAG,EAAE,CAAAtE,MAAM,aAANA,MAAM,wBAAA8C,aAAA,GAAN9C,MAAM,CAAER,KAAK,cAAAsD,aAAA,uBAAbA,aAAA,CAAewB,GAAG,kBAAIrH,KAAK,CAAC6C,SAAS;UAAE;QAEhD,CAAsB;QAEtB,IAAIlB,OAAO,EAAE;UACXwF,cAAc,CAACxF,OAAO,GAAGA,OAAO;QAClC;QACA8D,eAAe,CAACgC,IAAI,CAACN,cAAc,CAAC;MACtC,CAAC,CAAC;MACF,OAAO1B,eAAe;IACxB;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA0D,aAAanF,KAAkB,EAAE;MAC/B,IAAQoF,GAAG,GAAK,IAAI,CAACnC,OAAO,CAApBmC,GAAG;MACX,IAAMlC,eAAe,GAAG,IAAI,CAACT,iBAAiB,CAACzC,KAAK,CAAC0C,QAAQ,CAAC;MAE9D,IAAI,CAACtD,OAAO,GAAGlB,cAAc,CAACgF,eAAe,CAAC;MAC9C,OAAO;QACLmC,YAAY,EAAErH,oBAAoB,CAAC,IAAI,CAACsH,gBAAgB,EAAE,IAAI,CAACC,UAAU,CAAC;QAC1ErC,eAAe,EAAfA,eAAe;QACfkC,GAAG,EAAHA,GAAG;QACHI,QAAQ,EAAE,IAAI,CAACC,aAAa;QAC5BC,UAAU,EAAE,IAAI,CAACpE;MACnB,CAAC;IACH;EAAC;IAAAE,GAAA;IAAAC,KAAA,EAED,SAAAkE,aAAa3F,KAAkB,EAAE;MAC/B,IAAA4F,aAAA,GAAiC,IAAI,CAAC3C,OAAO;QAArC4C,IAAI,GAAAD,aAAA,CAAJC,IAAI;QAAET,GAAG,GAAAQ,aAAA,CAAHR,GAAG;QAAEU,SAAS,GAAAF,aAAA,CAATE,SAAS;MAC5B,IAAMC,eAAuD,GAAG,CAAC,CAAC;MAClE,IAAMC,cAA4B,GAAG,EAAE;MAEvCvI,KAAK,CAAC0F,QAAQ,CAACC,OAAO,CAACpD,KAAK,CAAC0C,QAAQ,EAAE,UAACW,KAAK,EAAK;QAChD,kBAAI5F,KAAK,CAAC8F,cAAc,CAACF,KAAK,CAAC,EAAE;UAC/B,IAAA4C,KAAA,GAAqC5C,KAAK,CAACrD,KAAK;YAAxChB,IAAI,GAAAiH,KAAA,CAAJjH,IAAI;YAAE0D,QAAQ,GAAAuD,KAAA,CAARvD,QAAQ;YAAKwD,KAAK,GAAAjC,wBAAA,CAAAgC,KAAA,EAAAE,UAAA;UAIhC,IAAI9C,KAAK,CAACG,IAAI,KAAKC,eAAe,CAAC2C,IAAI,IAAIpH,IAAI,EAAE;YAC/CA,IAAI,CAACqH,KAAK,CAAC,GAAG,CAAC,CAACjD,OAAO,CAAC,UAACpE,IAAI,EAAK;cAChC+G,eAAe,CAAC/G,IAAI,CAAC,GAAG+G,eAAe,CAAC/G,IAAI,CAAC,IAAI,EAAE;cACnD+G,eAAe,CAAC/G,IAAI,CAAC,CAACkG,IAAI,CAAAF,aAAA,CAAAA,aAAA,KACrBkB,KAAK;gBACRI,mBAAmB,EAAE5D;cAAQ,GAC7B;YACJ,CAAC,CAAC;UACJ;UACA,IAAIW,KAAK,CAACG,IAAI,KAAKC,eAAe,CAAC8C,GAAG,EAAE;YACtCP,cAAc,CAACd,IAAI,CAAAF,aAAA,CAAAA,aAAA,KACdkB,KAAK;cACRI,mBAAmB,EAAE5D;YAAQ,GAC7B;UACJ;QACF;MACF,CAAC,CAAC;MAEF,OAAO;QACLtD,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBoH,IAAI,EAAE,IAAI,CAACC,UAAU,CAACZ,IAAI,EAAEE,eAAe,CAAC;QAC5CD,SAAS,EAATA,SAAS;QACTV,GAAG,EAAHA,GAAG;QACHY,cAAc,EAAdA,cAAc;QACdN,UAAU,EAAE,IAAI,CAACrE;MACnB,CAAC;IACH;EAAC;IAAAG,GAAA;IAAAC,KAAA,EAED,SAAAgF,WAAWZ,IAAe,EAAEE,eAAuD,EAAE;MAAA,IAAAW,MAAA;MACnF,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAId,IAAe,EAAEe,OAAuC;QAAA,OACzEf,IAAI,CAACtB,GAAG,CAAC,UAACsC,GAAG,EAAK;UAChB,IAAMC,WAKL,GAAG,CAAC,CAAC;UACN,IAAMC,sBAAsD,GAAG,CAAC,CAAC;UACjE,KAAK,IAAMC,MAAM,IAAIH,GAAG,EAAE;YACxB,IAAMI,WAAW,GAAGD,MAAM,CAACX,KAAK,CAAC,GAAG,CAAC;YACrC,IAAIY,WAAW,CAACzH,MAAM,IAAI,CAAC,EAAE;cAAA,IAAA0H,UAAA,GAAAtF,0BAAA,CACNqF,WAAW;gBAAAE,MAAA;cAAA;gBAAhC,KAAAD,UAAA,CAAApF,CAAA,MAAAqF,MAAA,GAAAD,UAAA,CAAAnF,CAAA,IAAAC,IAAA,GAAkC;kBAAA,IAAvBxB,QAAM,GAAA2G,MAAA,CAAA1F,KAAA;kBACfqF,WAAW,CAACtG,QAAM,CAAC,GAAG;oBACpB4G,cAAc,EAAEH,WAAW;oBAC3BI,SAAS,EAAER,GAAG,CAACG,MAAM;kBACvB,CAAC;kBACDD,sBAAsB,CAACvG,QAAM,CAAC,GAAG,IAAI;gBACvC;cAAC,SAAA8B,GAAA;gBAAA4E,UAAA,CAAA3E,CAAA,CAAAD,GAAA;cAAA;gBAAA4E,UAAA,CAAA1E,CAAA;cAAA;YACH,CAAC,MAAM;cACLuE,sBAAsB,CAACC,MAAM,CAAC,GAAG,IAAI;YACvC;UACF;UAEA,IAAMM,SAAS,GAAGT,GAAG,CAACjI,SAAS,CAAC,IAAI,EAAE;UACtC,IAAM2I,gBAAgB,GAAGC,MAAM,CAACC,WAAW,CACzCH,SAAS,CACN/C,GAAG,CAAC,UAACmD,MAAM;YAAA,OAAKF,MAAM,CAACG,IAAI,CAACD,MAAM,CAAC;UAAA,EAAC,CACpCE,IAAI,EAAE,CACNrD,GAAG,CAAC,UAAA/C,GAAG;YAAA,OAAIA,GAAG,CAAC6E,KAAK,CAAC,GAAG,CAAC;UAAA,EAAC,CAC1BuB,IAAI,EAAE,CACNrD,GAAG,CAAC,UAAC/C,GAAG;YAAA,OAAK,CAACA,GAAG,EAAE,IAAI,CAAC;UAAA,EAAC,CAC7B;UAED,IAAI4C,OAAO,GAAG,KAAK;UAEnB,IAAMyD,KAAkB,GAAGnB,MAAI,CAACtH,OAAO,CACpCmF,GAAG,CAAC,UAAC/D,MAAM,EAAK;YACf,IAAIsG,WAAW,CAACtG,MAAM,CAACxB,IAAI,CAAC,EAAE;cAC5B,IAAA8I,qBAAA,GAAsChB,WAAW,CAACtG,MAAM,CAACxB,IAAI,CAAC;gBAAtDoI,cAAc,GAAAU,qBAAA,CAAdV,cAAc;gBAAEC,SAAS,GAAAS,qBAAA,CAATT,SAAS;cACjC,IAAID,cAAc,CAAC,CAAC,CAAC,KAAK5G,MAAM,CAACxB,IAAI,EAAE;gBACrC,OAAO;kBACLA,IAAI,EAAEoI,cAAc,CAAC3C,IAAI,CAAC,GAAG,CAAC;kBAC9BsD,MAAM,EAAEX,cAAc,CAAC7C,GAAG,CAACxF,oBAAoB,CAAC;kBAChDgE,KAAK,EAAEvC,MAAM,CAACuC,KAAK;kBACnB8C,IAAI,EAAEwB,SAAS;kBACftB,eAAe,EAAEA,eAAe,CAACvF,MAAM,CAACxB,IAAI,CAAC,IAAI;gBACnD,CAAC;cACH;YACF,CAAC,MAAM,IAAIwB,MAAM,CAACxB,IAAI,IAAI6H,GAAG,EAAE;cAC7B,OAAO;gBACL7H,IAAI,EAAEwB,MAAM,CAACxB,IAAI;gBACjB+I,MAAM,EAAEvH,MAAM,CAAC4B,QAAQ;gBACvBW,KAAK,EAAEvC,MAAM,CAACuC,KAAK;gBACnB8C,IAAI,EAAEgB,GAAG,CAACrG,MAAM,CAACxB,IAAI,CAAC;gBACtB+G,eAAe,EAAEA,eAAe,CAACvF,MAAM,CAACxB,IAAI,CAAC,IAAI;cACnD,CAAC;YACH,CAAC,MAAM,IAAI,CAACoF,OAAO,IAAImD,gBAAgB,CAAC/G,MAAM,CAACxB,IAAI,CAAC,EAAE;cACpD;cACAoF,OAAO,GAAG,IAAI;cACd,OAAOuC,SAAS,CAACW,SAAS,EAAAtC,aAAA,CAAAA,aAAA,KACrB4B,OAAO,GACPG,sBAAsB,EACzB;YACJ,CAAC,MAAM,IAAI,CAACH,OAAO,CAACpG,MAAM,CAACxB,IAAI,CAAC,IAAI,CAACuI,gBAAgB,CAAC/G,MAAM,CAACxB,IAAI,CAAC,EAAE;cAClE;cACA,OAAO;gBACLA,IAAI,EAAEwB,MAAM,CAACxB,IAAI;gBACjB+I,MAAM,EAAEvH,MAAM,CAAC4B,QAAQ;gBACvBW,KAAK,EAAEvC,MAAM,CAACuC,KAAK;gBACnB8C,IAAI,EAAE,IAAI;gBACVE,eAAe,EAAEA,eAAe,CAACvF,MAAM,CAACxB,IAAI,CAAC,IAAI;cACnD,CAAC;YACH;UACF,CAAC,CAAC,CACD2F,MAAM,CAAC,UAACnE,MAAM;YAAA,OAAKA,MAAM;UAAA,EAAC,CAC1B+D,GAAG,CAAC,UAAC/D,MAAM;YAAA,OAAKA,MAAM;UAAA,CAAC,CAAC;UAE3BqH,KAAK,CAACG,WAAW,GAAGnB,GAAG;UACvB,OAAOgB,KAAK;QACd,CAAC,CAAC;MAAA;MAEJ,OAAOlB,SAAS,CAACd,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5B;EAAC;IAAArE,GAAA;IAAAC,KAAA,EAED,SAAAwG,mBAAA,EAAqB;MACnB,IAAI,CAACvG,WAAW,CAAC,IAAI,CAACtC,OAAO,CAAC;IAChC;EAAC;IAAAoC,GAAA;IAAAC,KAAA,EAED,SAAAyG,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAlF,OAAA;QAAAmF,KAAA;MACP,IAAMC,UAAU,GAKJvK,GALW;MACvB,IAAAwK,cAAA,GAAmC,IAAI,CAACrF,OAAO;QAAvCE,QAAQ,GAAAmF,cAAA,CAARnF,QAAQ;QAAEoF,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAE1C,IAAI,GAAAyC,cAAA,CAAJzC,IAAI;MAE9B,OAAAuC,KAAA,GAAOvK,OAAO,CAAC0K,MAAM,CAAC,eACpB9K,KAAA,CAAA+K,aAAA,CAACH,UAAU,EAAAD,KAAA,CAAAK,EAAA,eAAAzD,aAAA,KAAA0D,YAAA;QAAA,kBAEO,CAAC,MAAM,CAAC;QAAA,OACnB,IAAI,CAAC3H,QAAQ;QAAA,QACb,OAAO;QAAA,iBACG,CAAC8E,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,EAAErG;MAAM,GAAA2I,IAAA,kBAElC1K,KAAA,CAAA+K,aAAA,CAACrF,QAAQ,EAAAiF,KAAA,CAAAK,EAAA,iBAAG,CACD;IAEjB;EAAC;EAAA,OAAA9I,mBAAA;AAAA,EA3S+BhC,SAAS;AAAAyC,eAAA,CAArCT,mBAAmB,iBACF,iBAAiB;AAAAS,eAAA,CADlCT,mBAAmB,WAGRtB,KAAK;AAAA+B,eAAA,CAHhBT,mBAAmB,kBAKD;EACpByF,GAAG,EAAE,SAAS;EACdU,SAAS,EAAE,IAAI;EACf9C,IAAI,EAAE,EAAE;EACR6C,IAAI,EAAE;AACR,CAAC;AAySH,SAAS8C,mBAAmBA,CAAA,EAAG;EAC7B,OAAO,IAAI;AACb;AAEA,IAAMlF,eAAe,GAAG/F,eAAe,CACrCiC,mBAAmB,EACnB;EACExB,IAAI,EAAJA,IAAI;EACJC,IAAI,EAAJA,IAAI;EACJsF,MAAM,EAAEiF,mBAAmB;EAC3BvC,IAAI,EAAEuC,mBAAmB;EACzBpC,GAAG,EAAEoC;AACP,CAAC,EACD,CAAC,CAAC,CAOH;AAED,SAAS/J,SAAS;AAClB,eAAe6E,eAAe"}