@semcore/data-table 16.0.0-prerelease.2 → 16.0.0-prerelease.21

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.
Files changed (152) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/cjs/components/Body/Body.js +439 -0
  3. package/lib/cjs/components/Body/Body.js.map +1 -0
  4. package/lib/cjs/components/Body/Body.types.js +2 -0
  5. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  6. package/lib/cjs/components/Body/Cell.js +195 -0
  7. package/lib/cjs/components/Body/Cell.js.map +1 -0
  8. package/lib/cjs/components/Body/Cell.types.js +2 -0
  9. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  10. package/lib/cjs/components/Body/MergedCells.js +29 -0
  11. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  12. package/lib/cjs/components/Body/Row.js +252 -0
  13. package/lib/cjs/components/Body/Row.js.map +1 -0
  14. package/lib/cjs/components/Body/Row.types.js +4 -0
  15. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  16. package/lib/cjs/components/Body/style.shadow.css +263 -0
  17. package/lib/cjs/components/DataTable/DataTable.js +1025 -0
  18. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  19. package/lib/cjs/{types.js → components/DataTable/DataTable.types.js} +1 -1
  20. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  21. package/lib/cjs/components/DataTable/dataTable.shadow.css +17 -0
  22. package/lib/cjs/components/Head/Column.js +311 -0
  23. package/lib/cjs/components/Head/Column.js.map +1 -0
  24. package/lib/cjs/components/Head/Column.types.js +2 -0
  25. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  26. package/lib/cjs/components/Head/Group.js +116 -0
  27. package/lib/cjs/components/Head/Group.js.map +1 -0
  28. package/lib/cjs/components/Head/Group.type.js +2 -0
  29. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  30. package/lib/cjs/components/Head/Head.js +207 -0
  31. package/lib/cjs/components/Head/Head.js.map +1 -0
  32. package/lib/cjs/components/Head/Head.types.js +2 -0
  33. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  34. package/lib/cjs/components/Head/style.shadow.css +180 -0
  35. package/lib/cjs/index.js +25 -15
  36. package/lib/cjs/index.js.map +1 -1
  37. package/lib/cjs/style/scroll-shadows.shadow.css +45 -5
  38. package/lib/cjs/translations/en.json +6 -1
  39. package/lib/es6/components/Body/Body.js +432 -0
  40. package/lib/es6/components/Body/Body.js.map +1 -0
  41. package/lib/es6/components/Body/Body.types.js +2 -0
  42. package/lib/es6/components/Body/Body.types.js.map +1 -0
  43. package/lib/es6/components/Body/Cell.js +188 -0
  44. package/lib/es6/components/Body/Cell.js.map +1 -0
  45. package/lib/es6/components/Body/Cell.types.js +2 -0
  46. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  47. package/lib/es6/components/Body/MergedCells.js +20 -0
  48. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  49. package/lib/es6/components/Body/Row.js +245 -0
  50. package/lib/es6/components/Body/Row.js.map +1 -0
  51. package/lib/es6/components/Body/Row.types.js +2 -0
  52. package/lib/es6/components/Body/Row.types.js.map +1 -0
  53. package/lib/es6/components/Body/style.shadow.css +263 -0
  54. package/lib/es6/components/DataTable/DataTable.js +1013 -0
  55. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  56. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  57. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  58. package/lib/es6/components/DataTable/dataTable.shadow.css +17 -0
  59. package/lib/es6/components/Head/Column.js +304 -0
  60. package/lib/es6/components/Head/Column.js.map +1 -0
  61. package/lib/es6/components/Head/Column.types.js +2 -0
  62. package/lib/es6/components/Head/Column.types.js.map +1 -0
  63. package/lib/es6/components/Head/Group.js +109 -0
  64. package/lib/es6/components/Head/Group.js.map +1 -0
  65. package/lib/es6/components/Head/Group.type.js +2 -0
  66. package/lib/es6/components/Head/Group.type.js.map +1 -0
  67. package/lib/es6/components/Head/Head.js +201 -0
  68. package/lib/es6/components/Head/Head.js.map +1 -0
  69. package/lib/es6/components/Head/Head.types.js +2 -0
  70. package/lib/es6/components/Head/Head.types.js.map +1 -0
  71. package/lib/es6/components/Head/style.shadow.css +180 -0
  72. package/lib/es6/index.js +5 -2
  73. package/lib/es6/index.js.map +1 -1
  74. package/lib/es6/style/scroll-shadows.shadow.css +45 -5
  75. package/lib/es6/translations/en.json +6 -1
  76. package/lib/esm/components/Body/Body.mjs +394 -0
  77. package/lib/esm/components/Body/Cell.mjs +186 -0
  78. package/lib/esm/components/Body/MergedCells.mjs +23 -0
  79. package/lib/esm/components/Body/Row.mjs +224 -0
  80. package/lib/esm/components/Body/style.shadow.css +263 -0
  81. package/lib/esm/components/DataTable/DataTable.mjs +944 -0
  82. package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
  83. package/lib/esm/components/Head/Column.mjs +296 -0
  84. package/lib/esm/components/Head/Group.mjs +103 -0
  85. package/lib/esm/components/Head/Head.mjs +181 -0
  86. package/lib/esm/components/Head/style.shadow.css +180 -0
  87. package/lib/esm/index.mjs +9 -6
  88. package/lib/esm/style/scroll-shadows.shadow.css +47 -0
  89. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +30 -30
  90. package/lib/esm/translations/de.json.mjs +5 -4
  91. package/lib/esm/translations/en.json.mjs +10 -4
  92. package/lib/esm/translations/es.json.mjs +5 -4
  93. package/lib/esm/translations/fr.json.mjs +5 -4
  94. package/lib/esm/translations/it.json.mjs +5 -4
  95. package/lib/esm/translations/ja.json.mjs +5 -4
  96. package/lib/esm/translations/ko.json.mjs +5 -4
  97. package/lib/esm/translations/nl.json.mjs +5 -4
  98. package/lib/esm/translations/pl.json.mjs +5 -4
  99. package/lib/esm/translations/pt.json.mjs +5 -4
  100. package/lib/esm/translations/sv.json.mjs +5 -4
  101. package/lib/esm/translations/tr.json.mjs +5 -4
  102. package/lib/esm/translations/vi.json.mjs +5 -4
  103. package/lib/esm/translations/zh.json.mjs +5 -4
  104. package/lib/types/components/Body/Body.d.ts +8 -0
  105. package/lib/types/components/Body/Body.types.d.ts +57 -0
  106. package/lib/types/components/Body/Cell.d.ts +3 -0
  107. package/lib/types/components/Body/Cell.types.d.ts +20 -0
  108. package/lib/types/components/Body/MergedCells.d.ts +14 -0
  109. package/lib/types/components/Body/Row.d.ts +3 -0
  110. package/lib/types/components/Body/Row.types.d.ts +43 -0
  111. package/lib/types/components/DataTable/DataTable.d.ts +13 -0
  112. package/lib/types/components/DataTable/DataTable.types.d.ts +125 -0
  113. package/lib/types/components/Head/Column.d.ts +30 -0
  114. package/lib/types/components/Head/Column.types.d.ts +71 -0
  115. package/lib/types/components/Head/Group.d.ts +15 -0
  116. package/lib/types/components/Head/Group.type.d.ts +16 -0
  117. package/lib/types/components/Head/Head.d.ts +98 -0
  118. package/lib/types/components/Head/Head.types.d.ts +40 -0
  119. package/lib/types/index.d.ts +10 -2
  120. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +5 -0
  121. package/package.json +11 -6
  122. package/vite.config.ts +0 -3
  123. package/lib/cjs/Body.js +0 -475
  124. package/lib/cjs/Body.js.map +0 -1
  125. package/lib/cjs/DataTable.js +0 -622
  126. package/lib/cjs/DataTable.js.map +0 -1
  127. package/lib/cjs/Head.js +0 -399
  128. package/lib/cjs/Head.js.map +0 -1
  129. package/lib/cjs/style/data-table.shadow.css +0 -394
  130. package/lib/cjs/types.js.map +0 -1
  131. package/lib/cjs/utils.js +0 -57
  132. package/lib/cjs/utils.js.map +0 -1
  133. package/lib/es6/Body.js +0 -468
  134. package/lib/es6/Body.js.map +0 -1
  135. package/lib/es6/DataTable.js +0 -614
  136. package/lib/es6/DataTable.js.map +0 -1
  137. package/lib/es6/Head.js +0 -391
  138. package/lib/es6/Head.js.map +0 -1
  139. package/lib/es6/style/data-table.shadow.css +0 -394
  140. package/lib/es6/types.js +0 -2
  141. package/lib/es6/types.js.map +0 -1
  142. package/lib/es6/utils.js +0 -48
  143. package/lib/es6/utils.js.map +0 -1
  144. package/lib/esm/Body.mjs +0 -320
  145. package/lib/esm/DataTable.mjs +0 -439
  146. package/lib/esm/Head.mjs +0 -258
  147. package/lib/esm/utils.mjs +0 -37
  148. package/lib/types/Body.d.ts +0 -61
  149. package/lib/types/DataTable.d.ts +0 -205
  150. package/lib/types/Head.d.ts +0 -45
  151. package/lib/types/types.d.ts +0 -73
  152. package/lib/types/utils.d.ts +0 -4
@@ -0,0 +1,17 @@
1
+ SDataTable {
2
+ display: grid;
3
+ align-items: start;
4
+ min-width: fit-content;
5
+ }
6
+
7
+ SDataTable[gridTemplateColumns] {
8
+ grid-template-columns: var(--gridTemplateColumns);
9
+ }
10
+
11
+ SDataTable[gridTemplateAreas] {
12
+ grid-template-areas: var(--gridTemplateAreas);
13
+ }
14
+
15
+ SDataTable[gridTemplateRows] {
16
+ grid-template-rows: var(--gridTemplateRows);
17
+ }
@@ -0,0 +1,296 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
+ import { sstyled, lastInteraction, assignProps, Component } from "@semcore/core";
9
+ import * as React from "react";
10
+ import { Flex } from "@semcore/base-components";
11
+ import SortDesc from "@semcore/icon/SortDesc/m";
12
+ import SortAsc from "@semcore/icon/SortAsc/m";
13
+ import { ButtonLink } from "@semcore/button";
14
+ import { getFocusableIn } from "@semcore/core/lib/utils/focus-lock/getFocusableIn";
15
+ import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
16
+ import { isFocusInside } from "@semcore/core/lib/utils/focus-lock/isFocusInside";
17
+ /*!__reshadow-styles__:"./style.shadow.css"*/
18
+ var style = (
19
+ /*__reshadow_css_start__*/
20
+ (sstyled.insert(
21
+ /*__inner_css_start__*/
22
+ '.___SGroupContainer_ah4hc_gg_,.___SHead_ah4hc_gg_{display:contents}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SColumn_ah4hc_gg_{position:sticky;top:0;z-index:2}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroup_ah4hc_gg_{top:0}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroupContainer_ah4hc_gg_>.___SColumn_ah4hc_gg_{position:sticky;z-index:2}.___SHead_ah4hc_gg_.__compact_ah4hc_gg_ .___SColumn_ah4hc_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SColumn_ah4hc_gg_,.___SGroup_ah4hc_gg_{display:flex;align-items:flex-start;font-size:var(--intergalactic-fs-100, 12px);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;height:100%;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;overflow:hidden}.___SGroup_ah4hc_gg_{justify-content:center;text-align:center;background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SGroup_ah4hc_gg_._use_primary_ah4hc_gg_{padding:var(--intergalactic-spacing-3x, 12px)}.___SGroup_ah4hc_gg_._use_primary_ah4hc_gg_:has(~.___SColumn_ah4hc_gg_.__visibleSort_ah4hc_gg_){background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SGroup_ah4hc_gg_._use_secondary_ah4hc_gg_{padding:var(--intergalactic-spacing-2x, 8px)}.___SColumn_ah4hc_gg_._borders_both_ah4hc_gg_,.___SColumn_ah4hc_gg_._borders_left_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_both_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_left_ah4hc_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_ah4hc_gg_._borders_both_ah4hc_gg_,.___SColumn_ah4hc_gg_._borders_right_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_both_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_right_ah4hc_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_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_ah4hc_gg_._use_primary_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortButton_ah4hc_gg_,.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before,.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{display:flex;opacity:1}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_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_ah4hc_gg_._use_secondary_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortButton_ah4hc_gg_{display:flex;opacity:1}.___SColumn_ah4hc_gg_.__gridArea_ah4hc_gg_,.___SGroupTitle_ah4hc_gg_.__gridArea_ah4hc_gg_,.___SGroup_ah4hc_gg_.__gridArea_ah4hc_gg_{grid-area:var(--gridArea_ah4hc)}.___SHead_ah4hc_gg_ .___SColumn_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_ .___SGroup_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SColumn_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroup_ah4hc_gg_{position:sticky;z-index:3}@media (hover:hover){.___SColumn_ah4hc_gg_.__sortable_ah4hc_gg_:hover{cursor:pointer}}.___SSortWrapper_ah4hc_gg_{align-items:center;display:flex;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}.___SSortButton_ah4hc_gg_,.___SSortWrapper_ah4hc_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_ah4hc_gg_:before{content:"";top:0;width:20px;height:100%}.___SSortButton_ah4hc_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(-1*(1em*1.25 - 16px));margin-left:var(--intergalactic-spacing-1x, 4px)}.___SHead_ah4hc_gg_._sideIndents_wide_ah4hc_gg_ .___SColumn_ah4hc_gg_:first-child{padding-left:var(--intergalactic-spacing-5x, 20px)}.___SHead_ah4hc_gg_._sideIndents_wide_ah4hc_gg_ .___SColumn_ah4hc_gg_:last-child{padding-right:var(--intergalactic-spacing-5x, 20px)}.___SHeadCheckboxCol_ah4hc_gg_{cursor:pointer}',
23
+ /*__inner_css_end__*/
24
+ "ah4hc_gg_"
25
+ ), /*__reshadow_css_end__*/
26
+ {
27
+ "__SHead": "___SHead_ah4hc_gg_",
28
+ "__SGroupContainer": "___SGroupContainer_ah4hc_gg_",
29
+ "_sticky": "__sticky_ah4hc_gg_",
30
+ "__SColumn": "___SColumn_ah4hc_gg_",
31
+ "__SGroup": "___SGroup_ah4hc_gg_",
32
+ "_compact": "__compact_ah4hc_gg_",
33
+ "_use_secondary": "_use_secondary_ah4hc_gg_",
34
+ "_borders_both": "_borders_both_ah4hc_gg_",
35
+ "_borders_left": "_borders_left_ah4hc_gg_",
36
+ "_borders_right": "_borders_right_ah4hc_gg_",
37
+ "_gridArea": "__gridArea_ah4hc_gg_",
38
+ "__SGroupTitle": "___SGroupTitle_ah4hc_gg_",
39
+ "--gridArea": "--gridArea_ah4hc",
40
+ "_fixed": "__fixed_ah4hc_gg_",
41
+ "_sortable": "__sortable_ah4hc_gg_",
42
+ "__SSortWrapper": "___SSortWrapper_ah4hc_gg_",
43
+ "__SSortButton": "___SSortButton_ah4hc_gg_",
44
+ "__SHeadCheckboxCol": "___SHeadCheckboxCol_ah4hc_gg_",
45
+ "_use_primary": "_use_primary_ah4hc_gg_",
46
+ "_visibleSort": "__visibleSort_ah4hc_gg_",
47
+ "_sideIndents_wide": "_sideIndents_wide_ah4hc_gg_"
48
+ })
49
+ );
50
+ var SORTING_ICON = {
51
+ desc: SortDesc,
52
+ asc: SortAsc
53
+ };
54
+ var ARIA_SORT = {
55
+ desc: "descending",
56
+ asc: "ascending"
57
+ };
58
+ var SORT_ICON_WIDTH = 20;
59
+ var DEFAULT_DIRECTION = "desc";
60
+ var reversedSortDirection = {
61
+ desc: "asc",
62
+ asc: "desc"
63
+ };
64
+ var Column = /* @__PURE__ */ function(_Component) {
65
+ _inherits(Column2, _Component);
66
+ var _super = _createSuper(Column2);
67
+ function Column2() {
68
+ var _this;
69
+ _classCallCheck(this, Column2);
70
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
+ args[_key] = arguments[_key];
72
+ }
73
+ _this = _super.call.apply(_super, [this].concat(args));
74
+ _defineProperty(_assertThisInitialized(_this), "lockedCell", [null, false]);
75
+ _defineProperty(_assertThisInitialized(_this), "columnRef", /* @__PURE__ */ React.createRef());
76
+ _defineProperty(_assertThisInitialized(_this), "sortWrapperRef", /* @__PURE__ */ React.createRef());
77
+ _defineProperty(_assertThisInitialized(_this), "state", {
78
+ sortVisible: false
79
+ });
80
+ _defineProperty(_assertThisInitialized(_this), "calculateActiveColumnMinWidth", function() {
81
+ var node = _this.columnRef.current;
82
+ if (node) {
83
+ var _this$columnRef$curre, _this$columnRef$curre2;
84
+ var clonedColumn = document.createElement("div");
85
+ var computedStyle = window.getComputedStyle(node);
86
+ node.childNodes.forEach(function(node2) {
87
+ if (_this.sortWrapperRef.current !== node2) {
88
+ clonedColumn.append(node2.cloneNode(true));
89
+ }
90
+ });
91
+ clonedColumn.style.setProperty("visibility", "hidden", "important");
92
+ var styles = ["display", "flex", "margin", "padding", "background", "font-style", "font-width", "font-size", "font-weight"];
93
+ styles.forEach(function(key) {
94
+ clonedColumn.style.setProperty(key, computedStyle.getPropertyValue(key), computedStyle.getPropertyPriority(key));
95
+ });
96
+ clonedColumn.style.setProperty("width", "fit-content", "important");
97
+ document.body.appendChild(clonedColumn);
98
+ var computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);
99
+ document.body.removeChild(clonedColumn);
100
+ var defaultNodeWidth = (_this$columnRef$curre = (_this$columnRef$curre2 = _this.columnRef.current) === null || _this$columnRef$curre2 === void 0 ? void 0 : _this$columnRef$curre2.clientWidth) !== null && _this$columnRef$curre !== void 0 ? _this$columnRef$curre : 0;
101
+ if (computedWidth >= defaultNodeWidth) {
102
+ return defaultNodeWidth + SORT_ICON_WIDTH;
103
+ } else {
104
+ var freeSpace = defaultNodeWidth - computedWidth;
105
+ if (freeSpace < SORT_ICON_WIDTH) {
106
+ return computedWidth + SORT_ICON_WIDTH;
107
+ }
108
+ }
109
+ }
110
+ return null;
111
+ });
112
+ _defineProperty(_assertThisInitialized(_this), "handleMouseEnter", function() {
113
+ _this.setState({
114
+ sortVisible: true
115
+ });
116
+ });
117
+ _defineProperty(_assertThisInitialized(_this), "handleMouseLeave", function() {
118
+ _this.setState({
119
+ sortVisible: false
120
+ });
121
+ });
122
+ _defineProperty(_assertThisInitialized(_this), "handleBlur", function(e) {
123
+ var relatedTarget = e.relatedTarget;
124
+ if (!isFocusInside(e.currentTarget, relatedTarget) && lastInteraction.isKeyboard()) {
125
+ _this.setState({
126
+ sortVisible: false
127
+ });
128
+ }
129
+ });
130
+ _defineProperty(_assertThisInitialized(_this), "handleSortClick", function(e) {
131
+ var _this$asProps = _this.asProps, sort = _this$asProps.sort, onSortChange = _this$asProps.onSortChange, name = _this$asProps.name;
132
+ if (lastInteraction.isMouse() || lastInteraction.isKeyboard() && e.target === e.currentTarget) {
133
+ if (sort && onSortChange) {
134
+ var sortDirection = sort[0] === name ? reversedSortDirection[sort[1]] : _this.defaultDirection;
135
+ onSortChange([name, sortDirection], e);
136
+ }
137
+ }
138
+ });
139
+ _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function(e) {
140
+ if (e.currentTarget === _this.lockedCell[0]) {
141
+ var focusableChildren = Array.from(_this.lockedCell[0].children).flatMap(function(node) {
142
+ return getFocusableIn(node);
143
+ });
144
+ if (_this.lockedCell[1]) {
145
+ if (e.key === "Escape") {
146
+ var _this$lockedCell$;
147
+ (_this$lockedCell$ = _this.lockedCell[0]) === null || _this$lockedCell$ === void 0 ? void 0 : _this$lockedCell$.focus();
148
+ _this.lockedCell[1] = false;
149
+ }
150
+ if (e.key.startsWith("Arrow")) {
151
+ e.stopPropagation();
152
+ }
153
+ if (e.key === "Tab") {
154
+ if (e.target === focusableChildren[0] && e.shiftKey) {
155
+ var _focusableChildren;
156
+ (_focusableChildren = focusableChildren[focusableChildren.length - 1]) === null || _focusableChildren === void 0 ? void 0 : _focusableChildren.focus();
157
+ e.preventDefault();
158
+ } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {
159
+ var _focusableChildren$;
160
+ (_focusableChildren$ = focusableChildren[0]) === null || _focusableChildren$ === void 0 ? void 0 : _focusableChildren$.focus();
161
+ e.preventDefault();
162
+ }
163
+ e.stopPropagation();
164
+ }
165
+ } else if (e.key === "Enter") {
166
+ var _focusableChildren$2;
167
+ _this.lockedCell[1] = true;
168
+ (_focusableChildren$2 = focusableChildren[0]) === null || _focusableChildren$2 === void 0 ? void 0 : _focusableChildren$2.focus();
169
+ } else if (e.key === "Tab") {
170
+ var _this$lockedCell$2;
171
+ (_this$lockedCell$2 = _this.lockedCell[0]) === null || _this$lockedCell$2 === void 0 ? void 0 : _this$lockedCell$2.setAttribute("inert", "");
172
+ }
173
+ }
174
+ });
175
+ _defineProperty(_assertThisInitialized(_this), "handleFocusCell", function(e) {
176
+ var cellElement = e.currentTarget;
177
+ var target = e.target;
178
+ _this.setState({
179
+ sortVisible: true
180
+ }, function() {
181
+ if (target === cellElement) {
182
+ var focusableChildren = Array.from(cellElement.children).flatMap(function(node) {
183
+ return getFocusableIn(node);
184
+ });
185
+ if (focusableChildren.length === 1) {
186
+ focusableChildren[0].focus();
187
+ } else if (focusableChildren.length > 1) {
188
+ _this.lockedCell = [cellElement, false];
189
+ }
190
+ }
191
+ });
192
+ });
193
+ return _this;
194
+ }
195
+ _createClass(Column2, [{
196
+ key: "componentDidMount",
197
+ value: function componentDidMount() {
198
+ if (this.asProps.parent && this.asProps.sticky) {
199
+ var _columnElement$parent;
200
+ var columnElement = this.columnRef.current;
201
+ var groupElement = columnElement === null || columnElement === void 0 ? void 0 : (_columnElement$parent = columnElement.parentElement) === null || _columnElement$parent === void 0 ? void 0 : _columnElement$parent.children.item(0);
202
+ var groupHeight = groupElement === null || groupElement === void 0 ? void 0 : groupElement.getBoundingClientRect().height;
203
+ if (groupHeight) {
204
+ columnElement === null || columnElement === void 0 ? void 0 : columnElement.style.setProperty("top", "".concat(groupHeight, "px"));
205
+ }
206
+ }
207
+ }
208
+ }, {
209
+ key: "componentDidUpdate",
210
+ value: function componentDidUpdate(prevProps) {
211
+ var _prevProps$sort, _this$asProps$sort;
212
+ if (this.asProps.changeSortSize && canUseDOM() && ((_prevProps$sort = prevProps.sort) === null || _prevProps$sort === void 0 ? void 0 : _prevProps$sort[0]) !== ((_this$asProps$sort = this.asProps.sort) === null || _this$asProps$sort === void 0 ? void 0 : _this$asProps$sort[0])) {
213
+ var _this$asProps$sort2, _this$asProps$sort3;
214
+ var _this$asProps2 = this.asProps, tableRef = _this$asProps2.tableRef, gridTemplateColumns = _this$asProps2.gridTemplateColumns, columnIndex = _this$asProps2.columnIndex;
215
+ if (((_this$asProps$sort2 = this.asProps.sort) === null || _this$asProps$sort2 === void 0 ? void 0 : _this$asProps$sort2[0]) === this.asProps.name) {
216
+ var newWidth = this.calculateActiveColumnMinWidth();
217
+ setTimeout(function() {
218
+ if (tableRef.current && newWidth !== null) {
219
+ tableRef.current.style.setProperty("grid-template-columns", gridTemplateColumns.map(function(gtcWidth, index) {
220
+ if (index === columnIndex) {
221
+ return "".concat(newWidth, "px");
222
+ }
223
+ return gtcWidth;
224
+ }).join(" "));
225
+ }
226
+ });
227
+ } else if (((_this$asProps$sort3 = this.asProps.sort) === null || _this$asProps$sort3 === void 0 ? void 0 : _this$asProps$sort3[0]) !== this.asProps.name) {
228
+ setTimeout(function() {
229
+ if (tableRef.current) {
230
+ tableRef.current.style.setProperty("grid-template-columns", gridTemplateColumns.join(" "));
231
+ }
232
+ });
233
+ }
234
+ }
235
+ }
236
+ }, {
237
+ key: "defaultDirection",
238
+ get: function get() {
239
+ var sortable = this.asProps.sortable;
240
+ if (typeof sortable === "string") {
241
+ return sortable;
242
+ }
243
+ return DEFAULT_DIRECTION;
244
+ }
245
+ }, {
246
+ key: "render",
247
+ value: function render() {
248
+ var _ref = this.asProps, _ref2;
249
+ var SColumn = Flex;
250
+ var SSortWrapper = "div";
251
+ var SSortButton = ButtonLink;
252
+ var _this$asProps3 = this.asProps, styles = _this$asProps3.styles, sortable = _this$asProps3.sortable, sort = _this$asProps3.sort, uid = _this$asProps3.uid, name = _this$asProps3.name, parent = _this$asProps3.parent, sortableColumnDescribeId = _this$asProps3.sortableColumnDescribeId, Children = _this$asProps3.Children;
253
+ var SSortIcon = sort && sort[0] === name ? SORTING_ICON[sort[1]] : SORTING_ICON[this.defaultDirection];
254
+ var isSorted = (sort === null || sort === void 0 ? void 0 : sort[0]) === name;
255
+ var visibleSort = Boolean(sortable) && (this.state.sortVisible || isSorted);
256
+ var ariaDescribedBy = [];
257
+ if (isSorted) {
258
+ ariaDescribedBy.push(sortableColumnDescribeId);
259
+ }
260
+ if (parent) {
261
+ ariaDescribedBy.push("igc-table-".concat(uid, "-").concat(parent.name, "-group"));
262
+ }
263
+ var ariaSortValue = sort !== null && sort !== void 0 && sort[1] ? ARIA_SORT[sort[1]] : void 0;
264
+ return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(SColumn, _ref2.cn("SColumn", _objectSpread({}, assignProps({
265
+ "ref": this.columnRef,
266
+ "role": "columnheader",
267
+ "tabIndex": -1,
268
+ "onMouseEnter": this.handleMouseEnter,
269
+ "onMouseLeave": this.handleMouseLeave,
270
+ "onFocus": this.handleFocusCell,
271
+ "onBlur": this.handleBlur,
272
+ "onKeyDown": this.handleKeyDown,
273
+ "visibleSort": visibleSort,
274
+ "isSorted": isSorted,
275
+ "innerOutline": true,
276
+ "aria-describedby": ariaDescribedBy.length > 0 ? ariaDescribedBy.join(" ") : void 0,
277
+ "aria-sort": ariaSortValue,
278
+ "onClick": sortable ? this.handleSortClick : void 0
279
+ }, _ref))), /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})), sortable && /* @__PURE__ */ React.createElement(SSortWrapper, _ref2.cn("SSortWrapper", {
280
+ "ref": this.sortWrapperRef
281
+ }), /* @__PURE__ */ React.createElement(SSortButton, _ref2.cn("SSortButton", {
282
+ "onClick": this.handleSortClick,
283
+ "aria-label": ariaSortValue,
284
+ "color": "--intergalactic-icon-primary-neutral"
285
+ }), /* @__PURE__ */ React.createElement(SSortButton.Addon, {
286
+ tag: SSortIcon
287
+ }))));
288
+ }
289
+ }]);
290
+ return Column2;
291
+ }(Component);
292
+ _defineProperty(Column, "displayName", "Column");
293
+ _defineProperty(Column, "style", style);
294
+ export {
295
+ Column
296
+ };
@@ -0,0 +1,103 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
+ import { sstyled, assignProps, Component } from "@semcore/core";
9
+ import * as React from "react";
10
+ import { Box } from "@semcore/base-components";
11
+ import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
12
+ import { DataTableInternal } from "../DataTable/DataTable.mjs";
13
+ import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
14
+ /*!__reshadow-styles__:"./style.shadow.css"*/
15
+ var style = (
16
+ /*__reshadow_css_start__*/
17
+ (sstyled.insert(
18
+ /*__inner_css_start__*/
19
+ '.___SGroupContainer_ah4hc_gg_,.___SHead_ah4hc_gg_{display:contents}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SColumn_ah4hc_gg_{position:sticky;top:0;z-index:2}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroup_ah4hc_gg_{top:0}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroupContainer_ah4hc_gg_>.___SColumn_ah4hc_gg_{position:sticky;z-index:2}.___SHead_ah4hc_gg_.__compact_ah4hc_gg_ .___SColumn_ah4hc_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SColumn_ah4hc_gg_,.___SGroup_ah4hc_gg_{display:flex;align-items:flex-start;font-size:var(--intergalactic-fs-100, 12px);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;height:100%;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;overflow:hidden}.___SGroup_ah4hc_gg_{justify-content:center;text-align:center;background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SGroup_ah4hc_gg_._use_primary_ah4hc_gg_{padding:var(--intergalactic-spacing-3x, 12px)}.___SGroup_ah4hc_gg_._use_primary_ah4hc_gg_:has(~.___SColumn_ah4hc_gg_.__visibleSort_ah4hc_gg_){background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SGroup_ah4hc_gg_._use_secondary_ah4hc_gg_{padding:var(--intergalactic-spacing-2x, 8px)}.___SColumn_ah4hc_gg_._borders_both_ah4hc_gg_,.___SColumn_ah4hc_gg_._borders_left_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_both_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_left_ah4hc_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_ah4hc_gg_._borders_both_ah4hc_gg_,.___SColumn_ah4hc_gg_._borders_right_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_both_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_right_ah4hc_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_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_ah4hc_gg_._use_primary_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortButton_ah4hc_gg_,.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before,.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{display:flex;opacity:1}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_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_ah4hc_gg_._use_secondary_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortButton_ah4hc_gg_{display:flex;opacity:1}.___SColumn_ah4hc_gg_.__gridArea_ah4hc_gg_,.___SGroupTitle_ah4hc_gg_.__gridArea_ah4hc_gg_,.___SGroup_ah4hc_gg_.__gridArea_ah4hc_gg_{grid-area:var(--gridArea_ah4hc)}.___SHead_ah4hc_gg_ .___SColumn_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_ .___SGroup_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SColumn_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroup_ah4hc_gg_{position:sticky;z-index:3}@media (hover:hover){.___SColumn_ah4hc_gg_.__sortable_ah4hc_gg_:hover{cursor:pointer}}.___SSortWrapper_ah4hc_gg_{align-items:center;display:flex;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}.___SSortButton_ah4hc_gg_,.___SSortWrapper_ah4hc_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_ah4hc_gg_:before{content:"";top:0;width:20px;height:100%}.___SSortButton_ah4hc_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(-1*(1em*1.25 - 16px));margin-left:var(--intergalactic-spacing-1x, 4px)}.___SHead_ah4hc_gg_._sideIndents_wide_ah4hc_gg_ .___SColumn_ah4hc_gg_:first-child{padding-left:var(--intergalactic-spacing-5x, 20px)}.___SHead_ah4hc_gg_._sideIndents_wide_ah4hc_gg_ .___SColumn_ah4hc_gg_:last-child{padding-right:var(--intergalactic-spacing-5x, 20px)}.___SHeadCheckboxCol_ah4hc_gg_{cursor:pointer}',
20
+ /*__inner_css_end__*/
21
+ "ah4hc_gg_"
22
+ ), /*__reshadow_css_end__*/
23
+ {
24
+ "__SHead": "___SHead_ah4hc_gg_",
25
+ "__SGroupContainer": "___SGroupContainer_ah4hc_gg_",
26
+ "_sticky": "__sticky_ah4hc_gg_",
27
+ "__SColumn": "___SColumn_ah4hc_gg_",
28
+ "__SGroup": "___SGroup_ah4hc_gg_",
29
+ "_compact": "__compact_ah4hc_gg_",
30
+ "_use_secondary": "_use_secondary_ah4hc_gg_",
31
+ "_borders_both": "_borders_both_ah4hc_gg_",
32
+ "_borders_left": "_borders_left_ah4hc_gg_",
33
+ "_borders_right": "_borders_right_ah4hc_gg_",
34
+ "_gridArea": "__gridArea_ah4hc_gg_",
35
+ "__SGroupTitle": "___SGroupTitle_ah4hc_gg_",
36
+ "--gridArea": "--gridArea_ah4hc",
37
+ "_fixed": "__fixed_ah4hc_gg_",
38
+ "_sortable": "__sortable_ah4hc_gg_",
39
+ "__SSortWrapper": "___SSortWrapper_ah4hc_gg_",
40
+ "__SSortButton": "___SSortButton_ah4hc_gg_",
41
+ "__SHeadCheckboxCol": "___SHeadCheckboxCol_ah4hc_gg_",
42
+ "_use_primary": "_use_primary_ah4hc_gg_",
43
+ "_visibleSort": "__visibleSort_ah4hc_gg_",
44
+ "_sideIndents_wide": "_sideIndents_wide_ah4hc_gg_"
45
+ })
46
+ );
47
+ var Group = /* @__PURE__ */ function(_Component) {
48
+ _inherits(Group2, _Component);
49
+ var _super = _createSuper(Group2);
50
+ function Group2() {
51
+ _classCallCheck(this, Group2);
52
+ return _super.apply(this, arguments);
53
+ }
54
+ _createClass(Group2, [{
55
+ key: "componentDidMount",
56
+ value: function componentDidMount() {
57
+ this.forceUpdate();
58
+ }
59
+ }, {
60
+ key: "groupId",
61
+ get: function get() {
62
+ var uid = this.asProps.uid;
63
+ return "".concat(uid, "_columns_group");
64
+ }
65
+ }, {
66
+ key: "render",
67
+ value: function render() {
68
+ var _ref = this.asProps, _ref2, _groupColumns$, _children$, _groupColumns, _children, _this = this;
69
+ var SGroupContainer = Box;
70
+ var SGroup = Box;
71
+ var _this$asProps = this.asProps, styles = _this$asProps.styles, Children = _this$asProps.Children, title = _this$asProps.title, fixed = _this$asProps.fixed, fixedColumnsMap = _this$asProps.fixedColumnsMap, columns = _this$asProps.columns, withConfig = _this$asProps.withConfig;
72
+ var groupColumns = columns !== null && columns !== void 0 ? columns : [];
73
+ var children = getOriginChildren(Children);
74
+ var firstName = withConfig ? (_groupColumns$ = groupColumns[0]) === null || _groupColumns$ === void 0 ? void 0 : _groupColumns$.name : (_children$ = children[0]) === null || _children$ === void 0 ? void 0 : _children$.props.name;
75
+ var lastName = withConfig ? (_groupColumns = groupColumns[groupColumns.length - 1]) === null || _groupColumns === void 0 ? void 0 : _groupColumns.name : (_children = children[children.length - 1]) === null || _children === void 0 ? void 0 : _children.props.name;
76
+ var style2 = {};
77
+ if (fixed === "left" && firstName) {
78
+ style2.left = fixedColumnsMap.get(firstName);
79
+ }
80
+ if (fixed === "right") {
81
+ style2.right = fixedColumnsMap.get(lastName);
82
+ }
83
+ return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(SGroupContainer, _ref2.cn("SGroupContainer", {}), /* @__PURE__ */ React.createElement(SGroup, _ref2.cn("SGroup", _objectSpread({}, assignProps({
84
+ "style": style2,
85
+ "__excludeProps": ["title"],
86
+ "id": this.groupId
87
+ }, _ref))), withConfig ? children : title), withConfig ? groupColumns.map(function(column, i) {
88
+ return /* @__PURE__ */ React.createElement(DataTableInternal.Head.Column, _extends({
89
+ key: column.name
90
+ }, column, {
91
+ "aria-describedby": _this.groupId
92
+ }));
93
+ }) : /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})));
94
+ }
95
+ }]);
96
+ return Group2;
97
+ }(Component);
98
+ _defineProperty(Group, "displayName", "Group");
99
+ _defineProperty(Group, "style", style);
100
+ _defineProperty(Group, "enhance", [uniqueIDEnhancement()]);
101
+ export {
102
+ Group
103
+ };
@@ -0,0 +1,181 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
5
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
6
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
7
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
8
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
9
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
+ import { sstyled, createComponent, assignProps, Component } from "@semcore/core";
11
+ import * as React from "react";
12
+ import { ScreenReaderOnly, Box } from "@semcore/base-components";
13
+ import { Column } from "./Column.mjs";
14
+ import { Group } from "./Group.mjs";
15
+ import { SELECT_ALL, DataTableInternal } from "../DataTable/DataTable.mjs";
16
+ import Checkbox from "@semcore/checkbox";
17
+ /*!__reshadow-styles__:"./style.shadow.css"*/
18
+ var style = (
19
+ /*__reshadow_css_start__*/
20
+ (sstyled.insert(
21
+ /*__inner_css_start__*/
22
+ '.___SGroupContainer_ah4hc_gg_,.___SHead_ah4hc_gg_{display:contents}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SColumn_ah4hc_gg_{position:sticky;top:0;z-index:2}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroup_ah4hc_gg_{top:0}.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroupContainer_ah4hc_gg_>.___SColumn_ah4hc_gg_{position:sticky;z-index:2}.___SHead_ah4hc_gg_.__compact_ah4hc_gg_ .___SColumn_ah4hc_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SColumn_ah4hc_gg_,.___SGroup_ah4hc_gg_{display:flex;align-items:flex-start;font-size:var(--intergalactic-fs-100, 12px);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;height:100%;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;overflow:hidden}.___SGroup_ah4hc_gg_{justify-content:center;text-align:center;background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SGroup_ah4hc_gg_._use_primary_ah4hc_gg_{padding:var(--intergalactic-spacing-3x, 12px)}.___SGroup_ah4hc_gg_._use_primary_ah4hc_gg_:has(~.___SColumn_ah4hc_gg_.__visibleSort_ah4hc_gg_){background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SGroup_ah4hc_gg_._use_secondary_ah4hc_gg_{padding:var(--intergalactic-spacing-2x, 8px)}.___SColumn_ah4hc_gg_._borders_both_ah4hc_gg_,.___SColumn_ah4hc_gg_._borders_left_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_both_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_left_ah4hc_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_ah4hc_gg_._borders_both_ah4hc_gg_,.___SColumn_ah4hc_gg_._borders_right_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_both_ah4hc_gg_,.___SGroup_ah4hc_gg_._borders_right_ah4hc_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_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_ah4hc_gg_._use_primary_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortButton_ah4hc_gg_,.___SColumn_ah4hc_gg_._use_primary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before,.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{display:flex;opacity:1}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_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_ah4hc_gg_._use_secondary_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortWrapper_ah4hc_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_ah4hc_gg_._use_secondary_ah4hc_gg_.__visibleSort_ah4hc_gg_ .___SSortButton_ah4hc_gg_{display:flex;opacity:1}.___SColumn_ah4hc_gg_.__gridArea_ah4hc_gg_,.___SGroupTitle_ah4hc_gg_.__gridArea_ah4hc_gg_,.___SGroup_ah4hc_gg_.__gridArea_ah4hc_gg_{grid-area:var(--gridArea_ah4hc)}.___SHead_ah4hc_gg_ .___SColumn_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_ .___SGroup_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SColumn_ah4hc_gg_.__fixed_ah4hc_gg_,.___SHead_ah4hc_gg_.__sticky_ah4hc_gg_ .___SGroup_ah4hc_gg_{position:sticky;z-index:3}@media (hover:hover){.___SColumn_ah4hc_gg_.__sortable_ah4hc_gg_:hover{cursor:pointer}}.___SSortWrapper_ah4hc_gg_{align-items:center;display:flex;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}.___SSortButton_ah4hc_gg_,.___SSortWrapper_ah4hc_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_ah4hc_gg_:before{content:"";top:0;width:20px;height:100%}.___SSortButton_ah4hc_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(-1*(1em*1.25 - 16px));margin-left:var(--intergalactic-spacing-1x, 4px)}.___SHead_ah4hc_gg_._sideIndents_wide_ah4hc_gg_ .___SColumn_ah4hc_gg_:first-child{padding-left:var(--intergalactic-spacing-5x, 20px)}.___SHead_ah4hc_gg_._sideIndents_wide_ah4hc_gg_ .___SColumn_ah4hc_gg_:last-child{padding-right:var(--intergalactic-spacing-5x, 20px)}.___SHeadCheckboxCol_ah4hc_gg_{cursor:pointer}',
23
+ /*__inner_css_end__*/
24
+ "ah4hc_gg_"
25
+ ), /*__reshadow_css_end__*/
26
+ {
27
+ "__SHead": "___SHead_ah4hc_gg_",
28
+ "__SGroupContainer": "___SGroupContainer_ah4hc_gg_",
29
+ "_sticky": "__sticky_ah4hc_gg_",
30
+ "__SColumn": "___SColumn_ah4hc_gg_",
31
+ "__SGroup": "___SGroup_ah4hc_gg_",
32
+ "_compact": "__compact_ah4hc_gg_",
33
+ "_use_secondary": "_use_secondary_ah4hc_gg_",
34
+ "_borders_both": "_borders_both_ah4hc_gg_",
35
+ "_borders_left": "_borders_left_ah4hc_gg_",
36
+ "_borders_right": "_borders_right_ah4hc_gg_",
37
+ "_gridArea": "__gridArea_ah4hc_gg_",
38
+ "__SGroupTitle": "___SGroupTitle_ah4hc_gg_",
39
+ "--gridArea": "--gridArea_ah4hc",
40
+ "_fixed": "__fixed_ah4hc_gg_",
41
+ "_sortable": "__sortable_ah4hc_gg_",
42
+ "__SSortWrapper": "___SSortWrapper_ah4hc_gg_",
43
+ "__SSortButton": "___SSortButton_ah4hc_gg_",
44
+ "__SHeadCheckboxCol": "___SHeadCheckboxCol_ah4hc_gg_",
45
+ "_use_primary": "_use_primary_ah4hc_gg_",
46
+ "_visibleSort": "__visibleSort_ah4hc_gg_",
47
+ "_sideIndents_wide": "_sideIndents_wide_ah4hc_gg_"
48
+ })
49
+ );
50
+ var HeadRoot = /* @__PURE__ */ function(_Component) {
51
+ _inherits(HeadRoot2, _Component);
52
+ var _super = _createSuper(HeadRoot2);
53
+ function HeadRoot2() {
54
+ var _this;
55
+ _classCallCheck(this, HeadRoot2);
56
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
+ args[_key] = arguments[_key];
58
+ }
59
+ _this = _super.call.apply(_super, [this].concat(args));
60
+ _defineProperty(_assertThisInitialized(_this), "fixedColumnsMap", /* @__PURE__ */ new Map());
61
+ _defineProperty(_assertThisInitialized(_this), "handleSelectAll", function(value, event) {
62
+ var _this$asProps$onChang, _this$asProps;
63
+ (_this$asProps$onChang = (_this$asProps = _this.asProps).onChangeSelectAll) === null || _this$asProps$onChang === void 0 ? void 0 : _this$asProps$onChang.call(_this$asProps, value, event);
64
+ });
65
+ _defineProperty(_assertThisInitialized(_this), "handleClickSelectAll", function(value) {
66
+ return function(event) {
67
+ var _this$asProps$onChang2, _this$asProps2;
68
+ event === null || event === void 0 ? void 0 : event.preventDefault();
69
+ event === null || event === void 0 ? void 0 : event.stopPropagation();
70
+ (_this$asProps$onChang2 = (_this$asProps2 = _this.asProps).onChangeSelectAll) === null || _this$asProps$onChang2 === void 0 ? void 0 : _this$asProps$onChang2.call(_this$asProps2, value, event);
71
+ };
72
+ });
73
+ return _this;
74
+ }
75
+ _createClass(HeadRoot2, [{
76
+ key: "sortableColumnDescribeId",
77
+ value: function sortableColumnDescribeId() {
78
+ var uid = this.asProps.uid;
79
+ return "".concat(uid, "-column-sortable-describer");
80
+ }
81
+ }, {
82
+ key: "getGroupProps",
83
+ value: function getGroupProps(_, index) {
84
+ var _this$asProps3 = this.asProps, use = _this$asProps3.use, gridAreaGroupMap = _this$asProps3.gridAreaGroupMap, children = _this$asProps3.children;
85
+ return {
86
+ use,
87
+ gridArea: gridAreaGroupMap.get(index),
88
+ fixedColumnsMap: this.fixedColumnsMap,
89
+ withConfig: children === void 0
90
+ };
91
+ }
92
+ }, {
93
+ key: "getColumnProps",
94
+ value: function getColumnProps(_, index) {
95
+ var _this$asProps4 = this.asProps, use = _this$asProps4.use, columns = _this$asProps4.columns, sort = _this$asProps4.sort, onSortChange = _this$asProps4.onSortChange, tableRef = _this$asProps4.tableRef, gridTemplateColumns = _this$asProps4.gridTemplateColumns, gridTemplateAreas = _this$asProps4.gridTemplateAreas, sticky = _this$asProps4.sticky, top = _this$asProps4.top, selectedRows = _this$asProps4.selectedRows, h = _this$asProps4.h, getFixedStyle = _this$asProps4.getFixedStyle;
96
+ var column = columns[index];
97
+ if (index === 0 && selectedRows && columns[index + 1].fixed) {
98
+ column.fixed = "left";
99
+ }
100
+ var _getFixedStyle = getFixedStyle(column), _getFixedStyle2 = _slicedToArray(_getFixedStyle, 2), name = _getFixedStyle2[0], value = _getFixedStyle2[1];
101
+ var style2 = {};
102
+ if (top) {
103
+ style2.top = "".concat(top, "px");
104
+ }
105
+ if (name !== void 0 && value !== void 0) {
106
+ style2[name] = value;
107
+ this.fixedColumnsMap.set(column.name, value);
108
+ }
109
+ return {
110
+ use,
111
+ "aria-colindex": index + 1,
112
+ style: style2,
113
+ gridArea: column.gridArea,
114
+ fixed: column.fixed,
115
+ sticky,
116
+ borders: column.borders,
117
+ sort,
118
+ onSortChange,
119
+ parent: column.parent,
120
+ sortableColumnDescribeId: this.sortableColumnDescribeId(),
121
+ columnIndex: index,
122
+ tableRef,
123
+ gridTemplateColumns,
124
+ gridTemplateAreas,
125
+ h
126
+ };
127
+ }
128
+ }, {
129
+ key: "render",
130
+ value: function render() {
131
+ var _ref = this.asProps, _ref2;
132
+ var SHead = Box;
133
+ var SHeadCheckboxCol = Head.Column;
134
+ var _this$asProps5 = this.asProps, Children = _this$asProps5.Children, styles = _this$asProps5.styles, getI18nText = _this$asProps5.getI18nText, children = _this$asProps5.children, treeColumns = _this$asProps5.treeColumns, selectedRows = _this$asProps5.selectedRows, totalRows = _this$asProps5.totalRows;
135
+ var checked = selectedRows && selectedRows.length === totalRows && totalRows > 0;
136
+ var indeterminate = selectedRows && selectedRows.length > 0 && !checked;
137
+ return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SHead, _ref2.cn("SHead", _objectSpread({}, assignProps({
138
+ "role": "row",
139
+ "aria-rowindex": 1
140
+ }, _ref))), selectedRows && /* @__PURE__ */ React.createElement(SHeadCheckboxCol, _ref2.cn("SHeadCheckboxCol", {
141
+ "name": SELECT_ALL.toString(),
142
+ "onClick": this.handleClickSelectAll(!checked)
143
+ }), /* @__PURE__ */ React.createElement(Checkbox, _ref2.cn("Checkbox", {
144
+ "checked": checked,
145
+ "indeterminate": indeterminate,
146
+ "aria-label": getI18nText("DataTable.Header.selectAllCheckbox:aria-label"),
147
+ "onChange": this.handleSelectAll
148
+ }), /* @__PURE__ */ React.createElement(Checkbox.Value, null, /* @__PURE__ */ React.createElement(Checkbox.Value.Control, null), /* @__PURE__ */ React.createElement(Checkbox.Value.CheckMark, {
149
+ mt: 0
150
+ })))), children ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(React.Fragment, null, treeColumns.map(function(column, i) {
151
+ if ("columns" in column) {
152
+ var _column$columns;
153
+ return /* @__PURE__ */ React.createElement(DataTableInternal.Head.Group, _extends({
154
+ key: column.name
155
+ }, column, {
156
+ name: (_column$columns = column.columns) === null || _column$columns === void 0 ? void 0 : _column$columns.map(function(c) {
157
+ return c.name;
158
+ }).join("/"),
159
+ title: ""
160
+ }));
161
+ }
162
+ return /* @__PURE__ */ React.createElement(DataTableInternal.Head.Column, _extends({
163
+ key: column.name
164
+ }, column));
165
+ }))), /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
166
+ "aria-hidden": true,
167
+ "id": this.sortableColumnDescribeId()
168
+ }), getI18nText("sortableColumn")));
169
+ }
170
+ }]);
171
+ return HeadRoot2;
172
+ }(Component);
173
+ _defineProperty(HeadRoot, "displayName", "Head");
174
+ _defineProperty(HeadRoot, "style", style);
175
+ var Head = createComponent(HeadRoot, {
176
+ Column,
177
+ Group
178
+ });
179
+ export {
180
+ Head
181
+ };