@semcore/data-table 4.42.0 → 4.43.0-prerelease.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/Body.js +7 -8
- package/lib/cjs/Body.js.map +1 -1
- package/lib/cjs/DataTable.js +36 -36
- package/lib/cjs/DataTable.js.map +1 -1
- package/lib/cjs/Head.js +109 -39
- package/lib/cjs/Head.js.map +1 -1
- package/lib/cjs/style/data-table.shadow.css +1 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/es6/Body.js +7 -8
- package/lib/es6/Body.js.map +1 -1
- package/lib/es6/DataTable.js +36 -36
- package/lib/es6/DataTable.js.map +1 -1
- package/lib/es6/Head.js +109 -39
- package/lib/es6/Head.js.map +1 -1
- package/lib/es6/style/data-table.shadow.css +1 -1
- package/lib/es6/types.js.map +1 -1
- package/lib/types/DataTable.d.ts +10 -0
- package/lib/types/Head.d.ts +7 -2
- package/lib/types/types.d.ts +2 -0
- package/package.json +6 -6
package/lib/es6/DataTable.js
CHANGED
|
@@ -22,42 +22,42 @@ import Head from './Head';
|
|
|
22
22
|
import Body from './Body';
|
|
23
23
|
import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
|
|
24
24
|
/*__reshadow-styles__:"./style/data-table.shadow.css"*/
|
|
25
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SDataTable_bs1ri_gg_,.___SHeadWrapper_bs1ri_gg_{position:relative}.___SDataTable_bs1ri_gg_.__compact_bs1ri_gg_ .___SCell_bs1ri_gg_,.___SDataTable_bs1ri_gg_.__compact_bs1ri_gg_ .___SColumn_bs1ri_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SHeadWrapper_bs1ri_gg_.__animationsDisabled_bs1ri_gg_ .___SColumn_bs1ri_gg_{transition:none}.___SHeadWrapper_bs1ri_gg_.__sticky_bs1ri_gg_{position:sticky;top:0;z-index:2}.___SHead_bs1ri_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_bs1ri_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;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,min-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,max-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SColumn_bs1ri_gg_:focus-visible{outline:0;box-shadow:inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SColumn_bs1ri_gg_.__hidden_bs1ri_gg_{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.___SColumn_bs1ri_gg_._use_primary_bs1ri_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_bs1ri_gg_._use_secondary_bs1ri_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_bs1ri_gg_.__group_bs1ri_gg_.__use_bs1ri_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_bs1ri_gg_.__groupHead_bs1ri_gg_{justify-content:center;z-index:1;border-bottom:none}.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_{cursor:pointer}.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_._use_primary_bs1ri_gg_:focus{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}@media (hover:hover){.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_._use_primary_bs1ri_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}}.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_._justifyContent_right_bs1ri_gg_:focus .___SSortWrapper_bs1ri_gg_{position:absolute;flex-basis:0;right:var(--intergalactic-spacing-3x, 12px)}@media (hover:hover){.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_._justifyContent_right_bs1ri_gg_:hover .___SSortWrapper_bs1ri_gg_{position:absolute;flex-basis:0;right:var(--intergalactic-spacing-3x, 12px)}}.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_._justifyContent_right_bs1ri_gg_.__active_bs1ri_gg_ .___SSortWrapper_bs1ri_gg_{position:relative;flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);right:0}.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_.__active_bs1ri_gg_ .___SSortWrapper_bs1ri_gg_,.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_:focus .___SSortWrapper_bs1ri_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}@media (hover:hover){.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_:hover .___SSortWrapper_bs1ri_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}}.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_.__active_bs1ri_gg_ .___SSortWrapper_bs1ri_gg_:before,.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_:focus .___SSortIcon_bs1ri_gg_,.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_:focus .___SSortWrapper_bs1ri_gg_:before{display:block;opacity:1}@media (hover:hover){.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_:hover .___SSortWrapper_bs1ri_gg_:before{display:block;opacity:1}}@media (hover:hover){.___SColumn_bs1ri_gg_.__sortable_bs1ri_gg_:hover .___SSortIcon_bs1ri_gg_{display:block;opacity:1}}.___SColumn_bs1ri_gg_._use_primary_bs1ri_gg_.__active_bs1ri_gg_{background-color:var(--intergalactic-table-th-primary-cell-active, #e0e1e9);width:100%}.___SColumn_bs1ri_gg_.__active_bs1ri_gg_ .___SSortIcon_bs1ri_gg_{display:block;opacity:1}.___SColumn_bs1ri_gg_.__resizable_bs1ri_gg_{border-right:1px solid transparent}@media (hover:hover){.___SColumn_bs1ri_gg_.__resizable_bs1ri_gg_:hover:after{border-right-color:var(--intergalactic-border-table-accent, #a9abb6)}}.___SColumn_bs1ri_gg_.__resizable_bs1ri_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_bs1ri_gg_.__fixed_bs1ri_gg_{position:sticky;z-index:2}.___SCell_bs1ri_gg_.__borderLeft_bs1ri_gg_,.___SColumn_bs1ri_gg_.__borderLeft_bs1ri_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_bs1ri_gg_.__borderRight_bs1ri_gg_,.___SColumn_bs1ri_gg_.__borderRight_bs1ri_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SSortWrapper_bs1ri_gg_{flex-shrink:1;position:relative;flex-basis:0;min-height:16px;opacity:0;transition:all calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SSortIcon_bs1ri_gg_,.___SSortWrapper_bs1ri_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_bs1ri_gg_:before{content:\"\";top:0;width:20px;height:100%}.___SSortIcon_bs1ri_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(1em*1.25 - 16px);margin-left:var(--intergalactic-spacing-1x, 4px)}.___SColumn_bs1ri_gg_._use_primary_bs1ri_gg_ .___SSortWrapper_bs1ri_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_bs1ri_gg_._use_secondary_bs1ri_gg_ .___SSortWrapper_bs1ri_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SBodyWrapper_bs1ri_gg_{position:relative}.___SBody_bs1ri_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_bs1ri_gg_{display:flex;flex-direction:row;position:relative}.___SRow_bs1ri_gg_.__active_bs1ri_gg_>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_._theme_muted_bs1ri_gg_.__active_bs1ri_gg_>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}@media (hover:hover){.___SRow_bs1ri_gg_ .___SCell_bs1ri_gg_:hover+.___SGroupCell_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_:hover>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_bs1ri_gg_._theme_muted_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}@media (hover:hover){.___SRow_bs1ri_gg_._theme_muted_bs1ri_gg_ .___SCell_bs1ri_gg_:hover+.___SGroupCell_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_._theme_muted_bs1ri_gg_:hover>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_:hover>.___SCell_bs1ri_gg_._theme_muted_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_bs1ri_gg_._theme_info_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_bs1ri_gg_._theme_info_bs1ri_gg_.__active_bs1ri_gg_>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-selected-active, #c4e5fe)}@media (hover:hover){.___SRow_bs1ri_gg_._theme_info_bs1ri_gg_ .___SCell_bs1ri_gg_:hover+.___SGroupCell_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_._theme_info_bs1ri_gg_:hover>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_:hover>.___SCell_bs1ri_gg_._theme_info_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}}.___SRow_bs1ri_gg_._theme_success_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_bs1ri_gg_._theme_success_bs1ri_gg_.__active_bs1ri_gg_>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-new-active, #9ef2c9)}@media (hover:hover){.___SRow_bs1ri_gg_._theme_success_bs1ri_gg_ .___SCell_bs1ri_gg_:hover+.___SGroupCell_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_._theme_success_bs1ri_gg_:hover>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_:hover>.___SCell_bs1ri_gg_._theme_success_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}}.___SRow_bs1ri_gg_._theme_warning_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_bs1ri_gg_._theme_warning_bs1ri_gg_.__active_bs1ri_gg_>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-warning-active, #ffdca2)}@media (hover:hover){.___SRow_bs1ri_gg_._theme_warning_bs1ri_gg_ .___SCell_bs1ri_gg_:hover+.___SGroupCell_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_._theme_warning_bs1ri_gg_:hover>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_:hover>.___SCell_bs1ri_gg_._theme_warning_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}}.___SRow_bs1ri_gg_._theme_danger_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_bs1ri_gg_._theme_danger_bs1ri_gg_.__active_bs1ri_gg_>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_){background-color:var(--intergalactic-table-td-cell-critical-active, #ffd7df)}@media (hover:hover){.___SRow_bs1ri_gg_._theme_danger_bs1ri_gg_ .___SCell_bs1ri_gg_:hover+.___SGroupCell_bs1ri_gg_ .___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_._theme_danger_bs1ri_gg_:hover>.___SCell_bs1ri_gg_:not(.__theme_bs1ri_gg_),.___SRow_bs1ri_gg_:hover>.___SCell_bs1ri_gg_._theme_danger_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_bs1ri_gg_.__positioned_bs1ri_gg_{position:absolute}.___SBody_bs1ri_gg_.__animationsDisabled_bs1ri_gg_ .___SCell_bs1ri_gg_{transition:none}.___SCell_bs1ri_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;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SCell_bs1ri_gg_._use_primary_bs1ri_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_bs1ri_gg_._use_secondary_bs1ri_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_bs1ri_gg_.__fixed_bs1ri_gg_{position:sticky;z-index:1}.___SCell_bs1ri_gg_._theme_muted_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_bs1ri_gg_._theme_info_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_bs1ri_gg_._theme_success_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_bs1ri_gg_._theme_warning_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_bs1ri_gg_._theme_danger_bs1ri_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SHeightHold_bs1ri_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}" /*__inner_css_end__*/, "bs1ri_gg_") /*__reshadow_css_end__*/, {
|
|
26
|
-
"__SDataTable": "
|
|
27
|
-
"__SHeadWrapper": "
|
|
28
|
-
"_sticky": "
|
|
29
|
-
"__SHead": "
|
|
30
|
-
"__SColumn": "
|
|
31
|
-
"_hidden": "
|
|
32
|
-
"_use_primary": "
|
|
33
|
-
"_use_secondary": "
|
|
34
|
-
"_group": "
|
|
35
|
-
"_use": "
|
|
36
|
-
"_groupHead": "
|
|
37
|
-
"_active": "
|
|
38
|
-
"__SSortIcon": "
|
|
39
|
-
"_fixed": "
|
|
40
|
-
"_borderLeft": "
|
|
41
|
-
"__SCell": "
|
|
42
|
-
"_borderRight": "
|
|
43
|
-
"__SSortWrapper": "
|
|
44
|
-
"__SBodyWrapper": "
|
|
45
|
-
"__SBody": "
|
|
46
|
-
"__SRow": "
|
|
47
|
-
"_theme": "
|
|
48
|
-
"__SGroupCell": "
|
|
49
|
-
"_theme_muted": "
|
|
50
|
-
"_theme_info": "
|
|
51
|
-
"_theme_success": "
|
|
52
|
-
"_theme_warning": "
|
|
53
|
-
"_theme_danger": "
|
|
54
|
-
"_positioned": "
|
|
55
|
-
"_animationsDisabled": "
|
|
56
|
-
"__SHeightHold": "
|
|
57
|
-
"_compact": "
|
|
58
|
-
"_sortable": "
|
|
59
|
-
"_justifyContent_right": "
|
|
60
|
-
"_resizable": "
|
|
25
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SDataTable_gjkzn_gg_,.___SHeadWrapper_gjkzn_gg_{position:relative}.___SDataTable_gjkzn_gg_.__compact_gjkzn_gg_ .___SCell_gjkzn_gg_,.___SDataTable_gjkzn_gg_.__compact_gjkzn_gg_ .___SColumn_gjkzn_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SHeadWrapper_gjkzn_gg_.__animationsDisabled_gjkzn_gg_ .___SColumn_gjkzn_gg_{transition:none}.___SHeadWrapper_gjkzn_gg_.__sticky_gjkzn_gg_{position:sticky;top:0;z-index:2}.___SHead_gjkzn_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_gjkzn_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;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,min-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,max-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SColumn_gjkzn_gg_:focus-visible{outline:0;box-shadow:inset var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SColumn_gjkzn_gg_.__hidden_gjkzn_gg_{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.___SColumn_gjkzn_gg_._use_primary_gjkzn_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_gjkzn_gg_._use_secondary_gjkzn_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_gjkzn_gg_.__group_gjkzn_gg_.__use_gjkzn_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_gjkzn_gg_.__groupHead_gjkzn_gg_{justify-content:center;z-index:1;border-bottom:none}.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_{cursor:pointer}.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_._use_primary_gjkzn_gg_:focus{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}@media (hover:hover){.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_._use_primary_gjkzn_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}}.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_._justifyContent_right_gjkzn_gg_:focus .___SSortWrapper_gjkzn_gg_{position:absolute;flex-basis:0;right:var(--intergalactic-spacing-3x, 12px)}@media (hover:hover){.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_._justifyContent_right_gjkzn_gg_:hover .___SSortWrapper_gjkzn_gg_{position:absolute;flex-basis:0;right:var(--intergalactic-spacing-3x, 12px)}}.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_._justifyContent_right_gjkzn_gg_.__active_gjkzn_gg_ .___SSortWrapper_gjkzn_gg_{position:relative;flex-basis:inherit;right:0}.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_.__active_gjkzn_gg_ .___SSortWrapper_gjkzn_gg_,.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_:focus .___SSortWrapper_gjkzn_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}@media (hover:hover){.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_:hover .___SSortWrapper_gjkzn_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}}.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_.__active_gjkzn_gg_ .___SSortWrapper_gjkzn_gg_:before,.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_:focus .___SSortIcon_gjkzn_gg_,.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_:focus .___SSortWrapper_gjkzn_gg_:before{display:block;opacity:1}@media (hover:hover){.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_:hover .___SSortWrapper_gjkzn_gg_:before{display:block;opacity:1}}@media (hover:hover){.___SColumn_gjkzn_gg_.__sortable_gjkzn_gg_:hover .___SSortIcon_gjkzn_gg_{display:block;opacity:1}}.___SColumn_gjkzn_gg_._use_primary_gjkzn_gg_.__active_gjkzn_gg_{background-color:var(--intergalactic-table-th-primary-cell-active, #e0e1e9);width:100%}.___SColumn_gjkzn_gg_.__active_gjkzn_gg_ .___SSortIcon_gjkzn_gg_{display:block;opacity:1}.___SColumn_gjkzn_gg_.__resizable_gjkzn_gg_{border-right:1px solid transparent}@media (hover:hover){.___SColumn_gjkzn_gg_.__resizable_gjkzn_gg_:hover:after{border-right-color:var(--intergalactic-border-table-accent, #a9abb6)}}.___SColumn_gjkzn_gg_.__resizable_gjkzn_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_gjkzn_gg_.__fixed_gjkzn_gg_{position:sticky;z-index:2}.___SCell_gjkzn_gg_.__borderLeft_gjkzn_gg_,.___SColumn_gjkzn_gg_.__borderLeft_gjkzn_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_gjkzn_gg_.__borderRight_gjkzn_gg_,.___SColumn_gjkzn_gg_.__borderRight_gjkzn_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SSortWrapper_gjkzn_gg_{flex-shrink:1;position:relative;flex-basis:0;min-height:16px;opacity:0;transition:all calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SSortIcon_gjkzn_gg_,.___SSortWrapper_gjkzn_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_gjkzn_gg_:before{content:\"\";top:0;width:20px;height:100%}.___SSortIcon_gjkzn_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(1em*1.25 - 16px);margin-left:var(--intergalactic-spacing-1x, 4px)}.___SColumn_gjkzn_gg_._use_primary_gjkzn_gg_ .___SSortWrapper_gjkzn_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_gjkzn_gg_._use_secondary_gjkzn_gg_ .___SSortWrapper_gjkzn_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SBodyWrapper_gjkzn_gg_{position:relative}.___SBody_gjkzn_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_gjkzn_gg_{display:flex;flex-direction:row;position:relative}.___SRow_gjkzn_gg_.__active_gjkzn_gg_>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_._theme_muted_gjkzn_gg_.__active_gjkzn_gg_>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}@media (hover:hover){.___SRow_gjkzn_gg_ .___SCell_gjkzn_gg_:hover+.___SGroupCell_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_:hover>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_gjkzn_gg_._theme_muted_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}@media (hover:hover){.___SRow_gjkzn_gg_._theme_muted_gjkzn_gg_ .___SCell_gjkzn_gg_:hover+.___SGroupCell_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_._theme_muted_gjkzn_gg_:hover>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_:hover>.___SCell_gjkzn_gg_._theme_muted_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}}.___SRow_gjkzn_gg_._theme_info_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_gjkzn_gg_._theme_info_gjkzn_gg_.__active_gjkzn_gg_>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-selected-active, #c4e5fe)}@media (hover:hover){.___SRow_gjkzn_gg_._theme_info_gjkzn_gg_ .___SCell_gjkzn_gg_:hover+.___SGroupCell_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_._theme_info_gjkzn_gg_:hover>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_:hover>.___SCell_gjkzn_gg_._theme_info_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}}.___SRow_gjkzn_gg_._theme_success_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_gjkzn_gg_._theme_success_gjkzn_gg_.__active_gjkzn_gg_>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-new-active, #9ef2c9)}@media (hover:hover){.___SRow_gjkzn_gg_._theme_success_gjkzn_gg_ .___SCell_gjkzn_gg_:hover+.___SGroupCell_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_._theme_success_gjkzn_gg_:hover>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_:hover>.___SCell_gjkzn_gg_._theme_success_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}}.___SRow_gjkzn_gg_._theme_warning_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_gjkzn_gg_._theme_warning_gjkzn_gg_.__active_gjkzn_gg_>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-warning-active, #ffdca2)}@media (hover:hover){.___SRow_gjkzn_gg_._theme_warning_gjkzn_gg_ .___SCell_gjkzn_gg_:hover+.___SGroupCell_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_._theme_warning_gjkzn_gg_:hover>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_:hover>.___SCell_gjkzn_gg_._theme_warning_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}}.___SRow_gjkzn_gg_._theme_danger_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_gjkzn_gg_._theme_danger_gjkzn_gg_.__active_gjkzn_gg_>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_){background-color:var(--intergalactic-table-td-cell-critical-active, #ffd7df)}@media (hover:hover){.___SRow_gjkzn_gg_._theme_danger_gjkzn_gg_ .___SCell_gjkzn_gg_:hover+.___SGroupCell_gjkzn_gg_ .___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_._theme_danger_gjkzn_gg_:hover>.___SCell_gjkzn_gg_:not(.__theme_gjkzn_gg_),.___SRow_gjkzn_gg_:hover>.___SCell_gjkzn_gg_._theme_danger_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_gjkzn_gg_.__positioned_gjkzn_gg_{position:absolute}.___SBody_gjkzn_gg_.__animationsDisabled_gjkzn_gg_ .___SCell_gjkzn_gg_{transition:none}.___SCell_gjkzn_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;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SCell_gjkzn_gg_._use_primary_gjkzn_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_gjkzn_gg_._use_secondary_gjkzn_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_gjkzn_gg_.__fixed_gjkzn_gg_{position:sticky;z-index:1}.___SCell_gjkzn_gg_._theme_muted_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_gjkzn_gg_._theme_info_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_gjkzn_gg_._theme_success_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_gjkzn_gg_._theme_warning_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_gjkzn_gg_._theme_danger_gjkzn_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SHeightHold_gjkzn_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}" /*__inner_css_end__*/, "gjkzn_gg_") /*__reshadow_css_end__*/, {
|
|
26
|
+
"__SDataTable": "___SDataTable_gjkzn_gg_",
|
|
27
|
+
"__SHeadWrapper": "___SHeadWrapper_gjkzn_gg_",
|
|
28
|
+
"_sticky": "__sticky_gjkzn_gg_",
|
|
29
|
+
"__SHead": "___SHead_gjkzn_gg_",
|
|
30
|
+
"__SColumn": "___SColumn_gjkzn_gg_",
|
|
31
|
+
"_hidden": "__hidden_gjkzn_gg_",
|
|
32
|
+
"_use_primary": "_use_primary_gjkzn_gg_",
|
|
33
|
+
"_use_secondary": "_use_secondary_gjkzn_gg_",
|
|
34
|
+
"_group": "__group_gjkzn_gg_",
|
|
35
|
+
"_use": "__use_gjkzn_gg_",
|
|
36
|
+
"_groupHead": "__groupHead_gjkzn_gg_",
|
|
37
|
+
"_active": "__active_gjkzn_gg_",
|
|
38
|
+
"__SSortIcon": "___SSortIcon_gjkzn_gg_",
|
|
39
|
+
"_fixed": "__fixed_gjkzn_gg_",
|
|
40
|
+
"_borderLeft": "__borderLeft_gjkzn_gg_",
|
|
41
|
+
"__SCell": "___SCell_gjkzn_gg_",
|
|
42
|
+
"_borderRight": "__borderRight_gjkzn_gg_",
|
|
43
|
+
"__SSortWrapper": "___SSortWrapper_gjkzn_gg_",
|
|
44
|
+
"__SBodyWrapper": "___SBodyWrapper_gjkzn_gg_",
|
|
45
|
+
"__SBody": "___SBody_gjkzn_gg_",
|
|
46
|
+
"__SRow": "___SRow_gjkzn_gg_",
|
|
47
|
+
"_theme": "__theme_gjkzn_gg_",
|
|
48
|
+
"__SGroupCell": "___SGroupCell_gjkzn_gg_",
|
|
49
|
+
"_theme_muted": "_theme_muted_gjkzn_gg_",
|
|
50
|
+
"_theme_info": "_theme_info_gjkzn_gg_",
|
|
51
|
+
"_theme_success": "_theme_success_gjkzn_gg_",
|
|
52
|
+
"_theme_warning": "_theme_warning_gjkzn_gg_",
|
|
53
|
+
"_theme_danger": "_theme_danger_gjkzn_gg_",
|
|
54
|
+
"_positioned": "__positioned_gjkzn_gg_",
|
|
55
|
+
"_animationsDisabled": "__animationsDisabled_gjkzn_gg_",
|
|
56
|
+
"__SHeightHold": "___SHeightHold_gjkzn_gg_",
|
|
57
|
+
"_compact": "__compact_gjkzn_gg_",
|
|
58
|
+
"_sortable": "__sortable_gjkzn_gg_",
|
|
59
|
+
"_justifyContent_right": "_justifyContent_right_gjkzn_gg_",
|
|
60
|
+
"_resizable": "__resizable_gjkzn_gg_"
|
|
61
61
|
});
|
|
62
62
|
var reversedSortDirection = {
|
|
63
63
|
desc: 'asc',
|
package/lib/es6/DataTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["React","createComponent","Component","Root","sstyled","Box","syncScroll","callAllEventHandlers","fire","flattenColumns","Head","Body","uniqueIDEnhancement","style","_sstyled","insert","reversedSortDirection","desc","asc","defaultSortDirection","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","_this2","animations","flatMap","_column$props$ref$cur","_column$props$ref$cur2","ref","getAnimations","filter","a","undefined","animationPromise","Promise","resolve","all","map","animation","finished","then","_iterator","_createForOfIteratorHelper","_step","s","n","done","setVar","_this2$tableRef$curre","setProperty","varWidth","width","err","e","f","console","error","childrenToColumns","children","_this3","options","arguments","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","_ref4","join","toArray","columnChildren","_this$props$ref$curre","getBoundingClientRect","_objectSpread","forwardRef","parentColumns","unshift","push","getHeadProps","_this$asProps","use","uid","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","getBodyProps","_this$asProps2","data","uniqueKey","cellPropsLayers","rowPropsLayers","_ref5","other","_excluded2","Cell","split","childrenPropsGetter","Row","rows","dataToRows","_this4","parseData","exclude","row","groupByName","columnsWithoutRowGroup","rowKey","columnNames","_iterator2","_step2","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","cells","_groupByName$column$n","cssVar","flatRowData","componentDidMount","componentDidUpdate","render","_ref","_ref2","SDataTable","_this$asProps3","styles","createElement","cn","_assignProps","ComponentDefinition","wrapDataTable","wrapper","wrapDataTableRow","wrapDataTableCell"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, {\n Component,\n PropGetterFn,\n Root,\n sstyled,\n UnknownProperties,\n Intergalactic,\n} from '@semcore/core';\nimport { Box, BoxProps, FlexProps } 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';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/data-table.shadow.css';\n\nconst reversedSortDirection: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst defaultSortDirection: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;\\W]/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 uid?: string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n uid: string;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n uid: string;\n};\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort<Columns extends string | number | symbol = string> = [\n sortBy: Columns,\n sortDirection: 'desc' | 'asc',\n];\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\n/** @deprecated */\nexport interface IDataTableProps<\n DataTableData extends { [key: string]: any }[] = UnknownProperties[],\n> extends DataTableProps<DataTableData> {}\nexport type DataTableProps<DataTableData extends { [key: string]: any }[] = UnknownProperties[]> =\n BoxProps & {\n /** Table theme according to visual hierarchy on the page\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData;\n /** Active sort object */\n sort?: DataTableSort<keyof DataTableData[0]>;\n /** Handler call when request will change sort */\n onSortChange?: (sort: DataTableSort<keyof DataTableData[0]>, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all dataset\n * @default id\n */\n uniqueKey?: keyof DataTableData[0];\n /** Make cells compact by changing left and right paddings to smaller ones*/\n compact?: boolean;\n };\n\n/** @deprecated */\nexport interface IDataTableHeadProps extends DataTableHeadProps, UnknownProperties {}\nexport type DataTableHeadProps = BoxProps & {\n /** Sticky table header\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll (as action) */\n disabledScroll?: boolean;\n\n /** Enable scroll bar element in header */\n withScrollBar?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableColumnProps extends DataTableColumnProps, UnknownProperties {}\nexport type DataTableColumnProps = FlexProps & {\n /** Unique column name */\n name?: string;\n /** Enable sorting for column. And if you are passing a string, you can also set the default sorting */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fix column on the left o right side of the table */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column */\n flex?: Property.Flex | 'inherit';\n /** Add vertical border to the column */\n vBorders?: boolean;\n /** Add vertical border to the right side of the cell */\n borderRight?: boolean;\n /** Add vertical border to the left side of the cell */\n borderLeft?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableBodyProps extends DataTableBodyProps, UnknownProperties {}\nexport type DataTableBodyProps = BoxProps & {\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 /** Allows to redefine rows renderning for a very deep and even fragile customization like building custom virtual scrolling */\n renderRows?: (props: {\n rows: DataTableRow[];\n columns: Column[];\n renderRow: (row: DataTableRow, details: { dataIndex: number }) => React.ReactNode;\n }) => React.ReactNode;\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n\n /** Ref for table body container */\n scrollContainerRef?: React.Ref<HTMLDivElement>;\n};\n\n/** @deprecated */\nexport interface IDataTableRowProps extends DataTableRowProps, UnknownProperties {}\nexport type DataTableRowProps = BoxProps & {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Sets row state to active*/\n active?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableCellProps extends DataTableCellProps, UnknownProperties {}\nexport type DataTableCellProps<Name extends string = string> = FlexProps & {\n /** Unique name for column or columns separated by / */\n name: Name;\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 static enhance = [uniqueIDEnhancement()];\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 ? reversedSortDirection[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 const animations = columns\n .flatMap((column) => column.props.ref.current?.getAnimations?.())\n .filter((a) => a !== undefined) as Animation[];\n\n let animationPromise: Promise<Animation[] | void> = Promise.resolve();\n\n if (animations.length > 0) {\n animationPromise = Promise.all(\n animations.map((animation) => {\n return animation.finished;\n }),\n );\n }\n\n animationPromise\n .then(() => {\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 .catch((err) => {\n console.error(err);\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 : defaultSortDirection),\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 parentColumns: [],\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n columns.forEach((column) => column.parentColumns.unshift(columnChildren));\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use, uid } = 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 uid,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey, uid } = 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 uid,\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 .flatMap((subRow) => Object.keys(subRow))\n .flatMap((key) => key.split('/'))\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 componentDidMount() {\n this.setVarStyle(this.columns);\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\ntype DataTableCtx = {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n};\n\nfunction ComponentDefinition() {\n return null;\n}\n\ntype IntergalacticDataTableComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n DataTableProps<Data> & PropsExtending,\n DataTableCtx,\n never\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableProps>;\n\ntype IntergalacticDataTableRowComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableRowProps & {\n /**\n * That property is ONLY used for the component strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableRowProps>;\n\ntype IntergalacticDataTableCellComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[] = [],\n Name extends string = string,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableCellProps<Name> & {\n /**\n * That property is ONLY used for the componenct strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableCellProps>;\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as IntergalacticDataTableComponent & {\n Head: Intergalactic.Component<'div', DataTableHeadProps>;\n Body: Intergalactic.Component<'div', DataTableBodyProps>;\n Column: Intergalactic.Component<'div', DataTableColumnProps>;\n Row: IntergalacticDataTableRowComponent;\n Cell: IntergalacticDataTableCellComponent;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n\nexport const wrapDataTable = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableRow = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableRowComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableRowComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableCell = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableCellComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableCellComponent<PropsExtending> => wrapper as any;\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","uniqueIDEnhancement","style","_sstyled","insert","reversedSortDirection","desc","asc","defaultSortDirection","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","_this2","animations","flatMap","_column$props$ref$cur","_column$props$ref$cur2","ref","getAnimations","filter","a","undefined","animationPromise","Promise","resolve","all","map","animation","finished","then","_iterator","_createForOfIteratorHelper","_step","s","n","done","setVar","_this2$tableRef$curre","setProperty","varWidth","width","err","e","f","console","error","childrenToColumns","children","_this3","options","arguments","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","_ref4","join","toArray","columnChildren","_this$props$ref$curre","getBoundingClientRect","_objectSpread","forwardRef","parentColumns","unshift","push","getHeadProps","_this$asProps","use","uid","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","getBodyProps","_this$asProps2","data","uniqueKey","cellPropsLayers","rowPropsLayers","_ref5","other","_excluded2","Cell","split","childrenPropsGetter","Row","rows","dataToRows","_this4","parseData","exclude","row","groupByName","columnsWithoutRowGroup","rowKey","columnNames","_iterator2","_step2","groupedColumns","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","cells","_groupByName$column$n","cssVar","flatRowData","componentDidMount","componentDidUpdate","render","_ref","_ref2","SDataTable","_this$asProps3","styles","createElement","cn","_assignProps","ComponentDefinition","wrapDataTable","wrapper","wrapDataTableRow","wrapDataTableCell"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, {\n Component,\n PropGetterFn,\n Root,\n sstyled,\n UnknownProperties,\n Intergalactic,\n} from '@semcore/core';\nimport { Box, BoxProps, FlexProps } 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';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/data-table.shadow.css';\n\nconst reversedSortDirection: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst defaultSortDirection: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;\\W]/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 uid?: string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n uid: string;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n uid: string;\n};\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort<Columns extends string | number | symbol = string> = [\n sortBy: Columns,\n sortDirection: 'desc' | 'asc',\n];\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\n/** @deprecated */\nexport interface IDataTableProps<\n DataTableData extends { [key: string]: any }[] = UnknownProperties[],\n> extends DataTableProps<DataTableData> {}\nexport type DataTableProps<DataTableData extends { [key: string]: any }[] = UnknownProperties[]> =\n BoxProps & {\n /** Table theme according to visual hierarchy on the page\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData;\n /** Active sort object */\n sort?: DataTableSort<keyof DataTableData[0]>;\n /** Handler call when request will change sort */\n onSortChange?: (sort: DataTableSort<keyof DataTableData[0]>, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all dataset\n * @default id\n */\n uniqueKey?: keyof DataTableData[0];\n /** Make cells compact by changing left and right paddings to smaller ones*/\n compact?: boolean;\n };\n\n/** @deprecated */\nexport interface IDataTableHeadProps extends DataTableHeadProps, UnknownProperties {}\nexport type DataTableHeadProps = BoxProps & {\n /** Sticky table header\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll (as action) */\n disabledScroll?: boolean;\n\n /** Enable scroll bar element in header */\n withScrollBar?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableColumnProps extends DataTableColumnProps, UnknownProperties {}\nexport type DataTableColumnProps = FlexProps & {\n /** Unique column name */\n name?: string;\n /** Enable sorting for column. And if you are passing a string, you can also set the default sorting */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fix column on the left o right side of the table */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column */\n flex?: Property.Flex | 'inherit';\n /** Add vertical border to the column */\n vBorders?: boolean;\n /** Add vertical border to the right side of the cell */\n borderRight?: boolean;\n /** Add vertical border to the left side of the cell */\n borderLeft?: boolean;\n /**\n * Enable changing column width with sort icon\n * @default false\n */\n changeSortSize?: boolean;\n /**\n * Enable column to use as a column for recalculation width\n * @default false (By default used first column with maximum width)\n */\n sortSizeRecalculation?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableBodyProps extends DataTableBodyProps, UnknownProperties {}\nexport type DataTableBodyProps = BoxProps & {\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 /** Allows to redefine rows renderning for a very deep and even fragile customization like building custom virtual scrolling */\n renderRows?: (props: {\n rows: DataTableRow[];\n columns: Column[];\n renderRow: (row: DataTableRow, details: { dataIndex: number }) => React.ReactNode;\n }) => React.ReactNode;\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n\n /** Disables column width change animation **/\n animationsDisabled?: boolean;\n\n /** Ref for table body container */\n scrollContainerRef?: React.Ref<HTMLDivElement>;\n};\n\n/** @deprecated */\nexport interface IDataTableRowProps extends DataTableRowProps, UnknownProperties {}\nexport type DataTableRowProps = BoxProps & {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Sets row state to active*/\n active?: boolean;\n};\n\n/** @deprecated */\nexport interface IDataTableCellProps extends DataTableCellProps, UnknownProperties {}\nexport type DataTableCellProps<Name extends string = string> = FlexProps & {\n /** Unique name for column or columns separated by / */\n name: Name;\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 static enhance = [uniqueIDEnhancement()];\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 ? reversedSortDirection[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 const animations = columns\n .flatMap((column) => column.props.ref.current?.getAnimations?.())\n .filter((a) => a !== undefined) as Animation[];\n\n let animationPromise: Promise<Animation[] | void> = Promise.resolve();\n\n if (animations.length > 0) {\n animationPromise = Promise.all(\n animations.map((animation) => {\n return animation.finished;\n }),\n );\n }\n\n animationPromise\n .then(() => {\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 .catch((err) => {\n console.error(err);\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 : defaultSortDirection),\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 parentColumns: [],\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n columns.forEach((column) => column.parentColumns.unshift(columnChildren));\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use, uid } = 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 uid,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey, uid } = 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 uid,\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 .flatMap((subRow) => Object.keys(subRow))\n .flatMap((key) => key.split('/'))\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 componentDidMount() {\n this.setVarStyle(this.columns);\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\ntype DataTableCtx = {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n};\n\nfunction ComponentDefinition() {\n return null;\n}\n\ntype IntergalacticDataTableComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n DataTableProps<Data> & PropsExtending,\n DataTableCtx,\n never\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableProps>;\n\ntype IntergalacticDataTableRowComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[],\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableRowProps & {\n /**\n * That property is ONLY used for the component strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableRowProps>;\n\ntype IntergalacticDataTableCellComponent<PropsExtending extends {} = {}> = (<\n Data extends DataTableData[] = [],\n Name extends string = string,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.PropsRenderingResultComponentProps<\n Tag,\n DataTableCellProps<Name> & {\n /**\n * That property is ONLY used for the componenct strict typings. In the component runtime `data` prop set on `<DataTable>...</DataTable> is used.\n */\n data?: Data;\n } & PropsExtending,\n DataTableCtx & { data: Data },\n [row: Data[0], index: number]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableCellProps>;\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as IntergalacticDataTableComponent & {\n Head: Intergalactic.Component<'div', DataTableHeadProps>;\n Body: Intergalactic.Component<'div', DataTableBodyProps>;\n Column: Intergalactic.Component<'div', DataTableColumnProps>;\n Row: IntergalacticDataTableRowComponent;\n Cell: IntergalacticDataTableCellComponent;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n\nexport const wrapDataTable = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableRow = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableRowComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableRowComponent<PropsExtending> => wrapper as any;\n\nexport const wrapDataTableCell = <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticDataTableCellComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n): IntergalacticDataTableCellComponent<PropsExtending> => wrapper as any;\n"],"mappings":"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"}
|
package/lib/es6/Head.js
CHANGED
|
@@ -17,7 +17,6 @@ import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
|
|
|
17
17
|
import { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';
|
|
18
18
|
import logger from '@semcore/utils/lib/logger';
|
|
19
19
|
import { setRef } from '@semcore/utils/lib/ref';
|
|
20
|
-
import cssToIntDefault from '@semcore/utils/lib/cssToIntDefault';
|
|
21
20
|
export var SORT_ICON_WIDTH = 20;
|
|
22
21
|
var SORTING_ICON = {
|
|
23
22
|
desc: SortDesc,
|
|
@@ -30,6 +29,14 @@ var ariaSort = {
|
|
|
30
29
|
var displayContents = {
|
|
31
30
|
display: 'contents'
|
|
32
31
|
};
|
|
32
|
+
function cssToIntDefault(value) {
|
|
33
|
+
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
34
|
+
var result = parseFloat(value);
|
|
35
|
+
if (Number.isNaN(result)) {
|
|
36
|
+
result = defaultValue;
|
|
37
|
+
}
|
|
38
|
+
return Math.round(result);
|
|
39
|
+
}
|
|
33
40
|
var Head = /*#__PURE__*/function (_Component) {
|
|
34
41
|
_inherits(Head, _Component);
|
|
35
42
|
var _super = _createSuper(Head);
|
|
@@ -70,59 +77,121 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
70
77
|
setRef(column.props.forwardRef, ref);
|
|
71
78
|
}
|
|
72
79
|
if (ref && ref.getAttribute('scope') === 'col') {
|
|
73
|
-
_this.
|
|
80
|
+
if (!_this.defaultWidths.has(ref)) {
|
|
81
|
+
var computedStyle = window.getComputedStyle(ref);
|
|
82
|
+
_this.defaultWidths.set(ref, {
|
|
83
|
+
minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),
|
|
84
|
+
computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),
|
|
85
|
+
maxWidth: cssToIntDefault(computedStyle.getPropertyValue('max-width')) || null,
|
|
86
|
+
useForRecalculation: Boolean(column.props.sortSizeRecalculation)
|
|
87
|
+
});
|
|
88
|
+
}
|
|
74
89
|
}
|
|
75
90
|
};
|
|
76
91
|
});
|
|
77
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
_defineProperty(_assertThisInitialized(_this), "changeMaxNodeWidth", function (diff, exceptNode) {
|
|
93
|
+
var lastMaxWidth = 0;
|
|
94
|
+
var node = null;
|
|
95
|
+
var recalculatedNodes = [];
|
|
96
|
+
_this.defaultWidths.forEach(function (value, key) {
|
|
97
|
+
if (value.computedWidth > lastMaxWidth && key !== exceptNode) {
|
|
98
|
+
node = key;
|
|
99
|
+
lastMaxWidth = value.computedWidth;
|
|
100
|
+
}
|
|
101
|
+
if (value.useForRecalculation) {
|
|
102
|
+
recalculatedNodes.push(key);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
var setNodeMinWidth = function setNodeMinWidth(node, diff) {
|
|
86
106
|
var _this$defaultWidths$g, _this$defaultWidths$g2;
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
107
|
+
var defaultNodeWidth = (_this$defaultWidths$g = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g === void 0 ? void 0 : _this$defaultWidths$g.computedWidth;
|
|
108
|
+
var defaultNodeMinWidth = (_this$defaultWidths$g2 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g2 === void 0 ? void 0 : _this$defaultWidths$g2.minWidth;
|
|
109
|
+
if (defaultNodeWidth) {
|
|
110
|
+
var maxWidth = defaultNodeWidth - diff;
|
|
111
|
+
node.style.setProperty('max-width', "".concat(maxWidth, "px"));
|
|
112
|
+
if (defaultNodeMinWidth) {
|
|
113
|
+
node.style.setProperty('min-width', "min(".concat(maxWidth, "px, ").concat(defaultNodeMinWidth, "px)"));
|
|
92
114
|
}
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
if (recalculatedNodes.length > 0) {
|
|
118
|
+
var diffPart = diff / recalculatedNodes.length;
|
|
119
|
+
recalculatedNodes.forEach(function (node) {
|
|
120
|
+
setNodeMinWidth(node, diffPart);
|
|
93
121
|
});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
122
|
+
} else if (node !== null) {
|
|
123
|
+
setNodeMinWidth(node, diff);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
_defineProperty(_assertThisInitialized(_this), "backToColumnDefaults", function (node) {
|
|
127
|
+
var _this$defaultWidths$g3, _this$defaultWidths$g4;
|
|
128
|
+
var defaultNodeMinWidth = (_this$defaultWidths$g3 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g3 === void 0 ? void 0 : _this$defaultWidths$g3.minWidth;
|
|
129
|
+
var defaultNodeMaxWidth = (_this$defaultWidths$g4 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g4 === void 0 ? void 0 : _this$defaultWidths$g4.maxWidth;
|
|
130
|
+
node.style.setProperty('min-width', defaultNodeMinWidth + 'px');
|
|
131
|
+
if (defaultNodeMaxWidth) {
|
|
132
|
+
node.style.setProperty('max-width', defaultNodeMaxWidth + 'px');
|
|
133
|
+
} else {
|
|
134
|
+
node.style.removeProperty('max-width');
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
_defineProperty(_assertThisInitialized(_this), "calculateActiveColumnMinWidth", function (node) {
|
|
138
|
+
var _this$defaultWidths$g5, _this$defaultWidths$g6;
|
|
139
|
+
var clonedColumn = document.createElement('div');
|
|
140
|
+
var computedStyle = window.getComputedStyle(node);
|
|
141
|
+
node.childNodes.forEach(function (node) {
|
|
142
|
+
if (!_this.sortWrapperRefs.get(node)) {
|
|
143
|
+
clonedColumn.append(node.cloneNode(true));
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
clonedColumn.style.setProperty('visibility', 'hidden', 'important');
|
|
147
|
+
var styles = ['display', 'flex', 'margin', 'padding', 'background', 'font-style', 'font-width', 'font-size', 'font-weight'];
|
|
148
|
+
styles.forEach(function (key) {
|
|
149
|
+
clonedColumn.style.setProperty(key, computedStyle.getPropertyValue(key), computedStyle.getPropertyPriority(key));
|
|
150
|
+
});
|
|
151
|
+
clonedColumn.style.setProperty('width', 'fit-content', 'important');
|
|
152
|
+
document.body.appendChild(clonedColumn);
|
|
153
|
+
var computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);
|
|
154
|
+
document.body.removeChild(clonedColumn);
|
|
155
|
+
var defaultNodeWidth = (_this$defaultWidths$g5 = (_this$defaultWidths$g6 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g6 === void 0 ? void 0 : _this$defaultWidths$g6.computedWidth) !== null && _this$defaultWidths$g5 !== void 0 ? _this$defaultWidths$g5 : 0;
|
|
156
|
+
if (computedWidth >= defaultNodeWidth) {
|
|
157
|
+
node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');
|
|
158
|
+
_this.changeMaxNodeWidth(SORT_ICON_WIDTH, node);
|
|
159
|
+
} else {
|
|
160
|
+
var freeSpace = defaultNodeWidth - computedWidth;
|
|
161
|
+
if (freeSpace < SORT_ICON_WIDTH) {
|
|
162
|
+
node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');
|
|
163
|
+
_this.changeMaxNodeWidth(freeSpace, node);
|
|
111
164
|
}
|
|
112
|
-
} else if (_this.defaultWidths.has(node)) {
|
|
113
|
-
var _this$defaultWidths$g3;
|
|
114
|
-
var defaultNodeMinWidth = (_this$defaultWidths$g3 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g3 === void 0 ? void 0 : _this$defaultWidths$g3.minWidth;
|
|
115
|
-
node.style.setProperty('min-width', defaultNodeMinWidth + 'px');
|
|
116
165
|
}
|
|
117
166
|
});
|
|
118
167
|
return _this;
|
|
119
168
|
}
|
|
120
169
|
_createClass(Head, [{
|
|
170
|
+
key: "componentDidUpdate",
|
|
171
|
+
value: function componentDidUpdate() {
|
|
172
|
+
var _this2 = this;
|
|
173
|
+
var activeColumn = null;
|
|
174
|
+
this.columns.forEach(function (column) {
|
|
175
|
+
var _column$props = column.props,
|
|
176
|
+
changeSortSize = _column$props.changeSortSize,
|
|
177
|
+
ref = _column$props.ref;
|
|
178
|
+
if (column.active && changeSortSize && ref.current) {
|
|
179
|
+
activeColumn = ref.current;
|
|
180
|
+
}
|
|
181
|
+
if (ref.current) {
|
|
182
|
+
_this2.backToColumnDefaults(ref.current);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
if (activeColumn) {
|
|
186
|
+
this.calculateActiveColumnMinWidth(activeColumn);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}, {
|
|
121
190
|
key: "renderColumns",
|
|
122
191
|
value: function renderColumns(columns, width) {
|
|
123
|
-
var
|
|
192
|
+
var _this3 = this;
|
|
124
193
|
return columns.map(function (column) {
|
|
125
|
-
return
|
|
194
|
+
return _this3.renderColumn(column, width);
|
|
126
195
|
});
|
|
127
196
|
}
|
|
128
197
|
}, {
|
|
@@ -145,6 +214,7 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
145
214
|
_getFixedStyle2 = _slicedToArray(_getFixedStyle, 2),
|
|
146
215
|
name = _getFixedStyle2[0],
|
|
147
216
|
value = _getFixedStyle2[1];
|
|
217
|
+
logger.warn(column.props.wMax && column.props.sortSizeRecalculation, "You can't use 'sortSizeRecalculation' property with 'wMax' property", "".concat(this.asProps['data-ui-name'] || Head.displayName, "_column_").concat(column.name));
|
|
148
218
|
var style = _objectSpread({
|
|
149
219
|
flexBasis: column.props.flex === undefined && "".concat(width * cSize, "%")
|
|
150
220
|
}, column.props.style);
|