@itwin/presentation-hierarchies-react 2.0.0-alpha.60 → 2.0.0-alpha.61
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 +14 -0
- package/lib/presentation-hierarchies-react/FlatTreeNode.d.ts +1 -1
- package/lib/presentation-hierarchies-react/FlatTreeNode.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/FlatTreeNode.js +11 -8
- package/lib/presentation-hierarchies-react/FlatTreeNode.js.map +1 -1
- package/lib/presentation-hierarchies-react/TreeNode.d.ts +2 -2
- package/lib/presentation-hierarchies-react/TreeNode.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/UseTree.d.ts +4 -4
- package/lib/presentation-hierarchies-react/UseTree.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/UseTree.js +11 -10
- package/lib/presentation-hierarchies-react/UseTree.js.map +1 -1
- package/lib/presentation-hierarchies-react/internal/TreeModel.js +2 -7
- package/lib/presentation-hierarchies-react/internal/TreeModel.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.d.ts +8 -6
- package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js +123 -116
- package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.d.ts +1 -7
- package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.d.ts.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.d.ts +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.js +49 -35
- package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.js.map +1 -1
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js +14 -8
- package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeErrorRenderer.js","names":["cloneElement","unstable_ErrorRegion","ErrorRegion","useTranslation","ErrorItemRenderer","JSX","ReactElement","useErrorNodes","ErrorItemRendererProps","TreeErrorRendererOwnProps","treeLabel","errorNodes","ReturnType","renderError","props","TreeErrorRendererProps","Omit","TreeErrorRenderer","t0","$","_c","errorItemRendererProps","translate","errorItems","
|
|
1
|
+
{"version":3,"file":"TreeErrorRenderer.js","names":["cloneElement","useMemo","unstable_ErrorRegion","ErrorRegion","useTranslation","ErrorItemRenderer","JSX","ReactElement","useErrorNodes","ErrorItemRendererProps","TreeErrorRendererOwnProps","treeLabel","errorNodes","ReturnType","renderError","props","TreeErrorRendererProps","Omit","TreeErrorRenderer","t0","$","_c","errorItemRendererProps","translate","errorItems","flatMap","errorNode","errors","map","error","treeNode","key","id","t1","reduce","_temp","totalErrorCount","t2","Symbol","for","width","t3","replace","t4","toString","t5","sum","n","length"],"sources":["../../../src/presentation-hierarchies-react/stratakit/TreeErrorRenderer.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 { cloneElement, useMemo } from \"react\";\nimport { unstable_ErrorRegion as ErrorRegion } from \"@stratakit/structures\";\nimport { useTranslation } from \"../LocalizationContext.js\";\nimport { ErrorItemRenderer } from \"./ErrorItemRenderer.js\";\n\nimport type { JSX, ReactElement } from \"react\";\nimport type { useErrorNodes } from \"../FlatTreeNode.js\";\nimport type { ErrorItemRendererProps } from \"./ErrorItemRenderer.js\";\n\n/**\n * Interface containing building blocks for `TreeErrorRenderer`.\n *\n * @alpha\n */\ninterface TreeErrorRendererOwnProps {\n /**\n * A user friendly display label of the tree. Should be unique within the consuming application,\n * as it's used for creating a unique accessible label for the error region.\n */\n treeLabel: string;\n /** List of error nodes to render errors for. */\n errorNodes: ReturnType<typeof useErrorNodes>;\n /** Callback to render custom error messages. Component should be wrapped in `unstable_ErrorRegion.Item` from `@stratakit/structures` package. */\n renderError?: (props: ErrorItemRendererProps) => ReactElement;\n}\n\n/** @alpha */\nexport type TreeErrorRendererProps = TreeErrorRendererOwnProps & Omit<ErrorItemRendererProps, \"treeNode\" | \"error\">;\n\n/**\n * A component that renders error display dropdown using the `unstable_ErrorRegion` component from `@stratakit/structures`.\n * As input, the component uses a list of `ErrorNode` objects, which are generally created using the `useErrorNodes` hook.\n *\n * @alpha\n */\nexport function TreeErrorRenderer({\n treeLabel,\n errorNodes,\n renderError,\n ...errorItemRendererProps\n}: TreeErrorRendererProps): JSX.Element {\n const translate = useTranslation();\n const errorItems = errorNodes.flatMap((errorNode) =>\n errorNode.errors.map((error) => {\n if (renderError) {\n return cloneElement(renderError({ treeNode: errorNode, error, ...errorItemRendererProps }), {\n key: `${errorNode.id}:${error.id}`,\n });\n }\n return (\n <ErrorItemRenderer\n key={`${errorNode.id}:${error.id}`}\n treeNode={errorNode}\n error={error}\n {...errorItemRendererProps}\n />\n );\n }),\n );\n\n const totalErrorCount = useMemo(() => errorNodes.reduce((sum, n) => sum + n.errors.length, 0), [errorNodes]);\n\n return (\n <ErrorRegion.Root\n style={{ width: \"100%\" }}\n aria-label={translate(\"issuesForTree\").replace(\"{{tree_label}}\", treeLabel)}\n label={\n totalErrorCount === 0\n ? translate(\"noIssuesFound\")\n : translate(\"issuesFound\").replace(\"{{number_of_issues}}\", totalErrorCount.toString())\n }\n items={errorItems}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAwCA,SAAOkB,kBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA2B,MAAA,EAAAV,WAAAC,YAAAE,aAAA,GAAAQ,2BAAAH;CAMhC,MAAAI,YAAkBnB,gBAAgB;CAClC,MAAAoB,aAAmBZ,WAAUa,SAASC,cACpCA,UAASC,OAAOC,KAAKC,UAAA;AACnB,MAAIf,YAAW,QACNd,aAAac,YAAY;GAAAgB,UAAYJ;GAASG;GAAA,GAAYP;GAAwB,CAAC,EAAE,EAAAS,KACrF,GAAGL,UAASM,GAAG,GAAIH,MAAKG,MAC9B,CAAC;AACH,SAEC,oBAAC,mBAAD;GAEYN,UAAAA;GACHG;GAAK,GACRP;GACJ,EAJK,GAAGI,UAASM,GAAG,GAAIH,MAAKG,KAI7B;GAGR,CAAC;CAAC,IAAAC;AAAA,KAAAb,EAAA,OAAAR,YAAA;AAEoCqB,OAAArB,WAAUsB,OAAQC,OAAmC,EAAE;AAAAf,IAAA,KAAAR;AAAAQ,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAA7F,MAAAgB,kBAAsCH;CAAuE,IAAAI;AAAA,KAAAjB,EAAA,OAAAkB,OAAAC,IAAA,4BAAA,EAAA;AAIlGF,OAAA,EAAAG,OAAS,QAAQ;AAAApB,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAqB;AAAA,KAAArB,EAAA,OAAAG,aAAAH,EAAA,OAAAT,WAAA;AACZ8B,OAAAlB,UAAU,gBAAgB,CAAAmB,QAAS,kBAAkB/B,UAAU;AAAAS,IAAA,KAAAG;AAAAH,IAAA,KAAAT;AAAAS,IAAA,KAAAqB;OAAAA,MAAArB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,OAAAgB,mBAAAhB,EAAA,OAAAG,WAAA;AAEzEoB,OAAAP,oBAAoB,IAChBb,UAAU,gBAC0E,GAApFA,UAAU,cAAc,CAAAmB,QAAS,wBAAwBN,gBAAeQ,UAAW,CAAC;AAAAxB,IAAA,KAAAgB;AAAAhB,IAAA,KAAAG;AAAAH,IAAA,KAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,OAAAI,cAAAJ,EAAA,QAAAqB,MAAArB,EAAA,QAAAuB,IAAA;AAN5FE,OAAA,oBAAA,qBAAA,MAAA;GACS,OAAAR;GACK,cAAAI;GAEV,OAAAE;GAIKnB,OAAAA;GACP,CAAA;AAAAJ,IAAA,KAAAI;AAAAJ,IAAA,MAAAqB;AAAArB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAyB;OAAAA,MAAAzB,EAAA;AAAA,QATFyB;;AA5BG,SAAAV,MAAAW,KAAAC,GAAA;AAAA,QAyB+DD,MAAMC,EAACpB,OAAOqB"}
|
|
@@ -53,7 +53,7 @@ const StrataKitTreeNodeRenderer = memo(forwardRef(function HierarchyNode(props,
|
|
|
53
53
|
const label = treeItemProps.label ?? node.label;
|
|
54
54
|
let t0;
|
|
55
55
|
bb0: {
|
|
56
|
-
if (node.
|
|
56
|
+
if (node.errors.some(_temp)) {
|
|
57
57
|
let t1;
|
|
58
58
|
if ($[9] !== translate) {
|
|
59
59
|
t1 = translate("retry");
|
|
@@ -116,7 +116,7 @@ const StrataKitTreeNodeRenderer = memo(forwardRef(function HierarchyNode(props,
|
|
|
116
116
|
const menuActionItems = t1;
|
|
117
117
|
let t2;
|
|
118
118
|
bb2: {
|
|
119
|
-
if (node.
|
|
119
|
+
if (node.errors.some(_temp2)) {
|
|
120
120
|
t2 = void 0;
|
|
121
121
|
break bb2;
|
|
122
122
|
}
|
|
@@ -165,19 +165,19 @@ const StrataKitTreeNodeRenderer = memo(forwardRef(function HierarchyNode(props,
|
|
|
165
165
|
$[31] = t9;
|
|
166
166
|
} else t9 = $[31];
|
|
167
167
|
const t10 = t9;
|
|
168
|
-
const t11 = node.
|
|
168
|
+
const t11 = node.errors.length > 0 ? node.errors[0].id : void 0;
|
|
169
169
|
let t12;
|
|
170
170
|
if ($[32] !== contextMenuActions || $[33] !== treeItemProps) {
|
|
171
|
-
t12 = (
|
|
172
|
-
if (treeItemProps.onContextMenu) treeItemProps.onContextMenu(
|
|
171
|
+
t12 = (e_1) => {
|
|
172
|
+
if (treeItemProps.onContextMenu) treeItemProps.onContextMenu(e_1);
|
|
173
173
|
if (!contextMenuActions) return;
|
|
174
|
-
|
|
174
|
+
e_1.preventDefault();
|
|
175
175
|
const actions = injectActionVariant(contextMenuActions, "context-menu");
|
|
176
176
|
if (actions.length === 0) return;
|
|
177
177
|
setContextMenuProps({
|
|
178
178
|
position: {
|
|
179
|
-
x:
|
|
180
|
-
y:
|
|
179
|
+
x: e_1.clientX,
|
|
180
|
+
y: e_1.clientY
|
|
181
181
|
},
|
|
182
182
|
actions
|
|
183
183
|
});
|
|
@@ -528,6 +528,12 @@ function LabelEditor(t0) {
|
|
|
528
528
|
function injectActionVariant(actions, variant) {
|
|
529
529
|
return actions.filter((action) => isValidElement(action)).map((action) => cloneElement(action, { variant }));
|
|
530
530
|
}
|
|
531
|
+
function _temp(e) {
|
|
532
|
+
return e.type === "ChildrenLoad";
|
|
533
|
+
}
|
|
534
|
+
function _temp2(e_0) {
|
|
535
|
+
return e_0.type !== "Unknown" || !e_0.isNodeExpandable;
|
|
536
|
+
}
|
|
531
537
|
//#endregion
|
|
532
538
|
export { PlaceholderNode, StrataKitTreeNodeRenderer };
|
|
533
539
|
|
|
@@ -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","error","type","t1","t2","id","parentNodeId","state","t3","injectActionVariant","inlineActionItems","bb1","menuActionItems","bb2","isNodeExpandable","children","length","isExpanded","expanded","renameParameters","cancelRename","t4","commit","t5","labelValidationHint","t6","validate","t7","labelEditor","t8","nodeId","t9","t10","t11","t12","e","onContextMenu","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"],"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.error !== undefined && node.error.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.error && (node.error.type !== \"Unknown\" || !node.error.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.error ? node.error.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","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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"}
|