@kosdev-code/base-ui-components 0.1.0-dev.5205 → 0.1.0-dev.5267
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/components/atoms/icon/common/types.d.ts +1 -1
- package/components/atoms/icon/common/types.d.ts.map +1 -1
- package/components/molecules/filter-panel/filter-panel.d.ts +58 -0
- package/components/molecules/filter-panel/filter-panel.d.ts.map +1 -0
- package/components/molecules/filter-panel/index.d.ts +3 -0
- package/components/molecules/filter-panel/index.d.ts.map +1 -0
- package/components/molecules/form/components/form-input.d.ts +2 -0
- package/components/molecules/form/components/form-input.d.ts.map +1 -1
- package/components/molecules/index.d.ts +1 -0
- package/components/molecules/index.d.ts.map +1 -1
- package/components/molecules/list/common/data-providers/async-tree-data-provider.d.ts +178 -0
- package/components/molecules/list/common/data-providers/async-tree-data-provider.d.ts.map +1 -0
- package/components/molecules/list/common/data-providers/base-async-tree-data-provider.d.ts +177 -0
- package/components/molecules/list/common/data-providers/base-async-tree-data-provider.d.ts.map +1 -0
- package/components/molecules/list/common/data-providers/base-observable-data-provider.d.ts +4 -2
- package/components/molecules/list/common/data-providers/base-observable-data-provider.d.ts.map +1 -1
- package/components/molecules/list/common/data-providers/index.d.ts +2 -0
- package/components/molecules/list/common/data-providers/index.d.ts.map +1 -1
- package/components/molecules/list/common/samples/data-providers/async-tree-example.d.ts +153 -0
- package/components/molecules/list/common/samples/data-providers/async-tree-example.d.ts.map +1 -0
- package/components/molecules/list/common/templates/group/named-collapsible-group.d.ts.map +1 -1
- package/components/molecules/list/common/types.d.ts +1 -0
- package/components/molecules/list/common/types.d.ts.map +1 -1
- package/components/molecules/list/tree-list/async-tree-list.d.ts +183 -0
- package/components/molecules/list/tree-list/async-tree-list.d.ts.map +1 -0
- package/components/molecules/list/tree-list/index.d.ts +2 -0
- package/components/molecules/list/tree-list/index.d.ts.map +1 -1
- package/components/molecules/list/tree-list/select-async-tree-list.d.ts +19 -0
- package/components/molecules/list/tree-list/select-async-tree-list.d.ts.map +1 -0
- package/components/molecules/list/tree-list/templates/async-named-collapsible-branch.d.ts +4 -0
- package/components/molecules/list/tree-list/templates/async-named-collapsible-branch.d.ts.map +1 -0
- package/components/molecules/list/tree-list/templates/index.d.ts +1 -0
- package/components/molecules/list/tree-list/templates/index.d.ts.map +1 -1
- package/components/molecules/list/tree-list/templates/named-collapsible-branch.d.ts.map +1 -1
- package/hooks/use-drag-drop.d.ts +3 -1
- package/hooks/use-drag-drop.d.ts.map +1 -1
- package/index.cjs +951 -729
- package/index.cjs.map +1 -1
- package/index.js +4445 -3509
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/styles/tokens/component-tokens/index.d.ts +10 -0
- package/styles/tokens/component-tokens/index.d.ts.map +1 -1
- package/styles/tokens/component-tokens/named-collapsable-branch/index.d.ts +13 -0
- package/styles/tokens/component-tokens/named-collapsable-branch/index.d.ts.map +1 -0
- package/styles/tokens/index.d.ts +11 -1
- package/styles/tokens/index.d.ts.map +1 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { NamedListItem } from '../../types';
|
|
2
|
+
import { BaseAsyncTreeDataProvider } from '../../data-providers/base-async-tree-data-provider';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example raw data structure for a file system tree.
|
|
6
|
+
*
|
|
7
|
+
* @category Examples
|
|
8
|
+
*/
|
|
9
|
+
export interface FileNode {
|
|
10
|
+
/** Unique identifier for the node */
|
|
11
|
+
id: string;
|
|
12
|
+
/** Display name of the file or folder */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Node type */
|
|
15
|
+
type: "file" | "folder";
|
|
16
|
+
/** Full path to the node */
|
|
17
|
+
path: string;
|
|
18
|
+
/** File size in bytes (for files only) */
|
|
19
|
+
size?: number;
|
|
20
|
+
/** Last modification date */
|
|
21
|
+
modified?: Date;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Example model that provides file system data.
|
|
25
|
+
*
|
|
26
|
+
* @category Examples
|
|
27
|
+
* @author TBD
|
|
28
|
+
* @version 2.1.1
|
|
29
|
+
*/
|
|
30
|
+
export declare class FileSystemModel {
|
|
31
|
+
private files;
|
|
32
|
+
constructor();
|
|
33
|
+
/**
|
|
34
|
+
* Get root folders (simulates async API call)
|
|
35
|
+
*/
|
|
36
|
+
getRootFolders(): Promise<FileNode[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Get children for a specific path (simulates async API call)
|
|
39
|
+
*/
|
|
40
|
+
getChildren(parentId: string): Promise<FileNode[]>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Example async tree data provider for file system navigation.
|
|
44
|
+
*
|
|
45
|
+
* DEMONSTRATES:
|
|
46
|
+
* - Async root item loading
|
|
47
|
+
* - Async child loading when branches expand
|
|
48
|
+
* - Ingress filtering (hide hidden files)
|
|
49
|
+
* - Egress sorting (folders first, then alphabetical)
|
|
50
|
+
* - HasChildren determination
|
|
51
|
+
* - Fine-grained reactivity
|
|
52
|
+
*
|
|
53
|
+
* @category Examples
|
|
54
|
+
* @typeParam FileSystemModel - The parent model type
|
|
55
|
+
* @typeParam FileNode - The raw input item type
|
|
56
|
+
* @typeParam NamedListItem - The transformed ListItem type
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const model = new FileSystemModel();
|
|
61
|
+
* const provider = new FileTreeProvider(model);
|
|
62
|
+
* await provider.init();
|
|
63
|
+
*
|
|
64
|
+
* // Use with AsyncTreeList component
|
|
65
|
+
* <AsyncTreeList
|
|
66
|
+
* dataProvider={provider}
|
|
67
|
+
* BranchTemplate={FolderBranchTemplate}
|
|
68
|
+
* ItemTemplate={FileItemTemplate}
|
|
69
|
+
* />
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @see {@link BaseAsyncTreeDataProvider} for the base implementation
|
|
73
|
+
* @see {@link AsyncTreeList} for the React component
|
|
74
|
+
*
|
|
75
|
+
* @author TBD
|
|
76
|
+
* @version 2.1.1
|
|
77
|
+
*/
|
|
78
|
+
export declare class FileTreeProvider extends BaseAsyncTreeDataProvider<FileSystemModel, FileNode, NamedListItem> {
|
|
79
|
+
constructor(model: FileSystemModel);
|
|
80
|
+
/**
|
|
81
|
+
* Determine if an item has children without loading them.
|
|
82
|
+
* Folders always have potential children (even if empty).
|
|
83
|
+
*/
|
|
84
|
+
hasChildren(item: FileNode): boolean | "unknown";
|
|
85
|
+
/**
|
|
86
|
+
* Get unique ID for an item.
|
|
87
|
+
*/
|
|
88
|
+
getItemId(item: FileNode): string;
|
|
89
|
+
/**
|
|
90
|
+
* INGRESS FILTER: Hide hidden files (files starting with .)
|
|
91
|
+
* Operates on raw FileNode before transformation.
|
|
92
|
+
*/
|
|
93
|
+
filterByInputItem(item: FileNode): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* INGRESS SORT: Sort raw items by type (folders first) then name
|
|
96
|
+
* More efficient than sorting after transformation.
|
|
97
|
+
*/
|
|
98
|
+
sortByInputItem(a: FileNode, b: FileNode): number;
|
|
99
|
+
/**
|
|
100
|
+
* EGRESS FILTER: Example - could filter by display properties
|
|
101
|
+
* This runs after transformation to NamedListItem.
|
|
102
|
+
*/
|
|
103
|
+
filterItem(_item: NamedListItem): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* EGRESS SORT: Example - could sort by display name
|
|
106
|
+
* This runs after transformation to NamedListItem.
|
|
107
|
+
*/
|
|
108
|
+
sortItem(_a: NamedListItem, _b: NamedListItem): number;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Example with context-aware filtering.
|
|
112
|
+
*
|
|
113
|
+
* Demonstrates how to filter tree items based on context data (e.g., search text).
|
|
114
|
+
*
|
|
115
|
+
* @category Examples
|
|
116
|
+
* @author TBD
|
|
117
|
+
* @version 2.1.1
|
|
118
|
+
*/
|
|
119
|
+
export declare class SearchableFileTreeProvider extends FileTreeProvider {
|
|
120
|
+
/**
|
|
121
|
+
* EGRESS FILTER: Filter by search text from context
|
|
122
|
+
*/
|
|
123
|
+
filterItem(item: NamedListItem, context?: Map<string, any>): boolean;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Example demonstrating dynamic children determination.
|
|
127
|
+
*
|
|
128
|
+
* @category Examples
|
|
129
|
+
*/
|
|
130
|
+
export interface DynamicNode {
|
|
131
|
+
/** Unique identifier */
|
|
132
|
+
id: string;
|
|
133
|
+
/** Display name */
|
|
134
|
+
name: string;
|
|
135
|
+
/** Known child count from API (undefined if unknown) */
|
|
136
|
+
childCount?: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Example provider demonstrating hasChildren with unknown state.
|
|
140
|
+
*
|
|
141
|
+
* Shows how to handle cases where child count may not be known until
|
|
142
|
+
* the children are actually loaded.
|
|
143
|
+
*
|
|
144
|
+
* @category Examples
|
|
145
|
+
* @author TBD
|
|
146
|
+
* @version 2.1.1
|
|
147
|
+
*/
|
|
148
|
+
export declare class DynamicTreeProvider extends BaseAsyncTreeDataProvider<any, DynamicNode, NamedListItem> {
|
|
149
|
+
constructor(parent: any);
|
|
150
|
+
hasChildren(item: DynamicNode): boolean | "unknown";
|
|
151
|
+
getItemId(item: DynamicNode): string;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=async-tree-example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-tree-example.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/samples/data-providers/async-tree-example.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAsC;;IAmDnD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAM3C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAKzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,gBAAiB,SAAQ,yBAAyB,CAC7D,eAAe,EACf,QAAQ,EACR,aAAa,CACd;gBACa,KAAK,EAAE,eAAe;IA0BlC;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAIhD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAIjC;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI1C;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM;IASjD;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAMzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM;CAIvD;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;CAMrE;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,yBAAyB,CAChE,GAAG,EACH,WAAW,EACX,aAAa,CACd;gBACa,MAAM,EAAE,GAAG;IAiCvB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS;IASnD,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CAGrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"named-collapsible-group.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/templates/group/named-collapsible-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpD,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,4CAK/B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"named-collapsible-group.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/templates/group/named-collapsible-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpD,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,4CAK/B,0BAA0B,qDA6B5B,CAAC;AAEF,eAAO,MAAM,cAAc,sCAIxB,0BAA0B,qDAI5B,CAAC"}
|
|
@@ -65,4 +65,5 @@ export interface OutputSortAware<T extends ListItem = ListItem> {
|
|
|
65
65
|
export interface InputSortAware<I extends Record<string, any>> {
|
|
66
66
|
sortByInputItem: (a: I, b: I) => number;
|
|
67
67
|
}
|
|
68
|
+
export type { AsyncTreeBranch, AsyncTreeDataProvider, BranchLoadingState, } from './data-providers/async-tree-data-provider';
|
|
68
69
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { ListItem } from '../common/types';
|
|
2
|
+
import { BaseAsyncTreeDataProvider } from '../common/data-providers/base-async-tree-data-provider';
|
|
3
|
+
import { AsyncTreeBranch } from '../common/data-providers/async-tree-data-provider';
|
|
4
|
+
import { IconColors, IconIds } from '../../../atoms/icon';
|
|
5
|
+
import { FunctionComponent, ReactElement, ReactNode } from 'react';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for an icon
|
|
9
|
+
*/
|
|
10
|
+
export interface IconConfig {
|
|
11
|
+
iconId: IconIds;
|
|
12
|
+
color?: IconColors;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Maps node types to icons - can be static map or dynamic function
|
|
16
|
+
*/
|
|
17
|
+
export type NodeIconMap<T extends ListItem = ListItem> = Record<string, IconConfig> | ((node: T) => IconConfig | undefined);
|
|
18
|
+
/**
|
|
19
|
+
* Configuration for a node action button
|
|
20
|
+
*/
|
|
21
|
+
export interface NodeActionConfig<I extends Record<string, any>, T extends ListItem = ListItem> {
|
|
22
|
+
id: string;
|
|
23
|
+
iconId: IconIds;
|
|
24
|
+
tooltip?: string;
|
|
25
|
+
color?: IconColors;
|
|
26
|
+
onClick: (nodeId: string, originalItem: I) => void;
|
|
27
|
+
visibleFor?: (node: T) => boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Resolved action ready to render
|
|
31
|
+
*/
|
|
32
|
+
export interface ResolvedAction {
|
|
33
|
+
id: string;
|
|
34
|
+
iconId: IconIds;
|
|
35
|
+
color?: IconColors;
|
|
36
|
+
tooltip?: string;
|
|
37
|
+
onClick: () => void;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Configuration for a node decorator (icon or badge)
|
|
41
|
+
*/
|
|
42
|
+
export interface NodeDecoratorConfig<T extends ListItem = ListItem> {
|
|
43
|
+
id: string;
|
|
44
|
+
iconId: IconIds;
|
|
45
|
+
color?: IconColors;
|
|
46
|
+
tooltip?: string;
|
|
47
|
+
visibleFor?: (node: T) => boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolved decorator ready to render
|
|
51
|
+
*/
|
|
52
|
+
export interface ResolvedDecorator {
|
|
53
|
+
id: string;
|
|
54
|
+
iconId: IconIds;
|
|
55
|
+
color?: IconColors;
|
|
56
|
+
tooltip?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Props for rendering an async tree branch.
|
|
60
|
+
*
|
|
61
|
+
* @category Components
|
|
62
|
+
* @typeParam T - The ListItem type for this branch
|
|
63
|
+
*/
|
|
64
|
+
export type AsyncBranchTemplateProps<T extends ListItem = ListItem> = T & {
|
|
65
|
+
/** Child branches to render when expanded */
|
|
66
|
+
children: ReactNode;
|
|
67
|
+
/** CSS class name for styling */
|
|
68
|
+
className?: string;
|
|
69
|
+
/** Click handler for expanding/collapsing the branch */
|
|
70
|
+
onClick?: () => void;
|
|
71
|
+
/** Click handler for selecting the branch */
|
|
72
|
+
onSelect?: () => void;
|
|
73
|
+
/** Loading state indicator */
|
|
74
|
+
"data-loading"?: boolean;
|
|
75
|
+
/** Error state indicator */
|
|
76
|
+
"data-error"?: boolean;
|
|
77
|
+
/** Open state indicator */
|
|
78
|
+
"data-open"?: boolean;
|
|
79
|
+
/** Selected state indicator */
|
|
80
|
+
"data-selected"?: boolean;
|
|
81
|
+
/** Resolved icon ID for this branch */
|
|
82
|
+
iconId?: IconIds;
|
|
83
|
+
/** Resolved icon color for this branch */
|
|
84
|
+
iconColor?: IconColors;
|
|
85
|
+
/** Resolved action buttons for this branch */
|
|
86
|
+
actions?: ResolvedAction[];
|
|
87
|
+
/** Resolved decorators for this branch */
|
|
88
|
+
decorators?: ResolvedDecorator[];
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Factory for creating branch templates.
|
|
92
|
+
*
|
|
93
|
+
* @category Components
|
|
94
|
+
* @typeParam T - The ListItem type for this branch
|
|
95
|
+
*/
|
|
96
|
+
export interface AsyncBranchTemplateFactory<T extends ListItem = ListItem> {
|
|
97
|
+
/** Build a branch component based on branch data */
|
|
98
|
+
build: (branch: AsyncTreeBranch<T>) => FunctionComponent<AsyncBranchTemplateProps<T>>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Branch template type (component or factory).
|
|
102
|
+
*
|
|
103
|
+
* @category Components
|
|
104
|
+
* @typeParam T - The ListItem type for this branch
|
|
105
|
+
*/
|
|
106
|
+
export type AsyncBranchTemplateType<T extends ListItem = ListItem> = AsyncBranchTemplateFactory<T> | FunctionComponent<AsyncBranchTemplateProps<T>>;
|
|
107
|
+
/**
|
|
108
|
+
* Props for AsyncTreeList component.
|
|
109
|
+
*
|
|
110
|
+
* @category Components
|
|
111
|
+
* @typeParam I - Raw input item type from the data source
|
|
112
|
+
* @typeParam T - Transformed ListItem type for display
|
|
113
|
+
*/
|
|
114
|
+
export interface AsyncTreeListProps<I extends Record<string, any>, T extends ListItem = ListItem> {
|
|
115
|
+
/** Async tree data provider */
|
|
116
|
+
dataProvider: BaseAsyncTreeDataProvider<any, I, T> | null;
|
|
117
|
+
/** Template for rendering branch nodes */
|
|
118
|
+
BranchTemplate: AsyncBranchTemplateType<T>;
|
|
119
|
+
/** Template for rendering leaf nodes */
|
|
120
|
+
ItemTemplate: FunctionComponent<T>;
|
|
121
|
+
/** Callback when a branch is expanded */
|
|
122
|
+
onBranchExpand?: (itemId: string, item: I) => void;
|
|
123
|
+
/** Callback when a branch is collapsed */
|
|
124
|
+
onBranchCollapse?: (itemId: string) => void;
|
|
125
|
+
/** Callback for list item actions */
|
|
126
|
+
onListItemAction?: (itemId: string, actionId: string) => void;
|
|
127
|
+
/** Callback when a branch is selected */
|
|
128
|
+
onBranchSelect?: (itemId: string, item: I) => void;
|
|
129
|
+
/** Currently selected branch ID */
|
|
130
|
+
selectedBranchId?: string;
|
|
131
|
+
/** Empty state to show when no items */
|
|
132
|
+
emptyState?: ReactElement;
|
|
133
|
+
/** Empty state to show when an expanded branch has no children */
|
|
134
|
+
branchEmptyState?: ReactElement;
|
|
135
|
+
/** CSS class name */
|
|
136
|
+
className?: string;
|
|
137
|
+
/** If true, only one branch can be open at a time */
|
|
138
|
+
singleBranchOnly?: boolean;
|
|
139
|
+
/** Controlled opened branches */
|
|
140
|
+
openedBranches?: string[];
|
|
141
|
+
/** Setter for controlled opened branches */
|
|
142
|
+
setOpenedBranches?: (branches: string[]) => void;
|
|
143
|
+
/** Icon resolver for tree nodes - static map or function */
|
|
144
|
+
nodeIconMap?: NodeIconMap<T>;
|
|
145
|
+
/** Action button configurations */
|
|
146
|
+
nodeActions?: NodeActionConfig<I, T>[];
|
|
147
|
+
/** Decorator configurations - presentation icons without actions */
|
|
148
|
+
nodeDecorators?: NodeDecoratorConfig<T>[];
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Async tree list component with lazy loading support.
|
|
152
|
+
*
|
|
153
|
+
* Features:
|
|
154
|
+
* - Lazy loading of tree branches
|
|
155
|
+
* - Fine-grained reactivity (only affected branches recompute)
|
|
156
|
+
* - Loading and error states per branch
|
|
157
|
+
* - Compatible with existing TreeContext infrastructure
|
|
158
|
+
* - Observable-based automatic UI updates
|
|
159
|
+
*
|
|
160
|
+
* @category Components
|
|
161
|
+
* @typeParam I - Raw input item type from the data source
|
|
162
|
+
* @typeParam T - Transformed ListItem type for display
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```tsx
|
|
166
|
+
* <AsyncTreeList
|
|
167
|
+
* dataProvider={myAsyncTreeProvider}
|
|
168
|
+
* BranchTemplate={MyBranchTemplate}
|
|
169
|
+
* ItemTemplate={MyItemTemplate}
|
|
170
|
+
* onBranchExpand={(id, item) => console.log('Expanded:', id)}
|
|
171
|
+
* />
|
|
172
|
+
* ```
|
|
173
|
+
*
|
|
174
|
+
* @see {@link BaseAsyncTreeDataProvider} for the data provider interface
|
|
175
|
+
* @see {@link AsyncTreeBranch} for the branch data structure
|
|
176
|
+
*
|
|
177
|
+
* @author TBD
|
|
178
|
+
* @version 2.1.1
|
|
179
|
+
*/
|
|
180
|
+
export declare const AsyncTreeList: (<I extends Record<string, any>, T extends ListItem>({ dataProvider, BranchTemplate, ItemTemplate, onBranchExpand, onBranchCollapse, onListItemAction, onBranchSelect, selectedBranchId, emptyState, branchEmptyState, className, singleBranchOnly, openedBranches: controlledOpenedBranches, setOpenedBranches: controlledSetOpenedBranches, nodeIconMap, nodeActions, nodeDecorators, }: AsyncTreeListProps<I, T>) => ReactElement | null) & {
|
|
181
|
+
displayName: string;
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=async-tree-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-tree-list.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/async-tree-list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './tree-data-provider';
|
|
2
2
|
export * from './common/types';
|
|
3
3
|
export * from './tree-list';
|
|
4
|
+
export * from './async-tree-list';
|
|
5
|
+
export * from './select-async-tree-list';
|
|
4
6
|
export * from './templates';
|
|
5
7
|
export { useTreeListContext } from './common/hooks';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AsyncTreeListProps } from './async-tree-list';
|
|
2
|
+
import { ListItem } from '../common/types';
|
|
3
|
+
import { ReactElement } from 'react';
|
|
4
|
+
|
|
5
|
+
export interface SelectAsyncTreeListProps<T extends ListItem = ListItem> {
|
|
6
|
+
onSelect: (id: string, state: "selected" | "unselected") => void;
|
|
7
|
+
isSingleSelect?: boolean;
|
|
8
|
+
selected?: string[];
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
autoSelectFirstItem?: boolean;
|
|
11
|
+
_phantom?: T;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* AsyncTreeList wrapper with selection context support.
|
|
15
|
+
* Follows the same pattern as TreeList + SelectList combination.
|
|
16
|
+
* Provides SelectListContext so templates can use useSelectListContext() hook.
|
|
17
|
+
*/
|
|
18
|
+
export declare const SelectAsyncTreeList: <I extends Record<string, any>, T extends ListItem = ListItem>(props: AsyncTreeListProps<I, T> & SelectAsyncTreeListProps<T>) => ReactElement | null;
|
|
19
|
+
//# sourceMappingURL=select-async-tree-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-async-tree-list.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/select-async-tree-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACrE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,KAAK,IAAI,CAAC;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAE7B,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,KAC1D,YAAY,GAAG,IA6EnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-named-collapsible-branch.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/async-named-collapsible-branch.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAInE,eAAO,MAAM,2BAA2B,6DA+FrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"named-collapsible-branch.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/named-collapsible-branch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEzE,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EACzE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC1B,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"named-collapsible-branch.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/named-collapsible-branch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEzE,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EACzE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC1B,YAAY,GAAG,IA+BnB,CAAC"}
|
package/hooks/use-drag-drop.d.ts
CHANGED
|
@@ -12,8 +12,10 @@ interface UseDragDropOptions<T> {
|
|
|
12
12
|
onDragStart?: (data: DragData<T>, event: DragEvent) => void;
|
|
13
13
|
onDragEnd?: (event: DragEvent) => void;
|
|
14
14
|
onDragOver?: (event: DragEvent) => void;
|
|
15
|
+
onDragLeave?: (event: DragEvent) => void;
|
|
15
16
|
}
|
|
16
|
-
export declare const
|
|
17
|
+
export declare const getCurrentDragData: () => any;
|
|
18
|
+
export declare const useDragDrop: <T>({ ref, data, canDrag, transformDragData, onDrop, onDragStart, onDragEnd, onDragOver, onDragLeave, }: UseDragDropOptions<T>) => {
|
|
17
19
|
dragging: boolean;
|
|
18
20
|
over: boolean;
|
|
19
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-drag-drop.d.ts","sourceRoot":"","sources":["../../../../../packages/libraries/base-ui-components/src/hooks/use-drag-drop.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,UAAU,kBAAkB,CAAC,CAAC;IAC5B,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"use-drag-drop.d.ts","sourceRoot":"","sources":["../../../../../packages/libraries/base-ui-components/src/hooks/use-drag-drop.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,UAAU,kBAAkB,CAAC,CAAC;IAC5B,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C;AAMD,eAAO,MAAM,kBAAkB,WAAwB,CAAC;AAExD,eAAO,MAAM,WAAW,2GAUrB,mBAAmB,CAAC,CAAC;;;CAyHvB,CAAC"}
|