@snack-uikit/tree 0.10.2-preview-13f87e77.0 → 0.10.2-preview-c66aa175.0

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/README.md CHANGED
@@ -90,32 +90,30 @@ function TreeAsyncLoadExample() {
90
90
 
91
91
  [//]: DOCUMENTATION_SECTION_START
92
92
  [//]: THIS_SECTION_IS_AUTOGENERATED_PLEASE_DONT_EDIT_IT
93
+ ## getSearchedTreeItems
94
+ ### Props
95
+ | name | type | default value | description |
96
+ |------|------|---------------|-------------|
97
+ | tree* | `any[]` | - | |
98
+ | searchOptions | `Partial<{ query: string; includeChildrenMatchedParent: boolean; }>` | - | |
99
+ ## getSearchedTreeNodeById
100
+ ### Props
101
+ | name | type | default value | description |
102
+ |------|------|---------------|-------------|
103
+ | searchOptions* | `{ id: I; includeNested?: boolean; }` | - | |
104
+ | tree* | `T[]` | - | |
93
105
  ## Tree
94
106
  ### Props
95
107
  | name | type | default value | description |
96
108
  |------|------|---------------|-------------|
97
- | data* | `TreeNodeProps[]` | - | Данные для отрисовки |
98
- | onNodeClick | `OnNodeClick` | - | Обработчик клика по элементу дерева |
99
- | expandedNodes | `string[]` | - | Состояние для раскрытых элементов |
100
- | onExpand | `(expandedKeys: string[], node: TreeNodeProps) => void` | - | Колбэк при раскрытии/закрытии элементов |
101
- | onDataLoad | `(node: TreeNodeProps) => Promise<unknown>` | - | Колбэк для асинхронной загрузки данных при раскрытии дерева |
102
- | parentActions | `(node: TreeNodeProps) => Item[]` | - | Дополнительные действия для элемента-родителя |
103
- | nodeActions | `(node: TreeNodeProps) => Item[]` | - | Дополнительные действия для элемента-потомка |
104
- | showIcons | `boolean` | true | Флаг отвечающий за отображение иконок у элементов дерева |
105
- | showLines | `boolean` | true | Флаг отвечающий за отображение линий вложенности |
106
- | className | `string` | - | CSS-класс |
107
- | selectionMode | "single" \| "multi" | - | Режим выбора элементов: <br> - `Single` - одиночный выбор <br> - `Multi` - множественный выбор <br> - `undefined` - без выбора |
108
- | selected | `string \| string[]` | - | Состояние для выбраных элементов: <br> - При <strong>selectionMode</strong>=`Multi` - принимает массив строк <br> - При <strong>selectionMode</strong>=`Single` - принимает строку |
109
- | onSelect | `((selectedKeys: string[], node: TreeNodeProps) => void) \| ((selectedKey: string, node: TreeNodeProps) => void)` | - | Колбэк при изменении выбраных элементов: <br> - При <strong>selectionMode</strong>=`Multi` - возвращает массив строк <br> - При <strong>selectionMode</strong>=`Single` - возвращает строку |
110
- | showToggle | `boolean` | - | |
111
- ## useTreeWithPreload
109
+ ## useSearchableTree
112
110
  ### Props
113
111
  | name | type | default value | description |
114
112
  |------|------|---------------|-------------|
115
113
  | mapNodeToRecordItem* | `(node: TTreeNode) => TRecordValue` | - | |
116
114
  | onSearch* | `(params: SearchParams) => Promise<SearchResult<TTreeNode>>` | - | |
117
115
  | onPreloadNodes* | `(nodes: string[]) => Promise<Record<string, TTreeNode[]>>` | - | |
118
- | onPreloadNode* | `(node: TreeNodeProps) => Promise<TTreeNode[]>` | - | |
116
+ | onPreloadNode* | `(node: any) => Promise<TTreeNode[]>` | - | |
119
117
  | initTree* | `TTreeNode[]` | - | |
120
118
  ## useTreeMultiSelection
121
119
  ### Props
@@ -1,2 +1,2 @@
1
- export * from './useTreeWithPreload';
1
+ export * from './useSearchableTree';
2
2
  export * from './useTreeMultiSelection';
@@ -22,5 +22,5 @@ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
22
22
  Object.defineProperty(exports, "__esModule", {
23
23
  value: true
24
24
  });
25
- __exportStar(require("./useTreeWithPreload"), exports);
25
+ __exportStar(require("./useSearchableTree"), exports);
26
26
  __exportStar(require("./useTreeMultiSelection"), exports);
@@ -7,14 +7,14 @@ export type SearchParams = {
7
7
  search: string;
8
8
  expandedNodes: string[];
9
9
  };
10
- type UseTreeWithPreloadParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
10
+ type UseSearchableTreeParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
11
11
  initTree: TTreeNode[];
12
12
  onPreloadNode: (node: TreeNodeProps) => Promise<TTreeNode[]>;
13
13
  onPreloadNodes: (nodes: string[]) => Promise<Record<string, TTreeNode[]>>;
14
14
  onSearch: (params: SearchParams) => Promise<SearchResult<TTreeNode>>;
15
15
  mapNodeToRecordItem: (node: TTreeNode) => TRecordValue;
16
16
  };
17
- export declare function useTreeWithPreload<TRecordValue, TTreeNode extends TreeNodeProps>({ initTree, onPreloadNode, onPreloadNodes, onSearch, mapNodeToRecordItem, }: UseTreeWithPreloadParams<TRecordValue, TTreeNode>): {
17
+ export declare function useSearchableTree<TRecordValue, TTreeNode extends TreeNodeProps>({ initTree, onPreloadNode, onPreloadNodes, onSearch, mapNodeToRecordItem, }: UseSearchableTreeParams<TRecordValue, TTreeNode>): {
18
18
  tree: import("@siberiacancode/reactuse").StateRef<TTreeNode[]>;
19
19
  expandedNodes: import("@siberiacancode/reactuse").StateRef<string[]>;
20
20
  loading: boolean;
@@ -30,12 +30,12 @@ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P
30
30
  Object.defineProperty(exports, "__esModule", {
31
31
  value: true
32
32
  });
33
- exports.useTreeWithPreload = useTreeWithPreload;
33
+ exports.useSearchableTree = useSearchableTree;
34
34
  const reactuse_1 = require("@siberiacancode/reactuse");
35
35
  const cancelable_promise_1 = require("cancelable-promise");
36
36
  const react_1 = require("react");
37
37
  const helpers_1 = require("../helpers");
38
- function useTreeWithPreload(_ref) {
38
+ function useSearchableTree(_ref) {
39
39
  let {
40
40
  initTree,
41
41
  onPreloadNode,
@@ -2,3 +2,4 @@ export * from './components';
2
2
  export type { OnNodeClick, TreeNodeId, TreeNodeProps } from './types';
3
3
  export { setNonce } from '@snack-uikit/list';
4
4
  export * from './hooks';
5
+ export { setChildrenOfTreeNode, traverse, getSearchedTreeItems, getSearchedTreeNodeById } from './helpers';
package/dist/cjs/index.js CHANGED
@@ -22,7 +22,7 @@ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
22
22
  Object.defineProperty(exports, "__esModule", {
23
23
  value: true
24
24
  });
25
- exports.setNonce = void 0;
25
+ exports.getSearchedTreeNodeById = exports.getSearchedTreeItems = exports.traverse = exports.setChildrenOfTreeNode = exports.setNonce = void 0;
26
26
  __exportStar(require("./components"), exports);
27
27
  var list_1 = require("@snack-uikit/list");
28
28
  Object.defineProperty(exports, "setNonce", {
@@ -31,4 +31,29 @@ Object.defineProperty(exports, "setNonce", {
31
31
  return list_1.setNonce;
32
32
  }
33
33
  });
34
- __exportStar(require("./hooks"), exports);
34
+ __exportStar(require("./hooks"), exports);
35
+ var helpers_1 = require("./helpers");
36
+ Object.defineProperty(exports, "setChildrenOfTreeNode", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return helpers_1.setChildrenOfTreeNode;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "traverse", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return helpers_1.traverse;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "getSearchedTreeItems", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return helpers_1.getSearchedTreeItems;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "getSearchedTreeNodeById", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return helpers_1.getSearchedTreeNodeById;
58
+ }
59
+ });
@@ -1,2 +1,2 @@
1
- export * from './useTreeWithPreload';
1
+ export * from './useSearchableTree';
2
2
  export * from './useTreeMultiSelection';
@@ -1,2 +1,2 @@
1
- export * from './useTreeWithPreload';
1
+ export * from './useSearchableTree';
2
2
  export * from './useTreeMultiSelection';
@@ -7,14 +7,14 @@ export type SearchParams = {
7
7
  search: string;
8
8
  expandedNodes: string[];
9
9
  };
10
- type UseTreeWithPreloadParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
10
+ type UseSearchableTreeParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
11
11
  initTree: TTreeNode[];
12
12
  onPreloadNode: (node: TreeNodeProps) => Promise<TTreeNode[]>;
13
13
  onPreloadNodes: (nodes: string[]) => Promise<Record<string, TTreeNode[]>>;
14
14
  onSearch: (params: SearchParams) => Promise<SearchResult<TTreeNode>>;
15
15
  mapNodeToRecordItem: (node: TTreeNode) => TRecordValue;
16
16
  };
17
- export declare function useTreeWithPreload<TRecordValue, TTreeNode extends TreeNodeProps>({ initTree, onPreloadNode, onPreloadNodes, onSearch, mapNodeToRecordItem, }: UseTreeWithPreloadParams<TRecordValue, TTreeNode>): {
17
+ export declare function useSearchableTree<TRecordValue, TTreeNode extends TreeNodeProps>({ initTree, onPreloadNode, onPreloadNodes, onSearch, mapNodeToRecordItem, }: UseSearchableTreeParams<TRecordValue, TTreeNode>): {
18
18
  tree: import("@siberiacancode/reactuse").StateRef<TTreeNode[]>;
19
19
  expandedNodes: import("@siberiacancode/reactuse").StateRef<string[]>;
20
20
  loading: boolean;
@@ -11,7 +11,7 @@ import { useDebounceValue, useDidUpdate, useRefState } from '@siberiacancode/rea
11
11
  import { cancelable } from 'cancelable-promise';
12
12
  import { useCallback, useEffect, useRef, useState } from 'react';
13
13
  import { collectEmptyNestedNodesInExpanded, setChildrenOfTreeNode, traverse } from '../helpers';
14
- export function useTreeWithPreload({ initTree, onPreloadNode, onPreloadNodes, onSearch, mapNodeToRecordItem, }) {
14
+ export function useSearchableTree({ initTree, onPreloadNode, onPreloadNodes, onSearch, mapNodeToRecordItem, }) {
15
15
  const tree = useRefState(initTree);
16
16
  const treeItemsRecord = useRefState({});
17
17
  const expandedNodes = useRefState([]);
@@ -2,3 +2,4 @@ export * from './components';
2
2
  export type { OnNodeClick, TreeNodeId, TreeNodeProps } from './types';
3
3
  export { setNonce } from '@snack-uikit/list';
4
4
  export * from './hooks';
5
+ export { setChildrenOfTreeNode, traverse, getSearchedTreeItems, getSearchedTreeNodeById } from './helpers';
package/dist/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './components';
2
2
  export { setNonce } from '@snack-uikit/list';
3
3
  export * from './hooks';
4
+ export { setChildrenOfTreeNode, traverse, getSearchedTreeItems, getSearchedTreeNodeById } from './helpers';
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "Tree",
7
- "version": "0.10.2-preview-13f87e77.0",
7
+ "version": "0.10.2-preview-c66aa175.0",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
@@ -50,5 +50,5 @@
50
50
  "react-transition-state": "2.1.1",
51
51
  "uncontrollable": "8.0.4"
52
52
  },
53
- "gitHead": "244db9228818f24f34f9d5a4dafdf6f7f2182c6d"
53
+ "gitHead": "4f220f2a365b6c679fe345b06ed50706d62d4d34"
54
54
  }
@@ -1,2 +1,2 @@
1
- export * from './useTreeWithPreload';
1
+ export * from './useSearchableTree';
2
2
  export * from './useTreeMultiSelection';
@@ -15,7 +15,7 @@ export type SearchParams = {
15
15
  expandedNodes: string[];
16
16
  };
17
17
 
18
- type UseTreeWithPreloadParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
18
+ type UseSearchableTreeParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
19
19
  initTree: TTreeNode[];
20
20
  onPreloadNode: (node: TreeNodeProps) => Promise<TTreeNode[]>;
21
21
  onPreloadNodes: (nodes: string[]) => Promise<Record<string, TTreeNode[]>>;
@@ -23,13 +23,13 @@ type UseTreeWithPreloadParams<TRecordValue, TTreeNode extends TreeNodeProps> = {
23
23
  mapNodeToRecordItem: (node: TTreeNode) => TRecordValue;
24
24
  };
25
25
 
26
- export function useTreeWithPreload<TRecordValue, TTreeNode extends TreeNodeProps>({
26
+ export function useSearchableTree<TRecordValue, TTreeNode extends TreeNodeProps>({
27
27
  initTree,
28
28
  onPreloadNode,
29
29
  onPreloadNodes,
30
30
  onSearch,
31
31
  mapNodeToRecordItem,
32
- }: UseTreeWithPreloadParams<TRecordValue, TTreeNode>) {
32
+ }: UseSearchableTreeParams<TRecordValue, TTreeNode>) {
33
33
  const tree = useRefState<TTreeNode[]>(initTree);
34
34
  const treeItemsRecord = useRefState<Record<string, TRecordValue>>({});
35
35
 
package/src/index.ts CHANGED
@@ -2,3 +2,4 @@ export * from './components';
2
2
  export type { OnNodeClick, TreeNodeId, TreeNodeProps } from './types';
3
3
  export { setNonce } from '@snack-uikit/list';
4
4
  export * from './hooks';
5
+ export { setChildrenOfTreeNode, traverse, getSearchedTreeItems, getSearchedTreeNodeById } from './helpers';