@semcore/data-table 1.5.3 → 2.1.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.
@@ -9,10 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = exports.ROW_GROUP = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
13
 
18
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -58,6 +54,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
58
54
 
59
55
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
60
56
 
57
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (_e) { function e(_x) { return _e.apply(this, arguments); } e.toString = function () { return _e.toString(); }; return e; }(function (e) { throw e; }), f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function (_e2) { function e(_x2) { return _e2.apply(this, arguments); } e.toString = function () { return _e2.toString(); }; return e; }(function (e) { didErr = true; err = e; }), f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
58
+
59
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
60
+
61
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
62
+
61
63
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
62
64
 
63
65
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -67,45 +69,45 @@ var style = (
67
69
  /*__reshadow_css_start__*/
68
70
  _core.sstyled.insert(
69
71
  /*__inner_css_start__*/
70
- ".___SDataTable_13w0c_gg_{position:relative}.___SHeadWrapper_13w0c_gg_{position:relative}.___SHeadWrapper_13w0c_gg_.__sticky_13w0c_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_13w0c_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_13w0c_gg_{display:flex;flex-grow:1;font-size:12px;line-height:18px;color:#333333;box-sizing:border-box;position:relative}.___SColumn_13w0c_gg_:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(43,148,225,.3)}.___SColumn_13w0c_gg_.__hidden_13w0c_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_13w0c_gg_._use_primary_13w0c_gg_{padding:12px;border-right:1px solid #dee3e5;border-bottom:1px solid #dee3e5;background-color:#f2f3f4}.___SColumn_13w0c_gg_._use_secondary_13w0c_gg_{padding:8px;border-bottom:1px solid #a6b0b3;background-color:#fff}.___SColumn_13w0c_gg_.__use_13w0c_gg_:last-child{border-right:none}.___SColumn_13w0c_gg_.__group_13w0c_gg_.__use_13w0c_gg_{display:flex;flex-wrap:wrap;flex-direction:column;border-bottom:none;padding:0}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_.__use_13w0c_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_._use_primary_13w0c_gg_{border-bottom:1px solid #dee3e5}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_._use_secondary_13w0c_gg_{border-bottom:1px solid #a6b0b3}.___SColumn_13w0c_gg_.__sortable_13w0c_gg_{cursor:pointer}.___SColumn_13w0c_gg_.__sortable_13w0c_gg_._use_primary_13w0c_gg_:hover{background-color:#e4e7e8}.___SColumn_13w0c_gg_.__active_13w0c_gg_._use_primary_13w0c_gg_{background-color:#e4e7e8}.___SColumn_13w0c_gg_.__resizable_13w0c_gg_:hover:after{background:#a6b0b3}.___SColumn_13w0c_gg_.__resizable_13w0c_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_13w0c_gg_.__fixed_13w0c_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_13w0c_gg_{margin-top:2px;margin-left:4px;color:#bdc4c6}.___SSortIcon_13w0c_gg_.__active_13w0c_gg_{fill:#64787e}.___SBodyWrapper_13w0c_gg_{position:relative}.___SBody_13w0c_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_13w0c_gg_{display:flex;flex-direction:row;position:relative}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f6f7f7}.___SRow_13w0c_gg_._theme_muted_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f2f3f4}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_muted_13w0c_gg_,.___SRow_13w0c_gg_._theme_muted_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_muted_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f6f7f7}.___SRow_13w0c_gg_._theme_info_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#d5eaf9}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_info_13w0c_gg_,.___SRow_13w0c_gg_._theme_info_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_info_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#cae4f8}.___SRow_13w0c_gg_._theme_success_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#e5f3e0}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_success_13w0c_gg_,.___SRow_13w0c_gg_._theme_success_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_success_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#dcefd6}.___SRow_13w0c_gg_._theme_warning_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fef3e6}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_warning_13w0c_gg_,.___SRow_13w0c_gg_._theme_warning_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_warning_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#feefde}.___SRow_13w0c_gg_._theme_danger_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fdeaea}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_danger_13w0c_gg_,.___SRow_13w0c_gg_._theme_danger_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_danger_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fce0e0}.___SCell_13w0c_gg_{display:flex;flex:0 0 auto;font-size:14px;color:#333333;line-height:20px;box-sizing:border-box;border-bottom:1px solid #dee3e5;overflow:hidden;white-space:nowrap}.___SCell_13w0c_gg_._use_primary_13w0c_gg_{padding:12px;min-height:45px;background-color:#fff}.___SCell_13w0c_gg_._use_secondary_13w0c_gg_{padding:8px;min-height:37px;background-color:#fff}.___SCell_13w0c_gg_.__fixed_13w0c_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_13w0c_gg_._theme_muted_13w0c_gg_{background-color:#f2f3f4}.___SCell_13w0c_gg_._theme_info_13w0c_gg_{background-color:#d5eaf9}.___SCell_13w0c_gg_._theme_success_13w0c_gg_{background-color:#e5f3e0}.___SCell_13w0c_gg_._theme_warning_13w0c_gg_{background-color:#fef3e6}.___SCell_13w0c_gg_._theme_danger_13w0c_gg_{background-color:#fdeaea}.___SScrollAreaBar_13w0c_gg_._orientation_horizontal_13w0c_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_13w0c_gg_._orientation_vertical_13w0c_gg_{width:12px}.___SScrollAreaBar_13w0c_gg_._orientation_horizontal_13w0c_gg_{margin-left:calc(var(--left_1okuh39) + 4px);margin-right:calc(var(--right_1okuh39) + 4px);width:calc(100% - var(--offsetSum_1okuh39) - 8px)}"
72
+ ".___SDataTable_3r9at_gg_{position:relative}.___SHeadWrapper_3r9at_gg_{position:relative}.___SHeadWrapper_3r9at_gg_.__sticky_3r9at_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_3r9at_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_3r9at_gg_{display:flex;flex-grow:1;font-size:12px;line-height:18px;color:#333333;box-sizing:border-box;position:relative}.___SColumn_3r9at_gg_:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(43,148,225,.3)}.___SColumn_3r9at_gg_.__hidden_3r9at_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_3r9at_gg_._use_primary_3r9at_gg_{padding:12px;border-right:1px solid #dee3e5;border-bottom:1px solid #dee3e5;background-color:#f2f3f4}.___SColumn_3r9at_gg_._use_secondary_3r9at_gg_{padding:8px;border-bottom:1px solid #a6b0b3;background-color:#fff}.___SColumn_3r9at_gg_.__use_3r9at_gg_:last-child{border-right:none}.___SColumn_3r9at_gg_.__group_3r9at_gg_.__use_3r9at_gg_{display:flex;flex-wrap:wrap;flex-direction:column;border-bottom:none;padding:0}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_.__use_3r9at_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_._use_primary_3r9at_gg_{border-bottom:1px solid #dee3e5}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_._use_secondary_3r9at_gg_{border-bottom:1px solid #a6b0b3}.___SColumn_3r9at_gg_.__sortable_3r9at_gg_{cursor:pointer}.___SColumn_3r9at_gg_.__sortable_3r9at_gg_._use_primary_3r9at_gg_:hover{background-color:#e4e7e8}.___SColumn_3r9at_gg_.__active_3r9at_gg_._use_primary_3r9at_gg_{background-color:#e4e7e8}.___SColumn_3r9at_gg_.__resizable_3r9at_gg_:hover:after{background:#a6b0b3}.___SColumn_3r9at_gg_.__resizable_3r9at_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_3r9at_gg_.__fixed_3r9at_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_3r9at_gg_{margin-top:2px;margin-left:4px;color:#bdc4c6}.___SSortIcon_3r9at_gg_.__active_3r9at_gg_{fill:#64787e}.___SBodyWrapper_3r9at_gg_{position:relative}.___SBody_3r9at_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_3r9at_gg_{display:flex;flex-direction:row;position:relative}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f6f7f7}.___SRow_3r9at_gg_._theme_muted_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f2f3f4}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_muted_3r9at_gg_,.___SRow_3r9at_gg_._theme_muted_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_muted_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f6f7f7}.___SRow_3r9at_gg_._theme_info_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#d5eaf9}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_info_3r9at_gg_,.___SRow_3r9at_gg_._theme_info_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_info_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#cae4f8}.___SRow_3r9at_gg_._theme_success_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#e5f3e0}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_success_3r9at_gg_,.___SRow_3r9at_gg_._theme_success_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_success_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#dcefd6}.___SRow_3r9at_gg_._theme_warning_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fef3e6}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_warning_3r9at_gg_,.___SRow_3r9at_gg_._theme_warning_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_warning_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#feefde}.___SRow_3r9at_gg_._theme_danger_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fdeaea}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_danger_3r9at_gg_,.___SRow_3r9at_gg_._theme_danger_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_danger_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fce0e0}.___SCell_3r9at_gg_{display:flex;flex:1;font-size:14px;color:#333333;line-height:20px;box-sizing:border-box;border-bottom:1px solid #dee3e5;overflow:hidden;white-space:nowrap}.___SCell_3r9at_gg_._use_primary_3r9at_gg_{padding:12px;min-height:45px;background-color:#fff}.___SCell_3r9at_gg_._use_secondary_3r9at_gg_{padding:8px;min-height:37px;background-color:#fff}.___SCell_3r9at_gg_.__fixed_3r9at_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_3r9at_gg_._theme_muted_3r9at_gg_{background-color:#f2f3f4}.___SCell_3r9at_gg_._theme_info_3r9at_gg_{background-color:#d5eaf9}.___SCell_3r9at_gg_._theme_success_3r9at_gg_{background-color:#e5f3e0}.___SCell_3r9at_gg_._theme_warning_3r9at_gg_{background-color:#fef3e6}.___SCell_3r9at_gg_._theme_danger_3r9at_gg_{background-color:#fdeaea}.___SScrollAreaBar_3r9at_gg_._orientation_horizontal_3r9at_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_3r9at_gg_._orientation_vertical_3r9at_gg_{width:12px}.___SScrollAreaBar_3r9at_gg_._orientation_horizontal_3r9at_gg_{margin-left:calc(var(--left_1jyhdcr) + 4px);margin-right:calc(var(--right_1jyhdcr) + 4px);width:calc(100% - var(--offsetSum_1jyhdcr) - 8px)}"
71
73
  /*__inner_css_end__*/
72
- , "1okuh39_gg_")
74
+ , "1jyhdcr_gg_")
73
75
  /*__reshadow_css_end__*/
74
76
  , {
75
- "__SDataTable": "___SDataTable_13w0c_gg_",
76
- "__SHeadWrapper": "___SHeadWrapper_13w0c_gg_",
77
- "_sticky": "__sticky_13w0c_gg_",
78
- "__SHead": "___SHead_13w0c_gg_",
79
- "__SColumn": "___SColumn_13w0c_gg_",
80
- "_hidden": "__hidden_13w0c_gg_",
81
- "_use_primary": "_use_primary_13w0c_gg_",
82
- "_use_secondary": "_use_secondary_13w0c_gg_",
83
- "_use": "__use_13w0c_gg_",
84
- "_group": "__group_13w0c_gg_",
85
- "_groupHead": "__groupHead_13w0c_gg_",
86
- "_sortable": "__sortable_13w0c_gg_",
87
- "_active": "__active_13w0c_gg_",
88
- "_resizable": "__resizable_13w0c_gg_",
89
- "_fixed": "__fixed_13w0c_gg_",
90
- "__SSortIcon": "___SSortIcon_13w0c_gg_",
91
- "__SBodyWrapper": "___SBodyWrapper_13w0c_gg_",
92
- "__SBody": "___SBody_13w0c_gg_",
93
- "__SRow": "___SRow_13w0c_gg_",
94
- "__SCell": "___SCell_13w0c_gg_",
95
- "_theme": "__theme_13w0c_gg_",
96
- "_theme_muted": "_theme_muted_13w0c_gg_",
97
- "_theme_info": "_theme_info_13w0c_gg_",
98
- "_theme_success": "_theme_success_13w0c_gg_",
99
- "_theme_warning": "_theme_warning_13w0c_gg_",
100
- "_theme_danger": "_theme_danger_13w0c_gg_",
101
- "__SScrollAreaBar": "___SScrollAreaBar_13w0c_gg_",
102
- "_orientation_horizontal": "_orientation_horizontal_13w0c_gg_",
103
- "_orientation_vertical": "_orientation_vertical_13w0c_gg_",
104
- "--left": "--left_1okuh39",
105
- "--right": "--right_1okuh39",
106
- "--offsetSum": "--offsetSum_1okuh39"
77
+ "__SDataTable": "___SDataTable_3r9at_gg_",
78
+ "__SHeadWrapper": "___SHeadWrapper_3r9at_gg_",
79
+ "_sticky": "__sticky_3r9at_gg_",
80
+ "__SHead": "___SHead_3r9at_gg_",
81
+ "__SColumn": "___SColumn_3r9at_gg_",
82
+ "_hidden": "__hidden_3r9at_gg_",
83
+ "_use_primary": "_use_primary_3r9at_gg_",
84
+ "_use_secondary": "_use_secondary_3r9at_gg_",
85
+ "_use": "__use_3r9at_gg_",
86
+ "_group": "__group_3r9at_gg_",
87
+ "_groupHead": "__groupHead_3r9at_gg_",
88
+ "_sortable": "__sortable_3r9at_gg_",
89
+ "_active": "__active_3r9at_gg_",
90
+ "_resizable": "__resizable_3r9at_gg_",
91
+ "_fixed": "__fixed_3r9at_gg_",
92
+ "__SSortIcon": "___SSortIcon_3r9at_gg_",
93
+ "__SBodyWrapper": "___SBodyWrapper_3r9at_gg_",
94
+ "__SBody": "___SBody_3r9at_gg_",
95
+ "__SRow": "___SRow_3r9at_gg_",
96
+ "__SCell": "___SCell_3r9at_gg_",
97
+ "_theme": "__theme_3r9at_gg_",
98
+ "_theme_muted": "_theme_muted_3r9at_gg_",
99
+ "_theme_info": "_theme_info_3r9at_gg_",
100
+ "_theme_success": "_theme_success_3r9at_gg_",
101
+ "_theme_warning": "_theme_warning_3r9at_gg_",
102
+ "_theme_danger": "_theme_danger_3r9at_gg_",
103
+ "__SScrollAreaBar": "___SScrollAreaBar_3r9at_gg_",
104
+ "_orientation_horizontal": "_orientation_horizontal_3r9at_gg_",
105
+ "_orientation_vertical": "_orientation_vertical_3r9at_gg_",
106
+ "--left": "--left_1jyhdcr",
107
+ "--right": "--right_1jyhdcr",
108
+ "--offsetSum": "--offsetSum_1jyhdcr"
107
109
  });
108
- var MAP_SORT_DIRECTION = {
110
+ var REVERSED_SORT_DIRECTION = {
109
111
  desc: 'asc',
110
112
  asc: 'desc'
111
113
  };
@@ -114,9 +116,9 @@ var ROW_GROUP = Symbol('ROW_GROUP');
114
116
  exports.ROW_GROUP = ROW_GROUP;
115
117
  var cssVarReg = /[:;]/g;
116
118
 
117
- function createCssVarForWidth(name) {
119
+ var createCssVarForWidth = function createCssVarForWidth(name) {
118
120
  return "--".concat(name.replace(cssVarReg, '_'), "_width");
119
- }
121
+ };
120
122
 
121
123
  var RootDefinitionTable = /*#__PURE__*/function (_Component) {
122
124
  (0, _inherits2["default"])(RootDefinitionTable, _Component);
@@ -130,12 +132,14 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
130
132
  _this = _super.call(this, props);
131
133
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columns", []);
132
134
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "tableRef", /*#__PURE__*/_react["default"].createRef());
133
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerSortClick", function (name, e) {
134
- var column = _this.columns.find(function (c) {
135
- return c.name === name;
135
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollBodyRef", null);
136
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollHeadRef", null);
137
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerSortClick", function (name, event) {
138
+ var column = _this.columns.find(function (column) {
139
+ return column.name === name;
136
140
  });
137
141
 
138
- return (0, _fire["default"])((0, _assertThisInitialized2["default"])(_this), 'onSortChange', [column.name, column.active ? MAP_SORT_DIRECTION[column.sortDirection] : column.sortDirection], e);
142
+ return (0, _fire["default"])((0, _assertThisInitialized2["default"])(_this), 'onSortChange', [column.name, column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection], event);
139
143
  });
140
144
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerResize", function () {
141
145
  _this.forceUpdate();
@@ -159,18 +163,45 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
159
163
  (0, _createClass2["default"])(RootDefinitionTable, [{
160
164
  key: "setVarStyle",
161
165
  value: function setVarStyle(columns) {
162
- var _this2 = this;
166
+ var _iterator = _createForOfIteratorHelper(columns),
167
+ _step;
163
168
 
164
- columns.forEach(function (column) {
165
- var _this2$tableRef$curre;
169
+ try {
170
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
171
+ var _column = _step.value;
166
172
 
167
- (_this2$tableRef$curre = _this2.tableRef.current) === null || _this2$tableRef$curre === void 0 ? void 0 : _this2$tableRef$curre.style.setProperty(column.cssVar, "".concat(column.width, "px"));
168
- }, {});
173
+ if (Array.isArray(_column.cssVar)) {
174
+ var _iterator2 = _createForOfIteratorHelper(_column.cssVar),
175
+ _step2;
176
+
177
+ try {
178
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
179
+ var _this$tableRef$curren2;
180
+
181
+ var cssVar = _step2.value;
182
+ (_this$tableRef$curren2 = this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.style.setProperty(cssVar, "".concat(_column.width, "px"));
183
+ }
184
+ } catch (err) {
185
+ _iterator2.e(err);
186
+ } finally {
187
+ _iterator2.f();
188
+ }
189
+ } else {
190
+ var _this$tableRef$curren3;
191
+
192
+ (_this$tableRef$curren3 = this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.style.setProperty(_column.cssVar, "".concat(_column.width, "px"));
193
+ }
194
+ }
195
+ } catch (err) {
196
+ _iterator.e(err);
197
+ } finally {
198
+ _iterator.f();
199
+ }
169
200
  }
170
201
  }, {
171
202
  key: "childrenToColumns",
172
203
  value: function childrenToColumns(children) {
173
- var _this3 = this;
204
+ var _this2 = this;
174
205
 
175
206
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
176
207
  fixed: undefined
@@ -183,23 +214,24 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
183
214
 
184
215
  if (! /*#__PURE__*/_react["default"].isValidElement(child)) return;
185
216
  if (child.type !== DefinitionTable.Column) return;
186
- var _child$props = child.props,
187
- children = _child$props.children,
188
- name = _child$props.name,
189
- _child$props$fixed = _child$props.fixed,
190
- fixed = _child$props$fixed === void 0 ? options.fixed : _child$props$fixed,
191
- resizable = _child$props.resizable,
192
- sortable = _child$props.sortable,
193
- props = (0, _objectWithoutProperties2["default"])(_child$props, _excluded);
217
+ var _ref3 = child.props,
218
+ children = _ref3.children,
219
+ name = _ref3.name,
220
+ _ref3$fixed = _ref3.fixed,
221
+ fixed = _ref3$fixed === void 0 ? options.fixed : _ref3$fixed,
222
+ resizable = _ref3.resizable,
223
+ sortable = _ref3.sortable,
224
+ props = (0, _objectWithoutProperties2["default"])(_ref3, _excluded);
194
225
  var isGroup = !name;
195
- var columns = null;
226
+ var columns = [];
196
227
 
197
228
  if (isGroup) {
198
- columns = _this3.childrenToColumns(children, {
229
+ columns = _this2.childrenToColumns(children, {
199
230
  fixed: fixed
200
231
  });
201
- name = (0, _utils.flattenColumns)(columns).map(function (c) {
202
- return c.name;
232
+ name = (0, _utils.flattenColumns)(columns).map(function (_ref4) {
233
+ var name = _ref4.name;
234
+ return name;
203
235
  }).join('/');
204
236
  if (!columns.length) return;
205
237
  children = _react["default"].Children.toArray(children).filter(function (child) {
@@ -207,8 +239,8 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
207
239
  });
208
240
  }
209
241
 
210
- var column = _this3.columns.find(function (c) {
211
- return c.name === name;
242
+ var column = _this2.columns.find(function (column) {
243
+ return column.name === name;
212
244
  });
213
245
 
214
246
  columnsChildren.push({
@@ -227,6 +259,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
227
259
  sortDirection: sort[0] === name ? sort[1] : (column === null || column === void 0 ? void 0 : column.sortDirection) || (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),
228
260
  columns: columns,
229
261
  props: _objectSpread({
262
+ name: name,
230
263
  ref: (column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : _column$props.ref) || /*#__PURE__*/_react["default"].createRef(),
231
264
  children: children
232
265
  }, props)
@@ -255,28 +288,28 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
255
288
  var _this$asProps = this.asProps,
256
289
  data = _this$asProps.data,
257
290
  use = _this$asProps.use;
258
- var propsCells = {};
259
- var $propsRow = [];
291
+ var cellPropsLayers = {};
292
+ var rowPropsLayers = [];
260
293
 
261
294
  _react["default"].Children.forEach(props.children, function (child) {
262
295
  if ( /*#__PURE__*/_react["default"].isValidElement(child)) {
263
- var _child$props2 = child.props,
264
- name = _child$props2.name,
265
- children = _child$props2.children,
266
- other = (0, _objectWithoutProperties2["default"])(_child$props2, _excluded2);
296
+ var _ref5 = child.props,
297
+ name = _ref5.name,
298
+ children = _ref5.children,
299
+ other = (0, _objectWithoutProperties2["default"])(_ref5, _excluded2);
267
300
 
268
301
  if (child.type === DefinitionTable.Cell && name) {
269
302
  name.split('/').forEach(function (name) {
270
- propsCells[name] = propsCells[name] || [];
271
- propsCells[name].push(_objectSpread(_objectSpread({}, other), {}, {
272
- getCellProps: children
303
+ cellPropsLayers[name] = cellPropsLayers[name] || [];
304
+ cellPropsLayers[name].push(_objectSpread(_objectSpread({}, other), {}, {
305
+ childrenPropsGetter: children
273
306
  }));
274
307
  });
275
308
  }
276
309
 
277
310
  if (child.type === DefinitionTable.Row) {
278
- $propsRow.push(_objectSpread(_objectSpread({}, other), {}, {
279
- getRowProps: children
311
+ rowPropsLayers.push(_objectSpread(_objectSpread({}, other), {}, {
312
+ childrenPropsGetter: children
280
313
  }));
281
314
  }
282
315
  }
@@ -284,99 +317,105 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
284
317
 
285
318
  return {
286
319
  columns: this.columns,
287
- rows: this.dataToRows(data, propsCells),
320
+ rows: this.dataToRows(data, cellPropsLayers),
288
321
  use: use,
289
- $propsRow: $propsRow,
322
+ rowPropsLayers: rowPropsLayers,
290
323
  $scrollRef: this.scrollBodyRef
291
324
  };
292
325
  }
293
326
  }, {
294
327
  key: "dataToRows",
295
- value: function dataToRows(data, propsCells) {
296
- var columns = this.columns;
328
+ value: function dataToRows(data, cellPropsLayers) {
329
+ var _this3 = this;
297
330
 
298
- function parseData(data) {
299
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
300
- exclude: []
301
- };
331
+ var parseData = function parseData(data, exclude) {
302
332
  return data.map(function (row) {
303
- var columnsGroups = Object.keys(row).reduce(function (acc, name) {
304
- var names = name.split('/');
305
-
306
- if (names.length >= 2) {
307
- acc.push([names, row[name]]);
333
+ var groupByName = {};
334
+ var groupedColumns = {};
335
+ var ungroupedColumns = {};
336
+
337
+ for (var rowKey in row) {
338
+ var columnNames = rowKey.split('/');
339
+
340
+ if (columnNames.length >= 2) {
341
+ var _iterator3 = _createForOfIteratorHelper(columnNames),
342
+ _step3;
343
+
344
+ try {
345
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
346
+ var _column2 = _step3.value;
347
+ groupByName[_column2] = {
348
+ groupedColumns: columnNames,
349
+ groupData: row[rowKey]
350
+ };
351
+ groupedColumns[rowKey] = true;
352
+ }
353
+ } catch (err) {
354
+ _iterator3.e(err);
355
+ } finally {
356
+ _iterator3.f();
357
+ }
358
+ } else {
359
+ ungroupedColumns[rowKey] = true;
308
360
  }
361
+ }
309
362
 
310
- return acc;
311
- }, []);
312
- var nameColumnsGroup = columnsGroups.reduce(function (acc, _ref3) {
313
- var _ref4 = (0, _slicedToArray2["default"])(_ref3, 1),
314
- names = _ref4[0];
315
-
316
- return acc.concat(names);
317
- }, []).filter(function (name, i, arr) {
318
- return arr.indexOf(name) === i;
319
- });
320
363
  var rowsGroup = row[ROW_GROUP] || [];
321
- var nameRowsGroup = rowsGroup.reduce(function (acc, row) {
322
- return acc.concat(Object.keys(row));
323
- }, []).filter(function (name, i, arr) {
324
- return arr.indexOf(name) === i;
325
- });
326
- var isGroupRow = false;
327
- var cells = [];
328
- cells._row = row;
329
- return columns.reduce(function (acc, column) {
330
- var columnGroup = columnsGroups.find(function (group) {
331
- var _group$;
332
-
333
- return (_group$ = group[0]) === null || _group$ === void 0 ? void 0 : _group$.includes(column.name);
334
- });
335
-
336
- if (columnGroup) {
337
- var _columnGroup = (0, _slicedToArray2["default"])(columnGroup, 2),
338
- names = _columnGroup[0],
339
- _data = _columnGroup[1];
340
-
341
- if (names[0] === column.name) {
342
- acc.push({
343
- name: names.join('/'),
344
- cssVar: names.map(createCssVarForWidth),
364
+ var rowsGroupedNames = Object.fromEntries(rowsGroup.map(function (subRow) {
365
+ return Object.keys(subRow);
366
+ }).flat().map(function (key) {
367
+ return [key, true];
368
+ }));
369
+ var isGroup = false;
370
+
371
+ var cells = _this3.columns.map(function (column) {
372
+ if (groupByName[column.name]) {
373
+ var _groupByName$column$n = groupByName[column.name],
374
+ _groupedColumns = _groupByName$column$n.groupedColumns,
375
+ groupData = _groupByName$column$n.groupData;
376
+
377
+ if (_groupedColumns[0] === column.name) {
378
+ return {
379
+ name: _groupedColumns.join('/'),
380
+ cssVar: _groupedColumns.map(createCssVarForWidth),
345
381
  fixed: column.fixed,
346
- data: _data,
347
- rendersCell: propsCells[column.name] || []
348
- });
382
+ data: groupData,
383
+ cellPropsLayers: cellPropsLayers[column.name] || []
384
+ };
349
385
  }
350
386
  } else if (column.name in row) {
351
- acc.push({
387
+ return {
352
388
  name: column.name,
353
389
  cssVar: column.cssVar,
354
390
  fixed: column.fixed,
355
391
  data: row[column.name],
356
- rendersCell: propsCells[column.name] || []
357
- });
358
- } else if (!isGroupRow && nameRowsGroup.includes(column.name)) {
359
- // TODO: сделать универсально
360
- isGroupRow = true;
361
- acc.push(parseData(rowsGroup, {
362
- exclude: [].concat((0, _toConsumableArray2["default"])(Object.keys(row)), (0, _toConsumableArray2["default"])(nameColumnsGroup))
363
- }));
364
- } else if (![].concat((0, _toConsumableArray2["default"])(options.exclude), (0, _toConsumableArray2["default"])(nameRowsGroup)).includes(column.name)) {
365
- acc.push({
392
+ cellPropsLayers: cellPropsLayers[column.name] || []
393
+ };
394
+ } else if (!isGroup && rowsGroupedNames[column.name]) {
395
+ // TODO: make it work not only with first group
396
+ isGroup = true;
397
+ return parseData(rowsGroup, _objectSpread(_objectSpread({}, ungroupedColumns), groupedColumns));
398
+ } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {
399
+ return {
366
400
  name: column.name,
367
401
  cssVar: column.cssVar,
368
402
  fixed: column.fixed,
369
403
  data: null,
370
- rendersCell: propsCells[column.name] || []
371
- });
404
+ cellPropsLayers: cellPropsLayers[column.name] || []
405
+ };
372
406
  }
407
+ }).filter(function (column) {
408
+ return column !== undefined;
409
+ }).map(function (column) {
410
+ return column;
411
+ });
373
412
 
374
- return acc;
375
- }, cells);
413
+ cells.flatRowData = row;
414
+ return cells;
376
415
  });
377
- }
416
+ };
378
417
 
379
- return parseData(data);
418
+ return parseData(data, {});
380
419
  }
381
420
  }, {
382
421
  key: "componentDidUpdate",
@@ -386,7 +425,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
386
425
  }, {
387
426
  key: "render",
388
427
  value: function render() {
389
- var _ref = this ? this.asProps : arguments[0],
428
+ var _ref = this.asProps,
390
429
  _ref2;
391
430
 
392
431
  var SDataTable = _flexBox.Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DataTable.jsx"],"names":["MAP_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","React","createRef","e","column","columns","find","c","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","forEach","style","setProperty","cssVar","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","propsCells","$propsRow","other","Cell","split","getCellProps","Row","getRowProps","rows","dataToRows","parseData","exclude","row","columnsGroups","Object","keys","reduce","acc","names","nameColumnsGroup","concat","i","arr","indexOf","rowsGroup","nameRowsGroup","isGroupRow","cells","_row","columnGroup","group","includes","rendersCell","setVarStyle","SDataTable","Box","styles","Component","ComponentDefinition","Head","Body"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } 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 Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst MAP_SORT_DIRECTION = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nfunction createCssVarForWidth(name) {\n return `--${name.replace(cssVarReg, '_')}_width`;\n}\n\nclass RootDefinitionTable extends Component {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n sort: [],\n data: [],\n };\n\n columns = [];\n\n tableRef = React.createRef();\n\n constructor(props) {\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, e) => {\n const column = this.columns.find((c) => c.name === name);\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? MAP_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n e,\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) {\n columns.forEach((column) => {\n this.tableRef.current?.style.setProperty(column.cssVar, `${column.width}px`);\n }, {});\n }\n\n childrenToColumns(children, options = { fixed: undefined }) {\n const { sort } = this.asProps;\n const columnsChildren = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let { children, name, fixed = options.fixed, resizable, sortable, ...props } = child.props;\n const isGroup = !name;\n let columns = null;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, {\n fixed,\n });\n name = flattenColumns(columns)\n .map((c) => c.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((c) => c.name === name);\n\n columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\n fixed,\n resizable,\n active: sort[0] === name,\n sortable,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),\n columns,\n props: {\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\n });\n return columnsChildren;\n }\n\n getHeadProps(props) {\n const { use } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n };\n }\n\n getBodyProps(props) {\n const { data, use } = this.asProps;\n const propsCells = {};\n const $propsRow = [];\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props;\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n propsCells[name] = propsCells[name] || [];\n propsCells[name].push({\n ...other,\n getCellProps: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n $propsRow.push({\n ...other,\n getRowProps: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, propsCells),\n use,\n $propsRow,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data, propsCells) {\n const columns = this.columns;\n\n function parseData(data, options = { exclude: [] }) {\n return data.map((row) => {\n const columnsGroups = Object.keys(row).reduce((acc, name) => {\n const names = name.split('/');\n if (names.length >= 2) {\n acc.push([names, row[name]]);\n }\n return acc;\n }, []);\n const nameColumnsGroup = columnsGroups\n .reduce((acc, [names]) => acc.concat(names), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n const rowsGroup = row[ROW_GROUP] || [];\n const nameRowsGroup = rowsGroup\n .reduce((acc, row) => acc.concat(Object.keys(row)), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n let isGroupRow = false;\n\n const cells = [];\n cells._row = row;\n return columns.reduce((acc, column) => {\n const columnGroup = columnsGroups.find((group) => group[0]?.includes(column.name));\n if (columnGroup) {\n const [names, data] = columnGroup;\n if (names[0] === column.name) {\n acc.push({\n name: names.join('/'),\n cssVar: names.map(createCssVarForWidth),\n fixed: column.fixed,\n data,\n rendersCell: propsCells[column.name] || [],\n });\n }\n } else if (column.name in row) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: row[column.name],\n rendersCell: propsCells[column.name] || [],\n });\n } else if (!isGroupRow && nameRowsGroup.includes(column.name)) {\n // TODO: сделать универсально\n isGroupRow = true;\n acc.push(\n parseData(rowsGroup, {\n exclude: [...Object.keys(row), ...nameColumnsGroup],\n }),\n );\n } else if (![...options.exclude, ...nameRowsGroup].includes(column.name)) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: null,\n rendersCell: propsCells[column.name] || [],\n });\n }\n return acc;\n }, cells);\n });\n }\n\n return parseData(data);\n }\n\n componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\n <Children />\n </SDataTable>,\n );\n }\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n);\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"file":"DataTable.js"}
1
+ {"version":3,"sources":["../../src/DataTable.tsx"],"names":["REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","React","createRef","event","column","columns","find","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","Array","isArray","cssVar","style","setProperty","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","parseData","exclude","row","groupByName","groupedColumns","ungroupedColumns","rowKey","columnNames","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","flatRowData","setVarStyle","SDataTable","Box","styles","Component","ComponentDefinition","Head","Body"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root, PropGetterFn } from '@semcore/core';\nimport { Box, IBoxProps, IFlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport fire from '@semcore/utils/lib/fire';\nimport { flattenColumns } from './utils';\nimport type {\n RowData,\n SortDirection,\n PseudoChildPropsGetter,\n PropsLayer,\n NestedCells,\n Column,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst REVERSED_SORT_DIRECTION: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nconst createCssVarForWidth = (name: string) => {\n return `--${name.replace(cssVarReg, '_')}_width`;\n};\n\ntype AsProps = {\n use: 'primary' | 'secondary';\n sort: SortDirection[];\n data: RowData[];\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n};\n\n/* utils type */\ntype CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\ntype ReturnEl = React.ReactElement | null;\ntype ChildRenderFn<Props> = Props & {\n children?: (props: Props, column: DataTableData, index: number) => { [key: string]: unknown };\n};\n/* utils type */\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort = [string, 'desc' | 'asc'];\nexport type DataTableTheme = 'muted' | 'info' | 'success' | 'warning' | 'danger';\nexport type DataTableUse = 'primary' | 'secondary';\nexport type DataTableRow = DataTableCell[];\nexport type DataTableCell = {\n /** Name of column */\n name: string;\n /** Data of column */\n data: React.ReactNode;\n [key: string]: unknown;\n};\n\nexport interface IDataTableProps extends IBoxProps {\n /** Theme for table\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData[];\n /** Active sort object */\n sort?: DataTableSort;\n /** Handler call when will request change sort */\n onSortChange?: (sort: DataTableSort, e?: React.SyntheticEvent) => void;\n}\n\nexport interface IDataTableHeadProps extends IBoxProps {\n /** Sticky header table\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n}\n\nexport interface IDataTableColumnProps extends IFlexProps {\n /** Unique name column */\n name?: string;\n /** Enable sort for column also if you pass string you can set default sort */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fixed column on the left/right */\n fixed?: 'left' | 'right';\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\n /** Rows table */\n rows?: DataTableRow[];\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\n /** Theme for cell */\n theme?: DataTableTheme;\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n sort: [],\n data: [],\n } as AsProps;\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n for (const column of columns) {\n if (Array.isArray(column.cssVar)) {\n for (const cssVar of column.cssVar) {\n this.tableRef.current?.style.setProperty(cssVar, `${column.width}px`);\n }\n } else {\n this.tableRef.current?.style.setProperty(column.cssVar, `${column.width}px`);\n }\n }\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] = [];\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n\n columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\n fixed,\n resizable,\n active: sort[0] === name,\n sortable,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),\n columns,\n props: {\n name,\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use } = this.asProps;\n\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\n }\n }\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .map((subRow) => Object.keys(subRow))\n .flat()\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n return {\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column !== undefined)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"file":"DataTable.js"}