@flowtomic/logic 0.1.2 → 0.1.3
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/useAnimatedIndicator/useAnimatedIndicator.d.ts +5 -0
- package/dist/hooks/useAnimatedIndicator/useAnimatedIndicator.d.ts.map +1 -1
- package/dist/hooks/useAnimatedIndicator/useAnimatedIndicator.js +16 -2
- package/dist/hooks/useAutocomplete/index.d.ts +3 -0
- package/dist/hooks/useAutocomplete/index.d.ts.map +1 -0
- package/dist/hooks/useAutocomplete/index.js +1 -0
- package/dist/hooks/useAutocomplete/useAutocomplete.d.ts +197 -0
- package/dist/hooks/useAutocomplete/useAutocomplete.d.ts.map +1 -0
- package/dist/hooks/useAutocomplete/useAutocomplete.js +379 -0
- package/dist/hooks/useGenealogy/useGenealogy.js +11 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -16
- package/package.json +2 -2
|
@@ -34,6 +34,11 @@ export interface UseAnimatedIndicatorOptions {
|
|
|
34
34
|
* @default true
|
|
35
35
|
*/
|
|
36
36
|
updateOnResize?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Valor ativo controlado externamente.
|
|
39
|
+
* Se fornecido, o hook não tentará detectar o elemento ativo via DOM.
|
|
40
|
+
*/
|
|
41
|
+
value?: string;
|
|
37
42
|
}
|
|
38
43
|
export interface UseAnimatedIndicatorReturn {
|
|
39
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedIndicator.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAnimatedIndicator/useAnimatedIndicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC;IACnD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useAnimatedIndicator.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAnimatedIndicator/useAnimatedIndicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC;IACnD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,cAAc,EAAE,cAAc,CAAC;IAC/B;;OAEG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE;;OAEG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,0BAA0B,CAgP5B"}
|
|
@@ -42,7 +42,7 @@ import { useCallback, useEffect, useRef, useState } from "react";
|
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
44
|
export function useAnimatedIndicator(options) {
|
|
45
|
-
const { containerRef, activeSelector = '[data-state="active"]', getElementValue, updateOnResize = true, } = options;
|
|
45
|
+
const { containerRef, activeSelector = '[data-state="active"]', getElementValue, updateOnResize = true, value: controlledValue, } = options;
|
|
46
46
|
const elementsRef = useRef(new Map());
|
|
47
47
|
const updateTimeoutRef = useRef(null);
|
|
48
48
|
const activeValueRef = useRef(undefined);
|
|
@@ -58,6 +58,12 @@ export function useAnimatedIndicator(options) {
|
|
|
58
58
|
useEffect(() => {
|
|
59
59
|
activeValueRef.current = activeValue;
|
|
60
60
|
}, [activeValue]);
|
|
61
|
+
// Sincronizar valor controlado
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (controlledValue !== undefined) {
|
|
64
|
+
setActiveValue(controlledValue);
|
|
65
|
+
}
|
|
66
|
+
}, [controlledValue]);
|
|
61
67
|
const updateIndicator = useCallback(() => {
|
|
62
68
|
const currentActiveValue = activeValueRef.current;
|
|
63
69
|
if (!currentActiveValue) {
|
|
@@ -117,7 +123,7 @@ export function useAnimatedIndicator(options) {
|
|
|
117
123
|
// Atualizar quando activeValue mudar
|
|
118
124
|
useEffect(() => {
|
|
119
125
|
scheduleUpdate();
|
|
120
|
-
}, [
|
|
126
|
+
}, [scheduleUpdate]);
|
|
121
127
|
// Listener de resize
|
|
122
128
|
useEffect(() => {
|
|
123
129
|
if (!updateOnResize)
|
|
@@ -166,12 +172,20 @@ export function useAnimatedIndicator(options) {
|
|
|
166
172
|
activeSelectorRef.current = activeSelector;
|
|
167
173
|
getElementValueRef.current = getElementValue;
|
|
168
174
|
}, [activeSelector, getElementValue]);
|
|
175
|
+
// Ref para valor controlado
|
|
176
|
+
const controlledValueRef = useRef(controlledValue);
|
|
177
|
+
useEffect(() => {
|
|
178
|
+
controlledValueRef.current = controlledValue;
|
|
179
|
+
}, [controlledValue]);
|
|
169
180
|
// Observar mudanças no elemento ativo
|
|
170
181
|
useEffect(() => {
|
|
171
182
|
const container = containerRef.current;
|
|
172
183
|
if (!container)
|
|
173
184
|
return;
|
|
174
185
|
const findActiveValue = () => {
|
|
186
|
+
// Se estiver em modo controlado, ignorar detecção DOM
|
|
187
|
+
if (controlledValueRef.current !== undefined)
|
|
188
|
+
return;
|
|
175
189
|
const activeElement = container.querySelector(activeSelectorRef.current);
|
|
176
190
|
if (activeElement) {
|
|
177
191
|
let value;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAutocomplete/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useAutocomplete } from "./useAutocomplete";
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAutocomplete - 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 MyCustomAutocomplete() {
|
|
12
|
+
* const {
|
|
13
|
+
* inputValue,
|
|
14
|
+
* selectedValue,
|
|
15
|
+
* isOpen,
|
|
16
|
+
* filteredItems,
|
|
17
|
+
* getInputProps,
|
|
18
|
+
* getPopoverProps,
|
|
19
|
+
* getListProps,
|
|
20
|
+
* getItemProps,
|
|
21
|
+
* open,
|
|
22
|
+
* close,
|
|
23
|
+
* select,
|
|
24
|
+
* clear,
|
|
25
|
+
* } = useAutocomplete({
|
|
26
|
+
* options: [
|
|
27
|
+
* { value: "1", label: "Option 1" },
|
|
28
|
+
* { value: "2", label: "Option 2" },
|
|
29
|
+
* ],
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* return (
|
|
33
|
+
* <div>
|
|
34
|
+
* <input {...getInputProps()} />
|
|
35
|
+
* {isOpen && (
|
|
36
|
+
* <div {...getPopoverProps()}>
|
|
37
|
+
* <ul {...getListProps()}>
|
|
38
|
+
* {filteredItems.map((item) => (
|
|
39
|
+
* <li key={item.value} {...getItemProps(item)}>
|
|
40
|
+
* {item.label}
|
|
41
|
+
* </li>
|
|
42
|
+
* ))}
|
|
43
|
+
* </ul>
|
|
44
|
+
* </div>
|
|
45
|
+
* )}
|
|
46
|
+
* </div>
|
|
47
|
+
* );
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
import * as React from "react";
|
|
52
|
+
export interface AutocompleteOption {
|
|
53
|
+
value: string;
|
|
54
|
+
label: string;
|
|
55
|
+
disabled?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface UseAutocompleteOptions {
|
|
58
|
+
/**
|
|
59
|
+
* Opções para seleção (API antiga)
|
|
60
|
+
*/
|
|
61
|
+
options?: AutocompleteOption[];
|
|
62
|
+
/**
|
|
63
|
+
* Valor selecionado (controlado)
|
|
64
|
+
*/
|
|
65
|
+
value?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Valor padrão (não controlado)
|
|
68
|
+
*/
|
|
69
|
+
defaultValue?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Callback quando o valor muda
|
|
72
|
+
*/
|
|
73
|
+
onValueChange?: (value: string | undefined) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Função de filtro customizada
|
|
76
|
+
*/
|
|
77
|
+
filterFunction?: (option: AutocompleteOption, searchTerm: string) => boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Permite valores customizados (não presentes nas opções)
|
|
80
|
+
*/
|
|
81
|
+
allowCustomValue?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Estado de loading
|
|
84
|
+
*/
|
|
85
|
+
isLoading?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Mensagem quando não há resultados
|
|
88
|
+
*/
|
|
89
|
+
emptyMessage?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Children para composição (modo compound components)
|
|
92
|
+
*/
|
|
93
|
+
children?: React.ReactNode;
|
|
94
|
+
}
|
|
95
|
+
export interface UseAutocompleteReturn {
|
|
96
|
+
/**
|
|
97
|
+
* Valor atual do input
|
|
98
|
+
*/
|
|
99
|
+
inputValue: string;
|
|
100
|
+
/**
|
|
101
|
+
* Valor selecionado
|
|
102
|
+
*/
|
|
103
|
+
selectedValue: string | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Se o popover está aberto
|
|
106
|
+
*/
|
|
107
|
+
isOpen: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Items filtrados baseado no inputValue
|
|
110
|
+
*/
|
|
111
|
+
filteredItems: AutocompleteOption[];
|
|
112
|
+
/**
|
|
113
|
+
* Índice do item destacado (para navegação por teclado)
|
|
114
|
+
*/
|
|
115
|
+
highlightedIndex: number;
|
|
116
|
+
/**
|
|
117
|
+
* Estado de loading
|
|
118
|
+
*/
|
|
119
|
+
isLoading: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Se não há items para exibir
|
|
122
|
+
*/
|
|
123
|
+
isEmpty: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Abre o popover
|
|
126
|
+
*/
|
|
127
|
+
open: () => void;
|
|
128
|
+
/**
|
|
129
|
+
* Fecha o popover
|
|
130
|
+
*/
|
|
131
|
+
close: () => void;
|
|
132
|
+
/**
|
|
133
|
+
* Seleciona um valor
|
|
134
|
+
*/
|
|
135
|
+
select: (value: string) => void;
|
|
136
|
+
/**
|
|
137
|
+
* Limpa a seleção
|
|
138
|
+
*/
|
|
139
|
+
clear: () => void;
|
|
140
|
+
/**
|
|
141
|
+
* Define o valor do input
|
|
142
|
+
*/
|
|
143
|
+
setInputValue: (value: string) => void;
|
|
144
|
+
/**
|
|
145
|
+
* Helper para props do input
|
|
146
|
+
*/
|
|
147
|
+
getInputProps: (props?: React.InputHTMLAttributes<HTMLInputElement>) => Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "onFocus" | "onBlur" | "onKeyDown" | "aria-expanded" | "aria-autocomplete" | "aria-controls" | "aria-activedescendant" | "role"> & {
|
|
148
|
+
value: string;
|
|
149
|
+
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
150
|
+
onFocus: React.FocusEventHandler<HTMLInputElement>;
|
|
151
|
+
onBlur: React.FocusEventHandler<HTMLInputElement>;
|
|
152
|
+
onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
153
|
+
"aria-expanded": boolean;
|
|
154
|
+
"aria-autocomplete": "list";
|
|
155
|
+
"aria-controls": string;
|
|
156
|
+
"aria-activedescendant": string | undefined;
|
|
157
|
+
role: "combobox";
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Helper para props do popover
|
|
161
|
+
*/
|
|
162
|
+
getPopoverProps: (props?: React.ComponentProps<"div">) => React.ComponentProps<"div"> & {
|
|
163
|
+
"aria-label": string;
|
|
164
|
+
role: "listbox";
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Helper para props da lista
|
|
168
|
+
*/
|
|
169
|
+
getListProps: (props?: React.HTMLAttributes<HTMLUListElement>) => React.HTMLAttributes<HTMLUListElement> & {
|
|
170
|
+
id: string;
|
|
171
|
+
role: "listbox";
|
|
172
|
+
"aria-label": string;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Helper para props de um item
|
|
176
|
+
*/
|
|
177
|
+
getItemProps: (item: AutocompleteOption, props?: React.HTMLAttributes<HTMLLIElement>) => Omit<React.HTMLAttributes<HTMLLIElement>, "role" | "aria-selected" | "aria-disabled" | "id" | "onClick" | "onMouseEnter"> & {
|
|
178
|
+
role: "option";
|
|
179
|
+
"aria-selected": boolean;
|
|
180
|
+
"aria-disabled": boolean;
|
|
181
|
+
id: string;
|
|
182
|
+
onClick: (e: React.MouseEvent<HTMLLIElement>) => void;
|
|
183
|
+
onMouseEnter: (e: React.MouseEvent<HTMLLIElement>) => void;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Extrai items dos children (para modo composição)
|
|
187
|
+
*/
|
|
188
|
+
extractItemsFromChildren: (children: React.ReactNode) => AutocompleteOption[];
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Hook Headless UI para Autocomplete
|
|
192
|
+
*
|
|
193
|
+
* Fornece apenas a lógica e API, sem markup ou styles.
|
|
194
|
+
* Você é responsável por criar o visual.
|
|
195
|
+
*/
|
|
196
|
+
export declare function useAutocomplete(options?: UseAutocompleteOptions): UseAutocompleteReturn;
|
|
197
|
+
//# sourceMappingURL=useAutocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAutocomplete/useAutocomplete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAE7E;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,aAAa,EAAE,kBAAkB,EAAE,CAAC;IAEpC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,aAAa,EAAE,CACb,KAAK,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAChD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAAC,GAAG;QAC/M,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;QAC3D,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAClD,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;QAC9D,eAAe,EAAE,OAAO,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5C,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;IAEF;;OAEG;IACH,eAAe,EAAE,CACf,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,KAChC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;QACjC,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,YAAY,EAAE,CACZ,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAC3C,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG;QAC5C,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,SAAS,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF;;OAEG;IACH,YAAY,EAAE,CACZ,IAAI,EAAE,kBAAkB,EACxB,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,KACxC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAAC,GAAG;QAC/H,IAAI,EAAE,QAAQ,CAAC;QACf,eAAe,EAAE,OAAO,CAAC;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;QACtD,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;KAC5D,CAAC;IAEF;;OAEG;IACH,wBAAwB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;CAC/E;AA4FD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CA+TvB"}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAutocomplete - 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 MyCustomAutocomplete() {
|
|
12
|
+
* const {
|
|
13
|
+
* inputValue,
|
|
14
|
+
* selectedValue,
|
|
15
|
+
* isOpen,
|
|
16
|
+
* filteredItems,
|
|
17
|
+
* getInputProps,
|
|
18
|
+
* getPopoverProps,
|
|
19
|
+
* getListProps,
|
|
20
|
+
* getItemProps,
|
|
21
|
+
* open,
|
|
22
|
+
* close,
|
|
23
|
+
* select,
|
|
24
|
+
* clear,
|
|
25
|
+
* } = useAutocomplete({
|
|
26
|
+
* options: [
|
|
27
|
+
* { value: "1", label: "Option 1" },
|
|
28
|
+
* { value: "2", label: "Option 2" },
|
|
29
|
+
* ],
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* return (
|
|
33
|
+
* <div>
|
|
34
|
+
* <input {...getInputProps()} />
|
|
35
|
+
* {isOpen && (
|
|
36
|
+
* <div {...getPopoverProps()}>
|
|
37
|
+
* <ul {...getListProps()}>
|
|
38
|
+
* {filteredItems.map((item) => (
|
|
39
|
+
* <li key={item.value} {...getItemProps(item)}>
|
|
40
|
+
* {item.label}
|
|
41
|
+
* </li>
|
|
42
|
+
* ))}
|
|
43
|
+
* </ul>
|
|
44
|
+
* </div>
|
|
45
|
+
* )}
|
|
46
|
+
* </div>
|
|
47
|
+
* );
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
52
|
+
import * as React from "react";
|
|
53
|
+
/**
|
|
54
|
+
* Função de filtro padrão (case-insensitive)
|
|
55
|
+
*/
|
|
56
|
+
function defaultFilter(option, searchTerm) {
|
|
57
|
+
return option.label.toLowerCase().includes(searchTerm.toLowerCase());
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Extrai items dos children em modo composição
|
|
61
|
+
*/
|
|
62
|
+
function extractItemsFromChildren(children) {
|
|
63
|
+
const items = [];
|
|
64
|
+
const processChild = (child) => {
|
|
65
|
+
if (!React.isValidElement(child)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const props = child.props;
|
|
69
|
+
// Se tiver prop 'value', é um Autocomplete.Item
|
|
70
|
+
if (props.value !== undefined) {
|
|
71
|
+
const value = String(props.value);
|
|
72
|
+
let label = value;
|
|
73
|
+
// Extrair o texto dos children
|
|
74
|
+
if (props.children !== undefined && props.children !== null) {
|
|
75
|
+
if (typeof props.children === "string") {
|
|
76
|
+
label = props.children;
|
|
77
|
+
}
|
|
78
|
+
else if (typeof props.children === "number") {
|
|
79
|
+
label = String(props.children);
|
|
80
|
+
}
|
|
81
|
+
else if (React.isValidElement(props.children)) {
|
|
82
|
+
const childProps = props.children.props;
|
|
83
|
+
if (typeof childProps?.children === "string") {
|
|
84
|
+
label = childProps.children;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
label = String(props.children);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (Array.isArray(props.children)) {
|
|
91
|
+
React.Children.forEach(props.children, (c) => {
|
|
92
|
+
if (typeof c === "string" && label === value) {
|
|
93
|
+
label = c;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
label = String(props.children);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
items.push({
|
|
102
|
+
value,
|
|
103
|
+
label,
|
|
104
|
+
disabled: props.disabled,
|
|
105
|
+
});
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// Se tiver prop 'title', é um AutocompleteSection - processar seus children
|
|
109
|
+
if (props.title !== undefined) {
|
|
110
|
+
if (props.children) {
|
|
111
|
+
React.Children.forEach(props.children, processChild);
|
|
112
|
+
}
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// Se tiver children mas não é Item nem Section, processar recursivamente
|
|
116
|
+
if (props.children !== undefined && props.children !== null) {
|
|
117
|
+
if (typeof props.children === "string" ||
|
|
118
|
+
typeof props.children === "number" ||
|
|
119
|
+
typeof props.children === "boolean") {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (Array.isArray(props.children) || React.isValidElement(props.children)) {
|
|
123
|
+
React.Children.forEach(props.children, processChild);
|
|
124
|
+
}
|
|
125
|
+
else if (typeof props.children === "object") {
|
|
126
|
+
React.Children.forEach(props.children, processChild);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
React.Children.forEach(children, processChild);
|
|
131
|
+
return items;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Hook Headless UI para Autocomplete
|
|
135
|
+
*
|
|
136
|
+
* Fornece apenas a lógica e API, sem markup ou styles.
|
|
137
|
+
* Você é responsável por criar o visual.
|
|
138
|
+
*/
|
|
139
|
+
export function useAutocomplete(options = {}) {
|
|
140
|
+
const { options: providedOptions = [], value: controlledValue, defaultValue, onValueChange, filterFunction = defaultFilter, allowCustomValue = false, isLoading = false, emptyMessage = "Nenhum resultado encontrado.", children, } = options;
|
|
141
|
+
// Determinar se está usando composição ou API antiga
|
|
142
|
+
const useComposition = children !== undefined;
|
|
143
|
+
// Estado interno
|
|
144
|
+
const [inputValue, setInputValueState] = useState("");
|
|
145
|
+
const [selectedValue, setSelectedValue] = useState(controlledValue ?? defaultValue);
|
|
146
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
147
|
+
const [highlightedIndex, setHighlightedIndex] = useState(-1);
|
|
148
|
+
// Determinar se é controlado
|
|
149
|
+
const isControlled = controlledValue !== undefined;
|
|
150
|
+
// Extrair items dos children se em modo composição
|
|
151
|
+
const itemsFromChildren = useMemo(() => {
|
|
152
|
+
if (!useComposition)
|
|
153
|
+
return [];
|
|
154
|
+
return extractItemsFromChildren(children);
|
|
155
|
+
}, [useComposition, children]);
|
|
156
|
+
// Items disponíveis (API antiga ou composição)
|
|
157
|
+
const allItems = useMemo(() => {
|
|
158
|
+
if (useComposition) {
|
|
159
|
+
return itemsFromChildren;
|
|
160
|
+
}
|
|
161
|
+
return providedOptions;
|
|
162
|
+
}, [useComposition, itemsFromChildren, providedOptions]);
|
|
163
|
+
// Filtrar items baseado no inputValue
|
|
164
|
+
const filteredItems = useMemo(() => {
|
|
165
|
+
if (!inputValue.trim()) {
|
|
166
|
+
return allItems;
|
|
167
|
+
}
|
|
168
|
+
return allItems.filter((item) => filterFunction(item, inputValue));
|
|
169
|
+
}, [allItems, inputValue, filterFunction]);
|
|
170
|
+
// Estado derivado
|
|
171
|
+
const isEmpty = filteredItems.length === 0 && !isLoading;
|
|
172
|
+
// IDs para acessibilidade
|
|
173
|
+
const listIdRef = useRef(`autocomplete-list-${React.useId()}`);
|
|
174
|
+
const listId = listIdRef.current;
|
|
175
|
+
// Sincronizar com valor controlado
|
|
176
|
+
useEffect(() => {
|
|
177
|
+
if (isControlled && controlledValue !== undefined) {
|
|
178
|
+
const option = allItems.find((opt) => opt.value === controlledValue);
|
|
179
|
+
if (option) {
|
|
180
|
+
setSelectedValue(controlledValue);
|
|
181
|
+
setInputValueState(option.label);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
setSelectedValue(undefined);
|
|
185
|
+
setInputValueState(controlledValue);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}, [isControlled, controlledValue, allItems]);
|
|
189
|
+
// Sincronizar inputValue quando seleção muda (apenas para API antiga)
|
|
190
|
+
useEffect(() => {
|
|
191
|
+
if (!useComposition && selectedValue) {
|
|
192
|
+
const option = allItems.find((opt) => opt.value === selectedValue);
|
|
193
|
+
if (option && inputValue !== option.label) {
|
|
194
|
+
setInputValueState(option.label);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}, [selectedValue, allItems, useComposition, inputValue]);
|
|
198
|
+
// Controles
|
|
199
|
+
const open = useCallback(() => {
|
|
200
|
+
if (filteredItems.length > 0 || isLoading) {
|
|
201
|
+
setIsOpen(true);
|
|
202
|
+
}
|
|
203
|
+
}, [filteredItems.length, isLoading]);
|
|
204
|
+
const close = useCallback(() => {
|
|
205
|
+
setIsOpen(false);
|
|
206
|
+
setHighlightedIndex(-1);
|
|
207
|
+
}, []);
|
|
208
|
+
const select = useCallback((value) => {
|
|
209
|
+
const option = allItems.find((opt) => opt.value === value);
|
|
210
|
+
if (option) {
|
|
211
|
+
setSelectedValue(value);
|
|
212
|
+
setInputValueState(option.label);
|
|
213
|
+
onValueChange?.(value);
|
|
214
|
+
close();
|
|
215
|
+
}
|
|
216
|
+
else if (allowCustomValue) {
|
|
217
|
+
setSelectedValue(value);
|
|
218
|
+
setInputValueState(value);
|
|
219
|
+
onValueChange?.(value);
|
|
220
|
+
close();
|
|
221
|
+
}
|
|
222
|
+
}, [allItems, allowCustomValue, onValueChange, close]);
|
|
223
|
+
const clear = useCallback(() => {
|
|
224
|
+
setSelectedValue(undefined);
|
|
225
|
+
setInputValueState("");
|
|
226
|
+
onValueChange?.(undefined);
|
|
227
|
+
close();
|
|
228
|
+
}, [onValueChange, close]);
|
|
229
|
+
const setInputValue = useCallback((value) => {
|
|
230
|
+
setInputValueState(value);
|
|
231
|
+
if (value.trim() && (filteredItems.length > 0 || isLoading)) {
|
|
232
|
+
setIsOpen(true);
|
|
233
|
+
}
|
|
234
|
+
else if (!value.trim()) {
|
|
235
|
+
setIsOpen(false);
|
|
236
|
+
}
|
|
237
|
+
}, [filteredItems.length, isLoading]);
|
|
238
|
+
// Helpers de props
|
|
239
|
+
const getInputProps = useCallback((props = {}) => {
|
|
240
|
+
const highlightedItem = filteredItems[highlightedIndex];
|
|
241
|
+
const activeDescendant = highlightedItem
|
|
242
|
+
? `${listId}-item-${highlightedItem.value}`
|
|
243
|
+
: undefined;
|
|
244
|
+
const handleFocus = (e) => {
|
|
245
|
+
open();
|
|
246
|
+
props.onFocus?.(e);
|
|
247
|
+
};
|
|
248
|
+
const handleBlur = (e) => {
|
|
249
|
+
// Delay para permitir cliques nos items
|
|
250
|
+
setTimeout(() => {
|
|
251
|
+
// Não fechar o popover no onBlur - deixar o Popover gerenciar o fechamento
|
|
252
|
+
// O Popover do Radix UI já gerencia o fechamento quando você clica fora
|
|
253
|
+
// via onOpenChange. Fechar aqui causa conflito e comportamento inconsistente.
|
|
254
|
+
props.onBlur?.(e);
|
|
255
|
+
}, 200);
|
|
256
|
+
};
|
|
257
|
+
return {
|
|
258
|
+
...props,
|
|
259
|
+
value: inputValue,
|
|
260
|
+
onChange: (e) => {
|
|
261
|
+
setInputValue(e.target.value);
|
|
262
|
+
props.onChange?.(e);
|
|
263
|
+
},
|
|
264
|
+
onFocus: handleFocus,
|
|
265
|
+
onBlur: handleBlur,
|
|
266
|
+
onKeyDown: (e) => {
|
|
267
|
+
if (e.key === "ArrowDown") {
|
|
268
|
+
e.preventDefault();
|
|
269
|
+
if (isOpen) {
|
|
270
|
+
setHighlightedIndex((prev) => prev < filteredItems.length - 1 ? prev + 1 : prev);
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
open();
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
else if (e.key === "ArrowUp") {
|
|
277
|
+
e.preventDefault();
|
|
278
|
+
if (isOpen) {
|
|
279
|
+
setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : -1));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
else if (e.key === "Enter") {
|
|
283
|
+
e.preventDefault();
|
|
284
|
+
if (isOpen && highlightedItem) {
|
|
285
|
+
select(highlightedItem.value);
|
|
286
|
+
}
|
|
287
|
+
else if (isOpen && filteredItems.length === 1) {
|
|
288
|
+
select(filteredItems[0].value);
|
|
289
|
+
}
|
|
290
|
+
else if (allowCustomValue && inputValue.trim()) {
|
|
291
|
+
select(inputValue);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
else if (e.key === "Escape") {
|
|
295
|
+
e.preventDefault();
|
|
296
|
+
close();
|
|
297
|
+
}
|
|
298
|
+
props.onKeyDown?.(e);
|
|
299
|
+
},
|
|
300
|
+
"aria-expanded": isOpen,
|
|
301
|
+
"aria-autocomplete": "list",
|
|
302
|
+
"aria-controls": listId,
|
|
303
|
+
"aria-activedescendant": activeDescendant,
|
|
304
|
+
role: "combobox",
|
|
305
|
+
};
|
|
306
|
+
}, [
|
|
307
|
+
inputValue,
|
|
308
|
+
isOpen,
|
|
309
|
+
filteredItems,
|
|
310
|
+
highlightedIndex,
|
|
311
|
+
listId,
|
|
312
|
+
open,
|
|
313
|
+
close,
|
|
314
|
+
select,
|
|
315
|
+
allowCustomValue,
|
|
316
|
+
]);
|
|
317
|
+
const getPopoverProps = useCallback((props = {}) => {
|
|
318
|
+
return {
|
|
319
|
+
...props,
|
|
320
|
+
"aria-label": "Lista de opções",
|
|
321
|
+
role: "listbox",
|
|
322
|
+
};
|
|
323
|
+
}, []);
|
|
324
|
+
const getListProps = useCallback((props = {}) => {
|
|
325
|
+
return {
|
|
326
|
+
...props,
|
|
327
|
+
id: listId,
|
|
328
|
+
role: "listbox",
|
|
329
|
+
"aria-label": "Opções disponíveis",
|
|
330
|
+
};
|
|
331
|
+
}, [listId]);
|
|
332
|
+
const getItemProps = useCallback((item, props = {}) => {
|
|
333
|
+
const itemId = `${listId}-item-${item.value}`;
|
|
334
|
+
const isSelected = selectedValue === item.value;
|
|
335
|
+
const isHighlighted = filteredItems[highlightedIndex]?.value === item.value;
|
|
336
|
+
const handleClick = (e) => {
|
|
337
|
+
if (!item.disabled) {
|
|
338
|
+
select(item.value);
|
|
339
|
+
}
|
|
340
|
+
props.onClick?.(e);
|
|
341
|
+
};
|
|
342
|
+
const handleMouseEnter = (e) => {
|
|
343
|
+
const index = filteredItems.findIndex((i) => i.value === item.value);
|
|
344
|
+
if (index >= 0) {
|
|
345
|
+
setHighlightedIndex(index);
|
|
346
|
+
}
|
|
347
|
+
props.onMouseEnter?.(e);
|
|
348
|
+
};
|
|
349
|
+
return {
|
|
350
|
+
...props,
|
|
351
|
+
role: "option",
|
|
352
|
+
"aria-selected": isSelected,
|
|
353
|
+
"aria-disabled": item.disabled ?? false,
|
|
354
|
+
id: itemId,
|
|
355
|
+
onClick: handleClick,
|
|
356
|
+
onMouseEnter: handleMouseEnter,
|
|
357
|
+
className: `${props.className || ""} ${isHighlighted ? "bg-accent" : ""} ${isSelected ? "font-semibold" : ""}`.trim(),
|
|
358
|
+
};
|
|
359
|
+
}, [listId, selectedValue, filteredItems, highlightedIndex, select]);
|
|
360
|
+
return {
|
|
361
|
+
inputValue,
|
|
362
|
+
selectedValue,
|
|
363
|
+
isOpen,
|
|
364
|
+
filteredItems,
|
|
365
|
+
highlightedIndex,
|
|
366
|
+
isLoading,
|
|
367
|
+
isEmpty,
|
|
368
|
+
open,
|
|
369
|
+
close,
|
|
370
|
+
select,
|
|
371
|
+
clear,
|
|
372
|
+
setInputValue,
|
|
373
|
+
getInputProps,
|
|
374
|
+
getPopoverProps,
|
|
375
|
+
getListProps,
|
|
376
|
+
getItemProps,
|
|
377
|
+
extractItemsFromChildren,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
@@ -16,8 +16,9 @@ function calculateLevels(hierarchy) {
|
|
|
16
16
|
const visited = new Set();
|
|
17
17
|
// Função recursiva para calcular nível
|
|
18
18
|
const calculateLevel = (entityId) => {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const cachedLevel = levels.get(entityId);
|
|
20
|
+
if (cachedLevel !== undefined) {
|
|
21
|
+
return cachedLevel;
|
|
21
22
|
}
|
|
22
23
|
if (visited.has(entityId)) {
|
|
23
24
|
// Ciclo detectado, retornar 0 como fallback
|
|
@@ -46,7 +47,7 @@ function calculateLevels(hierarchy) {
|
|
|
46
47
|
/**
|
|
47
48
|
* Organiza entidades por nível (geração) e calcula posições hierárquicas
|
|
48
49
|
*/
|
|
49
|
-
function calculateHierarchicalPositions(
|
|
50
|
+
function calculateHierarchicalPositions(_data, hierarchy, nodeWidth, nodeHeight, horizontalSpacing, verticalSpacing) {
|
|
50
51
|
const positions = new Map();
|
|
51
52
|
const levels = calculateLevels(hierarchy);
|
|
52
53
|
// Agrupar entidades por nível
|
|
@@ -55,12 +56,14 @@ function calculateHierarchicalPositions(data, hierarchy, nodeWidth, nodeHeight,
|
|
|
55
56
|
if (!entitiesByLevel.has(level)) {
|
|
56
57
|
entitiesByLevel.set(level, []);
|
|
57
58
|
}
|
|
58
|
-
entitiesByLevel.get(level)
|
|
59
|
+
entitiesByLevel.get(level)?.push(entityId);
|
|
59
60
|
});
|
|
60
61
|
// Calcular posições para cada nível, começando do nível 0 (raiz)
|
|
61
62
|
const sortedLevels = Array.from(entitiesByLevel.keys()).sort((a, b) => a - b);
|
|
62
63
|
sortedLevels.forEach((level) => {
|
|
63
64
|
const entityIds = entitiesByLevel.get(level);
|
|
65
|
+
if (!entityIds)
|
|
66
|
+
return;
|
|
64
67
|
// Ordenar entidades do mesmo nível (por ID para consistência)
|
|
65
68
|
entityIds.sort();
|
|
66
69
|
// Calcular posição Y baseada no nível (pais acima, filhos abaixo)
|
|
@@ -91,10 +94,13 @@ function calculateHierarchicalPositions(data, hierarchy, nodeWidth, nodeHeight,
|
|
|
91
94
|
// Ajustar posições para evitar sobreposição
|
|
92
95
|
entityIds.forEach((entityId, index) => {
|
|
93
96
|
const currentPos = positions.get(entityId);
|
|
94
|
-
|
|
97
|
+
if (!currentPos)
|
|
98
|
+
return;
|
|
95
99
|
// Verificar se há sobreposição com outros nós do mesmo nível
|
|
96
100
|
entityIds.slice(0, index).forEach((otherId) => {
|
|
97
101
|
const otherPos = positions.get(otherId);
|
|
102
|
+
if (!otherPos)
|
|
103
|
+
return;
|
|
98
104
|
if (Math.abs(currentPos.x - otherPos.x) < nodeWidth + horizontalSpacing) {
|
|
99
105
|
// Ajustar para evitar sobreposição
|
|
100
106
|
currentPos.x = otherPos.x + nodeWidth + horizontalSpacing;
|
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"}
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),W}function m(){f.asyncTransitions--}function R(W){if(G8===null)try{var L=("require"+Math.random()).slice(0,7);G8=(H8&&H8[L]).call(H8,"timers").setImmediate}catch(A){G8=function(P){HY===!1&&(HY=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var x=new MessageChannel;x.port1.onmessage=P,x.port2.postMessage(void 0)}}return G8(W)}function s(W){return 1<W.length&&typeof AggregateError==="function"?AggregateError(W):W[0]}function i(W,L){L!==O8-1&&console.error("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),O8=L}function U8(W,L,A){var P=f.actQueue;if(P!==null)if(P.length!==0)try{F8(P),R(function(){return U8(W,L,A)});return}catch(x){f.thrownErrors.push(x)}else f.actQueue=null;0<f.thrownErrors.length?(P=s(f.thrownErrors),f.thrownErrors.length=0,A(P)):L(W)}function F8(W){if(!y8){y8=!0;var L=0;try{for(;L<W.length;L++){var A=W[L];do{f.didUsePromise=!1;var P=A(!1);if(P!==null){if(f.didUsePromise){W[L]=A,W.splice(0,L);return}A=P}else break}while(1)}W.length=0}catch(x){W.splice(0,L+1),f.thrownErrors.push(x)}finally{y8=!1}}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var C8=Symbol.for("react.transitional.element"),t8=Symbol.for("react.portal"),v8=Symbol.for("react.fragment"),e8=Symbol.for("react.strict_mode"),YY=Symbol.for("react.profiler"),I8=Symbol.for("react.consumer"),ZY=Symbol.for("react.context"),QY=Symbol.for("react.forward_ref"),XY=Symbol.for("react.suspense"),gY=Symbol.for("react.suspense_list"),R8=Symbol.for("react.memo"),j8=Symbol.for("react.lazy"),JY=Symbol.for("react.activity"),WY=Symbol.iterator,KY={},BY={isMounted:function(){return!1},enqueueForceUpdate:function(W){Z(W,"forceUpdate")},enqueueReplaceState:function(W){Z(W,"replaceState")},enqueueSetState:function(W){Z(W,"setState")}},UY=Object.assign,_8={};Object.freeze(_8),Q.prototype.isReactComponent={},Q.prototype.setState=function(W,L){if(typeof W!=="object"&&typeof W!=="function"&&W!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,W,L,"setState")},Q.prototype.forceUpdate=function(W){this.updater.enqueueForceUpdate(this,W,"forceUpdate")};var t={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]};for(q8 in t)t.hasOwnProperty(q8)&&Y(q8,t[q8]);J.prototype=Q.prototype,t=K.prototype=new J,t.constructor=K,UY(t,Q.prototype),t.isPureReactComponent=!0;var jY=Array.isArray,wY=Symbol.for("react.client.reference"),f={H:null,A:null,T:null,S:null,actQueue:null,asyncTransitions:0,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1,didUsePromise:!1,thrownErrors:[],getCurrentStack:null,recentlyCreatedOwnerStacks:0},z8=Object.prototype.hasOwnProperty,qY=console.createTask?console.createTask:function(){return null};t={react_stack_bottom_frame:function(W){return W()}};var LY,NY,zY={},mY=t.react_stack_bottom_frame.bind(t,z)(),pY=qY(G(z)),GY=!1,OY=/\/+/g,EY=typeof reportError==="function"?reportError:function(W){if(typeof window==="object"&&typeof window.ErrorEvent==="function"){var L=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof W==="object"&&W!==null&&typeof W.message==="string"?String(W.message):String(W),error:W});if(!window.dispatchEvent(L))return}else if(typeof process==="object"&&typeof process.emit==="function"){process.emit("uncaughtException",W);return}console.error(W)},HY=!1,G8=null,O8=0,E8=!1,y8=!1,AY=typeof queueMicrotask==="function"?function(W){queueMicrotask(function(){return queueMicrotask(W)})}:R;t=Object.freeze({__proto__:null,c:function(W){return k().useMemoCache(W)}});var q8={map:I,forEach:function(W,L,A){I(W,function(){L.apply(this,arguments)},A)},count:function(W){var L=0;return I(W,function(){L++}),L},toArray:function(W){return I(W,function(L){return L})||[]},only:function(W){if(!T(W))throw Error("React.Children.only expected to receive a single React element child.");return W}};nY.Activity=JY,nY.Children=q8,nY.Component=Q,nY.Fragment=v8,nY.Profiler=YY,nY.PureComponent=K,nY.StrictMode=e8,nY.Suspense=XY,nY.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=f,nY.__COMPILER_RUNTIME=t,nY.act=function(W){var L=f.actQueue,A=O8;O8++;var P=f.actQueue=L!==null?L:[],x=!1;try{var g=W()}catch(w){f.thrownErrors.push(w)}if(0<f.thrownErrors.length)throw i(L,A),W=s(f.thrownErrors),f.thrownErrors.length=0,W;if(g!==null&&typeof g==="object"&&typeof g.then==="function"){var h=g;return AY(function(){x||E8||(E8=!0,console.error("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(w,J8){x=!0,h.then(function(B8){if(i(L,A),A===0){try{F8(P),R(function(){return U8(B8,w,J8)})}catch(cY){f.thrownErrors.push(cY)}if(0<f.thrownErrors.length){var bY=s(f.thrownErrors);f.thrownErrors.length=0,J8(bY)}}else w(B8)},function(B8){i(L,A),0<f.thrownErrors.length?(B8=s(f.thrownErrors),f.thrownErrors.length=0,J8(B8)):J8(B8)})}}}var p=g;if(i(L,A),A===0&&(F8(P),P.length!==0&&AY(function(){x||E8||(E8=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),f.actQueue=null),0<f.thrownErrors.length)throw W=s(f.thrownErrors),f.thrownErrors.length=0,W;return{then:function(w,J8){x=!0,A===0?(f.actQueue=P,R(function(){return U8(p,w,J8)})):w(p)}}},nY.cache=function(W){return function(){return W.apply(null,arguments)}},nY.cacheSignal=function(){return null},nY.captureOwnerStack=function(){var W=f.getCurrentStack;return W===null?null:W()},nY.cloneElement=function(W,L,A){if(W===null||W===void 0)throw Error("The argument must be a React element, but you passed "+W+".");var P=UY({},W.props),x=W.key,g=W._owner;if(L!=null){var h;Y:{if(z8.call(L,"ref")&&(h=Object.getOwnPropertyDescriptor(L,"ref").get)&&h.isReactWarning){h=!1;break Y}h=L.ref!==void 0}h&&(g=E()),j(L)&&(q(L.key),x=""+L.key);for(p in L)!z8.call(L,p)||p==="key"||p==="__self"||p==="__source"||p==="ref"&&L.ref===void 0||(P[p]=L[p])}var p=arguments.length-2;if(p===1)P.children=A;else if(1<p){h=Array(p);for(var w=0;w<p;w++)h[w]=arguments[w+2];P.children=h}P=V(W.type,x,P,g,W._debugStack,W._debugTask);for(x=2;x<arguments.length;x++)$(arguments[x]);return P},nY.createContext=function(W){return W={$$typeof:ZY,_currentValue:W,_currentValue2:W,_threadCount:0,Provider:null,Consumer:null},W.Provider=W,W.Consumer={$$typeof:I8,_context:W},W._currentRenderer=null,W._currentRenderer2=null,W},nY.createElement=function(W,L,A){for(var P=2;P<arguments.length;P++)$(arguments[P]);P={};var x=null;if(L!=null)for(w in NY||!("__self"in L)||"key"in L||(NY=!0,console.warn("Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform")),j(L)&&(q(L.key),x=""+L.key),L)z8.call(L,w)&&w!=="key"&&w!=="__self"&&w!=="__source"&&(P[w]=L[w]);var g=arguments.length-2;if(g===1)P.children=A;else if(1<g){for(var h=Array(g),p=0;p<g;p++)h[p]=arguments[p+2];Object.freeze&&Object.freeze(h),P.children=h}if(W&&W.defaultProps)for(w in g=W.defaultProps,g)P[w]===void 0&&(P[w]=g[w]);x&&O(P,typeof W==="function"?W.displayName||W.name||"Unknown":W);var w=1e4>f.recentlyCreatedOwnerStacks++;return V(W,x,P,E(),w?Error("react-stack-top-frame"):mY,w?qY(G(W)):pY)},nY.createRef=function(){var W={current:null};return Object.seal(W),W},nY.forwardRef=function(W){W!=null&&W.$$typeof===R8?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof W!=="function"?console.error("forwardRef requires a render function but was given %s.",W===null?"null":typeof W):W.length!==0&&W.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",W.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),W!=null&&W.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var L={$$typeof:QY,render:W},A;return Object.defineProperty(L,"displayName",{enumerable:!1,configurable:!0,get:function(){return A},set:function(P){A=P,W.name||W.displayName||(Object.defineProperty(W,"name",{value:P}),W.displayName=P)}}),L},nY.isValidElement=T,nY.lazy=function(W){W={_status:-1,_result:W};var L={$$typeof:j8,_payload:W,_init:C},A={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return W._ioInfo=A,L._debugInfo=[{awaited:A}],L},nY.memo=function(W,L){W==null&&console.error("memo: The first argument must be a component. Instead received: %s",W===null?"null":typeof W),L={$$typeof:R8,type:W,compare:L===void 0?null:L};var A;return Object.defineProperty(L,"displayName",{enumerable:!1,configurable:!0,get:function(){return A},set:function(P){A=P,W.name||W.displayName||(Object.defineProperty(W,"name",{value:P}),W.displayName=P)}}),L},nY.startTransition=function(W){var L=f.T,A={};A._updatedFibers=new Set,f.T=A;try{var P=W(),x=f.S;x!==null&&x(A,P),typeof P==="object"&&P!==null&&typeof P.then==="function"&&(f.asyncTransitions++,P.then(m,m),P.then(B,EY))}catch(g){EY(g)}finally{L===null&&A._updatedFibers&&(W=A._updatedFibers.size,A._updatedFibers.clear(),10<W&&console.warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.")),L!==null&&A.types!==null&&(L.types!==null&&L.types!==A.types&&console.error("We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."),L.types=A.types),f.T=L}},nY.unstable_useCacheRefresh=function(){return k().useCacheRefresh()},nY.use=function(W){return k().use(W)},nY.useActionState=function(W,L,A){return k().useActionState(W,L,A)},nY.useCallback=function(W,L){return k().useCallback(W,L)},nY.useContext=function(W){var L=k();return W.$$typeof===I8&&console.error("Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?"),L.useContext(W)},nY.useDebugValue=function(W,L){return k().useDebugValue(W,L)},nY.useDeferredValue=function(W,L){return k().useDeferredValue(W,L)},nY.useEffect=function(W,L){return W==null&&console.warn("React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?"),k().useEffect(W,L)},nY.useEffectEvent=function(W){return k().useEffectEvent(W)},nY.useId=function(){return k().useId()},nY.useImperativeHandle=function(W,L,A){return k().useImperativeHandle(W,L,A)},nY.useInsertionEffect=function(W,L){return W==null&&console.warn("React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?"),k().useInsertionEffect(W,L)},nY.useLayoutEffect=function(W,L){return W==null&&console.warn("React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?"),k().useLayoutEffect(W,L)},nY.useMemo=function(W,L){return k().useMemo(W,L)},nY.useOptimistic=function(W,L){return k().useOptimistic(W,L)},nY.useReducer=function(W,L,A){return k().useReducer(W,L,A)},nY.useRef=function(W){return k().useRef(W)},nY.useState=function(W){return k().useState(W)},nY.useSyncExternalStore=function(W,L,A){return k().useSyncExternalStore(W,L,A)},nY.useTransition=function(){return k().useTransition()},nY.version="19.2.0",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var b=e(o(),1);function oY(Y){let{containerRef:X,activeSelector:Z='[data-state="active"]',getElementValue:Q,updateOnResize:J=!0}=Y,K=b.useRef(new Map),B=b.useRef(null),U=b.useRef(void 0),[q,N]=b.useState({left:0,width:0,height:0,top:0,opacity:0}),[G,E]=b.useState();b.useEffect(()=>{U.current=G},[G]);let z=b.useCallback(()=>{let T=U.current;if(!T){N((M)=>{if(M.opacity===0)return M;return{left:0,width:0,height:0,top:0,opacity:0}});return}let F=K.current.get(T),S=X.current;if(F&&S){let M=F.getBoundingClientRect(),v=S.getBoundingClientRect(),I=M.left-v.left,C=M.width,k=M.height,m=M.top-v.top;N((R)=>{if(R.left===I&&R.width===C&&R.height===k&&R.top===m&&R.opacity===1)return R;return{left:I,width:C,height:k,top:m,opacity:1}})}},[X]),j=b.useRef(void 0);b.useEffect(()=>{j.current=()=>{if(B.current!==null)cancelAnimationFrame(B.current);B.current=requestAnimationFrame(()=>{z(),B.current=null})}},[z]);let O=b.useCallback(()=>{j.current?.()},[]);b.useEffect(()=>{O()},[O]),b.useEffect(()=>{if(!J)return;let T=()=>O();return window.addEventListener("resize",T),()=>{if(window.removeEventListener("resize",T),B.current!==null)cancelAnimationFrame(B.current)}},[O,J]);let H=b.useCallback((T,F)=>{let S=K.current.get(F);if(T===S)return;if(T)K.current.set(F,T);else if(S)K.current.delete(F);else return;if(T)O()},[O]),V=b.useCallback((T)=>{K.current.delete(T),O()},[O]),D=b.useRef(Z),$=b.useRef(Q);return b.useEffect(()=>{D.current=Z,$.current=Q},[Z,Q]),b.useEffect(()=>{let T=X.current;if(!T)return;let F=()=>{let v=T.querySelector(D.current);if(v){let I;if($.current)I=$.current(v);else if(I=v.getAttribute("data-value")||void 0,!I){for(let[C,k]of K.current.entries())if(k===v){I=C;break}}if(I)E((C)=>{if(C!==I)return I;return C})}},S=new MutationObserver(()=>{requestAnimationFrame(F)});S.observe(T,{attributes:!0,attributeFilter:["data-state","data-active","aria-selected"],subtree:!0});let M=setTimeout(F,0);return()=>{S.disconnect(),clearTimeout(M)}},[X]),{indicatorStyle:q,registerElement:H,unregisterElement:V,updateIndicator:z,activeValue:G}}var n=e(o(),1);function aY(Y){let X=new Map,Z=new Set,Q=(J)=>{let K=X.get(J);if(K!==void 0)return K;if(Z.has(J))return 0;Z.add(J);let B=Y.get(J);if(!B||B.parents.length===0)return X.set(J,0),0;let U=B.parents.map((G)=>Q(G.id)),N=Math.max(...U)+1;return X.set(J,N),N};return Y.forEach((J,K)=>{Q(K)}),X}function lY(Y,X,Z,Q,J,K){let B=new Map,U=aY(X),q=new Map;return U.forEach((G,E)=>{if(!q.has(G))q.set(G,[]);q.get(G)?.push(E)}),Array.from(q.keys()).sort((G,E)=>G-E).forEach((G)=>{let E=q.get(G);if(!E)return;E.sort();let z=G*(Q+K);E.forEach((j)=>{let O=X.get(j),H=0;if(O&&O.parents.length>0){let V=O.parents.map((D)=>B.get(D.id)).filter((D)=>D!==void 0);if(V.length>0)H=V.reduce(($,T)=>$+T.x,0)/V.length}if(H===0&&E.length>1){let V=E.indexOf(j);H=-(E.length*Z+(E.length-1)*J)/2+Z/2+V*(Z+J)}B.set(j,{x:H,y:z})}),E.forEach((j,O)=>{let H=B.get(j);if(!H)return;E.slice(0,O).forEach((V)=>{let D=B.get(V);if(!D)return;if(Math.abs(H.x-D.x)<Z+J)H.x=D.x+Z+J})})}),B}function tY(Y,X,Z,Q,J,K,B){let U=[],q=lY(Y,X,Q,J,K,B);return Y.people.forEach((N)=>{let G=q.get(N.id)||{x:0,y:0},E=X.get(N.id);U.push({id:N.id,type:"genealogy",position:G,data:{person:N,hierarchy:E,isExpanded:Z[N.id]??!1}})}),U}function eY(Y,X,Z){let Q=[],J=new Set;return Y.relationships.forEach((K)=>{let B,U;switch(K.type){case"father":case"mother":{B=K.from,U=K.to;break}case"child":{B=K.to,U=K.from;break}default:B=K.from,U=K.to}let q=`e-${B}-${U}-${K.type}`;if(J.has(q))return;J.add(q);let N=X.get(B),G=X.get(U);if(!N||!G)return;let E=Z[B]??!0,z=Z[U]??!0;if(K.type==="father"||K.type==="mother"||K.type==="child"){if(!E||!z)return}Q.push({id:q,source:B,target:U,type:"animated",data:{relationship:K}})}),Q}function YZ(Y){let X=new Map;return Y.people.forEach((Z)=>{X.set(Z.id,{person:Z,parents:[],children:[],adoptions:[],siblings:[]})}),Y.relationships.forEach((Z)=>{let Q=X.get(Z.from),J=X.get(Z.to);if(!Q||!J)return;switch(Z.type){case"father":case"mother":{if(!J.parents.find((K)=>K.id===Z.from))J.parents.push(Q.person);if(Z.type==="father")J.father=Q.person;else if(Z.type==="mother")J.mother=Q.person;if(!Q.children.find((K)=>K.id===Z.to))Q.children.push(J.person);break}case"child":{if(!J.children.find((K)=>K.id===Z.from))J.children.push(Q.person);if(!Q.parents.find((K)=>K.id===Z.to))Q.parents.push(J.person);break}}}),X.forEach((Z)=>{if(Z.parents.length>0){let Q=Z.parents.map((J)=>J.id);X.forEach((J,K)=>{if(K!==Z.person.id){if(J.parents.some((U)=>Q.includes(U.id))&&!Z.siblings.find((U)=>U.id===K))Z.siblings.push(J.person)}})}}),X}function ZZ({data:Y,initialExpanded:X=[],nodeWidth:Z=200,nodeHeight:Q=100,horizontalSpacing:J=250,verticalSpacing:K=150,onNodeSelect:B,onNodeExpand:U,onAddRelation:q}){let[N,G]=n.useState(()=>{let M={};return X.forEach((v)=>{M[v]=!0}),M}),[E,z]=n.useState(null),j=n.useMemo(()=>YZ(Y),[Y]),O=n.useMemo(()=>tY(Y,j,N,Z,Q,J,K),[Y,j,N,Z,Q,J,K]),H=n.useMemo(()=>eY(Y,j,N),[Y,j,N]),V=n.useCallback((M)=>{z(M);let v=Y.people.find((I)=>I.id===M);if(v&&B)B(M,v)},[Y.people,B]),D=n.useCallback((M,v)=>{G((I)=>{let C={...I},k=I[M]??!1;if(C[M]=v??!k,U)U(M,C[M]);return C})},[U]),$=n.useCallback((M)=>{D(M,!1)},[D]),T=n.useCallback((M,v,I)=>{if(q)q(M,v,I)},[q]),F=n.useCallback((M)=>{return j.get(M)},[j]),S=n.useCallback((M)=>{return Y.relationships.filter((v)=>v.from===M||v.to===M)},[Y.relationships]);return{nodes:O,edges:H,hierarchy:j,selectedNodeId:E,expansionState:N,selectNode:V,expandNode:D,collapseNode:$,addRelation:T,getPersonHierarchy:F,getPersonRelations:S}}var A8=e(o(),1),$8=768;function QZ(){let[Y,X]=A8.useState(void 0);return A8.useEffect(()=>{let Z=window.matchMedia(`(max-width: ${$8-1}px)`),Q=()=>{X(window.innerWidth<$8)};return Z.addEventListener("change",Q),X(window.innerWidth<$8),()=>Z.removeEventListener("change",Q)},[]),!!Y}var DY=e(o(),1);function XZ(Y){if(Y.progress!==void 0)return Y.progress;switch(Y.status){case"completed":return 100;case"in-progress":return 50;case"pending":return 0;case"on-hold":return 0;default:return 0}}function JZ(Y){let{projects:X,calculateProgress:Z=XZ}=Y;return DY.useMemo(()=>{if(X.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 J={completed:0,inProgress:0,pending:0,onHold:0},K=0;X.forEach((q)=>{let N=Z(q);switch(K+=N,q.status){case"completed":J.completed++;break;case"in-progress":J.inProgress++;break;case"pending":J.pending++;break;case"on-hold":J.onHold++;break}});let B=Math.round(K/X.length),U="pending";if(J.completed===X.length)U="completed";else if(J.inProgress>0||J.completed>0)U="in-progress";else if(J.onHold>0)U="on-hold";return{percentage:B,status:U,distribution:J,total:X.length,completed:J.completed,inProgress:J.inProgress,pending:J.pending,onHold:J.onHold}},[X,Z])}var PY=e(o(),1);function WZ(Y){let{projects:X,filter:Z,groupBy:Q}=Y,J=PY.useMemo(()=>{let K=Z?X.filter(Z):X,B={running:0,ended:0,pending:0,"on-hold":0,cancelled:0};K.forEach((q)=>{let N=q.status||"pending";if(N in B)B[N]++});let U=Q?K.reduce((q,N)=>{let G=Q(N);if(!q[G])q[G]=[];return q[G].push(N),q},{}):void 0;return{total:K.length,ended:B.ended,running:B.running,pending:B.pending,onHold:B["on-hold"],cancelled:B.cancelled,byStatus:B,filtered:K,grouped:U}},[X,Z,Q]);return{stats:J,total:J.total,ended:J.ended,running:J.running,pending:J.pending,onHold:J.onHold,cancelled:J.cancelled,filtered:J.filtered,grouped:J.grouped}}var M8=e(o(),1);function W8(Y,X){return typeof Y==="function"?Y(X):Y}function a(Y,X){return(Z)=>{X.setState((Q)=>{return{...Q,[Y]:W8(Z,Q[Y])}})}}function V8(Y){return Y instanceof Function}function KZ(Y){return Array.isArray(Y)&&Y.every((X)=>typeof X==="number")}function BZ(Y,X){let Z=[],Q=(J)=>{J.forEach((K)=>{Z.push(K);let B=X(K);if(B!=null&&B.length)Q(B)})};return Q(Y),Z}function _(Y,X,Z){let Q=[],J;return(K)=>{let B;if(Z.key&&Z.debug)B=Date.now();let U=Y(K);if(!(U.length!==Q.length||U.some((G,E)=>Q[E]!==G)))return J;Q=U;let N;if(Z.key&&Z.debug)N=Date.now();if(J=X(...U),Z==null||Z.onChange==null||Z.onChange(J),Z.key&&Z.debug){if(Z!=null&&Z.debug()){let G=Math.round((Date.now()-B)*100)/100,E=Math.round((Date.now()-N)*100)/100,z=E/16,j=(O,H)=>{O=String(O);while(O.length<H)O=" "+O;return O};console.info(`%c⏱ ${j(E,5)} /${j(G,5)} ms`,`
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
color: hsl(${Math.max(0,Math.min(120-120*z,120))}deg 100% 31%);`,Z==null?void 0:Z.key)}}return J}}function y(Y,X,Z,Q){return{debug:()=>{var J;return(J=Y==null?void 0:Y.debugAll)!=null?J:Y[X]},key:Z,onChange:Q}}function UZ(Y,X,Z,Q){let J=()=>{var B;return(B=K.getValue())!=null?B:Y.options.renderFallbackValue},K={id:`${X.id}_${Z.id}`,row:X,column:Z,getValue:()=>X.getValue(Q),renderValue:J,getContext:_(()=>[Y,Z,X,K],(B,U,q,N)=>({table:B,column:U,row:q,cell:N,getValue:N.getValue,renderValue:N.renderValue}),y(Y.options,"debugCells","cell.getContext"))};return Y._features.forEach((B)=>{B.createCell==null||B.createCell(K,Z,X,Y)},{}),K}function jZ(Y,X,Z,Q){var J,K;let U={...Y._getDefaultColumnDef(),...X},q=U.accessorKey,N=(J=(K=U.id)!=null?K:q?typeof String.prototype.replaceAll==="function"?q.replaceAll(".","_"):q.replace(/\./g,"_"):void 0)!=null?J:typeof U.header==="string"?U.header:void 0,G;if(U.accessorFn)G=U.accessorFn;else if(q)if(q.includes("."))G=(z)=>{let j=z;for(let H of q.split(".")){var O;if(j=(O=j)==null?void 0:O[H],j===void 0)console.warn(`"${H}" in deeply nested key "${q}" returned undefined.`)}return j};else G=(z)=>z[U.accessorKey];if(!N)throw Error(U.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header");let E={id:`${String(N)}`,accessorFn:G,parent:Q,depth:Z,columnDef:U,columns:[],getFlatColumns:_(()=>[!0],()=>{var z;return[E,...(z=E.columns)==null?void 0:z.flatMap((j)=>j.getFlatColumns())]},y(Y.options,"debugColumns","column.getFlatColumns")),getLeafColumns:_(()=>[Y._getOrderColumnsFn()],(z)=>{var j;if((j=E.columns)!=null&&j.length){let O=E.columns.flatMap((H)=>H.getLeafColumns());return z(O)}return[E]},y(Y.options,"debugColumns","column.getLeafColumns"))};for(let z of Y._features)z.createColumn==null||z.createColumn(E,Y);return E}var r="debugHeaders";function VY(Y,X,Z){var Q;let K={id:(Q=Z.id)!=null?Q:X.id,column:X,index:Z.index,isPlaceholder:!!Z.isPlaceholder,placeholderId:Z.placeholderId,depth:Z.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let B=[],U=(q)=>{if(q.subHeaders&&q.subHeaders.length)q.subHeaders.map(U);B.push(q)};return U(K),B},getContext:()=>({table:Y,header:K,column:X})};return Y._features.forEach((B)=>{B.createHeader==null||B.createHeader(K,Y)}),K}var qZ={createTable:(Y)=>{Y.getHeaderGroups=_(()=>[Y.getAllColumns(),Y.getVisibleLeafColumns(),Y.getState().columnPinning.left,Y.getState().columnPinning.right],(X,Z,Q,J)=>{var K,B;let U=(K=Q==null?void 0:Q.map((E)=>Z.find((z)=>z.id===E)).filter(Boolean))!=null?K:[],q=(B=J==null?void 0:J.map((E)=>Z.find((z)=>z.id===E)).filter(Boolean))!=null?B:[],N=Z.filter((E)=>!(Q!=null&&Q.includes(E.id))&&!(J!=null&&J.includes(E.id)));return T8(X,[...U,...N,...q],Y)},y(Y.options,r,"getHeaderGroups")),Y.getCenterHeaderGroups=_(()=>[Y.getAllColumns(),Y.getVisibleLeafColumns(),Y.getState().columnPinning.left,Y.getState().columnPinning.right],(X,Z,Q,J)=>{return Z=Z.filter((K)=>!(Q!=null&&Q.includes(K.id))&&!(J!=null&&J.includes(K.id))),T8(X,Z,Y,"center")},y(Y.options,r,"getCenterHeaderGroups")),Y.getLeftHeaderGroups=_(()=>[Y.getAllColumns(),Y.getVisibleLeafColumns(),Y.getState().columnPinning.left],(X,Z,Q)=>{var J;let K=(J=Q==null?void 0:Q.map((B)=>Z.find((U)=>U.id===B)).filter(Boolean))!=null?J:[];return T8(X,K,Y,"left")},y(Y.options,r,"getLeftHeaderGroups")),Y.getRightHeaderGroups=_(()=>[Y.getAllColumns(),Y.getVisibleLeafColumns(),Y.getState().columnPinning.right],(X,Z,Q)=>{var J;let K=(J=Q==null?void 0:Q.map((B)=>Z.find((U)=>U.id===B)).filter(Boolean))!=null?J:[];return T8(X,K,Y,"right")},y(Y.options,r,"getRightHeaderGroups")),Y.getFooterGroups=_(()=>[Y.getHeaderGroups()],(X)=>{return[...X].reverse()},y(Y.options,r,"getFooterGroups")),Y.getLeftFooterGroups=_(()=>[Y.getLeftHeaderGroups()],(X)=>{return[...X].reverse()},y(Y.options,r,"getLeftFooterGroups")),Y.getCenterFooterGroups=_(()=>[Y.getCenterHeaderGroups()],(X)=>{return[...X].reverse()},y(Y.options,r,"getCenterFooterGroups")),Y.getRightFooterGroups=_(()=>[Y.getRightHeaderGroups()],(X)=>{return[...X].reverse()},y(Y.options,r,"getRightFooterGroups")),Y.getFlatHeaders=_(()=>[Y.getHeaderGroups()],(X)=>{return X.map((Z)=>{return Z.headers}).flat()},y(Y.options,r,"getFlatHeaders")),Y.getLeftFlatHeaders=_(()=>[Y.getLeftHeaderGroups()],(X)=>{return X.map((Z)=>{return Z.headers}).flat()},y(Y.options,r,"getLeftFlatHeaders")),Y.getCenterFlatHeaders=_(()=>[Y.getCenterHeaderGroups()],(X)=>{return X.map((Z)=>{return Z.headers}).flat()},y(Y.options,r,"getCenterFlatHeaders")),Y.getRightFlatHeaders=_(()=>[Y.getRightHeaderGroups()],(X)=>{return X.map((Z)=>{return Z.headers}).flat()},y(Y.options,r,"getRightFlatHeaders")),Y.getCenterLeafHeaders=_(()=>[Y.getCenterFlatHeaders()],(X)=>{return X.filter((Z)=>{var Q;return!((Q=Z.subHeaders)!=null&&Q.length)})},y(Y.options,r,"getCenterLeafHeaders")),Y.getLeftLeafHeaders=_(()=>[Y.getLeftFlatHeaders()],(X)=>{return X.filter((Z)=>{var Q;return!((Q=Z.subHeaders)!=null&&Q.length)})},y(Y.options,r,"getLeftLeafHeaders")),Y.getRightLeafHeaders=_(()=>[Y.getRightFlatHeaders()],(X)=>{return X.filter((Z)=>{var Q;return!((Q=Z.subHeaders)!=null&&Q.length)})},y(Y.options,r,"getRightLeafHeaders")),Y.getLeafHeaders=_(()=>[Y.getLeftHeaderGroups(),Y.getCenterHeaderGroups(),Y.getRightHeaderGroups()],(X,Z,Q)=>{var J,K,B,U,q,N;return[...(J=(K=X[0])==null?void 0:K.headers)!=null?J:[],...(B=(U=Z[0])==null?void 0:U.headers)!=null?B:[],...(q=(N=Q[0])==null?void 0:N.headers)!=null?q:[]].map((G)=>{return G.getLeafHeaders()}).flat()},y(Y.options,r,"getLeafHeaders"))}};function T8(Y,X,Z,Q){var J,K;let B=0,U=function(z,j){if(j===void 0)j=1;B=Math.max(B,j),z.filter((O)=>O.getIsVisible()).forEach((O)=>{var H;if((H=O.columns)!=null&&H.length)U(O.columns,j+1)},0)};U(Y);let q=[],N=(z,j)=>{let O={depth:j,id:[Q,`${j}`].filter(Boolean).join("_"),headers:[]},H=[];if(z.forEach((V)=>{let D=[...H].reverse()[0],$=V.column.depth===O.depth,T,F=!1;if($&&V.column.parent)T=V.column.parent;else T=V.column,F=!0;if(D&&(D==null?void 0:D.column)===T)D.subHeaders.push(V);else{let S=VY(Z,T,{id:[Q,j,T.id,V==null?void 0:V.id].filter(Boolean).join("_"),isPlaceholder:F,placeholderId:F?`${H.filter((M)=>M.column===T).length}`:void 0,depth:j,index:H.length});S.subHeaders.push(V),H.push(S)}O.headers.push(V),V.headerGroup=O}),q.push(O),j>0)N(H,j-1)},G=X.map((z,j)=>VY(Z,z,{depth:B,index:j}));N(G,B-1),q.reverse();let E=(z)=>{return z.filter((O)=>O.column.getIsVisible()).map((O)=>{let H=0,V=0,D=[0];if(O.subHeaders&&O.subHeaders.length)D=[],E(O.subHeaders).forEach((T)=>{let{colSpan:F,rowSpan:S}=T;H+=F,D.push(S)});else H=1;let $=Math.min(...D);return V=V+$,O.colSpan=H,O.rowSpan=V,{colSpan:H,rowSpan:V}})};return E((J=(K=q[0])==null?void 0:K.headers)!=null?J:[]),q}var i8=(Y,X,Z,Q,J,K,B)=>{let U={id:X,index:Q,original:Z,depth:J,parentId:B,_valuesCache:{},_uniqueValuesCache:{},getValue:(q)=>{if(U._valuesCache.hasOwnProperty(q))return U._valuesCache[q];let N=Y.getColumn(q);if(!(N!=null&&N.accessorFn))return;return U._valuesCache[q]=N.accessorFn(U.original,Q),U._valuesCache[q]},getUniqueValues:(q)=>{if(U._uniqueValuesCache.hasOwnProperty(q))return U._uniqueValuesCache[q];let N=Y.getColumn(q);if(!(N!=null&&N.accessorFn))return;if(!N.columnDef.getUniqueValues)return U._uniqueValuesCache[q]=[U.getValue(q)],U._uniqueValuesCache[q];return U._uniqueValuesCache[q]=N.columnDef.getUniqueValues(U.original,Q),U._uniqueValuesCache[q]},renderValue:(q)=>{var N;return(N=U.getValue(q))!=null?N:Y.options.renderFallbackValue},subRows:K!=null?K:[],getLeafRows:()=>BZ(U.subRows,(q)=>q.subRows),getParentRow:()=>U.parentId?Y.getRow(U.parentId,!0):void 0,getParentRows:()=>{let q=[],N=U;while(!0){let G=N.getParentRow();if(!G)break;q.push(G),N=G}return q.reverse()},getAllCells:_(()=>[Y.getAllLeafColumns()],(q)=>{return q.map((N)=>{return UZ(Y,U,N,N.id)})},y(Y.options,"debugRows","getAllCells")),_getAllCellsByColumnId:_(()=>[U.getAllCells()],(q)=>{return q.reduce((N,G)=>{return N[G.column.id]=G,N},{})},y(Y.options,"debugRows","getAllCellsByColumnId"))};for(let q=0;q<Y._features.length;q++){let N=Y._features[q];N==null||N.createRow==null||N.createRow(U,Y)}return U},LZ={createColumn:(Y,X)=>{Y._getFacetedRowModel=X.options.getFacetedRowModel&&X.options.getFacetedRowModel(X,Y.id),Y.getFacetedRowModel=()=>{if(!Y._getFacetedRowModel)return X.getPreFilteredRowModel();return Y._getFacetedRowModel()},Y._getFacetedUniqueValues=X.options.getFacetedUniqueValues&&X.options.getFacetedUniqueValues(X,Y.id),Y.getFacetedUniqueValues=()=>{if(!Y._getFacetedUniqueValues)return new Map;return Y._getFacetedUniqueValues()},Y._getFacetedMinMaxValues=X.options.getFacetedMinMaxValues&&X.options.getFacetedMinMaxValues(X,Y.id),Y.getFacetedMinMaxValues=()=>{if(!Y._getFacetedMinMaxValues)return;return Y._getFacetedMinMaxValues()}}},MY=(Y,X,Z)=>{var Q,J;let K=Z==null||(Q=Z.toString())==null?void 0:Q.toLowerCase();return Boolean((J=Y.getValue(X))==null||(J=J.toString())==null||(J=J.toLowerCase())==null?void 0:J.includes(K))};MY.autoRemove=(Y)=>Y8(Y);var xY=(Y,X,Z)=>{var Q;return Boolean((Q=Y.getValue(X))==null||(Q=Q.toString())==null?void 0:Q.includes(Z))};xY.autoRemove=(Y)=>Y8(Y);var FY=(Y,X,Z)=>{var Q;return((Q=Y.getValue(X))==null||(Q=Q.toString())==null?void 0:Q.toLowerCase())===(Z==null?void 0:Z.toLowerCase())};FY.autoRemove=(Y)=>Y8(Y);var CY=(Y,X,Z)=>{var Q;return(Q=Y.getValue(X))==null?void 0:Q.includes(Z)};CY.autoRemove=(Y)=>Y8(Y);var vY=(Y,X,Z)=>{return!Z.some((Q)=>{var J;return!((J=Y.getValue(X))!=null&&J.includes(Q))})};vY.autoRemove=(Y)=>Y8(Y)||!(Y!=null&&Y.length);var IY=(Y,X,Z)=>{return Z.some((Q)=>{var J;return(J=Y.getValue(X))==null?void 0:J.includes(Q)})};IY.autoRemove=(Y)=>Y8(Y)||!(Y!=null&&Y.length);var RY=(Y,X,Z)=>{return Y.getValue(X)===Z};RY.autoRemove=(Y)=>Y8(Y);var _Y=(Y,X,Z)=>{return Y.getValue(X)==Z};_Y.autoRemove=(Y)=>Y8(Y);var r8=(Y,X,Z)=>{let[Q,J]=Z,K=Y.getValue(X);return K>=Q&&K<=J};r8.resolveFilterValue=(Y)=>{let[X,Z]=Y,Q=typeof X!=="number"?parseFloat(X):X,J=typeof Z!=="number"?parseFloat(Z):Z,K=X===null||Number.isNaN(Q)?-1/0:Q,B=Z===null||Number.isNaN(J)?1/0:J;if(K>B){let U=K;K=B,B=U}return[K,B]};r8.autoRemove=(Y)=>Y8(Y)||Y8(Y[0])&&Y8(Y[1]);var Q8={includesString:MY,includesStringSensitive:xY,equalsString:FY,arrIncludes:CY,arrIncludesAll:vY,arrIncludesSome:IY,equals:RY,weakEquals:_Y,inNumberRange:r8};function Y8(Y){return Y===void 0||Y===null||Y===""}var NZ={getDefaultColumnDef:()=>{return{filterFn:"auto"}},getInitialState:(Y)=>{return{columnFilters:[],...Y}},getDefaultOptions:(Y)=>{return{onColumnFiltersChange:a("columnFilters",Y),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}},createColumn:(Y,X)=>{Y.getAutoFilterFn=()=>{let Z=X.getCoreRowModel().flatRows[0],Q=Z==null?void 0:Z.getValue(Y.id);if(typeof Q==="string")return Q8.includesString;if(typeof Q==="number")return Q8.inNumberRange;if(typeof Q==="boolean")return Q8.equals;if(Q!==null&&typeof Q==="object")return Q8.equals;if(Array.isArray(Q))return Q8.arrIncludes;return Q8.weakEquals},Y.getFilterFn=()=>{var Z,Q;return V8(Y.columnDef.filterFn)?Y.columnDef.filterFn:Y.columnDef.filterFn==="auto"?Y.getAutoFilterFn():(Z=(Q=X.options.filterFns)==null?void 0:Q[Y.columnDef.filterFn])!=null?Z:Q8[Y.columnDef.filterFn]},Y.getCanFilter=()=>{var Z,Q,J;return((Z=Y.columnDef.enableColumnFilter)!=null?Z:!0)&&((Q=X.options.enableColumnFilters)!=null?Q:!0)&&((J=X.options.enableFilters)!=null?J:!0)&&!!Y.accessorFn},Y.getIsFiltered=()=>Y.getFilterIndex()>-1,Y.getFilterValue=()=>{var Z;return(Z=X.getState().columnFilters)==null||(Z=Z.find((Q)=>Q.id===Y.id))==null?void 0:Z.value},Y.getFilterIndex=()=>{var Z,Q;return(Z=(Q=X.getState().columnFilters)==null?void 0:Q.findIndex((J)=>J.id===Y.id))!=null?Z:-1},Y.setFilterValue=(Z)=>{X.setColumnFilters((Q)=>{let J=Y.getFilterFn(),K=Q==null?void 0:Q.find((G)=>G.id===Y.id),B=W8(Z,K?K.value:void 0);if(kY(J,B,Y)){var U;return(U=Q==null?void 0:Q.filter((G)=>G.id!==Y.id))!=null?U:[]}let q={id:Y.id,value:B};if(K){var N;return(N=Q==null?void 0:Q.map((G)=>{if(G.id===Y.id)return q;return G}))!=null?N:[]}if(Q!=null&&Q.length)return[...Q,q];return[q]})}},createRow:(Y,X)=>{Y.columnFilters={},Y.columnFiltersMeta={}},createTable:(Y)=>{Y.setColumnFilters=(X)=>{let Z=Y.getAllLeafColumns(),Q=(J)=>{var K;return(K=W8(X,J))==null?void 0:K.filter((B)=>{let U=Z.find((q)=>q.id===B.id);if(U){let q=U.getFilterFn();if(kY(q,B.value,U))return!1}return!0})};Y.options.onColumnFiltersChange==null||Y.options.onColumnFiltersChange(Q)},Y.resetColumnFilters=(X)=>{var Z,Q;Y.setColumnFilters(X?[]:(Z=(Q=Y.initialState)==null?void 0:Q.columnFilters)!=null?Z:[])},Y.getPreFilteredRowModel=()=>Y.getCoreRowModel(),Y.getFilteredRowModel=()=>{if(!Y._getFilteredRowModel&&Y.options.getFilteredRowModel)Y._getFilteredRowModel=Y.options.getFilteredRowModel(Y);if(Y.options.manualFiltering||!Y._getFilteredRowModel)return Y.getPreFilteredRowModel();return Y._getFilteredRowModel()}}};function kY(Y,X,Z){return(Y&&Y.autoRemove?Y.autoRemove(X,Z):!1)||typeof X>"u"||typeof X==="string"&&!X}var zZ=(Y,X,Z)=>{return Z.reduce((Q,J)=>{let K=J.getValue(Y);return Q+(typeof K==="number"?K:0)},0)},GZ=(Y,X,Z)=>{let Q;return Z.forEach((J)=>{let K=J.getValue(Y);if(K!=null&&(Q>K||Q===void 0&&K>=K))Q=K}),Q},OZ=(Y,X,Z)=>{let Q;return Z.forEach((J)=>{let K=J.getValue(Y);if(K!=null&&(Q<K||Q===void 0&&K>=K))Q=K}),Q},EZ=(Y,X,Z)=>{let Q,J;return Z.forEach((K)=>{let B=K.getValue(Y);if(B!=null)if(Q===void 0){if(B>=B)Q=J=B}else{if(Q>B)Q=B;if(J<B)J=B}}),[Q,J]},HZ=(Y,X)=>{let Z=0,Q=0;if(X.forEach((J)=>{let K=J.getValue(Y);if(K!=null&&(K=+K)>=K)++Z,Q+=K}),Z)return Q/Z;return},AZ=(Y,X)=>{if(!X.length)return;let Z=X.map((K)=>K.getValue(Y));if(!KZ(Z))return;if(Z.length===1)return Z[0];let Q=Math.floor(Z.length/2),J=Z.sort((K,B)=>K-B);return Z.length%2!==0?J[Q]:(J[Q-1]+J[Q])/2},TZ=(Y,X)=>{return Array.from(new Set(X.map((Z)=>Z.getValue(Y))).values())},DZ=(Y,X)=>{return new Set(X.map((Z)=>Z.getValue(Y))).size},PZ=(Y,X)=>{return X.length},S8={sum:zZ,min:GZ,max:OZ,extent:EZ,mean:HZ,median:AZ,unique:TZ,uniqueCount:DZ,count:PZ},VZ={getDefaultColumnDef:()=>{return{aggregatedCell:(Y)=>{var X,Z;return(X=(Z=Y.getValue())==null||Z.toString==null?void 0:Z.toString())!=null?X:null},aggregationFn:"auto"}},getInitialState:(Y)=>{return{grouping:[],...Y}},getDefaultOptions:(Y)=>{return{onGroupingChange:a("grouping",Y),groupedColumnMode:"reorder"}},createColumn:(Y,X)=>{Y.toggleGrouping=()=>{X.setGrouping((Z)=>{if(Z!=null&&Z.includes(Y.id))return Z.filter((Q)=>Q!==Y.id);return[...Z!=null?Z:[],Y.id]})},Y.getCanGroup=()=>{var Z,Q;return((Z=Y.columnDef.enableGrouping)!=null?Z:!0)&&((Q=X.options.enableGrouping)!=null?Q:!0)&&(!!Y.accessorFn||!!Y.columnDef.getGroupingValue)},Y.getIsGrouped=()=>{var Z;return(Z=X.getState().grouping)==null?void 0:Z.includes(Y.id)},Y.getGroupedIndex=()=>{var Z;return(Z=X.getState().grouping)==null?void 0:Z.indexOf(Y.id)},Y.getToggleGroupingHandler=()=>{let Z=Y.getCanGroup();return()=>{if(!Z)return;Y.toggleGrouping()}},Y.getAutoAggregationFn=()=>{let Z=X.getCoreRowModel().flatRows[0],Q=Z==null?void 0:Z.getValue(Y.id);if(typeof Q==="number")return S8.sum;if(Object.prototype.toString.call(Q)==="[object Date]")return S8.extent},Y.getAggregationFn=()=>{var Z,Q;if(!Y)throw Error();return V8(Y.columnDef.aggregationFn)?Y.columnDef.aggregationFn:Y.columnDef.aggregationFn==="auto"?Y.getAutoAggregationFn():(Z=(Q=X.options.aggregationFns)==null?void 0:Q[Y.columnDef.aggregationFn])!=null?Z:S8[Y.columnDef.aggregationFn]}},createTable:(Y)=>{Y.setGrouping=(X)=>Y.options.onGroupingChange==null?void 0:Y.options.onGroupingChange(X),Y.resetGrouping=(X)=>{var Z,Q;Y.setGrouping(X?[]:(Z=(Q=Y.initialState)==null?void 0:Q.grouping)!=null?Z:[])},Y.getPreGroupedRowModel=()=>Y.getFilteredRowModel(),Y.getGroupedRowModel=()=>{if(!Y._getGroupedRowModel&&Y.options.getGroupedRowModel)Y._getGroupedRowModel=Y.options.getGroupedRowModel(Y);if(Y.options.manualGrouping||!Y._getGroupedRowModel)return Y.getPreGroupedRowModel();return Y._getGroupedRowModel()}},createRow:(Y,X)=>{Y.getIsGrouped=()=>!!Y.groupingColumnId,Y.getGroupingValue=(Z)=>{if(Y._groupingValuesCache.hasOwnProperty(Z))return Y._groupingValuesCache[Z];let Q=X.getColumn(Z);if(!(Q!=null&&Q.columnDef.getGroupingValue))return Y.getValue(Z);return Y._groupingValuesCache[Z]=Q.columnDef.getGroupingValue(Y.original),Y._groupingValuesCache[Z]},Y._groupingValuesCache={}},createCell:(Y,X,Z,Q)=>{Y.getIsGrouped=()=>X.getIsGrouped()&&X.id===Z.groupingColumnId,Y.getIsPlaceholder=()=>!Y.getIsGrouped()&&X.getIsGrouped(),Y.getIsAggregated=()=>{var J;return!Y.getIsGrouped()&&!Y.getIsPlaceholder()&&!!((J=Z.subRows)!=null&&J.length)}}};function kZ(Y,X,Z){if(!(X!=null&&X.length)||!Z)return Y;let Q=Y.filter((K)=>!X.includes(K.id));if(Z==="remove")return Q;return[...X.map((K)=>Y.find((B)=>B.id===K)).filter(Boolean),...Q]}var MZ={getInitialState:(Y)=>{return{columnOrder:[],...Y}},getDefaultOptions:(Y)=>{return{onColumnOrderChange:a("columnOrder",Y)}},createColumn:(Y,X)=>{Y.getIndex=_((Z)=>[N8(X,Z)],(Z)=>Z.findIndex((Q)=>Q.id===Y.id),y(X.options,"debugColumns","getIndex")),Y.getIsFirstColumn=(Z)=>{var Q;return((Q=N8(X,Z)[0])==null?void 0:Q.id)===Y.id},Y.getIsLastColumn=(Z)=>{var Q;let J=N8(X,Z);return((Q=J[J.length-1])==null?void 0:Q.id)===Y.id}},createTable:(Y)=>{Y.setColumnOrder=(X)=>Y.options.onColumnOrderChange==null?void 0:Y.options.onColumnOrderChange(X),Y.resetColumnOrder=(X)=>{var Z;Y.setColumnOrder(X?[]:(Z=Y.initialState.columnOrder)!=null?Z:[])},Y._getOrderColumnsFn=_(()=>[Y.getState().columnOrder,Y.getState().grouping,Y.options.groupedColumnMode],(X,Z,Q)=>(J)=>{let K=[];if(!(X!=null&&X.length))K=J;else{let B=[...X],U=[...J];while(U.length&&B.length){let q=B.shift(),N=U.findIndex((G)=>G.id===q);if(N>-1)K.push(U.splice(N,1)[0])}K=[...K,...U]}return kZ(K,Z,Q)},y(Y.options,"debugTable","_getOrderColumnsFn"))}},h8=()=>({left:[],right:[]}),xZ={getInitialState:(Y)=>{return{columnPinning:h8(),...Y}},getDefaultOptions:(Y)=>{return{onColumnPinningChange:a("columnPinning",Y)}},createColumn:(Y,X)=>{Y.pin=(Z)=>{let Q=Y.getLeafColumns().map((J)=>J.id).filter(Boolean);X.setColumnPinning((J)=>{var K,B;if(Z==="right"){var U,q;return{left:((U=J==null?void 0:J.left)!=null?U:[]).filter((E)=>!(Q!=null&&Q.includes(E))),right:[...((q=J==null?void 0:J.right)!=null?q:[]).filter((E)=>!(Q!=null&&Q.includes(E))),...Q]}}if(Z==="left"){var N,G;return{left:[...((N=J==null?void 0:J.left)!=null?N:[]).filter((E)=>!(Q!=null&&Q.includes(E))),...Q],right:((G=J==null?void 0:J.right)!=null?G:[]).filter((E)=>!(Q!=null&&Q.includes(E)))}}return{left:((K=J==null?void 0:J.left)!=null?K:[]).filter((E)=>!(Q!=null&&Q.includes(E))),right:((B=J==null?void 0:J.right)!=null?B:[]).filter((E)=>!(Q!=null&&Q.includes(E)))}})},Y.getCanPin=()=>{return Y.getLeafColumns().some((Q)=>{var J,K,B;return((J=Q.columnDef.enablePinning)!=null?J:!0)&&((K=(B=X.options.enableColumnPinning)!=null?B:X.options.enablePinning)!=null?K:!0)})},Y.getIsPinned=()=>{let Z=Y.getLeafColumns().map((U)=>U.id),{left:Q,right:J}=X.getState().columnPinning,K=Z.some((U)=>Q==null?void 0:Q.includes(U)),B=Z.some((U)=>J==null?void 0:J.includes(U));return K?"left":B?"right":!1},Y.getPinnedIndex=()=>{var Z,Q;let J=Y.getIsPinned();return J?(Z=(Q=X.getState().columnPinning)==null||(Q=Q[J])==null?void 0:Q.indexOf(Y.id))!=null?Z:-1:0}},createRow:(Y,X)=>{Y.getCenterVisibleCells=_(()=>[Y._getAllVisibleCells(),X.getState().columnPinning.left,X.getState().columnPinning.right],(Z,Q,J)=>{let K=[...Q!=null?Q:[],...J!=null?J:[]];return Z.filter((B)=>!K.includes(B.column.id))},y(X.options,"debugRows","getCenterVisibleCells")),Y.getLeftVisibleCells=_(()=>[Y._getAllVisibleCells(),X.getState().columnPinning.left],(Z,Q)=>{return(Q!=null?Q:[]).map((K)=>Z.find((B)=>B.column.id===K)).filter(Boolean).map((K)=>({...K,position:"left"}))},y(X.options,"debugRows","getLeftVisibleCells")),Y.getRightVisibleCells=_(()=>[Y._getAllVisibleCells(),X.getState().columnPinning.right],(Z,Q)=>{return(Q!=null?Q:[]).map((K)=>Z.find((B)=>B.column.id===K)).filter(Boolean).map((K)=>({...K,position:"right"}))},y(X.options,"debugRows","getRightVisibleCells"))},createTable:(Y)=>{Y.setColumnPinning=(X)=>Y.options.onColumnPinningChange==null?void 0:Y.options.onColumnPinningChange(X),Y.resetColumnPinning=(X)=>{var Z,Q;return Y.setColumnPinning(X?h8():(Z=(Q=Y.initialState)==null?void 0:Q.columnPinning)!=null?Z:h8())},Y.getIsSomeColumnsPinned=(X)=>{var Z;let Q=Y.getState().columnPinning;if(!X){var J,K;return Boolean(((J=Q.left)==null?void 0:J.length)||((K=Q.right)==null?void 0:K.length))}return Boolean((Z=Q[X])==null?void 0:Z.length)},Y.getLeftLeafColumns=_(()=>[Y.getAllLeafColumns(),Y.getState().columnPinning.left],(X,Z)=>{return(Z!=null?Z:[]).map((Q)=>X.find((J)=>J.id===Q)).filter(Boolean)},y(Y.options,"debugColumns","getLeftLeafColumns")),Y.getRightLeafColumns=_(()=>[Y.getAllLeafColumns(),Y.getState().columnPinning.right],(X,Z)=>{return(Z!=null?Z:[]).map((Q)=>X.find((J)=>J.id===Q)).filter(Boolean)},y(Y.options,"debugColumns","getRightLeafColumns")),Y.getCenterLeafColumns=_(()=>[Y.getAllLeafColumns(),Y.getState().columnPinning.left,Y.getState().columnPinning.right],(X,Z,Q)=>{let J=[...Z!=null?Z:[],...Q!=null?Q:[]];return X.filter((K)=>!J.includes(K.id))},y(Y.options,"debugColumns","getCenterLeafColumns"))}};function FZ(Y){return Y||(typeof document<"u"?document:null)}var D8={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},f8=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),CZ={getDefaultColumnDef:()=>{return D8},getInitialState:(Y)=>{return{columnSizing:{},columnSizingInfo:f8(),...Y}},getDefaultOptions:(Y)=>{return{columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:a("columnSizing",Y),onColumnSizingInfoChange:a("columnSizingInfo",Y)}},createColumn:(Y,X)=>{Y.getSize=()=>{var Z,Q,J;let K=X.getState().columnSizing[Y.id];return Math.min(Math.max((Z=Y.columnDef.minSize)!=null?Z:D8.minSize,(Q=K!=null?K:Y.columnDef.size)!=null?Q:D8.size),(J=Y.columnDef.maxSize)!=null?J:D8.maxSize)},Y.getStart=_((Z)=>[Z,N8(X,Z),X.getState().columnSizing],(Z,Q)=>Q.slice(0,Y.getIndex(Z)).reduce((J,K)=>J+K.getSize(),0),y(X.options,"debugColumns","getStart")),Y.getAfter=_((Z)=>[Z,N8(X,Z),X.getState().columnSizing],(Z,Q)=>Q.slice(Y.getIndex(Z)+1).reduce((J,K)=>J+K.getSize(),0),y(X.options,"debugColumns","getAfter")),Y.resetSize=()=>{X.setColumnSizing((Z)=>{let{[Y.id]:Q,...J}=Z;return J})},Y.getCanResize=()=>{var Z,Q;return((Z=Y.columnDef.enableResizing)!=null?Z:!0)&&((Q=X.options.enableColumnResizing)!=null?Q:!0)},Y.getIsResizing=()=>{return X.getState().columnSizingInfo.isResizingColumn===Y.id}},createHeader:(Y,X)=>{Y.getSize=()=>{let Z=0,Q=(J)=>{if(J.subHeaders.length)J.subHeaders.forEach(Q);else{var K;Z+=(K=J.column.getSize())!=null?K:0}};return Q(Y),Z},Y.getStart=()=>{if(Y.index>0){let Z=Y.headerGroup.headers[Y.index-1];return Z.getStart()+Z.getSize()}return 0},Y.getResizeHandler=(Z)=>{let Q=X.getColumn(Y.column.id),J=Q==null?void 0:Q.getCanResize();return(K)=>{if(!Q||!J)return;if(K.persist==null||K.persist(),g8(K)){if(K.touches&&K.touches.length>1)return}let B=Y.getSize(),U=Y?Y.getLeafHeaders().map((D)=>[D.column.id,D.column.getSize()]):[[Q.id,Q.getSize()]],q=g8(K)?Math.round(K.touches[0].clientX):K.clientX,N={},G=(D,$)=>{if(typeof $!=="number")return;if(X.setColumnSizingInfo((T)=>{var F,S;let M=X.options.columnResizeDirection==="rtl"?-1:1,v=($-((F=T==null?void 0:T.startOffset)!=null?F:0))*M,I=Math.max(v/((S=T==null?void 0:T.startSize)!=null?S:0),-0.999999);return T.columnSizingStart.forEach((C)=>{let[k,m]=C;N[k]=Math.round(Math.max(m+m*I,0)*100)/100}),{...T,deltaOffset:v,deltaPercentage:I}}),X.options.columnResizeMode==="onChange"||D==="end")X.setColumnSizing((T)=>({...T,...N}))},E=(D)=>G("move",D),z=(D)=>{G("end",D),X.setColumnSizingInfo(($)=>({...$,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},j=FZ(Z),O={moveHandler:(D)=>E(D.clientX),upHandler:(D)=>{j==null||j.removeEventListener("mousemove",O.moveHandler),j==null||j.removeEventListener("mouseup",O.upHandler),z(D.clientX)}},H={moveHandler:(D)=>{if(D.cancelable)D.preventDefault(),D.stopPropagation();return E(D.touches[0].clientX),!1},upHandler:(D)=>{var $;if(j==null||j.removeEventListener("touchmove",H.moveHandler),j==null||j.removeEventListener("touchend",H.upHandler),D.cancelable)D.preventDefault(),D.stopPropagation();z(($=D.touches[0])==null?void 0:$.clientX)}},V=vZ()?{passive:!1}:!1;if(g8(K))j==null||j.addEventListener("touchmove",H.moveHandler,V),j==null||j.addEventListener("touchend",H.upHandler,V);else j==null||j.addEventListener("mousemove",O.moveHandler,V),j==null||j.addEventListener("mouseup",O.upHandler,V);X.setColumnSizingInfo((D)=>({...D,startOffset:q,startSize:B,deltaOffset:0,deltaPercentage:0,columnSizingStart:U,isResizingColumn:Q.id}))}}},createTable:(Y)=>{Y.setColumnSizing=(X)=>Y.options.onColumnSizingChange==null?void 0:Y.options.onColumnSizingChange(X),Y.setColumnSizingInfo=(X)=>Y.options.onColumnSizingInfoChange==null?void 0:Y.options.onColumnSizingInfoChange(X),Y.resetColumnSizing=(X)=>{var Z;Y.setColumnSizing(X?{}:(Z=Y.initialState.columnSizing)!=null?Z:{})},Y.resetHeaderSizeInfo=(X)=>{var Z;Y.setColumnSizingInfo(X?f8():(Z=Y.initialState.columnSizingInfo)!=null?Z:f8())},Y.getTotalSize=()=>{var X,Z;return(X=(Z=Y.getHeaderGroups()[0])==null?void 0:Z.headers.reduce((Q,J)=>{return Q+J.getSize()},0))!=null?X:0},Y.getLeftTotalSize=()=>{var X,Z;return(X=(Z=Y.getLeftHeaderGroups()[0])==null?void 0:Z.headers.reduce((Q,J)=>{return Q+J.getSize()},0))!=null?X:0},Y.getCenterTotalSize=()=>{var X,Z;return(X=(Z=Y.getCenterHeaderGroups()[0])==null?void 0:Z.headers.reduce((Q,J)=>{return Q+J.getSize()},0))!=null?X:0},Y.getRightTotalSize=()=>{var X,Z;return(X=(Z=Y.getRightHeaderGroups()[0])==null?void 0:Z.headers.reduce((Q,J)=>{return Q+J.getSize()},0))!=null?X:0}}},P8=null;function vZ(){if(typeof P8==="boolean")return P8;let Y=!1;try{let X={get passive(){return Y=!0,!1}},Z=()=>{};window.addEventListener("test",Z,X),window.removeEventListener("test",Z)}catch(X){Y=!1}return P8=Y,P8}function g8(Y){return Y.type==="touchstart"}var IZ={getInitialState:(Y)=>{return{columnVisibility:{},...Y}},getDefaultOptions:(Y)=>{return{onColumnVisibilityChange:a("columnVisibility",Y)}},createColumn:(Y,X)=>{Y.toggleVisibility=(Z)=>{if(Y.getCanHide())X.setColumnVisibility((Q)=>({...Q,[Y.id]:Z!=null?Z:!Y.getIsVisible()}))},Y.getIsVisible=()=>{var Z,Q;let J=Y.columns;return(Z=J.length?J.some((K)=>K.getIsVisible()):(Q=X.getState().columnVisibility)==null?void 0:Q[Y.id])!=null?Z:!0},Y.getCanHide=()=>{var Z,Q;return((Z=Y.columnDef.enableHiding)!=null?Z:!0)&&((Q=X.options.enableHiding)!=null?Q:!0)},Y.getToggleVisibilityHandler=()=>{return(Z)=>{Y.toggleVisibility==null||Y.toggleVisibility(Z.target.checked)}}},createRow:(Y,X)=>{Y._getAllVisibleCells=_(()=>[Y.getAllCells(),X.getState().columnVisibility],(Z)=>{return Z.filter((Q)=>Q.column.getIsVisible())},y(X.options,"debugRows","_getAllVisibleCells")),Y.getVisibleCells=_(()=>[Y.getLeftVisibleCells(),Y.getCenterVisibleCells(),Y.getRightVisibleCells()],(Z,Q,J)=>[...Z,...Q,...J],y(X.options,"debugRows","getVisibleCells"))},createTable:(Y)=>{let X=(Z,Q)=>{return _(()=>[Q(),Q().filter((J)=>J.getIsVisible()).map((J)=>J.id).join("_")],(J)=>{return J.filter((K)=>K.getIsVisible==null?void 0:K.getIsVisible())},y(Y.options,"debugColumns",Z))};Y.getVisibleFlatColumns=X("getVisibleFlatColumns",()=>Y.getAllFlatColumns()),Y.getVisibleLeafColumns=X("getVisibleLeafColumns",()=>Y.getAllLeafColumns()),Y.getLeftVisibleLeafColumns=X("getLeftVisibleLeafColumns",()=>Y.getLeftLeafColumns()),Y.getRightVisibleLeafColumns=X("getRightVisibleLeafColumns",()=>Y.getRightLeafColumns()),Y.getCenterVisibleLeafColumns=X("getCenterVisibleLeafColumns",()=>Y.getCenterLeafColumns()),Y.setColumnVisibility=(Z)=>Y.options.onColumnVisibilityChange==null?void 0:Y.options.onColumnVisibilityChange(Z),Y.resetColumnVisibility=(Z)=>{var Q;Y.setColumnVisibility(Z?{}:(Q=Y.initialState.columnVisibility)!=null?Q:{})},Y.toggleAllColumnsVisible=(Z)=>{var Q;Z=(Q=Z)!=null?Q:!Y.getIsAllColumnsVisible(),Y.setColumnVisibility(Y.getAllLeafColumns().reduce((J,K)=>({...J,[K.id]:!Z?!(K.getCanHide!=null&&K.getCanHide()):Z}),{}))},Y.getIsAllColumnsVisible=()=>!Y.getAllLeafColumns().some((Z)=>!(Z.getIsVisible!=null&&Z.getIsVisible())),Y.getIsSomeColumnsVisible=()=>Y.getAllLeafColumns().some((Z)=>Z.getIsVisible==null?void 0:Z.getIsVisible()),Y.getToggleAllColumnsVisibilityHandler=()=>{return(Z)=>{var Q;Y.toggleAllColumnsVisible((Q=Z.target)==null?void 0:Q.checked)}}}};function N8(Y,X){return!X?Y.getVisibleLeafColumns():X==="center"?Y.getCenterVisibleLeafColumns():X==="left"?Y.getLeftVisibleLeafColumns():Y.getRightVisibleLeafColumns()}var RZ={createTable:(Y)=>{Y._getGlobalFacetedRowModel=Y.options.getFacetedRowModel&&Y.options.getFacetedRowModel(Y,"__global__"),Y.getGlobalFacetedRowModel=()=>{if(Y.options.manualFiltering||!Y._getGlobalFacetedRowModel)return Y.getPreFilteredRowModel();return Y._getGlobalFacetedRowModel()},Y._getGlobalFacetedUniqueValues=Y.options.getFacetedUniqueValues&&Y.options.getFacetedUniqueValues(Y,"__global__"),Y.getGlobalFacetedUniqueValues=()=>{if(!Y._getGlobalFacetedUniqueValues)return new Map;return Y._getGlobalFacetedUniqueValues()},Y._getGlobalFacetedMinMaxValues=Y.options.getFacetedMinMaxValues&&Y.options.getFacetedMinMaxValues(Y,"__global__"),Y.getGlobalFacetedMinMaxValues=()=>{if(!Y._getGlobalFacetedMinMaxValues)return;return Y._getGlobalFacetedMinMaxValues()}}},_Z={getInitialState:(Y)=>{return{globalFilter:void 0,...Y}},getDefaultOptions:(Y)=>{return{onGlobalFilterChange:a("globalFilter",Y),globalFilterFn:"auto",getColumnCanGlobalFilter:(X)=>{var Z;let Q=(Z=Y.getCoreRowModel().flatRows[0])==null||(Z=Z._getAllCellsByColumnId()[X.id])==null?void 0:Z.getValue();return typeof Q==="string"||typeof Q==="number"}}},createColumn:(Y,X)=>{Y.getCanGlobalFilter=()=>{var Z,Q,J,K;return((Z=Y.columnDef.enableGlobalFilter)!=null?Z:!0)&&((Q=X.options.enableGlobalFilter)!=null?Q:!0)&&((J=X.options.enableFilters)!=null?J:!0)&&((K=X.options.getColumnCanGlobalFilter==null?void 0:X.options.getColumnCanGlobalFilter(Y))!=null?K:!0)&&!!Y.accessorFn}},createTable:(Y)=>{Y.getGlobalAutoFilterFn=()=>{return Q8.includesString},Y.getGlobalFilterFn=()=>{var X,Z;let{globalFilterFn:Q}=Y.options;return V8(Q)?Q:Q==="auto"?Y.getGlobalAutoFilterFn():(X=(Z=Y.options.filterFns)==null?void 0:Z[Q])!=null?X:Q8[Q]},Y.setGlobalFilter=(X)=>{Y.options.onGlobalFilterChange==null||Y.options.onGlobalFilterChange(X)},Y.resetGlobalFilter=(X)=>{Y.setGlobalFilter(X?void 0:Y.initialState.globalFilter)}}},yZ={getInitialState:(Y)=>{return{expanded:{},...Y}},getDefaultOptions:(Y)=>{return{onExpandedChange:a("expanded",Y),paginateExpandedRows:!0}},createTable:(Y)=>{let X=!1,Z=!1;Y._autoResetExpanded=()=>{var Q,J;if(!X){Y._queue(()=>{X=!0});return}if((Q=(J=Y.options.autoResetAll)!=null?J:Y.options.autoResetExpanded)!=null?Q:!Y.options.manualExpanding){if(Z)return;Z=!0,Y._queue(()=>{Y.resetExpanded(),Z=!1})}},Y.setExpanded=(Q)=>Y.options.onExpandedChange==null?void 0:Y.options.onExpandedChange(Q),Y.toggleAllRowsExpanded=(Q)=>{if(Q!=null?Q:!Y.getIsAllRowsExpanded())Y.setExpanded(!0);else Y.setExpanded({})},Y.resetExpanded=(Q)=>{var J,K;Y.setExpanded(Q?{}:(J=(K=Y.initialState)==null?void 0:K.expanded)!=null?J:{})},Y.getCanSomeRowsExpand=()=>{return Y.getPrePaginationRowModel().flatRows.some((Q)=>Q.getCanExpand())},Y.getToggleAllRowsExpandedHandler=()=>{return(Q)=>{Q.persist==null||Q.persist(),Y.toggleAllRowsExpanded()}},Y.getIsSomeRowsExpanded=()=>{let Q=Y.getState().expanded;return Q===!0||Object.values(Q).some(Boolean)},Y.getIsAllRowsExpanded=()=>{let Q=Y.getState().expanded;if(typeof Q==="boolean")return Q===!0;if(!Object.keys(Q).length)return!1;if(Y.getRowModel().flatRows.some((J)=>!J.getIsExpanded()))return!1;return!0},Y.getExpandedDepth=()=>{let Q=0;return(Y.getState().expanded===!0?Object.keys(Y.getRowModel().rowsById):Object.keys(Y.getState().expanded)).forEach((K)=>{let B=K.split(".");Q=Math.max(Q,B.length)}),Q},Y.getPreExpandedRowModel=()=>Y.getSortedRowModel(),Y.getExpandedRowModel=()=>{if(!Y._getExpandedRowModel&&Y.options.getExpandedRowModel)Y._getExpandedRowModel=Y.options.getExpandedRowModel(Y);if(Y.options.manualExpanding||!Y._getExpandedRowModel)return Y.getPreExpandedRowModel();return Y._getExpandedRowModel()}},createRow:(Y,X)=>{Y.toggleExpanded=(Z)=>{X.setExpanded((Q)=>{var J;let K=Q===!0?!0:!!(Q!=null&&Q[Y.id]),B={};if(Q===!0)Object.keys(X.getRowModel().rowsById).forEach((U)=>{B[U]=!0});else B=Q;if(Z=(J=Z)!=null?J:!K,!K&&Z)return{...B,[Y.id]:!0};if(K&&!Z){let{[Y.id]:U,...q}=B;return q}return Q})},Y.getIsExpanded=()=>{var Z;let Q=X.getState().expanded;return!!((Z=X.options.getIsRowExpanded==null?void 0:X.options.getIsRowExpanded(Y))!=null?Z:Q===!0||(Q==null?void 0:Q[Y.id]))},Y.getCanExpand=()=>{var Z,Q,J;return(Z=X.options.getRowCanExpand==null?void 0:X.options.getRowCanExpand(Y))!=null?Z:((Q=X.options.enableExpanding)!=null?Q:!0)&&!!((J=Y.subRows)!=null&&J.length)},Y.getIsAllParentsExpanded=()=>{let Z=!0,Q=Y;while(Z&&Q.parentId)Q=X.getRow(Q.parentId,!0),Z=Q.getIsExpanded();return Z},Y.getToggleExpandedHandler=()=>{let Z=Y.getCanExpand();return()=>{if(!Z)return;Y.toggleExpanded()}}}},b8=0,c8=10,w8=()=>({pageIndex:b8,pageSize:c8}),$Z={getInitialState:(Y)=>{return{...Y,pagination:{...w8(),...Y==null?void 0:Y.pagination}}},getDefaultOptions:(Y)=>{return{onPaginationChange:a("pagination",Y)}},createTable:(Y)=>{let X=!1,Z=!1;Y._autoResetPageIndex=()=>{var Q,J;if(!X){Y._queue(()=>{X=!0});return}if((Q=(J=Y.options.autoResetAll)!=null?J:Y.options.autoResetPageIndex)!=null?Q:!Y.options.manualPagination){if(Z)return;Z=!0,Y._queue(()=>{Y.resetPageIndex(),Z=!1})}},Y.setPagination=(Q)=>{let J=(K)=>{return W8(Q,K)};return Y.options.onPaginationChange==null?void 0:Y.options.onPaginationChange(J)},Y.resetPagination=(Q)=>{var J;Y.setPagination(Q?w8():(J=Y.initialState.pagination)!=null?J:w8())},Y.setPageIndex=(Q)=>{Y.setPagination((J)=>{let K=W8(Q,J.pageIndex),B=typeof Y.options.pageCount>"u"||Y.options.pageCount===-1?Number.MAX_SAFE_INTEGER:Y.options.pageCount-1;return K=Math.max(0,Math.min(K,B)),{...J,pageIndex:K}})},Y.resetPageIndex=(Q)=>{var J,K;Y.setPageIndex(Q?b8:(J=(K=Y.initialState)==null||(K=K.pagination)==null?void 0:K.pageIndex)!=null?J:b8)},Y.resetPageSize=(Q)=>{var J,K;Y.setPageSize(Q?c8:(J=(K=Y.initialState)==null||(K=K.pagination)==null?void 0:K.pageSize)!=null?J:c8)},Y.setPageSize=(Q)=>{Y.setPagination((J)=>{let K=Math.max(1,W8(Q,J.pageSize)),B=J.pageSize*J.pageIndex,U=Math.floor(B/K);return{...J,pageIndex:U,pageSize:K}})},Y.setPageCount=(Q)=>Y.setPagination((J)=>{var K;let B=W8(Q,(K=Y.options.pageCount)!=null?K:-1);if(typeof B==="number")B=Math.max(-1,B);return{...J,pageCount:B}}),Y.getPageOptions=_(()=>[Y.getPageCount()],(Q)=>{let J=[];if(Q&&Q>0)J=[...Array(Q)].fill(null).map((K,B)=>B);return J},y(Y.options,"debugTable","getPageOptions")),Y.getCanPreviousPage=()=>Y.getState().pagination.pageIndex>0,Y.getCanNextPage=()=>{let{pageIndex:Q}=Y.getState().pagination,J=Y.getPageCount();if(J===-1)return!0;if(J===0)return!1;return Q<J-1},Y.previousPage=()=>{return Y.setPageIndex((Q)=>Q-1)},Y.nextPage=()=>{return Y.setPageIndex((Q)=>{return Q+1})},Y.firstPage=()=>{return Y.setPageIndex(0)},Y.lastPage=()=>{return Y.setPageIndex(Y.getPageCount()-1)},Y.getPrePaginationRowModel=()=>Y.getExpandedRowModel(),Y.getPaginationRowModel=()=>{if(!Y._getPaginationRowModel&&Y.options.getPaginationRowModel)Y._getPaginationRowModel=Y.options.getPaginationRowModel(Y);if(Y.options.manualPagination||!Y._getPaginationRowModel)return Y.getPrePaginationRowModel();return Y._getPaginationRowModel()},Y.getPageCount=()=>{var Q;return(Q=Y.options.pageCount)!=null?Q:Math.ceil(Y.getRowCount()/Y.getState().pagination.pageSize)},Y.getRowCount=()=>{var Q;return(Q=Y.options.rowCount)!=null?Q:Y.getPrePaginationRowModel().rows.length}}},m8=()=>({top:[],bottom:[]}),SZ={getInitialState:(Y)=>{return{rowPinning:m8(),...Y}},getDefaultOptions:(Y)=>{return{onRowPinningChange:a("rowPinning",Y)}},createRow:(Y,X)=>{Y.pin=(Z,Q,J)=>{let K=Q?Y.getLeafRows().map((q)=>{let{id:N}=q;return N}):[],B=J?Y.getParentRows().map((q)=>{let{id:N}=q;return N}):[],U=new Set([...B,Y.id,...K]);X.setRowPinning((q)=>{var N,G;if(Z==="bottom"){var E,z;return{top:((E=q==null?void 0:q.top)!=null?E:[]).filter((H)=>!(U!=null&&U.has(H))),bottom:[...((z=q==null?void 0:q.bottom)!=null?z:[]).filter((H)=>!(U!=null&&U.has(H))),...Array.from(U)]}}if(Z==="top"){var j,O;return{top:[...((j=q==null?void 0:q.top)!=null?j:[]).filter((H)=>!(U!=null&&U.has(H))),...Array.from(U)],bottom:((O=q==null?void 0:q.bottom)!=null?O:[]).filter((H)=>!(U!=null&&U.has(H)))}}return{top:((N=q==null?void 0:q.top)!=null?N:[]).filter((H)=>!(U!=null&&U.has(H))),bottom:((G=q==null?void 0:q.bottom)!=null?G:[]).filter((H)=>!(U!=null&&U.has(H)))}})},Y.getCanPin=()=>{var Z;let{enableRowPinning:Q,enablePinning:J}=X.options;if(typeof Q==="function")return Q(Y);return(Z=Q!=null?Q:J)!=null?Z:!0},Y.getIsPinned=()=>{let Z=[Y.id],{top:Q,bottom:J}=X.getState().rowPinning,K=Z.some((U)=>Q==null?void 0:Q.includes(U)),B=Z.some((U)=>J==null?void 0:J.includes(U));return K?"top":B?"bottom":!1},Y.getPinnedIndex=()=>{var Z,Q;let J=Y.getIsPinned();if(!J)return-1;let K=(Z=J==="top"?X.getTopRows():X.getBottomRows())==null?void 0:Z.map((B)=>{let{id:U}=B;return U});return(Q=K==null?void 0:K.indexOf(Y.id))!=null?Q:-1}},createTable:(Y)=>{Y.setRowPinning=(X)=>Y.options.onRowPinningChange==null?void 0:Y.options.onRowPinningChange(X),Y.resetRowPinning=(X)=>{var Z,Q;return Y.setRowPinning(X?m8():(Z=(Q=Y.initialState)==null?void 0:Q.rowPinning)!=null?Z:m8())},Y.getIsSomeRowsPinned=(X)=>{var Z;let Q=Y.getState().rowPinning;if(!X){var J,K;return Boolean(((J=Q.top)==null?void 0:J.length)||((K=Q.bottom)==null?void 0:K.length))}return Boolean((Z=Q[X])==null?void 0:Z.length)},Y._getPinnedRows=(X,Z,Q)=>{var J;return(((J=Y.options.keepPinnedRows)!=null?J:!0)?(Z!=null?Z:[]).map((B)=>{let U=Y.getRow(B,!0);return U.getIsAllParentsExpanded()?U:null}):(Z!=null?Z:[]).map((B)=>X.find((U)=>U.id===B))).filter(Boolean).map((B)=>({...B,position:Q}))},Y.getTopRows=_(()=>[Y.getRowModel().rows,Y.getState().rowPinning.top],(X,Z)=>Y._getPinnedRows(X,Z,"top"),y(Y.options,"debugRows","getTopRows")),Y.getBottomRows=_(()=>[Y.getRowModel().rows,Y.getState().rowPinning.bottom],(X,Z)=>Y._getPinnedRows(X,Z,"bottom"),y(Y.options,"debugRows","getBottomRows")),Y.getCenterRows=_(()=>[Y.getRowModel().rows,Y.getState().rowPinning.top,Y.getState().rowPinning.bottom],(X,Z,Q)=>{let J=new Set([...Z!=null?Z:[],...Q!=null?Q:[]]);return X.filter((K)=>!J.has(K.id))},y(Y.options,"debugRows","getCenterRows"))}},hZ={getInitialState:(Y)=>{return{rowSelection:{},...Y}},getDefaultOptions:(Y)=>{return{onRowSelectionChange:a("rowSelection",Y),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}},createTable:(Y)=>{Y.setRowSelection=(X)=>Y.options.onRowSelectionChange==null?void 0:Y.options.onRowSelectionChange(X),Y.resetRowSelection=(X)=>{var Z;return Y.setRowSelection(X?{}:(Z=Y.initialState.rowSelection)!=null?Z:{})},Y.toggleAllRowsSelected=(X)=>{Y.setRowSelection((Z)=>{X=typeof X<"u"?X:!Y.getIsAllRowsSelected();let Q={...Z},J=Y.getPreGroupedRowModel().flatRows;if(X)J.forEach((K)=>{if(!K.getCanSelect())return;Q[K.id]=!0});else J.forEach((K)=>{delete Q[K.id]});return Q})},Y.toggleAllPageRowsSelected=(X)=>Y.setRowSelection((Z)=>{let Q=typeof X<"u"?X:!Y.getIsAllPageRowsSelected(),J={...Z};return Y.getRowModel().rows.forEach((K)=>{s8(J,K.id,Q,!0,Y)}),J}),Y.getPreSelectedRowModel=()=>Y.getCoreRowModel(),Y.getSelectedRowModel=_(()=>[Y.getState().rowSelection,Y.getCoreRowModel()],(X,Z)=>{if(!Object.keys(X).length)return{rows:[],flatRows:[],rowsById:{}};return p8(Y,Z)},y(Y.options,"debugTable","getSelectedRowModel")),Y.getFilteredSelectedRowModel=_(()=>[Y.getState().rowSelection,Y.getFilteredRowModel()],(X,Z)=>{if(!Object.keys(X).length)return{rows:[],flatRows:[],rowsById:{}};return p8(Y,Z)},y(Y.options,"debugTable","getFilteredSelectedRowModel")),Y.getGroupedSelectedRowModel=_(()=>[Y.getState().rowSelection,Y.getSortedRowModel()],(X,Z)=>{if(!Object.keys(X).length)return{rows:[],flatRows:[],rowsById:{}};return p8(Y,Z)},y(Y.options,"debugTable","getGroupedSelectedRowModel")),Y.getIsAllRowsSelected=()=>{let X=Y.getFilteredRowModel().flatRows,{rowSelection:Z}=Y.getState(),Q=Boolean(X.length&&Object.keys(Z).length);if(Q){if(X.some((J)=>J.getCanSelect()&&!Z[J.id]))Q=!1}return Q},Y.getIsAllPageRowsSelected=()=>{let X=Y.getPaginationRowModel().flatRows.filter((J)=>J.getCanSelect()),{rowSelection:Z}=Y.getState(),Q=!!X.length;if(Q&&X.some((J)=>!Z[J.id]))Q=!1;return Q},Y.getIsSomeRowsSelected=()=>{var X;let Z=Object.keys((X=Y.getState().rowSelection)!=null?X:{}).length;return Z>0&&Z<Y.getFilteredRowModel().flatRows.length},Y.getIsSomePageRowsSelected=()=>{let X=Y.getPaginationRowModel().flatRows;return Y.getIsAllPageRowsSelected()?!1:X.filter((Z)=>Z.getCanSelect()).some((Z)=>Z.getIsSelected()||Z.getIsSomeSelected())},Y.getToggleAllRowsSelectedHandler=()=>{return(X)=>{Y.toggleAllRowsSelected(X.target.checked)}},Y.getToggleAllPageRowsSelectedHandler=()=>{return(X)=>{Y.toggleAllPageRowsSelected(X.target.checked)}}},createRow:(Y,X)=>{Y.toggleSelected=(Z,Q)=>{let J=Y.getIsSelected();X.setRowSelection((K)=>{var B;if(Z=typeof Z<"u"?Z:!J,Y.getCanSelect()&&J===Z)return K;let U={...K};return s8(U,Y.id,Z,(B=Q==null?void 0:Q.selectChildren)!=null?B:!0,X),U})},Y.getIsSelected=()=>{let{rowSelection:Z}=X.getState();return n8(Y,Z)},Y.getIsSomeSelected=()=>{let{rowSelection:Z}=X.getState();return u8(Y,Z)==="some"},Y.getIsAllSubRowsSelected=()=>{let{rowSelection:Z}=X.getState();return u8(Y,Z)==="all"},Y.getCanSelect=()=>{var Z;if(typeof X.options.enableRowSelection==="function")return X.options.enableRowSelection(Y);return(Z=X.options.enableRowSelection)!=null?Z:!0},Y.getCanSelectSubRows=()=>{var Z;if(typeof X.options.enableSubRowSelection==="function")return X.options.enableSubRowSelection(Y);return(Z=X.options.enableSubRowSelection)!=null?Z:!0},Y.getCanMultiSelect=()=>{var Z;if(typeof X.options.enableMultiRowSelection==="function")return X.options.enableMultiRowSelection(Y);return(Z=X.options.enableMultiRowSelection)!=null?Z:!0},Y.getToggleSelectedHandler=()=>{let Z=Y.getCanSelect();return(Q)=>{var J;if(!Z)return;Y.toggleSelected((J=Q.target)==null?void 0:J.checked)}}}},s8=(Y,X,Z,Q,J)=>{var K;let B=J.getRow(X,!0);if(Z){if(!B.getCanMultiSelect())Object.keys(Y).forEach((U)=>delete Y[U]);if(B.getCanSelect())Y[X]=!0}else delete Y[X];if(Q&&(K=B.subRows)!=null&&K.length&&B.getCanSelectSubRows())B.subRows.forEach((U)=>s8(Y,U.id,Z,Q,J))};function p8(Y,X){let Z=Y.getState().rowSelection,Q=[],J={},K=function(B,U){return B.map((q)=>{var N;let G=n8(q,Z);if(G)Q.push(q),J[q.id]=q;if((N=q.subRows)!=null&&N.length)q={...q,subRows:K(q.subRows)};if(G)return q}).filter(Boolean)};return{rows:K(X.rows),flatRows:Q,rowsById:J}}function n8(Y,X){var Z;return(Z=X[Y.id])!=null?Z:!1}function u8(Y,X,Z){var Q;if(!((Q=Y.subRows)!=null&&Q.length))return!1;let J=!0,K=!1;return Y.subRows.forEach((B)=>{if(K&&!J)return;if(B.getCanSelect())if(n8(B,X))K=!0;else J=!1;if(B.subRows&&B.subRows.length){let U=u8(B,X);if(U==="all")K=!0;else if(U==="some")K=!0,J=!1;else J=!1}}),J?"all":K?"some":!1}var d8=/([0-9]+)/gm,fZ=(Y,X,Z)=>{return yY(K8(Y.getValue(Z)).toLowerCase(),K8(X.getValue(Z)).toLowerCase())},gZ=(Y,X,Z)=>{return yY(K8(Y.getValue(Z)),K8(X.getValue(Z)))},wZ=(Y,X,Z)=>{return o8(K8(Y.getValue(Z)).toLowerCase(),K8(X.getValue(Z)).toLowerCase())},mZ=(Y,X,Z)=>{return o8(K8(Y.getValue(Z)),K8(X.getValue(Z)))},pZ=(Y,X,Z)=>{let Q=Y.getValue(Z),J=X.getValue(Z);return Q>J?1:Q<J?-1:0},bZ=(Y,X,Z)=>{return o8(Y.getValue(Z),X.getValue(Z))};function o8(Y,X){return Y===X?0:Y>X?1:-1}function K8(Y){if(typeof Y==="number"){if(isNaN(Y)||Y===1/0||Y===-1/0)return"";return String(Y)}if(typeof Y==="string")return Y;return""}function yY(Y,X){let Z=Y.split(d8).filter(Boolean),Q=X.split(d8).filter(Boolean);while(Z.length&&Q.length){let J=Z.shift(),K=Q.shift(),B=parseInt(J,10),U=parseInt(K,10),q=[B,U].sort();if(isNaN(q[0])){if(J>K)return 1;if(K>J)return-1;continue}if(isNaN(q[1]))return isNaN(B)?-1:1;if(B>U)return 1;if(U>B)return-1}return Z.length-Q.length}var L8={alphanumeric:fZ,alphanumericCaseSensitive:gZ,text:wZ,textCaseSensitive:mZ,datetime:pZ,basic:bZ},cZ={getInitialState:(Y)=>{return{sorting:[],...Y}},getDefaultColumnDef:()=>{return{sortingFn:"auto",sortUndefined:1}},getDefaultOptions:(Y)=>{return{onSortingChange:a("sorting",Y),isMultiSortEvent:(X)=>{return X.shiftKey}}},createColumn:(Y,X)=>{Y.getAutoSortingFn=()=>{let Z=X.getFilteredRowModel().flatRows.slice(10),Q=!1;for(let J of Z){let K=J==null?void 0:J.getValue(Y.id);if(Object.prototype.toString.call(K)==="[object Date]")return L8.datetime;if(typeof K==="string"){if(Q=!0,K.split(d8).length>1)return L8.alphanumeric}}if(Q)return L8.text;return L8.basic},Y.getAutoSortDir=()=>{let Z=X.getFilteredRowModel().flatRows[0];if(typeof(Z==null?void 0:Z.getValue(Y.id))==="string")return"asc";return"desc"},Y.getSortingFn=()=>{var Z,Q;if(!Y)throw Error();return V8(Y.columnDef.sortingFn)?Y.columnDef.sortingFn:Y.columnDef.sortingFn==="auto"?Y.getAutoSortingFn():(Z=(Q=X.options.sortingFns)==null?void 0:Q[Y.columnDef.sortingFn])!=null?Z:L8[Y.columnDef.sortingFn]},Y.toggleSorting=(Z,Q)=>{let J=Y.getNextSortingOrder(),K=typeof Z<"u"&&Z!==null;X.setSorting((B)=>{let U=B==null?void 0:B.find((j)=>j.id===Y.id),q=B==null?void 0:B.findIndex((j)=>j.id===Y.id),N=[],G,E=K?Z:J==="desc";if(B!=null&&B.length&&Y.getCanMultiSort()&&Q)if(U)G="toggle";else G="add";else if(B!=null&&B.length&&q!==B.length-1)G="replace";else if(U)G="toggle";else G="replace";if(G==="toggle"){if(!K){if(!J)G="remove"}}if(G==="add"){var z;N=[...B,{id:Y.id,desc:E}],N.splice(0,N.length-((z=X.options.maxMultiSortColCount)!=null?z:Number.MAX_SAFE_INTEGER))}else if(G==="toggle")N=B.map((j)=>{if(j.id===Y.id)return{...j,desc:E};return j});else if(G==="remove")N=B.filter((j)=>j.id!==Y.id);else N=[{id:Y.id,desc:E}];return N})},Y.getFirstSortDir=()=>{var Z,Q;return((Z=(Q=Y.columnDef.sortDescFirst)!=null?Q:X.options.sortDescFirst)!=null?Z:Y.getAutoSortDir()==="desc")?"desc":"asc"},Y.getNextSortingOrder=(Z)=>{var Q,J;let K=Y.getFirstSortDir(),B=Y.getIsSorted();if(!B)return K;if(B!==K&&((Q=X.options.enableSortingRemoval)!=null?Q:!0)&&(Z?(J=X.options.enableMultiRemove)!=null?J:!0:!0))return!1;return B==="desc"?"asc":"desc"},Y.getCanSort=()=>{var Z,Q;return((Z=Y.columnDef.enableSorting)!=null?Z:!0)&&((Q=X.options.enableSorting)!=null?Q:!0)&&!!Y.accessorFn},Y.getCanMultiSort=()=>{var Z,Q;return(Z=(Q=Y.columnDef.enableMultiSort)!=null?Q:X.options.enableMultiSort)!=null?Z:!!Y.accessorFn},Y.getIsSorted=()=>{var Z;let Q=(Z=X.getState().sorting)==null?void 0:Z.find((J)=>J.id===Y.id);return!Q?!1:Q.desc?"desc":"asc"},Y.getSortIndex=()=>{var Z,Q;return(Z=(Q=X.getState().sorting)==null?void 0:Q.findIndex((J)=>J.id===Y.id))!=null?Z:-1},Y.clearSorting=()=>{X.setSorting((Z)=>Z!=null&&Z.length?Z.filter((Q)=>Q.id!==Y.id):[])},Y.getToggleSortingHandler=()=>{let Z=Y.getCanSort();return(Q)=>{if(!Z)return;Q.persist==null||Q.persist(),Y.toggleSorting==null||Y.toggleSorting(void 0,Y.getCanMultiSort()?X.options.isMultiSortEvent==null?void 0:X.options.isMultiSortEvent(Q):!1)}}},createTable:(Y)=>{Y.setSorting=(X)=>Y.options.onSortingChange==null?void 0:Y.options.onSortingChange(X),Y.resetSorting=(X)=>{var Z,Q;Y.setSorting(X?[]:(Z=(Q=Y.initialState)==null?void 0:Q.sorting)!=null?Z:[])},Y.getPreSortedRowModel=()=>Y.getGroupedRowModel(),Y.getSortedRowModel=()=>{if(!Y._getSortedRowModel&&Y.options.getSortedRowModel)Y._getSortedRowModel=Y.options.getSortedRowModel(Y);if(Y.options.manualSorting||!Y._getSortedRowModel)return Y.getPreSortedRowModel();return Y._getSortedRowModel()}}},sZ=[qZ,IZ,MZ,xZ,LZ,NZ,RZ,_Z,cZ,VZ,yZ,$Z,SZ,hZ,CZ];function $Y(Y){var X,Z;if(Y.debugAll||Y.debugTable)console.info("Creating Table Instance...");let Q=[...sZ,...(X=Y._features)!=null?X:[]],J={_features:Q},K=J._features.reduce((z,j)=>{return Object.assign(z,j.getDefaultOptions==null?void 0:j.getDefaultOptions(J))},{}),B=(z)=>{if(J.options.mergeOptions)return J.options.mergeOptions(K,z);return{...K,...z}},q={...{},...(Z=Y.initialState)!=null?Z:{}};J._features.forEach((z)=>{var j;q=(j=z.getInitialState==null?void 0:z.getInitialState(q))!=null?j:q});let N=[],G=!1,E={_features:Q,options:{...K,...Y},initialState:q,_queue:(z)=>{if(N.push(z),!G)G=!0,Promise.resolve().then(()=>{while(N.length)N.shift()();G=!1}).catch((j)=>setTimeout(()=>{throw j}))},reset:()=>{J.setState(J.initialState)},setOptions:(z)=>{let j=W8(z,J.options);J.options=B(j)},getState:()=>{return J.options.state},setState:(z)=>{J.options.onStateChange==null||J.options.onStateChange(z)},_getRowId:(z,j,O)=>{var H;return(H=J.options.getRowId==null?void 0:J.options.getRowId(z,j,O))!=null?H:`${O?[O.id,j].join("."):j}`},getCoreRowModel:()=>{if(!J._getCoreRowModel)J._getCoreRowModel=J.options.getCoreRowModel(J);return J._getCoreRowModel()},getRowModel:()=>{return J.getPaginationRowModel()},getRow:(z,j)=>{let O=(j?J.getPrePaginationRowModel():J.getRowModel()).rowsById[z];if(!O){if(O=J.getCoreRowModel().rowsById[z],!O)throw Error(`getRow could not find row with ID: ${z}`)}return O},_getDefaultColumnDef:_(()=>[J.options.defaultColumn],(z)=>{var j;return z=(j=z)!=null?j:{},{header:(O)=>{let H=O.header.column.columnDef;if(H.accessorKey)return H.accessorKey;if(H.accessorFn)return H.id;return null},cell:(O)=>{var H,V;return(H=(V=O.renderValue())==null||V.toString==null?void 0:V.toString())!=null?H:null},...J._features.reduce((O,H)=>{return Object.assign(O,H.getDefaultColumnDef==null?void 0:H.getDefaultColumnDef())},{}),...z}},y(Y,"debugColumns","_getDefaultColumnDef")),_getColumnDefs:()=>J.options.columns,getAllColumns:_(()=>[J._getColumnDefs()],(z)=>{let j=function(O,H,V){if(V===void 0)V=0;return O.map((D)=>{let $=jZ(J,D,V,H),T=D;return $.columns=T.columns?j(T.columns,$,V+1):[],$})};return j(z)},y(Y,"debugColumns","getAllColumns")),getAllFlatColumns:_(()=>[J.getAllColumns()],(z)=>{return z.flatMap((j)=>{return j.getFlatColumns()})},y(Y,"debugColumns","getAllFlatColumns")),_getAllFlatColumnsById:_(()=>[J.getAllFlatColumns()],(z)=>{return z.reduce((j,O)=>{return j[O.id]=O,j},{})},y(Y,"debugColumns","getAllFlatColumnsById")),getAllLeafColumns:_(()=>[J.getAllColumns(),J._getOrderColumnsFn()],(z,j)=>{let O=z.flatMap((H)=>H.getLeafColumns());return j(O)},y(Y,"debugColumns","getAllLeafColumns")),getColumn:(z)=>{let j=J._getAllFlatColumnsById()[z];if(!j)console.error(`[Table] Column with id '${z}' does not exist.`);return j}};Object.assign(J,E);for(let z=0;z<J._features.length;z++){let j=J._features[z];j==null||j.createTable==null||j.createTable(J)}return J}function k8(){return(Y)=>_(()=>[Y.options.data],(X)=>{let Z={rows:[],flatRows:[],rowsById:{}},Q=function(J,K,B){if(K===void 0)K=0;let U=[];for(let N=0;N<J.length;N++){let G=i8(Y,Y._getRowId(J[N],N,B),J[N],N,K,void 0,B==null?void 0:B.id);if(Z.flatRows.push(G),Z.rowsById[G.id]=G,U.push(G),Y.options.getSubRows){var q;if(G.originalSubRows=Y.options.getSubRows(J[N],N),(q=G.originalSubRows)!=null&&q.length)G.subRows=Q(G.originalSubRows,K+1,G)}}return U};return Z.rows=Q(X),Z},y(Y.options,"debugTable","getRowModel",()=>Y._autoResetPageIndex()))}function uZ(Y){let X=[],Z=(Q)=>{var J;if(X.push(Q),(J=Q.subRows)!=null&&J.length&&Q.getIsExpanded())Q.subRows.forEach(Z)};return Y.rows.forEach(Z),{rows:X,flatRows:Y.flatRows,rowsById:Y.rowsById}}function dZ(Y,X,Z){if(Z.options.filterFromLeafRows)return iZ(Y,X,Z);return rZ(Y,X,Z)}function iZ(Y,X,Z){var Q;let J=[],K={},B=(Q=Z.options.maxLeafRowFilterDepth)!=null?Q:100,U=function(q,N){if(N===void 0)N=0;let G=[];for(let z=0;z<q.length;z++){var E;let j=q[z],O=i8(Z,j.id,j.original,j.index,j.depth,void 0,j.parentId);if(O.columnFilters=j.columnFilters,(E=j.subRows)!=null&&E.length&&N<B){if(O.subRows=U(j.subRows,N+1),j=O,X(j)&&!O.subRows.length){G.push(j),K[j.id]=j,J.push(j);continue}if(X(j)||O.subRows.length){G.push(j),K[j.id]=j,J.push(j);continue}}else if(j=O,X(j))G.push(j),K[j.id]=j,J.push(j)}return G};return{rows:U(Y),flatRows:J,rowsById:K}}function rZ(Y,X,Z){var Q;let J=[],K={},B=(Q=Z.options.maxLeafRowFilterDepth)!=null?Q:100,U=function(q,N){if(N===void 0)N=0;let G=[];for(let z=0;z<q.length;z++){let j=q[z];if(X(j)){var E;if((E=j.subRows)!=null&&E.length&&N<B){let H=i8(Z,j.id,j.original,j.index,j.depth,void 0,j.parentId);H.subRows=U(j.subRows,N+1),j=H}G.push(j),J.push(j),K[j.id]=j}}return G};return{rows:U(Y),flatRows:J,rowsById:K}}function SY(){return(Y)=>_(()=>[Y.getPreFilteredRowModel(),Y.getState().columnFilters,Y.getState().globalFilter],(X,Z,Q)=>{if(!X.rows.length||!(Z!=null&&Z.length)&&!Q){for(let z=0;z<X.flatRows.length;z++)X.flatRows[z].columnFilters={},X.flatRows[z].columnFiltersMeta={};return X}let J=[],K=[];(Z!=null?Z:[]).forEach((z)=>{var j;let O=Y.getColumn(z.id);if(!O)return;let H=O.getFilterFn();if(!H){console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${O.id}.`);return}J.push({id:z.id,filterFn:H,resolvedValue:(j=H.resolveFilterValue==null?void 0:H.resolveFilterValue(z.value))!=null?j:z.value})});let B=(Z!=null?Z:[]).map((z)=>z.id),U=Y.getGlobalFilterFn(),q=Y.getAllLeafColumns().filter((z)=>z.getCanGlobalFilter());if(Q&&U&&q.length)B.push("__global__"),q.forEach((z)=>{var j;K.push({id:z.id,filterFn:U,resolvedValue:(j=U.resolveFilterValue==null?void 0:U.resolveFilterValue(Q))!=null?j:Q})});let N,G;for(let z=0;z<X.flatRows.length;z++){let j=X.flatRows[z];if(j.columnFilters={},J.length)for(let O=0;O<J.length;O++){N=J[O];let H=N.id;j.columnFilters[H]=N.filterFn(j,H,N.resolvedValue,(V)=>{j.columnFiltersMeta[H]=V})}if(K.length){for(let O=0;O<K.length;O++){G=K[O];let H=G.id;if(G.filterFn(j,H,G.resolvedValue,(V)=>{j.columnFiltersMeta[H]=V})){j.columnFilters.__global__=!0;break}}if(j.columnFilters.__global__!==!0)j.columnFilters.__global__=!1}}let E=(z)=>{for(let j=0;j<B.length;j++)if(z.columnFilters[B[j]]===!1)return!1;return!0};return dZ(X.rows,E,Y)},y(Y.options,"debugTable","getFilteredRowModel",()=>Y._autoResetPageIndex()))}function hY(Y){return(X)=>_(()=>[X.getState().pagination,X.getPrePaginationRowModel(),X.options.paginateExpandedRows?void 0:X.getState().expanded],(Z,Q)=>{if(!Q.rows.length)return Q;let{pageSize:J,pageIndex:K}=Z,{rows:B,flatRows:U,rowsById:q}=Q,N=J*K,G=N+J;B=B.slice(N,G);let E;if(!X.options.paginateExpandedRows)E=uZ({rows:B,flatRows:U,rowsById:q});else E={rows:B,flatRows:U,rowsById:q};E.flatRows=[];let z=(j)=>{if(E.flatRows.push(j),j.subRows.length)j.subRows.forEach(z)};return E.rows.forEach(z),E},y(X.options,"debugTable","getPaginationRowModel"))}function fY(){return(Y)=>_(()=>[Y.getState().sorting,Y.getPreSortedRowModel()],(X,Z)=>{if(!Z.rows.length||!(X!=null&&X.length))return Z;let Q=Y.getState().sorting,J=[],K=Q.filter((q)=>{var N;return(N=Y.getColumn(q.id))==null?void 0:N.getCanSort()}),B={};K.forEach((q)=>{let N=Y.getColumn(q.id);if(!N)return;B[q.id]={sortUndefined:N.columnDef.sortUndefined,invertSorting:N.columnDef.invertSorting,sortingFn:N.getSortingFn()}});let U=(q)=>{let N=q.map((G)=>({...G}));return N.sort((G,E)=>{for(let j=0;j<K.length;j+=1){var z;let O=K[j],H=B[O.id],V=H.sortUndefined,D=(z=O==null?void 0:O.desc)!=null?z:!1,$=0;if(V){let T=G.getValue(O.id),F=E.getValue(O.id),S=T===void 0,M=F===void 0;if(S||M){if(V==="first")return S?-1:1;if(V==="last")return S?1:-1;$=S&&M?0:S?V:-V}}if($===0)$=H.sortingFn(G,E,O.id);if($!==0){if(D)$*=-1;if(H.invertSorting)$*=-1;return $}}return G.index-E.index}),N.forEach((G)=>{var E;if(J.push(G),(E=G.subRows)!=null&&E.length)G.subRows=U(G.subRows)}),N};return{rows:U(Z.rows),flatRows:J,rowsById:Z.rowsById}},y(Y.options,"debugTable","getSortedRowModel",()=>Y._autoResetPageIndex()))}function x8(Y){let X={state:{},onStateChange:()=>{},renderFallbackValue:null,...Y},[Z]=M8.useState(()=>({current:$Y(X)})),[Q,J]=M8.useState(()=>Z.current.initialState);return Z.current.setOptions((K)=>({...K,...Y,state:{...Q,...Y.state},onStateChange:(B)=>{J(B),Y.onStateChange==null||Y.onStateChange(B)}})),Z.current}var l=e(o(),1);function nZ(Y){let{data:X,columns:Z,totalCount:Q,enablePagination:J=!0,pageSize:K=10,onPaginationChange:B,enableSorting:U=!0,initialSorting:q=[],onSortingChange:N,initialColumnFilters:G=[],initialColumnVisibility:E={},enableRowSelection:z=!1,onSelectionChange:j}=Y,[O,H]=l.useState(q),[V,D]=l.useState(G),[$,T]=l.useState(""),[F,S]=l.useState(E),[M,v]=l.useState({}),[I,C]=l.useState({pageIndex:0,pageSize:K});l.useEffect(()=>{if(J&&B)B({pageIndex:I.pageIndex,pageSize:I.pageSize})},[I,J,B]),l.useEffect(()=>{if(U&&N)N(O)},[O,U,N]);let k=x8({data:X,columns:Z,state:{sorting:U?O:void 0,columnFilters:V,columnVisibility:F,rowSelection:z?M:void 0,pagination:J?I:void 0},onSortingChange:U?H:void 0,onColumnFiltersChange:D,onColumnVisibilityChange:S,onRowSelectionChange:z?v:void 0,onPaginationChange:J?C:void 0,getCoreRowModel:k8(),enableSorting:U,enableRowSelection:z,manualPagination:J,manualSorting:U,pageCount:J&&Q!==void 0?Math.ceil(Q/I.pageSize):void 0});l.useEffect(()=>{if(j&&z){let R=k.getFilteredSelectedRowModel().rows.map((s)=>s.original);j(R)}},[k,j,z]);let m=l.useMemo(()=>{let R=I.pageIndex*I.pageSize+1,s=Math.min((I.pageIndex+1)*I.pageSize,Q);return{start:R,end:s,total:Q,pageCount:J&&Q!==void 0?Math.ceil(Q/I.pageSize):1}},[I,Q,J]);return{table:k,sorting:O,setSorting:H,pagination:I,setPagination:C,columnFilters:V,setColumnFilters:D,globalFilter:$,setGlobalFilter:T,columnVisibility:F,setColumnVisibility:S,rowSelection:M,setRowSelection:v,paginationInfo:m}}var Z8=e(o(),1);function oZ(Y){let{data:X,columns:Z,enablePagination:Q=!0,pageSize:J=10,enableSorting:K=!0,initialSorting:B=[],enableGlobalFilter:U=!0,initialColumnFilters:q=[],initialColumnVisibility:N={},enableRowSelection:G=!1,onSelectionChange:E}=Y,[z,j]=Z8.useState(B),[O,H]=Z8.useState(q),[V,D]=Z8.useState(""),[$,T]=Z8.useState(N),[F,S]=Z8.useState({}),[M,v]=Z8.useState({pageIndex:0,pageSize:J}),I=x8({data:X,columns:Z,state:{sorting:K?z:void 0,columnFilters:O,globalFilter:U?V:void 0,columnVisibility:$,rowSelection:G?F:void 0,pagination:Q?M:void 0},onSortingChange:K?j:void 0,onColumnFiltersChange:H,onGlobalFilterChange:U?D:void 0,onColumnVisibilityChange:T,onRowSelectionChange:G?S:void 0,onPaginationChange:Q?v:void 0,getCoreRowModel:k8(),getFilteredRowModel:SY(),getPaginationRowModel:Q?hY():void 0,getSortedRowModel:K?fY():void 0,enableSorting:K,enableRowSelection:G,manualPagination:!1,manualSorting:!1});Z8.useEffect(()=>{if(E&&G){let k=I.getFilteredSelectedRowModel().rows.map((m)=>m.original);E(k)}},[I,E,G]);let C=Z8.useMemo(()=>{let k=I.getFilteredRowModel().rows.length;if(!Q)return{start:1,end:k,total:k,pageCount:1};let m=M.pageIndex*M.pageSize+1,R=Math.min((M.pageIndex+1)*M.pageSize,k);return{start:m,end:R,total:k,pageCount:I.getPageCount()}},[I,M,Q]);return{table:I,sorting:z,setSorting:j,pagination:M,setPagination:v,columnFilters:O,setColumnFilters:H,globalFilter:V,setGlobalFilter:D,columnVisibility:$,setColumnVisibility:T,rowSelection:F,setRowSelection:S,paginationInfo:C}}var d=e(o(),1),aZ=768;function lZ({sidebarOpen:Y,setSidebarOpen:X,side:Z="left",persistKey:Q="default",defaultSidebarPct:J=0.28,minPx:K=250,maxPct:B=0.6,maxPxCap:U=500,mobileDrawer:q=!0,tinySizePx:N,snapThreshold:G=50}){let E=d.useRef(null),z=d.useRef(null),[j,O]=d.useState(!1),[H,V]=d.useState(J*100);d.useEffect(()=>{let C=()=>{O(window.innerWidth<aZ)};return C(),window.addEventListener("resize",C),()=>window.removeEventListener("resize",C)},[]),d.useEffect(()=>{if(typeof window>"u")return;let C=`resizable-sidebar-${Q}`,k=localStorage.getItem(C);if(k)try{let m=JSON.parse(k);if(typeof m.size==="number"&&m.size>0&&m.size<100)V(m.size)}catch{}},[Q]);let D=d.useCallback((C)=>{if(typeof window>"u")return;let k=`resizable-sidebar-${Q}`;localStorage.setItem(k,JSON.stringify({size:C,timestamp:Date.now()}))},[Q]),$=d.useMemo(()=>{if(!E.current)return K/1920*100;let C=E.current.offsetWidth;return K/C*100},[K]),T=d.useMemo(()=>{if(!E.current)return B*100;let C=E.current.offsetWidth;return Math.min(U,C*B)/C*100},[B,U]),F=d.useCallback(()=>{if(Y)z.current?.collapse(),X(!1);else z.current?.expand(),X(!0)},[Y,X]),S=d.useCallback((C)=>{if(C.length>0){let k=Z==="left"?C[0]:C[C.length-1];V(k),D(k)}},[Z,D]),M=d.useCallback(()=>{if(!N||!E.current)return;let C=E.current.offsetWidth,k=H/100*C,m=N/C*100;if(Math.abs(k-N)<=G&&k<N+G){let R=m;V(R),D(R),z.current?.resize(R)}},[H,N,G,D]),v=q&&j,I=`resizable-${Q}`;return{handleDoubleClick:F,shouldUseMobileDrawer:v,containerRef:E,autoSaveId:I,handleLayout:S,sidebarPanelRef:z,sidebarSize:H,minSize:$,maxSize:T,handleResizeEnd:M}}var c=e(o(),1);function tZ(Y={}){let{wsUrl:X,executeScript:Z,onOutput:Q,onError:J,autoConnect:K=!0,maxReconnectAttempts:B=3,defaultScript:U=""}=Y,[q,N]=c.useState(U),[G,E]=c.useState([]),[z,j]=c.useState(""),[O,H]=c.useState("terminal"),[V,D]=c.useState(!1),[$,T]=c.useState(!1),F=c.useRef(null),S=c.useRef(0),M=c.useRef(!0),v=c.useCallback((R,s)=>{let i={id:`${Date.now()}-${Math.random()}`,type:R,content:s,timestamp:new Date};E((U8)=>[...U8,i]),Q?.(i)},[Q]),I=c.useCallback(()=>{if(!X)return;if(F.current&&F.current.readyState===WebSocket.OPEN)return;if(F.current){try{F.current.close()}catch{}F.current=null}if(!M.current)return;try{let R=new WebSocket(X);F.current=R,R.onopen=()=>{T(!0),S.current=0},R.onmessage=(s)=>{try{let i=JSON.parse(s.data);if(i.type==="output")v("output",i.content);else if(i.type==="error")v("error",i.content);else if(i.type==="result")j(JSON.stringify(i.content,null,2)),H("preview");else if(i.type==="system")console.log("[useScriptEditor] Mensagem de sistema:",i.content)}catch{v("output",s.data)}},R.onerror=(s)=>{console.error("[useScriptEditor] WebSocket error:",s),T(!1),J?.(Error("Erro na conexão WebSocket"))},R.onclose=(s)=>{if(T(!1),F.current=null,s.code!==1000&&M.current&&S.current<B)S.current+=1,setTimeout(()=>{if(M.current)I()},3000);else if(S.current>=B)console.warn("[useScriptEditor] Máximo de tentativas de reconexão atingido")}}catch(R){console.error("[useScriptEditor] Erro ao conectar WebSocket:",R),T(!1),J?.(R instanceof Error?R:Error("Erro desconhecido ao conectar"))}},[X,B,v,J]);c.useEffect(()=>{if(K&&X){let R=setTimeout(()=>{I()},100);return()=>{clearTimeout(R)}}},[K,X,I]),c.useEffect(()=>{return()=>{if(M.current=!1,F.current){try{F.current.close(1000,"Component unmounting")}catch{}F.current=null}}},[]);let C=c.useCallback(async()=>{if(!q.trim()){v("error","❌ Script vazio");return}D(!0),v("input",q);try{if(F.current&&F.current.readyState===WebSocket.OPEN)F.current.send(JSON.stringify({type:"execute",script:q}));else if(Z)try{let R=await Z(q);if(R.output)v("output",R.output);if(R.error)v("error",R.error);if(R.result)j(JSON.stringify(R.result,null,2)),H("preview")}catch(R){v("error",`❌ Erro na requisição: ${R instanceof Error?R.message:"Erro desconhecido"}`)}else v("error","❌ Nenhuma forma de execução disponível (WebSocket ou HTTP)")}catch(R){v("error",`❌ Erro ao executar: ${R instanceof Error?R.message:"Erro desconhecido"}`)}finally{D(!1)}},[q,Z,v]),k=c.useCallback(()=>{if(F.current&&F.current.readyState===WebSocket.OPEN)F.current.send(JSON.stringify({type:"stop"}));D(!1)},[]),m=c.useCallback(()=>{E([]),j("")},[]);return{script:q,setScript:N,terminalLines:G,preview:z,activeTab:O,setActiveTab:H,isRunning:V,isConnected:$,executeScript:C,stopExecution:k,clearTerminal:m,addTerminalLine:v}}var X8=e(o(),1);function a8(Y,X="pt-BR"){if(Y>=1e6)return`${new Intl.NumberFormat(X,{minimumFractionDigits:1,maximumFractionDigits:1}).format(Y/1e6)}M`;if(Y>=1000)return new Intl.NumberFormat(X).format(Y);return new Intl.NumberFormat(X).format(Y)}function l8(Y,X="pt-BR",Z="BRL",Q="symbol"){return new Intl.NumberFormat(X,{style:"currency",currency:Z,currencyDisplay:Q,minimumFractionDigits:0,maximumFractionDigits:2}).format(Y)}function eZ(Y){let{value:X,delta:Z,lastMonth:Q,prefix:J="",suffix:K="",locale:B="pt-BR",currency:U,currencyDisplay:q="symbol",format:N,lastFormat:G,positive:E}=Y,z=X8.useMemo(()=>{if(Z!==void 0)return Z;if(Q!==void 0&&Q!==0)return(Number(X)-Number(Q))/Number(Q)*100;return 0},[X,Q,Z]),j=X8.useMemo(()=>{if(E!==void 0)return E;return z>=0},[z,E]),O=X8.useMemo(()=>{let T=z>0?"up":z<0?"down":"neutral",F=T==="up"?"success":T==="down"?"destructive":"secondary",S=z>0?`+${z.toFixed(1)}%`:z<0?`${z.toFixed(1)}%`:"0%";return{isPositive:j,percentage:S,delta:Math.abs(z),variant:F,direction:T}},[z,j]),H=X8.useMemo(()=>{if(N)return N(Number(X));let T=Number(X);if(U)return l8(T,B,U,q)+(K?` ${K}`:"");return J+a8(T,B)+K},[X,J,K,B,U,q,N]),V=X8.useMemo(()=>{if(!Q)return null;if(G)return G(Q);if(U)return l8(Q,B,U,q);return J+a8(Q,B)+K},[Q,J,K,B,U,q,G]),D=X8.useCallback((T={})=>{return{onClick:T.onClick,className:T.className,"aria-label":T["aria-label"]||`Estatística: ${H}`,role:T.onClick?"button":void 0}},[H]),$=X8.useCallback((T)=>{if(U)return l8(T,B,U,q);return a8(T,B)},[B,U,q]);return{formattedValue:H,formattedLastMonth:V,trend:O,isPositive:j,getCardProps:D,formatNumber:$}}var u=e(o(),1);function Y2(Y={}){let{initialTime:X=0,onPause:Z,onStop:Q,onStart:J,onResume:K,onReset:B,format:U="HH:mm:ss"}=Y,[q,N]=u.useState(X),[G,E]=u.useState(!1),[z,j]=u.useState(!1),O=u.useRef(null),H=u.useRef(null),V=u.useRef(0);u.useEffect(()=>{return()=>{if(O.current)clearInterval(O.current),O.current=null}},[]);let $=u.useCallback((C)=>{if(typeof U==="function")return U(C);let k=Math.floor(C/3600),m=Math.floor(C%3600/60),R=C%60;switch(U){case"HH:mm:ss":return`${String(k).padStart(2,"0")}:${String(m).padStart(2,"0")}:${String(R).padStart(2,"0")}`;case"mm:ss":return`${String(m).padStart(2,"0")}:${String(R).padStart(2,"0")}`;case"ss":return String(C);default:return`${String(k).padStart(2,"0")}:${String(m).padStart(2,"0")}:${String(R).padStart(2,"0")}`}},[U])(q),T=u.useCallback(()=>{if(O.current)clearInterval(O.current),O.current=null},[]),F=u.useCallback(()=>{if(G)return;T();let C=z?q:X;if(N(C),E(!0),j(!1),V.current=C,H.current=Date.now()-C*1000,O.current=setInterval(()=>{let k=Math.floor((Date.now()-(H.current||0))/1000);N(k)},100),!z)J?.(C);else K?.(C)},[G,z,q,X,J,K,T]),S=u.useCallback(()=>{if(!G)return;T(),E(!1),j(!0),Z?.(q)},[G,q,Z,T]),M=u.useCallback(()=>{T(),E(!1),j(!1),Q?.(q)},[q,Q,T]),v=u.useCallback(()=>{if(!z)return;F()},[z,F]),I=u.useCallback(()=>{T(),N(X),E(!1),j(!1),V.current=0,H.current=null,B?.()},[X,B,T]);return{time:q,formattedTime:$,isRunning:G,isPaused:z,isStopped:!G&&!z,start:F,pause:S,stop:M,resume:v,reset:I}}export{Y2 as useTimeTracker,eZ as useStatCard,tZ as useScriptEditor,lZ as useResizable,oZ as useReactTableFront,nZ as useReactTableBack,WZ as useProjectStats,JZ as useProjectProgress,QZ as useIsMobile,ZZ as useGenealogy,oY as useAnimatedIndicator};
|
|
1
|
+
/**
|
|
2
|
+
* flowtomic/logic
|
|
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";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowtomic/logic",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Hooks headless e lógica reutilizável para React",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"scripts": {
|
|
29
29
|
"dev": "bun run --watch src/index.ts",
|
|
30
|
-
"build": "tsc --emitDeclarationOnly && bun build ./src/index.ts --outdir ./dist --target browser --format esm --minify",
|
|
30
|
+
"build": "tsc --emitDeclarationOnly && bun build ./src/index.ts --outdir ./dist --target browser --format esm --minify --external react --external react/jsx-runtime",
|
|
31
31
|
"type-check": "tsc --noEmit",
|
|
32
32
|
"clean": "rm -rf dist",
|
|
33
33
|
"lint": "biome check .",
|