analytica-frontend-lib 1.1.92 → 1.1.94
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/BreadcrumbMenu/breadcrumbStore/index.d.mts +77 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.d.ts +77 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.js +146 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.js.map +1 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.mjs +120 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.mjs.map +1 -0
- package/dist/BreadcrumbMenu/index.d.mts +31 -0
- package/dist/BreadcrumbMenu/index.d.ts +31 -0
- package/dist/BreadcrumbMenu/index.js +308 -0
- package/dist/BreadcrumbMenu/index.js.map +1 -0
- package/dist/BreadcrumbMenu/index.mjs +289 -0
- package/dist/BreadcrumbMenu/index.mjs.map +1 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.d.mts +48 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.d.ts +48 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.js +189 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.js.map +1 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.mjs +164 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.mjs.map +1 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.d.mts +28 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.d.ts +28 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.js +43 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.js.map +1 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.mjs +18 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.mjs.map +1 -0
- package/dist/index.css +3 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +185 -3
- package/dist/index.d.ts +185 -3
- package/dist/index.js +546 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +537 -6
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +3 -0
- package/dist/styles.css.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as zustand from 'zustand';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface para um item de breadcrumb
|
|
5
|
+
*/
|
|
6
|
+
interface BreadcrumbItem {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
url: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Interface para o estado do store de breadcrumbs
|
|
13
|
+
*/
|
|
14
|
+
interface BreadcrumbStore {
|
|
15
|
+
breadcrumbs: Record<string, BreadcrumbItem[]>;
|
|
16
|
+
setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;
|
|
17
|
+
addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;
|
|
18
|
+
updateBreadcrumb: (namespace: string, itemId: string, updates: Partial<BreadcrumbItem>) => void;
|
|
19
|
+
removeBreadcrumbFrom: (namespace: string, itemId: string) => void;
|
|
20
|
+
sliceBreadcrumbs: (namespace: string, index: number) => void;
|
|
21
|
+
clearBreadcrumbs: (namespace: string) => void;
|
|
22
|
+
getBreadcrumbs: (namespace: string) => BreadcrumbItem[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Store Zustand para gerenciar breadcrumbs
|
|
26
|
+
* Suporta múltiplas instâncias através de namespaces
|
|
27
|
+
*/
|
|
28
|
+
declare const useBreadcrumbStore: zustand.UseBoundStore<zustand.StoreApi<BreadcrumbStore>>;
|
|
29
|
+
/**
|
|
30
|
+
* Hook customizado para facilitar o uso de breadcrumbs
|
|
31
|
+
*
|
|
32
|
+
* @param namespace - Identificador único para esta instância de breadcrumbs
|
|
33
|
+
* @returns Objeto com breadcrumbs e métodos para manipulá-los
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');
|
|
38
|
+
*
|
|
39
|
+
* // Definir breadcrumbs iniciais
|
|
40
|
+
* setBreadcrumbs([
|
|
41
|
+
* { id: 'home', name: 'Home', url: '/' },
|
|
42
|
+
* { id: 'page', name: 'Page', url: '/page' }
|
|
43
|
+
* ]);
|
|
44
|
+
*
|
|
45
|
+
* // Adicionar novo breadcrumb
|
|
46
|
+
* addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
declare const useBreadcrumb: (namespace: string) => {
|
|
50
|
+
breadcrumbs: BreadcrumbItem[];
|
|
51
|
+
/**
|
|
52
|
+
* Define todos os breadcrumbs de uma vez
|
|
53
|
+
*/
|
|
54
|
+
setBreadcrumbs: (items: BreadcrumbItem[]) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Adiciona um novo breadcrumb ao final
|
|
57
|
+
*/
|
|
58
|
+
addBreadcrumb: (item: BreadcrumbItem) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Atualiza um breadcrumb existente
|
|
61
|
+
*/
|
|
62
|
+
updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Remove um breadcrumb e todos os seguintes
|
|
65
|
+
*/
|
|
66
|
+
removeBreadcrumbFrom: (itemId: string) => void;
|
|
67
|
+
/**
|
|
68
|
+
* Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
|
|
69
|
+
*/
|
|
70
|
+
sliceBreadcrumbs: (index: number) => void;
|
|
71
|
+
/**
|
|
72
|
+
* Limpa todos os breadcrumbs
|
|
73
|
+
*/
|
|
74
|
+
clearBreadcrumbs: () => void;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export { type BreadcrumbItem, useBreadcrumb, useBreadcrumbStore };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as zustand from 'zustand';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface para um item de breadcrumb
|
|
5
|
+
*/
|
|
6
|
+
interface BreadcrumbItem {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
url: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Interface para o estado do store de breadcrumbs
|
|
13
|
+
*/
|
|
14
|
+
interface BreadcrumbStore {
|
|
15
|
+
breadcrumbs: Record<string, BreadcrumbItem[]>;
|
|
16
|
+
setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;
|
|
17
|
+
addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;
|
|
18
|
+
updateBreadcrumb: (namespace: string, itemId: string, updates: Partial<BreadcrumbItem>) => void;
|
|
19
|
+
removeBreadcrumbFrom: (namespace: string, itemId: string) => void;
|
|
20
|
+
sliceBreadcrumbs: (namespace: string, index: number) => void;
|
|
21
|
+
clearBreadcrumbs: (namespace: string) => void;
|
|
22
|
+
getBreadcrumbs: (namespace: string) => BreadcrumbItem[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Store Zustand para gerenciar breadcrumbs
|
|
26
|
+
* Suporta múltiplas instâncias através de namespaces
|
|
27
|
+
*/
|
|
28
|
+
declare const useBreadcrumbStore: zustand.UseBoundStore<zustand.StoreApi<BreadcrumbStore>>;
|
|
29
|
+
/**
|
|
30
|
+
* Hook customizado para facilitar o uso de breadcrumbs
|
|
31
|
+
*
|
|
32
|
+
* @param namespace - Identificador único para esta instância de breadcrumbs
|
|
33
|
+
* @returns Objeto com breadcrumbs e métodos para manipulá-los
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');
|
|
38
|
+
*
|
|
39
|
+
* // Definir breadcrumbs iniciais
|
|
40
|
+
* setBreadcrumbs([
|
|
41
|
+
* { id: 'home', name: 'Home', url: '/' },
|
|
42
|
+
* { id: 'page', name: 'Page', url: '/page' }
|
|
43
|
+
* ]);
|
|
44
|
+
*
|
|
45
|
+
* // Adicionar novo breadcrumb
|
|
46
|
+
* addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
declare const useBreadcrumb: (namespace: string) => {
|
|
50
|
+
breadcrumbs: BreadcrumbItem[];
|
|
51
|
+
/**
|
|
52
|
+
* Define todos os breadcrumbs de uma vez
|
|
53
|
+
*/
|
|
54
|
+
setBreadcrumbs: (items: BreadcrumbItem[]) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Adiciona um novo breadcrumb ao final
|
|
57
|
+
*/
|
|
58
|
+
addBreadcrumb: (item: BreadcrumbItem) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Atualiza um breadcrumb existente
|
|
61
|
+
*/
|
|
62
|
+
updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Remove um breadcrumb e todos os seguintes
|
|
65
|
+
*/
|
|
66
|
+
removeBreadcrumbFrom: (itemId: string) => void;
|
|
67
|
+
/**
|
|
68
|
+
* Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
|
|
69
|
+
*/
|
|
70
|
+
sliceBreadcrumbs: (index: number) => void;
|
|
71
|
+
/**
|
|
72
|
+
* Limpa todos os breadcrumbs
|
|
73
|
+
*/
|
|
74
|
+
clearBreadcrumbs: () => void;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export { type BreadcrumbItem, useBreadcrumb, useBreadcrumbStore };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components/BreadcrumbMenu/breadcrumbStore.ts
|
|
21
|
+
var breadcrumbStore_exports = {};
|
|
22
|
+
__export(breadcrumbStore_exports, {
|
|
23
|
+
useBreadcrumb: () => useBreadcrumb,
|
|
24
|
+
useBreadcrumbStore: () => useBreadcrumbStore
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(breadcrumbStore_exports);
|
|
27
|
+
var import_zustand = require("zustand");
|
|
28
|
+
var useBreadcrumbStore = (0, import_zustand.create)((set, get) => ({
|
|
29
|
+
breadcrumbs: {},
|
|
30
|
+
setBreadcrumbs: (namespace, items) => {
|
|
31
|
+
set((state) => ({
|
|
32
|
+
breadcrumbs: {
|
|
33
|
+
...state.breadcrumbs,
|
|
34
|
+
[namespace]: items
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
},
|
|
38
|
+
addBreadcrumb: (namespace, item) => {
|
|
39
|
+
set((state) => {
|
|
40
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
41
|
+
return {
|
|
42
|
+
breadcrumbs: {
|
|
43
|
+
...state.breadcrumbs,
|
|
44
|
+
[namespace]: [...current, item]
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
updateBreadcrumb: (namespace, itemId, updates) => {
|
|
50
|
+
set((state) => {
|
|
51
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
52
|
+
return {
|
|
53
|
+
breadcrumbs: {
|
|
54
|
+
...state.breadcrumbs,
|
|
55
|
+
[namespace]: current.map(
|
|
56
|
+
(item) => item.id === itemId ? { ...item, ...updates } : item
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
removeBreadcrumbFrom: (namespace, itemId) => {
|
|
63
|
+
set((state) => {
|
|
64
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
65
|
+
const index = current.findIndex((item) => item.id === itemId);
|
|
66
|
+
if (index === -1) return state;
|
|
67
|
+
return {
|
|
68
|
+
breadcrumbs: {
|
|
69
|
+
...state.breadcrumbs,
|
|
70
|
+
[namespace]: current.slice(0, index)
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
sliceBreadcrumbs: (namespace, index) => {
|
|
76
|
+
set((state) => {
|
|
77
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
78
|
+
return {
|
|
79
|
+
breadcrumbs: {
|
|
80
|
+
...state.breadcrumbs,
|
|
81
|
+
[namespace]: current.slice(0, index + 1)
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
clearBreadcrumbs: (namespace) => {
|
|
87
|
+
set((state) => {
|
|
88
|
+
const { [namespace]: _, ...rest } = state.breadcrumbs;
|
|
89
|
+
return {
|
|
90
|
+
breadcrumbs: rest
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
getBreadcrumbs: (namespace) => {
|
|
95
|
+
return get().breadcrumbs[namespace] || [];
|
|
96
|
+
}
|
|
97
|
+
}));
|
|
98
|
+
var useBreadcrumb = (namespace) => {
|
|
99
|
+
const store = useBreadcrumbStore();
|
|
100
|
+
const breadcrumbs = store.breadcrumbs[namespace] || [];
|
|
101
|
+
return {
|
|
102
|
+
breadcrumbs,
|
|
103
|
+
/**
|
|
104
|
+
* Define todos os breadcrumbs de uma vez
|
|
105
|
+
*/
|
|
106
|
+
setBreadcrumbs: (items) => {
|
|
107
|
+
store.setBreadcrumbs(namespace, items);
|
|
108
|
+
},
|
|
109
|
+
/**
|
|
110
|
+
* Adiciona um novo breadcrumb ao final
|
|
111
|
+
*/
|
|
112
|
+
addBreadcrumb: (item) => {
|
|
113
|
+
store.addBreadcrumb(namespace, item);
|
|
114
|
+
},
|
|
115
|
+
/**
|
|
116
|
+
* Atualiza um breadcrumb existente
|
|
117
|
+
*/
|
|
118
|
+
updateBreadcrumb: (itemId, updates) => {
|
|
119
|
+
store.updateBreadcrumb(namespace, itemId, updates);
|
|
120
|
+
},
|
|
121
|
+
/**
|
|
122
|
+
* Remove um breadcrumb e todos os seguintes
|
|
123
|
+
*/
|
|
124
|
+
removeBreadcrumbFrom: (itemId) => {
|
|
125
|
+
store.removeBreadcrumbFrom(namespace, itemId);
|
|
126
|
+
},
|
|
127
|
+
/**
|
|
128
|
+
* Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
|
|
129
|
+
*/
|
|
130
|
+
sliceBreadcrumbs: (index) => {
|
|
131
|
+
store.sliceBreadcrumbs(namespace, index);
|
|
132
|
+
},
|
|
133
|
+
/**
|
|
134
|
+
* Limpa todos os breadcrumbs
|
|
135
|
+
*/
|
|
136
|
+
clearBreadcrumbs: () => {
|
|
137
|
+
store.clearBreadcrumbs(namespace);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
142
|
+
0 && (module.exports = {
|
|
143
|
+
useBreadcrumb,
|
|
144
|
+
useBreadcrumbStore
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/BreadcrumbMenu/breadcrumbStore.ts"],"sourcesContent":["import { create } from 'zustand';\n\n/**\n * Interface para um item de breadcrumb\n */\nexport interface BreadcrumbItem {\n id: string;\n name: string;\n url: string;\n}\n\n/**\n * Interface para o estado do store de breadcrumbs\n */\ninterface BreadcrumbStore {\n // Múltiplas instâncias de breadcrumbs identificadas por namespace\n breadcrumbs: Record<string, BreadcrumbItem[]>;\n\n // Define todos os breadcrumbs de uma instância\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;\n\n // Adiciona um breadcrumb ao final da lista\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;\n\n // Atualiza um breadcrumb existente\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => void;\n\n // Remove um breadcrumb e todos os seguintes\n removeBreadcrumbFrom: (namespace: string, itemId: string) => void;\n\n // Mantém apenas os breadcrumbs até o índice especificado\n sliceBreadcrumbs: (namespace: string, index: number) => void;\n\n // Limpa todos os breadcrumbs de uma instância\n clearBreadcrumbs: (namespace: string) => void;\n\n // Obtém os breadcrumbs de uma instância\n getBreadcrumbs: (namespace: string) => BreadcrumbItem[];\n}\n\n/**\n * Store Zustand para gerenciar breadcrumbs\n * Suporta múltiplas instâncias através de namespaces\n */\nexport const useBreadcrumbStore = create<BreadcrumbStore>((set, get) => ({\n breadcrumbs: {},\n\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => {\n set((state) => ({\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: items,\n },\n }));\n },\n\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: [...current, item],\n },\n };\n });\n },\n\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.map((item) =>\n item.id === itemId ? { ...item, ...updates } : item\n ),\n },\n };\n });\n },\n\n removeBreadcrumbFrom: (namespace: string, itemId: string) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n const index = current.findIndex((item) => item.id === itemId);\n if (index === -1) return state;\n\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index),\n },\n };\n });\n },\n\n sliceBreadcrumbs: (namespace: string, index: number) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index + 1),\n },\n };\n });\n },\n\n clearBreadcrumbs: (namespace: string) => {\n set((state) => {\n const { [namespace]: _, ...rest } = state.breadcrumbs;\n return {\n breadcrumbs: rest,\n };\n });\n },\n\n getBreadcrumbs: (namespace: string) => {\n return get().breadcrumbs[namespace] || [];\n },\n}));\n\n/**\n * Hook customizado para facilitar o uso de breadcrumbs\n *\n * @param namespace - Identificador único para esta instância de breadcrumbs\n * @returns Objeto com breadcrumbs e métodos para manipulá-los\n *\n * @example\n * ```tsx\n * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');\n *\n * // Definir breadcrumbs iniciais\n * setBreadcrumbs([\n * { id: 'home', name: 'Home', url: '/' },\n * { id: 'page', name: 'Page', url: '/page' }\n * ]);\n *\n * // Adicionar novo breadcrumb\n * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });\n * ```\n */\nexport const useBreadcrumb = (namespace: string) => {\n const store = useBreadcrumbStore();\n const breadcrumbs = store.breadcrumbs[namespace] || [];\n\n return {\n breadcrumbs,\n\n /**\n * Define todos os breadcrumbs de uma vez\n */\n setBreadcrumbs: (items: BreadcrumbItem[]) => {\n store.setBreadcrumbs(namespace, items);\n },\n\n /**\n * Adiciona um novo breadcrumb ao final\n */\n addBreadcrumb: (item: BreadcrumbItem) => {\n store.addBreadcrumb(namespace, item);\n },\n\n /**\n * Atualiza um breadcrumb existente\n */\n updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => {\n store.updateBreadcrumb(namespace, itemId, updates);\n },\n\n /**\n * Remove um breadcrumb e todos os seguintes\n */\n removeBreadcrumbFrom: (itemId: string) => {\n store.removeBreadcrumbFrom(namespace, itemId);\n },\n\n /**\n * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)\n */\n sliceBreadcrumbs: (index: number) => {\n store.sliceBreadcrumbs(namespace, index);\n },\n\n /**\n * Limpa todos os breadcrumbs\n */\n clearBreadcrumbs: () => {\n store.clearBreadcrumbs(namespace);\n },\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAuB;AAgDhB,IAAM,yBAAqB,uBAAwB,CAAC,KAAK,SAAS;AAAA,EACvE,aAAa,CAAC;AAAA,EAEd,gBAAgB,CAAC,WAAmB,UAA4B;AAC9D,QAAI,CAAC,WAAW;AAAA,MACd,aAAa;AAAA,QACX,GAAG,MAAM;AAAA,QACT,CAAC,SAAS,GAAG;AAAA,MACf;AAAA,IACF,EAAE;AAAA,EACJ;AAAA,EAEA,eAAe,CAAC,WAAmB,SAAyB;AAC1D,QAAI,CAAC,UAAU;AACb,YAAM,UAAU,MAAM,YAAY,SAAS,KAAK,CAAC;AACjD,aAAO;AAAA,QACL,aAAa;AAAA,UACX,GAAG,MAAM;AAAA,UACT,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,IAAI;AAAA,QAChC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,kBAAkB,CAChB,WACA,QACA,YACG;AACH,QAAI,CAAC,UAAU;AACb,YAAM,UAAU,MAAM,YAAY,SAAS,KAAK,CAAC;AACjD,aAAO;AAAA,QACL,aAAa;AAAA,UACX,GAAG,MAAM;AAAA,UACT,CAAC,SAAS,GAAG,QAAQ;AAAA,YAAI,CAAC,SACxB,KAAK,OAAO,SAAS,EAAE,GAAG,MAAM,GAAG,QAAQ,IAAI;AAAA,UACjD;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,sBAAsB,CAAC,WAAmB,WAAmB;AAC3D,QAAI,CAAC,UAAU;AACb,YAAM,UAAU,MAAM,YAAY,SAAS,KAAK,CAAC;AACjD,YAAM,QAAQ,QAAQ,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM;AAC5D,UAAI,UAAU,GAAI,QAAO;AAEzB,aAAO;AAAA,QACL,aAAa;AAAA,UACX,GAAG,MAAM;AAAA,UACT,CAAC,SAAS,GAAG,QAAQ,MAAM,GAAG,KAAK;AAAA,QACrC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,kBAAkB,CAAC,WAAmB,UAAkB;AACtD,QAAI,CAAC,UAAU;AACb,YAAM,UAAU,MAAM,YAAY,SAAS,KAAK,CAAC;AACjD,aAAO;AAAA,QACL,aAAa;AAAA,UACX,GAAG,MAAM;AAAA,UACT,CAAC,SAAS,GAAG,QAAQ,MAAM,GAAG,QAAQ,CAAC;AAAA,QACzC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,kBAAkB,CAAC,cAAsB;AACvC,QAAI,CAAC,UAAU;AACb,YAAM,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,IAAI,MAAM;AAC1C,aAAO;AAAA,QACL,aAAa;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,gBAAgB,CAAC,cAAsB;AACrC,WAAO,IAAI,EAAE,YAAY,SAAS,KAAK,CAAC;AAAA,EAC1C;AACF,EAAE;AAsBK,IAAM,gBAAgB,CAAC,cAAsB;AAClD,QAAM,QAAQ,mBAAmB;AACjC,QAAM,cAAc,MAAM,YAAY,SAAS,KAAK,CAAC;AAErD,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAgB,CAAC,UAA4B;AAC3C,YAAM,eAAe,WAAW,KAAK;AAAA,IACvC;AAAA;AAAA;AAAA;AAAA,IAKA,eAAe,CAAC,SAAyB;AACvC,YAAM,cAAc,WAAW,IAAI;AAAA,IACrC;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAkB,CAAC,QAAgB,YAAqC;AACtE,YAAM,iBAAiB,WAAW,QAAQ,OAAO;AAAA,IACnD;AAAA;AAAA;AAAA;AAAA,IAKA,sBAAsB,CAAC,WAAmB;AACxC,YAAM,qBAAqB,WAAW,MAAM;AAAA,IAC9C;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAkB,CAAC,UAAkB;AACnC,YAAM,iBAAiB,WAAW,KAAK;AAAA,IACzC;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAkB,MAAM;AACtB,YAAM,iBAAiB,SAAS;AAAA,IAClC;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// src/components/BreadcrumbMenu/breadcrumbStore.ts
|
|
2
|
+
import { create } from "zustand";
|
|
3
|
+
var useBreadcrumbStore = create((set, get) => ({
|
|
4
|
+
breadcrumbs: {},
|
|
5
|
+
setBreadcrumbs: (namespace, items) => {
|
|
6
|
+
set((state) => ({
|
|
7
|
+
breadcrumbs: {
|
|
8
|
+
...state.breadcrumbs,
|
|
9
|
+
[namespace]: items
|
|
10
|
+
}
|
|
11
|
+
}));
|
|
12
|
+
},
|
|
13
|
+
addBreadcrumb: (namespace, item) => {
|
|
14
|
+
set((state) => {
|
|
15
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
16
|
+
return {
|
|
17
|
+
breadcrumbs: {
|
|
18
|
+
...state.breadcrumbs,
|
|
19
|
+
[namespace]: [...current, item]
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
updateBreadcrumb: (namespace, itemId, updates) => {
|
|
25
|
+
set((state) => {
|
|
26
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
27
|
+
return {
|
|
28
|
+
breadcrumbs: {
|
|
29
|
+
...state.breadcrumbs,
|
|
30
|
+
[namespace]: current.map(
|
|
31
|
+
(item) => item.id === itemId ? { ...item, ...updates } : item
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
removeBreadcrumbFrom: (namespace, itemId) => {
|
|
38
|
+
set((state) => {
|
|
39
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
40
|
+
const index = current.findIndex((item) => item.id === itemId);
|
|
41
|
+
if (index === -1) return state;
|
|
42
|
+
return {
|
|
43
|
+
breadcrumbs: {
|
|
44
|
+
...state.breadcrumbs,
|
|
45
|
+
[namespace]: current.slice(0, index)
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
sliceBreadcrumbs: (namespace, index) => {
|
|
51
|
+
set((state) => {
|
|
52
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
53
|
+
return {
|
|
54
|
+
breadcrumbs: {
|
|
55
|
+
...state.breadcrumbs,
|
|
56
|
+
[namespace]: current.slice(0, index + 1)
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
clearBreadcrumbs: (namespace) => {
|
|
62
|
+
set((state) => {
|
|
63
|
+
const { [namespace]: _, ...rest } = state.breadcrumbs;
|
|
64
|
+
return {
|
|
65
|
+
breadcrumbs: rest
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
getBreadcrumbs: (namespace) => {
|
|
70
|
+
return get().breadcrumbs[namespace] || [];
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
var useBreadcrumb = (namespace) => {
|
|
74
|
+
const store = useBreadcrumbStore();
|
|
75
|
+
const breadcrumbs = store.breadcrumbs[namespace] || [];
|
|
76
|
+
return {
|
|
77
|
+
breadcrumbs,
|
|
78
|
+
/**
|
|
79
|
+
* Define todos os breadcrumbs de uma vez
|
|
80
|
+
*/
|
|
81
|
+
setBreadcrumbs: (items) => {
|
|
82
|
+
store.setBreadcrumbs(namespace, items);
|
|
83
|
+
},
|
|
84
|
+
/**
|
|
85
|
+
* Adiciona um novo breadcrumb ao final
|
|
86
|
+
*/
|
|
87
|
+
addBreadcrumb: (item) => {
|
|
88
|
+
store.addBreadcrumb(namespace, item);
|
|
89
|
+
},
|
|
90
|
+
/**
|
|
91
|
+
* Atualiza um breadcrumb existente
|
|
92
|
+
*/
|
|
93
|
+
updateBreadcrumb: (itemId, updates) => {
|
|
94
|
+
store.updateBreadcrumb(namespace, itemId, updates);
|
|
95
|
+
},
|
|
96
|
+
/**
|
|
97
|
+
* Remove um breadcrumb e todos os seguintes
|
|
98
|
+
*/
|
|
99
|
+
removeBreadcrumbFrom: (itemId) => {
|
|
100
|
+
store.removeBreadcrumbFrom(namespace, itemId);
|
|
101
|
+
},
|
|
102
|
+
/**
|
|
103
|
+
* Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
|
|
104
|
+
*/
|
|
105
|
+
sliceBreadcrumbs: (index) => {
|
|
106
|
+
store.sliceBreadcrumbs(namespace, index);
|
|
107
|
+
},
|
|
108
|
+
/**
|
|
109
|
+
* Limpa todos os breadcrumbs
|
|
110
|
+
*/
|
|
111
|
+
clearBreadcrumbs: () => {
|
|
112
|
+
store.clearBreadcrumbs(namespace);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
export {
|
|
117
|
+
useBreadcrumb,
|
|
118
|
+
useBreadcrumbStore
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/BreadcrumbMenu/breadcrumbStore.ts"],"sourcesContent":["import { create } from 'zustand';\n\n/**\n * Interface para um item de breadcrumb\n */\nexport interface BreadcrumbItem {\n id: string;\n name: string;\n url: string;\n}\n\n/**\n * Interface para o estado do store de breadcrumbs\n */\ninterface BreadcrumbStore {\n // Múltiplas instâncias de breadcrumbs identificadas por namespace\n breadcrumbs: Record<string, BreadcrumbItem[]>;\n\n // Define todos os breadcrumbs de uma instância\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;\n\n // Adiciona um breadcrumb ao final da lista\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;\n\n // Atualiza um breadcrumb existente\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => void;\n\n // Remove um breadcrumb e todos os seguintes\n removeBreadcrumbFrom: (namespace: string, itemId: string) => void;\n\n // Mantém apenas os breadcrumbs até o índice especificado\n sliceBreadcrumbs: (namespace: string, index: number) => void;\n\n // Limpa todos os breadcrumbs de uma instância\n clearBreadcrumbs: (namespace: string) => void;\n\n // Obtém os breadcrumbs de uma instância\n getBreadcrumbs: (namespace: string) => BreadcrumbItem[];\n}\n\n/**\n * Store Zustand para gerenciar breadcrumbs\n * Suporta múltiplas instâncias através de namespaces\n */\nexport const useBreadcrumbStore = create<BreadcrumbStore>((set, get) => ({\n breadcrumbs: {},\n\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => {\n set((state) => ({\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: items,\n },\n }));\n },\n\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: [...current, item],\n },\n };\n });\n },\n\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.map((item) =>\n item.id === itemId ? { ...item, ...updates } : item\n ),\n },\n };\n });\n },\n\n removeBreadcrumbFrom: (namespace: string, itemId: string) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n const index = current.findIndex((item) => item.id === itemId);\n if (index === -1) return state;\n\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index),\n },\n };\n });\n },\n\n sliceBreadcrumbs: (namespace: string, index: number) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index + 1),\n },\n };\n });\n },\n\n clearBreadcrumbs: (namespace: string) => {\n set((state) => {\n const { [namespace]: _, ...rest } = state.breadcrumbs;\n return {\n breadcrumbs: rest,\n };\n });\n },\n\n getBreadcrumbs: (namespace: string) => {\n return get().breadcrumbs[namespace] || [];\n },\n}));\n\n/**\n * Hook customizado para facilitar o uso de breadcrumbs\n *\n * @param namespace - Identificador único para esta instância de breadcrumbs\n * @returns Objeto com breadcrumbs e métodos para manipulá-los\n *\n * @example\n * ```tsx\n * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');\n *\n * // Definir breadcrumbs iniciais\n * setBreadcrumbs([\n * { id: 'home', name: 'Home', url: '/' },\n * { id: 'page', name: 'Page', url: '/page' }\n * ]);\n *\n * // Adicionar novo breadcrumb\n * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });\n * ```\n */\nexport const useBreadcrumb = (namespace: string) => {\n const store = useBreadcrumbStore();\n const breadcrumbs = store.breadcrumbs[namespace] || [];\n\n return {\n breadcrumbs,\n\n /**\n * Define todos os breadcrumbs de uma vez\n */\n setBreadcrumbs: (items: BreadcrumbItem[]) => {\n store.setBreadcrumbs(namespace, items);\n },\n\n /**\n * Adiciona um novo breadcrumb ao final\n */\n addBreadcrumb: (item: BreadcrumbItem) => {\n store.addBreadcrumb(namespace, item);\n },\n\n /**\n * Atualiza um breadcrumb existente\n */\n updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => {\n store.updateBreadcrumb(namespace, itemId, updates);\n },\n\n /**\n * Remove um breadcrumb e todos os seguintes\n */\n removeBreadcrumbFrom: (itemId: string) => {\n store.removeBreadcrumbFrom(namespace, itemId);\n },\n\n /**\n * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)\n */\n sliceBreadcrumbs: (index: number) => {\n store.sliceBreadcrumbs(namespace, index);\n },\n\n /**\n * Limpa todos os breadcrumbs\n */\n clearBreadcrumbs: () => {\n store.clearBreadcrumbs(namespace);\n },\n };\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { BreadcrumbItem } from './breadcrumbStore/index.mjs';
|
|
3
|
+
import 'zustand';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Props do componente BreadcrumbMenu
|
|
7
|
+
*/
|
|
8
|
+
interface BreadcrumbMenuProps {
|
|
9
|
+
/** Lista de breadcrumbs a serem exibidos */
|
|
10
|
+
breadcrumbs: BreadcrumbItem[];
|
|
11
|
+
/** Callback quando um breadcrumb é clicado */
|
|
12
|
+
onBreadcrumbClick?: (breadcrumb: BreadcrumbItem, index: number) => void;
|
|
13
|
+
/** Classes CSS adicionais */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Componente reutilizável para renderizar um menu de breadcrumbs
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <BreadcrumbMenu
|
|
22
|
+
* breadcrumbs={breadcrumbs}
|
|
23
|
+
* onBreadcrumbClick={(breadcrumb, index) => {
|
|
24
|
+
* console.log('Clicked:', breadcrumb, 'at index:', index);
|
|
25
|
+
* }}
|
|
26
|
+
* />
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
declare const BreadcrumbMenu: ({ breadcrumbs, onBreadcrumbClick, className, }: BreadcrumbMenuProps) => react_jsx_runtime.JSX.Element;
|
|
30
|
+
|
|
31
|
+
export { BreadcrumbMenu, type BreadcrumbMenuProps };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { BreadcrumbItem } from './breadcrumbStore/index.js';
|
|
3
|
+
import 'zustand';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Props do componente BreadcrumbMenu
|
|
7
|
+
*/
|
|
8
|
+
interface BreadcrumbMenuProps {
|
|
9
|
+
/** Lista de breadcrumbs a serem exibidos */
|
|
10
|
+
breadcrumbs: BreadcrumbItem[];
|
|
11
|
+
/** Callback quando um breadcrumb é clicado */
|
|
12
|
+
onBreadcrumbClick?: (breadcrumb: BreadcrumbItem, index: number) => void;
|
|
13
|
+
/** Classes CSS adicionais */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Componente reutilizável para renderizar um menu de breadcrumbs
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <BreadcrumbMenu
|
|
22
|
+
* breadcrumbs={breadcrumbs}
|
|
23
|
+
* onBreadcrumbClick={(breadcrumb, index) => {
|
|
24
|
+
* console.log('Clicked:', breadcrumb, 'at index:', index);
|
|
25
|
+
* }}
|
|
26
|
+
* />
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
declare const BreadcrumbMenu: ({ breadcrumbs, onBreadcrumbClick, className, }: BreadcrumbMenuProps) => react_jsx_runtime.JSX.Element;
|
|
30
|
+
|
|
31
|
+
export { BreadcrumbMenu, type BreadcrumbMenuProps };
|