@flowtomic/logic 0.1.3 → 0.1.4
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/hooks/useDashboardLayout/index.d.ts +3 -0
- package/dist/hooks/useDashboardLayout/index.d.ts.map +1 -0
- package/dist/hooks/useDashboardLayout/index.js +1 -0
- package/dist/hooks/useDashboardLayout/useDashboardLayout.d.ts +120 -0
- package/dist/hooks/useDashboardLayout/useDashboardLayout.d.ts.map +1 -0
- package/dist/hooks/useDashboardLayout/useDashboardLayout.js +175 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -19
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboardLayout/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,UAAU,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useDashboardLayout } from "./useDashboardLayout";
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useDashboardLayout - Headless UI Hook
|
|
3
|
+
*
|
|
4
|
+
* Fornece apenas: lógica, estado, processamento e API
|
|
5
|
+
* NÃO fornece: markup, styles ou implementações pré-construídas
|
|
6
|
+
*
|
|
7
|
+
* Padrão Headless UI: você controla o markup e styles
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* function MyDashboard() {
|
|
12
|
+
* const [widgets, setWidgets] = useState<WidgetLayout[]>([]);
|
|
13
|
+
* const gridConfig: GridConfig = { columns: 12, cellSize: 50, gap: 16 };
|
|
14
|
+
*
|
|
15
|
+
* const {
|
|
16
|
+
* getWidgetGridPosition,
|
|
17
|
+
* moveWidget,
|
|
18
|
+
* resizeWidget,
|
|
19
|
+
* findNextAvailablePosition,
|
|
20
|
+
* } = useDashboardLayout({
|
|
21
|
+
* widgetsLayout: widgets,
|
|
22
|
+
* gridConfig,
|
|
23
|
+
* onUpdateLayout: setWidgets,
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* return (
|
|
27
|
+
* <div>
|
|
28
|
+
* {widgets.map(widget => (
|
|
29
|
+
* <div style={getWidgetGridPosition(widget)}>
|
|
30
|
+
* Widget Content
|
|
31
|
+
* </div>
|
|
32
|
+
* ))}
|
|
33
|
+
* </div>
|
|
34
|
+
* );
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export interface WidgetLayout {
|
|
39
|
+
id: string;
|
|
40
|
+
type: string;
|
|
41
|
+
x: number;
|
|
42
|
+
y: number;
|
|
43
|
+
w: number;
|
|
44
|
+
h: number;
|
|
45
|
+
config?: Record<string, unknown>;
|
|
46
|
+
minimized?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface GridConfig {
|
|
49
|
+
columns: number;
|
|
50
|
+
cellSize?: number;
|
|
51
|
+
gap?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface UseDashboardLayoutProps {
|
|
54
|
+
/**
|
|
55
|
+
* Layout atual de widgets
|
|
56
|
+
*/
|
|
57
|
+
widgetsLayout: WidgetLayout[];
|
|
58
|
+
/**
|
|
59
|
+
* Configuração do grid
|
|
60
|
+
*/
|
|
61
|
+
gridConfig: GridConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Callback para atualizar o layout completo
|
|
64
|
+
*/
|
|
65
|
+
onUpdateLayout: (layout: WidgetLayout[]) => void;
|
|
66
|
+
}
|
|
67
|
+
export interface UseDashboardLayoutReturn {
|
|
68
|
+
/**
|
|
69
|
+
* Configuração do grid (normalizada com defaults)
|
|
70
|
+
*/
|
|
71
|
+
gridConfig: GridConfig;
|
|
72
|
+
/**
|
|
73
|
+
* Calcula posição CSS Grid para um widget
|
|
74
|
+
*/
|
|
75
|
+
getWidgetGridPosition: (widget: WidgetLayout) => {
|
|
76
|
+
gridColumnStart: number;
|
|
77
|
+
gridColumnEnd: number;
|
|
78
|
+
gridRowStart: number;
|
|
79
|
+
gridRowEnd: number;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Verifica se uma posição está ocupada
|
|
83
|
+
*/
|
|
84
|
+
isPositionOccupied: (x: number, y: number, w: number, h: number, excludeWidgetId?: string) => boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Encontra próxima posição disponível
|
|
87
|
+
*/
|
|
88
|
+
findNextAvailablePosition: (w: number, h: number) => {
|
|
89
|
+
x: number;
|
|
90
|
+
y: number;
|
|
91
|
+
} | null;
|
|
92
|
+
/**
|
|
93
|
+
* Valida se um widget pode ser movido para uma posição
|
|
94
|
+
*/
|
|
95
|
+
canMoveToPosition: (widgetId: string, x: number, y: number) => boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Valida se um widget pode ser redimensionado
|
|
98
|
+
*/
|
|
99
|
+
canResize: (widgetId: string, newW: number, newH: number) => boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Move widget para nova posição
|
|
102
|
+
*/
|
|
103
|
+
moveWidget: (widgetId: string, x: number, y: number) => void;
|
|
104
|
+
/**
|
|
105
|
+
* Redimensiona widget
|
|
106
|
+
*/
|
|
107
|
+
resizeWidget: (widgetId: string, w: number, h: number) => void;
|
|
108
|
+
/**
|
|
109
|
+
* Atualiza layout completo
|
|
110
|
+
*/
|
|
111
|
+
updateLayout: (layout: WidgetLayout[]) => void;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Hook para gerenciar layout do dashboard
|
|
115
|
+
*
|
|
116
|
+
* Hook headless que fornece apenas lógica de layout, sem UI.
|
|
117
|
+
* Você controla o markup e styles.
|
|
118
|
+
*/
|
|
119
|
+
export declare function useDashboardLayout({ widgetsLayout, gridConfig, onUpdateLayout, }: UseDashboardLayoutProps): UseDashboardLayoutReturn;
|
|
120
|
+
//# sourceMappingURL=useDashboardLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboardLayout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboardLayout/useDashboardLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAOH,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,qBAAqB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK;QAChD,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,kBAAkB,EAAE,CACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,eAAe,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC;IAEb;;OAEG;IACH,yBAAyB,EAAE,CAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,KACL;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAErC;;OAEG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAEvE;;OAEG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAErE;;OAEG;IACH,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/D;;OAEG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CAC/C;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,aAAa,EACb,UAAU,EACV,cAAc,GACd,EAAE,uBAAuB,GAAG,wBAAwB,CA+KpD"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useDashboardLayout - Headless UI Hook
|
|
3
|
+
*
|
|
4
|
+
* Fornece apenas: lógica, estado, processamento e API
|
|
5
|
+
* NÃO fornece: markup, styles ou implementações pré-construídas
|
|
6
|
+
*
|
|
7
|
+
* Padrão Headless UI: você controla o markup e styles
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* function MyDashboard() {
|
|
12
|
+
* const [widgets, setWidgets] = useState<WidgetLayout[]>([]);
|
|
13
|
+
* const gridConfig: GridConfig = { columns: 12, cellSize: 50, gap: 16 };
|
|
14
|
+
*
|
|
15
|
+
* const {
|
|
16
|
+
* getWidgetGridPosition,
|
|
17
|
+
* moveWidget,
|
|
18
|
+
* resizeWidget,
|
|
19
|
+
* findNextAvailablePosition,
|
|
20
|
+
* } = useDashboardLayout({
|
|
21
|
+
* widgetsLayout: widgets,
|
|
22
|
+
* gridConfig,
|
|
23
|
+
* onUpdateLayout: setWidgets,
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* return (
|
|
27
|
+
* <div>
|
|
28
|
+
* {widgets.map(widget => (
|
|
29
|
+
* <div style={getWidgetGridPosition(widget)}>
|
|
30
|
+
* Widget Content
|
|
31
|
+
* </div>
|
|
32
|
+
* ))}
|
|
33
|
+
* </div>
|
|
34
|
+
* );
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
import { useCallback, useMemo } from "react";
|
|
39
|
+
const DEFAULT_GRID_CONFIG = {
|
|
40
|
+
columns: 12,
|
|
41
|
+
cellSize: 50,
|
|
42
|
+
gap: 16,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Hook para gerenciar layout do dashboard
|
|
46
|
+
*
|
|
47
|
+
* Hook headless que fornece apenas lógica de layout, sem UI.
|
|
48
|
+
* Você controla o markup e styles.
|
|
49
|
+
*/
|
|
50
|
+
export function useDashboardLayout({ widgetsLayout, gridConfig, onUpdateLayout, }) {
|
|
51
|
+
// Normaliza gridConfig com defaults
|
|
52
|
+
const normalizedGridConfig = useMemo(() => {
|
|
53
|
+
return {
|
|
54
|
+
...DEFAULT_GRID_CONFIG,
|
|
55
|
+
...gridConfig,
|
|
56
|
+
};
|
|
57
|
+
}, [gridConfig]);
|
|
58
|
+
/**
|
|
59
|
+
* Calcula posição CSS Grid para um widget
|
|
60
|
+
*/
|
|
61
|
+
const getWidgetGridPosition = useCallback((widget) => {
|
|
62
|
+
return {
|
|
63
|
+
gridColumnStart: widget.x + 1, // CSS Grid é 1-indexed
|
|
64
|
+
gridColumnEnd: widget.x + widget.w + 1,
|
|
65
|
+
gridRowStart: widget.y + 1,
|
|
66
|
+
gridRowEnd: widget.y + widget.h + 1,
|
|
67
|
+
};
|
|
68
|
+
}, []);
|
|
69
|
+
/**
|
|
70
|
+
* Verifica se uma posição está ocupada
|
|
71
|
+
*/
|
|
72
|
+
const isPositionOccupied = useCallback((x, y, w, h, excludeWidgetId) => {
|
|
73
|
+
return widgetsLayout.some((widget) => {
|
|
74
|
+
if (excludeWidgetId && widget.id === excludeWidgetId) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
// Verifica sobreposição
|
|
78
|
+
const widgetRight = widget.x + widget.w;
|
|
79
|
+
const widgetBottom = widget.y + widget.h;
|
|
80
|
+
const newRight = x + w;
|
|
81
|
+
const newBottom = y + h;
|
|
82
|
+
return !(widgetRight <= x ||
|
|
83
|
+
widget.x >= newRight ||
|
|
84
|
+
widgetBottom <= y ||
|
|
85
|
+
widget.y >= newBottom);
|
|
86
|
+
});
|
|
87
|
+
}, [widgetsLayout]);
|
|
88
|
+
/**
|
|
89
|
+
* Encontra próxima posição disponível
|
|
90
|
+
*/
|
|
91
|
+
const findNextAvailablePosition = useCallback((w, h) => {
|
|
92
|
+
const maxColumns = normalizedGridConfig.columns;
|
|
93
|
+
const maxRows = 100; // Limite razoável
|
|
94
|
+
for (let y = 0; y < maxRows; y++) {
|
|
95
|
+
for (let x = 0; x <= maxColumns - w; x++) {
|
|
96
|
+
if (!isPositionOccupied(x, y, w, h)) {
|
|
97
|
+
return { x, y };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}, [normalizedGridConfig.columns, isPositionOccupied]);
|
|
103
|
+
/**
|
|
104
|
+
* Valida se um widget pode ser movido para uma posição
|
|
105
|
+
*/
|
|
106
|
+
const canMoveToPosition = useCallback((widgetId, x, y) => {
|
|
107
|
+
const widget = widgetsLayout.find((w) => w.id === widgetId);
|
|
108
|
+
if (!widget)
|
|
109
|
+
return false;
|
|
110
|
+
// Valida limites do grid
|
|
111
|
+
if (x < 0 || y < 0)
|
|
112
|
+
return false;
|
|
113
|
+
if (x + widget.w > normalizedGridConfig.columns)
|
|
114
|
+
return false;
|
|
115
|
+
// Verifica colisões
|
|
116
|
+
return !isPositionOccupied(x, y, widget.w, widget.h, widgetId);
|
|
117
|
+
}, [widgetsLayout, normalizedGridConfig.columns, isPositionOccupied]);
|
|
118
|
+
/**
|
|
119
|
+
* Valida se um widget pode ser redimensionado
|
|
120
|
+
*/
|
|
121
|
+
const canResize = useCallback((widgetId, newW, newH) => {
|
|
122
|
+
const widget = widgetsLayout.find((w) => w.id === widgetId);
|
|
123
|
+
if (!widget)
|
|
124
|
+
return false;
|
|
125
|
+
// Valida tamanhos mínimos e máximos
|
|
126
|
+
if (newW < 2 || newH < 2)
|
|
127
|
+
return false; // Mínimo 2x2
|
|
128
|
+
if (newW > normalizedGridConfig.columns)
|
|
129
|
+
return false;
|
|
130
|
+
if (newH > 20)
|
|
131
|
+
return false; // Máximo 20 linhas
|
|
132
|
+
// Valida limites do grid
|
|
133
|
+
if (widget.x + newW > normalizedGridConfig.columns)
|
|
134
|
+
return false;
|
|
135
|
+
// Verifica colisões
|
|
136
|
+
return !isPositionOccupied(widget.x, widget.y, newW, newH, widgetId);
|
|
137
|
+
}, [widgetsLayout, normalizedGridConfig.columns, isPositionOccupied]);
|
|
138
|
+
/**
|
|
139
|
+
* Move widget para nova posição
|
|
140
|
+
*/
|
|
141
|
+
const moveWidget = useCallback((widgetId, x, y) => {
|
|
142
|
+
if (!canMoveToPosition(widgetId, x, y)) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const updatedLayout = widgetsLayout.map((widget) => widget.id === widgetId ? { ...widget, x, y } : widget);
|
|
146
|
+
onUpdateLayout(updatedLayout);
|
|
147
|
+
}, [widgetsLayout, canMoveToPosition, onUpdateLayout]);
|
|
148
|
+
/**
|
|
149
|
+
* Redimensiona widget
|
|
150
|
+
*/
|
|
151
|
+
const resizeWidget = useCallback((widgetId, w, h) => {
|
|
152
|
+
if (!canResize(widgetId, w, h)) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const updatedLayout = widgetsLayout.map((widget) => widget.id === widgetId ? { ...widget, w, h } : widget);
|
|
156
|
+
onUpdateLayout(updatedLayout);
|
|
157
|
+
}, [widgetsLayout, canResize, onUpdateLayout]);
|
|
158
|
+
/**
|
|
159
|
+
* Atualiza layout completo
|
|
160
|
+
*/
|
|
161
|
+
const updateLayout = useCallback((layout) => {
|
|
162
|
+
onUpdateLayout(layout);
|
|
163
|
+
}, [onUpdateLayout]);
|
|
164
|
+
return {
|
|
165
|
+
gridConfig: normalizedGridConfig,
|
|
166
|
+
getWidgetGridPosition,
|
|
167
|
+
isPositionOccupied,
|
|
168
|
+
findNextAvailablePosition,
|
|
169
|
+
canMoveToPosition,
|
|
170
|
+
canResize,
|
|
171
|
+
moveWidget,
|
|
172
|
+
resizeWidget,
|
|
173
|
+
updateLayout,
|
|
174
|
+
};
|
|
175
|
+
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AAErC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AAErC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Biblioteca de hooks headless e lógica reutilizável
|
|
5
|
-
* para projetos React/TypeScript
|
|
6
|
-
*/
|
|
7
|
-
export * from "./hooks/useAnimatedIndicator";
|
|
8
|
-
export * from "./hooks/useGenealogy";
|
|
9
|
-
export * from "./hooks/useMoblile";
|
|
10
|
-
export * from "./hooks/useProjectProgress";
|
|
11
|
-
export * from "./hooks/useProjectStats";
|
|
12
|
-
export * from "./hooks/useReactTableBack";
|
|
13
|
-
export * from "./hooks/useReactTableFront";
|
|
14
|
-
export * from "./hooks/useResizable";
|
|
15
|
-
// Export hooks
|
|
16
|
-
export * from "./hooks/useScriptEditor";
|
|
17
|
-
export * from "./hooks/useStatCard";
|
|
18
|
-
export * from "./hooks/useTimeTracker";
|
|
19
|
-
export * from "./hooks/useAutocomplete";
|
|
1
|
+
import{useCallback as X8,useEffect as u,useRef as i,useState as d8}from"react";function HJ(J){let{containerRef:Z,activeSelector:Q='[data-state="active"]',getElementValue:Y,updateOnResize:X=!0,value:K}=J,j=i(new Map),N=i(null),q=i(void 0),[U,A]=d8({left:0,width:0,height:0,top:0,opacity:0}),[E,B]=d8();u(()=>{q.current=E},[E]),u(()=>{if(K!==void 0)B(K)},[K]);let W=X8(()=>{let H=q.current;if(!H){A((v)=>{if(v.opacity===0)return v;return{left:0,width:0,height:0,top:0,opacity:0}});return}let G=j.current.get(H),y=Z.current;if(G&&y){let v=G.getBoundingClientRect(),D=y.getBoundingClientRect(),C=v.left-D.left,_=v.width,P=v.height,$=v.top-D.top;A((R)=>{if(R.left===C&&R.width===_&&R.height===P&&R.top===$&&R.opacity===1)return R;return{left:C,width:_,height:P,top:$,opacity:1}})}},[Z]),k=i(void 0);u(()=>{k.current=()=>{if(N.current!==null)cancelAnimationFrame(N.current);N.current=requestAnimationFrame(()=>{W(),N.current=null})}},[W]);let L=X8(()=>{k.current?.()},[]);u(()=>{L()},[L]),u(()=>{if(!X)return;let H=()=>L();return window.addEventListener("resize",H),()=>{if(window.removeEventListener("resize",H),N.current!==null)cancelAnimationFrame(N.current)}},[L,X]);let T=X8((H,G)=>{let y=j.current.get(G);if(H===y)return;if(H)j.current.set(G,H);else if(y)j.current.delete(G);else return;if(H)L()},[L]),z=X8((H)=>{j.current.delete(H),L()},[L]),V=i(Q),O=i(Y);u(()=>{V.current=Q,O.current=Y},[Q,Y]);let M=i(K);return u(()=>{M.current=K},[K]),u(()=>{let H=Z.current;if(!H)return;let G=()=>{if(M.current!==void 0)return;let D=H.querySelector(V.current);if(D){let C;if(O.current)C=O.current(D);else if(C=D.getAttribute("data-value")||void 0,!C){for(let[_,P]of j.current.entries())if(P===D){C=_;break}}if(C)B((_)=>{if(_!==C)return C;return _})}},y=new MutationObserver(()=>{requestAnimationFrame(G)});y.observe(H,{attributes:!0,attributeFilter:["data-state","data-active","aria-selected"],subtree:!0});let v=setTimeout(G,0);return()=>{y.disconnect(),clearTimeout(v)}},[Z]),{indicatorStyle:U,registerElement:T,unregisterElement:z,updateIndicator:W,activeValue:E}}import{useCallback as a,useMemo as G8,useState as r8}from"react";function DJ(J){let Z=new Map,Q=new Set,Y=(X)=>{let K=Z.get(X);if(K!==void 0)return K;if(Q.has(X))return 0;Q.add(X);let j=J.get(X);if(!j||j.parents.length===0)return Z.set(X,0),0;let N=j.parents.map((A)=>Y(A.id)),U=Math.max(...N)+1;return Z.set(X,U),U};return J.forEach((X,K)=>{Y(K)}),Z}function PJ(J,Z,Q,Y,X,K){let j=new Map,N=DJ(Z),q=new Map;return N.forEach((A,E)=>{if(!q.has(A))q.set(A,[]);q.get(A)?.push(E)}),Array.from(q.keys()).sort((A,E)=>A-E).forEach((A)=>{let E=q.get(A);if(!E)return;E.sort();let B=A*(Y+K);E.forEach((W)=>{let k=Z.get(W),L=0;if(k&&k.parents.length>0){let T=k.parents.map((z)=>j.get(z.id)).filter((z)=>z!==void 0);if(T.length>0)L=T.reduce((V,O)=>V+O.x,0)/T.length}if(L===0&&E.length>1){let T=E.indexOf(W);L=-(E.length*Q+(E.length-1)*X)/2+Q/2+T*(Q+X)}j.set(W,{x:L,y:B})}),E.forEach((W,k)=>{let L=j.get(W);if(!L)return;E.slice(0,k).forEach((T)=>{let z=j.get(T);if(!z)return;if(Math.abs(L.x-z.x)<Q+X)L.x=z.x+Q+X})})}),j}function VJ(J,Z,Q,Y,X,K,j){let N=[],q=PJ(J,Z,Y,X,K,j);return J.people.forEach((U)=>{let A=q.get(U.id)||{x:0,y:0},E=Z.get(U.id);N.push({id:U.id,type:"genealogy",position:A,data:{person:U,hierarchy:E,isExpanded:Q[U.id]??!1}})}),N}function MJ(J,Z,Q){let Y=[],X=new Set;return J.relationships.forEach((K)=>{let j,N;switch(K.type){case"father":case"mother":{j=K.from,N=K.to;break}case"child":{j=K.to,N=K.from;break}default:j=K.from,N=K.to}let q=`e-${j}-${N}-${K.type}`;if(X.has(q))return;X.add(q);let U=Z.get(j),A=Z.get(N);if(!U||!A)return;let E=Q[j]??!0,B=Q[N]??!0;if(K.type==="father"||K.type==="mother"||K.type==="child"){if(!E||!B)return}Y.push({id:q,source:j,target:N,type:"animated",data:{relationship:K}})}),Y}function FJ(J){let Z=new Map;return J.people.forEach((Q)=>{Z.set(Q.id,{person:Q,parents:[],children:[],adoptions:[],siblings:[]})}),J.relationships.forEach((Q)=>{let Y=Z.get(Q.from),X=Z.get(Q.to);if(!Y||!X)return;switch(Q.type){case"father":case"mother":{if(!X.parents.find((K)=>K.id===Q.from))X.parents.push(Y.person);if(Q.type==="father")X.father=Y.person;else if(Q.type==="mother")X.mother=Y.person;if(!Y.children.find((K)=>K.id===Q.to))Y.children.push(X.person);break}case"child":{if(!X.children.find((K)=>K.id===Q.from))X.children.push(Y.person);if(!Y.parents.find((K)=>K.id===Q.to))Y.parents.push(X.person);break}}}),Z.forEach((Q)=>{if(Q.parents.length>0){let Y=Q.parents.map((X)=>X.id);Z.forEach((X,K)=>{if(K!==Q.person.id){if(X.parents.some((N)=>Y.includes(N.id))&&!Q.siblings.find((N)=>N.id===K))Q.siblings.push(X.person)}})}}),Z}function xJ({data:J,initialExpanded:Z=[],nodeWidth:Q=200,nodeHeight:Y=100,horizontalSpacing:X=250,verticalSpacing:K=150,onNodeSelect:j,onNodeExpand:N,onAddRelation:q}){let[U,A]=r8(()=>{let G={};return Z.forEach((y)=>{G[y]=!0}),G}),[E,B]=r8(null),W=G8(()=>FJ(J),[J]),k=G8(()=>VJ(J,W,U,Q,Y,X,K),[J,W,U,Q,Y,X,K]),L=G8(()=>MJ(J,W,U),[J,W,U]),T=a((G)=>{B(G);let y=J.people.find((v)=>v.id===G);if(y&&j)j(G,y)},[J.people,j]),z=a((G,y)=>{A((v)=>{let D={...v},C=v[G]??!1;if(D[G]=y??!C,N)N(G,D[G]);return D})},[N]),V=a((G)=>{z(G,!1)},[z]),O=a((G,y,v)=>{if(q)q(G,y,v)},[q]),M=a((G)=>{return W.get(G)},[W]),H=a((G)=>{return J.relationships.filter((y)=>y.from===G||y.to===G)},[J.relationships]);return{nodes:k,edges:L,hierarchy:W,selectedNodeId:E,expansionState:U,selectNode:T,expandNode:z,collapseNode:V,addRelation:O,getPersonHierarchy:M,getPersonRelations:H}}import*as K8 from"react";var O8=768;function yJ(){let[J,Z]=K8.useState(void 0);return K8.useEffect(()=>{let Q=window.matchMedia(`(max-width: ${O8-1}px)`),Y=()=>{Z(window.innerWidth<O8)};return Q.addEventListener("change",Y),Z(window.innerWidth<O8),()=>Q.removeEventListener("change",Y)},[]),!!J}import{useMemo as CJ}from"react";function vJ(J){if(J.progress!==void 0)return J.progress;switch(J.status){case"completed":return 100;case"in-progress":return 50;case"pending":return 0;case"on-hold":return 0;default:return 0}}function _J(J){let{projects:Z,calculateProgress:Q=vJ}=J;return CJ(()=>{if(Z.length===0)return{percentage:0,status:"pending",distribution:{completed:0,inProgress:0,pending:0,onHold:0},total:0,completed:0,inProgress:0,pending:0,onHold:0};let X={completed:0,inProgress:0,pending:0,onHold:0},K=0;Z.forEach((q)=>{let U=Q(q);switch(K+=U,q.status){case"completed":X.completed++;break;case"in-progress":X.inProgress++;break;case"pending":X.pending++;break;case"on-hold":X.onHold++;break}});let j=Math.round(K/Z.length),N="pending";if(X.completed===Z.length)N="completed";else if(X.inProgress>0||X.completed>0)N="in-progress";else if(X.onHold>0)N="on-hold";return{percentage:j,status:N,distribution:X,total:Z.length,completed:X.completed,inProgress:X.inProgress,pending:X.pending,onHold:X.onHold}},[Z,Q])}import{useMemo as IJ}from"react";function RJ(J){let{projects:Z,filter:Q,groupBy:Y}=J,X=IJ(()=>{let K=Q?Z.filter(Q):Z,j={running:0,ended:0,pending:0,"on-hold":0,cancelled:0};K.forEach((q)=>{let U=q.status||"pending";if(U in j)j[U]++});let N=Y?K.reduce((q,U)=>{let A=Y(U);if(!q[A])q[A]=[];return q[A].push(U),q},{}):void 0;return{total:K.length,ended:j.ended,running:j.running,pending:j.pending,onHold:j["on-hold"],cancelled:j.cancelled,byStatus:j,filtered:K,grouped:N}},[Z,Q,Y]);return{stats:X,total:X.total,ended:X.ended,running:X.running,pending:X.pending,onHold:X.onHold,cancelled:X.cancelled,filtered:X.filtered,grouped:X.grouped}}import*as U8 from"react";function s(J,Z){return typeof J==="function"?J(Z):J}function g(J,Z){return(Q)=>{Z.setState((Y)=>{return{...Y,[J]:s(Q,Y[J])}})}}function q8(J){return J instanceof Function}function SJ(J){return Array.isArray(J)&&J.every((Z)=>typeof Z==="number")}function $J(J,Z){let Q=[],Y=(X)=>{X.forEach((K)=>{Q.push(K);let j=Z(K);if(j!=null&&j.length)Y(j)})};return Y(J),Q}function F(J,Z,Q){let Y=[],X;return(K)=>{let j;if(Q.key&&Q.debug)j=Date.now();let N=J(K);if(!(N.length!==Y.length||N.some((A,E)=>Y[E]!==A)))return X;Y=N;let U;if(Q.key&&Q.debug)U=Date.now();if(X=Z(...N),Q==null||Q.onChange==null||Q.onChange(X),Q.key&&Q.debug){if(Q!=null&&Q.debug()){let A=Math.round((Date.now()-j)*100)/100,E=Math.round((Date.now()-U)*100)/100,B=E/16,W=(k,L)=>{k=String(k);while(k.length<L)k=" "+k;return k};console.info(`%c⏱ ${W(E,5)} /${W(A,5)} ms`,`
|
|
2
|
+
font-size: .6rem;
|
|
3
|
+
font-weight: bold;
|
|
4
|
+
color: hsl(${Math.max(0,Math.min(120-120*B,120))}deg 100% 31%);`,Q==null?void 0:Q.key)}}return X}}function x(J,Z,Q,Y){return{debug:()=>{var X;return(X=J==null?void 0:J.debugAll)!=null?X:J[Z]},key:Q,onChange:Y}}function hJ(J,Z,Q,Y){let X=()=>{var j;return(j=K.getValue())!=null?j:J.options.renderFallbackValue},K={id:`${Z.id}_${Q.id}`,row:Z,column:Q,getValue:()=>Z.getValue(Y),renderValue:X,getContext:F(()=>[J,Q,Z,K],(j,N,q,U)=>({table:j,column:N,row:q,cell:U,getValue:U.getValue,renderValue:U.renderValue}),x(J.options,"debugCells","cell.getContext"))};return J._features.forEach((j)=>{j.createCell==null||j.createCell(K,Q,Z,J)},{}),K}function fJ(J,Z,Q,Y){var X,K;let N={...J._getDefaultColumnDef(),...Z},q=N.accessorKey,U=(X=(K=N.id)!=null?K:q?typeof String.prototype.replaceAll==="function"?q.replaceAll(".","_"):q.replace(/\./g,"_"):void 0)!=null?X:typeof N.header==="string"?N.header:void 0,A;if(N.accessorFn)A=N.accessorFn;else if(q)if(q.includes("."))A=(B)=>{let W=B;for(let L of q.split(".")){var k;if(W=(k=W)==null?void 0:k[L],W===void 0)console.warn(`"${L}" in deeply nested key "${q}" returned undefined.`)}return W};else A=(B)=>B[N.accessorKey];if(!U)throw Error(N.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header");let E={id:`${String(U)}`,accessorFn:A,parent:Y,depth:Q,columnDef:N,columns:[],getFlatColumns:F(()=>[!0],()=>{var B;return[E,...(B=E.columns)==null?void 0:B.flatMap((W)=>W.getFlatColumns())]},x(J.options,"debugColumns","column.getFlatColumns")),getLeafColumns:F(()=>[J._getOrderColumnsFn()],(B)=>{var W;if((W=E.columns)!=null&&W.length){let k=E.columns.flatMap((L)=>L.getLeafColumns());return B(k)}return[E]},x(J.options,"debugColumns","column.getLeafColumns"))};for(let B of J._features)B.createColumn==null||B.createColumn(E,J);return E}var f="debugHeaders";function i8(J,Z,Q){var Y;let K={id:(Y=Q.id)!=null?Y:Z.id,column:Z,index:Q.index,isPlaceholder:!!Q.isPlaceholder,placeholderId:Q.placeholderId,depth:Q.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let j=[],N=(q)=>{if(q.subHeaders&&q.subHeaders.length)q.subHeaders.map(N);j.push(q)};return N(K),j},getContext:()=>({table:J,header:K,column:Z})};return J._features.forEach((j)=>{j.createHeader==null||j.createHeader(K,J)}),K}var gJ={createTable:(J)=>{J.getHeaderGroups=F(()=>[J.getAllColumns(),J.getVisibleLeafColumns(),J.getState().columnPinning.left,J.getState().columnPinning.right],(Z,Q,Y,X)=>{var K,j;let N=(K=Y==null?void 0:Y.map((E)=>Q.find((B)=>B.id===E)).filter(Boolean))!=null?K:[],q=(j=X==null?void 0:X.map((E)=>Q.find((B)=>B.id===E)).filter(Boolean))!=null?j:[],U=Q.filter((E)=>!(Y!=null&&Y.includes(E.id))&&!(X!=null&&X.includes(E.id)));return j8(Z,[...N,...U,...q],J)},x(J.options,f,"getHeaderGroups")),J.getCenterHeaderGroups=F(()=>[J.getAllColumns(),J.getVisibleLeafColumns(),J.getState().columnPinning.left,J.getState().columnPinning.right],(Z,Q,Y,X)=>{return Q=Q.filter((K)=>!(Y!=null&&Y.includes(K.id))&&!(X!=null&&X.includes(K.id))),j8(Z,Q,J,"center")},x(J.options,f,"getCenterHeaderGroups")),J.getLeftHeaderGroups=F(()=>[J.getAllColumns(),J.getVisibleLeafColumns(),J.getState().columnPinning.left],(Z,Q,Y)=>{var X;let K=(X=Y==null?void 0:Y.map((j)=>Q.find((N)=>N.id===j)).filter(Boolean))!=null?X:[];return j8(Z,K,J,"left")},x(J.options,f,"getLeftHeaderGroups")),J.getRightHeaderGroups=F(()=>[J.getAllColumns(),J.getVisibleLeafColumns(),J.getState().columnPinning.right],(Z,Q,Y)=>{var X;let K=(X=Y==null?void 0:Y.map((j)=>Q.find((N)=>N.id===j)).filter(Boolean))!=null?X:[];return j8(Z,K,J,"right")},x(J.options,f,"getRightHeaderGroups")),J.getFooterGroups=F(()=>[J.getHeaderGroups()],(Z)=>{return[...Z].reverse()},x(J.options,f,"getFooterGroups")),J.getLeftFooterGroups=F(()=>[J.getLeftHeaderGroups()],(Z)=>{return[...Z].reverse()},x(J.options,f,"getLeftFooterGroups")),J.getCenterFooterGroups=F(()=>[J.getCenterHeaderGroups()],(Z)=>{return[...Z].reverse()},x(J.options,f,"getCenterFooterGroups")),J.getRightFooterGroups=F(()=>[J.getRightHeaderGroups()],(Z)=>{return[...Z].reverse()},x(J.options,f,"getRightFooterGroups")),J.getFlatHeaders=F(()=>[J.getHeaderGroups()],(Z)=>{return Z.map((Q)=>{return Q.headers}).flat()},x(J.options,f,"getFlatHeaders")),J.getLeftFlatHeaders=F(()=>[J.getLeftHeaderGroups()],(Z)=>{return Z.map((Q)=>{return Q.headers}).flat()},x(J.options,f,"getLeftFlatHeaders")),J.getCenterFlatHeaders=F(()=>[J.getCenterHeaderGroups()],(Z)=>{return Z.map((Q)=>{return Q.headers}).flat()},x(J.options,f,"getCenterFlatHeaders")),J.getRightFlatHeaders=F(()=>[J.getRightHeaderGroups()],(Z)=>{return Z.map((Q)=>{return Q.headers}).flat()},x(J.options,f,"getRightFlatHeaders")),J.getCenterLeafHeaders=F(()=>[J.getCenterFlatHeaders()],(Z)=>{return Z.filter((Q)=>{var Y;return!((Y=Q.subHeaders)!=null&&Y.length)})},x(J.options,f,"getCenterLeafHeaders")),J.getLeftLeafHeaders=F(()=>[J.getLeftFlatHeaders()],(Z)=>{return Z.filter((Q)=>{var Y;return!((Y=Q.subHeaders)!=null&&Y.length)})},x(J.options,f,"getLeftLeafHeaders")),J.getRightLeafHeaders=F(()=>[J.getRightFlatHeaders()],(Z)=>{return Z.filter((Q)=>{var Y;return!((Y=Q.subHeaders)!=null&&Y.length)})},x(J.options,f,"getRightLeafHeaders")),J.getLeafHeaders=F(()=>[J.getLeftHeaderGroups(),J.getCenterHeaderGroups(),J.getRightHeaderGroups()],(Z,Q,Y)=>{var X,K,j,N,q,U;return[...(X=(K=Z[0])==null?void 0:K.headers)!=null?X:[],...(j=(N=Q[0])==null?void 0:N.headers)!=null?j:[],...(q=(U=Y[0])==null?void 0:U.headers)!=null?q:[]].map((A)=>{return A.getLeafHeaders()}).flat()},x(J.options,f,"getLeafHeaders"))}};function j8(J,Z,Q,Y){var X,K;let j=0,N=function(B,W){if(W===void 0)W=1;j=Math.max(j,W),B.filter((k)=>k.getIsVisible()).forEach((k)=>{var L;if((L=k.columns)!=null&&L.length)N(k.columns,W+1)},0)};N(J);let q=[],U=(B,W)=>{let k={depth:W,id:[Y,`${W}`].filter(Boolean).join("_"),headers:[]},L=[];if(B.forEach((T)=>{let z=[...L].reverse()[0],V=T.column.depth===k.depth,O,M=!1;if(V&&T.column.parent)O=T.column.parent;else O=T.column,M=!0;if(z&&(z==null?void 0:z.column)===O)z.subHeaders.push(T);else{let H=i8(Q,O,{id:[Y,W,O.id,T==null?void 0:T.id].filter(Boolean).join("_"),isPlaceholder:M,placeholderId:M?`${L.filter((G)=>G.column===O).length}`:void 0,depth:W,index:L.length});H.subHeaders.push(T),L.push(H)}k.headers.push(T),T.headerGroup=k}),q.push(k),W>0)U(L,W-1)},A=Z.map((B,W)=>i8(Q,B,{depth:j,index:W}));U(A,j-1),q.reverse();let E=(B)=>{return B.filter((k)=>k.column.getIsVisible()).map((k)=>{let L=0,T=0,z=[0];if(k.subHeaders&&k.subHeaders.length)z=[],E(k.subHeaders).forEach((O)=>{let{colSpan:M,rowSpan:H}=O;L+=M,z.push(H)});else L=1;let V=Math.min(...z);return T=T+V,k.colSpan=L,k.rowSpan=T,{colSpan:L,rowSpan:T}})};return E((X=(K=q[0])==null?void 0:K.headers)!=null?X:[]),q}var R8=(J,Z,Q,Y,X,K,j)=>{let N={id:Z,index:Y,original:Q,depth:X,parentId:j,_valuesCache:{},_uniqueValuesCache:{},getValue:(q)=>{if(N._valuesCache.hasOwnProperty(q))return N._valuesCache[q];let U=J.getColumn(q);if(!(U!=null&&U.accessorFn))return;return N._valuesCache[q]=U.accessorFn(N.original,Y),N._valuesCache[q]},getUniqueValues:(q)=>{if(N._uniqueValuesCache.hasOwnProperty(q))return N._uniqueValuesCache[q];let U=J.getColumn(q);if(!(U!=null&&U.accessorFn))return;if(!U.columnDef.getUniqueValues)return N._uniqueValuesCache[q]=[N.getValue(q)],N._uniqueValuesCache[q];return N._uniqueValuesCache[q]=U.columnDef.getUniqueValues(N.original,Y),N._uniqueValuesCache[q]},renderValue:(q)=>{var U;return(U=N.getValue(q))!=null?U:J.options.renderFallbackValue},subRows:K!=null?K:[],getLeafRows:()=>$J(N.subRows,(q)=>q.subRows),getParentRow:()=>N.parentId?J.getRow(N.parentId,!0):void 0,getParentRows:()=>{let q=[],U=N;while(!0){let A=U.getParentRow();if(!A)break;q.push(A),U=A}return q.reverse()},getAllCells:F(()=>[J.getAllLeafColumns()],(q)=>{return q.map((U)=>{return hJ(J,N,U,U.id)})},x(J.options,"debugRows","getAllCells")),_getAllCellsByColumnId:F(()=>[N.getAllCells()],(q)=>{return q.reduce((U,A)=>{return U[A.column.id]=A,U},{})},x(J.options,"debugRows","getAllCellsByColumnId"))};for(let q=0;q<J._features.length;q++){let U=J._features[q];U==null||U.createRow==null||U.createRow(N,J)}return N},wJ={createColumn:(J,Z)=>{J._getFacetedRowModel=Z.options.getFacetedRowModel&&Z.options.getFacetedRowModel(Z,J.id),J.getFacetedRowModel=()=>{if(!J._getFacetedRowModel)return Z.getPreFilteredRowModel();return J._getFacetedRowModel()},J._getFacetedUniqueValues=Z.options.getFacetedUniqueValues&&Z.options.getFacetedUniqueValues(Z,J.id),J.getFacetedUniqueValues=()=>{if(!J._getFacetedUniqueValues)return new Map;return J._getFacetedUniqueValues()},J._getFacetedMinMaxValues=Z.options.getFacetedMinMaxValues&&Z.options.getFacetedMinMaxValues(Z,J.id),J.getFacetedMinMaxValues=()=>{if(!J._getFacetedMinMaxValues)return;return J._getFacetedMinMaxValues()}}},a8=(J,Z,Q)=>{var Y,X;let K=Q==null||(Y=Q.toString())==null?void 0:Y.toLowerCase();return Boolean((X=J.getValue(Z))==null||(X=X.toString())==null||(X=X.toLowerCase())==null?void 0:X.includes(K))};a8.autoRemove=(J)=>p(J);var o8=(J,Z,Q)=>{var Y;return Boolean((Y=J.getValue(Z))==null||(Y=Y.toString())==null?void 0:Y.includes(Q))};o8.autoRemove=(J)=>p(J);var l8=(J,Z,Q)=>{var Y;return((Y=J.getValue(Z))==null||(Y=Y.toString())==null?void 0:Y.toLowerCase())===(Q==null?void 0:Q.toLowerCase())};l8.autoRemove=(J)=>p(J);var t8=(J,Z,Q)=>{var Y;return(Y=J.getValue(Z))==null?void 0:Y.includes(Q)};t8.autoRemove=(J)=>p(J);var e8=(J,Z,Q)=>{return!Q.some((Y)=>{var X;return!((X=J.getValue(Z))!=null&&X.includes(Y))})};e8.autoRemove=(J)=>p(J)||!(J!=null&&J.length);var JJ=(J,Z,Q)=>{return Q.some((Y)=>{var X;return(X=J.getValue(Z))==null?void 0:X.includes(Y)})};JJ.autoRemove=(J)=>p(J)||!(J!=null&&J.length);var QJ=(J,Z,Q)=>{return J.getValue(Z)===Q};QJ.autoRemove=(J)=>p(J);var YJ=(J,Z,Q)=>{return J.getValue(Z)==Q};YJ.autoRemove=(J)=>p(J);var S8=(J,Z,Q)=>{let[Y,X]=Q,K=J.getValue(Z);return K>=Y&&K<=X};S8.resolveFilterValue=(J)=>{let[Z,Q]=J,Y=typeof Z!=="number"?parseFloat(Z):Z,X=typeof Q!=="number"?parseFloat(Q):Q,K=Z===null||Number.isNaN(Y)?-1/0:Y,j=Q===null||Number.isNaN(X)?1/0:X;if(K>j){let N=K;K=j,j=N}return[K,j]};S8.autoRemove=(J)=>p(J)||p(J[0])&&p(J[1]);var m={includesString:a8,includesStringSensitive:o8,equalsString:l8,arrIncludes:t8,arrIncludesAll:e8,arrIncludesSome:JJ,equals:QJ,weakEquals:YJ,inNumberRange:S8};function p(J){return J===void 0||J===null||J===""}var pJ={getDefaultColumnDef:()=>{return{filterFn:"auto"}},getInitialState:(J)=>{return{columnFilters:[],...J}},getDefaultOptions:(J)=>{return{onColumnFiltersChange:g("columnFilters",J),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}},createColumn:(J,Z)=>{J.getAutoFilterFn=()=>{let Q=Z.getCoreRowModel().flatRows[0],Y=Q==null?void 0:Q.getValue(J.id);if(typeof Y==="string")return m.includesString;if(typeof Y==="number")return m.inNumberRange;if(typeof Y==="boolean")return m.equals;if(Y!==null&&typeof Y==="object")return m.equals;if(Array.isArray(Y))return m.arrIncludes;return m.weakEquals},J.getFilterFn=()=>{var Q,Y;return q8(J.columnDef.filterFn)?J.columnDef.filterFn:J.columnDef.filterFn==="auto"?J.getAutoFilterFn():(Q=(Y=Z.options.filterFns)==null?void 0:Y[J.columnDef.filterFn])!=null?Q:m[J.columnDef.filterFn]},J.getCanFilter=()=>{var Q,Y,X;return((Q=J.columnDef.enableColumnFilter)!=null?Q:!0)&&((Y=Z.options.enableColumnFilters)!=null?Y:!0)&&((X=Z.options.enableFilters)!=null?X:!0)&&!!J.accessorFn},J.getIsFiltered=()=>J.getFilterIndex()>-1,J.getFilterValue=()=>{var Q;return(Q=Z.getState().columnFilters)==null||(Q=Q.find((Y)=>Y.id===J.id))==null?void 0:Q.value},J.getFilterIndex=()=>{var Q,Y;return(Q=(Y=Z.getState().columnFilters)==null?void 0:Y.findIndex((X)=>X.id===J.id))!=null?Q:-1},J.setFilterValue=(Q)=>{Z.setColumnFilters((Y)=>{let X=J.getFilterFn(),K=Y==null?void 0:Y.find((A)=>A.id===J.id),j=s(Q,K?K.value:void 0);if(n8(X,j,J)){var N;return(N=Y==null?void 0:Y.filter((A)=>A.id!==J.id))!=null?N:[]}let q={id:J.id,value:j};if(K){var U;return(U=Y==null?void 0:Y.map((A)=>{if(A.id===J.id)return q;return A}))!=null?U:[]}if(Y!=null&&Y.length)return[...Y,q];return[q]})}},createRow:(J,Z)=>{J.columnFilters={},J.columnFiltersMeta={}},createTable:(J)=>{J.setColumnFilters=(Z)=>{let Q=J.getAllLeafColumns(),Y=(X)=>{var K;return(K=s(Z,X))==null?void 0:K.filter((j)=>{let N=Q.find((q)=>q.id===j.id);if(N){let q=N.getFilterFn();if(n8(q,j.value,N))return!1}return!0})};J.options.onColumnFiltersChange==null||J.options.onColumnFiltersChange(Y)},J.resetColumnFilters=(Z)=>{var Q,Y;J.setColumnFilters(Z?[]:(Q=(Y=J.initialState)==null?void 0:Y.columnFilters)!=null?Q:[])},J.getPreFilteredRowModel=()=>J.getCoreRowModel(),J.getFilteredRowModel=()=>{if(!J._getFilteredRowModel&&J.options.getFilteredRowModel)J._getFilteredRowModel=J.options.getFilteredRowModel(J);if(J.options.manualFiltering||!J._getFilteredRowModel)return J.getPreFilteredRowModel();return J._getFilteredRowModel()}}};function n8(J,Z,Q){return(J&&J.autoRemove?J.autoRemove(Z,Q):!1)||typeof Z>"u"||typeof Z==="string"&&!Z}var mJ=(J,Z,Q)=>{return Q.reduce((Y,X)=>{let K=X.getValue(J);return Y+(typeof K==="number"?K:0)},0)},cJ=(J,Z,Q)=>{let Y;return Q.forEach((X)=>{let K=X.getValue(J);if(K!=null&&(Y>K||Y===void 0&&K>=K))Y=K}),Y},bJ=(J,Z,Q)=>{let Y;return Q.forEach((X)=>{let K=X.getValue(J);if(K!=null&&(Y<K||Y===void 0&&K>=K))Y=K}),Y},uJ=(J,Z,Q)=>{let Y,X;return Q.forEach((K)=>{let j=K.getValue(J);if(j!=null)if(Y===void 0){if(j>=j)Y=X=j}else{if(Y>j)Y=j;if(X<j)X=j}}),[Y,X]},sJ=(J,Z)=>{let Q=0,Y=0;if(Z.forEach((X)=>{let K=X.getValue(J);if(K!=null&&(K=+K)>=K)++Q,Y+=K}),Q)return Y/Q;return},dJ=(J,Z)=>{if(!Z.length)return;let Q=Z.map((K)=>K.getValue(J));if(!SJ(Q))return;if(Q.length===1)return Q[0];let Y=Math.floor(Q.length/2),X=Q.sort((K,j)=>K-j);return Q.length%2!==0?X[Y]:(X[Y-1]+X[Y])/2},rJ=(J,Z)=>{return Array.from(new Set(Z.map((Q)=>Q.getValue(J))).values())},iJ=(J,Z)=>{return new Set(Z.map((Q)=>Q.getValue(J))).size},nJ=(J,Z)=>{return Z.length},H8={sum:mJ,min:cJ,max:bJ,extent:uJ,mean:sJ,median:dJ,unique:rJ,uniqueCount:iJ,count:nJ},aJ={getDefaultColumnDef:()=>{return{aggregatedCell:(J)=>{var Z,Q;return(Z=(Q=J.getValue())==null||Q.toString==null?void 0:Q.toString())!=null?Z:null},aggregationFn:"auto"}},getInitialState:(J)=>{return{grouping:[],...J}},getDefaultOptions:(J)=>{return{onGroupingChange:g("grouping",J),groupedColumnMode:"reorder"}},createColumn:(J,Z)=>{J.toggleGrouping=()=>{Z.setGrouping((Q)=>{if(Q!=null&&Q.includes(J.id))return Q.filter((Y)=>Y!==J.id);return[...Q!=null?Q:[],J.id]})},J.getCanGroup=()=>{var Q,Y;return((Q=J.columnDef.enableGrouping)!=null?Q:!0)&&((Y=Z.options.enableGrouping)!=null?Y:!0)&&(!!J.accessorFn||!!J.columnDef.getGroupingValue)},J.getIsGrouped=()=>{var Q;return(Q=Z.getState().grouping)==null?void 0:Q.includes(J.id)},J.getGroupedIndex=()=>{var Q;return(Q=Z.getState().grouping)==null?void 0:Q.indexOf(J.id)},J.getToggleGroupingHandler=()=>{let Q=J.getCanGroup();return()=>{if(!Q)return;J.toggleGrouping()}},J.getAutoAggregationFn=()=>{let Q=Z.getCoreRowModel().flatRows[0],Y=Q==null?void 0:Q.getValue(J.id);if(typeof Y==="number")return H8.sum;if(Object.prototype.toString.call(Y)==="[object Date]")return H8.extent},J.getAggregationFn=()=>{var Q,Y;if(!J)throw Error();return q8(J.columnDef.aggregationFn)?J.columnDef.aggregationFn:J.columnDef.aggregationFn==="auto"?J.getAutoAggregationFn():(Q=(Y=Z.options.aggregationFns)==null?void 0:Y[J.columnDef.aggregationFn])!=null?Q:H8[J.columnDef.aggregationFn]}},createTable:(J)=>{J.setGrouping=(Z)=>J.options.onGroupingChange==null?void 0:J.options.onGroupingChange(Z),J.resetGrouping=(Z)=>{var Q,Y;J.setGrouping(Z?[]:(Q=(Y=J.initialState)==null?void 0:Y.grouping)!=null?Q:[])},J.getPreGroupedRowModel=()=>J.getFilteredRowModel(),J.getGroupedRowModel=()=>{if(!J._getGroupedRowModel&&J.options.getGroupedRowModel)J._getGroupedRowModel=J.options.getGroupedRowModel(J);if(J.options.manualGrouping||!J._getGroupedRowModel)return J.getPreGroupedRowModel();return J._getGroupedRowModel()}},createRow:(J,Z)=>{J.getIsGrouped=()=>!!J.groupingColumnId,J.getGroupingValue=(Q)=>{if(J._groupingValuesCache.hasOwnProperty(Q))return J._groupingValuesCache[Q];let Y=Z.getColumn(Q);if(!(Y!=null&&Y.columnDef.getGroupingValue))return J.getValue(Q);return J._groupingValuesCache[Q]=Y.columnDef.getGroupingValue(J.original),J._groupingValuesCache[Q]},J._groupingValuesCache={}},createCell:(J,Z,Q,Y)=>{J.getIsGrouped=()=>Z.getIsGrouped()&&Z.id===Q.groupingColumnId,J.getIsPlaceholder=()=>!J.getIsGrouped()&&Z.getIsGrouped(),J.getIsAggregated=()=>{var X;return!J.getIsGrouped()&&!J.getIsPlaceholder()&&!!((X=Q.subRows)!=null&&X.length)}}};function oJ(J,Z,Q){if(!(Z!=null&&Z.length)||!Q)return J;let Y=J.filter((K)=>!Z.includes(K.id));if(Q==="remove")return Y;return[...Z.map((K)=>J.find((j)=>j.id===K)).filter(Boolean),...Y]}var lJ={getInitialState:(J)=>{return{columnOrder:[],...J}},getDefaultOptions:(J)=>{return{onColumnOrderChange:g("columnOrder",J)}},createColumn:(J,Z)=>{J.getIndex=F((Q)=>[Q8(Z,Q)],(Q)=>Q.findIndex((Y)=>Y.id===J.id),x(Z.options,"debugColumns","getIndex")),J.getIsFirstColumn=(Q)=>{var Y;return((Y=Q8(Z,Q)[0])==null?void 0:Y.id)===J.id},J.getIsLastColumn=(Q)=>{var Y;let X=Q8(Z,Q);return((Y=X[X.length-1])==null?void 0:Y.id)===J.id}},createTable:(J)=>{J.setColumnOrder=(Z)=>J.options.onColumnOrderChange==null?void 0:J.options.onColumnOrderChange(Z),J.resetColumnOrder=(Z)=>{var Q;J.setColumnOrder(Z?[]:(Q=J.initialState.columnOrder)!=null?Q:[])},J._getOrderColumnsFn=F(()=>[J.getState().columnOrder,J.getState().grouping,J.options.groupedColumnMode],(Z,Q,Y)=>(X)=>{let K=[];if(!(Z!=null&&Z.length))K=X;else{let j=[...Z],N=[...X];while(N.length&&j.length){let q=j.shift(),U=N.findIndex((A)=>A.id===q);if(U>-1)K.push(N.splice(U,1)[0])}K=[...K,...N]}return oJ(K,Q,Y)},x(J.options,"debugTable","_getOrderColumnsFn"))}},D8=()=>({left:[],right:[]}),tJ={getInitialState:(J)=>{return{columnPinning:D8(),...J}},getDefaultOptions:(J)=>{return{onColumnPinningChange:g("columnPinning",J)}},createColumn:(J,Z)=>{J.pin=(Q)=>{let Y=J.getLeafColumns().map((X)=>X.id).filter(Boolean);Z.setColumnPinning((X)=>{var K,j;if(Q==="right"){var N,q;return{left:((N=X==null?void 0:X.left)!=null?N:[]).filter((E)=>!(Y!=null&&Y.includes(E))),right:[...((q=X==null?void 0:X.right)!=null?q:[]).filter((E)=>!(Y!=null&&Y.includes(E))),...Y]}}if(Q==="left"){var U,A;return{left:[...((U=X==null?void 0:X.left)!=null?U:[]).filter((E)=>!(Y!=null&&Y.includes(E))),...Y],right:((A=X==null?void 0:X.right)!=null?A:[]).filter((E)=>!(Y!=null&&Y.includes(E)))}}return{left:((K=X==null?void 0:X.left)!=null?K:[]).filter((E)=>!(Y!=null&&Y.includes(E))),right:((j=X==null?void 0:X.right)!=null?j:[]).filter((E)=>!(Y!=null&&Y.includes(E)))}})},J.getCanPin=()=>{return J.getLeafColumns().some((Y)=>{var X,K,j;return((X=Y.columnDef.enablePinning)!=null?X:!0)&&((K=(j=Z.options.enableColumnPinning)!=null?j:Z.options.enablePinning)!=null?K:!0)})},J.getIsPinned=()=>{let Q=J.getLeafColumns().map((N)=>N.id),{left:Y,right:X}=Z.getState().columnPinning,K=Q.some((N)=>Y==null?void 0:Y.includes(N)),j=Q.some((N)=>X==null?void 0:X.includes(N));return K?"left":j?"right":!1},J.getPinnedIndex=()=>{var Q,Y;let X=J.getIsPinned();return X?(Q=(Y=Z.getState().columnPinning)==null||(Y=Y[X])==null?void 0:Y.indexOf(J.id))!=null?Q:-1:0}},createRow:(J,Z)=>{J.getCenterVisibleCells=F(()=>[J._getAllVisibleCells(),Z.getState().columnPinning.left,Z.getState().columnPinning.right],(Q,Y,X)=>{let K=[...Y!=null?Y:[],...X!=null?X:[]];return Q.filter((j)=>!K.includes(j.column.id))},x(Z.options,"debugRows","getCenterVisibleCells")),J.getLeftVisibleCells=F(()=>[J._getAllVisibleCells(),Z.getState().columnPinning.left],(Q,Y)=>{return(Y!=null?Y:[]).map((K)=>Q.find((j)=>j.column.id===K)).filter(Boolean).map((K)=>({...K,position:"left"}))},x(Z.options,"debugRows","getLeftVisibleCells")),J.getRightVisibleCells=F(()=>[J._getAllVisibleCells(),Z.getState().columnPinning.right],(Q,Y)=>{return(Y!=null?Y:[]).map((K)=>Q.find((j)=>j.column.id===K)).filter(Boolean).map((K)=>({...K,position:"right"}))},x(Z.options,"debugRows","getRightVisibleCells"))},createTable:(J)=>{J.setColumnPinning=(Z)=>J.options.onColumnPinningChange==null?void 0:J.options.onColumnPinningChange(Z),J.resetColumnPinning=(Z)=>{var Q,Y;return J.setColumnPinning(Z?D8():(Q=(Y=J.initialState)==null?void 0:Y.columnPinning)!=null?Q:D8())},J.getIsSomeColumnsPinned=(Z)=>{var Q;let Y=J.getState().columnPinning;if(!Z){var X,K;return Boolean(((X=Y.left)==null?void 0:X.length)||((K=Y.right)==null?void 0:K.length))}return Boolean((Q=Y[Z])==null?void 0:Q.length)},J.getLeftLeafColumns=F(()=>[J.getAllLeafColumns(),J.getState().columnPinning.left],(Z,Q)=>{return(Q!=null?Q:[]).map((Y)=>Z.find((X)=>X.id===Y)).filter(Boolean)},x(J.options,"debugColumns","getLeftLeafColumns")),J.getRightLeafColumns=F(()=>[J.getAllLeafColumns(),J.getState().columnPinning.right],(Z,Q)=>{return(Q!=null?Q:[]).map((Y)=>Z.find((X)=>X.id===Y)).filter(Boolean)},x(J.options,"debugColumns","getRightLeafColumns")),J.getCenterLeafColumns=F(()=>[J.getAllLeafColumns(),J.getState().columnPinning.left,J.getState().columnPinning.right],(Z,Q,Y)=>{let X=[...Q!=null?Q:[],...Y!=null?Y:[]];return Z.filter((K)=>!X.includes(K.id))},x(J.options,"debugColumns","getCenterLeafColumns"))}};function eJ(J){return J||(typeof document<"u"?document:null)}var N8={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},P8=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),JQ={getDefaultColumnDef:()=>{return N8},getInitialState:(J)=>{return{columnSizing:{},columnSizingInfo:P8(),...J}},getDefaultOptions:(J)=>{return{columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:g("columnSizing",J),onColumnSizingInfoChange:g("columnSizingInfo",J)}},createColumn:(J,Z)=>{J.getSize=()=>{var Q,Y,X;let K=Z.getState().columnSizing[J.id];return Math.min(Math.max((Q=J.columnDef.minSize)!=null?Q:N8.minSize,(Y=K!=null?K:J.columnDef.size)!=null?Y:N8.size),(X=J.columnDef.maxSize)!=null?X:N8.maxSize)},J.getStart=F((Q)=>[Q,Q8(Z,Q),Z.getState().columnSizing],(Q,Y)=>Y.slice(0,J.getIndex(Q)).reduce((X,K)=>X+K.getSize(),0),x(Z.options,"debugColumns","getStart")),J.getAfter=F((Q)=>[Q,Q8(Z,Q),Z.getState().columnSizing],(Q,Y)=>Y.slice(J.getIndex(Q)+1).reduce((X,K)=>X+K.getSize(),0),x(Z.options,"debugColumns","getAfter")),J.resetSize=()=>{Z.setColumnSizing((Q)=>{let{[J.id]:Y,...X}=Q;return X})},J.getCanResize=()=>{var Q,Y;return((Q=J.columnDef.enableResizing)!=null?Q:!0)&&((Y=Z.options.enableColumnResizing)!=null?Y:!0)},J.getIsResizing=()=>{return Z.getState().columnSizingInfo.isResizingColumn===J.id}},createHeader:(J,Z)=>{J.getSize=()=>{let Q=0,Y=(X)=>{if(X.subHeaders.length)X.subHeaders.forEach(Y);else{var K;Q+=(K=X.column.getSize())!=null?K:0}};return Y(J),Q},J.getStart=()=>{if(J.index>0){let Q=J.headerGroup.headers[J.index-1];return Q.getStart()+Q.getSize()}return 0},J.getResizeHandler=(Q)=>{let Y=Z.getColumn(J.column.id),X=Y==null?void 0:Y.getCanResize();return(K)=>{if(!Y||!X)return;if(K.persist==null||K.persist(),V8(K)){if(K.touches&&K.touches.length>1)return}let j=J.getSize(),N=J?J.getLeafHeaders().map((z)=>[z.column.id,z.column.getSize()]):[[Y.id,Y.getSize()]],q=V8(K)?Math.round(K.touches[0].clientX):K.clientX,U={},A=(z,V)=>{if(typeof V!=="number")return;if(Z.setColumnSizingInfo((O)=>{var M,H;let G=Z.options.columnResizeDirection==="rtl"?-1:1,y=(V-((M=O==null?void 0:O.startOffset)!=null?M:0))*G,v=Math.max(y/((H=O==null?void 0:O.startSize)!=null?H:0),-0.999999);return O.columnSizingStart.forEach((D)=>{let[C,_]=D;U[C]=Math.round(Math.max(_+_*v,0)*100)/100}),{...O,deltaOffset:y,deltaPercentage:v}}),Z.options.columnResizeMode==="onChange"||z==="end")Z.setColumnSizing((O)=>({...O,...U}))},E=(z)=>A("move",z),B=(z)=>{A("end",z),Z.setColumnSizingInfo((V)=>({...V,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},W=eJ(Q),k={moveHandler:(z)=>E(z.clientX),upHandler:(z)=>{W==null||W.removeEventListener("mousemove",k.moveHandler),W==null||W.removeEventListener("mouseup",k.upHandler),B(z.clientX)}},L={moveHandler:(z)=>{if(z.cancelable)z.preventDefault(),z.stopPropagation();return E(z.touches[0].clientX),!1},upHandler:(z)=>{var V;if(W==null||W.removeEventListener("touchmove",L.moveHandler),W==null||W.removeEventListener("touchend",L.upHandler),z.cancelable)z.preventDefault(),z.stopPropagation();B((V=z.touches[0])==null?void 0:V.clientX)}},T=QQ()?{passive:!1}:!1;if(V8(K))W==null||W.addEventListener("touchmove",L.moveHandler,T),W==null||W.addEventListener("touchend",L.upHandler,T);else W==null||W.addEventListener("mousemove",k.moveHandler,T),W==null||W.addEventListener("mouseup",k.upHandler,T);Z.setColumnSizingInfo((z)=>({...z,startOffset:q,startSize:j,deltaOffset:0,deltaPercentage:0,columnSizingStart:N,isResizingColumn:Y.id}))}}},createTable:(J)=>{J.setColumnSizing=(Z)=>J.options.onColumnSizingChange==null?void 0:J.options.onColumnSizingChange(Z),J.setColumnSizingInfo=(Z)=>J.options.onColumnSizingInfoChange==null?void 0:J.options.onColumnSizingInfoChange(Z),J.resetColumnSizing=(Z)=>{var Q;J.setColumnSizing(Z?{}:(Q=J.initialState.columnSizing)!=null?Q:{})},J.resetHeaderSizeInfo=(Z)=>{var Q;J.setColumnSizingInfo(Z?P8():(Q=J.initialState.columnSizingInfo)!=null?Q:P8())},J.getTotalSize=()=>{var Z,Q;return(Z=(Q=J.getHeaderGroups()[0])==null?void 0:Q.headers.reduce((Y,X)=>{return Y+X.getSize()},0))!=null?Z:0},J.getLeftTotalSize=()=>{var Z,Q;return(Z=(Q=J.getLeftHeaderGroups()[0])==null?void 0:Q.headers.reduce((Y,X)=>{return Y+X.getSize()},0))!=null?Z:0},J.getCenterTotalSize=()=>{var Z,Q;return(Z=(Q=J.getCenterHeaderGroups()[0])==null?void 0:Q.headers.reduce((Y,X)=>{return Y+X.getSize()},0))!=null?Z:0},J.getRightTotalSize=()=>{var Z,Q;return(Z=(Q=J.getRightHeaderGroups()[0])==null?void 0:Q.headers.reduce((Y,X)=>{return Y+X.getSize()},0))!=null?Z:0}}},W8=null;function QQ(){if(typeof W8==="boolean")return W8;let J=!1;try{let Z={get passive(){return J=!0,!1}},Q=()=>{};window.addEventListener("test",Q,Z),window.removeEventListener("test",Q)}catch(Z){J=!1}return W8=J,W8}function V8(J){return J.type==="touchstart"}var YQ={getInitialState:(J)=>{return{columnVisibility:{},...J}},getDefaultOptions:(J)=>{return{onColumnVisibilityChange:g("columnVisibility",J)}},createColumn:(J,Z)=>{J.toggleVisibility=(Q)=>{if(J.getCanHide())Z.setColumnVisibility((Y)=>({...Y,[J.id]:Q!=null?Q:!J.getIsVisible()}))},J.getIsVisible=()=>{var Q,Y;let X=J.columns;return(Q=X.length?X.some((K)=>K.getIsVisible()):(Y=Z.getState().columnVisibility)==null?void 0:Y[J.id])!=null?Q:!0},J.getCanHide=()=>{var Q,Y;return((Q=J.columnDef.enableHiding)!=null?Q:!0)&&((Y=Z.options.enableHiding)!=null?Y:!0)},J.getToggleVisibilityHandler=()=>{return(Q)=>{J.toggleVisibility==null||J.toggleVisibility(Q.target.checked)}}},createRow:(J,Z)=>{J._getAllVisibleCells=F(()=>[J.getAllCells(),Z.getState().columnVisibility],(Q)=>{return Q.filter((Y)=>Y.column.getIsVisible())},x(Z.options,"debugRows","_getAllVisibleCells")),J.getVisibleCells=F(()=>[J.getLeftVisibleCells(),J.getCenterVisibleCells(),J.getRightVisibleCells()],(Q,Y,X)=>[...Q,...Y,...X],x(Z.options,"debugRows","getVisibleCells"))},createTable:(J)=>{let Z=(Q,Y)=>{return F(()=>[Y(),Y().filter((X)=>X.getIsVisible()).map((X)=>X.id).join("_")],(X)=>{return X.filter((K)=>K.getIsVisible==null?void 0:K.getIsVisible())},x(J.options,"debugColumns",Q))};J.getVisibleFlatColumns=Z("getVisibleFlatColumns",()=>J.getAllFlatColumns()),J.getVisibleLeafColumns=Z("getVisibleLeafColumns",()=>J.getAllLeafColumns()),J.getLeftVisibleLeafColumns=Z("getLeftVisibleLeafColumns",()=>J.getLeftLeafColumns()),J.getRightVisibleLeafColumns=Z("getRightVisibleLeafColumns",()=>J.getRightLeafColumns()),J.getCenterVisibleLeafColumns=Z("getCenterVisibleLeafColumns",()=>J.getCenterLeafColumns()),J.setColumnVisibility=(Q)=>J.options.onColumnVisibilityChange==null?void 0:J.options.onColumnVisibilityChange(Q),J.resetColumnVisibility=(Q)=>{var Y;J.setColumnVisibility(Q?{}:(Y=J.initialState.columnVisibility)!=null?Y:{})},J.toggleAllColumnsVisible=(Q)=>{var Y;Q=(Y=Q)!=null?Y:!J.getIsAllColumnsVisible(),J.setColumnVisibility(J.getAllLeafColumns().reduce((X,K)=>({...X,[K.id]:!Q?!(K.getCanHide!=null&&K.getCanHide()):Q}),{}))},J.getIsAllColumnsVisible=()=>!J.getAllLeafColumns().some((Q)=>!(Q.getIsVisible!=null&&Q.getIsVisible())),J.getIsSomeColumnsVisible=()=>J.getAllLeafColumns().some((Q)=>Q.getIsVisible==null?void 0:Q.getIsVisible()),J.getToggleAllColumnsVisibilityHandler=()=>{return(Q)=>{var Y;J.toggleAllColumnsVisible((Y=Q.target)==null?void 0:Y.checked)}}}};function Q8(J,Z){return!Z?J.getVisibleLeafColumns():Z==="center"?J.getCenterVisibleLeafColumns():Z==="left"?J.getLeftVisibleLeafColumns():J.getRightVisibleLeafColumns()}var ZQ={createTable:(J)=>{J._getGlobalFacetedRowModel=J.options.getFacetedRowModel&&J.options.getFacetedRowModel(J,"__global__"),J.getGlobalFacetedRowModel=()=>{if(J.options.manualFiltering||!J._getGlobalFacetedRowModel)return J.getPreFilteredRowModel();return J._getGlobalFacetedRowModel()},J._getGlobalFacetedUniqueValues=J.options.getFacetedUniqueValues&&J.options.getFacetedUniqueValues(J,"__global__"),J.getGlobalFacetedUniqueValues=()=>{if(!J._getGlobalFacetedUniqueValues)return new Map;return J._getGlobalFacetedUniqueValues()},J._getGlobalFacetedMinMaxValues=J.options.getFacetedMinMaxValues&&J.options.getFacetedMinMaxValues(J,"__global__"),J.getGlobalFacetedMinMaxValues=()=>{if(!J._getGlobalFacetedMinMaxValues)return;return J._getGlobalFacetedMinMaxValues()}}},XQ={getInitialState:(J)=>{return{globalFilter:void 0,...J}},getDefaultOptions:(J)=>{return{onGlobalFilterChange:g("globalFilter",J),globalFilterFn:"auto",getColumnCanGlobalFilter:(Z)=>{var Q;let Y=(Q=J.getCoreRowModel().flatRows[0])==null||(Q=Q._getAllCellsByColumnId()[Z.id])==null?void 0:Q.getValue();return typeof Y==="string"||typeof Y==="number"}}},createColumn:(J,Z)=>{J.getCanGlobalFilter=()=>{var Q,Y,X,K;return((Q=J.columnDef.enableGlobalFilter)!=null?Q:!0)&&((Y=Z.options.enableGlobalFilter)!=null?Y:!0)&&((X=Z.options.enableFilters)!=null?X:!0)&&((K=Z.options.getColumnCanGlobalFilter==null?void 0:Z.options.getColumnCanGlobalFilter(J))!=null?K:!0)&&!!J.accessorFn}},createTable:(J)=>{J.getGlobalAutoFilterFn=()=>{return m.includesString},J.getGlobalFilterFn=()=>{var Z,Q;let{globalFilterFn:Y}=J.options;return q8(Y)?Y:Y==="auto"?J.getGlobalAutoFilterFn():(Z=(Q=J.options.filterFns)==null?void 0:Q[Y])!=null?Z:m[Y]},J.setGlobalFilter=(Z)=>{J.options.onGlobalFilterChange==null||J.options.onGlobalFilterChange(Z)},J.resetGlobalFilter=(Z)=>{J.setGlobalFilter(Z?void 0:J.initialState.globalFilter)}}},KQ={getInitialState:(J)=>{return{expanded:{},...J}},getDefaultOptions:(J)=>{return{onExpandedChange:g("expanded",J),paginateExpandedRows:!0}},createTable:(J)=>{let Z=!1,Q=!1;J._autoResetExpanded=()=>{var Y,X;if(!Z){J._queue(()=>{Z=!0});return}if((Y=(X=J.options.autoResetAll)!=null?X:J.options.autoResetExpanded)!=null?Y:!J.options.manualExpanding){if(Q)return;Q=!0,J._queue(()=>{J.resetExpanded(),Q=!1})}},J.setExpanded=(Y)=>J.options.onExpandedChange==null?void 0:J.options.onExpandedChange(Y),J.toggleAllRowsExpanded=(Y)=>{if(Y!=null?Y:!J.getIsAllRowsExpanded())J.setExpanded(!0);else J.setExpanded({})},J.resetExpanded=(Y)=>{var X,K;J.setExpanded(Y?{}:(X=(K=J.initialState)==null?void 0:K.expanded)!=null?X:{})},J.getCanSomeRowsExpand=()=>{return J.getPrePaginationRowModel().flatRows.some((Y)=>Y.getCanExpand())},J.getToggleAllRowsExpandedHandler=()=>{return(Y)=>{Y.persist==null||Y.persist(),J.toggleAllRowsExpanded()}},J.getIsSomeRowsExpanded=()=>{let Y=J.getState().expanded;return Y===!0||Object.values(Y).some(Boolean)},J.getIsAllRowsExpanded=()=>{let Y=J.getState().expanded;if(typeof Y==="boolean")return Y===!0;if(!Object.keys(Y).length)return!1;if(J.getRowModel().flatRows.some((X)=>!X.getIsExpanded()))return!1;return!0},J.getExpandedDepth=()=>{let Y=0;return(J.getState().expanded===!0?Object.keys(J.getRowModel().rowsById):Object.keys(J.getState().expanded)).forEach((K)=>{let j=K.split(".");Y=Math.max(Y,j.length)}),Y},J.getPreExpandedRowModel=()=>J.getSortedRowModel(),J.getExpandedRowModel=()=>{if(!J._getExpandedRowModel&&J.options.getExpandedRowModel)J._getExpandedRowModel=J.options.getExpandedRowModel(J);if(J.options.manualExpanding||!J._getExpandedRowModel)return J.getPreExpandedRowModel();return J._getExpandedRowModel()}},createRow:(J,Z)=>{J.toggleExpanded=(Q)=>{Z.setExpanded((Y)=>{var X;let K=Y===!0?!0:!!(Y!=null&&Y[J.id]),j={};if(Y===!0)Object.keys(Z.getRowModel().rowsById).forEach((N)=>{j[N]=!0});else j=Y;if(Q=(X=Q)!=null?X:!K,!K&&Q)return{...j,[J.id]:!0};if(K&&!Q){let{[J.id]:N,...q}=j;return q}return Y})},J.getIsExpanded=()=>{var Q;let Y=Z.getState().expanded;return!!((Q=Z.options.getIsRowExpanded==null?void 0:Z.options.getIsRowExpanded(J))!=null?Q:Y===!0||(Y==null?void 0:Y[J.id]))},J.getCanExpand=()=>{var Q,Y,X;return(Q=Z.options.getRowCanExpand==null?void 0:Z.options.getRowCanExpand(J))!=null?Q:((Y=Z.options.enableExpanding)!=null?Y:!0)&&!!((X=J.subRows)!=null&&X.length)},J.getIsAllParentsExpanded=()=>{let Q=!0,Y=J;while(Q&&Y.parentId)Y=Z.getRow(Y.parentId,!0),Q=Y.getIsExpanded();return Q},J.getToggleExpandedHandler=()=>{let Q=J.getCanExpand();return()=>{if(!Q)return;J.toggleExpanded()}}}},y8=0,C8=10,M8=()=>({pageIndex:y8,pageSize:C8}),jQ={getInitialState:(J)=>{return{...J,pagination:{...M8(),...J==null?void 0:J.pagination}}},getDefaultOptions:(J)=>{return{onPaginationChange:g("pagination",J)}},createTable:(J)=>{let Z=!1,Q=!1;J._autoResetPageIndex=()=>{var Y,X;if(!Z){J._queue(()=>{Z=!0});return}if((Y=(X=J.options.autoResetAll)!=null?X:J.options.autoResetPageIndex)!=null?Y:!J.options.manualPagination){if(Q)return;Q=!0,J._queue(()=>{J.resetPageIndex(),Q=!1})}},J.setPagination=(Y)=>{let X=(K)=>{return s(Y,K)};return J.options.onPaginationChange==null?void 0:J.options.onPaginationChange(X)},J.resetPagination=(Y)=>{var X;J.setPagination(Y?M8():(X=J.initialState.pagination)!=null?X:M8())},J.setPageIndex=(Y)=>{J.setPagination((X)=>{let K=s(Y,X.pageIndex),j=typeof J.options.pageCount>"u"||J.options.pageCount===-1?Number.MAX_SAFE_INTEGER:J.options.pageCount-1;return K=Math.max(0,Math.min(K,j)),{...X,pageIndex:K}})},J.resetPageIndex=(Y)=>{var X,K;J.setPageIndex(Y?y8:(X=(K=J.initialState)==null||(K=K.pagination)==null?void 0:K.pageIndex)!=null?X:y8)},J.resetPageSize=(Y)=>{var X,K;J.setPageSize(Y?C8:(X=(K=J.initialState)==null||(K=K.pagination)==null?void 0:K.pageSize)!=null?X:C8)},J.setPageSize=(Y)=>{J.setPagination((X)=>{let K=Math.max(1,s(Y,X.pageSize)),j=X.pageSize*X.pageIndex,N=Math.floor(j/K);return{...X,pageIndex:N,pageSize:K}})},J.setPageCount=(Y)=>J.setPagination((X)=>{var K;let j=s(Y,(K=J.options.pageCount)!=null?K:-1);if(typeof j==="number")j=Math.max(-1,j);return{...X,pageCount:j}}),J.getPageOptions=F(()=>[J.getPageCount()],(Y)=>{let X=[];if(Y&&Y>0)X=[...Array(Y)].fill(null).map((K,j)=>j);return X},x(J.options,"debugTable","getPageOptions")),J.getCanPreviousPage=()=>J.getState().pagination.pageIndex>0,J.getCanNextPage=()=>{let{pageIndex:Y}=J.getState().pagination,X=J.getPageCount();if(X===-1)return!0;if(X===0)return!1;return Y<X-1},J.previousPage=()=>{return J.setPageIndex((Y)=>Y-1)},J.nextPage=()=>{return J.setPageIndex((Y)=>{return Y+1})},J.firstPage=()=>{return J.setPageIndex(0)},J.lastPage=()=>{return J.setPageIndex(J.getPageCount()-1)},J.getPrePaginationRowModel=()=>J.getExpandedRowModel(),J.getPaginationRowModel=()=>{if(!J._getPaginationRowModel&&J.options.getPaginationRowModel)J._getPaginationRowModel=J.options.getPaginationRowModel(J);if(J.options.manualPagination||!J._getPaginationRowModel)return J.getPrePaginationRowModel();return J._getPaginationRowModel()},J.getPageCount=()=>{var Y;return(Y=J.options.pageCount)!=null?Y:Math.ceil(J.getRowCount()/J.getState().pagination.pageSize)},J.getRowCount=()=>{var Y;return(Y=J.options.rowCount)!=null?Y:J.getPrePaginationRowModel().rows.length}}},F8=()=>({top:[],bottom:[]}),NQ={getInitialState:(J)=>{return{rowPinning:F8(),...J}},getDefaultOptions:(J)=>{return{onRowPinningChange:g("rowPinning",J)}},createRow:(J,Z)=>{J.pin=(Q,Y,X)=>{let K=Y?J.getLeafRows().map((q)=>{let{id:U}=q;return U}):[],j=X?J.getParentRows().map((q)=>{let{id:U}=q;return U}):[],N=new Set([...j,J.id,...K]);Z.setRowPinning((q)=>{var U,A;if(Q==="bottom"){var E,B;return{top:((E=q==null?void 0:q.top)!=null?E:[]).filter((L)=>!(N!=null&&N.has(L))),bottom:[...((B=q==null?void 0:q.bottom)!=null?B:[]).filter((L)=>!(N!=null&&N.has(L))),...Array.from(N)]}}if(Q==="top"){var W,k;return{top:[...((W=q==null?void 0:q.top)!=null?W:[]).filter((L)=>!(N!=null&&N.has(L))),...Array.from(N)],bottom:((k=q==null?void 0:q.bottom)!=null?k:[]).filter((L)=>!(N!=null&&N.has(L)))}}return{top:((U=q==null?void 0:q.top)!=null?U:[]).filter((L)=>!(N!=null&&N.has(L))),bottom:((A=q==null?void 0:q.bottom)!=null?A:[]).filter((L)=>!(N!=null&&N.has(L)))}})},J.getCanPin=()=>{var Q;let{enableRowPinning:Y,enablePinning:X}=Z.options;if(typeof Y==="function")return Y(J);return(Q=Y!=null?Y:X)!=null?Q:!0},J.getIsPinned=()=>{let Q=[J.id],{top:Y,bottom:X}=Z.getState().rowPinning,K=Q.some((N)=>Y==null?void 0:Y.includes(N)),j=Q.some((N)=>X==null?void 0:X.includes(N));return K?"top":j?"bottom":!1},J.getPinnedIndex=()=>{var Q,Y;let X=J.getIsPinned();if(!X)return-1;let K=(Q=X==="top"?Z.getTopRows():Z.getBottomRows())==null?void 0:Q.map((j)=>{let{id:N}=j;return N});return(Y=K==null?void 0:K.indexOf(J.id))!=null?Y:-1}},createTable:(J)=>{J.setRowPinning=(Z)=>J.options.onRowPinningChange==null?void 0:J.options.onRowPinningChange(Z),J.resetRowPinning=(Z)=>{var Q,Y;return J.setRowPinning(Z?F8():(Q=(Y=J.initialState)==null?void 0:Y.rowPinning)!=null?Q:F8())},J.getIsSomeRowsPinned=(Z)=>{var Q;let Y=J.getState().rowPinning;if(!Z){var X,K;return Boolean(((X=Y.top)==null?void 0:X.length)||((K=Y.bottom)==null?void 0:K.length))}return Boolean((Q=Y[Z])==null?void 0:Q.length)},J._getPinnedRows=(Z,Q,Y)=>{var X;return(((X=J.options.keepPinnedRows)!=null?X:!0)?(Q!=null?Q:[]).map((j)=>{let N=J.getRow(j,!0);return N.getIsAllParentsExpanded()?N:null}):(Q!=null?Q:[]).map((j)=>Z.find((N)=>N.id===j))).filter(Boolean).map((j)=>({...j,position:Y}))},J.getTopRows=F(()=>[J.getRowModel().rows,J.getState().rowPinning.top],(Z,Q)=>J._getPinnedRows(Z,Q,"top"),x(J.options,"debugRows","getTopRows")),J.getBottomRows=F(()=>[J.getRowModel().rows,J.getState().rowPinning.bottom],(Z,Q)=>J._getPinnedRows(Z,Q,"bottom"),x(J.options,"debugRows","getBottomRows")),J.getCenterRows=F(()=>[J.getRowModel().rows,J.getState().rowPinning.top,J.getState().rowPinning.bottom],(Z,Q,Y)=>{let X=new Set([...Q!=null?Q:[],...Y!=null?Y:[]]);return Z.filter((K)=>!X.has(K.id))},x(J.options,"debugRows","getCenterRows"))}},WQ={getInitialState:(J)=>{return{rowSelection:{},...J}},getDefaultOptions:(J)=>{return{onRowSelectionChange:g("rowSelection",J),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}},createTable:(J)=>{J.setRowSelection=(Z)=>J.options.onRowSelectionChange==null?void 0:J.options.onRowSelectionChange(Z),J.resetRowSelection=(Z)=>{var Q;return J.setRowSelection(Z?{}:(Q=J.initialState.rowSelection)!=null?Q:{})},J.toggleAllRowsSelected=(Z)=>{J.setRowSelection((Q)=>{Z=typeof Z<"u"?Z:!J.getIsAllRowsSelected();let Y={...Q},X=J.getPreGroupedRowModel().flatRows;if(Z)X.forEach((K)=>{if(!K.getCanSelect())return;Y[K.id]=!0});else X.forEach((K)=>{delete Y[K.id]});return Y})},J.toggleAllPageRowsSelected=(Z)=>J.setRowSelection((Q)=>{let Y=typeof Z<"u"?Z:!J.getIsAllPageRowsSelected(),X={...Q};return J.getRowModel().rows.forEach((K)=>{v8(X,K.id,Y,!0,J)}),X}),J.getPreSelectedRowModel=()=>J.getCoreRowModel(),J.getSelectedRowModel=F(()=>[J.getState().rowSelection,J.getCoreRowModel()],(Z,Q)=>{if(!Object.keys(Z).length)return{rows:[],flatRows:[],rowsById:{}};return x8(J,Q)},x(J.options,"debugTable","getSelectedRowModel")),J.getFilteredSelectedRowModel=F(()=>[J.getState().rowSelection,J.getFilteredRowModel()],(Z,Q)=>{if(!Object.keys(Z).length)return{rows:[],flatRows:[],rowsById:{}};return x8(J,Q)},x(J.options,"debugTable","getFilteredSelectedRowModel")),J.getGroupedSelectedRowModel=F(()=>[J.getState().rowSelection,J.getSortedRowModel()],(Z,Q)=>{if(!Object.keys(Z).length)return{rows:[],flatRows:[],rowsById:{}};return x8(J,Q)},x(J.options,"debugTable","getGroupedSelectedRowModel")),J.getIsAllRowsSelected=()=>{let Z=J.getFilteredRowModel().flatRows,{rowSelection:Q}=J.getState(),Y=Boolean(Z.length&&Object.keys(Q).length);if(Y){if(Z.some((X)=>X.getCanSelect()&&!Q[X.id]))Y=!1}return Y},J.getIsAllPageRowsSelected=()=>{let Z=J.getPaginationRowModel().flatRows.filter((X)=>X.getCanSelect()),{rowSelection:Q}=J.getState(),Y=!!Z.length;if(Y&&Z.some((X)=>!Q[X.id]))Y=!1;return Y},J.getIsSomeRowsSelected=()=>{var Z;let Q=Object.keys((Z=J.getState().rowSelection)!=null?Z:{}).length;return Q>0&&Q<J.getFilteredRowModel().flatRows.length},J.getIsSomePageRowsSelected=()=>{let Z=J.getPaginationRowModel().flatRows;return J.getIsAllPageRowsSelected()?!1:Z.filter((Q)=>Q.getCanSelect()).some((Q)=>Q.getIsSelected()||Q.getIsSomeSelected())},J.getToggleAllRowsSelectedHandler=()=>{return(Z)=>{J.toggleAllRowsSelected(Z.target.checked)}},J.getToggleAllPageRowsSelectedHandler=()=>{return(Z)=>{J.toggleAllPageRowsSelected(Z.target.checked)}}},createRow:(J,Z)=>{J.toggleSelected=(Q,Y)=>{let X=J.getIsSelected();Z.setRowSelection((K)=>{var j;if(Q=typeof Q<"u"?Q:!X,J.getCanSelect()&&X===Q)return K;let N={...K};return v8(N,J.id,Q,(j=Y==null?void 0:Y.selectChildren)!=null?j:!0,Z),N})},J.getIsSelected=()=>{let{rowSelection:Q}=Z.getState();return $8(J,Q)},J.getIsSomeSelected=()=>{let{rowSelection:Q}=Z.getState();return _8(J,Q)==="some"},J.getIsAllSubRowsSelected=()=>{let{rowSelection:Q}=Z.getState();return _8(J,Q)==="all"},J.getCanSelect=()=>{var Q;if(typeof Z.options.enableRowSelection==="function")return Z.options.enableRowSelection(J);return(Q=Z.options.enableRowSelection)!=null?Q:!0},J.getCanSelectSubRows=()=>{var Q;if(typeof Z.options.enableSubRowSelection==="function")return Z.options.enableSubRowSelection(J);return(Q=Z.options.enableSubRowSelection)!=null?Q:!0},J.getCanMultiSelect=()=>{var Q;if(typeof Z.options.enableMultiRowSelection==="function")return Z.options.enableMultiRowSelection(J);return(Q=Z.options.enableMultiRowSelection)!=null?Q:!0},J.getToggleSelectedHandler=()=>{let Q=J.getCanSelect();return(Y)=>{var X;if(!Q)return;J.toggleSelected((X=Y.target)==null?void 0:X.checked)}}}},v8=(J,Z,Q,Y,X)=>{var K;let j=X.getRow(Z,!0);if(Q){if(!j.getCanMultiSelect())Object.keys(J).forEach((N)=>delete J[N]);if(j.getCanSelect())J[Z]=!0}else delete J[Z];if(Y&&(K=j.subRows)!=null&&K.length&&j.getCanSelectSubRows())j.subRows.forEach((N)=>v8(J,N.id,Q,Y,X))};function x8(J,Z){let Q=J.getState().rowSelection,Y=[],X={},K=function(j,N){return j.map((q)=>{var U;let A=$8(q,Q);if(A)Y.push(q),X[q.id]=q;if((U=q.subRows)!=null&&U.length)q={...q,subRows:K(q.subRows)};if(A)return q}).filter(Boolean)};return{rows:K(Z.rows),flatRows:Y,rowsById:X}}function $8(J,Z){var Q;return(Q=Z[J.id])!=null?Q:!1}function _8(J,Z,Q){var Y;if(!((Y=J.subRows)!=null&&Y.length))return!1;let X=!0,K=!1;return J.subRows.forEach((j)=>{if(K&&!X)return;if(j.getCanSelect())if($8(j,Z))K=!0;else X=!1;if(j.subRows&&j.subRows.length){let N=_8(j,Z);if(N==="all")K=!0;else if(N==="some")K=!0,X=!1;else X=!1}}),X?"all":K?"some":!1}var I8=/([0-9]+)/gm,qQ=(J,Z,Q)=>{return ZJ(d(J.getValue(Q)).toLowerCase(),d(Z.getValue(Q)).toLowerCase())},BQ=(J,Z,Q)=>{return ZJ(d(J.getValue(Q)),d(Z.getValue(Q)))},UQ=(J,Z,Q)=>{return h8(d(J.getValue(Q)).toLowerCase(),d(Z.getValue(Q)).toLowerCase())},AQ=(J,Z,Q)=>{return h8(d(J.getValue(Q)),d(Z.getValue(Q)))},kQ=(J,Z,Q)=>{let Y=J.getValue(Q),X=Z.getValue(Q);return Y>X?1:Y<X?-1:0},LQ=(J,Z,Q)=>{return h8(J.getValue(Q),Z.getValue(Q))};function h8(J,Z){return J===Z?0:J>Z?1:-1}function d(J){if(typeof J==="number"){if(isNaN(J)||J===1/0||J===-1/0)return"";return String(J)}if(typeof J==="string")return J;return""}function ZJ(J,Z){let Q=J.split(I8).filter(Boolean),Y=Z.split(I8).filter(Boolean);while(Q.length&&Y.length){let X=Q.shift(),K=Y.shift(),j=parseInt(X,10),N=parseInt(K,10),q=[j,N].sort();if(isNaN(q[0])){if(X>K)return 1;if(K>X)return-1;continue}if(isNaN(q[1]))return isNaN(j)?-1:1;if(j>N)return 1;if(N>j)return-1}return Q.length-Y.length}var J8={alphanumeric:qQ,alphanumericCaseSensitive:BQ,text:UQ,textCaseSensitive:AQ,datetime:kQ,basic:LQ},EQ={getInitialState:(J)=>{return{sorting:[],...J}},getDefaultColumnDef:()=>{return{sortingFn:"auto",sortUndefined:1}},getDefaultOptions:(J)=>{return{onSortingChange:g("sorting",J),isMultiSortEvent:(Z)=>{return Z.shiftKey}}},createColumn:(J,Z)=>{J.getAutoSortingFn=()=>{let Q=Z.getFilteredRowModel().flatRows.slice(10),Y=!1;for(let X of Q){let K=X==null?void 0:X.getValue(J.id);if(Object.prototype.toString.call(K)==="[object Date]")return J8.datetime;if(typeof K==="string"){if(Y=!0,K.split(I8).length>1)return J8.alphanumeric}}if(Y)return J8.text;return J8.basic},J.getAutoSortDir=()=>{let Q=Z.getFilteredRowModel().flatRows[0];if(typeof(Q==null?void 0:Q.getValue(J.id))==="string")return"asc";return"desc"},J.getSortingFn=()=>{var Q,Y;if(!J)throw Error();return q8(J.columnDef.sortingFn)?J.columnDef.sortingFn:J.columnDef.sortingFn==="auto"?J.getAutoSortingFn():(Q=(Y=Z.options.sortingFns)==null?void 0:Y[J.columnDef.sortingFn])!=null?Q:J8[J.columnDef.sortingFn]},J.toggleSorting=(Q,Y)=>{let X=J.getNextSortingOrder(),K=typeof Q<"u"&&Q!==null;Z.setSorting((j)=>{let N=j==null?void 0:j.find((W)=>W.id===J.id),q=j==null?void 0:j.findIndex((W)=>W.id===J.id),U=[],A,E=K?Q:X==="desc";if(j!=null&&j.length&&J.getCanMultiSort()&&Y)if(N)A="toggle";else A="add";else if(j!=null&&j.length&&q!==j.length-1)A="replace";else if(N)A="toggle";else A="replace";if(A==="toggle"){if(!K){if(!X)A="remove"}}if(A==="add"){var B;U=[...j,{id:J.id,desc:E}],U.splice(0,U.length-((B=Z.options.maxMultiSortColCount)!=null?B:Number.MAX_SAFE_INTEGER))}else if(A==="toggle")U=j.map((W)=>{if(W.id===J.id)return{...W,desc:E};return W});else if(A==="remove")U=j.filter((W)=>W.id!==J.id);else U=[{id:J.id,desc:E}];return U})},J.getFirstSortDir=()=>{var Q,Y;return((Q=(Y=J.columnDef.sortDescFirst)!=null?Y:Z.options.sortDescFirst)!=null?Q:J.getAutoSortDir()==="desc")?"desc":"asc"},J.getNextSortingOrder=(Q)=>{var Y,X;let K=J.getFirstSortDir(),j=J.getIsSorted();if(!j)return K;if(j!==K&&((Y=Z.options.enableSortingRemoval)!=null?Y:!0)&&(Q?(X=Z.options.enableMultiRemove)!=null?X:!0:!0))return!1;return j==="desc"?"asc":"desc"},J.getCanSort=()=>{var Q,Y;return((Q=J.columnDef.enableSorting)!=null?Q:!0)&&((Y=Z.options.enableSorting)!=null?Y:!0)&&!!J.accessorFn},J.getCanMultiSort=()=>{var Q,Y;return(Q=(Y=J.columnDef.enableMultiSort)!=null?Y:Z.options.enableMultiSort)!=null?Q:!!J.accessorFn},J.getIsSorted=()=>{var Q;let Y=(Q=Z.getState().sorting)==null?void 0:Q.find((X)=>X.id===J.id);return!Y?!1:Y.desc?"desc":"asc"},J.getSortIndex=()=>{var Q,Y;return(Q=(Y=Z.getState().sorting)==null?void 0:Y.findIndex((X)=>X.id===J.id))!=null?Q:-1},J.clearSorting=()=>{Z.setSorting((Q)=>Q!=null&&Q.length?Q.filter((Y)=>Y.id!==J.id):[])},J.getToggleSortingHandler=()=>{let Q=J.getCanSort();return(Y)=>{if(!Q)return;Y.persist==null||Y.persist(),J.toggleSorting==null||J.toggleSorting(void 0,J.getCanMultiSort()?Z.options.isMultiSortEvent==null?void 0:Z.options.isMultiSortEvent(Y):!1)}}},createTable:(J)=>{J.setSorting=(Z)=>J.options.onSortingChange==null?void 0:J.options.onSortingChange(Z),J.resetSorting=(Z)=>{var Q,Y;J.setSorting(Z?[]:(Q=(Y=J.initialState)==null?void 0:Y.sorting)!=null?Q:[])},J.getPreSortedRowModel=()=>J.getGroupedRowModel(),J.getSortedRowModel=()=>{if(!J._getSortedRowModel&&J.options.getSortedRowModel)J._getSortedRowModel=J.options.getSortedRowModel(J);if(J.options.manualSorting||!J._getSortedRowModel)return J.getPreSortedRowModel();return J._getSortedRowModel()}}},TQ=[gJ,YQ,lJ,tJ,wJ,pJ,ZQ,XQ,EQ,aJ,KQ,jQ,NQ,WQ,JQ];function XJ(J){var Z,Q;if(J.debugAll||J.debugTable)console.info("Creating Table Instance...");let Y=[...TQ,...(Z=J._features)!=null?Z:[]],X={_features:Y},K=X._features.reduce((B,W)=>{return Object.assign(B,W.getDefaultOptions==null?void 0:W.getDefaultOptions(X))},{}),j=(B)=>{if(X.options.mergeOptions)return X.options.mergeOptions(K,B);return{...K,...B}},q={...{},...(Q=J.initialState)!=null?Q:{}};X._features.forEach((B)=>{var W;q=(W=B.getInitialState==null?void 0:B.getInitialState(q))!=null?W:q});let U=[],A=!1,E={_features:Y,options:{...K,...J},initialState:q,_queue:(B)=>{if(U.push(B),!A)A=!0,Promise.resolve().then(()=>{while(U.length)U.shift()();A=!1}).catch((W)=>setTimeout(()=>{throw W}))},reset:()=>{X.setState(X.initialState)},setOptions:(B)=>{let W=s(B,X.options);X.options=j(W)},getState:()=>{return X.options.state},setState:(B)=>{X.options.onStateChange==null||X.options.onStateChange(B)},_getRowId:(B,W,k)=>{var L;return(L=X.options.getRowId==null?void 0:X.options.getRowId(B,W,k))!=null?L:`${k?[k.id,W].join("."):W}`},getCoreRowModel:()=>{if(!X._getCoreRowModel)X._getCoreRowModel=X.options.getCoreRowModel(X);return X._getCoreRowModel()},getRowModel:()=>{return X.getPaginationRowModel()},getRow:(B,W)=>{let k=(W?X.getPrePaginationRowModel():X.getRowModel()).rowsById[B];if(!k){if(k=X.getCoreRowModel().rowsById[B],!k)throw Error(`getRow could not find row with ID: ${B}`)}return k},_getDefaultColumnDef:F(()=>[X.options.defaultColumn],(B)=>{var W;return B=(W=B)!=null?W:{},{header:(k)=>{let L=k.header.column.columnDef;if(L.accessorKey)return L.accessorKey;if(L.accessorFn)return L.id;return null},cell:(k)=>{var L,T;return(L=(T=k.renderValue())==null||T.toString==null?void 0:T.toString())!=null?L:null},...X._features.reduce((k,L)=>{return Object.assign(k,L.getDefaultColumnDef==null?void 0:L.getDefaultColumnDef())},{}),...B}},x(J,"debugColumns","_getDefaultColumnDef")),_getColumnDefs:()=>X.options.columns,getAllColumns:F(()=>[X._getColumnDefs()],(B)=>{let W=function(k,L,T){if(T===void 0)T=0;return k.map((z)=>{let V=fJ(X,z,T,L),O=z;return V.columns=O.columns?W(O.columns,V,T+1):[],V})};return W(B)},x(J,"debugColumns","getAllColumns")),getAllFlatColumns:F(()=>[X.getAllColumns()],(B)=>{return B.flatMap((W)=>{return W.getFlatColumns()})},x(J,"debugColumns","getAllFlatColumns")),_getAllFlatColumnsById:F(()=>[X.getAllFlatColumns()],(B)=>{return B.reduce((W,k)=>{return W[k.id]=k,W},{})},x(J,"debugColumns","getAllFlatColumnsById")),getAllLeafColumns:F(()=>[X.getAllColumns(),X._getOrderColumnsFn()],(B,W)=>{let k=B.flatMap((L)=>L.getLeafColumns());return W(k)},x(J,"debugColumns","getAllLeafColumns")),getColumn:(B)=>{let W=X._getAllFlatColumnsById()[B];if(!W)console.error(`[Table] Column with id '${B}' does not exist.`);return W}};Object.assign(X,E);for(let B=0;B<X._features.length;B++){let W=X._features[B];W==null||W.createTable==null||W.createTable(X)}return X}function B8(){return(J)=>F(()=>[J.options.data],(Z)=>{let Q={rows:[],flatRows:[],rowsById:{}},Y=function(X,K,j){if(K===void 0)K=0;let N=[];for(let U=0;U<X.length;U++){let A=R8(J,J._getRowId(X[U],U,j),X[U],U,K,void 0,j==null?void 0:j.id);if(Q.flatRows.push(A),Q.rowsById[A.id]=A,N.push(A),J.options.getSubRows){var q;if(A.originalSubRows=J.options.getSubRows(X[U],U),(q=A.originalSubRows)!=null&&q.length)A.subRows=Y(A.originalSubRows,K+1,A)}}return N};return Q.rows=Y(Z),Q},x(J.options,"debugTable","getRowModel",()=>J._autoResetPageIndex()))}function zQ(J){let Z=[],Q=(Y)=>{var X;if(Z.push(Y),(X=Y.subRows)!=null&&X.length&&Y.getIsExpanded())Y.subRows.forEach(Q)};return J.rows.forEach(Q),{rows:Z,flatRows:J.flatRows,rowsById:J.rowsById}}function GQ(J,Z,Q){if(Q.options.filterFromLeafRows)return OQ(J,Z,Q);return HQ(J,Z,Q)}function OQ(J,Z,Q){var Y;let X=[],K={},j=(Y=Q.options.maxLeafRowFilterDepth)!=null?Y:100,N=function(q,U){if(U===void 0)U=0;let A=[];for(let B=0;B<q.length;B++){var E;let W=q[B],k=R8(Q,W.id,W.original,W.index,W.depth,void 0,W.parentId);if(k.columnFilters=W.columnFilters,(E=W.subRows)!=null&&E.length&&U<j){if(k.subRows=N(W.subRows,U+1),W=k,Z(W)&&!k.subRows.length){A.push(W),K[W.id]=W,X.push(W);continue}if(Z(W)||k.subRows.length){A.push(W),K[W.id]=W,X.push(W);continue}}else if(W=k,Z(W))A.push(W),K[W.id]=W,X.push(W)}return A};return{rows:N(J),flatRows:X,rowsById:K}}function HQ(J,Z,Q){var Y;let X=[],K={},j=(Y=Q.options.maxLeafRowFilterDepth)!=null?Y:100,N=function(q,U){if(U===void 0)U=0;let A=[];for(let B=0;B<q.length;B++){let W=q[B];if(Z(W)){var E;if((E=W.subRows)!=null&&E.length&&U<j){let L=R8(Q,W.id,W.original,W.index,W.depth,void 0,W.parentId);L.subRows=N(W.subRows,U+1),W=L}A.push(W),X.push(W),K[W.id]=W}}return A};return{rows:N(J),flatRows:X,rowsById:K}}function KJ(){return(J)=>F(()=>[J.getPreFilteredRowModel(),J.getState().columnFilters,J.getState().globalFilter],(Z,Q,Y)=>{if(!Z.rows.length||!(Q!=null&&Q.length)&&!Y){for(let B=0;B<Z.flatRows.length;B++)Z.flatRows[B].columnFilters={},Z.flatRows[B].columnFiltersMeta={};return Z}let X=[],K=[];(Q!=null?Q:[]).forEach((B)=>{var W;let k=J.getColumn(B.id);if(!k)return;let L=k.getFilterFn();if(!L){console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${k.id}.`);return}X.push({id:B.id,filterFn:L,resolvedValue:(W=L.resolveFilterValue==null?void 0:L.resolveFilterValue(B.value))!=null?W:B.value})});let j=(Q!=null?Q:[]).map((B)=>B.id),N=J.getGlobalFilterFn(),q=J.getAllLeafColumns().filter((B)=>B.getCanGlobalFilter());if(Y&&N&&q.length)j.push("__global__"),q.forEach((B)=>{var W;K.push({id:B.id,filterFn:N,resolvedValue:(W=N.resolveFilterValue==null?void 0:N.resolveFilterValue(Y))!=null?W:Y})});let U,A;for(let B=0;B<Z.flatRows.length;B++){let W=Z.flatRows[B];if(W.columnFilters={},X.length)for(let k=0;k<X.length;k++){U=X[k];let L=U.id;W.columnFilters[L]=U.filterFn(W,L,U.resolvedValue,(T)=>{W.columnFiltersMeta[L]=T})}if(K.length){for(let k=0;k<K.length;k++){A=K[k];let L=A.id;if(A.filterFn(W,L,A.resolvedValue,(T)=>{W.columnFiltersMeta[L]=T})){W.columnFilters.__global__=!0;break}}if(W.columnFilters.__global__!==!0)W.columnFilters.__global__=!1}}let E=(B)=>{for(let W=0;W<j.length;W++)if(B.columnFilters[j[W]]===!1)return!1;return!0};return GQ(Z.rows,E,J)},x(J.options,"debugTable","getFilteredRowModel",()=>J._autoResetPageIndex()))}function jJ(J){return(Z)=>F(()=>[Z.getState().pagination,Z.getPrePaginationRowModel(),Z.options.paginateExpandedRows?void 0:Z.getState().expanded],(Q,Y)=>{if(!Y.rows.length)return Y;let{pageSize:X,pageIndex:K}=Q,{rows:j,flatRows:N,rowsById:q}=Y,U=X*K,A=U+X;j=j.slice(U,A);let E;if(!Z.options.paginateExpandedRows)E=zQ({rows:j,flatRows:N,rowsById:q});else E={rows:j,flatRows:N,rowsById:q};E.flatRows=[];let B=(W)=>{if(E.flatRows.push(W),W.subRows.length)W.subRows.forEach(B)};return E.rows.forEach(B),E},x(Z.options,"debugTable","getPaginationRowModel"))}function NJ(){return(J)=>F(()=>[J.getState().sorting,J.getPreSortedRowModel()],(Z,Q)=>{if(!Q.rows.length||!(Z!=null&&Z.length))return Q;let Y=J.getState().sorting,X=[],K=Y.filter((q)=>{var U;return(U=J.getColumn(q.id))==null?void 0:U.getCanSort()}),j={};K.forEach((q)=>{let U=J.getColumn(q.id);if(!U)return;j[q.id]={sortUndefined:U.columnDef.sortUndefined,invertSorting:U.columnDef.invertSorting,sortingFn:U.getSortingFn()}});let N=(q)=>{let U=q.map((A)=>({...A}));return U.sort((A,E)=>{for(let W=0;W<K.length;W+=1){var B;let k=K[W],L=j[k.id],T=L.sortUndefined,z=(B=k==null?void 0:k.desc)!=null?B:!1,V=0;if(T){let O=A.getValue(k.id),M=E.getValue(k.id),H=O===void 0,G=M===void 0;if(H||G){if(T==="first")return H?-1:1;if(T==="last")return H?1:-1;V=H&&G?0:H?T:-T}}if(V===0)V=L.sortingFn(A,E,k.id);if(V!==0){if(z)V*=-1;if(L.invertSorting)V*=-1;return V}}return A.index-E.index}),U.forEach((A)=>{var E;if(X.push(A),(E=A.subRows)!=null&&E.length)A.subRows=N(A.subRows)}),U};return{rows:N(Q.rows),flatRows:X,rowsById:Q.rowsById}},x(J.options,"debugTable","getSortedRowModel",()=>J._autoResetPageIndex()))}function A8(J){let Z={state:{},onStateChange:()=>{},renderFallbackValue:null,...J},[Q]=U8.useState(()=>({current:XJ(Z)})),[Y,X]=U8.useState(()=>Q.current.initialState);return Q.current.setOptions((K)=>({...K,...J,state:{...Y,...J.state},onStateChange:(j)=>{X(j),J.onStateChange==null||J.onStateChange(j)}})),Q.current}import{useEffect as f8,useMemo as DQ,useState as o}from"react";function PQ(J){let{data:Z,columns:Q,totalCount:Y,enablePagination:X=!0,pageSize:K=10,onPaginationChange:j,enableSorting:N=!0,initialSorting:q=[],onSortingChange:U,initialColumnFilters:A=[],initialColumnVisibility:E={},enableRowSelection:B=!1,onSelectionChange:W}=J,[k,L]=o(q),[T,z]=o(A),[V,O]=o(""),[M,H]=o(E),[G,y]=o({}),[v,D]=o({pageIndex:0,pageSize:K});f8(()=>{if(X&&j)j({pageIndex:v.pageIndex,pageSize:v.pageSize})},[v,X,j]),f8(()=>{if(N&&U)U(k)},[k,N,U]);let C=A8({data:Z,columns:Q,state:{sorting:N?k:void 0,columnFilters:T,columnVisibility:M,rowSelection:B?G:void 0,pagination:X?v:void 0},onSortingChange:N?L:void 0,onColumnFiltersChange:z,onColumnVisibilityChange:H,onRowSelectionChange:B?y:void 0,onPaginationChange:X?D:void 0,getCoreRowModel:B8(),enableSorting:N,enableRowSelection:B,manualPagination:X,manualSorting:N,pageCount:X&&Y!==void 0?Math.ceil(Y/v.pageSize):void 0});f8(()=>{if(W&&B){let P=C.getFilteredSelectedRowModel().rows.map(($)=>$.original);W(P)}},[C,W,B]);let _=DQ(()=>{let P=v.pageIndex*v.pageSize+1,$=Math.min((v.pageIndex+1)*v.pageSize,Y);return{start:P,end:$,total:Y,pageCount:X&&Y!==void 0?Math.ceil(Y/v.pageSize):1}},[v,Y,X]);return{table:C,sorting:k,setSorting:L,pagination:v,setPagination:D,columnFilters:T,setColumnFilters:z,globalFilter:V,setGlobalFilter:O,columnVisibility:M,setColumnVisibility:H,rowSelection:G,setRowSelection:y,paginationInfo:_}}import{useEffect as VQ,useMemo as MQ,useState as l}from"react";function FQ(J){let{data:Z,columns:Q,enablePagination:Y=!0,pageSize:X=10,enableSorting:K=!0,initialSorting:j=[],enableGlobalFilter:N=!0,initialColumnFilters:q=[],initialColumnVisibility:U={},enableRowSelection:A=!1,onSelectionChange:E}=J,[B,W]=l(j),[k,L]=l(q),[T,z]=l(""),[V,O]=l(U),[M,H]=l({}),[G,y]=l({pageIndex:0,pageSize:X}),v=A8({data:Z,columns:Q,state:{sorting:K?B:void 0,columnFilters:k,globalFilter:N?T:void 0,columnVisibility:V,rowSelection:A?M:void 0,pagination:Y?G:void 0},onSortingChange:K?W:void 0,onColumnFiltersChange:L,onGlobalFilterChange:N?z:void 0,onColumnVisibilityChange:O,onRowSelectionChange:A?H:void 0,onPaginationChange:Y?y:void 0,getCoreRowModel:B8(),getFilteredRowModel:KJ(),getPaginationRowModel:Y?jJ():void 0,getSortedRowModel:K?NJ():void 0,enableSorting:K,enableRowSelection:A,manualPagination:!1,manualSorting:!1});VQ(()=>{if(E&&A){let C=v.getFilteredSelectedRowModel().rows.map((_)=>_.original);E(C)}},[v,E,A]);let D=MQ(()=>{let C=v.getFilteredRowModel().rows.length;if(!Y)return{start:1,end:C,total:C,pageCount:1};let _=G.pageIndex*G.pageSize+1,P=Math.min((G.pageIndex+1)*G.pageSize,C);return{start:_,end:P,total:C,pageCount:v.getPageCount()}},[v,G,Y]);return{table:v,sorting:B,setSorting:W,pagination:G,setPagination:y,columnFilters:k,setColumnFilters:L,globalFilter:T,setGlobalFilter:z,columnVisibility:V,setColumnVisibility:O,rowSelection:M,setRowSelection:H,paginationInfo:D}}import{useCallback as k8,useEffect as WJ,useMemo as qJ,useRef as BJ,useState as UJ}from"react";var xQ=768;function yQ({sidebarOpen:J,setSidebarOpen:Z,side:Q="left",persistKey:Y="default",defaultSidebarPct:X=0.28,minPx:K=250,maxPct:j=0.6,maxPxCap:N=500,mobileDrawer:q=!0,tinySizePx:U,snapThreshold:A=50}){let E=BJ(null),B=BJ(null),[W,k]=UJ(!1),[L,T]=UJ(X*100);WJ(()=>{let D=()=>{k(window.innerWidth<xQ)};return D(),window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),WJ(()=>{if(typeof window>"u")return;let D=`resizable-sidebar-${Y}`,C=localStorage.getItem(D);if(C)try{let _=JSON.parse(C);if(typeof _.size==="number"&&_.size>0&&_.size<100)T(_.size)}catch{}},[Y]);let z=k8((D)=>{if(typeof window>"u")return;let C=`resizable-sidebar-${Y}`;localStorage.setItem(C,JSON.stringify({size:D,timestamp:Date.now()}))},[Y]),V=qJ(()=>{if(!E.current)return K/1920*100;let D=E.current.offsetWidth;return K/D*100},[K]),O=qJ(()=>{if(!E.current)return j*100;let D=E.current.offsetWidth;return Math.min(N,D*j)/D*100},[j,N]),M=k8(()=>{if(J)B.current?.collapse(),Z(!1);else B.current?.expand(),Z(!0)},[J,Z]),H=k8((D)=>{if(D.length>0){let C=Q==="left"?D[0]:D[D.length-1];T(C),z(C)}},[Q,z]),G=k8(()=>{if(!U||!E.current)return;let D=E.current.offsetWidth,C=L/100*D,_=U/D*100;if(Math.abs(C-U)<=A&&C<U+A){let P=_;T(P),z(P),B.current?.resize(P)}},[L,U,A,z]),y=q&&W,v=`resizable-${Y}`;return{handleDoubleClick:M,shouldUseMobileDrawer:y,containerRef:E,autoSaveId:v,handleLayout:H,sidebarPanelRef:B,sidebarSize:L,minSize:V,maxSize:O,handleResizeEnd:G}}import{useCallback as Y8,useEffect as AJ,useRef as g8,useState as t}from"react";function CQ(J={}){let{wsUrl:Z,executeScript:Q,onOutput:Y,onError:X,autoConnect:K=!0,maxReconnectAttempts:j=3,defaultScript:N=""}=J,[q,U]=t(N),[A,E]=t([]),[B,W]=t(""),[k,L]=t("terminal"),[T,z]=t(!1),[V,O]=t(!1),M=g8(null),H=g8(0),G=g8(!0),y=Y8((P,$)=>{let R={id:`${Date.now()}-${Math.random()}`,type:P,content:$,timestamp:new Date};E((E8)=>[...E8,R]),Y?.(R)},[Y]),v=Y8(()=>{if(!Z)return;if(M.current&&M.current.readyState===WebSocket.OPEN)return;if(M.current){try{M.current.close()}catch{}M.current=null}if(!G.current)return;try{let P=new WebSocket(Z);M.current=P,P.onopen=()=>{O(!0),H.current=0},P.onmessage=($)=>{try{let R=JSON.parse($.data);if(R.type==="output")y("output",R.content);else if(R.type==="error")y("error",R.content);else if(R.type==="result")W(JSON.stringify(R.content,null,2)),L("preview");else if(R.type==="system")console.log("[useScriptEditor] Mensagem de sistema:",R.content)}catch{y("output",$.data)}},P.onerror=($)=>{console.error("[useScriptEditor] WebSocket error:",$),O(!1),X?.(Error("Erro na conexão WebSocket"))},P.onclose=($)=>{if(O(!1),M.current=null,$.code!==1000&&G.current&&H.current<j)H.current+=1,setTimeout(()=>{if(G.current)v()},3000);else if(H.current>=j)console.warn("[useScriptEditor] Máximo de tentativas de reconexão atingido")}}catch(P){console.error("[useScriptEditor] Erro ao conectar WebSocket:",P),O(!1),X?.(P instanceof Error?P:Error("Erro desconhecido ao conectar"))}},[Z,j,y,X]);AJ(()=>{if(K&&Z){let P=setTimeout(()=>{v()},100);return()=>{clearTimeout(P)}}},[K,Z,v]),AJ(()=>{return()=>{if(G.current=!1,M.current){try{M.current.close(1000,"Component unmounting")}catch{}M.current=null}}},[]);let D=Y8(async()=>{if(!q.trim()){y("error","❌ Script vazio");return}z(!0),y("input",q);try{if(M.current&&M.current.readyState===WebSocket.OPEN)M.current.send(JSON.stringify({type:"execute",script:q}));else if(Q)try{let P=await Q(q);if(P.output)y("output",P.output);if(P.error)y("error",P.error);if(P.result)W(JSON.stringify(P.result,null,2)),L("preview")}catch(P){y("error",`❌ Erro na requisição: ${P instanceof Error?P.message:"Erro desconhecido"}`)}else y("error","❌ Nenhuma forma de execução disponível (WebSocket ou HTTP)")}catch(P){y("error",`❌ Erro ao executar: ${P instanceof Error?P.message:"Erro desconhecido"}`)}finally{z(!1)}},[q,Q,y]),C=Y8(()=>{if(M.current&&M.current.readyState===WebSocket.OPEN)M.current.send(JSON.stringify({type:"stop"}));z(!1)},[]),_=Y8(()=>{E([]),W("")},[]);return{script:q,setScript:U,terminalLines:A,preview:B,activeTab:k,setActiveTab:L,isRunning:T,isConnected:V,executeScript:D,stopExecution:C,clearTerminal:_,addTerminalLine:y}}import{useCallback as kJ,useMemo as Z8}from"react";function w8(J,Z="pt-BR"){if(J>=1e6)return`${new Intl.NumberFormat(Z,{minimumFractionDigits:1,maximumFractionDigits:1}).format(J/1e6)}M`;if(J>=1000)return new Intl.NumberFormat(Z).format(J);return new Intl.NumberFormat(Z).format(J)}function p8(J,Z="pt-BR",Q="BRL",Y="symbol"){return new Intl.NumberFormat(Z,{style:"currency",currency:Q,currencyDisplay:Y,minimumFractionDigits:0,maximumFractionDigits:2}).format(J)}function vQ(J){let{value:Z,delta:Q,lastMonth:Y,prefix:X="",suffix:K="",locale:j="pt-BR",currency:N,currencyDisplay:q="symbol",format:U,lastFormat:A,positive:E}=J,B=Z8(()=>{if(Q!==void 0)return Q;if(Y!==void 0&&Y!==0)return(Number(Z)-Number(Y))/Number(Y)*100;return 0},[Z,Y,Q]),W=Z8(()=>{if(E!==void 0)return E;return B>=0},[B,E]),k=Z8(()=>{let O=B>0?"up":B<0?"down":"neutral",M=O==="up"?"success":O==="down"?"destructive":"secondary",H=B>0?`+${B.toFixed(1)}%`:B<0?`${B.toFixed(1)}%`:"0%";return{isPositive:W,percentage:H,delta:Math.abs(B),variant:M,direction:O}},[B,W]),L=Z8(()=>{if(U)return U(Number(Z));let O=Number(Z);if(N)return p8(O,j,N,q)+(K?` ${K}`:"");return X+w8(O,j)+K},[Z,X,K,j,N,q,U]),T=Z8(()=>{if(!Y)return null;if(A)return A(Y);if(N)return p8(Y,j,N,q);return X+w8(Y,j)+K},[Y,X,K,j,N,q,A]),z=kJ((O={})=>{return{onClick:O.onClick,className:O.className,"aria-label":O["aria-label"]||`Estatística: ${L}`,role:O.onClick?"button":void 0}},[L]),V=kJ((O)=>{if(N)return p8(O,j,N,q);return w8(O,j)},[j,N,q]);return{formattedValue:L,formattedLastMonth:T,trend:k,isPositive:W,getCardProps:z,formatNumber:V}}import{useCallback as n,useEffect as _Q,useRef as m8,useState as c8}from"react";function IQ(J={}){let{initialTime:Z=0,onPause:Q,onStop:Y,onStart:X,onResume:K,onReset:j,format:N="HH:mm:ss"}=J,[q,U]=c8(Z),[A,E]=c8(!1),[B,W]=c8(!1),k=m8(null),L=m8(null),T=m8(0);_Q(()=>{return()=>{if(k.current)clearInterval(k.current),k.current=null}},[]);let V=n((D)=>{if(typeof N==="function")return N(D);let C=Math.floor(D/3600),_=Math.floor(D%3600/60),P=D%60;switch(N){case"HH:mm:ss":return`${String(C).padStart(2,"0")}:${String(_).padStart(2,"0")}:${String(P).padStart(2,"0")}`;case"mm:ss":return`${String(_).padStart(2,"0")}:${String(P).padStart(2,"0")}`;case"ss":return String(D);default:return`${String(C).padStart(2,"0")}:${String(_).padStart(2,"0")}:${String(P).padStart(2,"0")}`}},[N])(q),O=n(()=>{if(k.current)clearInterval(k.current),k.current=null},[]),M=n(()=>{if(A)return;O();let D=B?q:Z;if(U(D),E(!0),W(!1),T.current=D,L.current=Date.now()-D*1000,k.current=setInterval(()=>{let C=Math.floor((Date.now()-(L.current||0))/1000);U(C)},100),!B)X?.(D);else K?.(D)},[A,B,q,Z,X,K,O]),H=n(()=>{if(!A)return;O(),E(!1),W(!0),Q?.(q)},[A,q,Q,O]),G=n(()=>{O(),E(!1),W(!1),Y?.(q)},[q,Y,O]),y=n(()=>{if(!B)return;M()},[B,M]),v=n(()=>{O(),U(Z),E(!1),W(!1),T.current=0,L.current=null,j?.()},[Z,j,O]);return{time:q,formattedTime:V,isRunning:A,isPaused:B,isStopped:!A&&!B,start:M,pause:H,stop:G,resume:y,reset:v}}import{useCallback as c,useEffect as LJ,useMemo as b8,useRef as RQ,useState as L8}from"react";import*as w from"react";function SQ(J,Z){return J.label.toLowerCase().includes(Z.toLowerCase())}function EJ(J){let Z=[],Q=(Y)=>{if(!w.isValidElement(Y))return;let X=Y.props;if(X.value!==void 0){let K=String(X.value),j=K;if(X.children!==void 0&&X.children!==null)if(typeof X.children==="string")j=X.children;else if(typeof X.children==="number")j=String(X.children);else if(w.isValidElement(X.children)){let N=X.children.props;if(typeof N?.children==="string")j=N.children;else j=String(X.children)}else if(Array.isArray(X.children))w.Children.forEach(X.children,(N)=>{if(typeof N==="string"&&j===K)j=N});else j=String(X.children);Z.push({value:K,label:j,disabled:X.disabled});return}if(X.title!==void 0){if(X.children)w.Children.forEach(X.children,Q);return}if(X.children!==void 0&&X.children!==null){if(typeof X.children==="string"||typeof X.children==="number"||typeof X.children==="boolean")return;if(Array.isArray(X.children)||w.isValidElement(X.children))w.Children.forEach(X.children,Q);else if(typeof X.children==="object")w.Children.forEach(X.children,Q)}};return w.Children.forEach(J,Q),Z}function $Q(J={}){let{options:Z=[],value:Q,defaultValue:Y,onValueChange:X,filterFunction:K=SQ,allowCustomValue:j=!1,isLoading:N=!1,emptyMessage:q="Nenhum resultado encontrado.",children:U}=J,A=U!==void 0,[E,B]=L8(""),[W,k]=L8(Q??Y),[L,T]=L8(!1),[z,V]=L8(-1),O=Q!==void 0,M=b8(()=>{if(!A)return[];return EJ(U)},[A,U]),H=b8(()=>{if(A)return M;return Z},[A,M,Z]),G=b8(()=>{if(!E.trim())return H;return H.filter((I)=>K(I,E))},[H,E,K]),y=G.length===0&&!N,D=RQ(`autocomplete-list-${w.useId()}`).current;LJ(()=>{if(O&&Q!==void 0){let I=H.find((h)=>h.value===Q);if(I)k(Q),B(I.label);else k(void 0),B(Q)}},[O,Q,H]),LJ(()=>{if(!A&&W){let I=H.find((h)=>h.value===W);if(I&&E!==I.label)B(I.label)}},[W,H,A,E]);let C=c(()=>{if(G.length>0||N)T(!0)},[G.length,N]),_=c(()=>{T(!1),V(-1)},[]),P=c((I)=>{let h=H.find((e)=>e.value===I);if(h)k(I),B(h.label),X?.(I),_();else if(j)k(I),B(I),X?.(I),_()},[H,j,X,_]),$=c(()=>{k(void 0),B(""),X?.(void 0),_()},[X,_]),R=c((I)=>{if(B(I),I.trim()&&(G.length>0||N))T(!0);else if(!I.trim())T(!1)},[G.length,N]),E8=c((I={})=>{let h=G[z],e=h?`${D}-item-${h.value}`:void 0;return{...I,value:E,onChange:(S)=>{R(S.target.value),I.onChange?.(S)},onFocus:(S)=>{C(),I.onFocus?.(S)},onBlur:(S)=>{setTimeout(()=>{I.onBlur?.(S)},200)},onKeyDown:(S)=>{if(S.key==="ArrowDown")if(S.preventDefault(),L)V((b)=>b<G.length-1?b+1:b);else C();else if(S.key==="ArrowUp"){if(S.preventDefault(),L)V((b)=>b>0?b-1:-1)}else if(S.key==="Enter"){if(S.preventDefault(),L&&h)P(h.value);else if(L&&G.length===1)P(G[0].value);else if(j&&E.trim())P(E)}else if(S.key==="Escape")S.preventDefault(),_();I.onKeyDown?.(S)},"aria-expanded":L,"aria-autocomplete":"list","aria-controls":D,"aria-activedescendant":e,role:"combobox"}},[E,L,G,z,D,C,_,P,j]),TJ=c((I={})=>{return{...I,"aria-label":"Lista de opções",role:"listbox"}},[]),zJ=c((I={})=>{return{...I,id:D,role:"listbox","aria-label":"Opções disponíveis"}},[D]),GJ=c((I,h={})=>{let e=`${D}-item-${I.value}`,T8=W===I.value,u8=G[z]?.value===I.value,S=(z8)=>{if(!I.disabled)P(I.value);h.onClick?.(z8)},b=(z8)=>{let s8=G.findIndex((OJ)=>OJ.value===I.value);if(s8>=0)V(s8);h.onMouseEnter?.(z8)};return{...h,role:"option","aria-selected":T8,"aria-disabled":I.disabled??!1,id:e,onClick:S,onMouseEnter:b,className:`${h.className||""} ${u8?"bg-accent":""} ${T8?"font-semibold":""}`.trim()}},[D,W,G,z,P]);return{inputValue:E,selectedValue:W,isOpen:L,filteredItems:G,highlightedIndex:z,isLoading:N,isEmpty:y,open:C,close:_,select:P,clear:$,setInputValue:R,getInputProps:E8,getPopoverProps:TJ,getListProps:zJ,getItemProps:GJ,extractItemsFromChildren:EJ}}import{useCallback as r,useMemo as hQ}from"react";var fQ={columns:12,cellSize:50,gap:16};function gQ({widgetsLayout:J,gridConfig:Z,onUpdateLayout:Q}){let Y=hQ(()=>{return{...fQ,...Z}},[Z]),X=r((B)=>{return{gridColumnStart:B.x+1,gridColumnEnd:B.x+B.w+1,gridRowStart:B.y+1,gridRowEnd:B.y+B.h+1}},[]),K=r((B,W,k,L,T)=>{return J.some((z)=>{if(T&&z.id===T)return!1;let V=z.x+z.w,O=z.y+z.h,M=B+k,H=W+L;return!(V<=B||z.x>=M||O<=W||z.y>=H)})},[J]),j=r((B,W)=>{let k=Y.columns,L=100;for(let T=0;T<100;T++)for(let z=0;z<=k-B;z++)if(!K(z,T,B,W))return{x:z,y:T};return null},[Y.columns,K]),N=r((B,W,k)=>{let L=J.find((T)=>T.id===B);if(!L)return!1;if(W<0||k<0)return!1;if(W+L.w>Y.columns)return!1;return!K(W,k,L.w,L.h,B)},[J,Y.columns,K]),q=r((B,W,k)=>{let L=J.find((T)=>T.id===B);if(!L)return!1;if(W<2||k<2)return!1;if(W>Y.columns)return!1;if(k>20)return!1;if(L.x+W>Y.columns)return!1;return!K(L.x,L.y,W,k,B)},[J,Y.columns,K]),U=r((B,W,k)=>{if(!N(B,W,k))return;let L=J.map((T)=>T.id===B?{...T,x:W,y:k}:T);Q(L)},[J,N,Q]),A=r((B,W,k)=>{if(!q(B,W,k))return;let L=J.map((T)=>T.id===B?{...T,w:W,h:k}:T);Q(L)},[J,q,Q]),E=r((B)=>{Q(B)},[Q]);return{gridConfig:Y,getWidgetGridPosition:X,isPositionOccupied:K,findNextAvailablePosition:j,canMoveToPosition:N,canResize:q,moveWidget:U,resizeWidget:A,updateLayout:E}}export{IQ as useTimeTracker,vQ as useStatCard,CQ as useScriptEditor,yQ as useResizable,FQ as useReactTableFront,PQ as useReactTableBack,RJ as useProjectStats,_J as useProjectProgress,yJ as useIsMobile,xJ as useGenealogy,gQ as useDashboardLayout,$Q as useAutocomplete,HJ as useAnimatedIndicator};
|