@itwin/presentation-hierarchies-react 2.0.0-alpha.61 → 2.0.0-alpha.63
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/CHANGELOG.md +96 -0
- package/README.md +62 -53
- package/lib/presentation-hierarchies-react/UseTree.js +1 -2
- package/lib/presentation-hierarchies-react/UseTree.js.map +1 -1
- package/lib/presentation-hierarchies-react/Utils.js.map +1 -1
- package/lib/presentation-hierarchies-react/internal/TreeActions.js +2 -7
- package/lib/presentation-hierarchies-react/internal/TreeActions.js.map +1 -1
- package/lib/presentation-hierarchies-react/internal/TreeLoader.js.map +1 -1
- package/lib/presentation-hierarchies-react/internal/TreeModel.js +0 -2
- package/lib/presentation-hierarchies-react/internal/TreeModel.js.map +1 -1
- package/lib/presentation-hierarchies-react/internal/UseUnifiedSelection.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js +133 -132
- package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.js +5 -4
- package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeAction.d.ts +4 -2
- package/lib/presentation-hierarchies-react/stratakit/TreeAction.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeAction.js +37 -13
- package/lib/presentation-hierarchies-react/stratakit/TreeAction.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.d.ts +1 -0
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js +152 -140
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js.map +1 -1
- package/package.json +43 -59
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeAction.js","names":["memo","
|
|
1
|
+
{"version":3,"file":"TreeAction.js","names":["memo","ListItemIcon","MenuItem","Typography","Icon","Tree","ComponentPropsWithoutRef","NamedExoticComponent","TreeActionBaseAttributes","variant","hide","TreeActionBaseProps","Omit","ItemAction","onClick","TreeActionBase","t0","$","_c","actionProps","dot","t1","visible","undefined","t2","label","icon","t3","t4"],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeAction.tsx"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { memo } from \"react\";\nimport { ListItemIcon, MenuItem, Typography } from \"@mui/material\";\nimport { Icon } from \"@stratakit/mui\";\nimport { Tree } from \"@stratakit/structures\";\n\nimport type { ComponentPropsWithoutRef, NamedExoticComponent } from \"react\";\n\n/**\n * Attributes used to decide how to render tree actions. They allow to differentiate action style based on the context\n * where that action is used.\n * @alpha\n */\nexport interface TreeActionBaseAttributes {\n /**\n * Specifies action variant supported by tree nodes:\n *\n * - \"default\" - standard action displayed in the dropdown menu accessible through the ellipsis button on the node.\n * - \"inline\" - actions displayed directly on the tree node.\n * - \"context-menu\" - actions displayed in the context menu opened by right-clicking the tree node.\n */\n variant?: \"default\" | \"inline\" | \"context-menu\";\n /**\n * Indicates that the actions is not applicable for current tree node and should be hidden.\n * When set to true, the action will not be rendered at all.\n */\n hide?: boolean;\n}\n\n/** @alpha */\nexport type TreeActionBaseProps = Omit<ComponentPropsWithoutRef<typeof Tree.ItemAction>, \"onClick\"> &\n TreeActionBaseAttributes & {\n /** Callback invoked when the action is clicked. */\n onClick: () => void;\n };\n\n/**\n * Base component used to render tree actions. It is designed to allow rendering same action in different contexts: inline, dropdown, context menu.\n * Should be used together with `StrataKitTreeNodeRenderer` and returned from `getInlineActions`, `getMenuActions` and `getContextMenuActions` callbacks.\n *\n * When implementing custom action that returns this component, make sure to forward `TreeActionBaseAttributes` props to it. Example:\n *\n * ```tsx\n * interface MyCustomTreeActionProps extends TreeActionBaseAttributes {\n * myProp: string\n * }\n *\n * function MyCustomTreeAction({ myProp, ...attributes }: MyCustomTreeActionProps) {\n * // custom button logic goes here\n * return <TreeActionBase {...attributes} icon={...} onClick={...} />\n * }\n * ```\n *\n * @alpha\n */\nexport const TreeActionBase: NamedExoticComponent<TreeActionBaseProps> = memo(function TreeActionBase({\n hide,\n variant = \"default\",\n dot,\n visible,\n ...actionProps\n}: TreeActionBaseProps) {\n if (hide) {\n return variant === \"inline\" ? <Tree.ItemAction {...actionProps} visible={false} /> : undefined;\n }\n\n if (variant === \"context-menu\") {\n const { label, icon, onClick } = actionProps;\n return (\n <MenuItem dense onClick={onClick}>\n {icon ? <ListItemIcon>{typeof icon === \"string\" ? <Icon href={icon} /> : icon}</ListItemIcon> : null}\n <Typography variant=\"caption\">{label}</Typography>\n </MenuItem>\n );\n }\n\n return <Tree.ItemAction {...actionProps} dot={dot} visible={variant === \"inline\" ? visible : undefined} />;\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,MAAae,iBAA4Df,KAAK,SAAAe,eAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAV;CAAA,IAAAW;CAAA,IAAAC;AAAA,KAAAL,EAAA,OAAAD,IAAA;AAAwB,GAAA,CAAAN,MAAAD,SAAAY,IAAAD,KAAAE,YAAAH,eAAAH;AAMhFC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAG;AAAAH,IAAA,KAAAP;AAAAO,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;QAAA;AAAAH,gBAAAF,EAAA;AAAAG,QAAAH,EAAA;AAAAP,SAAAO,EAAA;AAAAI,OAAAJ,EAAA;AAAAK,YAAAL,EAAA;;CAJpB,MAAAR,UAAAY,OAAAE,KAAAA,IAAA,YAAAF;AAKA,KAAIX,MAAI;EAAA,IAAAc;AAAA,MAAAP,EAAA,OAAAE,eAAAF,EAAA,OAAAR,SAAA;AACCe,QAAAf,YAAY,WAAW,oBAAA,KAAA,YAAA;IAAA,GAAqBU;IAAsB,SAAA;IAAqB,CAAA,GAAvFI,KAAAA;AAAuFN,KAAA,KAAAE;AAAAF,KAAA,KAAAR;AAAAQ,KAAA,KAAAO;QAAAA,MAAAP,EAAA;AAAA,SAAvFO;;AAGT,KAAIf,YAAY,gBAAc;EAC5B,MAAA,EAAAgB,OAAAC,MAAAZ,YAAiCK;EAAY,IAAAK;AAAA,MAAAP,EAAA,OAAAS,MAAA;AAGxCF,QAAAE,OAAO,oBAAC,cAAD,EAAA,UAAe,OAAOA,SAAS,WAAW,oBAAC,MAAD,EAAYA,MAAAA,MAAe,CAAA,GAAtDA,MAA6E,CAAA,GAAnG;AAAmGT,KAAA,KAAAS;AAAAT,KAAA,MAAAO;QAAAA,MAAAP,EAAA;EAAA,IAAAU;AAAA,MAAAV,EAAA,QAAAQ,OAAA;AACpGE,QAAA,oBAAC,YAAD;IAAoB,SAAA;cAAWF;IAAmB,CAAA;AAAAR,KAAA,MAAAQ;AAAAR,KAAA,MAAAU;QAAAA,MAAAV,EAAA;EAAA,IAAAW;AAAA,MAAAX,EAAA,QAAAH,WAAAG,EAAA,QAAAO,MAAAP,EAAA,QAAAU,IAAA;AAFpDC,QAAA,qBAAC,UAAD;IAAU,OAAA;IAAed;cAAzB,CACGU,IACDG,GACS;;AAAAV,KAAA,MAAAH;AAAAG,KAAA,MAAAO;AAAAP,KAAA,MAAAU;AAAAV,KAAA,MAAAW;QAAAA,MAAAX,EAAA;AAAA,SAHXW;;CAOwD,MAAAJ,KAAAf,YAAY,WAAZa,UAAAC,KAAAA;CAA0C,IAAAI;AAAA,KAAAV,EAAA,QAAAE,eAAAF,EAAA,QAAAG,OAAAH,EAAA,QAAAO,IAAA;AAA/FG,OAAA,oBAAA,KAAA,YAAA;GAAA,GAAqBR;GAAkBC;GAAc,SAAAI;GAA8C,CAAA;AAAAP,IAAA,MAAAE;AAAAF,IAAA,MAAAG;AAAAH,IAAA,MAAAO;AAAAP,IAAA,MAAAU;OAAAA,MAAAV,EAAA;AAAA,QAAnGU;EACP"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TreeNode } from "../TreeNode.js";
|
|
2
2
|
import { TreeActionBaseAttributes } from "./TreeAction.js";
|
|
3
3
|
import { NamedExoticComponent, PropsWithChildren } from "react";
|
|
4
|
+
|
|
4
5
|
//#region src/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.d.ts
|
|
5
6
|
/**
|
|
6
7
|
* React component that renders a rename action for a tree item.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNodeRenameAction.d.ts","names":[],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.tsx"],"mappings":";;;;;;;AA0BA
|
|
1
|
+
{"version":3,"file":"TreeNodeRenameAction.d.ts","names":[],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeNodeRenameAction.tsx"],"mappings":";;;;;;;AA0BA;;;;;;;;;cAAa,oBAAA,EAAsB,oBAAA,CAAqB,wBAAA;EAA6B,IAAA,EAAM,QAAA;AAAA;;UAmB1E,oBAAA;EAAA;;;;EAKf,cAAA,GAAiB,QAAA;EACjB,mBAAA;EACA,QAAA,IAAY,QAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNodeRenderer.d.ts","names":[],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeNodeRenderer.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"TreeNodeRenderer.d.ts","names":[],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeNodeRenderer.tsx"],"mappings":";;;;KA0DY,sBAAA,GAAyB,IAAA,CACnC,wBAAA,QAAgC,IAAA,CAAK,IAAA;;;;;EAOrC,WAAA,GAAc,SAAA;AAAA"}
|
|
@@ -4,8 +4,9 @@ import { useTreeNodeRenameContext } from "./TreeNodeRenameAction.js";
|
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
5
5
|
import { cloneElement, forwardRef, isValidElement, memo, useEffect, useId, useRef, useState } from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { CircularProgress, FormHelperText, IconButton, Menu, TextField, Typography } from "@mui/material";
|
|
8
|
+
import { Icon } from "@stratakit/mui";
|
|
9
|
+
import { Tree, unstable_Popover } from "@stratakit/structures";
|
|
9
10
|
import "./TreeNodeRenderer.css";
|
|
10
11
|
import checkmarkSvg from "@stratakit/icons/checkmark.svg";
|
|
11
12
|
import dismissSvg from "@stratakit/icons/dismiss.svg";
|
|
@@ -17,7 +18,7 @@ import refreshSvg from "@stratakit/icons/refresh.svg";
|
|
|
17
18
|
* @internal
|
|
18
19
|
*/
|
|
19
20
|
const StrataKitTreeNodeRenderer = memo(forwardRef(function HierarchyNode(props, forwardedRef) {
|
|
20
|
-
const $ = c(
|
|
21
|
+
const $ = c(66);
|
|
21
22
|
let contextMenuActions;
|
|
22
23
|
let decorations;
|
|
23
24
|
let expandNode;
|
|
@@ -228,60 +229,68 @@ const StrataKitTreeNodeRenderer = memo(forwardRef(function HierarchyNode(props,
|
|
|
228
229
|
$[49] = t8;
|
|
229
230
|
$[50] = t14;
|
|
230
231
|
} else t14 = $[50];
|
|
231
|
-
const t15 = contextMenuProps
|
|
232
|
+
const t15 = !!contextMenuProps;
|
|
232
233
|
let t16;
|
|
234
|
+
let t17;
|
|
233
235
|
if ($[51] === Symbol.for("react.memo_cache_sentinel")) {
|
|
234
|
-
t16 = (
|
|
235
|
-
|
|
236
|
+
t16 = () => setContextMenuProps(void 0);
|
|
237
|
+
t17 = (e_2) => {
|
|
238
|
+
e_2.preventDefault();
|
|
239
|
+
setContextMenuProps(void 0);
|
|
236
240
|
};
|
|
237
241
|
$[51] = t16;
|
|
238
|
-
|
|
239
|
-
|
|
242
|
+
$[52] = t17;
|
|
243
|
+
} else {
|
|
244
|
+
t16 = $[51];
|
|
245
|
+
t17 = $[52];
|
|
246
|
+
}
|
|
240
247
|
let t18;
|
|
241
|
-
if ($[
|
|
242
|
-
t18 = contextMenuProps ?
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
248
|
+
if ($[53] !== contextMenuProps) {
|
|
249
|
+
t18 = contextMenuProps ? {
|
|
250
|
+
top: contextMenuProps.position.y,
|
|
251
|
+
left: contextMenuProps.position.x
|
|
252
|
+
} : void 0;
|
|
253
|
+
$[53] = contextMenuProps;
|
|
254
|
+
$[54] = t18;
|
|
255
|
+
} else t18 = $[54];
|
|
256
|
+
let t19;
|
|
257
|
+
if ($[55] !== translate) {
|
|
258
|
+
t19 = translate("more");
|
|
259
|
+
$[55] = translate;
|
|
260
|
+
$[56] = t19;
|
|
261
|
+
} else t19 = $[56];
|
|
254
262
|
let t20;
|
|
255
|
-
if ($[
|
|
256
|
-
t20 =
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
});
|
|
261
|
-
$[54] = t19;
|
|
262
|
-
$[55] = t20;
|
|
263
|
-
} else t20 = $[55];
|
|
264
|
-
let t21;
|
|
265
|
-
if ($[56] !== t15 || $[57] !== t17 || $[58] !== t18 || $[59] !== t20) {
|
|
266
|
-
t21 = /* @__PURE__ */ jsxs(DropdownMenu.Provider, {
|
|
267
|
-
open: t15,
|
|
268
|
-
setOpen: t16,
|
|
269
|
-
children: [t18, t20]
|
|
270
|
-
}, t17);
|
|
271
|
-
$[56] = t15;
|
|
272
|
-
$[57] = t17;
|
|
273
|
-
$[58] = t18;
|
|
274
|
-
$[59] = t20;
|
|
275
|
-
$[60] = t21;
|
|
276
|
-
} else t21 = $[60];
|
|
263
|
+
if ($[57] === Symbol.for("react.memo_cache_sentinel")) {
|
|
264
|
+
t20 = () => setContextMenuProps(void 0);
|
|
265
|
+
$[57] = t20;
|
|
266
|
+
} else t20 = $[57];
|
|
267
|
+
const t21 = contextMenuProps?.actions;
|
|
277
268
|
let t22;
|
|
278
|
-
if ($[
|
|
279
|
-
t22 = /* @__PURE__ */
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
269
|
+
if ($[58] !== t15 || $[59] !== t18 || $[60] !== t19 || $[61] !== t21) {
|
|
270
|
+
t22 = /* @__PURE__ */ jsx(Menu, {
|
|
271
|
+
open: t15,
|
|
272
|
+
onClose: t16,
|
|
273
|
+
onContextMenu: t17,
|
|
274
|
+
anchorReference: "anchorPosition",
|
|
275
|
+
anchorPosition: t18,
|
|
276
|
+
"aria-label": t19,
|
|
277
|
+
onClick: t20,
|
|
278
|
+
children: t21
|
|
279
|
+
});
|
|
280
|
+
$[58] = t15;
|
|
281
|
+
$[59] = t18;
|
|
282
|
+
$[60] = t19;
|
|
283
|
+
$[61] = t21;
|
|
284
|
+
$[62] = t22;
|
|
285
|
+
} else t22 = $[62];
|
|
286
|
+
let t23;
|
|
287
|
+
if ($[63] !== t14 || $[64] !== t22) {
|
|
288
|
+
t23 = /* @__PURE__ */ jsxs(Fragment, { children: [t14, t22] });
|
|
289
|
+
$[63] = t14;
|
|
290
|
+
$[64] = t22;
|
|
291
|
+
$[65] = t23;
|
|
292
|
+
} else t23 = $[65];
|
|
293
|
+
return t23;
|
|
285
294
|
}));
|
|
286
295
|
const PlaceholderNode = memo(forwardRef(function PlaceholderNode(t0, forwardedRef) {
|
|
287
296
|
const $ = c(13);
|
|
@@ -306,8 +315,8 @@ const PlaceholderNode = memo(forwardRef(function PlaceholderNode(t0, forwardedRe
|
|
|
306
315
|
} else t2 = $[5];
|
|
307
316
|
let t3;
|
|
308
317
|
if ($[6] !== t2) {
|
|
309
|
-
t3 = /* @__PURE__ */ jsx(
|
|
310
|
-
size:
|
|
318
|
+
t3 = /* @__PURE__ */ jsx(CircularProgress, {
|
|
319
|
+
size: 16,
|
|
311
320
|
title: t2
|
|
312
321
|
});
|
|
313
322
|
$[6] = t2;
|
|
@@ -388,127 +397,130 @@ function LabelEditor(t0) {
|
|
|
388
397
|
const canRename = newLabelValue && newLabelValue !== initialLabel && !hasError;
|
|
389
398
|
const inputId = useId();
|
|
390
399
|
let t5;
|
|
391
|
-
if ($[11]
|
|
392
|
-
t5 =
|
|
393
|
-
$[11] =
|
|
394
|
-
|
|
395
|
-
|
|
400
|
+
if ($[11] !== translate) {
|
|
401
|
+
t5 = translate("newLabel");
|
|
402
|
+
$[11] = translate;
|
|
403
|
+
$[12] = t5;
|
|
404
|
+
} else t5 = $[12];
|
|
405
|
+
let t6;
|
|
406
|
+
if ($[13] !== t5) {
|
|
407
|
+
t6 = { htmlInput: { "aria-label": t5 } };
|
|
408
|
+
$[13] = t5;
|
|
409
|
+
$[14] = t6;
|
|
410
|
+
} else t6 = $[14];
|
|
396
411
|
let t7;
|
|
397
|
-
if ($[
|
|
398
|
-
t7 =
|
|
399
|
-
$[12] = translate;
|
|
400
|
-
$[13] = t7;
|
|
401
|
-
} else t7 = $[13];
|
|
402
|
-
let t8;
|
|
403
|
-
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
404
|
-
t8 = (event) => {
|
|
412
|
+
if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
|
|
413
|
+
t7 = (event) => {
|
|
405
414
|
setNewLabelValue(event.target.value);
|
|
406
415
|
setHasError(false);
|
|
407
416
|
};
|
|
408
|
-
$[
|
|
409
|
-
} else
|
|
410
|
-
let
|
|
411
|
-
if ($[
|
|
412
|
-
|
|
417
|
+
$[15] = t7;
|
|
418
|
+
} else t7 = $[15];
|
|
419
|
+
let t8;
|
|
420
|
+
if ($[16] !== cancelLabelChange || $[17] !== handleLabelChange) {
|
|
421
|
+
t8 = (event_0) => {
|
|
413
422
|
if (event_0.key === "Enter") handleLabelChange();
|
|
414
423
|
else if (event_0.key === "Escape") cancelLabelChange();
|
|
415
424
|
};
|
|
416
|
-
$[
|
|
417
|
-
$[
|
|
418
|
-
$[
|
|
419
|
-
} else
|
|
420
|
-
let
|
|
421
|
-
if ($[
|
|
422
|
-
|
|
425
|
+
$[16] = cancelLabelChange;
|
|
426
|
+
$[17] = handleLabelChange;
|
|
427
|
+
$[18] = t8;
|
|
428
|
+
} else t8 = $[18];
|
|
429
|
+
let t9;
|
|
430
|
+
if ($[19] !== hasError || $[20] !== inputId || $[21] !== newLabelValue || $[22] !== t6 || $[23] !== t8) {
|
|
431
|
+
t9 = /* @__PURE__ */ jsx(TextField, {
|
|
432
|
+
fullWidth: true,
|
|
433
|
+
error: hasError,
|
|
434
|
+
size: "small",
|
|
423
435
|
id: inputId,
|
|
424
|
-
|
|
425
|
-
|
|
436
|
+
inputRef,
|
|
437
|
+
slotProps: t6,
|
|
426
438
|
value: newLabelValue,
|
|
427
|
-
onChange:
|
|
428
|
-
onKeyUp:
|
|
439
|
+
onChange: t7,
|
|
440
|
+
onKeyUp: t8
|
|
429
441
|
});
|
|
430
|
-
$[
|
|
431
|
-
$[
|
|
432
|
-
$[
|
|
433
|
-
$[
|
|
434
|
-
$[
|
|
435
|
-
|
|
442
|
+
$[19] = hasError;
|
|
443
|
+
$[20] = inputId;
|
|
444
|
+
$[21] = newLabelValue;
|
|
445
|
+
$[22] = t6;
|
|
446
|
+
$[23] = t8;
|
|
447
|
+
$[24] = t9;
|
|
448
|
+
} else t9 = $[24];
|
|
449
|
+
let t10;
|
|
450
|
+
if ($[25] !== translate) {
|
|
451
|
+
t10 = translate("cancel");
|
|
452
|
+
$[25] = translate;
|
|
453
|
+
$[26] = t10;
|
|
454
|
+
} else t10 = $[26];
|
|
436
455
|
let t11;
|
|
437
|
-
if ($[
|
|
438
|
-
t11 = /* @__PURE__ */ jsx(
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
children: t10
|
|
442
|
-
});
|
|
443
|
-
$[23] = t10;
|
|
444
|
-
$[24] = t6;
|
|
445
|
-
$[25] = t11;
|
|
446
|
-
} else t11 = $[25];
|
|
456
|
+
if ($[27] === Symbol.for("react.memo_cache_sentinel")) {
|
|
457
|
+
t11 = /* @__PURE__ */ jsx(Icon, { href: dismissSvg });
|
|
458
|
+
$[27] = t11;
|
|
459
|
+
} else t11 = $[27];
|
|
447
460
|
let t12;
|
|
448
|
-
if ($[
|
|
449
|
-
t12 =
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
if ($[28] !== cancelLabelChange || $[29] !== t12) {
|
|
455
|
-
t13 = /* @__PURE__ */ jsx(IconButton, {
|
|
456
|
-
icon: dismissSvg,
|
|
457
|
-
label: t12,
|
|
458
|
-
onClick: cancelLabelChange
|
|
461
|
+
if ($[28] !== cancelLabelChange || $[29] !== t10) {
|
|
462
|
+
t12 = /* @__PURE__ */ jsx(IconButton, {
|
|
463
|
+
"aria-label": t10,
|
|
464
|
+
onClick: cancelLabelChange,
|
|
465
|
+
size: "small",
|
|
466
|
+
children: t11
|
|
459
467
|
});
|
|
460
468
|
$[28] = cancelLabelChange;
|
|
461
|
-
$[29] =
|
|
462
|
-
$[30] =
|
|
463
|
-
} else
|
|
464
|
-
let
|
|
469
|
+
$[29] = t10;
|
|
470
|
+
$[30] = t12;
|
|
471
|
+
} else t12 = $[30];
|
|
472
|
+
let t13;
|
|
465
473
|
if ($[31] !== translate) {
|
|
466
|
-
|
|
474
|
+
t13 = translate("confirm");
|
|
467
475
|
$[31] = translate;
|
|
468
|
-
$[32] =
|
|
469
|
-
} else
|
|
470
|
-
const
|
|
476
|
+
$[32] = t13;
|
|
477
|
+
} else t13 = $[32];
|
|
478
|
+
const t14 = !canRename;
|
|
479
|
+
let t15;
|
|
480
|
+
if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
|
|
481
|
+
t15 = /* @__PURE__ */ jsx(Icon, { href: checkmarkSvg });
|
|
482
|
+
$[33] = t15;
|
|
483
|
+
} else t15 = $[33];
|
|
471
484
|
let t16;
|
|
472
|
-
if ($[
|
|
485
|
+
if ($[34] !== handleLabelChange || $[35] !== t13 || $[36] !== t14) {
|
|
473
486
|
t16 = /* @__PURE__ */ jsx(IconButton, {
|
|
474
|
-
|
|
475
|
-
label: t14,
|
|
487
|
+
"aria-label": t13,
|
|
476
488
|
onClick: handleLabelChange,
|
|
477
|
-
disabled:
|
|
489
|
+
disabled: t14,
|
|
490
|
+
size: "small",
|
|
491
|
+
children: t15
|
|
478
492
|
});
|
|
479
|
-
$[
|
|
480
|
-
$[
|
|
481
|
-
$[
|
|
482
|
-
$[
|
|
483
|
-
} else t16 = $[
|
|
493
|
+
$[34] = handleLabelChange;
|
|
494
|
+
$[35] = t13;
|
|
495
|
+
$[36] = t14;
|
|
496
|
+
$[37] = t16;
|
|
497
|
+
} else t16 = $[37];
|
|
484
498
|
let t17;
|
|
485
|
-
if ($[
|
|
499
|
+
if ($[38] !== t12 || $[39] !== t16 || $[40] !== t9) {
|
|
486
500
|
t17 = /* @__PURE__ */ jsxs("div", {
|
|
487
501
|
className: "phr-node-label-editor-input-row",
|
|
488
502
|
children: [
|
|
489
|
-
|
|
490
|
-
|
|
503
|
+
t9,
|
|
504
|
+
t12,
|
|
491
505
|
t16
|
|
492
506
|
]
|
|
493
507
|
});
|
|
494
|
-
$[
|
|
495
|
-
$[38] = t13;
|
|
508
|
+
$[38] = t12;
|
|
496
509
|
$[39] = t16;
|
|
497
|
-
$[40] =
|
|
498
|
-
|
|
510
|
+
$[40] = t9;
|
|
511
|
+
$[41] = t17;
|
|
512
|
+
} else t17 = $[41];
|
|
499
513
|
let t18;
|
|
500
|
-
if ($[
|
|
501
|
-
t18 = labelValidationHint !== void 0 ? /* @__PURE__ */ jsx(
|
|
502
|
-
|
|
503
|
-
tone: hasError ? "critical" : "neutral",
|
|
514
|
+
if ($[42] !== hasError || $[43] !== labelValidationHint) {
|
|
515
|
+
t18 = labelValidationHint !== void 0 ? /* @__PURE__ */ jsx(FormHelperText, {
|
|
516
|
+
error: hasError,
|
|
504
517
|
style: { display: "flex" },
|
|
505
|
-
children: /* @__PURE__ */ jsx(
|
|
506
|
-
variant: "caption
|
|
518
|
+
children: /* @__PURE__ */ jsx(Typography, {
|
|
519
|
+
variant: "caption",
|
|
507
520
|
children: labelValidationHint
|
|
508
521
|
})
|
|
509
522
|
}) : void 0;
|
|
510
|
-
$[
|
|
511
|
-
$[42] = inputId;
|
|
523
|
+
$[42] = hasError;
|
|
512
524
|
$[43] = labelValidationHint;
|
|
513
525
|
$[44] = t18;
|
|
514
526
|
} else t18 = $[44];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNodeRenderer.js","names":["cloneElement","forwardRef","isValidElement","memo","useCallback","useEffect","useId","useMemo","useRef","useState","Description","IconButton","Spinner","Text","TextBox","DropdownMenu","unstable_Popover","Popover","Tree","useTranslation","TreeActionBase","useTreeNodeRenameContext","checkmarkSvg","dismissSvg","refreshSvg","ComponentPropsWithoutRef","FC","PropsWithRef","ReactNode","RefAttributes","TreeRendererProps","TreeNode","TreeActionBaseAttributes","TreeNodeRendererOwnProps","Pick","node","menuActions","inlineActions","contextMenuActions","StrataKitTreeItemProps","Omit","Item","decorations","TreeNodeRendererProps","StrataKitTreeNodeRenderer","HTMLElement","HierarchyNode","props","forwardedRef","$","_c","expandNode","reloadTree","treeItemProps","translate","renameContext","contextMenuProps","setContextMenuProps","undefined","label","t0","bb0","errors","some","_temp","t1","t2","id","parentNodeId","state","t3","injectActionVariant","inlineActionItems","bb1","menuActionItems","bb2","_temp2","children","length","isExpanded","expanded","renameParameters","cancelRename","t4","commit","t5","labelValidationHint","t6","validate","t7","labelEditor","t8","nodeId","t9","t10","t11","t12","e_1","onContextMenu","e","preventDefault","actions","position","x","clientX","y","clientY","t13","t14","t15","t16","Symbol","for","open","t17","t18","top","left","t19","t20","t21","t22","PlaceholderNode","LabelEditor","initialLabel","onChange","onCancel","inputRef","newLabelValue","setNewLabelValue","hasError","setHasError","handleLabelChange","cancelLabelChange","current","focus","select","canRename","inputId","width","event","target","value","event_0","key","display","variant","filter","action","map","type","e_0","isNodeExpandable"],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeNodeRenderer.tsx"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport \"./TreeNodeRenderer.css\";\n\nimport {\n cloneElement,\n forwardRef,\n isValidElement,\n memo,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Description, IconButton, Spinner, Text, TextBox } from \"@stratakit/bricks\";\nimport { DropdownMenu, unstable_Popover as Popover, Tree } from \"@stratakit/structures\";\nimport { useTranslation } from \"../LocalizationContext.js\";\nimport { TreeActionBase } from \"./TreeAction.js\";\nimport { useTreeNodeRenameContext } from \"./TreeNodeRenameAction.js\";\n\nimport checkmarkSvg from \"@stratakit/icons/checkmark.svg\";\nimport dismissSvg from \"@stratakit/icons/dismiss.svg\";\nimport refreshSvg from \"@stratakit/icons/refresh.svg\";\n\nimport type { ComponentPropsWithoutRef, FC, PropsWithRef, ReactNode, RefAttributes } from \"react\";\nimport type { TreeRendererProps } from \"../Renderers.js\";\nimport type { TreeNode } from \"../TreeNode.js\";\nimport type { TreeActionBaseAttributes } from \"./TreeAction.js\";\n\n/** @internal */\ninterface TreeNodeRendererOwnProps extends Pick<TreeRendererProps, \"expandNode\" | \"reloadTree\"> {\n /** Node that is rendered. */\n node: TreeNode;\n /**\n * Menu actions for tree item.\n * Must be an array of `<TreeActionBase />` or `<Divider />` elements.\n */\n menuActions?: ReactNode[];\n /**\n * Inline actions for tree item.\n * Must be an array of `<TreeActionBase />` elements.\n * Max 2 items.\n */\n inlineActions?: ReactNode[];\n /**\n * Context menu actions for tree item.\n * Must be an array of `<TreeActionBase />` or `<Divider />` elements.\n */\n contextMenuActions?: ReactNode[];\n}\n\n/** @alpha */\nexport type StrataKitTreeItemProps = Omit<\n ComponentPropsWithoutRef<typeof Tree.Item>,\n \"actions\" | \"inlineActions\" | \"expanded\" | \"onExpandedChange\" | \"icon\" | \"unstable_decorations\" | \"error\"\n> & {\n /**\n * Used to render elements between expander and label.\n * E.g. icons, color picker, etc.\n */\n decorations?: ReactNode;\n};\n\n/** @internal */\nexport type TreeNodeRendererProps = StrataKitTreeItemProps & TreeNodeRendererOwnProps;\n\n/**\n * A component that renders a given `TreeNode` using the `Tree.Item` component from `@stratakit/structures`.\n *\n * @internal\n */\nexport const StrataKitTreeNodeRenderer: FC<PropsWithRef<TreeNodeRendererProps & RefAttributes<HTMLElement>>> = memo(\n forwardRef<HTMLElement, TreeNodeRendererProps>(function HierarchyNode(props, forwardedRef) {\n const {\n node,\n decorations,\n inlineActions,\n menuActions,\n contextMenuActions,\n expandNode,\n reloadTree,\n ...treeItemProps\n } = props;\n const translate = useTranslation();\n const renameContext = useTreeNodeRenameContext();\n const [contextMenuProps, setContextMenuProps] = useState<\n { position: { x: number; y: number }; actions: ReactNode[] } | undefined\n >(undefined);\n\n const label = treeItemProps.label ?? node.label;\n const inlineActionItems = useMemo(() => {\n if (node.errors.some((e) => e.type === \"ChildrenLoad\")) {\n return [\n <TreeActionBase\n key=\"retry\"\n label={translate(\"retry\")}\n onClick={() => reloadTree({ parentNodeId: node.id, state: \"reset\" })}\n visible={true}\n icon={refreshSvg}\n variant=\"inline\"\n />,\n ];\n }\n if (!inlineActions) {\n return undefined;\n }\n return injectActionVariant(inlineActions, \"inline\");\n }, [node, inlineActions, translate, reloadTree]);\n\n const menuActionItems = useMemo(() => {\n if (!menuActions) {\n return undefined;\n }\n return injectActionVariant(menuActions, \"default\");\n }, [menuActions]);\n\n const expanded = useMemo(() => {\n if (node.errors.some((e) => e.type !== \"Unknown\" || !e.isNodeExpandable)) {\n return undefined;\n }\n\n // this is a leaf node\n if (node.children !== true && node.children.length === 0) {\n return undefined;\n }\n\n return node.isExpanded;\n }, [node]);\n\n const { renameParameters, cancelRename } = renameContext ?? {};\n const labelEditor = (\n <LabelEditor\n initialLabel={node.label}\n onChange={renameParameters?.commit}\n onCancel={cancelRename}\n labelValidationHint={renameParameters?.labelValidationHint}\n validate={renameParameters?.validate}\n />\n );\n\n return (\n <>\n <Popover\n content={labelEditor}\n placement=\"bottom\"\n open={renameParameters?.nodeId === node.id}\n setOpen={cancelRename}\n unmountOnHide\n >\n <Tree.Item\n {...treeItemProps}\n ref={forwardedRef}\n label={label}\n expanded={expanded}\n onExpandedChange={useCallback(\n (isExpanded: boolean) => {\n expandNode(node.id, isExpanded);\n },\n [node, expandNode],\n )}\n inlineActions={inlineActionItems}\n actions={menuActionItems}\n unstable_decorations={decorations}\n error={node.errors.length > 0 ? node.errors[0].id : undefined}\n onContextMenu={(e) => {\n if (treeItemProps.onContextMenu) {\n treeItemProps.onContextMenu(e);\n }\n\n if (!contextMenuActions) {\n return;\n }\n\n e.preventDefault();\n const actions = injectActionVariant(contextMenuActions, \"context-menu\");\n if (actions.length === 0) {\n return;\n }\n\n setContextMenuProps({ position: { x: e.clientX, y: e.clientY }, actions });\n }}\n />\n </Popover>\n <DropdownMenu.Provider\n open={contextMenuProps !== undefined}\n setOpen={(open) => {\n if (!open) {\n setContextMenuProps(undefined);\n }\n }}\n key={`${node.id}-${contextMenuProps?.position.x ?? \"\"}-${contextMenuProps?.position.y ?? \"\"}`}\n >\n {contextMenuProps ? (\n <DropdownMenu.Button\n style={{ position: \"fixed\", top: contextMenuProps.position.y, left: contextMenuProps.position.x }}\n render={<div />}\n />\n ) : null}\n {/* `autoFocus` prop is coming from ariakit and is not native HTML `autoFocus` prop. */}\n {/* `focusable` is needed for `autoFocus` to work. StrataKit exposes only `autoFocus` and does not set `focusable` internally. */}\n {/* eslint-disable jsx-a11y/no-autofocus */}\n {/* @ts-expect-error focusable is passed through */}\n <DropdownMenu.Content focusable autoFocus={true}>\n {contextMenuProps?.actions}\n </DropdownMenu.Content>\n </DropdownMenu.Provider>\n </>\n );\n }),\n);\n\nexport const PlaceholderNode: FC<\n PropsWithRef<\n Pick<StrataKitTreeItemProps, \"style\" | \"aria-level\" | \"aria-posinset\" | \"aria-setsize\"> & RefAttributes<HTMLElement>\n >\n> = memo(\n forwardRef<HTMLElement, Pick<StrataKitTreeItemProps, \"style\" | \"aria-level\" | \"aria-posinset\" | \"aria-setsize\">>(\n function PlaceholderNode({ ...props }, forwardedRef) {\n const translate = useTranslation();\n return (\n <Tree.Item\n {...props}\n ref={forwardedRef}\n label={translate(\"loading\")}\n unstable_decorations={<Spinner size={\"small\"} title={translate(\"loading\")} />}\n />\n );\n },\n ),\n);\n\nfunction LabelEditor({\n initialLabel,\n labelValidationHint,\n onChange,\n onCancel,\n validate,\n}: {\n initialLabel: string;\n labelValidationHint?: string;\n onChange?: (newLabel: string) => void;\n onCancel?: () => void;\n validate?: (newLabel: string) => boolean;\n}) {\n const translate = useTranslation();\n const inputRef = useRef<HTMLInputElement>(null);\n const [newLabelValue, setNewLabelValue] = useState(initialLabel);\n const [hasError, setHasError] = useState<boolean>(false);\n const handleLabelChange = () => {\n if (validate && !validate(newLabelValue)) {\n setHasError(true);\n return;\n }\n\n if (initialLabel !== newLabelValue) {\n onChange?.(newLabelValue);\n return;\n }\n onCancel?.();\n };\n\n const cancelLabelChange = () => {\n setNewLabelValue(initialLabel);\n onCancel?.();\n };\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, []);\n\n const canRename = newLabelValue && newLabelValue !== initialLabel && !hasError;\n const inputId = useId();\n\n return (\n <div key={initialLabel} className=\"phr-node-label-editor\">\n <div className=\"phr-node-label-editor-input-row\">\n <TextBox.Root style={{ width: \"100%\" }} className={hasError ? \"with-error\" : undefined}>\n <TextBox.Input\n id={inputId}\n ref={inputRef}\n aria-label={translate(\"newLabel\")}\n value={newLabelValue}\n onChange={(event) => {\n setNewLabelValue(event.target.value);\n setHasError(false);\n }}\n onKeyUp={(event) => {\n if (event.key === \"Enter\") {\n handleLabelChange();\n } else if (event.key === \"Escape\") {\n cancelLabelChange();\n }\n }}\n />\n </TextBox.Root>\n <IconButton icon={dismissSvg} label={translate(\"cancel\")} onClick={cancelLabelChange} />\n <IconButton\n icon={checkmarkSvg}\n label={translate(\"confirm\")}\n onClick={handleLabelChange}\n disabled={!canRename}\n />\n </div>\n {labelValidationHint !== undefined ? (\n <Description id={inputId} tone={hasError ? \"critical\" : \"neutral\"} style={{ display: \"flex\" }}>\n <Text variant=\"caption-lg\">{labelValidationHint}</Text>\n </Description>\n ) : undefined}\n </div>\n );\n}\n\nfunction injectActionVariant(actions: ReactNode[], variant: TreeActionBaseAttributes[\"variant\"]) {\n return actions\n .filter((action) => isValidElement<TreeActionBaseAttributes>(action))\n .map((action) => cloneElement<TreeActionBaseAttributes>(action, { variant }));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TreeNodeRenderer.js","names":["cloneElement","forwardRef","isValidElement","memo","useCallback","useEffect","useId","useMemo","useRef","useState","CircularProgress","FormHelperText","IconButton","Menu","TextField","Typography","Icon","unstable_Popover","Popover","Tree","useTranslation","TreeActionBase","useTreeNodeRenameContext","checkmarkSvg","dismissSvg","refreshSvg","ComponentPropsWithoutRef","FC","PropsWithRef","ReactNode","RefAttributes","TreeRendererProps","TreeNode","TreeActionBaseAttributes","TreeNodeRendererOwnProps","Pick","node","menuActions","inlineActions","contextMenuActions","StrataKitTreeItemProps","Omit","Item","decorations","TreeNodeRendererProps","StrataKitTreeNodeRenderer","HTMLElement","HierarchyNode","props","forwardedRef","$","_c","expandNode","reloadTree","treeItemProps","translate","renameContext","contextMenuProps","setContextMenuProps","undefined","label","t0","bb0","errors","some","_temp","t1","t2","id","parentNodeId","state","t3","injectActionVariant","inlineActionItems","bb1","menuActionItems","bb2","_temp2","children","length","isExpanded","expanded","renameParameters","cancelRename","t4","commit","t5","labelValidationHint","t6","validate","t7","labelEditor","t8","nodeId","t9","t10","t11","t12","e_1","onContextMenu","e","preventDefault","actions","position","x","clientX","y","clientY","t13","t14","t15","t16","t17","Symbol","for","e_2","t18","top","left","t19","t20","t21","t22","t23","PlaceholderNode","LabelEditor","initialLabel","onChange","onCancel","inputRef","newLabelValue","setNewLabelValue","hasError","setHasError","handleLabelChange","cancelLabelChange","current","focus","select","canRename","inputId","htmlInput","event","target","value","event_0","key","display","variant","filter","action","map","type","e_0","isNodeExpandable"],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeNodeRenderer.tsx"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport \"./TreeNodeRenderer.css\";\n\nimport {\n cloneElement,\n forwardRef,\n isValidElement,\n memo,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { CircularProgress, FormHelperText, IconButton, Menu, TextField, Typography } from \"@mui/material\";\nimport { Icon } from \"@stratakit/mui\";\nimport { unstable_Popover as Popover, Tree } from \"@stratakit/structures\";\nimport { useTranslation } from \"../LocalizationContext.js\";\nimport { TreeActionBase } from \"./TreeAction.js\";\nimport { useTreeNodeRenameContext } from \"./TreeNodeRenameAction.js\";\n\nimport checkmarkSvg from \"@stratakit/icons/checkmark.svg\";\nimport dismissSvg from \"@stratakit/icons/dismiss.svg\";\nimport refreshSvg from \"@stratakit/icons/refresh.svg\";\n\nimport type { ComponentPropsWithoutRef, FC, PropsWithRef, ReactNode, RefAttributes } from \"react\";\nimport type { TreeRendererProps } from \"../Renderers.js\";\nimport type { TreeNode } from \"../TreeNode.js\";\nimport type { TreeActionBaseAttributes } from \"./TreeAction.js\";\n\n/** @internal */\ninterface TreeNodeRendererOwnProps extends Pick<TreeRendererProps, \"expandNode\" | \"reloadTree\"> {\n /** Node that is rendered. */\n node: TreeNode;\n /**\n * Menu actions for tree item.\n * Must be an array of `<TreeActionBase />` or `<Divider />` elements.\n */\n menuActions?: ReactNode[];\n /**\n * Inline actions for tree item.\n * Must be an array of `<TreeActionBase />` elements.\n * Max 2 items.\n */\n inlineActions?: ReactNode[];\n /**\n * Context menu actions for tree item.\n * Must be an array of `<TreeActionBase />` or `<Divider />` elements.\n */\n contextMenuActions?: ReactNode[];\n}\n\n/** @alpha */\nexport type StrataKitTreeItemProps = Omit<\n ComponentPropsWithoutRef<typeof Tree.Item>,\n \"actions\" | \"inlineActions\" | \"expanded\" | \"onExpandedChange\" | \"icon\" | \"unstable_decorations\" | \"error\"\n> & {\n /**\n * Used to render elements between expander and label.\n * E.g. icons, color picker, etc.\n */\n decorations?: ReactNode;\n};\n\n/** @internal */\nexport type TreeNodeRendererProps = StrataKitTreeItemProps & TreeNodeRendererOwnProps;\n\n/**\n * A component that renders a given `TreeNode` using the `Tree.Item` component from `@stratakit/structures`.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const StrataKitTreeNodeRenderer: FC<PropsWithRef<TreeNodeRendererProps & RefAttributes<HTMLElement>>> = memo(\n forwardRef<HTMLElement, TreeNodeRendererProps>(function HierarchyNode(props, forwardedRef) {\n const {\n node,\n decorations,\n inlineActions,\n menuActions,\n contextMenuActions,\n expandNode,\n reloadTree,\n ...treeItemProps\n } = props;\n const translate = useTranslation();\n const renameContext = useTreeNodeRenameContext();\n const [contextMenuProps, setContextMenuProps] = useState<\n { position: { x: number; y: number }; actions: ReactNode[] } | undefined\n >(undefined);\n\n const label = treeItemProps.label ?? node.label;\n const inlineActionItems = useMemo(() => {\n if (node.errors.some((e) => e.type === \"ChildrenLoad\")) {\n return [\n <TreeActionBase\n key=\"retry\"\n label={translate(\"retry\")}\n onClick={() => reloadTree({ parentNodeId: node.id, state: \"reset\" })}\n visible={true}\n icon={refreshSvg}\n variant=\"inline\"\n />,\n ];\n }\n if (!inlineActions) {\n return undefined;\n }\n return injectActionVariant(inlineActions, \"inline\");\n }, [node, inlineActions, translate, reloadTree]);\n\n const menuActionItems = useMemo(() => {\n if (!menuActions) {\n return undefined;\n }\n return injectActionVariant(menuActions, \"default\");\n }, [menuActions]);\n\n const expanded = useMemo(() => {\n if (node.errors.some((e) => e.type !== \"Unknown\" || !e.isNodeExpandable)) {\n return undefined;\n }\n\n // this is a leaf node\n if (node.children !== true && node.children.length === 0) {\n return undefined;\n }\n\n return node.isExpanded;\n }, [node]);\n\n const { renameParameters, cancelRename } = renameContext ?? {};\n const labelEditor = (\n <LabelEditor\n initialLabel={node.label}\n onChange={renameParameters?.commit}\n onCancel={cancelRename}\n labelValidationHint={renameParameters?.labelValidationHint}\n validate={renameParameters?.validate}\n />\n );\n\n return (\n <>\n <Popover\n content={labelEditor}\n placement=\"bottom\"\n open={renameParameters?.nodeId === node.id}\n setOpen={cancelRename}\n unmountOnHide\n >\n <Tree.Item\n {...treeItemProps}\n ref={forwardedRef}\n label={label}\n expanded={expanded}\n onExpandedChange={useCallback(\n (isExpanded: boolean) => {\n expandNode(node.id, isExpanded);\n },\n [node, expandNode],\n )}\n inlineActions={inlineActionItems}\n actions={menuActionItems}\n unstable_decorations={decorations}\n error={node.errors.length > 0 ? node.errors[0].id : undefined}\n onContextMenu={(e) => {\n if (treeItemProps.onContextMenu) {\n treeItemProps.onContextMenu(e);\n }\n\n if (!contextMenuActions) {\n return;\n }\n\n e.preventDefault();\n const actions = injectActionVariant(contextMenuActions, \"context-menu\");\n if (actions.length === 0) {\n return;\n }\n\n setContextMenuProps({ position: { x: e.clientX, y: e.clientY }, actions });\n }}\n />\n </Popover>\n <Menu\n open={!!contextMenuProps}\n onClose={() => setContextMenuProps(undefined)}\n onContextMenu={(e) => {\n e.preventDefault();\n setContextMenuProps(undefined);\n }}\n anchorReference=\"anchorPosition\"\n anchorPosition={\n contextMenuProps ? { top: contextMenuProps.position.y, left: contextMenuProps.position.x } : undefined\n }\n aria-label={translate(\"more\")}\n onClick={() => setContextMenuProps(undefined)}\n >\n {contextMenuProps?.actions}\n </Menu>\n </>\n );\n }),\n);\n\nexport const PlaceholderNode: FC<\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n PropsWithRef<\n Pick<StrataKitTreeItemProps, \"style\" | \"aria-level\" | \"aria-posinset\" | \"aria-setsize\"> & RefAttributes<HTMLElement>\n >\n> = memo(\n forwardRef<HTMLElement, Pick<StrataKitTreeItemProps, \"style\" | \"aria-level\" | \"aria-posinset\" | \"aria-setsize\">>(\n function PlaceholderNode({ ...props }, forwardedRef) {\n const translate = useTranslation();\n return (\n <Tree.Item\n {...props}\n ref={forwardedRef}\n label={translate(\"loading\")}\n unstable_decorations={<CircularProgress size={16} title={translate(\"loading\")} />}\n />\n );\n },\n ),\n);\n\nfunction LabelEditor({\n initialLabel,\n labelValidationHint,\n onChange,\n onCancel,\n validate,\n}: {\n initialLabel: string;\n labelValidationHint?: string;\n onChange?: (newLabel: string) => void;\n onCancel?: () => void;\n validate?: (newLabel: string) => boolean;\n}) {\n const translate = useTranslation();\n const inputRef = useRef<HTMLInputElement>(null);\n const [newLabelValue, setNewLabelValue] = useState(initialLabel);\n const [hasError, setHasError] = useState<boolean>(false);\n const handleLabelChange = () => {\n if (validate && !validate(newLabelValue)) {\n setHasError(true);\n return;\n }\n\n if (initialLabel !== newLabelValue) {\n onChange?.(newLabelValue);\n return;\n }\n onCancel?.();\n };\n\n const cancelLabelChange = () => {\n setNewLabelValue(initialLabel);\n onCancel?.();\n };\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, []);\n\n const canRename = newLabelValue && newLabelValue !== initialLabel && !hasError;\n const inputId = useId();\n\n return (\n <div key={initialLabel} className=\"phr-node-label-editor\">\n <div className=\"phr-node-label-editor-input-row\">\n <TextField\n fullWidth\n error={hasError}\n size=\"small\"\n id={inputId}\n inputRef={inputRef}\n slotProps={{ htmlInput: { \"aria-label\": translate(\"newLabel\") } }}\n value={newLabelValue}\n onChange={(event) => {\n setNewLabelValue(event.target.value);\n setHasError(false);\n }}\n onKeyUp={(event) => {\n if (event.key === \"Enter\") {\n handleLabelChange();\n } else if (event.key === \"Escape\") {\n cancelLabelChange();\n }\n }}\n />\n <IconButton aria-label={translate(\"cancel\")} onClick={cancelLabelChange} size=\"small\">\n <Icon href={dismissSvg} />\n </IconButton>\n <IconButton aria-label={translate(\"confirm\")} onClick={handleLabelChange} disabled={!canRename} size=\"small\">\n <Icon href={checkmarkSvg} />\n </IconButton>\n </div>\n {labelValidationHint !== undefined ? (\n <FormHelperText error={hasError} style={{ display: \"flex\" }}>\n <Typography variant=\"caption\">{labelValidationHint}</Typography>\n </FormHelperText>\n ) : undefined}\n </div>\n );\n}\n\nfunction injectActionVariant(actions: ReactNode[], variant: TreeActionBaseAttributes[\"variant\"]) {\n return actions\n .filter((action) => isValidElement<TreeActionBaseAttributes>(action))\n .map((action) => cloneElement<TreeActionBaseAttributes>(action, { variant }));\n}\n"],"mappings":"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"}
|