@apia/tree 2.0.9 → 2.0.10
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/OOTree/OOTreeChildren.d.ts +14 -0
- package/dist/OOTree/OOTreeChildren.d.ts.map +1 -0
- package/dist/OOTree/OOTreeChildren.js +17 -0
- package/dist/OOTree/OOTreeChildren.js.map +1 -0
- package/dist/OOTree/OOTreeNode.d.ts +30 -0
- package/dist/OOTree/OOTreeNode.d.ts.map +1 -0
- package/dist/OOTree/OOTreeNode.js +133 -0
- package/dist/OOTree/OOTreeNode.js.map +1 -0
- package/dist/OOTree/index.d.ts +36 -0
- package/dist/OOTree/index.d.ts.map +1 -0
- package/dist/OOTree/index.js +126 -0
- package/dist/OOTree/index.js.map +1 -0
- package/dist/OOTree/types.d.ts +11 -0
- package/dist/OOTree/types.d.ts.map +1 -0
- package/dist/SearchLabel.js +30 -0
- package/dist/SearchLabel.js.map +1 -0
- package/dist/Tree.d.ts +7 -0
- package/dist/Tree.d.ts.map +1 -0
- package/dist/Tree.js +131 -0
- package/dist/Tree.js.map +1 -0
- package/dist/TreeContext.d.ts +13 -0
- package/dist/TreeContext.d.ts.map +1 -0
- package/dist/TreeContext.js +22 -0
- package/dist/TreeContext.js.map +1 -0
- package/dist/TreeDataController.d.ts +116 -0
- package/dist/TreeDataController.d.ts.map +1 -0
- package/dist/TreeDataController.js +611 -0
- package/dist/TreeDataController.js.map +1 -0
- package/dist/TreeItem.js +51 -0
- package/dist/TreeItem.js.map +1 -0
- package/dist/TreeItemChildren.js +20 -0
- package/dist/TreeItemChildren.js.map +1 -0
- package/dist/TreeItemLabel.js +72 -0
- package/dist/TreeItemLabel.js.map +1 -0
- package/dist/getDomProps.js +37 -0
- package/dist/getDomProps.js.map +1 -0
- package/dist/index.d.ts +7 -417
- package/dist/index.js +6 -1546
- package/dist/index.js.map +1 -1
- package/dist/renderers/DefaultIconRenderer.js +17 -0
- package/dist/renderers/DefaultIconRenderer.js.map +1 -0
- package/dist/renderers/DefaultLabelRenderer.js +9 -0
- package/dist/renderers/DefaultLabelRenderer.js.map +1 -0
- package/dist/renderers/Spacer.js +9 -0
- package/dist/renderers/Spacer.js.map +1 -0
- package/dist/types.d.ts +211 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/useTreeData.d.ts +25 -0
- package/dist/useTreeData.d.ts.map +1 -0
- package/dist/useTreeData.js +129 -0
- package/dist/useTreeData.js.map +1 -0
- package/dist/util.js +210 -0
- package/dist/util.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
const TreeContext = React.createContext({});
|
|
5
|
+
function useTreeContext() {
|
|
6
|
+
const context = React.useContext(TreeContext);
|
|
7
|
+
if (!context)
|
|
8
|
+
throw new Error("There is no tree context");
|
|
9
|
+
return context;
|
|
10
|
+
}
|
|
11
|
+
const TreeContextProvider = ({
|
|
12
|
+
children,
|
|
13
|
+
value
|
|
14
|
+
}) => {
|
|
15
|
+
const Provider = React.useMemo(() => {
|
|
16
|
+
return TreeContext.Provider;
|
|
17
|
+
}, []);
|
|
18
|
+
return /* @__PURE__ */ jsx(Provider, { value, children });
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { TreeContextProvider, TreeContext as default, useTreeContext };
|
|
22
|
+
//# sourceMappingURL=TreeContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeContext.js","sources":["../src/TreeContext.tsx"],"sourcesContent":["import React from 'react';\r\nimport TreeDataController from './TreeDataController';\r\nimport { TDataNode, TTreeProps } from './types';\r\n\r\nexport type TTreeContext<\r\n NodeProps extends Record<string, unknown> = Record<string, unknown>,\r\n NodeType extends TDataNode<NodeProps> = TDataNode<NodeProps>,\r\n> = {\r\n forceUpdate: number;\r\n name: string;\r\n handler: TreeDataController<NodeProps, NodeType>;\r\n treeProps: TTreeProps<NodeProps, NodeType>;\r\n} & Pick<TTreeProps, 'focusGetter'>;\r\n\r\nconst TreeContext = React.createContext({} as TTreeContext);\r\n\r\nexport function useTreeContext<\r\n NodeProps extends Record<string, unknown> = Record<string, unknown>,\r\n NodeType extends TDataNode<NodeProps> = TDataNode<NodeProps>,\r\n>() {\r\n const context = React.useContext(TreeContext);\r\n if (!context) throw new Error('There is no tree context');\r\n return context as unknown as TTreeContext<NodeProps, NodeType>;\r\n}\r\n\r\nexport const TreeContextProvider = <\r\n NodeProps extends Record<string, unknown> = Record<string, unknown>,\r\n NodeType extends TDataNode<NodeProps> = TDataNode<NodeProps>,\r\n>({\r\n children,\r\n value,\r\n}: {\r\n children: React.ReactNode;\r\n value: TTreeContext<NodeProps, NodeType>;\r\n}) => {\r\n const Provider = React.useMemo(() => {\r\n return TreeContext.Provider as unknown as React.Provider<\r\n TTreeContext<NodeProps, NodeType>\r\n >;\r\n }, []);\r\n\r\n return <Provider value={value}>{children}</Provider>;\r\n};\r\n\r\nexport default TreeContext;\r\n"],"names":[],"mappings":";;;AAcA,MAAM,WAAc,GAAA,KAAA,CAAM,aAAc,CAAA,EAAkB,EAAA;AAEnD,SAAS,cAGZ,GAAA;AACF,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA;AAAS,IAAM,MAAA,IAAI,MAAM,0BAA0B,CAAA,CAAA;AACxD,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAEO,MAAM,sBAAsB,CAGjC;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AACF,CAGM,KAAA;AACJ,EAAM,MAAA,QAAA,GAAW,KAAM,CAAA,OAAA,CAAQ,MAAM;AACnC,IAAA,OAAO,WAAY,CAAA,QAAA,CAAA;AAAA,GAGrB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,uBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAe,QAAS,EAAA,CAAA,CAAA;AAC3C;;;;"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import React__default, { RefObject } from 'react';
|
|
2
|
+
import { TDataNode, TId, TTreeDataControllerConfig, TTreeDataControllerState, TDataNodeContainer } from './types.js';
|
|
3
|
+
import { EventEmitter, PropsStore, TModify, TRequireOnlyOne, TUpdateFieldConfiguration, TPropsConfiguration } from '@apia/util';
|
|
4
|
+
|
|
5
|
+
declare function useTreeDataController<TreeType extends TreeDataController<any, any> = TreeDataController<any, any>>(name: string): TreeType;
|
|
6
|
+
declare class TreeDataController<NodeProps extends Record<string, unknown> = Record<string, unknown>, NodeType extends TDataNode<NodeProps> = TDataNode<NodeProps>> extends EventEmitter<{
|
|
7
|
+
onArrowUpOnFirstElement: boolean;
|
|
8
|
+
expandNode: NodeType;
|
|
9
|
+
mustFocus: TId;
|
|
10
|
+
stateUpdate: null;
|
|
11
|
+
}> {
|
|
12
|
+
name: string;
|
|
13
|
+
propsStore: PropsStore<NodeType>;
|
|
14
|
+
_configuration: RefObject<TTreeDataControllerConfig<NodeProps, NodeType>>;
|
|
15
|
+
get configuration(): {
|
|
16
|
+
current: TTreeDataControllerConfig<NodeProps, NodeType> | null;
|
|
17
|
+
};
|
|
18
|
+
hasApendedFirstChild: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Este array se usa para conocer los padres faltantes al momento de la
|
|
21
|
+
* construcción del árbol, de forma de optimizar el proceso
|
|
22
|
+
*/
|
|
23
|
+
missingParents: TId[];
|
|
24
|
+
nonEmittedUpdates: TId[];
|
|
25
|
+
get state(): TTreeDataControllerState;
|
|
26
|
+
stateKey: string;
|
|
27
|
+
get stateStore(): PropsStore<TTreeDataControllerState>;
|
|
28
|
+
constructor(name: string, configuration: RefObject<Partial<TTreeDataControllerConfig<NodeProps, NodeType>>>, propsStore?: PropsStore<NodeType>);
|
|
29
|
+
destructor(): void;
|
|
30
|
+
append(node: Omit<TModify<NodeType, {
|
|
31
|
+
children?: NodeType['children'];
|
|
32
|
+
parentId?: NodeType['parentId'];
|
|
33
|
+
}>, 'nodeProps' | 'actualParentId'> & Partial<Pick<NodeType, 'nodeProps'>>): void;
|
|
34
|
+
/**
|
|
35
|
+
* Cuando se quieren agregar muchos nodos, es conveniente llamar primero al
|
|
36
|
+
* método batchInit y luego de finalizar, al método batchFinish()
|
|
37
|
+
*/
|
|
38
|
+
batchInit(): void;
|
|
39
|
+
private getNodesRecursive;
|
|
40
|
+
/**
|
|
41
|
+
* Cuando se quieren agregar muchos nodos, es conveniente llamar primero al
|
|
42
|
+
* método batchInit y luego de finalizar, al método batchFinish()
|
|
43
|
+
*/
|
|
44
|
+
batchFinish(): void;
|
|
45
|
+
config(newConf: Partial<TTreeDataControllerConfig<NodeProps, NodeType>>): void;
|
|
46
|
+
deselectAll(): void;
|
|
47
|
+
forceEmitUpdate(): void;
|
|
48
|
+
getInitialState(): TTreeDataControllerState;
|
|
49
|
+
getNodesAsArray(): NodeType[];
|
|
50
|
+
/**
|
|
51
|
+
* Devuelve un array que contiene el id de todos los nodos pertenecientes al
|
|
52
|
+
* árbol
|
|
53
|
+
*/
|
|
54
|
+
getNodesIds(): string[];
|
|
55
|
+
getParentId(parentId: TId): TId;
|
|
56
|
+
/**
|
|
57
|
+
* Este método permite controlar el comportamiento con el teclado desde fuera
|
|
58
|
+
* del componente.
|
|
59
|
+
*/
|
|
60
|
+
handleKey(ev: React__default.KeyboardEvent): void;
|
|
61
|
+
isNode(node: NodeType | TDataNodeContainer<NodeProps> | TId): node is NodeType;
|
|
62
|
+
isNodeContainer(node: NodeType | TDataNodeContainer<NodeProps> | TId): node is TDataNodeContainer<NodeProps>;
|
|
63
|
+
includes(searchNode: NodeType): boolean;
|
|
64
|
+
initRoot(): void;
|
|
65
|
+
move(moveNode: TId, destinationNode: TId, afterOrBefore?: TRequireOnlyOne<{
|
|
66
|
+
after: NodeType | TId;
|
|
67
|
+
before: NodeType | TId;
|
|
68
|
+
position: number;
|
|
69
|
+
}>): void;
|
|
70
|
+
/**
|
|
71
|
+
* Borra el nodo del árbol, y dependiendo del parámetro removeChildren, borra
|
|
72
|
+
* también sus hijos.
|
|
73
|
+
*
|
|
74
|
+
* @param removeChildren - Si se pasa en false, los nodos hijos son movidos al root
|
|
75
|
+
*/
|
|
76
|
+
remove(removeNode: NodeType | TId, removeChildren?: boolean): void;
|
|
77
|
+
removeMultiple(nodes: TId[], removeChildren?: boolean): void;
|
|
78
|
+
previousNodes: TId[];
|
|
79
|
+
/**
|
|
80
|
+
* Borra todos los nodos del árbol.
|
|
81
|
+
*/
|
|
82
|
+
removeAll(): void;
|
|
83
|
+
selectAll(): void;
|
|
84
|
+
setExpandedNodes(nodes: TId[]): void;
|
|
85
|
+
setFocusedNode(key: TId, avoidSelection?: boolean): void;
|
|
86
|
+
setSelectedNodes(nodes: TId[], force?: boolean): void;
|
|
87
|
+
setSelectedNodesByClickEvent(ev: React__default.MouseEvent): void;
|
|
88
|
+
setState: (updateProps: Partial<TTreeDataControllerState>, conf?: TUpdateFieldConfiguration) => void;
|
|
89
|
+
useState: <T>(selector: (state: TTreeDataControllerState) => T) => T;
|
|
90
|
+
toggleNodeExpandedState(key: TId, shouldExpand?: boolean): void;
|
|
91
|
+
toggleNodeSelectedState(key: TId, isSelected?: boolean): void;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Este hook permite escuchar las props de un árbol, para ello es necesario
|
|
95
|
+
* pasar el handler.
|
|
96
|
+
*
|
|
97
|
+
* @param handler
|
|
98
|
+
* @param configuration
|
|
99
|
+
* @returns
|
|
100
|
+
*/
|
|
101
|
+
declare function useTreeSelector<NodeProps extends Record<string, unknown> = Record<string, unknown>, NodeType extends TDataNode<NodeProps> = TDataNode<NodeProps>, Selected = Record<string, unknown>, PropsType extends Record<string, unknown> = TTreeDataControllerState>(handler: TreeDataController<NodeProps, NodeType>, configuration?: TPropsConfiguration<Selected, PropsType>): Selected;
|
|
102
|
+
/**
|
|
103
|
+
* Este hook permite escuchar las props de un árbol, para ello es necesario
|
|
104
|
+
* pasar el handler.
|
|
105
|
+
*
|
|
106
|
+
* @param handler
|
|
107
|
+
* @param configuration
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
declare function useTreeSelectorByName<NodeProps extends Record<string, unknown> = Record<string, unknown>, NodeType extends TDataNode<NodeProps> = TDataNode<NodeProps>, Selected = Record<string, unknown>, PropsType extends Record<string, unknown> = TTreeDataControllerState>(treeName: string, configuration?: TPropsConfiguration<Selected, PropsType>): {
|
|
111
|
+
handler: TreeDataController<NodeProps, NodeType>;
|
|
112
|
+
selection: Selected;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export { TreeDataController as default, useTreeDataController, useTreeSelector, useTreeSelectorByName };
|
|
116
|
+
//# sourceMappingURL=TreeDataController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeDataController.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|