@itwin/presentation-hierarchies-react 2.0.0-alpha.60 → 2.0.0-alpha.62

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 (31) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +7 -23
  3. package/lib/presentation-hierarchies-react/FlatTreeNode.d.ts +1 -1
  4. package/lib/presentation-hierarchies-react/FlatTreeNode.d.ts.map +1 -1
  5. package/lib/presentation-hierarchies-react/FlatTreeNode.js +11 -8
  6. package/lib/presentation-hierarchies-react/FlatTreeNode.js.map +1 -1
  7. package/lib/presentation-hierarchies-react/TreeNode.d.ts +2 -2
  8. package/lib/presentation-hierarchies-react/TreeNode.d.ts.map +1 -1
  9. package/lib/presentation-hierarchies-react/UseTree.d.ts +4 -4
  10. package/lib/presentation-hierarchies-react/UseTree.d.ts.map +1 -1
  11. package/lib/presentation-hierarchies-react/UseTree.js +11 -11
  12. package/lib/presentation-hierarchies-react/UseTree.js.map +1 -1
  13. package/lib/presentation-hierarchies-react/internal/TreeActions.js +2 -7
  14. package/lib/presentation-hierarchies-react/internal/TreeActions.js.map +1 -1
  15. package/lib/presentation-hierarchies-react/internal/TreeLoader.js.map +1 -1
  16. package/lib/presentation-hierarchies-react/internal/TreeModel.js +2 -9
  17. package/lib/presentation-hierarchies-react/internal/TreeModel.js.map +1 -1
  18. package/lib/presentation-hierarchies-react/internal/UseUnifiedSelection.js.map +1 -1
  19. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.d.ts +8 -6
  20. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.d.ts.map +1 -1
  21. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js +80 -79
  22. package/lib/presentation-hierarchies-react/stratakit/ErrorItemRenderer.js.map +1 -1
  23. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.d.ts +1 -7
  24. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.d.ts.map +1 -1
  25. package/lib/presentation-hierarchies-react/stratakit/RootErrorRenderer.js.map +1 -1
  26. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.d.ts +1 -1
  27. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.js +49 -35
  28. package/lib/presentation-hierarchies-react/stratakit/TreeErrorRenderer.js.map +1 -1
  29. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js +14 -8
  30. package/lib/presentation-hierarchies-react/stratakit/TreeNodeRenderer.js.map +1 -1
  31. package/package.json +16 -39
@@ -15,16 +15,16 @@ import { Anchor, Text } from "@stratakit/bricks";
15
15
  * @alpha
16
16
  */
17
17
  function ErrorItemRenderer(t0) {
18
- const $ = c(83);
19
- const { errorNode, getHierarchyLevelDetails, filterHierarchyLevel, reloadTree, scrollToNode } = t0;
18
+ const $ = c(84);
19
+ const { treeNode, error, getHierarchyLevelDetails, filterHierarchyLevel, reloadTree, scrollToNode } = t0;
20
20
  const translate = useTranslation();
21
- if (errorNode.error.type === "ResultSetTooLarge") {
22
- const limit = errorNode.error.resultSetSizeLimit;
21
+ if (error.type === "ResultSetTooLarge") {
22
+ const limit = error.resultSetSizeLimit;
23
23
  let t1;
24
- if ($[0] !== errorNode.id || $[1] !== getHierarchyLevelDetails) {
25
- t1 = () => getHierarchyLevelDetails(errorNode.id)?.setSizeLimit(MAX_LIMIT_OVERRIDE);
26
- $[0] = errorNode.id;
27
- $[1] = getHierarchyLevelDetails;
24
+ if ($[0] !== getHierarchyLevelDetails || $[1] !== treeNode) {
25
+ t1 = () => getHierarchyLevelDetails(treeNode.id)?.setSizeLimit(MAX_LIMIT_OVERRIDE);
26
+ $[0] = getHierarchyLevelDetails;
27
+ $[1] = treeNode;
28
28
  $[2] = t1;
29
29
  } else t1 = $[2];
30
30
  const onOverrideLimit = t1;
@@ -61,14 +61,14 @@ function ErrorItemRenderer(t0) {
61
61
  $[12] = t5;
62
62
  } else t5 = $[12];
63
63
  let t6;
64
- if ($[13] !== errorNode.id || $[14] !== filterHierarchyLevel || $[15] !== getHierarchyLevelDetails) {
64
+ if ($[13] !== filterHierarchyLevel || $[14] !== getHierarchyLevelDetails || $[15] !== treeNode) {
65
65
  t6 = () => {
66
- const hierarchyLevelDetails = getHierarchyLevelDetails(errorNode.id);
66
+ const hierarchyLevelDetails = getHierarchyLevelDetails(treeNode.id);
67
67
  hierarchyLevelDetails && filterHierarchyLevel?.(hierarchyLevelDetails);
68
68
  };
69
- $[13] = errorNode.id;
70
- $[14] = filterHierarchyLevel;
71
- $[15] = getHierarchyLevelDetails;
69
+ $[13] = filterHierarchyLevel;
70
+ $[14] = getHierarchyLevelDetails;
71
+ $[15] = treeNode;
72
72
  $[16] = t6;
73
73
  } else t6 = $[16];
74
74
  let t7;
@@ -78,10 +78,10 @@ function ErrorItemRenderer(t0) {
78
78
  $[18] = t7;
79
79
  } else t7 = $[18];
80
80
  let t8;
81
- if ($[19] !== errorNode.isFilterable || $[20] !== filterHierarchyLevel) {
82
- t8 = () => !!filterHierarchyLevel && !!errorNode.isFilterable;
83
- $[19] = errorNode.isFilterable;
84
- $[20] = filterHierarchyLevel;
81
+ if ($[19] !== filterHierarchyLevel || $[20] !== treeNode) {
82
+ t8 = () => !!filterHierarchyLevel && !!treeNode.isFilterable;
83
+ $[19] = filterHierarchyLevel;
84
+ $[20] = treeNode;
85
85
  $[21] = t8;
86
86
  } else t8 = $[21];
87
87
  let t9;
@@ -111,38 +111,38 @@ function ErrorItemRenderer(t0) {
111
111
  $[31] = t11;
112
112
  } else t11 = $[31];
113
113
  let t12;
114
- if ($[32] !== errorNode || $[33] !== scrollToNode) {
115
- t12 = () => scrollToNode(errorNode);
116
- $[32] = errorNode;
117
- $[33] = scrollToNode;
114
+ if ($[32] !== scrollToNode || $[33] !== treeNode) {
115
+ t12 = () => scrollToNode(treeNode);
116
+ $[32] = scrollToNode;
117
+ $[33] = treeNode;
118
118
  $[34] = t12;
119
119
  } else t12 = $[34];
120
120
  let t13;
121
- if ($[35] !== errorNode || $[36] !== t10 || $[37] !== t11 || $[38] !== t12) {
121
+ if ($[35] !== t10 || $[36] !== t11 || $[37] !== t12 || $[38] !== treeNode) {
122
122
  t13 = /* @__PURE__ */ jsx(ErrorItemContainer, {
123
- errorNode,
123
+ treeNode,
124
124
  actions: t10,
125
125
  message: t11,
126
126
  scrollToElement: t12
127
127
  });
128
- $[35] = errorNode;
129
- $[36] = t10;
130
- $[37] = t11;
131
- $[38] = t12;
128
+ $[35] = t10;
129
+ $[36] = t11;
130
+ $[37] = t12;
131
+ $[38] = treeNode;
132
132
  $[39] = t13;
133
133
  } else t13 = $[39];
134
134
  return t13;
135
135
  }
136
- if (errorNode.error.type === "NoFilterMatches") {
136
+ if (error.type === "NoFilterMatches") {
137
137
  let t1;
138
- if ($[40] !== errorNode.id || $[41] !== filterHierarchyLevel || $[42] !== getHierarchyLevelDetails) {
138
+ if ($[40] !== filterHierarchyLevel || $[41] !== getHierarchyLevelDetails || $[42] !== treeNode) {
139
139
  t1 = () => {
140
- const hierarchyLevelDetails_0 = getHierarchyLevelDetails(errorNode.id);
140
+ const hierarchyLevelDetails_0 = getHierarchyLevelDetails(treeNode.id);
141
141
  hierarchyLevelDetails_0 && filterHierarchyLevel?.(hierarchyLevelDetails_0);
142
142
  };
143
- $[40] = errorNode.id;
144
- $[41] = filterHierarchyLevel;
145
- $[42] = getHierarchyLevelDetails;
143
+ $[40] = filterHierarchyLevel;
144
+ $[41] = getHierarchyLevelDetails;
145
+ $[42] = treeNode;
146
146
  $[43] = t1;
147
147
  } else t1 = $[43];
148
148
  let t2;
@@ -169,34 +169,34 @@ function ErrorItemRenderer(t0) {
169
169
  $[50] = t4;
170
170
  } else t4 = $[50];
171
171
  let t5;
172
- if ($[51] !== errorNode || $[52] !== scrollToNode) {
173
- t5 = () => scrollToNode(errorNode);
174
- $[51] = errorNode;
175
- $[52] = scrollToNode;
172
+ if ($[51] !== scrollToNode || $[52] !== treeNode) {
173
+ t5 = () => scrollToNode(treeNode);
174
+ $[51] = scrollToNode;
175
+ $[52] = treeNode;
176
176
  $[53] = t5;
177
177
  } else t5 = $[53];
178
178
  let t6;
179
- if ($[54] !== errorNode || $[55] !== t3 || $[56] !== t4 || $[57] !== t5) {
179
+ if ($[54] !== t3 || $[55] !== t4 || $[56] !== t5 || $[57] !== treeNode) {
180
180
  t6 = /* @__PURE__ */ jsx(ErrorItemContainer, {
181
- errorNode,
181
+ treeNode,
182
182
  actions: t3,
183
183
  message: t4,
184
184
  scrollToElement: t5
185
185
  });
186
- $[54] = errorNode;
187
- $[55] = t3;
188
- $[56] = t4;
189
- $[57] = t5;
186
+ $[54] = t3;
187
+ $[55] = t4;
188
+ $[56] = t5;
189
+ $[57] = treeNode;
190
190
  $[58] = t6;
191
191
  } else t6 = $[58];
192
192
  return t6;
193
193
  }
194
- if (errorNode.error.type === "ChildrenLoad") {
194
+ if (error.type === "ChildrenLoad") {
195
195
  let t1;
196
- if ($[59] !== errorNode.id || $[60] !== reloadTree) {
197
- t1 = () => reloadTree({ parentNodeId: errorNode.id });
198
- $[59] = errorNode.id;
199
- $[60] = reloadTree;
196
+ if ($[59] !== reloadTree || $[60] !== treeNode) {
197
+ t1 = () => reloadTree({ parentNodeId: treeNode.id });
198
+ $[59] = reloadTree;
199
+ $[60] = treeNode;
200
200
  $[61] = t1;
201
201
  } else t1 = $[61];
202
202
  let t2;
@@ -223,46 +223,47 @@ function ErrorItemRenderer(t0) {
223
223
  $[68] = t4;
224
224
  } else t4 = $[68];
225
225
  let t5;
226
- if ($[69] !== errorNode || $[70] !== scrollToNode) {
227
- t5 = () => scrollToNode(errorNode);
228
- $[69] = errorNode;
229
- $[70] = scrollToNode;
226
+ if ($[69] !== scrollToNode || $[70] !== treeNode) {
227
+ t5 = () => scrollToNode(treeNode);
228
+ $[69] = scrollToNode;
229
+ $[70] = treeNode;
230
230
  $[71] = t5;
231
231
  } else t5 = $[71];
232
232
  let t6;
233
- if ($[72] !== errorNode || $[73] !== t3 || $[74] !== t4 || $[75] !== t5) {
233
+ if ($[72] !== t3 || $[73] !== t4 || $[74] !== t5 || $[75] !== treeNode) {
234
234
  t6 = /* @__PURE__ */ jsx(ErrorItemContainer, {
235
- errorNode,
235
+ treeNode,
236
236
  actions: t3,
237
237
  message: t4,
238
238
  scrollToElement: t5
239
239
  });
240
- $[72] = errorNode;
241
- $[73] = t3;
242
- $[74] = t4;
243
- $[75] = t5;
240
+ $[72] = t3;
241
+ $[73] = t4;
242
+ $[74] = t5;
243
+ $[75] = treeNode;
244
244
  $[76] = t6;
245
245
  } else t6 = $[76];
246
246
  return t6;
247
247
  }
248
248
  let t1;
249
- if ($[77] !== errorNode || $[78] !== scrollToNode) {
250
- t1 = () => scrollToNode(errorNode);
251
- $[77] = errorNode;
252
- $[78] = scrollToNode;
249
+ if ($[77] !== scrollToNode || $[78] !== treeNode) {
250
+ t1 = () => scrollToNode(treeNode);
251
+ $[77] = scrollToNode;
252
+ $[78] = treeNode;
253
253
  $[79] = t1;
254
254
  } else t1 = $[79];
255
255
  let t2;
256
- if ($[80] !== errorNode || $[81] !== t1) {
256
+ if ($[80] !== error.message || $[81] !== t1 || $[82] !== treeNode) {
257
257
  t2 = /* @__PURE__ */ jsx(ErrorItemContainer, {
258
- errorNode,
259
- message: errorNode.error.message,
258
+ treeNode,
259
+ message: error.message,
260
260
  scrollToElement: t1
261
261
  });
262
- $[80] = errorNode;
262
+ $[80] = error.message;
263
263
  $[81] = t1;
264
- $[82] = t2;
265
- } else t2 = $[82];
264
+ $[82] = treeNode;
265
+ $[83] = t2;
266
+ } else t2 = $[83];
266
267
  return t2;
267
268
  }
268
269
  function _temp2() {
@@ -273,17 +274,17 @@ function _temp() {
273
274
  }
274
275
  function ErrorItemContainer(t0) {
275
276
  const $ = c(10);
276
- const { errorNode, message, actions, scrollToElement } = t0;
277
+ const { treeNode, message, actions, scrollToElement } = t0;
277
278
  let t1;
278
- if ($[0] !== errorNode.label || $[1] !== message || $[2] !== scrollToElement) {
279
+ if ($[0] !== message || $[1] !== scrollToElement || $[2] !== treeNode.label) {
279
280
  t1 = /* @__PURE__ */ jsx(MessageWithLink, {
280
- linkLabel: errorNode.label,
281
+ linkLabel: treeNode.label,
281
282
  scrollToElement,
282
283
  message
283
284
  });
284
- $[0] = errorNode.label;
285
- $[1] = message;
286
- $[2] = scrollToElement;
285
+ $[0] = message;
286
+ $[1] = scrollToElement;
287
+ $[2] = treeNode.label;
287
288
  $[3] = t1;
288
289
  } else t1 = $[3];
289
290
  let t2;
@@ -293,15 +294,15 @@ function ErrorItemContainer(t0) {
293
294
  $[5] = t2;
294
295
  } else t2 = $[5];
295
296
  let t3;
296
- if ($[6] !== errorNode.id || $[7] !== t1 || $[8] !== t2) {
297
+ if ($[6] !== t1 || $[7] !== t2 || $[8] !== treeNode.id) {
297
298
  t3 = /* @__PURE__ */ jsx(unstable_ErrorRegion.Item, {
298
299
  message: t1,
299
- messageId: errorNode.id,
300
+ messageId: treeNode.id,
300
301
  actions: t2
301
302
  });
302
- $[6] = errorNode.id;
303
- $[7] = t1;
304
- $[8] = t2;
303
+ $[6] = t1;
304
+ $[7] = t2;
305
+ $[8] = treeNode.id;
305
306
  $[9] = t3;
306
307
  } else t3 = $[9];
307
308
  return t3;
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorItemRenderer.js","names":["Anchor","Text","unstable_ErrorRegion","ErrorRegion","MAX_LIMIT_OVERRIDE","useTranslation","JSX","useErrorNodes","HierarchyLevelDetails","TreeRendererProps","TreeNode","ErrorItemRendererProps","Pick","errorNode","ReturnType","reloadTree","options","parentNodeId","scrollToNode","filterHierarchyLevel","hierarchyLevelDetails","ErrorItemRenderer","t0","$","_c","getHierarchyLevelDetails","translate","error","type","limit","resultSetSizeLimit","t1","id","setSizeLimit","onOverrideLimit","t2","t3","replace","toString","t4","t5","action","label","condition","t6","t7","t8","isFilterable","t9","t10","t11","t12","t13","hierarchyLevelDetails_0","_temp","_temp2","message","ErrorItemContainerProps","actions","MessageWithLinkProps","ErrorItemContainer","scrollToElement","filter","_temp3","map","_temp4","linkLabel","MessageWithLink","split","splitMessage","Symbol","for","display","whiteSpace","flexWrap"],"sources":["../../../src/presentation-hierarchies-react/stratakit/ErrorItemRenderer.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 { Anchor, Text } from \"@stratakit/bricks\";\nimport { unstable_ErrorRegion as ErrorRegion } from \"@stratakit/structures\";\nimport { MAX_LIMIT_OVERRIDE } from \"../internal/Utils.js\";\nimport { useTranslation } from \"../LocalizationContext.js\";\n\nimport type { JSX } from \"react\";\nimport type { useErrorNodes } from \"../FlatTreeNode.js\";\nimport type { HierarchyLevelDetails, TreeRendererProps } from \"../Renderers.js\";\nimport type { TreeNode } from \"../TreeNode.js\";\n\n/** @alpha */\nexport interface ErrorItemRendererProps extends Pick<TreeRendererProps, \"getHierarchyLevelDetails\"> {\n /** A node containing an error. */\n errorNode: ReturnType<typeof useErrorNodes>[number];\n /** A callback to reload a hierarchy level when an error occurs and `retry` button is clicked. */\n reloadTree: (options: { parentNodeId: string | undefined }) => void;\n /** A callback to scroll to the node associated with the error. */\n scrollToNode: (errorNode: TreeNode) => void;\n /** A callback to initiate filtering of the given hierarchy level. */\n filterHierarchyLevel?: (hierarchyLevelDetails: HierarchyLevelDetails) => void;\n}\n\n/**\n * Renders StrataKit `<ErrorRegion.Item />` for all supported error types:\n * - `ResultSetTooLarge` - renders `resultLimitExceeded` message with actions to increase limit or apply filtering\n * - `NoFilterMatches` - renders `noFilteredChildren` message with action to change filter\n * - `ChildrenLoad` - renders `failedToCreateHierarchy` message with action to retry loading\n * - `Unknown` - renders message set on error object.\n *\n * @alpha\n */\nexport function ErrorItemRenderer({\n errorNode,\n getHierarchyLevelDetails,\n filterHierarchyLevel,\n reloadTree,\n scrollToNode,\n}: ErrorItemRendererProps): JSX.Element {\n const translate = useTranslation();\n\n if (errorNode.error.type === \"ResultSetTooLarge\") {\n const limit = errorNode.error.resultSetSizeLimit;\n const onOverrideLimit = () => getHierarchyLevelDetails(errorNode.id)?.setSizeLimit(MAX_LIMIT_OVERRIDE);\n return (\n <ErrorItemContainer\n errorNode={errorNode}\n actions={[\n {\n action: () => {\n onOverrideLimit();\n },\n label: translate(\"increaseHierarchyLimit\").replace(\"{{limit}}\", MAX_LIMIT_OVERRIDE.toString()),\n condition: () => limit < MAX_LIMIT_OVERRIDE,\n },\n {\n action: () => {\n const hierarchyLevelDetails = getHierarchyLevelDetails(errorNode.id);\n hierarchyLevelDetails && filterHierarchyLevel?.(hierarchyLevelDetails);\n },\n label: translate(\"increaseHierarchyLimitWithFiltering\"),\n condition: () => !!filterHierarchyLevel && !!errorNode.isFilterable,\n },\n ]}\n message={translate(\"resultLimitExceeded\").replace(\"{{limit}}\", limit.toString())}\n scrollToElement={() => scrollToNode(errorNode)}\n />\n );\n }\n if (errorNode.error.type === \"NoFilterMatches\") {\n return (\n <ErrorItemContainer\n errorNode={errorNode}\n actions={[\n {\n action: () => {\n const hierarchyLevelDetails = getHierarchyLevelDetails(errorNode.id);\n hierarchyLevelDetails && filterHierarchyLevel?.(hierarchyLevelDetails);\n },\n label: translate(\"noFilteredChildrenChangeFilter\"),\n condition: () => true,\n },\n ]}\n message={translate(\"noFilteredChildren\")}\n scrollToElement={() => scrollToNode(errorNode)}\n />\n );\n }\n if (errorNode.error.type === \"ChildrenLoad\") {\n return (\n <ErrorItemContainer\n errorNode={errorNode}\n actions={[\n {\n action: () => reloadTree({ parentNodeId: errorNode.id }),\n label: translate(\"retry\"),\n condition: () => true,\n },\n ]}\n message={translate(\"failedToCreateHierarchy\")}\n scrollToElement={() => scrollToNode(errorNode)}\n />\n );\n }\n\n return (\n <ErrorItemContainer\n errorNode={errorNode}\n message={errorNode.error.message}\n scrollToElement={() => scrollToNode(errorNode)}\n />\n );\n}\n\ntype ErrorItemContainerProps = {\n errorNode: TreeNode;\n message: string;\n actions?: { action: () => void; label: string; condition: () => boolean }[];\n} & Pick<MessageWithLinkProps, \"scrollToElement\">;\n\nfunction ErrorItemContainer({ errorNode, message, actions, scrollToElement }: ErrorItemContainerProps) {\n return (\n <ErrorRegion.Item\n message={<MessageWithLink linkLabel={errorNode.label} scrollToElement={scrollToElement} message={message} />}\n messageId={errorNode.id}\n actions={actions\n ?.filter(({ condition }) => condition())\n .map(({ label, action }) => (\n <Text key={label} variant=\"body-sm\">\n <Anchor onClick={action} render={<button />}>\n {label}\n </Anchor>\n </Text>\n ))}\n />\n );\n}\n\ninterface MessageWithLinkProps {\n scrollToElement: () => void;\n message: string;\n linkLabel?: string;\n}\n\nfunction MessageWithLink({ linkLabel, scrollToElement, message }: MessageWithLinkProps) {\n const splitMessage = message.split(\"{{node}}\", 2);\n return (\n <div style={{ display: \"flex\", whiteSpace: \"pre\", flexWrap: \"wrap\" }}>\n {splitMessage[0]}\n <Anchor onClick={scrollToElement} render={<button />}>\n {linkLabel}\n </Anchor>\n {splitMessage[1] ? splitMessage[1] : null}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ErrorItemRenderer.js","names":["Anchor","Text","unstable_ErrorRegion","ErrorRegion","MAX_LIMIT_OVERRIDE","useTranslation","JSX","HierarchyLevelDetails","TreeRendererProps","ErrorInfo","TreeNode","ErrorItemRendererProps","Pick","treeNode","Omit","error","reloadTree","options","parentNodeId","scrollToNode","filterHierarchyLevel","hierarchyLevelDetails","ErrorItemRenderer","t0","$","_c","getHierarchyLevelDetails","translate","type","limit","resultSetSizeLimit","t1","id","setSizeLimit","onOverrideLimit","t2","t3","replace","toString","t4","t5","action","label","condition","t6","t7","t8","isFilterable","t9","t10","t11","t12","t13","hierarchyLevelDetails_0","_temp","_temp2","message","ErrorItemContainerProps","actions","MessageWithLinkProps","ErrorItemContainer","scrollToElement","filter","_temp3","map","_temp4","linkLabel","MessageWithLink","split","splitMessage","Symbol","for","display","whiteSpace","flexWrap"],"sources":["../../../src/presentation-hierarchies-react/stratakit/ErrorItemRenderer.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 { Anchor, Text } from \"@stratakit/bricks\";\nimport { unstable_ErrorRegion as ErrorRegion } from \"@stratakit/structures\";\nimport { MAX_LIMIT_OVERRIDE } from \"../internal/Utils.js\";\nimport { useTranslation } from \"../LocalizationContext.js\";\n\nimport type { JSX } from \"react\";\nimport type { HierarchyLevelDetails, TreeRendererProps } from \"../Renderers.js\";\nimport type { ErrorInfo, TreeNode } from \"../TreeNode.js\";\n\n/** @alpha */\nexport interface ErrorItemRendererProps extends Pick<TreeRendererProps, \"getHierarchyLevelDetails\"> {\n /** The tree node associated with the error. Used for displaying the node label in error messages and for scrolling to the node. */\n treeNode: Omit<TreeNode, \"errors\">;\n /** The error to render. */\n error: ErrorInfo;\n /** A callback to reload a hierarchy level when an error occurs and `retry` button is clicked. */\n reloadTree: (options: { parentNodeId: string | undefined }) => void;\n /** A callback to scroll to the node associated with the error. */\n scrollToNode: (treeNode: Omit<TreeNode, \"errors\">) => void;\n /** A callback to initiate filtering of the given hierarchy level. */\n filterHierarchyLevel?: (hierarchyLevelDetails: HierarchyLevelDetails) => void;\n}\n\n/**\n * Renders StrataKit `<ErrorRegion.Item />` for all supported error types:\n * - `ResultSetTooLarge` - renders `resultLimitExceeded` message with actions to increase limit or apply filtering\n * - `NoFilterMatches` - renders `noFilteredChildren` message with action to change filter\n * - `ChildrenLoad` - renders `failedToCreateHierarchy` message with action to retry loading\n * - `Unknown` - renders message set on error object.\n *\n * @alpha\n */\nexport function ErrorItemRenderer({\n treeNode,\n error,\n getHierarchyLevelDetails,\n filterHierarchyLevel,\n reloadTree,\n scrollToNode,\n}: ErrorItemRendererProps): JSX.Element {\n const translate = useTranslation();\n\n if (error.type === \"ResultSetTooLarge\") {\n const limit = error.resultSetSizeLimit;\n const onOverrideLimit = () => getHierarchyLevelDetails(treeNode.id)?.setSizeLimit(MAX_LIMIT_OVERRIDE);\n return (\n <ErrorItemContainer\n treeNode={treeNode}\n actions={[\n {\n action: () => {\n onOverrideLimit();\n },\n label: translate(\"increaseHierarchyLimit\").replace(\"{{limit}}\", MAX_LIMIT_OVERRIDE.toString()),\n condition: () => limit < MAX_LIMIT_OVERRIDE,\n },\n {\n action: () => {\n const hierarchyLevelDetails = getHierarchyLevelDetails(treeNode.id);\n hierarchyLevelDetails && filterHierarchyLevel?.(hierarchyLevelDetails);\n },\n label: translate(\"increaseHierarchyLimitWithFiltering\"),\n condition: () => !!filterHierarchyLevel && !!treeNode.isFilterable,\n },\n ]}\n message={translate(\"resultLimitExceeded\").replace(\"{{limit}}\", limit.toString())}\n scrollToElement={() => scrollToNode(treeNode)}\n />\n );\n }\n if (error.type === \"NoFilterMatches\") {\n return (\n <ErrorItemContainer\n treeNode={treeNode}\n actions={[\n {\n action: () => {\n const hierarchyLevelDetails = getHierarchyLevelDetails(treeNode.id);\n hierarchyLevelDetails && filterHierarchyLevel?.(hierarchyLevelDetails);\n },\n label: translate(\"noFilteredChildrenChangeFilter\"),\n condition: () => true,\n },\n ]}\n message={translate(\"noFilteredChildren\")}\n scrollToElement={() => scrollToNode(treeNode)}\n />\n );\n }\n if (error.type === \"ChildrenLoad\") {\n return (\n <ErrorItemContainer\n treeNode={treeNode}\n actions={[\n { action: () => reloadTree({ parentNodeId: treeNode.id }), label: translate(\"retry\"), condition: () => true },\n ]}\n message={translate(\"failedToCreateHierarchy\")}\n scrollToElement={() => scrollToNode(treeNode)}\n />\n );\n }\n return (\n <ErrorItemContainer treeNode={treeNode} message={error.message} scrollToElement={() => scrollToNode(treeNode)} />\n );\n}\n\ntype ErrorItemContainerProps = {\n treeNode: Omit<TreeNode, \"errors\">;\n message: string;\n actions?: { action: () => void; label: string; condition: () => boolean }[];\n} & Pick<MessageWithLinkProps, \"scrollToElement\">;\n\nfunction ErrorItemContainer({ treeNode, message, actions, scrollToElement }: ErrorItemContainerProps) {\n return (\n <ErrorRegion.Item\n message={<MessageWithLink linkLabel={treeNode.label} scrollToElement={scrollToElement} message={message} />}\n messageId={treeNode.id}\n actions={actions\n ?.filter(({ condition }) => condition())\n .map(({ label, action }) => (\n <Text key={label} variant=\"body-sm\">\n <Anchor onClick={action} render={<button />}>\n {label}\n </Anchor>\n </Text>\n ))}\n />\n );\n}\n\ninterface MessageWithLinkProps {\n scrollToElement: () => void;\n message: string;\n linkLabel?: string;\n}\n\nfunction MessageWithLink({ linkLabel, scrollToElement, message }: MessageWithLinkProps) {\n const splitMessage = message.split(\"{{node}}\", 2);\n return (\n <div style={{ display: \"flex\", whiteSpace: \"pre\", flexWrap: \"wrap\" }}>\n {splitMessage[0]}\n <Anchor onClick={scrollToElement} render={<button />}>\n {linkLabel}\n </Anchor>\n {splitMessage[1] ? splitMessage[1] : null}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { ErrorInfo } from "../TreeNode.js";
2
1
  import { RootErrorRendererProps } from "../Renderers.js";
3
2
  import { JSX } from "react";
4
3
 
@@ -6,12 +5,7 @@ import { JSX } from "react";
6
5
  /**
7
6
  * @alpha
8
7
  */
9
- type StrataKitRootErrorRendererProps = {
10
- /**
11
- * Root error to be displayed
12
- */
13
- error: ErrorInfo;
14
- } & RootErrorRendererProps;
8
+ type StrataKitRootErrorRendererProps = RootErrorRendererProps;
15
9
  /**
16
10
  * A component that renders root node error state.
17
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"RootErrorRenderer.d.ts","names":[],"sources":["../../../src/presentation-hierarchies-react/stratakit/RootErrorRenderer.tsx"],"mappings":";;;;;;;AAkBA;KAAY,+BAAA;;;;EAIV,KAAA,EAAO,SAAA;AAAA,IACL,sBAAA;;;AAOJ;;;iBAAgB,0BAAA,CAAA;EACd,KAAA;EACA,wBAAA;EACA;AAAA,GACC,+BAAA,GAAkC,GAAA,CAAI,OAAA"}
1
+ {"version":3,"file":"RootErrorRenderer.d.ts","names":[],"sources":["../../../src/presentation-hierarchies-react/stratakit/RootErrorRenderer.tsx"],"mappings":";;;;;;AAiBA;KAAY,+BAAA,GAAkC,sBAAA;;;;AAO9C;;iBAAgB,0BAAA,CAAA;EACd,KAAA;EACA,wBAAA;EACA;AAAA,GACC,+BAAA,GAAkC,GAAA,CAAI,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RootErrorRenderer.js","names":["Button","Text","Icon","useTranslation","errorSvg","JSX","RootErrorRendererProps","ErrorInfo","StrataKitRootErrorRendererProps","error","StrataKitRootErrorRenderer","t0","$","_c","getHierarchyLevelDetails","reloadTree","translate","type","t1","undefined","setSizeLimit","onOverrideLimit","t2","resultSetSizeLimit","replace","toString","t3","t4","action","label","condition","_temp","t5","parentNodeId","state","_temp2","RootErrorContainerProps","message","actions","RootErrorContainer","Symbol","for","height","display","flexDirection","justifyContent","alignItems","gap","textAlign","filter","_temp3","map","_temp4","t6"],"sources":["../../../src/presentation-hierarchies-react/stratakit/RootErrorRenderer.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 { Button, Text } from \"@stratakit/bricks\";\nimport { Icon } from \"@stratakit/foundations\";\nimport { useTranslation } from \"../LocalizationContext.js\";\n\nimport errorSvg from \"@stratakit/icons/status-error.svg\";\n\nimport type { JSX } from \"react\";\nimport type { RootErrorRendererProps } from \"../Renderers.js\";\nimport type { ErrorInfo } from \"../TreeNode.js\";\n\n/**\n * @alpha\n */\nexport type StrataKitRootErrorRendererProps = {\n /**\n * Root error to be displayed\n */\n error: ErrorInfo;\n} & RootErrorRendererProps;\n\n/**\n * A component that renders root node error state.\n *\n * @alpha\n */\nexport function StrataKitRootErrorRenderer({\n error,\n getHierarchyLevelDetails,\n reloadTree,\n}: StrataKitRootErrorRendererProps): JSX.Element {\n const translate = useTranslation();\n\n if (error.type === \"ResultSetTooLarge\") {\n const onOverrideLimit = () => getHierarchyLevelDetails(undefined)?.setSizeLimit(\"unbounded\");\n return (\n <RootErrorContainer\n message={translate(\"rootResultLimitExceeded\").replace(\"{{limit}}\", error.resultSetSizeLimit.toString())}\n actions={[\n { action: onOverrideLimit, label: translate(\"increaseHierarchyLimitToUnlimited\"), condition: () => true },\n ]}\n />\n );\n }\n\n return (\n <RootErrorContainer\n message={translate(\"failedToCreateRootHierarchy\")}\n actions={[\n {\n action: () => reloadTree({ parentNodeId: undefined, state: \"reset\" }),\n label: translate(\"retry\"),\n condition: () => true,\n },\n ]}\n />\n );\n}\n\ninterface RootErrorContainerProps {\n message: string;\n actions?: { action: () => void; label: string; condition: () => boolean }[];\n}\n\nfunction RootErrorContainer({ actions, message }: RootErrorContainerProps) {\n return (\n <div\n style={{\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n }}\n >\n <Icon href={errorSvg} size=\"large\" />\n <Text variant={\"body-sm\"} style={{ textAlign: \"center\" }}>\n {message}\n </Text>\n {actions\n ?.filter(({ condition }) => condition())\n .map((action) => {\n return (\n <Button key={action.label} onClick={() => action.action()}>\n {action.label}\n </Button>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RootErrorRenderer.js","names":["Button","Text","Icon","useTranslation","errorSvg","JSX","RootErrorRendererProps","StrataKitRootErrorRendererProps","StrataKitRootErrorRenderer","t0","$","_c","error","getHierarchyLevelDetails","reloadTree","translate","type","t1","undefined","setSizeLimit","onOverrideLimit","t2","resultSetSizeLimit","replace","toString","t3","t4","action","label","condition","_temp","t5","parentNodeId","state","_temp2","RootErrorContainerProps","message","actions","RootErrorContainer","Symbol","for","height","display","flexDirection","justifyContent","alignItems","gap","textAlign","filter","_temp3","map","_temp4","t6"],"sources":["../../../src/presentation-hierarchies-react/stratakit/RootErrorRenderer.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 { Button, Text } from \"@stratakit/bricks\";\nimport { Icon } from \"@stratakit/foundations\";\nimport { useTranslation } from \"../LocalizationContext.js\";\n\nimport errorSvg from \"@stratakit/icons/status-error.svg\";\n\nimport type { JSX } from \"react\";\nimport type { RootErrorRendererProps } from \"../Renderers.js\";\n\n/**\n * @alpha\n */\nexport type StrataKitRootErrorRendererProps = RootErrorRendererProps;\n\n/**\n * A component that renders root node error state.\n *\n * @alpha\n */\nexport function StrataKitRootErrorRenderer({\n error,\n getHierarchyLevelDetails,\n reloadTree,\n}: StrataKitRootErrorRendererProps): JSX.Element {\n const translate = useTranslation();\n\n if (error.type === \"ResultSetTooLarge\") {\n const onOverrideLimit = () => getHierarchyLevelDetails(undefined)?.setSizeLimit(\"unbounded\");\n return (\n <RootErrorContainer\n message={translate(\"rootResultLimitExceeded\").replace(\"{{limit}}\", error.resultSetSizeLimit.toString())}\n actions={[\n { action: onOverrideLimit, label: translate(\"increaseHierarchyLimitToUnlimited\"), condition: () => true },\n ]}\n />\n );\n }\n\n return (\n <RootErrorContainer\n message={translate(\"failedToCreateRootHierarchy\")}\n actions={[\n {\n action: () => reloadTree({ parentNodeId: undefined, state: \"reset\" }),\n label: translate(\"retry\"),\n condition: () => true,\n },\n ]}\n />\n );\n}\n\ninterface RootErrorContainerProps {\n message: string;\n actions?: { action: () => void; label: string; condition: () => boolean }[];\n}\n\nfunction RootErrorContainer({ actions, message }: RootErrorContainerProps) {\n return (\n <div\n style={{\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n }}\n >\n <Icon href={errorSvg} size=\"large\" />\n <Text variant={\"body-sm\"} style={{ textAlign: \"center\" }}>\n {message}\n </Text>\n {actions\n ?.filter(({ condition }) => condition())\n .map((action) => {\n return (\n <Button key={action.label} onClick={() => action.action()}>\n {action.label}\n </Button>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -20,7 +20,7 @@ interface TreeErrorRendererOwnProps {
20
20
  renderError?: (props: ErrorItemRendererProps) => ReactElement;
21
21
  }
22
22
  /** @alpha */
23
- type TreeErrorRendererProps = TreeErrorRendererOwnProps & Omit<ErrorItemRendererProps, "errorNode">;
23
+ type TreeErrorRendererProps = TreeErrorRendererOwnProps & Omit<ErrorItemRendererProps, "treeNode" | "error">;
24
24
  /**
25
25
  * A component that renders error display dropdown using the `unstable_ErrorRegion` component from `@stratakit/structures`.
26
26
  * As input, the component uses a list of `ErrorNode` objects, which are generally created using the `useErrorNodes` hook.
@@ -12,50 +12,64 @@ import { unstable_ErrorRegion } from "@stratakit/structures";
12
12
  * @alpha
13
13
  */
14
14
  function TreeErrorRenderer(t0) {
15
- const $ = c(11);
15
+ const $ = c(13);
16
16
  const { treeLabel, errorNodes, renderError, ...errorItemRendererProps } = t0;
17
17
  const translate = useTranslation();
18
- const errorItems = errorNodes.map((errorNode) => {
19
- const errorRendererProps = {
20
- errorNode,
18
+ const errorItems = errorNodes.flatMap((errorNode) => errorNode.errors.map((error) => {
19
+ if (renderError) return cloneElement(renderError({
20
+ treeNode: errorNode,
21
+ error,
21
22
  ...errorItemRendererProps
22
- };
23
- if (renderError) return cloneElement(renderError(errorRendererProps), { key: errorNode.id });
24
- return /* @__PURE__ */ jsx(ErrorItemRenderer, { ...errorRendererProps }, errorNode.id);
25
- });
23
+ }), { key: `${errorNode.id}:${error.id}` });
24
+ return /* @__PURE__ */ jsx(ErrorItemRenderer, {
25
+ treeNode: errorNode,
26
+ error,
27
+ ...errorItemRendererProps
28
+ }, `${errorNode.id}:${error.id}`);
29
+ }));
26
30
  let t1;
27
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
28
- t1 = { width: "100%" };
29
- $[0] = t1;
30
- } else t1 = $[0];
31
+ if ($[0] !== errorNodes) {
32
+ t1 = errorNodes.reduce(_temp, 0);
33
+ $[0] = errorNodes;
34
+ $[1] = t1;
35
+ } else t1 = $[1];
36
+ const totalErrorCount = t1;
31
37
  let t2;
32
- if ($[1] !== translate || $[2] !== treeLabel) {
33
- t2 = translate("issuesForTree").replace("{{tree_label}}", treeLabel);
34
- $[1] = translate;
35
- $[2] = treeLabel;
36
- $[3] = t2;
37
- } else t2 = $[3];
38
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
39
+ t2 = { width: "100%" };
40
+ $[2] = t2;
41
+ } else t2 = $[2];
38
42
  let t3;
39
- if ($[4] !== errorNodes.length || $[5] !== translate) {
40
- t3 = errorNodes.length === 0 ? translate("noIssuesFound") : translate("issuesFound").replace("{{number_of_issues}}", errorNodes.length.toString());
41
- $[4] = errorNodes.length;
42
- $[5] = translate;
43
- $[6] = t3;
44
- } else t3 = $[6];
43
+ if ($[3] !== translate || $[4] !== treeLabel) {
44
+ t3 = translate("issuesForTree").replace("{{tree_label}}", treeLabel);
45
+ $[3] = translate;
46
+ $[4] = treeLabel;
47
+ $[5] = t3;
48
+ } else t3 = $[5];
45
49
  let t4;
46
- if ($[7] !== errorItems || $[8] !== t2 || $[9] !== t3) {
47
- t4 = /* @__PURE__ */ jsx(unstable_ErrorRegion.Root, {
48
- style: t1,
49
- "aria-label": t2,
50
- label: t3,
50
+ if ($[6] !== totalErrorCount || $[7] !== translate) {
51
+ t4 = totalErrorCount === 0 ? translate("noIssuesFound") : translate("issuesFound").replace("{{number_of_issues}}", totalErrorCount.toString());
52
+ $[6] = totalErrorCount;
53
+ $[7] = translate;
54
+ $[8] = t4;
55
+ } else t4 = $[8];
56
+ let t5;
57
+ if ($[9] !== errorItems || $[10] !== t3 || $[11] !== t4) {
58
+ t5 = /* @__PURE__ */ jsx(unstable_ErrorRegion.Root, {
59
+ style: t2,
60
+ "aria-label": t3,
61
+ label: t4,
51
62
  items: errorItems
52
63
  });
53
- $[7] = errorItems;
54
- $[8] = t2;
55
- $[9] = t3;
56
- $[10] = t4;
57
- } else t4 = $[10];
58
- return t4;
64
+ $[9] = errorItems;
65
+ $[10] = t3;
66
+ $[11] = t4;
67
+ $[12] = t5;
68
+ } else t5 = $[12];
69
+ return t5;
70
+ }
71
+ function _temp(sum, n) {
72
+ return sum + n.errors.length;
59
73
  }
60
74
  //#endregion
61
75
  export { TreeErrorRenderer };
@@ -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","map","errorNode","errorRendererProps","key","id","t1","Symbol","for","width","t2","replace","t3","length","toString","t4"],"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 } 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, \"errorNode\">;\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.map((errorNode) => {\n const errorRendererProps: ErrorItemRendererProps = { errorNode, ...errorItemRendererProps };\n\n if (renderError) {\n return cloneElement(renderError(errorRendererProps), { key: errorNode.id });\n }\n\n return <ErrorItemRenderer key={errorNode.id} {...errorRendererProps} />;\n });\n\n return (\n <ErrorRegion.Root\n style={{ width: \"100%\" }}\n aria-label={translate(\"issuesForTree\").replace(\"{{tree_label}}\", treeLabel)}\n label={\n errorNodes.length === 0\n ? translate(\"noIssuesFound\")\n : translate(\"issuesFound\").replace(\"{{number_of_issues}}\", errorNodes.length.toString())\n }\n items={errorItems}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAwCA,SAAOiB,kBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA2B,MAAA,EAAAV,WAAAC,YAAAE,aAAA,GAAAQ,2BAAAH;CAMhC,MAAAI,YAAkBnB,gBAAgB;CAClC,MAAAoB,aAAmBZ,WAAUa,KAAKC,cAAA;EAChC,MAAAC,qBAAmD;GAAAD;GAAA,GAAgBJ;GAAwB;AAE3F,MAAIR,YAAW,QACNb,aAAaa,YAAYa,mBAAmB,EAAE,EAAAC,KAAOF,UAASG,IAAK,CAAC;AAC5E,SAEM,oBAAC,mBAAD,EAAoC,GAAMF,oBAAsB,EAAxCD,UAASG,GAA+B;GACvE;CAAC,IAAAC;AAAA,KAAAV,EAAA,OAAAW,OAAAC,IAAA,4BAAA,EAAA;AAIQF,OAAA,EAAAG,OAAS,QAAQ;AAAAb,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAAA,IAAAc;AAAA,KAAAd,EAAA,OAAAG,aAAAH,EAAA,OAAAT,WAAA;AACZuB,OAAAX,UAAU,gBAAgB,CAAAY,QAAS,kBAAkBxB,UAAU;AAAAS,IAAA,KAAAG;AAAAH,IAAA,KAAAT;AAAAS,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAR,WAAAyB,UAAAjB,EAAA,OAAAG,WAAA;AAEzEa,OAAAxB,WAAUyB,WAAY,IAClBd,UAAU,gBAC4E,GAAtFA,UAAU,cAAc,CAAAY,QAAS,wBAAwBvB,WAAUyB,OAAOC,UAAW,CAAC;AAAAlB,IAAA,KAAAR,WAAAyB;AAAAjB,IAAA,KAAAG;AAAAH,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAI,cAAAJ,EAAA,OAAAc,MAAAd,EAAA,OAAAgB,IAAA;AAN9FG,OAAA,oBAAA,qBAAA,MAAA;GACS,OAAAT;GACK,cAAAI;GAEV,OAAAE;GAIKZ,OAAAA;GACP,CAAA;AAAAJ,IAAA,KAAAI;AAAAJ,IAAA,KAAAc;AAAAd,IAAA,KAAAgB;AAAAhB,IAAA,MAAAmB;OAAAA,MAAAnB,EAAA;AAAA,QATFmB"}
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.error !== void 0 && node.error.type === "ChildrenLoad") {
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.error && (node.error.type !== "Unknown" || !node.error.isNodeExpandable)) {
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.error ? node.error.id : void 0;
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 = (e) => {
172
- if (treeItemProps.onContextMenu) treeItemProps.onContextMenu(e);
171
+ t12 = (e_1) => {
172
+ if (treeItemProps.onContextMenu) treeItemProps.onContextMenu(e_1);
173
173
  if (!contextMenuActions) return;
174
- e.preventDefault();
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: e.clientX,
180
- y: e.clientY
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