radar-ui 1.1.45 → 1.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,976 +1,302 @@
1
1
 
2
2
  (function() {
3
3
  const style = document.createElement('style');
4
- style.textContent = ".radar-table-container{display:flex;flex-direction:column;gap:16px;position:relative}.radar-table{width:100%;border-collapse:separate;border-spacing:0;font-family:inherit;overflow:clip;scroll-snap-type:x mandatory;scroll-behavior:smooth;table-layout:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.radar-table-default{border-radius:12px;background-color:#fff}.radar-table-pagination-container{position:sticky;bottom:-16px;left:0;background-color:#fff;padding:16px;border-top:1px solid #E8E8E8;width:100%}.radar-table *,.radar-table *:before,.radar-table *:after{box-sizing:border-box}@-moz-document url-prefix(){.radar-table{border-collapse:separate;border-spacing:0}.radar-table__body-row{box-sizing:border-box}.radar-table__body-cell{vertical-align:top;box-sizing:border-box}.radar-table__body-cell-wrapper,.radar-table__header-cell-wrapper{display:flex!important;align-items:center!important;box-sizing:border-box!important;padding:9px 12px!important;height:1px;min-height:32px;vertical-align:top}.radar-table-default__body-cell-wrapper,.radar-table-simple__body-cell-wrapper{line-height:1!important;padding:9px 12px!important;font-size:14px!important}.radar-table-default__header-cell-wrapper{padding:9px 12px!important}.radar-table-simple__header-cell-wrapper{padding:20px 10px!important}}.radar-table__header{text-align:left;z-index:1}.radar-table-default__header{background-color:#f7f6fe}.radar-table-simple__header{background-color:#fff}.radar-table__header-group-cell{scroll-snap-align:start}.radar-table-simple__header-group-cell{font-family:inherit;font-weight:700;font-size:18px;line-height:1.2;letter-spacing:0%;color:#1a1a1a;box-sizing:border-box;vertical-align:top}.radar-table__header-group-cell-wrapper{width:100%}.radar-table-simple__header-group-cell-wrapper{padding:12px 10px;display:flex;gap:8px;align-items:center;box-sizing:border-box;min-height:44px}.radar-table__header-cell{scroll-snap-align:start;box-sizing:border-box}.radar-table-default__header-cell{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen;font-weight:500!important;font-size:14px;line-height:100%;letter-spacing:0%;color:#8c8c8c;background-color:#f7f6fe;box-sizing:border-box}.radar-table-simple__header-cell{font-weight:500!important;font-size:16px;line-height:1.2;letter-spacing:0%;color:#8c8c8c;background-color:#fff;box-sizing:border-box;vertical-align:top}.radar-table-default__header-cell:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}.radar-table-default__header-cell:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}.radar-table__header-cell-wrapper{width:100%;position:relative;box-sizing:border-box;padding-right:25px!important}.radar-table__header-cell-wrapper:hover .radar-table__resize-button{opacity:1}.radar-table__header-cell-wrapper:hover{width:100%;position:relative;box-sizing:border-box;padding-right:25px!important}.radar-table-default__header-cell-wrapper{padding:9px 12px;display:flex;gap:8px;align-items:center;box-sizing:border-box}.radar-table-simple__header-cell-wrapper{padding:20px 10px;display:flex;gap:8px;align-items:center;box-sizing:border-box;min-height:60px}.radar-table__header-cell-text-wrapper{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.radar-table__sort-button-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.radar-table__sort-button{border:none;background-color:transparent;color:inherit;cursor:pointer;font-size:inherit;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.radar-table__sort-button svg{width:1em;height:1em}.radar-table__sort-button:hover{opacity:.75}.radar-table__drag-handle{display:flex;align-items:center;justify-content:center;cursor:move;opacity:.5;transition:opacity .2s ease;padding:2px;margin-right:4px}.radar-table__drag-handle:hover{opacity:.8}.radar-table__drag-handle.dragging{opacity:1}.radar-table__header-cell.dragging{opacity:.5;transform:rotate(2deg);z-index:1000}.radar-table__header-cell.drag-over.valid-drop-zone,.radar-table__header-cell.drag-over.invalid-drop-zone{transition:all .2s ease;z-index:1000}.radar-table__drag-handle{cursor:grab;transition:transform .2s ease}.radar-table__drag-handle:hover{transform:scale(1.1)}.radar-table__drag-handle.dragging{cursor:grabbing}.radar-table__header-cell.group-header{cursor:default!important}.radar-table__header-cell.group-header{cursor:grab}.radar-table__header-cell.group-header.dragging{cursor:grabbing}.radar-table__body-row[draggable=true]{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.radar-table__body-row.dragging{opacity:.25;cursor:grabbing;border-radius:20px}.radar-table__body-row.drag-over{border-top:2px solid #5329FF!important}.radar-table__body-row[draggable=true]{cursor:grab}.radar-table__body-row[draggable=true]:active{cursor:grabbing}.radar-table__body-cell{scroll-snap-align:start;box-sizing:border-box;vertical-align:top}.radar-table-default__body-cell,.radar-table-simple__body-cell{height:1px}.radar-table__body-cell-wrapper{width:100%;height:100%;font-family:inherit;background-color:#fff;display:flex;align-items:center}.radar-table__expander-btn{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:16px;font-size:12px;color:#1a1a1a;cursor:pointer;transition:transform .15s ease}.radar-table__expander-btn:focus{outline:none}.radar-table-default__body-cell-wrapper{padding:7px 12px;display:flex;gap:8px;border-bottom:1px solid #E8E8E8;font-weight:500;font-size:14px;line-height:1.2;letter-spacing:0%;color:#1a1a1a;box-sizing:border-box;align-items:center}.radar-table-simple__body-cell-wrapper{padding:18px 12px;display:flex;gap:8px;border-bottom:1px solid #E8E8E8;font-weight:500;font-size:16px;line-height:1.2;letter-spacing:0%;color:#1a1a1a;box-sizing:border-box;align-items:center}.radar-table-default__body-row:last-of-type .radar-table-default__body-cell-wrapper{border-bottom:none}.radar-table-simple__body-row:last-of-type .radar-table-simple__body-cell-wrapper{border-bottom:none}.radar-table__body-noData{padding:18px 12px;display:flex;align-items:center;font-size:16px;line-height:1.2;width:100%}.radar-table__body-noData_width{padding:18px 12px;display:flex;justify-content:center;align-items:center;font-size:16px;line-height:1.2}.radar-table__body-cell-wrapper--stretch,.radar-table-default__body-cell-wrapper--stretch,.radar-table-simple__body-cell-wrapper--stretch{align-items:stretch!important}.radar-table__body-cell-wrapper .salary-cell,.radar-table-default__body-cell-wrapper .salary-cell,.radar-table-simple__body-cell-wrapper .salary-cell{width:100%;height:auto;min-height:auto}.radar-table__custom-content-wrapper{width:100%;height:auto;min-height:100%}.radar-table__footer{pointer-events:auto}.radar-table__footer.resizing{pointer-events:none}.radar-table-default__footer,.radar-table-simple__footer{background-color:#fff}.radar-table-default__footer-cell,.radar-table-simple__footer-cell{border-top:1px solid #E8E8E8}.radar-table__footer-cell-wrapper{width:100%;font-family:inherit}.radar-table-default__footer-cell-wrapper,.radar-table-simple__footer-cell-wrapper{padding:12px 0;display:flex;gap:8px}.radar-table__resize-button{opacity:0;position:absolute;right:0;top:50%;transform:translateY(-50%);height:32px;width:20px;padding-right:6px;background-color:transparent;cursor:col-resize;border:none;display:flex;justify-content:flex-end;align-items:center}.radar-table__resize-button:hover{cursor:col-resize!important}.radar-table__resize-button div{background-color:#8c8c8c;width:2px;height:50%;opacity:1;transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:1px}.radar-table__resize-button:hover div{opacity:.5}.radar-table__resize-button:active div{background-color:#5329ff;opacity:1}.radar-table__resize-line{position:fixed;width:2px;background-color:#5329ff80;z-index:9999;pointer-events:none;opacity:.5;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.radar-table__pagination{display:flex;align-items:center;gap:24px}.radar-table__pagination-main{display:grid;grid-template-rows:32px;gap:4px}.radar-table__pagination-button{width:100%;height:100%;max-width:32px;max-height:32px;border-radius:8px;border:none;cursor:pointer;background-color:#f7f7f7;font-family:inherit;font-weight:500;font-size:14px;line-height:100%;letter-spacing:0%;color:#8c8c8c;opacity:1;transition:all .2s ease;display:flex;align-items:center;justify-content:center;border:1px solid #F7F7F7}.radar-table__pagination-button_active{color:#5329ff;background-color:#eeeaff;border:1px solid #5329FF}.radar-table__pagination-button_control{background-color:transparent;border:none}.radar-table__pagination-button_control:hover{background-color:#f7f7f7}.radar-table__pagination-button:hover{opacity:.75}.radar-table__pagination-quick-jumper{display:flex;align-items:center;gap:8px;font-family:inherit;font-weight:500;font-style:Medium;font-size:14px;line-height:100%;letter-spacing:0%;color:#1a1a1a}.radar-table__pagination-input{width:32px;height:32px;border-radius:8px;border:1px solid #F7F7F7;background-color:#f7f7f7;font-family:inherit;font-weight:500;font-size:14px;line-height:100%;letter-spacing:0%;color:#5329ff;background-color:#eeeaff;text-align:center;outline:none;border:none}.radar-table__tooltip-button{border:none;display:flex;align-items:center;justify-content:center;background-color:transparent;color:inherit;cursor:pointer;font-size:inherit;position:relative}.radar-table__tooltip-button:hover{color:#5329ff}.radar-table__tooltip-text{position:absolute;top:calc(100% + 10px);left:20px;background-color:#fff;padding:8px;width:250px;transform:scale(0);opacity:0;transition:all .2s ease;transform-origin:top left;border-radius:8px;box-shadow:0 0 20px #00000014;white-space:pre-line;text-align:left;font-family:inherit;font-weight:500;font-size:12px;line-height:120%;letter-spacing:0%;color:#1a1a1a;z-index:1000}.radar-table__tooltip-text_visible{transform:scale(1);opacity:1}.radar-table__tooltip-text--right{left:auto!important;right:20px!important;transform-origin:top right!important}.radar-table__tooltip-text--right.radar-table__tooltip-text_visible{transform:scale(1)!important}.radar-table__drag-handle{height:20px;cursor:grab;border-radius:4px;border:none}.radar-title{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen;color:#1a1a1a;margin:0;padding:0}.radar-title_h1{font-size:22px;font-weight:600;line-height:100%;letter-spacing:0%}.radar-title_h2{font-size:18px;font-weight:600;line-height:100%;letter-spacing:0%}.radar-text{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen;color:#1a1a1a;margin:0;padding:0}.radar-text_m{font-size:14px}.radar-text_s{font-size:12px}.radar-text_medium{font-weight:500}.radar-text_semibold{font-weight:600}.radar-text_bold{font-weight:700}\n";
4
+ style.textContent = ".radar-table-container{display:flex;flex-direction:column;gap:16px;position:relative}.radar-table{width:100%;border-collapse:separate;border-spacing:0;font-family:inherit;overflow:clip;table-layout:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.radar-table-default{border-radius:12px;background-color:#fff}.radar-table-pagination-container{position:sticky;bottom:-16px;left:0;background-color:#fff;padding:16px;border-top:1px solid #E8E8E8;width:100%}.radar-table__header{text-align:left;z-index:2}.radar-table-default__header{background-color:#f7f6fe}.radar-table-simple__header{background-color:#fff}.radar-table__header-group-cell{scroll-snap-align:start}.radar-table-simple__header-group-cell{font-family:inherit;font-weight:700;font-size:18px;line-height:1.2;letter-spacing:0%;color:#1a1a1a;box-sizing:border-box;vertical-align:top}.radar-table__header-group-cell-wrapper{width:100%}.radar-table-simple__header-group-cell-wrapper{padding:12px 10px;display:flex;gap:8px;align-items:center;box-sizing:border-box;min-height:44px}.radar-table__header-cell{scroll-snap-align:start;box-sizing:border-box}.radar-table-default__header-cell{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen;font-weight:500;font-size:14px;line-height:100%;letter-spacing:0%;color:#8c8c8c;background-color:#f7f6fe;box-sizing:border-box}.radar-table-simple__header-cell{font-weight:500;font-size:16px;line-height:1.2;letter-spacing:0%;color:#8c8c8c;background-color:#fff;box-sizing:border-box;vertical-align:top}.radar-table-default__header-cell:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}.radar-table-default__header-cell:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}.radar-table__header-cell-wrapper{position:relative;box-sizing:border-box;padding-right:10px}.radar-table__header-cell-wrapper:hover .radar-table__resize-button{opacity:1}.radar-table__header-cell-wrapper:hover{width:100%;position:relative;box-sizing:border-box;padding-right:10px}.radar-table-default__header-cell-wrapper{padding:9px 12px;display:flex;gap:8px;align-items:center;box-sizing:border-box}.radar-table-simple__header-cell-wrapper{padding:20px 10px;display:flex;gap:8px;align-items:center;box-sizing:border-box;min-height:60px}.radar-table__header-cell-text-wrapper{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.radar-table__sort-button-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.radar-table__sort-button{border:none;background-color:transparent;color:inherit;cursor:pointer;font-size:inherit;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.radar-table__sort-button svg{width:1em;height:1em}.radar-table__sort-button:hover{opacity:.75}.radar-table__body-noData{padding:18px 12px;display:flex;align-items:center;font-size:16px;line-height:1.2;width:100%}.radar-table__body-noData_width{padding:18px 12px;display:flex;justify-content:center;align-items:center;font-size:16px;line-height:1.2}.radar-table__footer{pointer-events:auto}.radar-table__footer.resizing{pointer-events:none}.radar-table-default__footer,.radar-table-simple__footer{background-color:#fff}.radar-table-default__footer-cell,.radar-table-simple__footer-cell{border-top:1px solid #E8E8E8}.radar-table__footer-cell-wrapper{width:100%;font-family:inherit}.radar-table-default__footer-cell-wrapper,.radar-table-simple__footer-cell-wrapper{padding:12px 0;display:flex;gap:8px}.radar-table__resize-button{opacity:0;position:absolute;right:0;top:0;height:100%;width:10px;background-color:transparent;cursor:col-resize;border:none;display:flex;justify-content:center;align-items:center}.radar-table__resize-button:hover{cursor:col-resize!important}.radar-table__resize-button div{background-color:#8c8c8c;width:2px;height:100%;max-height:20px;opacity:1;transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:1px}.radar-table__resize-button:hover div{opacity:.5}.radar-table__resize-button:active div{background-color:#5329ff;opacity:1}.radar-table__resize-line{position:fixed;width:2px;background-color:#5329ff;z-index:30!important;pointer-events:none;opacity:1;border-radius:2px;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.radar-table__pagination{display:flex;align-items:center;gap:24px}.radar-table__pagination-main{display:grid;grid-template-rows:32px;gap:4px}.radar-table__pagination-button{width:100%;height:100%;max-width:32px;max-height:32px;border-radius:8px;border:none;cursor:pointer;background-color:#f7f7f7;font-family:inherit;font-weight:500;font-size:14px;line-height:100%;letter-spacing:0%;color:#8c8c8c;opacity:1;transition:all .2s ease;display:flex;align-items:center;justify-content:center;border:1px solid #F7F7F7}.radar-table__pagination-button_active{color:#5329ff;background-color:#eeeaff;border:1px solid #5329FF}.radar-table__pagination-button_control{background-color:transparent;border:none}.radar-table__pagination-button_control:hover{background-color:#f7f7f7}.radar-table__pagination-button:hover{opacity:.75}.radar-table__pagination-quick-jumper{display:flex;align-items:center;gap:8px;font-family:inherit;font-weight:500;font-style:Medium;font-size:14px;line-height:100%;letter-spacing:0%;color:#1a1a1a}.radar-table__pagination-input{width:32px;height:32px;border-radius:8px;border:1px solid #F7F7F7;background-color:#f7f7f7;font-family:inherit;font-weight:500;font-size:14px;line-height:100%;letter-spacing:0%;color:#5329ff;background-color:#eeeaff;text-align:center;outline:none;border:none}.radar-table__tooltip-button{border:none;display:flex;align-items:center;justify-content:center;background-color:transparent;color:inherit;cursor:pointer;font-size:inherit;position:relative}.radar-table__tooltip-button:hover{color:#5329ff}.radar-table__tooltip-text{position:absolute;top:calc(100% + 10px);left:20px;background-color:#fff;padding:8px;width:250px;transform:scale(0);opacity:0;transition:all .2s ease;transform-origin:top left;border-radius:8px;box-shadow:0 0 20px #00000014;white-space:pre-line;text-align:left;font-family:inherit;font-weight:500;font-size:12px;line-height:120%;letter-spacing:0%;color:#1a1a1a;z-index:999999}.radar-table__tooltip-text_visible{transform:scale(1);opacity:1}.radar-table__tooltip-text--right{left:auto!important;right:20px!important;transform-origin:top right!important}.radar-table__tooltip-text--right.radar-table__tooltip-text_visible{transform:scale(1)!important}.radar-table__drag-handle{height:20px;cursor:grab;border-radius:4px;border:none}.radar-title{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen;color:#1a1a1a;margin:0;padding:0}.radar-title_h1{font-size:22px;font-weight:600;line-height:100%;letter-spacing:0%}.radar-title_h2{font-size:18px;font-weight:600;line-height:100%;letter-spacing:0%}.radar-text{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen;color:#1a1a1a;margin:0;padding:0}.radar-text_m{font-size:14px}.radar-text_s{font-size:12px}.radar-text_medium{font-weight:500}.radar-text_semibold{font-weight:600}.radar-text_bold{font-weight:700}.radar-table__body-cell{scroll-snap-align:start;box-sizing:border-box;vertical-align:top;position:relative}.radar-table-default__body-cell,.radar-table-simple__body-cell{height:1px}.radar-table__body-cell-wrapper{width:100%;height:100%;font-family:inherit;background-color:#fff;display:flex;align-items:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.radar-table-default__body-cell-wrapper{padding:7px 0 7px 12px;display:flex;gap:8px;border-bottom:1px solid #E8E8E8;font-weight:500;font-size:14px;line-height:1.2;letter-spacing:0%;color:#1a1a1a;box-sizing:border-box;align-items:center}.radar-table-simple__body-cell-wrapper{padding:18px 0 18px 12px;display:flex;gap:8px;border-bottom:1px solid #E8E8E8;font-weight:500;font-size:16px;line-height:1.2;letter-spacing:0%;color:#1a1a1a;box-sizing:border-box;align-items:center}.radar-table-default__body-row:last-of-type .radar-table-default__body-cell-wrapper{border-bottom:none}.radar-table-simple__body-row:last-of-type .radar-table-simple__body-cell-wrapper{border-bottom:none}.radar-table__expander-btn{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:16px;font-size:12px;color:#1a1a1a;cursor:pointer;transition:transform .15s ease}.radar-table__expander-btn:focus{outline:none}.scrollShadowRight:after{content:\"\";position:absolute;right:-10px;top:0;bottom:0;width:10px;background:linear-gradient(to right,rgba(0,0,0,.1),transparent);pointer-events:none}.scrollShadowLeft:after{content:\"\";position:absolute;left:-10px;top:0;bottom:0;width:10px;background:linear-gradient(to left,rgba(0,0,0,.1),transparent);pointer-events:none}\n";
5
5
  document.head.appendChild(style);
6
6
  })();
7
- import * as Te from "react";
8
- import ke, { useState as ue, useRef as ge, useCallback as ne, startTransition as Ge, useEffect as be, createContext as Qe, useContext as et, useMemo as je, useLayoutEffect as $e } from "react";
9
- import { useSensors as tt, useSensor as Le, PointerSensor as nt, KeyboardSensor as rt, pointerWithin as st, rectIntersection as it, DndContext as ot, DragOverlay as at, useDraggable as lt, useDroppable as ct } from "@dnd-kit/core";
10
- import { sortableKeyboardCoordinates as dt } from "@dnd-kit/sortable";
11
- import { flushSync as ut } from "react-dom";
12
- var Fe = { exports: {} }, Ee = {};
13
- /**
14
- * @license React
15
- * react-jsx-runtime.production.js
16
- *
17
- * Copyright (c) Meta Platforms, Inc. and affiliates.
18
- *
19
- * This source code is licensed under the MIT license found in the
20
- * LICENSE file in the root directory of this source tree.
21
- */
22
- var Re;
23
- function ht() {
24
- if (Re) return Ee;
25
- Re = 1;
26
- var e = Symbol.for("react.transitional.element"), s = Symbol.for("react.fragment");
27
- function t(n, r, o) {
28
- var a = null;
29
- if (o !== void 0 && (a = "" + o), r.key !== void 0 && (a = "" + r.key), "key" in r) {
30
- o = {};
31
- for (var c in r)
32
- c !== "key" && (o[c] = r[c]);
33
- } else o = r;
34
- return r = o.ref, {
35
- $$typeof: e,
36
- type: n,
37
- key: a,
38
- ref: r !== void 0 ? r : null,
39
- props: o
40
- };
41
- }
42
- return Ee.Fragment = s, Ee.jsx = t, Ee.jsxs = t, Ee;
43
- }
44
- var Ce = {};
45
- /**
46
- * @license React
47
- * react-jsx-runtime.development.js
48
- *
49
- * Copyright (c) Meta Platforms, Inc. and affiliates.
50
- *
51
- * This source code is licensed under the MIT license found in the
52
- * LICENSE file in the root directory of this source tree.
53
- */
54
- var Ae;
55
- function ft() {
56
- return Ae || (Ae = 1, process.env.NODE_ENV !== "production" && function() {
57
- function e(i) {
58
- if (i == null) return null;
59
- if (typeof i == "function")
60
- return i.$$typeof === x ? null : i.displayName || i.name || null;
61
- if (typeof i == "string") return i;
62
- switch (i) {
63
- case U:
64
- return "Fragment";
65
- case w:
66
- return "Profiler";
67
- case G:
68
- return "StrictMode";
69
- case ee:
70
- return "Suspense";
71
- case y:
72
- return "SuspenseList";
73
- case k:
74
- return "Activity";
75
- }
76
- if (typeof i == "object")
77
- switch (typeof i.tag == "number" && console.error(
78
- "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
79
- ), i.$$typeof) {
80
- case M:
81
- return "Portal";
82
- case R:
83
- return i.displayName || "Context";
84
- case B:
85
- return (i._context.displayName || "Context") + ".Consumer";
86
- case _:
87
- var d = i.render;
88
- return i = i.displayName, i || (i = d.displayName || d.name || "", i = i !== "" ? "ForwardRef(" + i + ")" : "ForwardRef"), i;
89
- case m:
90
- return d = i.displayName || null, d !== null ? d : e(i.type) || "Memo";
91
- case h:
92
- d = i._payload, i = i._init;
93
- try {
94
- return e(i(d));
95
- } catch {
96
- }
97
- }
98
- return null;
99
- }
100
- function s(i) {
101
- return "" + i;
102
- }
103
- function t(i) {
104
- try {
105
- s(i);
106
- var d = !1;
107
- } catch {
108
- d = !0;
109
- }
110
- if (d) {
111
- d = console;
112
- var S = d.error, b = typeof Symbol == "function" && Symbol.toStringTag && i[Symbol.toStringTag] || i.constructor.name || "Object";
113
- return S.call(
114
- d,
115
- "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
116
- b
117
- ), s(i);
118
- }
119
- }
120
- function n(i) {
121
- if (i === U) return "<>";
122
- if (typeof i == "object" && i !== null && i.$$typeof === h)
123
- return "<...>";
124
- try {
125
- var d = e(i);
126
- return d ? "<" + d + ">" : "<...>";
127
- } catch {
128
- return "<...>";
129
- }
130
- }
131
- function r() {
132
- var i = p.A;
133
- return i === null ? null : i.getOwner();
134
- }
135
- function o() {
136
- return Error("react-stack-top-frame");
137
- }
138
- function a(i) {
139
- if (I.call(i, "key")) {
140
- var d = Object.getOwnPropertyDescriptor(i, "key").get;
141
- if (d && d.isReactWarning) return !1;
142
- }
143
- return i.key !== void 0;
144
- }
145
- function c(i, d) {
146
- function S() {
147
- V || (V = !0, console.error(
148
- "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
149
- d
150
- ));
151
- }
152
- S.isReactWarning = !0, Object.defineProperty(i, "key", {
153
- get: S,
154
- configurable: !0
155
- });
156
- }
157
- function f() {
158
- var i = e(this.type);
159
- return z[i] || (z[i] = !0, console.error(
160
- "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
161
- )), i = this.props.ref, i !== void 0 ? i : null;
162
- }
163
- function E(i, d, S, b, F, N) {
164
- var g = S.ref;
165
- return i = {
166
- $$typeof: W,
167
- type: i,
168
- key: d,
169
- props: S,
170
- _owner: b
171
- }, (g !== void 0 ? g : null) !== null ? Object.defineProperty(i, "ref", {
172
- enumerable: !1,
173
- get: f
174
- }) : Object.defineProperty(i, "ref", { enumerable: !1, value: null }), i._store = {}, Object.defineProperty(i._store, "validated", {
175
- configurable: !1,
176
- enumerable: !1,
177
- writable: !0,
178
- value: 0
179
- }), Object.defineProperty(i, "_debugInfo", {
180
- configurable: !1,
181
- enumerable: !1,
182
- writable: !0,
183
- value: null
184
- }), Object.defineProperty(i, "_debugStack", {
185
- configurable: !1,
186
- enumerable: !1,
187
- writable: !0,
188
- value: F
189
- }), Object.defineProperty(i, "_debugTask", {
190
- configurable: !1,
191
- enumerable: !1,
192
- writable: !0,
193
- value: N
194
- }), Object.freeze && (Object.freeze(i.props), Object.freeze(i)), i;
195
- }
196
- function v(i, d, S, b, F, N) {
197
- var g = d.children;
198
- if (g !== void 0)
199
- if (b)
200
- if (Q(g)) {
201
- for (b = 0; b < g.length; b++)
202
- $(g[b]);
203
- Object.freeze && Object.freeze(g);
204
- } else
205
- console.error(
206
- "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
207
- );
208
- else $(g);
209
- if (I.call(d, "key")) {
210
- g = e(i);
211
- var T = Object.keys(d).filter(function(Z) {
212
- return Z !== "key";
213
- });
214
- b = 0 < T.length ? "{key: someKey, " + T.join(": ..., ") + ": ...}" : "{key: someKey}", O[g + b] || (T = 0 < T.length ? "{" + T.join(": ..., ") + ": ...}" : "{}", console.error(
215
- `A props object containing a "key" prop is being spread into JSX:
216
- let props = %s;
217
- <%s {...props} />
218
- React keys must be passed directly to JSX without using spread:
219
- let props = %s;
220
- <%s key={someKey} {...props} />`,
221
- b,
222
- g,
223
- T,
224
- g
225
- ), O[g + b] = !0);
226
- }
227
- if (g = null, S !== void 0 && (t(S), g = "" + S), a(d) && (t(d.key), g = "" + d.key), "key" in d) {
228
- S = {};
229
- for (var D in d)
230
- D !== "key" && (S[D] = d[D]);
231
- } else S = d;
232
- return g && c(
233
- S,
234
- typeof i == "function" ? i.displayName || i.name || "Unknown" : i
235
- ), E(
236
- i,
237
- g,
238
- S,
239
- r(),
240
- F,
241
- N
242
- );
243
- }
244
- function $(i) {
245
- X(i) ? i._store && (i._store.validated = 1) : typeof i == "object" && i !== null && i.$$typeof === h && (i._payload.status === "fulfilled" ? X(i._payload.value) && i._payload.value._store && (i._payload.value._store.validated = 1) : i._store && (i._store.validated = 1));
246
- }
247
- function X(i) {
248
- return typeof i == "object" && i !== null && i.$$typeof === W;
249
- }
250
- var L = ke, W = Symbol.for("react.transitional.element"), M = Symbol.for("react.portal"), U = Symbol.for("react.fragment"), G = Symbol.for("react.strict_mode"), w = Symbol.for("react.profiler"), B = Symbol.for("react.consumer"), R = Symbol.for("react.context"), _ = Symbol.for("react.forward_ref"), ee = Symbol.for("react.suspense"), y = Symbol.for("react.suspense_list"), m = Symbol.for("react.memo"), h = Symbol.for("react.lazy"), k = Symbol.for("react.activity"), x = Symbol.for("react.client.reference"), p = L.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, I = Object.prototype.hasOwnProperty, Q = Array.isArray, K = console.createTask ? console.createTask : function() {
251
- return null;
252
- };
253
- L = {
254
- react_stack_bottom_frame: function(i) {
255
- return i();
256
- }
257
- };
258
- var V, z = {}, A = L.react_stack_bottom_frame.bind(
259
- L,
260
- o
261
- )(), te = K(n(o)), O = {};
262
- Ce.Fragment = U, Ce.jsx = function(i, d, S) {
263
- var b = 1e4 > p.recentlyCreatedOwnerStacks++;
264
- return v(
265
- i,
266
- d,
267
- S,
268
- !1,
269
- b ? Error("react-stack-top-frame") : A,
270
- b ? K(n(i)) : te
271
- );
272
- }, Ce.jsxs = function(i, d, S) {
273
- var b = 1e4 > p.recentlyCreatedOwnerStacks++;
274
- return v(
275
- i,
276
- d,
277
- S,
278
- !0,
279
- b ? Error("react-stack-top-frame") : A,
280
- b ? K(n(i)) : te
281
- );
282
- };
283
- }()), Ce;
284
- }
285
- process.env.NODE_ENV === "production" ? Fe.exports = ht() : Fe.exports = ft();
286
- var l = Fe.exports;
287
- const gt = ({
7
+ import { jsxs as M, Fragment as Y, jsx as n } from "react/jsx-runtime";
8
+ import dt, { useState as X, useRef as H, useCallback as Q, startTransition as kt, useEffect as R, memo as yt, useMemo as tt, createContext as vt, useContext as pt } from "react";
9
+ import { createPortal as gt } from "react-dom";
10
+ const Lt = ({
288
11
  column: e,
289
- currWidth: s,
290
- currMinWidth: t,
291
- onResize: n,
12
+ onResize: t,
292
13
  scrollContainerRef: r,
293
- onResizeStart: o,
294
- onResizeFrame: a,
295
- onResizeEnd: c,
296
- resizeMode: f = "instant"
14
+ resizeMode: l = "instant",
15
+ setColsWidthsState: s
297
16
  }) => {
298
- const [E, v] = ue(!1), [$, X] = ue(null), [L, W] = ue(0), [M, U] = ue(0), [G, w] = ue(null), B = ge(null);
299
- ge(0);
300
- const R = ge(!1), _ = ge(null), ee = ge(0), y = ge(0), m = ge(null), h = ge(null), k = ge(!1), x = ge(null), p = ne((K) => {
301
- !E || !$ || !e || (x.current = K, !k.current && (k.current = !0, h.current = requestAnimationFrame((V) => {
302
- var d;
303
- k.current = !1, a == null || a(V);
304
- const z = x.current;
305
- if (!z) return;
306
- const A = z.clientX - L, te = e.minWidth || 50;
307
- let O = M + A;
308
- O < te && (O = te), e.maxWidth && O > e.maxWidth && (O = e.maxWidth), ee.current = O;
309
- const i = O - M;
310
- if (f === "line")
311
- m.current && (m.current.style.transform = `translateX(${i}px)`), _.current && (_.current.style.transform = `translateX(${i}px)`);
312
- else {
313
- const S = (T) => {
314
- var D;
315
- return typeof window < "u" && ((D = window.CSS) != null && D.escape) ? window.CSS.escape(T) : T.replace(/([#.;?\[\]\s])/g, "\\$1");
316
- }, b = S(e.key), F = (d = _.current) == null ? void 0 : d.closest("table");
317
- if (!F) return;
318
- const N = F.querySelector(`th[data-column-key="${b}"]`);
319
- if (N && (N.style.width = `${O}px`, N.style.minWidth = `${O}px`), F.querySelectorAll(`td[data-column-key="${b}"]`).forEach((T) => {
320
- const D = T;
321
- D.style.width = `${O}px`, D.style.minWidth = `${O}px`;
322
- }), e.fixed) {
323
- const T = (se) => window.getComputedStyle(se).position === "sticky", Z = Array.from(
324
- F.querySelectorAll("th.radar-table__header-cell.leaf-header")
325
- ).filter((se) => T(se)), re = N, oe = re ? Z.indexOf(re) : -1;
326
- if (oe !== -1) {
327
- let se = parseFloat(Z[oe].style.left || "0") || 0, q = Z[oe].getBoundingClientRect().width;
328
- for (let J = oe + 1; J < Z.length; J++) {
329
- se += Math.floor(q), Z[J].style.left = `${se}px`;
330
- const P = Z[J].getAttribute("data-column-key");
331
- if (P) {
332
- const de = S(P);
333
- F.querySelectorAll(`td[data-column-key="${de}"]`).forEach((le) => {
334
- const fe = le;
335
- window.getComputedStyle(fe).position === "sticky" && (fe.style.left = `${se}px`);
336
- });
337
- }
338
- q = Z[J].getBoundingClientRect().width;
339
- }
340
- }
341
- }
342
- }
343
- })));
344
- }, [E, L, M, $, r, e, a]), I = ne(() => {
345
- var F;
346
- if (_.current.style.opacity = "", !E || !$) return;
347
- const K = e.minWidth || 50;
348
- let V = ee.current || M;
349
- V < K && (V = K), e != null && e.maxWidth && V > e.maxWidth && (V = e.maxWidth);
350
- const z = V, A = $;
351
- h.current && (cancelAnimationFrame(h.current), h.current = null), k.current = !1, x.current = null, B.current && (clearInterval(B.current), B.current = null), R.current = !1, m.current && (m.current.style.transform = "translateX(0px)"), _.current && f === "line" && (_.current.style.position = "", _.current.style.left = "", _.current.style.top = "", _.current.style.transform = ""), v(!1), W(0), U(0), X(null), w(null), ee.current = 0, y.current = 0, document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", I);
352
- const te = (N) => {
353
- var g;
354
- return typeof window < "u" && ((g = window.CSS) != null && g.escape) ? window.CSS.escape(N) : N.replace(/([#.;?\[\]\s])/g, "\\$1");
355
- }, O = te(A), i = (F = _.current) == null ? void 0 : F.closest("table");
356
- if (!i) return;
357
- const d = i.querySelector(`th[data-column-key="${O}"]`);
358
- if (d && (d.style.width = `${z}px`, d.style.minWidth = `${z}px`), i.querySelectorAll(`td[data-column-key="${O}"]`).forEach((N) => {
359
- const g = N;
360
- g.style.width = `${z}px`, g.style.minWidth = `${z}px`;
361
- }), e.fixed) {
362
- const N = (re) => window.getComputedStyle(re).position === "sticky", T = Array.from(
363
- i.querySelectorAll("th.radar-table__header-cell.leaf-header")
364
- ).filter((re) => N(re)), D = d, Z = D ? T.indexOf(D) : -1;
365
- if (Z !== -1) {
366
- let re = parseFloat(T[Z].style.left || "0") || 0, oe = T[Z].getBoundingClientRect().width;
367
- for (let se = Z + 1; se < T.length; se++) {
368
- re += Math.floor(oe), T[se].style.left = `${re}px`;
369
- const q = T[se].getAttribute("data-column-key");
370
- if (q) {
371
- const J = te(q);
372
- i.querySelectorAll(`td[data-column-key="${J}"]`).forEach((de) => {
373
- const ce = de;
374
- window.getComputedStyle(ce).position === "sticky" && (ce.style.left = `${re}px`);
375
- });
376
- }
377
- oe = T[se].getBoundingClientRect().width;
378
- }
379
- }
17
+ const [d, u] = X(!1), [h, i] = X(null), [m, C] = X(0), [E, z] = X(0), [O, B] = X(null), p = H(null), g = H(null), W = H(0), a = H(0), o = H(null), f = H(null), b = H(!1), c = H(null), y = Q((_, L, v) => {
18
+ var I, Z, J;
19
+ if (_.preventDefault(), !g.current) return;
20
+ const k = (I = g.current) == null ? void 0 : I.closest("table");
21
+ if (!k) return;
22
+ const $ = k.querySelector(`col[data-column-key="${L}"]`);
23
+ if (!$) return;
24
+ p.current = $;
25
+ const S = ((Z = $.getBoundingClientRect()) == null ? void 0 : Z.width) ?? v;
26
+ u(!0), C(_.clientX), z(S), i(L), g.current.style.opacity = "1", g.current.classList.add("radar-table__resize-button_active");
27
+ const D = g.current.getBoundingClientRect();
28
+ if (l === "line") {
29
+ const G = D.left + D.width / 2 - 1;
30
+ a.current = G;
380
31
  }
381
- const b = setTimeout(() => {
382
- var T;
383
- const N = (T = _ == null ? void 0 : _.current) == null ? void 0 : T.closest("th"), g = (N == null ? void 0 : N.getBoundingClientRect().width) ?? z;
384
- Ge(() => {
385
- n == null || n(A, g);
386
- }), c == null || c();
387
- }, 0);
388
- return () => clearTimeout(b);
389
- }, [E, $, e, M, n, p, c]), Q = ne((K, V, z) => {
390
- if (K.preventDefault(), o == null || o(), !_.current) return;
391
- const A = _.current.closest("th"), te = (A == null ? void 0 : A.getBoundingClientRect().width) ?? z;
392
- v(!0), W(K.clientX), U(te), X(V), _.current.style.opacity = "1", _.current.classList.add("radar-table__resize-button_active");
393
- const O = _.current.getBoundingClientRect();
394
- if (f === "line") {
395
- const S = O.left + O.width / 2;
396
- if (y.current = S, m.current && (m.current.style.left = `${S}px`, m.current.style.transform = "translateX(0px)"), _.current) {
397
- const b = O.top;
398
- _.current.style.position = "fixed", _.current.style.left = `${S - 11}px`, _.current.style.top = `${b}px`, _.current.style.transform = "translateX(0px)";
399
- }
32
+ if (k || r != null && r.current) {
33
+ const G = ((J = r == null ? void 0 : r.current) == null ? void 0 : J.getBoundingClientRect()) ?? (k == null ? void 0 : k.getBoundingClientRect());
34
+ B({
35
+ top: G.top + 2,
36
+ height: G.height - 4
37
+ });
400
38
  }
401
- const i = r == null ? void 0 : r.current, d = _.current.closest("table");
402
- if (i) {
403
- const S = i.getBoundingClientRect();
404
- w({
405
- top: S.top + O.height * 2,
406
- height: S.height - O.height * 2
39
+ }, [r]), w = Q((_) => {
40
+ !d || !h || !e || (c.current = _, !b.current && (b.current = !0, f.current = requestAnimationFrame(() => {
41
+ b.current = !1;
42
+ const L = c.current;
43
+ if (!L) return;
44
+ const v = L.clientX - m, k = e.minWidth ?? 0;
45
+ let $ = E + v;
46
+ $ < k && ($ = k), e.maxWidth && $ > e.maxWidth && ($ = e.maxWidth), W.current = $;
47
+ const S = $ - E;
48
+ l === "line" ? (o.current && (o.current.style.transform = `translateX(${S}px)`), g.current && (g.current.style.transform = `translateX(${S}px)`)) : s((D) => {
49
+ var I;
50
+ return D ? {
51
+ ...D,
52
+ [e.key]: {
53
+ width: $,
54
+ minWidth: (I = D[e.key]) == null ? void 0 : I.minWidth
55
+ }
56
+ } : {
57
+ [e.key]: {
58
+ width: $,
59
+ minWidth: e.minWidth ?? 0
60
+ }
61
+ };
407
62
  });
408
- } else if (d) {
409
- const S = d.getBoundingClientRect();
410
- w({
411
- top: S.top,
412
- height: S.height
63
+ })));
64
+ }, [d, m, E, h, r, e]), N = Q(() => {
65
+ if (g.current.style.opacity = "", !d || !h) return;
66
+ const _ = e.minWidth ?? 0;
67
+ let L = W.current ?? E;
68
+ L < _ && (L = _), e != null && e.maxWidth && L > e.maxWidth && (L = e.maxWidth), s((k) => {
69
+ var $;
70
+ return k ? {
71
+ ...k,
72
+ [e.key]: {
73
+ width: L,
74
+ minWidth: ($ = k[e.key]) == null ? void 0 : $.minWidth
75
+ }
76
+ } : {
77
+ [e.key]: {
78
+ width: L,
79
+ minWidth: e.minWidth ?? 0
80
+ }
81
+ };
82
+ }), f.current && (cancelAnimationFrame(f.current), f.current = null), b.current = !1, c.current = null, o.current && (o.current.style.transform = "translateX(0px)"), g.current && l === "line" && (g.current.style.position = "", g.current.style.left = "", g.current.style.top = "", g.current.style.transform = ""), u(!1), C(0), z(0), i(null), B(null), W.current = 0, a.current = 0, p.current = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", N);
83
+ const v = setTimeout(() => {
84
+ kt(() => {
85
+ t == null || t(h, L);
413
86
  });
414
- }
415
- }, [r, o]);
416
- return be(() => {
417
- E && (document.addEventListener("mousemove", p), document.addEventListener("mouseup", I));
418
- }, [E, p, I, f]), be(() => () => {
419
- h.current && (cancelAnimationFrame(h.current), h.current = null), k.current = !1, x.current = null, document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", I);
420
- }, [p, I]), /* @__PURE__ */ l.jsxs(l.Fragment, { children: [
421
- /* @__PURE__ */ l.jsx(
87
+ }, 0);
88
+ return () => clearTimeout(v);
89
+ }, [d, h, e, E, t, w]);
90
+ return R(() => {
91
+ d && (document.addEventListener("mousemove", w), document.addEventListener("mouseup", N));
92
+ }, [d, w, N, l]), R(() => () => {
93
+ f.current && (cancelAnimationFrame(f.current), f.current = null), b.current = !1, c.current = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", N);
94
+ }, [w, N]), /* @__PURE__ */ M(Y, { children: [
95
+ /* @__PURE__ */ n(
422
96
  "button",
423
97
  {
424
- ref: _,
98
+ ref: g,
425
99
  className: "radar-table__resize-button",
426
- onMouseDown: (K) => Q(K, e.key, s || t || 200),
100
+ onMouseDown: (_) => y(_, e.key, e.width ?? 0),
427
101
  title: "Изменить ширину колонки",
428
- children: /* @__PURE__ */ l.jsx("div", {})
102
+ children: /* @__PURE__ */ n("div", {})
429
103
  }
430
104
  ),
431
- E && G && f === "line" && /* @__PURE__ */ l.jsx(
432
- "div",
433
- {
434
- ref: m,
435
- className: "radar-table__resize-line",
436
- style: {
437
- left: `${y.current}px`,
438
- top: `${G.top}px`,
439
- height: `${G.height}px`,
440
- transform: "translateX(0px)",
441
- willChange: "transform"
105
+ d && O && l === "line" && gt(
106
+ /* @__PURE__ */ n(
107
+ "div",
108
+ {
109
+ ref: o,
110
+ className: "radar-table__resize-line",
111
+ style: {
112
+ left: `${a.current}px`,
113
+ top: `${O.top}px`,
114
+ height: `${O.height}px`
115
+ }
442
116
  }
443
- }
117
+ ),
118
+ document.body
119
+ // или другой контейнер вне таблицы
444
120
  )
445
121
  ] });
446
- }, mt = ({ text: e, children: s, containerRef: t }) => {
447
- const [n, r] = ue(!1), [o, a] = ue("left"), c = ge(null), f = () => {
448
- var E;
449
- if (c.current) {
450
- const v = c.current.getBoundingClientRect(), $ = ((E = t == null ? void 0 : t.current) == null ? void 0 : E.clientWidth) ?? window.innerWidth, X = 250, L = 20, W = $ - v.left, M = v.right;
451
- W < X + L && M > X + L ? a("right") : a("left");
452
- }
453
- r(!0);
454
- };
455
- return /* @__PURE__ */ l.jsxs(
122
+ }, Nt = ({ text: e, children: t, containerRef: r }) => {
123
+ var C;
124
+ const [l, s] = X(!1), [d, u] = X("left"), h = H(null), i = (C = h.current) == null ? void 0 : C.getBoundingClientRect();
125
+ return /* @__PURE__ */ M(
456
126
  "button",
457
127
  {
458
- ref: c,
128
+ ref: h,
459
129
  className: "radar-table__tooltip-button",
460
- onMouseOver: f,
461
- onMouseOut: () => r(!1),
130
+ onMouseOver: () => {
131
+ var E;
132
+ if (h.current) {
133
+ const z = h.current.getBoundingClientRect(), O = ((E = r == null ? void 0 : r.current) == null ? void 0 : E.clientWidth) ?? window.innerWidth, B = 250, p = 20, g = O - z.left, W = z.right;
134
+ g < B + p && W > B + p ? u("right") : u("left");
135
+ }
136
+ s(!0);
137
+ },
138
+ onMouseOut: () => s(!1),
462
139
  children: [
463
- s || /* @__PURE__ */ l.jsxs("svg", { width: "1.5em", height: "1em", viewBox: "0 0 24 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
464
- /* @__PURE__ */ l.jsx("rect", { stroke: "currentColor", x: "0.75", y: "0.75", width: "18.5", height: "18.5", rx: "9.25", strokeOpacity: "0.25", strokeWidth: "1.5" }),
465
- /* @__PURE__ */ l.jsx("path", { fill: "currentColor", d: "M9.064 15V7.958H10.338V15H9.064ZM8.952 6.418V5.046H10.464V6.418H8.952Z", fillOpacity: "0.5" })
140
+ t || /* @__PURE__ */ M("svg", { width: "1.5em", height: "1em", viewBox: "0 0 24 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
141
+ /* @__PURE__ */ n("rect", { stroke: "currentColor", x: "0.75", y: "0.75", width: "18.5", height: "18.5", rx: "9.25", strokeOpacity: "0.25", strokeWidth: "1.5" }),
142
+ /* @__PURE__ */ n("path", { fill: "currentColor", d: "M9.064 15V7.958H10.338V15H9.064ZM8.952 6.418V5.046H10.464V6.418H8.952Z", fillOpacity: "0.5" })
466
143
  ] }),
467
- /* @__PURE__ */ l.jsx(
468
- "div",
469
- {
470
- className: `radar-table__tooltip-text ${n ? "radar-table__tooltip-text_visible" : ""} radar-table__tooltip-text--${o}`,
471
- children: e
472
- }
144
+ l && i && gt(
145
+ /* @__PURE__ */ n(
146
+ "div",
147
+ {
148
+ className: `radar-table__tooltip-text radar-table__tooltip-text_visible radar-table__tooltip-text--${d}`,
149
+ style: {
150
+ // Нужно будет пересчитать позицию относительно viewport
151
+ position: "fixed",
152
+ // изменить с absolute на fixed
153
+ top: `${i.bottom + 10}px`,
154
+ left: d === "left" ? `${i.left + 20}px` : "auto",
155
+ right: d === "right" ? `${window.innerWidth - i.right + 20}px` : "auto"
156
+ },
157
+ children: e
158
+ }
159
+ ),
160
+ document.body
473
161
  )
474
162
  ]
475
163
  }
476
164
  );
477
- }, Je = Qe(null), pt = () => {
478
- const e = et(Je);
479
- return e || {
480
- activeColumn: null,
481
- isValidDropZone: () => !1
482
- };
483
- };
484
- function yt({
485
- children: e,
165
+ }, $t = yt(function({
166
+ column: t,
167
+ index: r,
168
+ config: l,
486
169
  fullConfig: s,
487
- onColumnReorder: t,
488
- scrollContainerRef: n
170
+ sorting: d,
171
+ onSort: u,
172
+ onResize: h,
173
+ sortIcon: i,
174
+ resizeable: m,
175
+ preset: C,
176
+ headerCellClassName: E,
177
+ headerCellStyle: z,
178
+ headerCellWrapperClassName: O,
179
+ headerCellWrapperStyle: B,
180
+ stickyHeader: p,
181
+ scrollContainerRef: g,
182
+ resizeMode: W,
183
+ setColsWidthsState: a,
184
+ stickyIdent: o,
185
+ scrollPosition: f
489
186
  }) {
490
- const [r, o] = ue(null), [a, c] = ue(40), [f, E] = ue(200), [v, $] = ue(null), X = tt(
491
- Le(nt, {
492
- activationConstraint: {
493
- distance: 5
494
- // Уменьшили дистанцию
495
- }
496
- }),
497
- Le(rt, {
498
- coordinateGetter: dt
499
- })
500
- ), L = ne((y) => {
501
- const m = st(y);
502
- if (m.length > 0) {
503
- const x = m.filter(
504
- (p) => p.id.toString().startsWith("drop-zone-")
505
- );
506
- if (x.length > 0)
507
- return x;
508
- }
509
- const k = it(y).filter(
510
- (x) => x.id.toString().startsWith("drop-zone-")
511
- );
512
- return k.length > 0 ? [k[0]] : [];
513
- }, []), W = ne((y) => y.some((m) => m.children && m.children.length > 0), []), M = ne((y, m) => {
514
- const h = (k, x, p = 0, I = null) => {
515
- for (const Q of k) {
516
- if (Q.key === x)
517
- return { column: Q, parent: I, level: p };
518
- if (Q.children && Q.children.length > 0) {
519
- const K = h(Q.children, x, p + 1, Q);
520
- if (K) return K;
521
- }
522
- }
523
- return null;
524
- };
525
- return h(y, m);
526
- }, []), U = ne((y, m) => {
527
- var k;
528
- const h = M(m, y);
529
- return h && (h.column.fixed || ((k = h.parent) == null ? void 0 : k.fixed)) || !1;
530
- }, [M]), G = ne((y, m) => {
531
- if (y.columnKey === m.columnKey)
532
- return !1;
533
- const h = U(y.columnKey, s), k = U(m.columnKey, s);
534
- if (h !== k)
535
- return !1;
536
- if (W(s)) {
537
- const x = M(s, y.columnKey), p = M(s, m.columnKey);
538
- if (!x || !p)
539
- return !1;
540
- const I = y.isLeaf, Q = m.isLeaf;
541
- if (!I && !Q) {
542
- const K = x.level === p.level, V = x.parent === null && p.parent === null || x.parent !== null && p.parent !== null && x.parent.key === p.parent.key;
543
- return K && V;
544
- }
545
- if (I && Q) {
546
- const K = x.level === p.level, V = x.parent === null && p.parent === null || x.parent !== null && p.parent !== null && x.parent.key === p.parent.key;
547
- return K && V;
548
- }
549
- return !1;
550
- }
551
- return !0;
552
- }, [s, W, M, U]), w = ne((y, m, h) => {
553
- var d, S;
554
- if (!W(s)) {
555
- const b = h.findIndex((D) => D.key === y), F = h.findIndex((D) => D.key === m);
556
- if (b === -1 || F === -1)
557
- return h;
558
- const N = [...h], g = N[b];
559
- N.splice(b, 1);
560
- const T = (b < F, F);
561
- return N.splice(T, 0, g), N;
562
- }
563
- const k = M(s, y), x = M(s, m);
564
- if (!k || !x)
565
- return h;
566
- const p = JSON.parse(JSON.stringify(s)), I = (b, F) => {
567
- if (F === null)
568
- return { container: b, parentObj: null };
569
- const N = (T) => {
570
- for (const D of T) {
571
- if (D.key === F)
572
- return D;
187
+ var _, L;
188
+ const b = !t.children || t.children.length === 0, c = tt(() => {
189
+ var v, k;
190
+ return t.fixed && !t.hidden && (t.fixedSide === "left" || !t.fixedSide) ? {
191
+ position: "sticky",
192
+ top: p && typeof p == "number" ? p : 0,
193
+ left: o ?? 0,
194
+ borderRight: (v = l[r + 1]) != null && v.fixed ? "none" : "1px solid #E8E8E8"
195
+ } : t.fixed && !t.hidden && t.fixedSide === "right" ? {
196
+ position: "sticky",
197
+ top: p && typeof p == "number" ? p : 0,
198
+ right: o ?? 0,
199
+ borderLeft: (k = l[r - 1]) != null && k.fixed ? "none" : "1px solid #E8E8E8"
200
+ } : {};
201
+ }, [t, o, l]), y = tt(() => {
202
+ if (t.groupColor)
203
+ return t.groupColor;
204
+ if (s) {
205
+ const v = ($, S) => {
206
+ for (const D of $)
573
207
  if (D.children) {
574
- const Z = N(D.children);
575
- if (Z) return Z;
208
+ if (D.children.some((Z) => Z.key === S))
209
+ return D;
210
+ const I = v(D.children, S);
211
+ if (I) return I;
576
212
  }
577
- }
578
213
  return null;
579
- }, g = N(b);
580
- return {
581
- container: (g == null ? void 0 : g.children) || b,
582
- parentObj: g
583
- };
584
- }, Q = ((d = k.parent) == null ? void 0 : d.key) || null, K = ((S = x.parent) == null ? void 0 : S.key) || null, { container: V } = I(p, Q), { container: z } = I(p, K);
585
- if (V !== z)
586
- return h;
587
- const A = V.findIndex((b) => b.key === y), te = V.findIndex((b) => b.key === m);
588
- if (A === -1 || te === -1)
589
- return h;
590
- const [O] = V.splice(A, 1), i = (A < te, te);
591
- return V.splice(i, 0, O), p;
592
- }, [s, W, M]), B = ne((y) => {
593
- const m = y.active.data.current;
594
- o(m);
595
- const h = document.querySelector(`[data-column-key="${m.columnKey}"]`);
596
- if (h) {
597
- const k = h.getBoundingClientRect();
598
- E(k.width);
599
- const x = h.closest("table");
600
- h.closest('[style*="overflow"]');
601
- const p = x;
602
- if (p) {
603
- const I = p.getBoundingClientRect();
604
- c(I.height);
605
- } else
606
- c(400);
607
- } else
608
- c(400), E(200);
609
- document.body.style.cursor = "grabbing";
610
- }, []), R = ne((y) => {
611
- const { active: m, over: h } = y;
612
- if (!h || !m.data.current) {
613
- document.body.style.cursor = "grabbing", $(null);
614
- return;
615
- }
616
- const k = m.data.current, x = h.data.current;
617
- if (!x) {
618
- document.body.style.cursor = "grabbing", $(null);
619
- return;
620
- }
621
- const p = G(k, x);
622
- document.body.style.cursor = p ? "copy" : "not-allowed";
623
- const I = document.querySelectorAll(`th[data-column-key="${x.columnKey}"]`), Q = W(s), K = I.length > 0 ? Q && x.isLeaf ? I[I.length - 1] : I[0] : null;
624
- if (K) {
625
- const V = K.getBoundingClientRect(), z = K.closest("table");
626
- let A = V.left;
627
- const te = n == null ? void 0 : n.current;
628
- let O, i;
629
- if (te) {
630
- const d = te.getBoundingClientRect();
631
- O = d.top, i = d.height;
632
- } else if (z) {
633
- const d = z.getBoundingClientRect();
634
- O = d.top, i = d.height;
635
- } else
636
- O = V.top, i = V.height * 10;
637
- $({
638
- left: A,
639
- top: O,
640
- height: i,
641
- color: p ? "#5329FF" : "#ff3b3b"
642
- });
643
- } else
644
- $(null);
645
- }, [G]), _ = ne((y) => {
646
- const { active: m, over: h } = y;
647
- if (document.body.style.cursor = "", o(null), c(40), E(200), $(null), !h || !m.data.current || !h.data.current)
648
- return;
649
- const k = m.data.current, x = h.data.current;
650
- if (G(k, x) && t) {
651
- const p = w(
652
- k.columnKey,
653
- x.columnKey,
654
- s
655
- );
656
- p._dragInfo = {
657
- draggedKey: k.columnKey,
658
- targetKey: x.columnKey,
659
- draggedIndex: k.index,
660
- targetIndex: -1
661
- // будет вычислен в TableHeader если нужно
662
- }, t(p);
214
+ }, k = v(s, t.key);
215
+ return k == null ? void 0 : k.groupColor;
663
216
  }
664
- }, [G, t, w, s]), ee = {
665
- activeColumn: r,
666
- isValidDropZone: G
667
- };
668
- return /* @__PURE__ */ l.jsx(Je.Provider, { value: ee, children: /* @__PURE__ */ l.jsxs(
669
- ot,
670
- {
671
- sensors: X,
672
- collisionDetection: L,
673
- onDragStart: B,
674
- onDragOver: R,
675
- onDragEnd: _,
676
- children: [
677
- e,
678
- /* @__PURE__ */ l.jsx(at, { dropAnimation: null, children: r ? /* @__PURE__ */ l.jsx(
679
- "div",
680
- {
681
- style: {
682
- width: `${f}px`,
683
- height: `${a}px`,
684
- backgroundColor: "#5329FF",
685
- opacity: 0.5,
686
- borderRadius: "4px",
687
- cursor: "grabbing",
688
- pointerEvents: "none"
689
- }
690
- }
691
- ) : null }),
692
- v && /* @__PURE__ */ l.jsx(
693
- "div",
694
- {
695
- style: {
696
- position: "fixed",
697
- left: `${v.left}px`,
698
- top: `${v.top}px`,
699
- width: "2px",
700
- height: `${v.height}px`,
701
- backgroundColor: v.color,
702
- zIndex: 1e4,
703
- pointerEvents: "none",
704
- opacity: 0.2
705
- }
706
- }
707
- )
708
- ]
709
- }
710
- ) });
711
- }
712
- const xt = (e) => {
713
- var s;
714
- return typeof window < "u" && ((s = window.CSS) != null && s.escape) ? window.CSS.escape(e) : e.replace(/([#.;?\[\]\s])/g, "\\$1");
715
- }, bt = (e) => {
716
- if (typeof document > "u") return null;
717
- const s = `th[data-column-key="${xt(e)}"]`, t = document.querySelector(s);
718
- return t ? t.getBoundingClientRect().width : null;
719
- };
720
- function vt({
721
- column: e,
722
- index: s,
723
- config: t,
724
- fullConfig: n,
725
- sorting: r,
726
- onSort: o,
727
- onResize: a,
728
- onResizeStart: c,
729
- onResizeFrame: f,
730
- onResizeEnd: E,
731
- sortIcon: v,
732
- resizeable: $,
733
- draggableColumns: X,
734
- preset: L,
735
- headerCellClassName: W,
736
- headerCellStyle: M,
737
- headerCellWrapperClassName: U,
738
- headerCellWrapperStyle: G,
739
- stickyHeader: w,
740
- scrollContainerRef: B,
741
- resizeThrottle: R,
742
- resizeMode: _
743
- }) {
744
- var se;
745
- if (e.hidden)
746
- return null;
747
- const { activeColumn: ee, isValidDropZone: y } = pt(), m = !e.children || e.children.length === 0;
748
- je(() => (n == null ? void 0 : n.some((q) => q.children && q.children.length > 0)) || !1, [n]);
749
- const h = X, x = ne((q) => {
750
- if (!n) return null;
751
- const J = (P, de, ce = null) => {
752
- for (const le of P) {
753
- if (le.key === de)
754
- return ce;
755
- if (le.children && le.children.length > 0) {
756
- const fe = J(le.children, de, le);
757
- if (fe !== null) return fe;
758
- }
759
- }
760
- return null;
761
- };
762
- return J(n, q);
763
- }, [n])(e.key), p = e.fixed || (x == null ? void 0 : x.fixed) || !1, Q = ne((q) => {
764
- if (!n) return 0;
765
- const J = (P, de, ce = 0) => {
766
- for (const le of P) {
767
- if (le.key === de)
768
- return ce;
769
- if (le.children && le.children.length > 0) {
770
- const fe = J(le.children, de, ce + 1);
771
- if (fe !== -1) return fe;
772
- }
773
- }
774
- return -1;
775
- };
776
- return J(n, q);
777
- }, [n])(e.key), {
778
- attributes: K,
779
- listeners: V,
780
- setNodeRef: z,
781
- isDragging: A
782
- } = lt({
783
- id: `column-${e.key}`,
784
- data: {
785
- type: "table-column",
786
- columnKey: e.key,
787
- isFixed: p,
788
- parentKey: x == null ? void 0 : x.key,
789
- level: Q,
790
- index: s,
791
- isLeaf: m
792
- // ✅ Добавляем информацию о типе колонки
793
- },
794
- disabled: !h
795
- }), {
796
- setNodeRef: te,
797
- isOver: O
798
- } = ct({
799
- id: `drop-zone-${e.key}`,
800
- data: {
801
- type: "column-drop-zone",
802
- columnKey: e.key,
803
- isFixed: p,
804
- accepts: [p ? "fixed" : "non-fixed"],
805
- isLeaf: m
806
- // ✅ Добавляем информацию о типе колонки
807
- },
808
- disabled: !1
809
- }), i = ne((q) => {
810
- z(q), te(q);
811
- }, [z, te]), d = je(() => {
812
- if (!ee || !O) return !1;
813
- const q = {
814
- type: "column-drop-zone",
815
- columnKey: e.key,
816
- isFixed: p,
817
- accepts: [p ? "fixed" : "non-fixed"],
818
- isLeaf: m
819
- };
820
- return y(ee, q);
821
- }, [ee, O, e.key, p, y, m]), S = je(() => A ? "grabbing" : O && ee ? d ? "copy" : "not-allowed" : "default", [A, O, ee, d]), b = e.fixed && !e.width ? 200 : e.width, F = e.fixed && !e.minWidth ? 200 : e.minWidth, N = ne(() => {
822
- let q = e.fixedLeft || 0;
823
- if (!p)
824
- return q;
825
- for (let J = 0; J < s; J++) {
826
- const P = t[J];
827
- P.fixed && !P.hidden && (q += (P.width || P.minWidth || 200) + (P.fixedLeft || 0));
828
- }
829
- return q;
830
- }, [e.fixedLeft, t, s, p]), [g, T] = ue(() => N());
831
- $e(() => {
832
- if (!p) {
833
- T(N());
834
- return;
835
- }
836
- let q = e.fixedLeft || 0;
837
- for (let J = 0; J < s; J++) {
838
- const P = t[J];
839
- if (P.fixed && !P.hidden) {
840
- const de = P.width || P.minWidth || 200, ce = bt(P.key);
841
- q += Math.floor(ce ?? de) + (P.fixedLeft || 0) - 0.05;
842
- }
843
- }
844
- T(q);
845
- }, [e.fixedLeft, e.width, e.minWidth, t, s, p, N]);
846
- const Z = ((q) => {
847
- if (q.groupColor)
848
- return q.groupColor;
849
- if (n) {
850
- const J = (de, ce) => {
851
- for (const le of de)
852
- if (le.children) {
853
- if (le.children.some((u) => u.key === ce))
854
- return le;
855
- const fe = J(le.children, ce);
856
- if (fe) return fe;
857
- }
858
- return null;
859
- }, P = J(n, q.key);
860
- return P == null ? void 0 : P.groupColor;
861
- }
862
- })(e);
863
- let re = "currentColor", oe = "currentColor";
864
- return r.sort_field === e.key && (r.sort_order === "ASC" && (re = "#5329FF"), r.sort_order === "DESC" && (oe = "#5329FF")), /* @__PURE__ */ l.jsx(
217
+ }, [t, s]);
218
+ let w = "currentColor", N = "currentColor";
219
+ return (d == null ? void 0 : d.sort_field) === t.key && ((d == null ? void 0 : d.sort_order) === "ASC" && (w = "#5329FF"), (d == null ? void 0 : d.sort_order) === "DESC" && (N = "#5329FF")), /* @__PURE__ */ n(
865
220
  "th",
866
221
  {
867
- ref: i,
868
- "data-column-key": e.key,
222
+ "data-column-key": t.key,
869
223
  className: `
870
224
  radar-table__header-cell
871
- ${L ? L + "__header-cell" : ""}
872
- ${W || ""}
873
- ${A ? "dragging" : ""}
874
- ${O ? "drag-over" : ""}
875
- ${d && O ? "valid-drop-zone" : ""}
876
- ${O && !d ? "invalid-drop-zone" : ""}
877
- ${m ? "leaf-header" : "group-header"}
878
- ${e.className || ""}`,
879
- colSpan: e.colSpan || 1,
880
- rowSpan: e.rowSpan || 1,
225
+ ${C ? C + "__header-cell" : ""}
226
+ ${E ?? ""}
227
+ ${b ? "leaf-header" : "group-header"}
228
+ ${t.className ?? ""}
229
+ ${f && (f === "right" || f === "middle") && t.fixed && !((_ = l[r + 1]) != null && _.fixed) ? "scrollShadowRight" : ""}
230
+ ${f && (f === "left" || f === "middle") && t.fixed && t.fixedSide === "right" && !((L = l[r - 1]) != null && L.fixed) ? "scrollShadowLeft" : ""}`,
231
+ colSpan: t.colSpan ?? 1,
232
+ rowSpan: t.rowSpan ?? 1,
881
233
  style: {
882
- width: b,
883
- //minWidth: currWidth,
884
- position: e.fixed ? "sticky" : "static",
885
- top: w && typeof w == "number" ? w : 0,
886
- left: g,
887
- borderRight: e.fixed && !((se = t[s + 1]) != null && se.fixed) ? "1px solid #E8E8E8" : "none",
888
- zIndex: e.fixed ? 2 : "auto",
889
- backgroundColor: Z,
890
- cursor: S,
891
- ...M,
892
- ...e.style
234
+ ...c,
235
+ zIndex: t.fixed ? 1 : "auto",
236
+ backgroundColor: y,
237
+ ...z,
238
+ ...t.style
893
239
  },
894
- children: /* @__PURE__ */ l.jsxs(
240
+ children: /* @__PURE__ */ M(
895
241
  "div",
896
242
  {
897
243
  className: `
898
244
  radar-table__header-cell-wrapper
899
- ${L ? L + "__header-cell-wrapper" : ""}
900
- ${U || ""}
245
+ ${C ? C + "__header-cell-wrapper" : ""}
246
+ ${O || ""}
901
247
  `,
902
- style: G,
248
+ style: B,
903
249
  children: [
904
- h && /* @__PURE__ */ l.jsx(
905
- "div",
906
- {
907
- className: `radar-table__drag-handle ${A ? "dragging" : ""} ${m ? "" : "group-drag-handle"}`,
908
- ...K,
909
- ...V,
910
- style: { cursor: A ? "grabbing" : "grab" },
911
- children: /* @__PURE__ */ l.jsxs("svg", { width: "8", height: "10", viewBox: "0 0 16 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
912
- /* @__PURE__ */ l.jsx("path", { d: "M2 2.62268e-07C3.10457 4.07115e-07 4 0.89543 4 2C4 3.10457 3.10457 4 2 4C0.895433 4 2.21557e-06 3.10457 2.36042e-06 2C2.50526e-06 0.89543 0.895433 1.17422e-07 2 2.62268e-07Z", fill: "#999999" }),
913
- /* @__PURE__ */ l.jsx("path", { d: "M14 16C15.1046 16 16 16.8954 16 18C16 19.1046 15.1046 20 14 20C12.8954 20 12 19.1046 12 18C12 16.8954 12.8954 16 14 16Z", fill: "#999999" }),
914
- /* @__PURE__ */ l.jsx("path", { d: "M2 16C3.10457 16 4 16.8954 4 18C4 19.1046 3.10457 20 2 20C0.895432 20 2.21557e-06 19.1046 2.36042e-06 18C2.50526e-06 16.8954 0.895433 16 2 16Z", fill: "#999999" }),
915
- /* @__PURE__ */ l.jsx("path", { d: "M14 8C15.1046 8 16 8.89543 16 10C16 11.1046 15.1046 12 14 12C12.8954 12 12 11.1046 12 10C12 8.89543 12.8954 8 14 8Z", fill: "#999999" }),
916
- /* @__PURE__ */ l.jsx("path", { d: "M2 8C3.10457 8 4 8.89543 4 10C4 11.1046 3.10457 12 2 12C0.895433 12 2.21557e-06 11.1046 2.36042e-06 10C2.50526e-06 8.89543 0.895433 8 2 8Z", fill: "#999999" }),
917
- /* @__PURE__ */ l.jsx("path", { d: "M14 -7.14702e-08C15.1046 7.33766e-08 16 0.89543 16 2C16 3.10457 15.1046 4 14 4C12.8954 4 12 3.10457 12 2C12 0.895429 12.8954 -2.16317e-07 14 -7.14702e-08Z", fill: "#999999" })
918
- ] })
919
- }
920
- ),
921
- /* @__PURE__ */ l.jsx("div", { className: "radar-table__header-cell-text-wrapper", children: /* @__PURE__ */ l.jsx(
250
+ /* @__PURE__ */ n("div", { className: "radar-table__header-cell-text-wrapper", children: /* @__PURE__ */ n(
922
251
  "span",
923
252
  {
924
- title: e.title,
925
- onClick: () => {
926
- const { sort_field: q, sort_order: J } = r;
927
- let P = {
928
- columnKey: e.key,
253
+ title: t.title,
254
+ onClick: (v) => {
255
+ if (v.preventDefault(), !t.sortable) return;
256
+ const { sort_field: k, sort_order: $ } = d ?? {};
257
+ let S = {
258
+ columnKey: t.key,
929
259
  direction: "ASC"
930
260
  };
931
- q === e.key ? J === "ASC" ? P.direction = "DESC" : J === "DESC" && (P.columnKey = void 0, P.direction = void 0) : (P.columnKey = e.key, P.direction = "ASC"), o(P.columnKey, P.direction);
261
+ k === t.key ? $ === "ASC" ? S.direction = "DESC" : $ === "DESC" && (S.columnKey = void 0, S.direction = void 0) : (S.columnKey = t.key, S.direction = "ASC"), u == null || u(S.columnKey, S.direction);
932
262
  },
933
263
  style: {
934
- cursor: e.sortable ? "pointer" : "default",
264
+ cursor: t.sortable ? "pointer" : "default",
935
265
  userSelect: "none"
936
266
  },
937
- children: e.title
267
+ children: t.title
938
268
  }
939
269
  ) }),
940
- e.sortable && !v && m && /* @__PURE__ */ l.jsxs("div", { className: "radar-table__sort-button-wrapper", children: [
941
- /* @__PURE__ */ l.jsx(
270
+ t.sortable && !i && b && /* @__PURE__ */ M("div", { className: "radar-table__sort-button-wrapper", children: [
271
+ /* @__PURE__ */ n(
942
272
  "button",
943
273
  {
944
274
  className: "radar-table__sort-button",
945
- onClick: (q) => o(e.key, "ASC"),
946
- title: `Сортировать по ${e.title}`,
947
- children: /* @__PURE__ */ l.jsx("svg", { width: "12", height: "7", viewBox: "0 0 12 7", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { width: 12, height: 7 }, children: /* @__PURE__ */ l.jsx("path", { fill: re, d: "M4.99264 0.21967C5.28553 -0.0732233 5.76041 -0.0732233 6.0533 0.21967L10.8263 4.99264C11.1192 5.28553 11.1192 5.76041 10.8263 6.0533C10.5334 6.34619 10.0585 6.34619 9.76561 6.0533L6.27297 2.56066L5.5 1.78769L4.77297 2.56066L1.28033 6.0533C0.987437 6.34619 0.512563 6.34619 0.21967 6.0533C-0.0732234 5.76041 -0.0732234 5.28553 0.21967 4.99264L4.99264 0.21967Z" }) })
275
+ onClick: (v) => u == null ? void 0 : u(t.key, "ASC"),
276
+ title: `Сортировать по ${t.title}`,
277
+ children: /* @__PURE__ */ n("svg", { width: "12", height: "7", viewBox: "0 0 12 7", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { width: 12, height: 7 }, children: /* @__PURE__ */ n("path", { fill: w, d: "M4.99264 0.21967C5.28553 -0.0732233 5.76041 -0.0732233 6.0533 0.21967L10.8263 4.99264C11.1192 5.28553 11.1192 5.76041 10.8263 6.0533C10.5334 6.34619 10.0585 6.34619 9.76561 6.0533L6.27297 2.56066L5.5 1.78769L4.77297 2.56066L1.28033 6.0533C0.987437 6.34619 0.512563 6.34619 0.21967 6.0533C-0.0732234 5.76041 -0.0732234 5.28553 0.21967 4.99264L4.99264 0.21967Z" }) })
948
278
  }
949
279
  ),
950
- /* @__PURE__ */ l.jsx(
280
+ /* @__PURE__ */ n(
951
281
  "button",
952
282
  {
953
283
  className: "radar-table__sort-button",
954
- onClick: (q) => o(e.key, "DESC"),
955
- title: `Сортировать по ${e.title}`,
956
- children: /* @__PURE__ */ l.jsx("svg", { width: "12", height: "7", viewBox: "0 0 12 7", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { width: 12, height: 7 }, children: /* @__PURE__ */ l.jsx("path", { fill: oe, d: "M4.99264 6.78033C5.28553 7.07322 5.76041 7.07322 6.0533 6.78033L10.8263 2.00736C11.1192 1.71447 11.1192 1.23959 10.8263 0.946699C10.5334 0.653806 10.0585 0.653806 9.76561 0.946699L6.27297 4.43934L5.5 5.21231L4.77297 4.43934L1.28033 0.946699C0.987437 0.653806 0.512563 0.653806 0.21967 0.946699C-0.0732234 1.23959 -0.0732234 1.71447 0.21967 2.00736L4.99264 6.78033Z" }) })
284
+ onClick: (v) => u == null ? void 0 : u(t.key, "DESC"),
285
+ title: `Сортировать по ${t.title}`,
286
+ children: /* @__PURE__ */ n("svg", { width: "12", height: "7", viewBox: "0 0 12 7", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { width: 12, height: 7 }, children: /* @__PURE__ */ n("path", { fill: N, d: "M4.99264 6.78033C5.28553 7.07322 5.76041 7.07322 6.0533 6.78033L10.8263 2.00736C11.1192 1.71447 11.1192 1.23959 10.8263 0.946699C10.5334 0.653806 10.0585 0.653806 9.76561 0.946699L6.27297 4.43934L5.5 5.21231L4.77297 4.43934L1.28033 0.946699C0.987437 0.653806 0.512563 0.653806 0.21967 0.946699C-0.0732234 1.23959 -0.0732234 1.71447 0.21967 2.00736L4.99264 6.78033Z" }) })
957
287
  }
958
288
  )
959
289
  ] }),
960
- e.sortable && v && m && v(r.sort_field, r.sort_order),
961
- e.tooltipText && /* @__PURE__ */ l.jsx(mt, { text: e.tooltipText, containerRef: B, children: e.tooltipIcon }),
962
- $ && m && /* @__PURE__ */ l.jsx(
963
- gt,
290
+ t.sortable && i && b && i(d == null ? void 0 : d.sort_field, d == null ? void 0 : d.sort_order),
291
+ t.tooltipText && /* @__PURE__ */ n(Nt, { text: t.tooltipText, containerRef: g, children: t.tooltipIcon }),
292
+ m && b && !t.noResize && /* @__PURE__ */ n(
293
+ Lt,
964
294
  {
965
- column: e,
966
- currWidth: b,
967
- currMinWidth: F,
968
- onResize: a,
969
- scrollContainerRef: B,
970
- onResizeStart: c,
971
- onResizeFrame: f,
972
- onResizeEnd: E,
973
- resizeMode: _
295
+ column: t,
296
+ onResize: h,
297
+ scrollContainerRef: g,
298
+ resizeMode: W,
299
+ setColsWidthsState: a
974
300
  }
975
301
  )
976
302
  ]
@@ -978,1828 +304,843 @@ function vt({
978
304
  )
979
305
  }
980
306
  );
981
- }
982
- function Me({
983
- config: e,
984
- fullConfig: s,
985
- onSort: t,
986
- onResize: n,
987
- onResizeStart: r,
988
- onResizeFrame: o,
989
- onResizeEnd: a,
990
- onColumnReorder: c,
991
- sortIcon: f,
992
- resizeable: E,
993
- draggableColumns: v,
994
- preset: $,
995
- headerClassName: X,
996
- headerStyle: L,
997
- headerRowClassName: W,
998
- headerRowStyle: M,
999
- headerCellClassName: U,
1000
- headerCellStyle: G,
1001
- headerCellWrapperClassName: w,
1002
- headerCellWrapperStyle: B,
1003
- stickyHeader: R,
1004
- scrollContainerRef: _,
1005
- sorting: ee,
1006
- defaultSorting: y,
1007
- resizeThrottle: m,
1008
- resizeMode: h
1009
- }) {
1010
- const [k, x] = ue(() => y || { sort_field: void 0, sort_order: void 0 }), [p, I] = ue(e), Q = ee !== void 0, K = Q ? ee : k;
1011
- be(() => {
1012
- !Q && y && x(y);
1013
- }, [y, Q]);
1014
- const V = ne((z, A) => {
1015
- const { sort_field: te, sort_order: O } = K;
1016
- let i = {
1017
- sort_field: z,
1018
- sort_order: A
1019
- };
1020
- te === z && O === A && (i = {
1021
- sort_field: void 0,
1022
- sort_order: void 0
1023
- }), Q || x(i), t == null || t(i.sort_field, i.sort_order);
1024
- }, [K, t, Q]);
1025
- return be(() => {
1026
- if (e.some((z) => z.children || !E)) {
1027
- I(e);
1028
- return;
1029
- } else {
1030
- const z = () => {
1031
- const A = _ == null ? void 0 : _.current;
1032
- if (!A) return;
1033
- const te = A.clientWidth, O = e.reduce((d, S) => d + ((S == null ? void 0 : S.width) ?? 0), 0);
1034
- if (O > te) {
1035
- I(e);
1036
- return;
1037
- }
1038
- const i = e.map((d) => {
1039
- const S = ((d == null ? void 0 : d.width) ?? 0) / O, b = Math.floor(te * S);
1040
- return d.width = Math.round(b), d.maxWidth = b * 2, d;
1041
- });
1042
- I([...i]), requestAnimationFrame(() => {
1043
- const d = (g) => {
1044
- var T;
1045
- return typeof window < "u" && ((T = window.CSS) != null && T.escape) ? window.CSS.escape(g) : g.replace(/([#.;?\[\]\s])/g, "\\$1");
1046
- }, S = A.querySelector("table");
1047
- if (!S) return;
1048
- i.forEach((g) => {
1049
- if (g.hidden) return;
1050
- const T = d(g.key), D = g.width || g.minWidth || 200, Z = S.querySelector(`th[data-column-key="${T}"]`);
1051
- Z && (Z.style.width = `${D}px`, Z.style.minWidth = `${D}px`), S.querySelectorAll(`td[data-column-key="${T}"]`).forEach((oe) => {
1052
- const se = oe;
1053
- se.style.width = `${D}px`, se.style.minWidth = `${D}px`;
1054
- });
1055
- });
1056
- const b = (g) => window.getComputedStyle(g).position === "sticky", N = Array.from(
1057
- S.querySelectorAll("th.radar-table__header-cell.leaf-header")
1058
- ).filter((g) => b(g));
1059
- if (N.length > 0) {
1060
- let g = 0;
1061
- N.forEach((T, D) => {
1062
- if (D === 0) {
1063
- const re = T.getAttribute("data-column-key"), oe = i.find((se) => se.key === re);
1064
- g = (oe == null ? void 0 : oe.fixedLeft) || 0, T.style.left = `${g}px`;
1065
- } else {
1066
- const re = N[D - 1].getBoundingClientRect().width;
1067
- g += Math.floor(re), T.style.left = `${g}px`;
1068
- }
1069
- const Z = T.getAttribute("data-column-key");
1070
- if (Z) {
1071
- const re = d(Z);
1072
- S.querySelectorAll(`td[data-column-key="${re}"]`).forEach((se) => {
1073
- const q = se;
1074
- window.getComputedStyle(q).position === "sticky" && (q.style.left = `${T.style.left}`);
1075
- });
1076
- }
1077
- });
1078
- }
1079
- });
1080
- };
1081
- return z(), window.addEventListener("resize", z), () => window.removeEventListener("resize", z);
1082
- }
1083
- }, [e, _, E]), /* @__PURE__ */ l.jsx(
1084
- "tr",
1085
- {
1086
- className: `radar-table__header-row ${$ ? $ + "__header-row" : ""} ${W || ""}`,
1087
- style: M,
1088
- children: p == null ? void 0 : p.map((z, A) => /* @__PURE__ */ l.jsx(
1089
- vt,
1090
- {
1091
- column: z,
1092
- index: A,
1093
- config: e,
1094
- fullConfig: s,
1095
- sorting: K,
1096
- onSort: V,
1097
- onResize: n,
1098
- onResizeStart: r,
1099
- onResizeFrame: o,
1100
- onResizeEnd: a,
1101
- sortIcon: f,
1102
- resizeable: E,
1103
- draggableColumns: v,
1104
- preset: $,
1105
- headerCellClassName: U,
1106
- headerCellStyle: G,
1107
- headerCellWrapperClassName: w,
1108
- headerCellWrapperStyle: B,
1109
- stickyHeader: R,
1110
- scrollContainerRef: _,
1111
- resizeThrottle: m,
1112
- resizeMode: h
1113
- },
1114
- z.key
1115
- ))
1116
- }
1117
- );
1118
- }
1119
- function _t(e) {
1120
- const {
1121
- config: s,
1122
- preset: t,
1123
- headerClassName: n,
1124
- headerStyle: r,
1125
- stickyHeader: o,
1126
- headerRowClassName: a,
1127
- headerRowStyle: c,
1128
- headerCellClassName: f,
1129
- headerCellStyle: E,
1130
- headerCellWrapperClassName: v,
1131
- headerCellWrapperStyle: $,
1132
- onResize: X,
1133
- onColumnReorder: L,
1134
- sorting: W,
1135
- defaultSorting: M
1136
- } = e, U = s.some((R) => R.children && R.children.length > 0), G = je(() => {
1137
- if (!U)
1138
- return null;
1139
- const R = {}, _ = (ee, y = 0) => {
1140
- R[y] || (R[y] = []), ee.forEach((m) => {
1141
- m.hidden || (R[y].push(m), m.children && m.children.length > 0 && _(m.children, y + 1));
1142
- });
1143
- };
1144
- return _(s), R;
1145
- }, [s, U]), w = ne((R, _) => {
1146
- if (!X) return;
1147
- const ee = (h, k) => {
1148
- for (const x of h) {
1149
- if (x.key === k) return x;
1150
- if (x.children) {
1151
- const p = ee(x.children, k);
1152
- if (p) return p;
1153
- }
307
+ }), mt = (e, t, r, l) => {
308
+ var d, u;
309
+ let s = 0;
310
+ if (!e.fixedSide || e.fixedSide === "left")
311
+ for (let h = 0; h < l; h++) {
312
+ const i = t[h];
313
+ if (i.fixed && !i.hidden) {
314
+ const m = (d = r == null ? void 0 : r[i.key]) == null ? void 0 : d.width;
315
+ s += m ?? 0;
1154
316
  }
1155
- return null;
1156
- }, y = (h) => {
1157
- if (!h.children || h.children.length === 0)
1158
- return [h];
1159
- const k = [];
1160
- return h.children.forEach((x) => {
1161
- x.hidden || k.push(...y(x));
1162
- }), k;
1163
- }, m = ee(s, R);
1164
- if (m)
1165
- if (m.children && m.children.length > 0) {
1166
- const h = y(m);
1167
- if (h.length > 0) {
1168
- const k = h.reduce((p, I) => p + (I.width || I.minWidth || 200), 0), x = _ / k;
1169
- h.forEach((p) => {
1170
- const I = Math.max(50, Math.round((p.width || p.minWidth || 200) * x));
1171
- X(p.key, I);
1172
- });
1173
- }
1174
- } else
1175
- X(R, _);
1176
- }, [s, X]), B = ne((R) => {
1177
- if (!L) return;
1178
- if (!U) {
1179
- L(R);
1180
- return;
1181
317
  }
1182
- const _ = (b, F, N = [], g = null) => {
1183
- for (let T = 0; T < b.length; T++) {
1184
- const D = b[T], Z = [...N, T];
1185
- if (D.key === F)
1186
- return {
1187
- column: D,
1188
- parent: g,
1189
- path: Z,
1190
- level: N.length
1191
- };
1192
- if (D.children && D.children.length > 0) {
1193
- const re = _(D.children, F, Z, D);
1194
- if (re)
1195
- return re;
1196
- }
318
+ if (e.fixedSide === "right")
319
+ for (let h = l + 1; h < t.length; h++) {
320
+ const i = t[h];
321
+ if (i.fixed && i.fixedSide === "right" && !i.hidden) {
322
+ const m = (u = r == null ? void 0 : r[i.key]) == null ? void 0 : u.width;
323
+ s += m ?? 0;
1197
324
  }
1198
- return null;
1199
- };
1200
- if (!Object.values(G).find((b) => {
1201
- if (b.length !== R.length) return !1;
1202
- const F = b.map((g) => g.key).sort(), N = R.map((g) => g.key).sort();
1203
- return JSON.stringify(F) === JSON.stringify(N);
1204
- }))
1205
- return;
1206
- const y = R._dragInfo;
1207
- if (!(y != null && y.draggedKey) || !(y != null && y.targetKey))
1208
- return;
1209
- const { draggedKey: m, targetKey: h } = y, k = _(s, m), x = _(s, h);
1210
- if (!k || !x) return;
1211
- const { column: p, parent: I, path: Q, level: K } = k, { column: V, parent: z, path: A, level: te } = x, O = (b, F) => b.fixed || (F == null ? void 0 : F.fixed) || !1, i = O(p, I), d = O(V, z);
1212
- if (K !== te || I !== z || I && z && I.key !== z.key || i !== d)
1213
- return;
1214
- const S = JSON.parse(JSON.stringify(s));
1215
- if (K === 0) {
1216
- const b = Q[0], F = A[0], [N] = S.splice(b, 1);
1217
- S.splice(F, 0, N);
1218
- } else {
1219
- const b = Q.slice(0, -1);
1220
- let F = S;
1221
- for (let D = 0; D < b.length; D++)
1222
- D === 0 ? F = F[b[D]] : F = F.children[b[D]];
1223
- if (!F || !F.children)
1224
- return;
1225
- const N = Q[Q.length - 1], g = A[A.length - 1];
1226
- if (N < 0 || N >= F.children.length || g < 0 || g >= F.children.length)
1227
- return;
1228
- const [T] = F.children.splice(N, 1);
1229
- F.children.splice(g, 0, T);
1230
325
  }
1231
- L(S);
1232
- }, [s, L, G]);
1233
- return U ? /* @__PURE__ */ l.jsx(
1234
- "thead",
326
+ return s;
327
+ }, ft = yt(function({
328
+ config: t,
329
+ fullConfig: r,
330
+ onSort: l,
331
+ onResize: s,
332
+ sortIcon: d,
333
+ resizeable: u,
334
+ preset: h,
335
+ headerRowClassName: i,
336
+ headerRowStyle: m,
337
+ headerCellClassName: C,
338
+ headerCellStyle: E,
339
+ headerCellWrapperClassName: z,
340
+ headerCellWrapperStyle: O,
341
+ stickyHeader: B,
342
+ scrollContainerRef: p,
343
+ sorting: g,
344
+ defaultSorting: W,
345
+ resizeMode: a,
346
+ setColsWidthsState: o,
347
+ colsWidthsState: f,
348
+ isLastLine: b,
349
+ scrollPosition: c
350
+ }) {
351
+ return /* @__PURE__ */ n(
352
+ "tr",
1235
353
  {
1236
- className: `radar-table__header ${t ? t + "__header" : ""} ${n}`,
1237
- style: {
1238
- position: o ? "sticky" : "static",
1239
- top: o && typeof o == "number" ? o : 0,
1240
- ...r
1241
- },
1242
- children: Object.keys(G).map((R) => {
1243
- const _ = G[parseInt(R)], ee = parseInt(R);
1244
- return /* @__PURE__ */ l.jsx(
1245
- Me,
354
+ className: `radar-table__header-row ${h ? h + "__header-row" : ""} ${i || ""}`,
355
+ style: m,
356
+ children: t == null ? void 0 : t.map((y, w, N) => {
357
+ let _ = 0;
358
+ return b && y.fixed && !y.hidden && f && (_ = mt(y, N, f, w)), !y.hidden && /* @__PURE__ */ n(
359
+ $t,
1246
360
  {
1247
- config: _,
1248
- fullConfig: s,
1249
- onSort: e.onSort,
1250
- onResize: w,
1251
- onResizeStart: e.onResizeStart,
1252
- onResizeFrame: e.onResizeFrame,
1253
- onResizeEnd: e.onResizeEnd,
1254
- onColumnReorder: B,
1255
- resizeable: e.resizeable,
1256
- draggableColumns: e.draggableColumns,
1257
- preset: t,
1258
- headerClassName: n,
1259
- headerStyle: r,
1260
- headerRowClassName: a,
1261
- headerRowStyle: {
1262
- ...c,
1263
- position: o ? "sticky" : "static",
1264
- top: o && typeof o == "number" ? o + (ee - 1) * 50 : 0
1265
- },
1266
- headerCellClassName: f,
361
+ column: y,
362
+ index: w,
363
+ config: t,
364
+ fullConfig: r,
365
+ sorting: g,
366
+ defaultSorting: W,
367
+ onSort: l,
368
+ onResize: s,
369
+ sortIcon: d,
370
+ resizeable: u,
371
+ preset: h,
372
+ headerCellClassName: C,
1267
373
  headerCellStyle: E,
1268
- headerCellWrapperClassName: v,
1269
- headerCellWrapperStyle: $,
1270
- stickyHeader: o,
1271
- sortIcon: e.sortIcon,
1272
- scrollContainerRef: e.scrollContainerRef,
1273
- sorting: W,
1274
- defaultSorting: M,
1275
- resizeThrottle: e.resizeThrottle,
1276
- resizeMode: e.resizeMode
374
+ stickyIdent: _,
375
+ headerCellWrapperClassName: z,
376
+ headerCellWrapperStyle: O,
377
+ stickyHeader: B,
378
+ scrollContainerRef: p,
379
+ resizeMode: a,
380
+ setColsWidthsState: o,
381
+ scrollPosition: c
1277
382
  },
1278
- R
383
+ y.key
1279
384
  );
1280
385
  })
1281
386
  }
1282
- ) : /* @__PURE__ */ l.jsx(
1283
- "thead",
1284
- {
1285
- className: `radar-table__header ${t ? t + "__header" : ""} ${n}`,
1286
- style: {
1287
- position: o ? "sticky" : "static",
1288
- top: o && typeof o == "number" ? o : 0,
1289
- ...r
1290
- },
1291
- children: /* @__PURE__ */ l.jsx(Me, { ...e, fullConfig: s, onResize: w, onResizeStart: e.onResizeStart, onResizeFrame: e.onResizeFrame, onResizeEnd: e.onResizeEnd, onColumnReorder: B, scrollContainerRef: e.scrollContainerRef, sorting: W, defaultSorting: M, resizeThrottle: e.resizeThrottle, resizeMode: e.resizeMode })
1292
- }
1293
387
  );
1294
- }
1295
- const wt = (e, s) => {
1296
- let t = "0";
1297
- if (e != null) {
1298
- const n = parseFloat(e);
1299
- if (Number.isNaN(n))
1300
- return s && (t += ` ${s}`), t;
1301
- t = n.toLocaleString("ru-RU", {
1302
- maximumFractionDigits: 2
1303
- }), s && (t += ` ${s}`);
1304
- }
1305
- return t;
1306
- };
1307
- function _e(e, s, t) {
1308
- let n = t.initialDeps ?? [], r;
1309
- function o() {
1310
- var a, c, f, E;
1311
- let v;
1312
- t.key && ((a = t.debug) != null && a.call(t)) && (v = Date.now());
1313
- const $ = e();
1314
- if (!($.length !== n.length || $.some((W, M) => n[M] !== W)))
1315
- return r;
1316
- n = $;
1317
- let L;
1318
- if (t.key && ((c = t.debug) != null && c.call(t)) && (L = Date.now()), r = s(...$), t.key && ((f = t.debug) != null && f.call(t))) {
1319
- const W = Math.round((Date.now() - v) * 100) / 100, M = Math.round((Date.now() - L) * 100) / 100, U = M / 16, G = (w, B) => {
1320
- for (w = String(w); w.length < B; )
1321
- w = " " + w;
1322
- return w;
1323
- };
1324
- console.info(
1325
- `%c⏱ ${G(M, 5)} /${G(W, 5)} ms`,
1326
- `
1327
- font-size: .6rem;
1328
- font-weight: bold;
1329
- color: hsl(${Math.max(
1330
- 0,
1331
- Math.min(120 - 120 * U, 120)
1332
- )}deg 100% 31%);`,
1333
- t == null ? void 0 : t.key
1334
- );
1335
- }
1336
- return (E = t == null ? void 0 : t.onChange) == null || E.call(t, r), r;
1337
- }
1338
- return o.updateDeps = (a) => {
1339
- n = a;
1340
- }, o;
1341
- }
1342
- function We(e, s) {
1343
- if (e === void 0)
1344
- throw new Error("Unexpected undefined");
1345
- return e;
1346
- }
1347
- const St = (e, s) => Math.abs(e - s) < 1.01, Et = (e, s, t) => {
1348
- let n;
1349
- return function(...r) {
1350
- e.clearTimeout(n), n = e.setTimeout(() => s.apply(this, r), t);
1351
- };
1352
- }, ze = (e) => {
1353
- const { offsetWidth: s, offsetHeight: t } = e;
1354
- return { width: s, height: t };
1355
- }, Ct = (e) => e, kt = (e) => {
1356
- const s = Math.max(e.startIndex - e.overscan, 0), t = Math.min(e.endIndex + e.overscan, e.count - 1), n = [];
1357
- for (let r = s; r <= t; r++)
1358
- n.push(r);
1359
- return n;
1360
- }, jt = (e, s) => {
1361
- const t = e.scrollElement;
1362
- if (!t)
1363
- return;
1364
- const n = e.targetWindow;
1365
- if (!n)
1366
- return;
1367
- const r = (a) => {
1368
- const { width: c, height: f } = a;
1369
- s({ width: Math.round(c), height: Math.round(f) });
388
+ }), st = vt(null), Ct = ({ children: e }) => {
389
+ const [t, r] = X(null), l = {
390
+ colsWidthsState: t,
391
+ setColsWidthsState: r
1370
392
  };
1371
- if (r(ze(t)), !n.ResizeObserver)
1372
- return () => {
1373
- };
1374
- const o = new n.ResizeObserver((a) => {
1375
- const c = () => {
1376
- const f = a[0];
1377
- if (f != null && f.borderBoxSize) {
1378
- const E = f.borderBoxSize[0];
1379
- if (E) {
1380
- r({ width: E.inlineSize, height: E.blockSize });
1381
- return;
1382
- }
1383
- }
1384
- r(ze(t));
1385
- };
1386
- e.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(c) : c();
1387
- });
1388
- return o.observe(t, { box: "border-box" }), () => {
1389
- o.unobserve(t);
1390
- };
1391
- }, Pe = {
1392
- passive: !0
1393
- }, Be = typeof window > "u" ? !0 : "onscrollend" in window, Tt = (e, s) => {
1394
- const t = e.scrollElement;
1395
- if (!t)
1396
- return;
1397
- const n = e.targetWindow;
1398
- if (!n)
1399
- return;
1400
- let r = 0;
1401
- const o = e.options.useScrollendEvent && Be ? () => {
1402
- } : Et(
1403
- n,
1404
- () => {
1405
- s(r, !1);
1406
- },
1407
- e.options.isScrollingResetDelay
1408
- ), a = (v) => () => {
1409
- const { horizontal: $, isRtl: X } = e.options;
1410
- r = $ ? t.scrollLeft * (X && -1 || 1) : t.scrollTop, o(), s(r, v);
1411
- }, c = a(!0), f = a(!1);
1412
- f(), t.addEventListener("scroll", c, Pe);
1413
- const E = e.options.useScrollendEvent && Be;
1414
- return E && t.addEventListener("scrollend", f, Pe), () => {
1415
- t.removeEventListener("scroll", c), E && t.removeEventListener("scrollend", f);
1416
- };
1417
- }, Ot = (e, s, t) => {
1418
- if (s != null && s.borderBoxSize) {
1419
- const n = s.borderBoxSize[0];
1420
- if (n)
1421
- return Math.round(
1422
- n[t.options.horizontal ? "inlineSize" : "blockSize"]
1423
- );
1424
- }
1425
- return e[t.options.horizontal ? "offsetWidth" : "offsetHeight"];
1426
- }, $t = (e, {
1427
- adjustments: s = 0,
1428
- behavior: t
1429
- }, n) => {
1430
- var r, o;
1431
- const a = e + s;
1432
- (o = (r = n.scrollElement) == null ? void 0 : r.scrollTo) == null || o.call(r, {
1433
- [n.options.horizontal ? "left" : "top"]: a,
1434
- behavior: t
1435
- });
393
+ return /* @__PURE__ */ n(st.Provider, { value: l, children: e });
1436
394
  };
1437
- class Ft {
1438
- constructor(s) {
1439
- this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.measurementsCache = [], this.itemSizeCache = /* @__PURE__ */ new Map(), this.pendingMeasuredCacheIndexes = [], this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this.elementsCache = /* @__PURE__ */ new Map(), this.observer = /* @__PURE__ */ (() => {
1440
- let t = null;
1441
- const n = () => t || (!this.targetWindow || !this.targetWindow.ResizeObserver ? null : t = new this.targetWindow.ResizeObserver((r) => {
1442
- r.forEach((o) => {
1443
- const a = () => {
1444
- this._measureElement(o.target, o);
395
+ function Wt(e) {
396
+ const {
397
+ config: t,
398
+ preset: r,
399
+ headerClassName: l,
400
+ headerStyle: s,
401
+ stickyHeader: d,
402
+ headerRowClassName: u,
403
+ headerRowStyle: h,
404
+ headerCellClassName: i,
405
+ headerCellStyle: m,
406
+ headerCellWrapperClassName: C,
407
+ headerCellWrapperStyle: E,
408
+ onResize: z,
409
+ sorting: O,
410
+ defaultSorting: B,
411
+ columnStyles: p,
412
+ scrollPosition: g
413
+ } = e, W = pt(st), { colsWidthsState: a, setColsWidthsState: o } = W, f = tt(() => t.some((c) => c.children && c.children.length > 0), [t]), b = tt(() => {
414
+ if (!f)
415
+ return null;
416
+ const c = {}, y = (w, N = 0) => {
417
+ c[N] || (c[N] = []), w.forEach((_) => {
418
+ _.hidden || (c[N].push(_), _.children && _.children.length > 0 && y(_.children, N + 1));
419
+ });
420
+ };
421
+ return y(t), c;
422
+ }, [f]);
423
+ if (R(() => {
424
+ if (!f)
425
+ o(() => {
426
+ let c = {};
427
+ return t.forEach((y) => {
428
+ c = {
429
+ ...c,
430
+ [y.key]: {
431
+ width: y.width ?? 0,
432
+ minWidth: y.minWidth ?? 0
433
+ }
1445
434
  };
1446
- this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(a) : a();
1447
- });
1448
- }));
1449
- return {
1450
- disconnect: () => {
1451
- var r;
1452
- (r = n()) == null || r.disconnect(), t = null;
1453
- },
1454
- observe: (r) => {
1455
- var o;
1456
- return (o = n()) == null ? void 0 : o.observe(r, { box: "border-box" });
1457
- },
1458
- unobserve: (r) => {
1459
- var o;
1460
- return (o = n()) == null ? void 0 : o.unobserve(r);
435
+ }), c;
436
+ });
437
+ else {
438
+ const c = Object.keys(b), y = c[c.length - 1], w = b[parseInt(y)];
439
+ o(() => {
440
+ let N = {};
441
+ return Array.isArray(w) && w.forEach((_) => {
442
+ N = {
443
+ ...N,
444
+ [_.key]: {
445
+ width: _.width ?? 0,
446
+ minWidth: _.minWidth ?? 0
447
+ }
448
+ };
449
+ }), N;
450
+ });
451
+ }
452
+ }, [b]), !f && a)
453
+ return /* @__PURE__ */ M(Y, { children: [
454
+ /* @__PURE__ */ n("colgroup", { children: t.map((c) => {
455
+ var y, w;
456
+ return /* @__PURE__ */ n(
457
+ "col",
458
+ {
459
+ "data-column-key": c.key,
460
+ style: {
461
+ width: (y = a == null ? void 0 : a[c.key]) == null ? void 0 : y.width,
462
+ minWidth: (w = a == null ? void 0 : a[c.key]) == null ? void 0 : w.minWidth,
463
+ ...p == null ? void 0 : p[c.key]
464
+ }
465
+ },
466
+ c.key
467
+ );
468
+ }) }),
469
+ /* @__PURE__ */ n(
470
+ "thead",
471
+ {
472
+ className: `radar-table__header ${r ? r + "__header" : ""} ${l}`,
473
+ style: {
474
+ position: d ? "sticky" : "static",
475
+ top: d && typeof d == "number" ? d : 0,
476
+ ...s
477
+ },
478
+ children: /* @__PURE__ */ n(
479
+ ft,
480
+ {
481
+ ...e,
482
+ fullConfig: t,
483
+ onResize: z,
484
+ scrollContainerRef: e.scrollContainerRef,
485
+ sorting: O,
486
+ defaultSorting: B,
487
+ resizeMode: e.resizeMode,
488
+ setColsWidthsState: o,
489
+ colsWidthsState: a,
490
+ isLastLine: !0,
491
+ scrollPosition: g
492
+ }
493
+ )
1461
494
  }
1462
- };
1463
- })(), this.range = null, this.setOptions = (t) => {
1464
- Object.entries(t).forEach(([n, r]) => {
1465
- typeof r > "u" && delete t[n];
1466
- }), this.options = {
1467
- debug: !1,
1468
- initialOffset: 0,
1469
- overscan: 1,
1470
- paddingStart: 0,
1471
- paddingEnd: 0,
1472
- scrollPaddingStart: 0,
1473
- scrollPaddingEnd: 0,
1474
- horizontal: !1,
1475
- getItemKey: Ct,
1476
- rangeExtractor: kt,
1477
- onChange: () => {
1478
- },
1479
- measureElement: Ot,
1480
- initialRect: { width: 0, height: 0 },
1481
- scrollMargin: 0,
1482
- gap: 0,
1483
- indexAttribute: "data-index",
1484
- initialMeasurementsCache: [],
1485
- lanes: 1,
1486
- isScrollingResetDelay: 150,
1487
- enabled: !0,
1488
- isRtl: !1,
1489
- useScrollendEvent: !1,
1490
- useAnimationFrameWithResizeObserver: !1,
1491
- ...t
1492
- };
1493
- }, this.notify = (t) => {
1494
- var n, r;
1495
- (r = (n = this.options).onChange) == null || r.call(n, this, t);
1496
- }, this.maybeNotify = _e(
1497
- () => (this.calculateRange(), [
1498
- this.isScrolling,
1499
- this.range ? this.range.startIndex : null,
1500
- this.range ? this.range.endIndex : null
1501
- ]),
1502
- (t) => {
1503
- this.notify(t);
1504
- },
1505
- {
1506
- key: process.env.NODE_ENV !== "production" && "maybeNotify",
1507
- debug: () => this.options.debug,
1508
- initialDeps: [
1509
- this.isScrolling,
1510
- this.range ? this.range.startIndex : null,
1511
- this.range ? this.range.endIndex : null
1512
- ]
1513
- }
1514
- ), this.cleanup = () => {
1515
- this.unsubs.filter(Boolean).forEach((t) => t()), this.unsubs = [], this.observer.disconnect(), this.scrollElement = null, this.targetWindow = null;
1516
- }, this._didMount = () => () => {
1517
- this.cleanup();
1518
- }, this._willUpdate = () => {
1519
- var t;
1520
- const n = this.options.enabled ? this.options.getScrollElement() : null;
1521
- if (this.scrollElement !== n) {
1522
- if (this.cleanup(), !n) {
1523
- this.maybeNotify();
1524
- return;
495
+ )
496
+ ] });
497
+ if (f && a)
498
+ return /* @__PURE__ */ M(Y, { children: [
499
+ /* @__PURE__ */ n("colgroup", { children: Object.keys(b).map((c, y, w) => {
500
+ if (y === w.length - 1) {
501
+ const _ = b[parseInt(c)];
502
+ return /* @__PURE__ */ n(dt.Fragment, { children: _.map((L) => {
503
+ var v, k;
504
+ return /* @__PURE__ */ n(
505
+ "col",
506
+ {
507
+ "data-column-key": L.key,
508
+ style: {
509
+ width: (v = a == null ? void 0 : a[L.key]) == null ? void 0 : v.width,
510
+ minWidth: (k = a == null ? void 0 : a[L.key]) == null ? void 0 : k.minWidth,
511
+ ...p == null ? void 0 : p[L.key]
512
+ }
513
+ },
514
+ L.key
515
+ );
516
+ }) }, c);
1525
517
  }
1526
- this.scrollElement = n, this.scrollElement && "ownerDocument" in this.scrollElement ? this.targetWindow = this.scrollElement.ownerDocument.defaultView : this.targetWindow = ((t = this.scrollElement) == null ? void 0 : t.window) ?? null, this.elementsCache.forEach((r) => {
1527
- this.observer.observe(r);
1528
- }), this._scrollToOffset(this.getScrollOffset(), {
1529
- adjustments: void 0,
1530
- behavior: void 0
1531
- }), this.unsubs.push(
1532
- this.options.observeElementRect(this, (r) => {
1533
- this.scrollRect = r, this.maybeNotify();
1534
- })
1535
- ), this.unsubs.push(
1536
- this.options.observeElementOffset(this, (r, o) => {
1537
- this.scrollAdjustments = 0, this.scrollDirection = o ? this.getScrollOffset() < r ? "forward" : "backward" : null, this.scrollOffset = r, this.isScrolling = o, this.maybeNotify();
518
+ }) }),
519
+ /* @__PURE__ */ n(
520
+ "thead",
521
+ {
522
+ className: `radar-table__header ${r ? r + "__header" : ""} ${l}`,
523
+ style: {
524
+ position: d ? "sticky" : "static",
525
+ top: d && typeof d == "number" ? d : 0,
526
+ ...s
527
+ },
528
+ children: Object.keys(b).map((c, y, w) => {
529
+ const N = b[parseInt(c)], _ = y === w.length - 1;
530
+ return /* @__PURE__ */ n(
531
+ ft,
532
+ {
533
+ config: N,
534
+ fullConfig: t,
535
+ onSort: e.onSort,
536
+ onResize: z,
537
+ resizeable: e.resizeable,
538
+ preset: r,
539
+ headerRowClassName: u,
540
+ headerRowStyle: h,
541
+ headerCellClassName: i,
542
+ headerCellStyle: m,
543
+ headerCellWrapperClassName: C,
544
+ headerCellWrapperStyle: E,
545
+ stickyHeader: d,
546
+ sortIcon: e.sortIcon,
547
+ scrollContainerRef: e.scrollContainerRef,
548
+ sorting: O,
549
+ defaultSorting: B,
550
+ resizeMode: e.resizeMode,
551
+ setColsWidthsState: o,
552
+ colsWidthsState: a,
553
+ isLastLine: _,
554
+ scrollPosition: g
555
+ },
556
+ c
557
+ );
1538
558
  })
1539
- );
1540
- }
1541
- }, this.getSize = () => this.options.enabled ? (this.scrollRect = this.scrollRect ?? this.options.initialRect, this.scrollRect[this.options.horizontal ? "width" : "height"]) : (this.scrollRect = null, 0), this.getScrollOffset = () => this.options.enabled ? (this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset == "function" ? this.options.initialOffset() : this.options.initialOffset), this.scrollOffset) : (this.scrollOffset = null, 0), this.getFurthestMeasurement = (t, n) => {
1542
- const r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
1543
- for (let a = n - 1; a >= 0; a--) {
1544
- const c = t[a];
1545
- if (r.has(c.lane))
1546
- continue;
1547
- const f = o.get(
1548
- c.lane
1549
- );
1550
- if (f == null || c.end > f.end ? o.set(c.lane, c) : c.end < f.end && r.set(c.lane, !0), r.size === this.options.lanes)
1551
- break;
1552
- }
1553
- return o.size === this.options.lanes ? Array.from(o.values()).sort((a, c) => a.end === c.end ? a.index - c.index : a.end - c.end)[0] : void 0;
1554
- }, this.getMeasurementOptions = _e(
1555
- () => [
1556
- this.options.count,
1557
- this.options.paddingStart,
1558
- this.options.scrollMargin,
1559
- this.options.getItemKey,
1560
- this.options.enabled
1561
- ],
1562
- (t, n, r, o, a) => (this.pendingMeasuredCacheIndexes = [], {
1563
- count: t,
1564
- paddingStart: n,
1565
- scrollMargin: r,
1566
- getItemKey: o,
1567
- enabled: a
1568
- }),
1569
- {
1570
- key: !1
1571
- }
1572
- ), this.getMeasurements = _e(
1573
- () => [this.getMeasurementOptions(), this.itemSizeCache],
1574
- ({ count: t, paddingStart: n, scrollMargin: r, getItemKey: o, enabled: a }, c) => {
1575
- if (!a)
1576
- return this.measurementsCache = [], this.itemSizeCache.clear(), [];
1577
- this.measurementsCache.length === 0 && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((v) => {
1578
- this.itemSizeCache.set(v.key, v.size);
1579
- }));
1580
- const f = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
1581
- this.pendingMeasuredCacheIndexes = [];
1582
- const E = this.measurementsCache.slice(0, f);
1583
- for (let v = f; v < t; v++) {
1584
- const $ = o(v), X = this.options.lanes === 1 ? E[v - 1] : this.getFurthestMeasurement(E, v), L = X ? X.end + this.options.gap : n + r, W = c.get($), M = typeof W == "number" ? W : this.options.estimateSize(v), U = L + M, G = X ? X.lane : v % this.options.lanes;
1585
- E[v] = {
1586
- index: v,
1587
- start: L,
1588
- size: M,
1589
- end: U,
1590
- key: $,
1591
- lane: G
1592
- };
1593
559
  }
1594
- return this.measurementsCache = E, E;
1595
- },
1596
- {
1597
- key: process.env.NODE_ENV !== "production" && "getMeasurements",
1598
- debug: () => this.options.debug
1599
- }
1600
- ), this.calculateRange = _e(
1601
- () => [
1602
- this.getMeasurements(),
1603
- this.getSize(),
1604
- this.getScrollOffset(),
1605
- this.options.lanes
1606
- ],
1607
- (t, n, r, o) => this.range = t.length > 0 && n > 0 ? Nt({
1608
- measurements: t,
1609
- outerSize: n,
1610
- scrollOffset: r,
1611
- lanes: o
1612
- }) : null,
1613
- {
1614
- key: process.env.NODE_ENV !== "production" && "calculateRange",
1615
- debug: () => this.options.debug
1616
- }
1617
- ), this.getVirtualIndexes = _e(
1618
- () => {
1619
- let t = null, n = null;
1620
- const r = this.calculateRange();
1621
- return r && (t = r.startIndex, n = r.endIndex), this.maybeNotify.updateDeps([this.isScrolling, t, n]), [
1622
- this.options.rangeExtractor,
1623
- this.options.overscan,
1624
- this.options.count,
1625
- t,
1626
- n
1627
- ];
1628
- },
1629
- (t, n, r, o, a) => o === null || a === null ? [] : t({
1630
- startIndex: o,
1631
- endIndex: a,
1632
- overscan: n,
1633
- count: r
1634
- }),
1635
- {
1636
- key: process.env.NODE_ENV !== "production" && "getVirtualIndexes",
1637
- debug: () => this.options.debug
1638
- }
1639
- ), this.indexFromElement = (t) => {
1640
- const n = this.options.indexAttribute, r = t.getAttribute(n);
1641
- return r ? parseInt(r, 10) : (console.warn(
1642
- `Missing attribute name '${n}={index}' on measured element.`
1643
- ), -1);
1644
- }, this._measureElement = (t, n) => {
1645
- const r = this.indexFromElement(t), o = this.measurementsCache[r];
1646
- if (!o)
1647
- return;
1648
- const a = o.key, c = this.elementsCache.get(a);
1649
- c !== t && (c && this.observer.unobserve(c), this.observer.observe(t), this.elementsCache.set(a, t)), t.isConnected && this.resizeItem(r, this.options.measureElement(t, n, this));
1650
- }, this.resizeItem = (t, n) => {
1651
- const r = this.measurementsCache[t];
1652
- if (!r)
1653
- return;
1654
- const o = this.itemSizeCache.get(r.key) ?? r.size, a = n - o;
1655
- a !== 0 && ((this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(r, a, this) : r.start < this.getScrollOffset() + this.scrollAdjustments) && (process.env.NODE_ENV !== "production" && this.options.debug && console.info("correction", a), this._scrollToOffset(this.getScrollOffset(), {
1656
- adjustments: this.scrollAdjustments += a,
1657
- behavior: void 0
1658
- })), this.pendingMeasuredCacheIndexes.push(r.index), this.itemSizeCache = new Map(this.itemSizeCache.set(r.key, n)), this.notify(!1));
1659
- }, this.measureElement = (t) => {
1660
- if (!t) {
1661
- this.elementsCache.forEach((n, r) => {
1662
- n.isConnected || (this.observer.unobserve(n), this.elementsCache.delete(r));
1663
- });
1664
- return;
1665
- }
1666
- this._measureElement(t, void 0);
1667
- }, this.getVirtualItems = _e(
1668
- () => [this.getVirtualIndexes(), this.getMeasurements()],
1669
- (t, n) => {
1670
- const r = [];
1671
- for (let o = 0, a = t.length; o < a; o++) {
1672
- const c = t[o], f = n[c];
1673
- r.push(f);
1674
- }
1675
- return r;
560
+ )
561
+ ] });
562
+ }
563
+ const Et = (e, t) => {
564
+ let r = "0";
565
+ if (e != null) {
566
+ const l = parseFloat(e);
567
+ if (Number.isNaN(l))
568
+ return t && (r += ` ${t}`), r;
569
+ r = l.toLocaleString("ru-RU", {
570
+ maximumFractionDigits: 2
571
+ }), t && (r += ` ${t}`);
572
+ }
573
+ return r;
574
+ }, St = ({
575
+ column: e,
576
+ index: t,
577
+ row: r,
578
+ item: l,
579
+ customCellRender: s,
580
+ leafColumns: d,
581
+ getGroupColor: u,
582
+ treeMode: h,
583
+ expandedSet: i,
584
+ indentSize: m,
585
+ preset: C,
586
+ bodyCellClassName: E,
587
+ bodyCellStyle: z,
588
+ bodyCellWrapperClassName: O,
589
+ bodyCellWrapperStyle: B,
590
+ toggleExpand: p,
591
+ expandIcon: g,
592
+ scrollPosition: W,
593
+ stickyIdent: a
594
+ }) => {
595
+ var k, $, S;
596
+ const o = H(null), f = tt(() => {
597
+ var D, I;
598
+ return e.fixed && !e.hidden && (e.fixedSide === "left" || !e.fixedSide) ? {
599
+ position: "sticky",
600
+ left: a ?? 0,
601
+ borderRight: (D = d[t + 1]) != null && D.fixed ? "none" : "1px solid #E8E8E8",
602
+ zIndex: 1
603
+ } : e.fixed && !e.hidden && e.fixedSide === "right" ? {
604
+ position: "sticky",
605
+ right: a ?? 0,
606
+ borderLeft: (I = d[t - 1]) != null && I.fixed ? "none" : "1px solid #E8E8E8"
607
+ } : {};
608
+ }, [e, a, d]), b = e.fixed && !e.width ? 200 : e.width, c = e.fixed && !e.minWidth ? 200 : e.minWidth;
609
+ let y = !1;
610
+ s && s.idx.includes(e.dataIndex) && (y = !0), s && s.idx.length === 0 && (y = !0);
611
+ const w = u(e), N = t === 0, _ = h && N && r.depth > 0 ? r.depth * (m ?? 16) : void 0, L = !!(h && (l != null && l.children) && l.children.length > 0), v = !!(h && i.has(r.key));
612
+ return e.hidden ? null : /* @__PURE__ */ n(
613
+ "td",
614
+ {
615
+ ref: o,
616
+ "data-column-key": e.key,
617
+ className: `
618
+ radar-table__body-cell
619
+ ${C ? C + "__body-cell" : ""}
620
+ ${E}
621
+ ${W && (W === "right" || W === "middle") && e.fixed && !((k = d[t + 1]) != null && k.fixed) ? "scrollShadowRight" : ""}
622
+ ${W && (W === "left" || W === "middle") && e.fixed && e.fixedSide === "right" && !(($ = d[t - 1]) != null && $.fixed) ? "scrollShadowLeft" : ""}
623
+ `,
624
+ style: {
625
+ width: b,
626
+ minWidth: c,
627
+ ...f,
628
+ cursor: N && L ? "pointer" : "default",
629
+ ...z
1676
630
  },
1677
- {
1678
- key: process.env.NODE_ENV !== "production" && "getVirtualItems",
1679
- debug: () => this.options.debug
1680
- }
1681
- ), this.getVirtualItemForOffset = (t) => {
1682
- const n = this.getMeasurements();
1683
- if (n.length !== 0)
1684
- return We(
1685
- n[Xe(
1686
- 0,
1687
- n.length - 1,
1688
- (r) => We(n[r]).start,
1689
- t
1690
- )]
1691
- );
1692
- }, this.getOffsetForAlignment = (t, n, r = 0) => {
1693
- const o = this.getSize(), a = this.getScrollOffset();
1694
- n === "auto" && (n = t >= a + o ? "end" : "start"), n === "center" ? t += (r - o) / 2 : n === "end" && (t -= o);
1695
- const c = this.getTotalSize() + this.options.scrollMargin - o;
1696
- return Math.max(Math.min(c, t), 0);
1697
- }, this.getOffsetForIndex = (t, n = "auto") => {
1698
- t = Math.max(0, Math.min(t, this.options.count - 1));
1699
- const r = this.measurementsCache[t];
1700
- if (!r)
1701
- return;
1702
- const o = this.getSize(), a = this.getScrollOffset();
1703
- if (n === "auto")
1704
- if (r.end >= a + o - this.options.scrollPaddingEnd)
1705
- n = "end";
1706
- else if (r.start <= a + this.options.scrollPaddingStart)
1707
- n = "start";
1708
- else
1709
- return [a, n];
1710
- const c = n === "end" ? r.end + this.options.scrollPaddingEnd : r.start - this.options.scrollPaddingStart;
1711
- return [
1712
- this.getOffsetForAlignment(c, n, r.size),
1713
- n
1714
- ];
1715
- }, this.isDynamicMode = () => this.elementsCache.size > 0, this.scrollToOffset = (t, { align: n = "start", behavior: r } = {}) => {
1716
- r === "smooth" && this.isDynamicMode() && console.warn(
1717
- "The `smooth` scroll behavior is not fully supported with dynamic size."
1718
- ), this._scrollToOffset(this.getOffsetForAlignment(t, n), {
1719
- adjustments: void 0,
1720
- behavior: r
1721
- });
1722
- }, this.scrollToIndex = (t, { align: n = "auto", behavior: r } = {}) => {
1723
- r === "smooth" && this.isDynamicMode() && console.warn(
1724
- "The `smooth` scroll behavior is not fully supported with dynamic size."
1725
- ), t = Math.max(0, Math.min(t, this.options.count - 1));
1726
- let o = 0;
1727
- const a = 10, c = (E) => {
1728
- if (!this.targetWindow) return;
1729
- const v = this.getOffsetForIndex(t, E);
1730
- if (!v) {
1731
- console.warn("Failed to get offset for index:", t);
1732
- return;
1733
- }
1734
- const [$, X] = v;
1735
- this._scrollToOffset($, { adjustments: void 0, behavior: r }), this.targetWindow.requestAnimationFrame(() => {
1736
- const L = this.getScrollOffset(), W = this.getOffsetForIndex(t, X);
1737
- if (!W) {
1738
- console.warn("Failed to get offset for index:", t);
1739
- return;
1740
- }
1741
- St(W[0], L) || f(X);
1742
- });
1743
- }, f = (E) => {
1744
- this.targetWindow && (o++, o < a ? (process.env.NODE_ENV !== "production" && this.options.debug && console.info("Schedule retry", o, a), this.targetWindow.requestAnimationFrame(() => c(E))) : console.warn(
1745
- `Failed to scroll to index ${t} after ${a} attempts.`
1746
- ));
1747
- };
1748
- c(n);
1749
- }, this.scrollBy = (t, { behavior: n } = {}) => {
1750
- n === "smooth" && this.isDynamicMode() && console.warn(
1751
- "The `smooth` scroll behavior is not fully supported with dynamic size."
1752
- ), this._scrollToOffset(this.getScrollOffset() + t, {
1753
- adjustments: void 0,
1754
- behavior: n
1755
- });
1756
- }, this.getTotalSize = () => {
1757
- var t;
1758
- const n = this.getMeasurements();
1759
- let r;
1760
- if (n.length === 0)
1761
- r = this.options.paddingStart;
1762
- else if (this.options.lanes === 1)
1763
- r = ((t = n[n.length - 1]) == null ? void 0 : t.end) ?? 0;
1764
- else {
1765
- const o = Array(this.options.lanes).fill(null);
1766
- let a = n.length - 1;
1767
- for (; a >= 0 && o.some((c) => c === null); ) {
1768
- const c = n[a];
1769
- o[c.lane] === null && (o[c.lane] = c.end), a--;
631
+ onClick: N && L ? () => p == null ? void 0 : p(r.key) : void 0,
632
+ children: /* @__PURE__ */ M(
633
+ "div",
634
+ {
635
+ className: `radar-table__body-cell-wrapper ${C ? C + "__body-cell-wrapper" : ""} ${O}`,
636
+ style: {
637
+ backgroundColor: w || "white",
638
+ paddingLeft: L ? _ : (_ ?? 0) + 12,
639
+ // +12 is the default padding for the expander button - some kind of compensation
640
+ ...B
641
+ },
642
+ children: [
643
+ N && L && h && /* @__PURE__ */ n(
644
+ "button",
645
+ {
646
+ type: "button",
647
+ className: `radar - table__expander - btn ${v ? "expanded" : ""} `,
648
+ "aria-expanded": v,
649
+ onClick: () => p == null ? void 0 : p(r.key),
650
+ style: { marginRight: 8, background: "transparent", border: "none", transform: v ? "rotate(180deg)" : "rotate(0deg)", transition: "transform 150ms ease" },
651
+ title: v ? "Свернуть" : "Развернуть",
652
+ children: g ? g(v, l, r.depth) : /* @__PURE__ */ n("svg", { width: "12", height: "8", viewBox: "0 0 12 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ n("path", { d: "M4.99264 6.91705C5.28553 7.20994 5.76041 7.20994 6.0533 6.91705L10.8263 2.14408C11.1192 1.85118 11.1192 1.37631 10.8263 1.08342C10.5334 0.790524 10.0585 0.790524 9.76561 1.08342L6.27297 4.57606L5.5 5.34903L4.77297 4.57606L1.28033 1.08342C0.987437 0.790524 0.512563 0.790524 0.21967 1.08342C-0.0732234 1.37631 -0.0732234 1.85118 0.21967 2.14408L4.99264 6.91705Z", fill: "#8C8C8C" }) })
653
+ }
654
+ ),
655
+ y ? s == null ? void 0 : s.renderer(l[e.dataIndex], l, t, e.dataIndex) : /* @__PURE__ */ M(Y, { children: [
656
+ e.units && Et(((S = l[e.key]) == null ? void 0 : S.toString()) || "", e.units),
657
+ !e.units && l[e.key]
658
+ ] })
659
+ ]
1770
660
  }
1771
- r = Math.max(...o.filter((c) => c !== null));
661
+ )
662
+ },
663
+ e.key
664
+ );
665
+ }, zt = (e, t, r, l) => {
666
+ var d, u;
667
+ let s = 0;
668
+ if (!e.fixedSide || e.fixedSide === "left")
669
+ for (let h = 0; h < l; h++) {
670
+ const i = t[h];
671
+ if (i.fixed && !i.hidden) {
672
+ const m = (d = r == null ? void 0 : r[i.key]) == null ? void 0 : d.width;
673
+ s += m ?? 0;
1772
674
  }
1773
- return Math.max(
1774
- r - this.options.scrollMargin + this.options.paddingEnd,
1775
- 0
1776
- );
1777
- }, this._scrollToOffset = (t, {
1778
- adjustments: n,
1779
- behavior: r
1780
- }) => {
1781
- this.options.scrollToFn(t, { behavior: r, adjustments: n }, this);
1782
- }, this.measure = () => {
1783
- this.itemSizeCache = /* @__PURE__ */ new Map(), this.notify(!1);
1784
- }, this.setOptions(s);
1785
- }
1786
- }
1787
- const Xe = (e, s, t, n) => {
1788
- for (; e <= s; ) {
1789
- const r = (e + s) / 2 | 0, o = t(r);
1790
- if (o < n)
1791
- e = r + 1;
1792
- else if (o > n)
1793
- s = r - 1;
1794
- else
1795
- return r;
1796
- }
1797
- return e > 0 ? e - 1 : 0;
1798
- };
1799
- function Nt({
1800
- measurements: e,
1801
- outerSize: s,
1802
- scrollOffset: t,
1803
- lanes: n
1804
- }) {
1805
- const r = e.length - 1, o = (f) => e[f].start;
1806
- if (e.length <= n)
1807
- return {
1808
- startIndex: 0,
1809
- endIndex: r
1810
- };
1811
- let a = Xe(
1812
- 0,
1813
- r,
1814
- o,
1815
- t
1816
- ), c = a;
1817
- if (n === 1)
1818
- for (; c < r && e[c].end < t + s; )
1819
- c++;
1820
- else if (n > 1) {
1821
- const f = Array(n).fill(0);
1822
- for (; c < r && f.some((v) => v < t + s); ) {
1823
- const v = e[c];
1824
- f[v.lane] = v.end, c++;
1825
- }
1826
- const E = Array(n).fill(t + s);
1827
- for (; a >= 0 && E.some((v) => v >= t); ) {
1828
- const v = e[a];
1829
- E[v.lane] = v.start, a--;
1830
675
  }
1831
- a = Math.max(0, a - a % n), c = Math.min(r, c + (n - 1 - c % n));
1832
- }
1833
- return { startIndex: a, endIndex: c };
1834
- }
1835
- const Ve = typeof document < "u" ? Te.useLayoutEffect : Te.useEffect;
1836
- function Dt(e) {
1837
- const s = Te.useReducer(() => ({}), {})[1], t = {
1838
- ...e,
1839
- onChange: (r, o) => {
1840
- var a;
1841
- o ? ut(s) : s(), (a = e.onChange) == null || a.call(e, r, o);
676
+ if (e.fixedSide === "right")
677
+ for (let h = l + 1; h < t.length; h++) {
678
+ const i = t[h];
679
+ if (i.fixed && i.fixedSide === "right" && !i.hidden) {
680
+ const m = (u = r == null ? void 0 : r[i.key]) == null ? void 0 : u.width;
681
+ s += m ?? 0;
682
+ }
1842
683
  }
1843
- }, [n] = Te.useState(
1844
- () => new Ft(t)
1845
- );
1846
- return n.setOptions(t), Ve(() => n._didMount(), []), Ve(() => n._willUpdate()), n;
1847
- }
1848
- function It(e) {
1849
- return Dt({
1850
- observeElementRect: jt,
1851
- observeElementOffset: Tt,
1852
- scrollToFn: $t,
1853
- ...e
1854
- });
1855
- }
1856
- const Lt = (e) => {
1857
- var s;
1858
- return typeof window < "u" && ((s = window.CSS) != null && s.escape) ? window.CSS.escape(e) : e.replace(/([#.;?\[\]\s])/g, "\\$1");
1859
- }, Rt = (e) => {
1860
- if (typeof document > "u") return null;
1861
- const s = `th[data-column-key="${Lt(e)}"]`, t = document.querySelector(s);
1862
- return t ? t.getBoundingClientRect().width : null;
1863
- }, At = typeof navigator < "u" && navigator.userAgent.toLowerCase().includes("firefox");
1864
- function Mt({
1865
- draggableRows: e = !1,
1866
- dataSource: s,
684
+ return s;
685
+ };
686
+ function Ot({
687
+ dataSource: e,
1867
688
  config: t,
1868
- rowKey: n,
1869
- loading: r = !1,
1870
- onRowReorder: o,
1871
- preset: a,
1872
- customCellRender: c,
1873
- treeMode: f,
1874
- expandedRowKeys: E,
1875
- defaultExpandedRowKeys: v,
1876
- onExpandedRowsChange: $,
1877
- indentSize: X,
1878
- expandIcon: L,
1879
- bodyClassName: W,
1880
- bodyStyle: M,
1881
- bodyRowClassName: U,
1882
- bodyRowStyle: G,
1883
- bodyCellClassName: w,
1884
- bodyCellStyle: B,
1885
- bodyCellWrapperClassName: R,
1886
- bodyCellWrapperStyle: _,
1887
- noDataRender: ee,
1888
- scrollContainerRef: y,
1889
- recalculateRowHeight: m,
1890
- virtualization: h
689
+ rowKey: r,
690
+ loading: l = !1,
691
+ preset: s,
692
+ customCellRender: d,
693
+ expandedRowKeys: u,
694
+ defaultExpandedRowKeys: h,
695
+ onExpandedRowsChange: i,
696
+ indentSize: m,
697
+ expandIcon: C,
698
+ bodyClassName: E,
699
+ bodyStyle: z,
700
+ bodyRowClassName: O,
701
+ bodyRowStyle: B,
702
+ bodyCellClassName: p,
703
+ bodyCellStyle: g,
704
+ bodyCellWrapperClassName: W,
705
+ bodyCellWrapperStyle: a,
706
+ noDataRender: o,
707
+ scrollContainerRef: f,
708
+ treeMode: b,
709
+ scrollPosition: c
1891
710
  }) {
1892
- var fe;
1893
- const [k, x] = ue(null), [p, I] = ue(null), [Q, K] = ue(() => v && v.length > 0 ? new Set(v) : /* @__PURE__ */ new Set()), V = ke.useMemo(() => E ? new Set(E) : Q, [E, Q]), z = ne((u) => {
1894
- E || K(new Set(u)), $ == null || $(u);
1895
- }, [E, $]), A = ne((u) => n ? n(u) : JSON.stringify(u), [n]), te = ke.useMemo(() => {
1896
- if (!f) return [];
1897
- const u = [], j = (Y, C, H) => {
1898
- Y.forEach((ae, ie) => {
1899
- const pe = A(ae), he = ae == null ? void 0 : ae.children, me = he && he.length > 0;
1900
- u.push({
1901
- record: ae,
1902
- key: pe,
1903
- type: C === 0 ? "parent" : "child",
1904
- parentKey: H,
1905
- depth: C,
1906
- indexWithinGroup: ie,
1907
- groupSize: Y.length
1908
- }), me && V.has(pe) && j(he, C + 1, pe);
711
+ var et;
712
+ const y = pt(st), { colsWidthsState: w, setColsWidthsState: N } = y, [_, L] = X(() => h && h.length > 0 ? new Set(h) : /* @__PURE__ */ new Set()), v = dt.useMemo(() => u ? new Set(u) : _, [u, _]), k = Q((x) => {
713
+ u || L(new Set(x)), i == null || i(x);
714
+ }, [u, i]), $ = Q((x) => r ? r(x) : JSON.stringify(x), [r]), S = dt.useMemo(() => {
715
+ if (!b) return [];
716
+ const x = [], T = (V, A, P) => {
717
+ V.forEach((F, j) => {
718
+ const q = $(F), K = F == null ? void 0 : F.children, nt = K && K.length > 0;
719
+ x.push({
720
+ record: F,
721
+ key: q,
722
+ type: A === 0 ? "parent" : "child",
723
+ parentKey: P,
724
+ depth: A,
725
+ indexWithinGroup: j,
726
+ groupSize: V.length
727
+ }), nt && v.has(q) && T(K, A + 1, q);
1909
728
  });
1910
729
  };
1911
- return j(s, 0), u;
1912
- }, [f, s, A, V]), O = ke.useMemo(() => {
1913
- const u = /* @__PURE__ */ new Map();
1914
- return te.forEach((j) => u.set(j.key, j)), u;
1915
- }, [te]);
1916
- be(() => {
1917
- At && m && (() => {
1918
- const j = document.querySelectorAll(".radar-table__body-row");
1919
- document.querySelectorAll(".radar-table__header-row").forEach((C) => {
1920
- const H = C.querySelectorAll(".radar-table__header-cell-wrapper");
1921
- let ae = 0;
1922
- H.forEach((ie) => {
1923
- ie.style.height = "auto", ae = Math.max(ae, ie.offsetHeight);
1924
- }), H.forEach((ie) => {
1925
- ie.style.height = ae + "px";
1926
- });
1927
- }), j.forEach((C) => {
1928
- const H = C.querySelectorAll(".radar-table__body-cell-wrapper");
1929
- let ae = 0;
1930
- H.forEach((ie) => {
1931
- ie.style.height = "auto", ae = Math.max(ae, ie.offsetHeight);
1932
- }), H.forEach((ie) => {
1933
- ie.style.height = ae + "px";
1934
- });
1935
- });
1936
- })();
1937
- }, [s, t]);
1938
- const d = ((u) => {
1939
- const j = [], Y = (C) => {
1940
- C.forEach((H) => {
1941
- H.children && H.children.length > 0 ? Y(H.children) : j.push(H);
730
+ return T(e, 0), x;
731
+ }, [b, e, $, v]), I = ((x) => {
732
+ const T = [], V = (A) => {
733
+ A.forEach((P) => {
734
+ P.children && P.children.length > 0 ? V(P.children) : T.push(P);
1942
735
  });
1943
736
  };
1944
- return Y(u), j;
1945
- })(t), S = (u) => {
1946
- if (u.groupColor)
1947
- return u.groupColor;
1948
- const j = (C, H) => {
1949
- for (const ae of C)
1950
- if (ae.children) {
1951
- if (ae.children.some((pe) => pe.key === H))
1952
- return ae;
1953
- const ie = j(ae.children, H);
1954
- if (ie) return ie;
737
+ return V(x), T;
738
+ })(t), Z = (x) => {
739
+ if (x.groupColor)
740
+ return x.groupColor;
741
+ const T = (A, P) => {
742
+ for (const F of A)
743
+ if (F.children) {
744
+ if (F.children.some((q) => q.key === P))
745
+ return F;
746
+ const j = T(F.children, P);
747
+ if (j) return j;
1955
748
  }
1956
749
  return null;
1957
- }, Y = j(t, u.key);
1958
- return Y == null ? void 0 : Y.groupColor;
1959
- }, b = ne((u, j) => {
1960
- if (!j) {
1961
- u.preventDefault();
1962
- return;
1963
- }
1964
- x(j), u.dataTransfer.effectAllowed = "move", u.dataTransfer.setData("text/plain", j), document.body.style.cursor = "grabbing";
1965
- const Y = s.find((C) => (n ? n(C) : JSON.stringify(C)) === j);
1966
- if (Y) {
1967
- const C = document.createElement("div");
1968
- C.style.cssText = `
1969
- background: white;
1970
- border-radius: 6px;
1971
- padding: 8px 12px;
1972
- box-shadow: 0 6px 16px rgba(0,0,0,0.25);
1973
- font-size: 14px;
1974
- color: #333;
1975
- white-space: nowrap;
1976
- pointer-events: none;
1977
- transform: rotate(3deg) scale(0.95);
1978
- max-width: 200px;
1979
- overflow: hidden;
1980
- text-overflow: ellipsis;
1981
- `;
1982
- const H = d[0];
1983
- if (H) {
1984
- const ie = Y[H.key];
1985
- C.textContent = (ie == null ? void 0 : ie.toString()) || "Строка";
1986
- } else
1987
- C.textContent = "Строка";
1988
- document.body.appendChild(C), C.style.position = "absolute", C.style.top = "-1000px", C.style.left = "-1000px", u.dataTransfer.setDragImage(C, 10, 10);
1989
- const ae = setTimeout(() => {
1990
- document.body.contains(C) && document.body.removeChild(C);
1991
- }, 0);
1992
- return () => clearTimeout(ae);
1993
- }
1994
- }, []), F = ne((u) => {
1995
- u.preventDefault(), u.dataTransfer.dropEffect = "move";
1996
- }, []), N = ne((u, j) => {
1997
- if (u.preventDefault(), !k) return;
1998
- if (!f) {
1999
- k !== j && I(j);
2000
- return;
2001
- }
2002
- const Y = O.get(k), C = O.get(j);
2003
- if (!Y || !C) return;
2004
- const H = Y.depth === C.depth && Y.parentKey === C.parentKey;
2005
- I(H && k !== j ? j : null);
2006
- }, [k, f, O]), g = ne((u) => {
2007
- u.preventDefault(), I(null);
2008
- }, []), T = ne(() => {
2009
- x(null), I(null), document.body.style.cursor = "";
2010
- }, []), D = ne((u, j) => {
2011
- if (u.preventDefault(), !k || k === j)
2012
- return;
2013
- if (!f) {
2014
- const ie = s.findIndex((ye) => (n ? n(ye) : JSON.stringify(ye)) === k), pe = s.findIndex((ye) => (n ? n(ye) : JSON.stringify(ye)) === j);
2015
- if (ie === -1 || pe === -1)
2016
- return;
2017
- const he = [...s], [me] = he.splice(ie, 1);
2018
- he.splice(pe, 0, me), o == null || o(he), x(null), I(null), document.body.style.cursor = "";
2019
- return;
2020
- }
2021
- const Y = O.get(k), C = O.get(j);
2022
- if (!Y || !C || Y.depth !== C.depth || Y.parentKey !== C.parentKey)
2023
- return;
2024
- const H = (ie, pe) => {
2025
- if (pe === Y.parentKey) {
2026
- const he = ie.findIndex(
2027
- (we) => A(we) === Y.key
2028
- ), me = ie.findIndex(
2029
- (we) => A(we) === C.key
2030
- );
2031
- if (he === -1 || me === -1) return ie;
2032
- const ye = [...ie], [xe] = ye.splice(he, 1);
2033
- return ye.splice(me, 0, xe), ye;
2034
- }
2035
- return ie.map((he) => {
2036
- const me = he == null ? void 0 : he.children;
2037
- return me && me.length > 0 ? {
2038
- ...he,
2039
- children: H(me, A(he))
2040
- } : he;
2041
- });
2042
- }, ae = H(s);
2043
- o == null || o(ae), x(null), I(null), document.body.style.cursor = "";
2044
- }, [k, s, A, o, f, O]);
2045
- if (s.length === 0) {
2046
- let u;
2047
- return y && (u = ((fe = y.current) == null ? void 0 : fe.clientWidth) + "px"), /* @__PURE__ */ l.jsx("tbody", { className: `radar-table__body ${a ? a + "__body" : ""} ${W}`, style: M, children: /* @__PURE__ */ l.jsx(
750
+ }, V = T(t, x.key);
751
+ return V == null ? void 0 : V.groupColor;
752
+ }, J = b ? S : e.map((x) => ({
753
+ record: x,
754
+ key: r ? r(x) : JSON.stringify(x),
755
+ type: "parent",
756
+ depth: 0,
757
+ indexWithinGroup: 0,
758
+ groupSize: e.length
759
+ })), G = Q((x) => {
760
+ const T = new Set(v);
761
+ T.has(x) ? T.delete(x) : T.add(x), k(Array.from(T));
762
+ }, [v, k]);
763
+ if (!e || (e == null ? void 0 : e.length) === 0) {
764
+ let x;
765
+ return f && (x = ((et = f.current) == null ? void 0 : et.clientWidth) + "px"), /* @__PURE__ */ n("tbody", { className: `radar-table__body ${s ? s + "__body" : ""} ${E}`, style: z, children: /* @__PURE__ */ n(
2048
766
  "tr",
2049
767
  {
2050
- className: `radar-table__body-row ${a ? a + "__body-row" : ""} ${U}`,
2051
- style: G,
2052
- children: /* @__PURE__ */ l.jsxs(
768
+ className: `radar-table__body-row ${s ? s + "__body-row" : ""} ${O}`,
769
+ style: B,
770
+ children: /* @__PURE__ */ M(
2053
771
  "td",
2054
772
  {
2055
- className: `radar-table__body-cell ${a ? a + "__body-cell" : ""} ${w}`,
2056
- colSpan: d.length,
773
+ className: `radar-table__body-cell ${s ? s + "__body-cell" : ""} ${p}`,
774
+ colSpan: (I == null ? void 0 : I.length) ?? 1,
2057
775
  style: {
2058
- ...B
776
+ ...g
2059
777
  },
2060
778
  children: [
2061
- ee && ee(),
2062
- !ee && /* @__PURE__ */ l.jsx("div", { className: `${u ? "radar-table__body-noData_width" : "radar-table__body-noData"}`, style: { width: u || "" }, children: "Нет данных" })
779
+ o && o(),
780
+ !o && /* @__PURE__ */ n("div", { className: `${x ? "radar-table__body-noData_width" : "radar-table__body-noData"}`, style: { width: x || "" }, children: "Нет данных" })
2063
781
  ]
2064
782
  }
2065
783
  )
2066
784
  }
2067
785
  ) });
2068
786
  }
2069
- const Z = f ? te : s.map((u) => ({
2070
- record: u,
2071
- key: n ? n(u) : JSON.stringify(u),
2072
- type: "parent",
2073
- depth: 0,
2074
- indexWithinGroup: 0,
2075
- groupSize: s.length
2076
- })), re = ne((u) => {
2077
- const j = new Set(V);
2078
- j.has(u) ? j.delete(u) : j.add(u), z(Array.from(j));
2079
- }, [V, z]);
2080
- function oe({ column: u, index: j, row: Y, item: C }) {
2081
- var Ne, De;
2082
- const H = ge(null), [ae, ie] = ue(0), pe = u.fixed && !u.width ? 200 : u.width, he = u.fixed && !u.minWidth ? 200 : u.minWidth;
2083
- let me = !1;
2084
- c && c.idx.includes(u.dataIndex) && (me = !0), c && c.idx.length === 0 && (me = !0), $e(() => {
2085
- if (!u.fixed) {
2086
- ie(0);
2087
- return;
2088
- }
2089
- let Ie = u.fixedLeft || 0;
2090
- if (j !== 0) {
2091
- for (let ve = 0; ve < j; ve++)
2092
- if (d[ve].fixed && !d[ve].hidden) {
2093
- const Ze = d[ve].width || d[ve].minWidth || 200, Ue = Rt(d[ve].key);
2094
- Ie += Math.floor(Ue ?? Ze) - 0.05;
2095
- }
2096
- }
2097
- ie(Ie);
2098
- }, [u.fixed, u.fixedLeft, u.width, j]);
2099
- const ye = S(u), xe = j === 0, we = f && xe && Y.depth > 0 ? Y.depth * (X || 16) : void 0, Oe = !!(f && (C != null && C.children) && C.children.length > 0), Se = !!(f && V.has(Y.key));
2100
- return u.hidden ? null : /* @__PURE__ */ l.jsx(
2101
- "td",
787
+ return /* @__PURE__ */ n("tbody", { className: `radar-table__body ${s ? s + "__body" : ""} ${E}`, style: z, children: J.map((x) => {
788
+ const T = x.record, V = x.key;
789
+ return /* @__PURE__ */ n(
790
+ "tr",
2102
791
  {
2103
- ref: H,
2104
- "data-column-key": u.key,
2105
- className: `radar-table__body-cell ${a ? a + "__body-cell" : ""} ${w}`,
2106
- style: {
2107
- width: pe,
2108
- minWidth: he,
2109
- position: u.fixed ? "sticky" : "static",
2110
- left: ae,
2111
- borderRight: u.fixed && !((Ne = d[j + 1]) != null && Ne.fixed) ? "1px solid #E8E8E8" : "none",
2112
- cursor: xe && Oe ? "pointer" : "default",
2113
- ...B
2114
- },
2115
- onClick: xe && Oe ? () => re(Y.key) : void 0,
2116
- children: /* @__PURE__ */ l.jsxs(
2117
- "div",
2118
- {
2119
- className: `radar-table__body-cell-wrapper ${a ? a + "__body-cell-wrapper" : ""} ${R}`,
2120
- style: {
2121
- backgroundColor: ye || "white",
2122
- paddingLeft: we,
2123
- ..._
792
+ className: `radar-table__body-row ${s ? s + "__body-row" : ""} ${O} ${b ? x.type === "parent" ? "radar-table__body-row--parent" : "radar-table__body-row--child" : ""}`,
793
+ style: B,
794
+ children: I.map((A, P, F) => {
795
+ let j = 0;
796
+ return A.fixed && !A.hidden && w && (j = zt(A, F, w, P)), /* @__PURE__ */ n(
797
+ St,
798
+ {
799
+ column: A,
800
+ index: P,
801
+ row: x,
802
+ item: T,
803
+ customCellRender: d,
804
+ leafColumns: I,
805
+ getGroupColor: Z,
806
+ treeMode: b,
807
+ expandedSet: v,
808
+ indentSize: m,
809
+ preset: s,
810
+ bodyCellClassName: p,
811
+ bodyCellStyle: g,
812
+ bodyCellWrapperClassName: W,
813
+ bodyCellWrapperStyle: a,
814
+ toggleExpand: G,
815
+ expandIcon: C,
816
+ scrollPosition: c,
817
+ stickyIdent: j
2124
818
  },
2125
- children: [
2126
- xe && Oe && f && /* @__PURE__ */ l.jsx(
2127
- "button",
2128
- {
2129
- type: "button",
2130
- className: `radar-table__expander-btn ${Se ? "expanded" : ""}`,
2131
- "aria-expanded": Se,
2132
- onClick: () => re(Y.key),
2133
- style: { marginRight: 8, background: "transparent", border: "none", transform: Se ? "rotate(180deg)" : "rotate(0deg)", transition: "transform 150ms ease" },
2134
- title: Se ? "Свернуть" : "Развернуть",
2135
- children: L ? L(Se, C, Y.depth) : /* @__PURE__ */ l.jsx("svg", { width: "12", height: "8", viewBox: "0 0 12 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ l.jsx("path", { d: "M4.99264 6.91705C5.28553 7.20994 5.76041 7.20994 6.0533 6.91705L10.8263 2.14408C11.1192 1.85118 11.1192 1.37631 10.8263 1.08342C10.5334 0.790524 10.0585 0.790524 9.76561 1.08342L6.27297 4.57606L5.5 5.34903L4.77297 4.57606L1.28033 1.08342C0.987437 0.790524 0.512563 0.790524 0.21967 1.08342C-0.0732234 1.37631 -0.0732234 1.85118 0.21967 2.14408L4.99264 6.91705Z", fill: "#8C8C8C" }) })
2136
- }
2137
- ),
2138
- me ? c == null ? void 0 : c.renderer(C[u.dataIndex], C, j, u.dataIndex) : /* @__PURE__ */ l.jsxs(l.Fragment, { children: [
2139
- u.units && wt(((De = C[u.key]) == null ? void 0 : De.toString()) || "", u.units),
2140
- !u.units && C[u.key]
2141
- ] })
2142
- ]
2143
- }
2144
- )
819
+ A.key
820
+ );
821
+ })
2145
822
  },
2146
- u.key
823
+ V
2147
824
  );
2148
- }
2149
- if (!(h != null && h.enabled))
2150
- return /* @__PURE__ */ l.jsx("tbody", { className: `radar-table__body ${a ? a + "__body" : ""} ${W}`, style: M, children: Z.map((u) => {
2151
- const j = u.record, Y = u.key;
2152
- return /* @__PURE__ */ l.jsx(
2153
- "tr",
2154
- {
2155
- className: `radar-table__body-row ${a ? a + "__body-row" : ""} ${U} ${k === Y ? "dragging" : ""} ${p === Y ? "drag-over" : ""} ${f ? u.type === "parent" ? "radar-table__body-row--parent" : "radar-table__body-row--child" : ""}`,
2156
- style: G,
2157
- draggable: e,
2158
- onDragStart: (C) => b(C, Y),
2159
- onDragOver: F,
2160
- onDragEnter: (C) => N(C, Y),
2161
- onDragLeave: g,
2162
- onDrop: (C) => D(C, Y),
2163
- onDragEnd: T,
2164
- children: d.map((C, H) => /* @__PURE__ */ l.jsx(oe, { column: C, index: H, row: u, item: j }, C.key))
2165
- },
2166
- Y
2167
- );
2168
- }) });
2169
- const se = h.estimateSize ?? 48, q = h.overscan ?? 12, J = It({
2170
- count: Z.length,
2171
- getScrollElement: () => y == null ? void 0 : y.current,
2172
- estimateSize: () => se,
2173
- overscan: q,
2174
- measureElement: (u) => u.getBoundingClientRect().height
2175
- });
2176
- $e(() => {
2177
- if (!(h != null && h.enabled) || !(y != null && y.current)) return;
2178
- J.measure();
2179
- const u = new ResizeObserver(() => {
2180
- J.measure();
2181
- }), j = y.current;
2182
- return u.observe(j), () => {
2183
- u.disconnect();
2184
- };
2185
- }, [h == null ? void 0 : h.enabled, y]), be(() => {
2186
- if (!(h != null && h.enabled)) return;
2187
- const u = setTimeout(() => {
2188
- J.measure();
2189
- }, 0);
2190
- return () => clearTimeout(u);
2191
- }, [Z.length, h == null ? void 0 : h.enabled]);
2192
- const P = J.getVirtualItems(), de = J.getTotalSize(), ce = P.length ? P[0].start : 0, le = P.length ? de - P[P.length - 1].end : 0;
2193
- return /* @__PURE__ */ l.jsxs("tbody", { className: `radar-table__body ${a ? a + "__body" : ""} ${W}`, style: M, children: [
2194
- ce > 0 && /* @__PURE__ */ l.jsx("tr", { style: { height: ce }, children: /* @__PURE__ */ l.jsx("td", { colSpan: d.length }) }),
2195
- P.map((u) => {
2196
- const j = Z[u.index];
2197
- if (!j) return null;
2198
- const Y = j.record, C = j.key;
2199
- return /* @__PURE__ */ l.jsx(
2200
- "tr",
2201
- {
2202
- "data-index": u.index,
2203
- ref: (H) => {
2204
- H && J.measureElement(H);
2205
- },
2206
- className: `radar-table__body-row ${a ? a + "__body-row" : ""} ${U} ${k === C ? "dragging" : ""} ${p === C ? "drag-over" : ""} ${f ? j.type === "parent" ? "radar-table__body-row--parent" : "radar-table__body-row--child" : ""}`,
2207
- style: G,
2208
- draggable: e,
2209
- onDragStart: (H) => b(H, C),
2210
- onDragOver: F,
2211
- onDragEnter: (H) => N(H, C),
2212
- onDragLeave: g,
2213
- onDrop: (H) => D(H, C),
2214
- onDragEnd: T,
2215
- children: d.map((H, ae) => /* @__PURE__ */ l.jsx(oe, { column: H, index: ae, row: j, item: Y }, H.key))
2216
- },
2217
- C
2218
- );
2219
- }),
2220
- le > 0 && /* @__PURE__ */ l.jsx("tr", { style: { height: le }, children: /* @__PURE__ */ l.jsx("td", { colSpan: d.length }) })
2221
- ] });
825
+ }) });
2222
826
  }
2223
- const qe = ({ config: e }) => {
2224
- const [{ current: s, pageSize: t, total: n, onChange: r, showQuickJumper: o, buttonsCount: a = 4, hideOnSinglePage: c = !1 }, f] = ue(e);
2225
- be(() => {
2226
- f(e);
827
+ const Bt = ({ config: e }) => {
828
+ const [{ current: t, pageSize: r, total: l, onChange: s, showQuickJumper: d, buttonsCount: u = 4, hideOnSinglePage: h = !1 }, i] = X(e);
829
+ R(() => {
830
+ i(e);
2227
831
  }, [e]);
2228
- const E = Math.ceil(s / a), v = (E - 1) * a + 1, $ = E * a, X = (w) => {
2229
- const B = ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "Tab", "Enter"];
2230
- !/^[0-9]$/.test(w.key) && !B.includes(w.key) && w.preventDefault();
2231
- }, L = (w) => {
2232
- if (w.key === "Enter") {
2233
- const B = parseInt(w.currentTarget.value);
2234
- B > 0 && B <= n && (f({ ...e, current: B }), r == null || r(B, t), w.currentTarget.value = "");
832
+ const m = Math.ceil(t / u), C = (m - 1) * u + 1, E = m * u, z = (a) => {
833
+ const o = ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "Tab", "Enter"];
834
+ !/^[0-9]$/.test(a.key) && !o.includes(a.key) && a.preventDefault();
835
+ }, O = (a) => {
836
+ if (a.key === "Enter") {
837
+ const o = parseInt(a.currentTarget.value);
838
+ o > 0 && o <= l && (i({ ...e, current: o }), s == null || s(o, r), a.currentTarget.value = "");
2235
839
  }
2236
- }, W = (w) => {
2237
- const R = w.target.value.replace(/[^0-9]/g, "");
2238
- w.target.value = R;
2239
- }, M = (w) => {
2240
- w.preventDefault();
2241
- const R = w.clipboardData.getData("text").replace(/[^0-9]/g, ""), _ = w.target, ee = _.selectionStart || 0, y = _.selectionEnd || 0, m = _.value.substring(0, ee) + R + _.value.substring(y);
2242
- _.value = m, _.setSelectionRange(ee + R.length, ee + R.length);
2243
- }, U = (w) => {
2244
- const B = w.currentTarget.id;
2245
- B === "pagination_left_button" && s > 1 && (f({ ...e, current: s - 1 }), r == null || r(s - 1, t)), B === "pagination_right_button" && s < n && (f({ ...e, current: s + 1 }), r == null || r(s + 1, t));
2246
- }, G = (w) => {
2247
- f({ ...e, current: w }), r == null || r(w, t);
840
+ }, B = (a) => {
841
+ const f = a.target.value.replace(/[^0-9]/g, "");
842
+ a.target.value = f;
843
+ }, p = (a) => {
844
+ a.preventDefault();
845
+ const f = a.clipboardData.getData("text").replace(/[^0-9]/g, ""), b = a.target, c = b.selectionStart || 0, y = b.selectionEnd || 0, w = b.value.substring(0, c) + f + b.value.substring(y);
846
+ b.value = w, b.setSelectionRange(c + f.length, c + f.length);
847
+ }, g = (a) => {
848
+ const o = a.currentTarget.id;
849
+ o === "pagination_left_button" && t > 1 && (i({ ...e, current: t - 1 }), s == null || s(t - 1, r)), o === "pagination_right_button" && t < l && (i({ ...e, current: t + 1 }), s == null || s(t + 1, r));
850
+ }, W = (a) => {
851
+ i({ ...e, current: a }), s == null || s(a, r);
2248
852
  };
2249
- return c && n <= 1 ? null : /* @__PURE__ */ l.jsxs("div", { className: "radar-table__pagination", children: [
2250
- /* @__PURE__ */ l.jsxs(
853
+ return h && l <= 1 ? null : /* @__PURE__ */ M("div", { className: "radar-table__pagination", children: [
854
+ /* @__PURE__ */ M(
2251
855
  "div",
2252
856
  {
2253
857
  className: "radar-table__pagination-main",
2254
858
  style: {
2255
- gridTemplateColumns: `repeat(${a + 2}, 32px)`
859
+ gridTemplateColumns: `repeat(${u + 2}, 32px)`
2256
860
  },
2257
861
  children: [
2258
- /* @__PURE__ */ l.jsx("button", { className: "radar-table__pagination-button radar-table__pagination-button_control", id: "pagination_left_button", onClick: U, title: "Назад", children: /* @__PURE__ */ l.jsx("svg", { width: "6", height: "10", viewBox: "0 0 6 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ l.jsx("path", { d: "M5 0.544067L1 4.54407L5 8.54407", stroke: "#8C8C8C", strokeLinecap: "round" }) }) }),
2259
- Array.from({ length: n }, (w, B) => B + 1).map((w) => {
2260
- const B = s === w;
2261
- if (w >= v && w <= $)
2262
- return B ? /* @__PURE__ */ l.jsx("button", { className: "radar-table__pagination-button radar-table__pagination-button_active", children: w }, w) : /* @__PURE__ */ l.jsx("button", { className: "radar-table__pagination-button", onClick: () => G(w), children: w }, w);
862
+ /* @__PURE__ */ n("button", { className: "radar-table__pagination-button radar-table__pagination-button_control", id: "pagination_left_button", onClick: g, title: "Назад", children: /* @__PURE__ */ n("svg", { width: "6", height: "10", viewBox: "0 0 6 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ n("path", { d: "M5 0.544067L1 4.54407L5 8.54407", stroke: "#8C8C8C", strokeLinecap: "round" }) }) }),
863
+ Array.from({ length: l }, (a, o) => o + 1).map((a) => {
864
+ const o = t === a;
865
+ if (a >= C && a <= E)
866
+ return o ? /* @__PURE__ */ n("button", { className: "radar-table__pagination-button radar-table__pagination-button_active", children: a }, a) : /* @__PURE__ */ n("button", { className: "radar-table__pagination-button", onClick: () => W(a), children: a }, a);
2263
867
  }),
2264
- /* @__PURE__ */ l.jsx("button", { className: "radar-table__pagination-button radar-table__pagination-button_control", id: "pagination_right_button", onClick: U, title: "Вперёд", children: /* @__PURE__ */ l.jsx("svg", { width: "6", height: "10", viewBox: "0 0 6 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ l.jsx("path", { d: "M1 8.54407L5 4.54407L1 0.544067", stroke: "#8C8C8C", strokeLinecap: "round" }) }) })
868
+ /* @__PURE__ */ n("button", { className: "radar-table__pagination-button radar-table__pagination-button_control", id: "pagination_right_button", onClick: g, title: "Вперёд", children: /* @__PURE__ */ n("svg", { width: "6", height: "10", viewBox: "0 0 6 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ n("path", { d: "M1 8.54407L5 4.54407L1 0.544067", stroke: "#8C8C8C", strokeLinecap: "round" }) }) })
2265
869
  ]
2266
870
  }
2267
871
  ),
2268
- o && /* @__PURE__ */ l.jsxs("div", { className: "radar-table__pagination-quick-jumper", children: [
872
+ d && /* @__PURE__ */ M("div", { className: "radar-table__pagination-quick-jumper", children: [
2269
873
  "Перейти на ",
2270
- /* @__PURE__ */ l.jsx(
874
+ /* @__PURE__ */ n(
2271
875
  "input",
2272
876
  {
2273
877
  className: "radar-table__pagination-input",
2274
- onKeyDown: X,
2275
- onChange: W,
2276
- onPaste: M,
2277
- onKeyUp: (w) => L(w)
878
+ onKeyDown: z,
879
+ onChange: B,
880
+ onPaste: p,
881
+ onKeyUp: (a) => O(a)
2278
882
  }
2279
883
  ),
2280
884
  " стр. из ",
2281
- n
885
+ l
2282
886
  ] })
2283
887
  ] });
2284
888
  };
2285
- function Wt(e = !1) {
2286
- const [s, t] = ue({
2287
- totalFrames: 0,
2288
- avgFrameTime: 0,
2289
- minFrameTime: 1 / 0,
2290
- maxFrameTime: 0,
2291
- avgFps: 0,
2292
- lastFrameTime: 0,
2293
- lastFps: 0,
2294
- totalDuration: 0
2295
- }), n = ge([]), r = ge([]), o = ge(0), a = ge(!1), c = ne(() => {
2296
- e && (o.current = performance.now(), n.current = [], r.current = [], a.current = !0);
2297
- }, [e]), f = ne(($) => {
2298
- !e || !a.current || n.current.push($);
2299
- }, [e]), E = ne(() => {
2300
- if (!e || !a.current) return;
2301
- a.current = !1;
2302
- const $ = n.current, X = performance.now() - o.current, L = [];
2303
- let W = 0, M = 0;
2304
- if ($.length > 1) {
2305
- for (let R = 1; R < $.length; R++) {
2306
- const _ = $[R] - $[R - 1];
2307
- L.push(_);
2308
- }
2309
- W = L[L.length - 1], M = 1e3 / W;
2310
- const U = L.reduce((R, _) => R + _, 0) / L.length, G = 1e3 / U, w = Math.min(...L), B = Math.max(...L);
2311
- t({
2312
- totalFrames: $.length,
2313
- avgFrameTime: U,
2314
- minFrameTime: w,
2315
- maxFrameTime: B,
2316
- avgFps: G,
2317
- lastFrameTime: W,
2318
- lastFps: M,
2319
- totalDuration: X
2320
- });
2321
- }
2322
- }, [e]), v = ne(() => {
2323
- n.current = [], r.current = [], t({
2324
- totalFrames: 0,
2325
- avgFrameTime: 0,
2326
- minFrameTime: 1 / 0,
2327
- maxFrameTime: 0,
2328
- avgFps: 0,
2329
- lastFrameTime: 0,
2330
- lastFps: 0,
2331
- totalDuration: 0
2332
- });
2333
- }, []);
2334
- return {
2335
- metrics: s,
2336
- startResize: c,
2337
- trackFrame: f,
2338
- endResize: E,
2339
- reset: v
2340
- };
2341
- }
2342
- function Kt({
889
+ function Pt({
2343
890
  dataSource: e,
2344
- preset: s,
2345
- config: t,
2346
- rowKey: n,
2347
- loading: r = !1,
2348
- pagination: o,
2349
- stickyHeader: a = !1,
2350
- resizeable: c = !1,
2351
- draggableRows: f = !1,
2352
- draggableColumns: E = !1,
2353
- scrollContainerRef: v,
2354
- onResize: $,
2355
- onSort: X,
2356
- onRowReorder: L,
2357
- onColumnReorder: W,
2358
- customCellRender: M,
2359
- noDataRender: U,
2360
- sortIcon: G,
2361
- expandIcon: w,
2362
- recalculateRowHeight: B = !1,
891
+ preset: t,
892
+ config: r,
893
+ rowKey: l,
894
+ loading: s = !1,
895
+ pagination: d,
896
+ stickyHeader: u = !1,
897
+ resizeable: h = !1,
898
+ scrollContainerRef: i,
899
+ onResize: m,
900
+ onSort: C,
901
+ customCellRender: E,
902
+ noDataRender: z,
903
+ sortIcon: O,
904
+ expandIcon: B,
2363
905
  // sorting props
2364
- sorting: R,
2365
- defaultSorting: _,
2366
- // tree props
2367
- treeMode: ee,
2368
- expandedRowKeys: y,
2369
- defaultExpandedRowKeys: m,
2370
- onExpandedRowsChange: h,
2371
- indentSize: k,
2372
- className: x = "",
2373
- style: p,
2374
- headerClassName: I = "",
2375
- headerStyle: Q,
2376
- headerCellClassName: K = "",
2377
- headerCellStyle: V,
2378
- headerRowClassName: z = "",
2379
- headerRowStyle: A,
2380
- headerCellWrapperClassName: te = "",
2381
- headerCellWrapperStyle: O,
2382
- bodyClassName: i = "",
2383
- bodyStyle: d,
2384
- bodyRowClassName: S = "",
2385
- bodyRowStyle: b,
2386
- bodyCellClassName: F = "",
2387
- bodyCellStyle: N,
2388
- bodyCellWrapperClassName: g = "",
2389
- bodyCellWrapperStyle: T,
2390
- headerGroupRowClassName: D,
2391
- headerGroupRowStyle: Z,
2392
- headerGroupCellClassName: re,
2393
- headerGroupCellStyle: oe,
2394
- headerGroupCellWrapperClassName: se,
2395
- headerGroupCellWrapperStyle: q,
2396
- paginationContainerClassName: J = "",
2397
- paginationContainerStyle: P,
2398
- resizeThrottle: de = 0,
2399
- virtualization: ce,
2400
- benchmark: le,
2401
- resizeMode: fe = "instant"
906
+ sorting: p,
907
+ defaultSorting: g,
908
+ expandedRowKeys: W,
909
+ defaultExpandedRowKeys: a,
910
+ onExpandedRowsChange: o,
911
+ indentSize: f,
912
+ className: b = "",
913
+ style: c,
914
+ headerClassName: y = "",
915
+ headerStyle: w,
916
+ headerCellClassName: N = "",
917
+ headerCellStyle: _,
918
+ headerRowClassName: L = "",
919
+ headerRowStyle: v,
920
+ headerCellWrapperClassName: k = "",
921
+ headerCellWrapperStyle: $,
922
+ bodyClassName: S = "",
923
+ bodyStyle: D,
924
+ bodyRowClassName: I = "",
925
+ bodyRowStyle: Z,
926
+ bodyCellClassName: J = "",
927
+ bodyCellStyle: G,
928
+ bodyCellWrapperClassName: et = "",
929
+ bodyCellWrapperStyle: x,
930
+ headerGroupRowClassName: T,
931
+ headerGroupRowStyle: V,
932
+ headerGroupCellClassName: A,
933
+ headerGroupCellStyle: P,
934
+ headerGroupCellWrapperClassName: F,
935
+ headerGroupCellWrapperStyle: j,
936
+ paginationContainerClassName: q = "",
937
+ paginationContainerStyle: K,
938
+ resizeMode: nt = "instant",
939
+ columnStyles: xt,
940
+ treeMode: wt
2402
941
  }) {
2403
- const u = typeof le == "boolean" ? le : !1, { metrics: j, startResize: Y, trackFrame: C, endResize: H } = Wt(u);
2404
- return be(() => {
2405
- u && j.totalFrames > 0 && (console.group("📊 Resize Benchmark (Mouse Move)"), console.log("Total Frames:", j.totalFrames), console.log("Last Frame Time:", `${j.lastFrameTime.toFixed(2)}ms`), console.log("Last FPS:", j.lastFps.toFixed(1)), console.log("Avg Frame Time:", `${j.avgFrameTime.toFixed(2)}ms`), console.log("Avg FPS:", j.avgFps.toFixed(1)), console.log("Min Frame Time:", `${j.minFrameTime.toFixed(2)}ms`), console.log("Max Frame Time:", `${j.maxFrameTime.toFixed(2)}ms`), console.log("Total Duration:", `${j.totalDuration.toFixed(2)}ms`), console.groupEnd());
2406
- }, [j, u]), E ? /* @__PURE__ */ l.jsxs(l.Fragment, { children: [
2407
- /* @__PURE__ */ l.jsx(
2408
- yt,
2409
- {
2410
- fullConfig: t,
2411
- onColumnReorder: W,
2412
- scrollContainerRef: v,
2413
- children: /* @__PURE__ */ l.jsx(
2414
- He,
2415
- {
2416
- dataSource: e,
2417
- preset: s,
2418
- config: t,
2419
- rowKey: n,
2420
- loading: r,
2421
- pagination: o,
2422
- stickyHeader: a,
2423
- resizeable: c,
2424
- draggableRows: f,
2425
- draggableColumns: E,
2426
- scrollContainerRef: v,
2427
- onResize: $,
2428
- onSort: X,
2429
- onRowReorder: L,
2430
- onColumnReorder: W,
2431
- customCellRender: M,
2432
- sortIcon: G,
2433
- expandIcon: w,
2434
- treeMode: ee,
2435
- expandedRowKeys: y,
2436
- defaultExpandedRowKeys: m,
2437
- onExpandedRowsChange: h,
2438
- indentSize: k,
2439
- className: x,
2440
- style: p,
2441
- headerClassName: I,
2442
- headerStyle: Q,
2443
- headerCellClassName: K,
2444
- headerCellStyle: V,
2445
- headerRowClassName: z,
2446
- headerRowStyle: A,
2447
- headerCellWrapperClassName: te,
2448
- headerCellWrapperStyle: O,
2449
- bodyClassName: i,
2450
- bodyStyle: d,
2451
- bodyRowClassName: S,
2452
- bodyRowStyle: b,
2453
- bodyCellClassName: F,
2454
- bodyCellStyle: N,
2455
- bodyCellWrapperClassName: g,
2456
- bodyCellWrapperStyle: T,
2457
- headerGroupRowClassName: D,
2458
- headerGroupRowStyle: Z,
2459
- headerGroupCellClassName: re,
2460
- headerGroupCellStyle: oe,
2461
- headerGroupCellWrapperClassName: se,
2462
- headerGroupCellWrapperStyle: q,
2463
- paginationContainerClassName: J,
2464
- paginationContainerStyle: P,
2465
- noDataRender: U,
2466
- recalculateRowHeight: B,
2467
- sorting: R,
2468
- defaultSorting: _,
2469
- resizeThrottle: de,
2470
- virtualization: ce,
2471
- onResizeStart: Y,
2472
- onResizeFrame: C,
2473
- onResizeEnd: H,
2474
- resizeMode: fe
2475
- }
2476
- )
2477
- }
2478
- ),
2479
- /* @__PURE__ */ l.jsx("div", { className: `radar-table-pagination-container ${J}`, style: P, children: o && /* @__PURE__ */ l.jsx(qe, { config: o }) })
2480
- ] }) : /* @__PURE__ */ l.jsxs(l.Fragment, { children: [
2481
- /* @__PURE__ */ l.jsx(
2482
- He,
942
+ const [lt, at] = X(null);
943
+ return R(() => {
944
+ const ht = () => {
945
+ var ct, ut, ot;
946
+ const U = (ct = i == null ? void 0 : i.current) == null ? void 0 : ct.scrollLeft, rt = (ut = i == null ? void 0 : i.current) == null ? void 0 : ut.scrollWidth, it = (ot = i == null ? void 0 : i.current) == null ? void 0 : ot.clientWidth;
947
+ U && rt && it && rt > it && (U >= 0 && U <= 10 && at("left"), U === rt - it && at("right"), U > 10 && U !== rt - it && at("middle"));
948
+ };
949
+ return i != null && i.current && i.current.addEventListener("scroll", ht), () => {
950
+ i != null && i.current && i.current.removeEventListener("scroll", ht);
951
+ };
952
+ }, [i]), /* @__PURE__ */ M(Y, { children: [
953
+ /* @__PURE__ */ n(Ct, { children: /* @__PURE__ */ M(
954
+ "table",
2483
955
  {
2484
- dataSource: e,
2485
- preset: s,
2486
- config: t,
2487
- rowKey: n,
2488
- loading: r,
2489
- pagination: o,
2490
- stickyHeader: a,
2491
- resizeable: c,
2492
- draggableRows: f,
2493
- draggableColumns: E,
2494
- scrollContainerRef: v,
2495
- onResize: $,
2496
- onSort: X,
2497
- onRowReorder: L,
2498
- onColumnReorder: W,
2499
- customCellRender: M,
2500
- sortIcon: G,
2501
- expandIcon: w,
2502
- treeMode: ee,
2503
- expandedRowKeys: y,
2504
- defaultExpandedRowKeys: m,
2505
- onExpandedRowsChange: h,
2506
- indentSize: k,
2507
- className: x,
2508
- style: p,
2509
- headerClassName: I,
2510
- headerStyle: Q,
2511
- headerCellClassName: K,
2512
- headerCellStyle: V,
2513
- headerRowClassName: z,
2514
- headerRowStyle: A,
2515
- headerCellWrapperClassName: te,
2516
- headerCellWrapperStyle: O,
2517
- bodyClassName: i,
2518
- bodyStyle: d,
2519
- bodyRowClassName: S,
2520
- bodyRowStyle: b,
2521
- bodyCellClassName: F,
2522
- bodyCellStyle: N,
2523
- bodyCellWrapperClassName: g,
2524
- bodyCellWrapperStyle: T,
2525
- headerGroupRowClassName: D,
2526
- headerGroupRowStyle: Z,
2527
- headerGroupCellClassName: re,
2528
- headerGroupCellStyle: oe,
2529
- headerGroupCellWrapperClassName: se,
2530
- headerGroupCellWrapperStyle: q,
2531
- paginationContainerClassName: J,
2532
- paginationContainerStyle: P,
2533
- noDataRender: U,
2534
- recalculateRowHeight: B,
2535
- sorting: R,
2536
- defaultSorting: _,
2537
- resizeThrottle: de,
2538
- virtualization: ce,
2539
- onResizeStart: Y,
2540
- onResizeFrame: C,
2541
- onResizeEnd: H,
2542
- resizeMode: fe
956
+ className: `radar-table ${t || null} ${b}`,
957
+ style: {
958
+ tableLayout: h ? "fixed" : "auto",
959
+ ...c
960
+ },
961
+ children: [
962
+ /* @__PURE__ */ n(
963
+ Wt,
964
+ {
965
+ config: r,
966
+ onSort: C,
967
+ resizeable: h,
968
+ onResize: m,
969
+ sortIcon: O,
970
+ preset: t,
971
+ headerClassName: y,
972
+ headerStyle: w,
973
+ headerRowClassName: L,
974
+ headerRowStyle: v,
975
+ headerCellClassName: N,
976
+ headerCellStyle: _,
977
+ headerCellWrapperClassName: k,
978
+ headerCellWrapperStyle: $,
979
+ headerGroupRowClassName: T,
980
+ headerGroupRowStyle: V,
981
+ headerGroupCellClassName: A,
982
+ headerGroupCellStyle: P,
983
+ headerGroupCellWrapperClassName: F,
984
+ headerGroupCellWrapperStyle: j,
985
+ stickyHeader: u,
986
+ scrollContainerRef: i,
987
+ sorting: p,
988
+ defaultSorting: g,
989
+ resizeMode: nt,
990
+ columnStyles: xt,
991
+ scrollPosition: lt
992
+ }
993
+ ),
994
+ /* @__PURE__ */ n(
995
+ Ot,
996
+ {
997
+ dataSource: e,
998
+ config: r,
999
+ rowKey: l,
1000
+ loading: s,
1001
+ preset: t,
1002
+ customCellRender: E,
1003
+ expandIcon: B,
1004
+ expandedRowKeys: W,
1005
+ defaultExpandedRowKeys: a,
1006
+ onExpandedRowsChange: o,
1007
+ indentSize: f,
1008
+ bodyClassName: S,
1009
+ bodyStyle: D,
1010
+ bodyRowClassName: I,
1011
+ bodyRowStyle: Z,
1012
+ bodyCellClassName: J,
1013
+ bodyCellStyle: G,
1014
+ bodyCellWrapperClassName: et,
1015
+ bodyCellWrapperStyle: x,
1016
+ noDataRender: z,
1017
+ scrollContainerRef: i,
1018
+ treeMode: wt,
1019
+ scrollPosition: lt
1020
+ }
1021
+ )
1022
+ ]
2543
1023
  }
2544
- ),
2545
- /* @__PURE__ */ l.jsx("div", { className: `radar-table-pagination-container ${J}`, style: P, children: o && /* @__PURE__ */ l.jsx(qe, { config: o }) })
1024
+ ) }),
1025
+ d && /* @__PURE__ */ n("div", { className: `radar-table-pagination-container ${q}`, style: K, children: /* @__PURE__ */ n(Bt, { config: d }) })
2546
1026
  ] });
2547
1027
  }
2548
- function He(e) {
2549
- const {
2550
- dataSource: s,
2551
- preset: t,
2552
- config: n,
2553
- rowKey: r,
2554
- loading: o,
2555
- stickyHeader: a,
2556
- resizeable: c,
2557
- draggableRows: f,
2558
- draggableColumns: E,
2559
- scrollContainerRef: v,
2560
- onResize: $,
2561
- onResizeStart: X,
2562
- onResizeFrame: L,
2563
- onResizeEnd: W,
2564
- onSort: M,
2565
- onRowReorder: U,
2566
- onColumnReorder: G,
2567
- customCellRender: w,
2568
- sortIcon: B,
2569
- expandIcon: R,
2570
- treeMode: _,
2571
- expandedRowKeys: ee,
2572
- defaultExpandedRowKeys: y,
2573
- onExpandedRowsChange: m,
2574
- indentSize: h,
2575
- className: k,
2576
- style: x,
2577
- headerClassName: p,
2578
- headerStyle: I,
2579
- headerCellClassName: Q,
2580
- headerCellStyle: K,
2581
- headerRowClassName: V,
2582
- headerRowStyle: z,
2583
- headerCellWrapperClassName: A,
2584
- headerCellWrapperStyle: te,
2585
- bodyClassName: O,
2586
- bodyStyle: i,
2587
- bodyRowClassName: d,
2588
- bodyRowStyle: S,
2589
- bodyCellClassName: b,
2590
- bodyCellStyle: F,
2591
- bodyCellWrapperClassName: N,
2592
- bodyCellWrapperStyle: g,
2593
- headerGroupRowClassName: T,
2594
- headerGroupRowStyle: D,
2595
- headerGroupCellClassName: Z,
2596
- headerGroupCellStyle: re,
2597
- headerGroupCellWrapperClassName: oe,
2598
- headerGroupCellWrapperStyle: se,
2599
- noDataRender: q,
2600
- recalculateRowHeight: J,
2601
- sorting: P,
2602
- defaultSorting: de,
2603
- resizeThrottle: ce,
2604
- resizeMode: le
2605
- } = e;
2606
- return /* @__PURE__ */ l.jsxs(
2607
- "table",
2608
- {
2609
- className: `radar-table ${t || ""} ${k}`,
2610
- style: {
2611
- tableLayout: c ? "fixed" : "auto",
2612
- width: c ? "max-content" : "auto",
2613
- ...x
2614
- },
2615
- children: [
2616
- /* @__PURE__ */ l.jsx(
2617
- _t,
2618
- {
2619
- draggableColumns: E,
2620
- config: n,
2621
- onSort: M,
2622
- resizeable: c,
2623
- onResize: $,
2624
- onResizeStart: X,
2625
- onResizeFrame: L,
2626
- onResizeEnd: W,
2627
- sortIcon: B,
2628
- preset: t,
2629
- headerClassName: p,
2630
- headerStyle: I,
2631
- headerRowClassName: V,
2632
- headerRowStyle: z,
2633
- headerCellClassName: Q,
2634
- headerCellStyle: K,
2635
- headerCellWrapperClassName: A,
2636
- headerCellWrapperStyle: te,
2637
- headerGroupRowClassName: T,
2638
- headerGroupRowStyle: D,
2639
- headerGroupCellClassName: Z,
2640
- headerGroupCellStyle: re,
2641
- headerGroupCellWrapperClassName: oe,
2642
- headerGroupCellWrapperStyle: se,
2643
- stickyHeader: a,
2644
- scrollContainerRef: v,
2645
- onColumnReorder: G,
2646
- sorting: P,
2647
- defaultSorting: de,
2648
- resizeThrottle: ce,
2649
- resizeMode: le
2650
- }
2651
- ),
2652
- /* @__PURE__ */ l.jsx(
2653
- Mt,
2654
- {
2655
- draggableRows: f,
2656
- onRowReorder: U,
2657
- dataSource: s,
2658
- config: n,
2659
- rowKey: r,
2660
- loading: o,
2661
- preset: t,
2662
- customCellRender: w,
2663
- expandIcon: R,
2664
- treeMode: _,
2665
- expandedRowKeys: ee,
2666
- defaultExpandedRowKeys: y,
2667
- onExpandedRowsChange: m,
2668
- indentSize: h,
2669
- bodyClassName: O,
2670
- bodyStyle: i,
2671
- bodyRowClassName: d,
2672
- bodyRowStyle: S,
2673
- bodyCellClassName: b,
2674
- bodyCellStyle: F,
2675
- bodyCellWrapperClassName: N,
2676
- bodyCellWrapperStyle: g,
2677
- noDataRender: q,
2678
- scrollContainerRef: v,
2679
- recalculateRowHeight: J,
2680
- virtualization: e.virtualization
2681
- }
2682
- )
2683
- ]
2684
- }
2685
- );
2686
- }
2687
- const Ke = ({ children: e, tagType: s = "h1", ...t }) => {
2688
- if (s === "h1")
2689
- return /* @__PURE__ */ l.jsx(
1028
+ const bt = ({ children: e, tagType: t = "h1", ...r }) => {
1029
+ if (t === "h1")
1030
+ return /* @__PURE__ */ n(
2690
1031
  "h1",
2691
1032
  {
2692
1033
  className: "radar-title radar-title_h1",
2693
- ...t,
1034
+ ...r,
2694
1035
  children: e
2695
1036
  }
2696
1037
  );
2697
- if (s === "h2")
2698
- return /* @__PURE__ */ l.jsx(
1038
+ if (t === "h2")
1039
+ return /* @__PURE__ */ n(
2699
1040
  "h2",
2700
1041
  {
2701
1042
  className: "radar-title radar-title_h1",
2702
- ...t,
1043
+ ...r,
2703
1044
  children: e
2704
1045
  }
2705
1046
  );
2706
- if (s === "h3")
2707
- return /* @__PURE__ */ l.jsx(
1047
+ if (t === "h3")
1048
+ return /* @__PURE__ */ n(
2708
1049
  "h3",
2709
1050
  {
2710
1051
  className: "radar-title radar-title_h1",
2711
- ...t,
1052
+ ...r,
2712
1053
  children: e
2713
1054
  }
2714
1055
  );
2715
- if (s === "h4")
2716
- return /* @__PURE__ */ l.jsx(
1056
+ if (t === "h4")
1057
+ return /* @__PURE__ */ n(
2717
1058
  "h4",
2718
1059
  {
2719
1060
  className: "radar-title radar-title_h1",
2720
- ...t,
1061
+ ...r,
2721
1062
  children: e
2722
1063
  }
2723
1064
  );
2724
- if (s === "h5")
2725
- return /* @__PURE__ */ l.jsx(
1065
+ if (t === "h5")
1066
+ return /* @__PURE__ */ n(
2726
1067
  "h5",
2727
1068
  {
2728
1069
  className: "radar-title radar-title_h1",
2729
- ...t,
1070
+ ...r,
2730
1071
  children: e
2731
1072
  }
2732
1073
  );
2733
- if (s === "h6")
2734
- return /* @__PURE__ */ l.jsx(
1074
+ if (t === "h6")
1075
+ return /* @__PURE__ */ n(
2735
1076
  "h6",
2736
1077
  {
2737
1078
  className: "radar-title radar-title_h1",
2738
- ...t,
1079
+ ...r,
2739
1080
  children: e
2740
1081
  }
2741
1082
  );
2742
- }, zt = ({ children: e, tagType: s = "h2", ...t }) => {
2743
- if (s === "h1")
2744
- return /* @__PURE__ */ l.jsx(
1083
+ }, It = ({ children: e, tagType: t = "h2", ...r }) => {
1084
+ if (t === "h1")
1085
+ return /* @__PURE__ */ n(
2745
1086
  "h1",
2746
1087
  {
2747
1088
  className: "radar-title radar-title_h2",
2748
- ...t,
1089
+ ...r,
2749
1090
  children: e
2750
1091
  }
2751
1092
  );
2752
- if (s === "h2")
2753
- return /* @__PURE__ */ l.jsx(
1093
+ if (t === "h2")
1094
+ return /* @__PURE__ */ n(
2754
1095
  "h2",
2755
1096
  {
2756
1097
  className: "radar-title radar-title_h2",
2757
- ...t,
1098
+ ...r,
2758
1099
  children: e
2759
1100
  }
2760
1101
  );
2761
- if (s === "h3")
2762
- return /* @__PURE__ */ l.jsx(
1102
+ if (t === "h3")
1103
+ return /* @__PURE__ */ n(
2763
1104
  "h3",
2764
1105
  {
2765
1106
  className: "radar-title radar-title_h2",
2766
- ...t,
1107
+ ...r,
2767
1108
  children: e
2768
1109
  }
2769
1110
  );
2770
- if (s === "h4")
2771
- return /* @__PURE__ */ l.jsx(
1111
+ if (t === "h4")
1112
+ return /* @__PURE__ */ n(
2772
1113
  "h4",
2773
1114
  {
2774
1115
  className: "radar-title radar-title_h2",
2775
- ...t,
1116
+ ...r,
2776
1117
  children: e
2777
1118
  }
2778
1119
  );
2779
- if (s === "h5")
2780
- return /* @__PURE__ */ l.jsx(
1120
+ if (t === "h5")
1121
+ return /* @__PURE__ */ n(
2781
1122
  "h5",
2782
1123
  {
2783
1124
  className: "radar-title radar-title_h2",
2784
- ...t,
1125
+ ...r,
2785
1126
  children: e
2786
1127
  }
2787
1128
  );
2788
- if (s === "h6")
2789
- return /* @__PURE__ */ l.jsx(
1129
+ if (t === "h6")
1130
+ return /* @__PURE__ */ n(
2790
1131
  "h6",
2791
1132
  {
2792
1133
  className: "radar-title radar-title_h2",
2793
- ...t,
1134
+ ...r,
2794
1135
  children: e
2795
1136
  }
2796
1137
  );
2797
- }, Yt = Object.assign(Ke, { H1: Ke, H2: zt }), Ye = ({ children: e, fontStyle: s = "medium", ...t }) => /* @__PURE__ */ l.jsx("p", { className: `radar-text radar-text_m radar-text_${s}`, ...t, children: e }), Pt = ({ children: e, fontStyle: s = "medium", ...t }) => /* @__PURE__ */ l.jsx("p", { className: `radar-text radar-text_s radar-text_${s}`, ...t, children: e }), Jt = Object.assign(Ye, { M: Ye, S: Pt });
1138
+ }, Ft = Object.assign(bt, { H1: bt, H2: It }), _t = ({ children: e, fontStyle: t = "medium", ...r }) => /* @__PURE__ */ n("p", { className: `radar-text radar-text_m radar-text_${t}`, ...r, children: e }), Dt = ({ children: e, fontStyle: t = "medium", ...r }) => /* @__PURE__ */ n("p", { className: `radar-text radar-text_s radar-text_${t}`, ...r, children: e }), Vt = Object.assign(_t, { M: _t, S: Dt });
2798
1139
  export {
2799
- vt as HeaderCell,
2800
- qe as Pagination,
2801
- Jt as RadarText,
2802
- Yt as RadarTitle,
2803
- Kt as Table,
2804
- mt as Tooltip
1140
+ $t as HeaderCell,
1141
+ Bt as Pagination,
1142
+ Vt as RadarText,
1143
+ Ft as RadarTitle,
1144
+ Pt as Table,
1145
+ Nt as Tooltip
2805
1146
  };