uiconfig-blueprint 0.1.0-dev.13 → 0.1.0-dev.14

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.
Files changed (165) hide show
  1. package/dist/ConfigObject.d.ts +3 -1
  2. package/dist/{allPaths-Dbwyd6G0.js → allPaths-DANRR6MZ.js} +5 -5
  3. package/dist/{allPaths-Dbwyd6G0.js.map → allPaths-DANRR6MZ.js.map} +1 -1
  4. package/dist/{allPathsLoader-B9DtnPQs.js → allPathsLoader-BdHGVD6B.js} +4 -4
  5. package/dist/{allPathsLoader-B9DtnPQs.js.map → allPathsLoader-BdHGVD6B.js.map} +1 -1
  6. package/dist/bpComponents/BPColorInputComponent.d.ts +1 -0
  7. package/dist/bpComponents/BPComponent.d.ts +2 -0
  8. package/dist/bpComponents/BPContainerComponent.d.ts +10 -2
  9. package/dist/bpComponents/BPFileComponent.d.ts +12 -10
  10. package/dist/bpComponents/BPFolderComponent.d.ts +13 -4
  11. package/dist/bpComponents/BPPanelComponent.d.ts +3 -3
  12. package/dist/bpComponents/BPTextInputComponent.d.ts +4 -0
  13. package/dist/bpComponents/BPValueComponent.d.ts +2 -2
  14. package/dist/bpComponents/BPVectorInputComponent.d.ts +11 -5
  15. package/dist/bpComponents/InputGroup2.d.ts +25 -0
  16. package/dist/components/DialogContext.d.ts +10 -3
  17. package/dist/components/DraggableIcon.d.ts +4 -3
  18. package/dist/components/FileComponent.d.ts +13 -6
  19. package/dist/components/FormGroupComponent.d.ts +3 -2
  20. package/dist/components/InspectorStackComponent.d.ts +11 -2
  21. package/dist/index-6kveHKKU.js +695 -0
  22. package/dist/index-6kveHKKU.js.map +1 -0
  23. package/dist/index-D9WNL8Mc.js +695 -0
  24. package/dist/index-D9WNL8Mc.js.map +1 -0
  25. package/dist/index-t3WzvX5M.js +13501 -0
  26. package/dist/index-t3WzvX5M.js.map +1 -0
  27. package/dist/index.js +28 -41
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +2 -2
  30. package/dist/lib.d.ts +2 -3
  31. package/dist/{splitPathsBySizeLoader-Dii-Xb62.js → splitPathsBySizeLoader-Bhwx_O-M.js} +5 -5
  32. package/dist/{splitPathsBySizeLoader-Dii-Xb62.js.map → splitPathsBySizeLoader-Bhwx_O-M.js.map} +1 -1
  33. package/dist/utils/pointerLock.d.ts +44 -0
  34. package/docs/classes/UI.html +3 -3
  35. package/docs/classes/UiConfigRendererBlueprint.html +3 -3
  36. package/lib/css/renderer.css +35 -103
  37. package/lib/css/renderer.css.map +1 -1
  38. package/lib/esm/ConfigObject.d.ts +3 -1
  39. package/lib/esm/ConfigObject.js +5 -4
  40. package/lib/esm/ConfigObject.js.map +1 -1
  41. package/lib/esm/UiConfigRendererBlueprint.js +2 -1
  42. package/lib/esm/UiConfigRendererBlueprint.js.map +1 -1
  43. package/lib/esm/bpComponents/BPButtonComponent.js +1 -1
  44. package/lib/esm/bpComponents/BPButtonComponent.js.map +1 -1
  45. package/lib/esm/bpComponents/BPColorInputComponent.d.ts +1 -0
  46. package/lib/esm/bpComponents/BPColorInputComponent.js +17 -4
  47. package/lib/esm/bpComponents/BPColorInputComponent.js.map +1 -1
  48. package/lib/esm/bpComponents/BPComponent.d.ts +2 -0
  49. package/lib/esm/bpComponents/BPComponent.js +4 -4
  50. package/lib/esm/bpComponents/BPComponent.js.map +1 -1
  51. package/lib/esm/bpComponents/BPContainerComponent.d.ts +10 -2
  52. package/lib/esm/bpComponents/BPContainerComponent.js +4 -1
  53. package/lib/esm/bpComponents/BPContainerComponent.js.map +1 -1
  54. package/lib/esm/bpComponents/BPDropdownInputComponent.js +4 -3
  55. package/lib/esm/bpComponents/BPDropdownInputComponent.js.map +1 -1
  56. package/lib/esm/bpComponents/BPFileComponent.d.ts +12 -10
  57. package/lib/esm/bpComponents/BPFileComponent.js +10 -8
  58. package/lib/esm/bpComponents/BPFileComponent.js.map +1 -1
  59. package/lib/esm/bpComponents/BPFolderComponent.d.ts +13 -4
  60. package/lib/esm/bpComponents/BPFolderComponent.js +58 -13
  61. package/lib/esm/bpComponents/BPFolderComponent.js.map +1 -1
  62. package/lib/esm/bpComponents/BPInputComponent.js +1 -1
  63. package/lib/esm/bpComponents/BPInputComponent.js.map +1 -1
  64. package/lib/esm/bpComponents/BPPanelComponent.d.ts +3 -3
  65. package/lib/esm/bpComponents/BPPanelComponent.js +1 -1
  66. package/lib/esm/bpComponents/BPPanelComponent.js.map +1 -1
  67. package/lib/esm/bpComponents/BPTextInputComponent.d.ts +4 -0
  68. package/lib/esm/bpComponents/BPTextInputComponent.js +34 -3
  69. package/lib/esm/bpComponents/BPTextInputComponent.js.map +1 -1
  70. package/lib/esm/bpComponents/BPTreeComponent.d.ts +4 -4
  71. package/lib/esm/bpComponents/BPTreeComponent.js +2 -2
  72. package/lib/esm/bpComponents/BPTreeComponent.js.map +1 -1
  73. package/lib/esm/bpComponents/BPValueComponent.d.ts +2 -2
  74. package/lib/esm/bpComponents/BPValueComponent.js +5 -4
  75. package/lib/esm/bpComponents/BPValueComponent.js.map +1 -1
  76. package/lib/esm/bpComponents/BPVectorInputComponent.d.ts +11 -5
  77. package/lib/esm/bpComponents/BPVectorInputComponent.js +47 -6
  78. package/lib/esm/bpComponents/BPVectorInputComponent.js.map +1 -1
  79. package/lib/esm/bpComponents/InputGroup2.d.ts +25 -0
  80. package/lib/esm/bpComponents/InputGroup2.js +93 -0
  81. package/lib/esm/bpComponents/InputGroup2.js.map +1 -0
  82. package/lib/esm/components/ConfigurationPanelComponent.js +1 -1
  83. package/lib/esm/components/ConfigurationPanelComponent.js.map +1 -1
  84. package/lib/esm/components/DialogContext.d.ts +10 -3
  85. package/lib/esm/components/DialogContext.js +14 -13
  86. package/lib/esm/components/DialogContext.js.map +1 -1
  87. package/lib/esm/components/DraggableIcon.d.ts +4 -3
  88. package/lib/esm/components/DraggableIcon.js +41 -39
  89. package/lib/esm/components/DraggableIcon.js.map +1 -1
  90. package/lib/esm/components/ExtendedNumericInput.js +1 -1
  91. package/lib/esm/components/ExtendedNumericInput.js.map +1 -1
  92. package/lib/esm/components/FileComponent.d.ts +13 -6
  93. package/lib/esm/components/FileComponent.js +15 -6
  94. package/lib/esm/components/FileComponent.js.map +1 -1
  95. package/lib/esm/components/FormGroupComponent.d.ts +3 -2
  96. package/lib/esm/components/FormGroupComponent.js +1 -6
  97. package/lib/esm/components/FormGroupComponent.js.map +1 -1
  98. package/lib/esm/components/InspectorStackComponent.d.ts +11 -2
  99. package/lib/esm/components/InspectorStackComponent.js +14 -4
  100. package/lib/esm/components/InspectorStackComponent.js.map +1 -1
  101. package/lib/esm/components/NumericInput.js +3 -2
  102. package/lib/esm/components/NumericInput.js.map +1 -1
  103. package/lib/esm/components/TreeNode2.d.ts +1 -1
  104. package/lib/esm/components/TreeNode2.js +4 -2
  105. package/lib/esm/components/TreeNode2.js.map +1 -1
  106. package/lib/esm/components/treeTypes.d.ts +2 -1
  107. package/lib/esm/lib.d.ts +2 -3
  108. package/lib/esm/lib.js +2 -3
  109. package/lib/esm/lib.js.map +1 -1
  110. package/lib/esm/renderer.css.js +1 -1
  111. package/lib/esm/utils/pointerLock.d.ts +44 -0
  112. package/lib/esm/utils/pointerLock.js +215 -0
  113. package/lib/esm/utils/pointerLock.js.map +1 -0
  114. package/lib/esm/utils.js +6 -1
  115. package/lib/esm/utils.js.map +1 -1
  116. package/package.json +10 -12
  117. package/src/ConfigObject.tsx +11 -5
  118. package/src/UiConfigRendererBlueprint.tsx +1 -1
  119. package/src/bpComponents/BPButtonComponent.tsx +1 -1
  120. package/src/bpComponents/BPColorInputComponent.tsx +13 -4
  121. package/src/bpComponents/BPComponent.tsx +4 -3
  122. package/src/bpComponents/BPContainerComponent.tsx +20 -3
  123. package/src/bpComponents/BPDropdownInputComponent.tsx +4 -3
  124. package/src/bpComponents/BPFileComponent.tsx +29 -20
  125. package/src/bpComponents/BPFolderComponent.scss +11 -6
  126. package/src/bpComponents/BPFolderComponent.tsx +122 -24
  127. package/src/bpComponents/BPInputComponent.tsx +1 -0
  128. package/src/bpComponents/BPPanelComponent.tsx +4 -4
  129. package/src/bpComponents/BPTextInputComponent.tsx +38 -5
  130. package/src/bpComponents/BPValueComponent.tsx +4 -4
  131. package/src/bpComponents/BPVectorInputComponent.tsx +80 -10
  132. package/src/bpComponents/InputGroup2.tsx +175 -0
  133. package/src/bpComponents/index.scss +0 -1
  134. package/src/components/ConfigurationPanelComponent.tsx +2 -2
  135. package/src/components/DialogContext.tsx +20 -12
  136. package/src/components/DraggableIcon.tsx +71 -49
  137. package/src/components/ExtendedNumericInput.tsx +2 -2
  138. package/src/components/FileComponent.tsx +37 -18
  139. package/src/components/FormGroupComponent.tsx +8 -4
  140. package/src/components/InspectorStackComponent.tsx +20 -7
  141. package/src/components/NumericInput.tsx +4 -5
  142. package/src/components/common.scss +1 -1
  143. package/src/lib.ts +2 -3
  144. package/src/renderer.scss +30 -8
  145. package/src/utils/PointerLockManager.md +334 -0
  146. package/src/utils/pointerLock.ts +264 -0
  147. package/src/utils.ts +8 -4
  148. package/dist/bpComponents/BPTreeComponent.d.ts +0 -46
  149. package/dist/bpComponents/BPTreeFolderComponent.d.ts +0 -10
  150. package/dist/components/Tree2.d.ts +0 -52
  151. package/dist/components/TreeNode2.d.ts +0 -43
  152. package/dist/components/treeTypes.d.ts +0 -18
  153. package/dist/index-BFBvfUPU.js +0 -671
  154. package/dist/index-BFBvfUPU.js.map +0 -1
  155. package/dist/index-CHQ1fP9-.js +0 -671
  156. package/dist/index-CHQ1fP9-.js.map +0 -1
  157. package/dist/index-Dbe8gLld.js +0 -13583
  158. package/dist/index-Dbe8gLld.js.map +0 -1
  159. package/src/bpComponents/BPTreeComponent.scss +0 -3
  160. package/src/bpComponents/BPTreeComponent.tsx +0 -244
  161. package/src/bpComponents/BPTreeFolderComponent.tsx +0 -31
  162. package/src/components/Tree2.tsx +0 -344
  163. package/src/components/TreeNode2.tsx +0 -192
  164. package/src/components/tree2.scss +0 -69
  165. package/src/components/treeTypes.ts +0 -97
@@ -1,192 +0,0 @@
1
- /*
2
- * Copyright 2015 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- *
16
- * Changes:
17
- * - Added support for drag and drop
18
- */
19
-
20
- import classNames from "classnames";
21
- import * as React from "react";
22
-
23
- import {CaretRight} from "@blueprintjs/icons";
24
-
25
- import type {TreeEventHandler, TreeNodeInfo} from "@blueprintjs/core";
26
- import {Classes, Collapse, DISPLAYNAME_PREFIX, Icon} from "@blueprintjs/core";
27
-
28
- // eslint-disable-next-line @typescript-eslint/ban-types
29
- export interface TreeNodeProps<T = {}> extends TreeNodeInfo<T> {
30
- children?: React.ReactNode;
31
- contentRef?: (node: TreeNodeInfo<T>, element: HTMLDivElement | null) => void;
32
- depth: number;
33
- key?: string | number;
34
- onClick?: TreeEventHandler<T>;
35
- onCollapse?: TreeEventHandler<T>;
36
- onContextMenu?: TreeEventHandler<T>;
37
- onDoubleClick?: TreeEventHandler<T>;
38
- onExpand?: TreeEventHandler<T>;
39
- onMouseEnter?: TreeEventHandler<T>;
40
- onMouseLeave?: TreeEventHandler<T>;
41
- path: number[];
42
- draggable?: boolean;
43
- onDragStart?: (node: TreeNodeInfo<T>, path: number[], e: React.DragEvent<HTMLElement>) => void;
44
- onDragOver?: (node: TreeNodeInfo<T>, path: number[], e: React.DragEvent<HTMLElement>) => void;
45
- onDrop?: (node: TreeNodeInfo<T>, path: number[], e: React.DragEvent<HTMLElement>) => void;
46
- onDragEnd?: (node: TreeNodeInfo<T>, path: number[], e: React.DragEvent<HTMLElement>) => void;
47
- onDragEnter?: (node: TreeNodeInfo<T>, path: number[], e: React.DragEvent<HTMLElement>) => void;
48
- onDragLeave?: (node: TreeNodeInfo<T>, path: number[], e: React.DragEvent<HTMLElement>) => void;
49
- }
50
-
51
- /**
52
- * Tree node component.
53
- *
54
- * @see https://blueprintjs.com/docs/#core/components/tree.tree-node
55
- */
56
- // eslint-disable-next-line @typescript-eslint/ban-types
57
- export class TreeNode2<T = {}> extends React.Component<TreeNodeProps<T>> {
58
- public static displayName = `${DISPLAYNAME_PREFIX}.TreeNode`;
59
-
60
- /** @deprecated no longer necessary now that the TypeScript parser supports type arguments on JSX element tags */
61
- public static ofType<U>() {
62
- return TreeNode2 as new (props: TreeNodeProps<U>) => TreeNode2<U>;
63
- }
64
-
65
- public render() {
66
- const { children, className, disabled, icon, isExpanded, isSelected, label, draggable } = this.props;
67
- const classes = classNames(
68
- Classes.TREE_NODE,
69
- {
70
- [Classes.DISABLED]: disabled,
71
- [Classes.TREE_NODE_SELECTED]: isSelected,
72
- [Classes.TREE_NODE_EXPANDED]: isExpanded,
73
- },
74
- className,
75
- );
76
-
77
- const contentClasses = classNames(
78
- Classes.TREE_NODE_CONTENT,
79
- `${Classes.TREE_NODE_CONTENT}-${this.props.depth}`,
80
- );
81
-
82
- const eventHandlers =
83
- disabled === true
84
- ? {}
85
- : {
86
- onClick: this.handleClick,
87
- onContextMenu: this.handleContextMenu,
88
- onDoubleClick: this.handleDoubleClick,
89
- onMouseEnter: this.handleMouseEnter,
90
- onMouseLeave: this.handleMouseLeave,
91
- draggable: draggable,
92
- onDragStart: this.handleDragStart,
93
- onDragOver: this.handleDragOver,
94
- onDrop: this.handleDrop,
95
- onDragEnd: this.handleDragEnd,
96
- onDragEnter: this.handleDragEnter,
97
- onDragLeave: this.handleDragLeave,
98
- };
99
-
100
- return (
101
- <li className={classes}>
102
- <div className={contentClasses} ref={this.handleContentRef} {...eventHandlers}>
103
- {this.maybeRenderCaret()}
104
- <Icon className={Classes.TREE_NODE_ICON} icon={icon} aria-hidden={true} tabIndex={-1} />
105
- <span className={Classes.TREE_NODE_LABEL}>{label}</span>
106
- {this.maybeRenderSecondaryLabel()}
107
- </div>
108
- <Collapse isOpen={isExpanded}>{children}</Collapse>
109
- </li>
110
- );
111
- }
112
-
113
- private maybeRenderCaret() {
114
- const { children, isExpanded, disabled, hasCaret = React.Children.count(children) > 0 } = this.props;
115
- if (hasCaret) {
116
- const caretClasses = classNames(
117
- Classes.TREE_NODE_CARET,
118
- isExpanded ? Classes.TREE_NODE_CARET_OPEN : Classes.TREE_NODE_CARET_CLOSED,
119
- );
120
- return (
121
- <CaretRight
122
- title={isExpanded ? "Collapse group" : "Expand group"}
123
- className={caretClasses}
124
- onClick={disabled === true ? undefined : this.handleCaretClick}
125
- />
126
- );
127
- }
128
- return <span className={Classes.TREE_NODE_CARET_NONE} />;
129
- }
130
-
131
- private maybeRenderSecondaryLabel() {
132
- if (this.props.secondaryLabel != null) {
133
- return <span className={Classes.TREE_NODE_SECONDARY_LABEL}>{this.props.secondaryLabel}</span>;
134
- } else {
135
- return undefined;
136
- }
137
- }
138
-
139
- private handleCaretClick = (e: React.MouseEvent<HTMLElement>) => {
140
- e.stopPropagation();
141
- const { isExpanded, onCollapse, onExpand } = this.props;
142
- (isExpanded ? onCollapse : onExpand)?.(this.props, this.props.path, e);
143
- };
144
-
145
- private handleClick = (e: React.MouseEvent<HTMLDivElement>) => {
146
- this.props.onClick?.(this.props, this.props.path, e);
147
- };
148
-
149
- private handleContentRef = (element: HTMLDivElement | null) => {
150
- this.props.contentRef?.(this.props, element);
151
- };
152
-
153
- private handleContextMenu = (e: React.MouseEvent<HTMLDivElement>) => {
154
- this.props.onContextMenu?.(this.props, this.props.path, e);
155
- };
156
-
157
- private handleDoubleClick = (e: React.MouseEvent<HTMLDivElement>) => {
158
- this.props.onDoubleClick?.(this.props, this.props.path, e);
159
- };
160
-
161
- private handleMouseEnter = (e: React.MouseEvent<HTMLDivElement>) => {
162
- this.props.onMouseEnter?.(this.props, this.props.path, e);
163
- };
164
-
165
- private handleMouseLeave = (e: React.MouseEvent<HTMLDivElement>) => {
166
- this.props.onMouseLeave?.(this.props, this.props.path, e);
167
- };
168
-
169
- private handleDragStart = (e: React.DragEvent<HTMLDivElement>) => {
170
- this.props.onDragStart?.(this.props, this.props.path, e);
171
- };
172
-
173
- private handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {
174
- this.props.onDragOver?.(this.props, this.props.path, e);
175
- };
176
-
177
- private handleDrop = (e: React.DragEvent<HTMLDivElement>) => {
178
- this.props.onDrop?.(this.props, this.props.path, e);
179
- };
180
-
181
- private handleDragEnd = (e: React.DragEvent<HTMLDivElement>) => {
182
- this.props.onDragEnd?.(this.props, this.props.path, e);
183
- };
184
-
185
- private handleDragEnter = (e: React.DragEvent<HTMLDivElement>) => {
186
- this.props.onDragEnter?.(this.props, this.props.path, e);
187
- };
188
-
189
- private handleDragLeave = (e: React.DragEvent<HTMLDivElement>) => {
190
- this.props.onDragLeave?.(this.props, this.props.path, e);
191
- };
192
- }
@@ -1,69 +0,0 @@
1
-
2
- // blueprint tree drag and drop styles
3
-
4
- //.bp5-tree-node-dragging{
5
- // opacity: 0.5;
6
- // background-color: green !important;
7
- // box-shadow: none;
8
- //}
9
- //.bp5-tree-node-dragover{
10
- // opacity: 0.5;
11
- // background-color: red;
12
- // box-shadow: none;
13
- //}
14
- .bp5-tree-node-dragover{
15
- //opacity: 0.5;
16
- //background-color: red;
17
- //box-shadow: none;
18
- outline: var(--pt-intent-primary) solid 2px;
19
- outline-offset: -2px;
20
- }
21
-
22
- .bp5-tree-drop-spacer {
23
- width: 100%;
24
- height: 0;
25
- overflow: visible;
26
- font-size: 0;
27
- background: none;
28
- pointer-events: none;
29
- position: relative;
30
-
31
- div{
32
- width: 100%;
33
- min-height: 10px;
34
- background: transparent;
35
- position: absolute;
36
- transform: translateY(-50%);
37
- z-index: 100;
38
- }
39
- .bp5-tree-dragging-node &{
40
- pointer-events: auto;
41
- }
42
- }
43
-
44
- .bp5-tree-node-content{
45
- transition: background-color 0.2s ease-in-out;
46
- }
47
-
48
- @for $i from 1 through 10 {
49
- .bp5-tree-node-content-#{$i} {
50
- padding-left: calc(10px * $i);
51
- }
52
- }
53
-
54
- .bp5-tree-node-caret{
55
- padding: 7px 5px;
56
- }
57
-
58
- .bp5-tree-node-content:has(.bp5-icon) {
59
- .bp5-tree-node-caret, .bp5-tree-node-caret-none {
60
- min-width: 0px;
61
- }
62
-
63
- // because bp5-tree-node-icon is not applied on this icon
64
- .bp5-icon:has(.bp5-tree-node-icon-svg), .bp5-tree-node-icon{
65
- margin-right: 0px;
66
- padding: 0 5px;
67
- position: relative;
68
- }
69
- }
@@ -1,97 +0,0 @@
1
- /*
2
- * Copyright 2021 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import type {IconName, MaybeElement} from "@blueprintjs/core";
18
-
19
- // eslint-disable-next-line @typescript-eslint/ban-types
20
- export interface TreeNodeInfo<T = {}> {
21
- /**
22
- * A space-delimited list of class names for this tree node element.
23
- */
24
- className?: string;
25
-
26
- /**
27
- * Child tree nodes of this node.
28
- */
29
- childNodes?: Array<TreeNodeInfo<T>>;
30
-
31
- /**
32
- * Whether this tree node is non-interactive. Enabling this prop will ignore
33
- * mouse event handlers (in particular click, down, enter, leave).
34
- */
35
- disabled?: boolean;
36
-
37
- /**
38
- * Whether the caret to expand/collapse a node should be shown.
39
- * If not specified, this will be true if the node has children and false otherwise.
40
- */
41
- hasCaret?: boolean;
42
-
43
- /**
44
- * The name of a Blueprint icon (or an icon element) to render next to the node's label.
45
- */
46
- icon?: IconName | MaybeElement;
47
-
48
- /**
49
- * A unique identifier for the node.
50
- */
51
- id: string | number;
52
-
53
- /**
54
- */
55
- isExpanded?: boolean;
56
-
57
- /**
58
- * Whether this node is selected.
59
- *
60
- * @default false
61
- */
62
- isSelected?: boolean;
63
-
64
- /**
65
- * The main label for the node.
66
- */
67
- label: string | React.JSX.Element;
68
-
69
- /**
70
- * A secondary label/component that is displayed at the right side of the node.
71
- */
72
- secondaryLabel?: string | MaybeElement;
73
-
74
- /**
75
- * An optional custom user object to associate with the node.
76
- * This property can then be used in the `onClick`, `onContextMenu` and `onDoubleClick`
77
- * event handlers for doing custom logic per node.
78
- */
79
- nodeData?: T;
80
-
81
- /**
82
- * Whether this node can be dragged. If false, drag events will not be enabled for this node.
83
- */
84
- draggable?: boolean;
85
-
86
- /**
87
- * Whether this node can be a drop target. If false, drop events will not be enabled for this node.
88
- */
89
- droppable?: boolean;
90
- }
91
-
92
- // eslint-disable-next-line @typescript-eslint/ban-types
93
- export type TreeEventHandler<T = {}> = (
94
- node: TreeNodeInfo<T>,
95
- nodePath: number[],
96
- e: React.MouseEvent<HTMLElement>,
97
- ) => void;