@itwin/components-react 3.6.0-dev.55 → 3.6.0-dev.60

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 (235) hide show
  1. package/lib/cjs/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
  2. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js +3 -3
  3. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  4. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
  5. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
  6. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  7. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
  8. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js +2 -2
  9. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  10. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
  11. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
  12. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  13. package/lib/cjs/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
  14. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js +1 -1
  15. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  16. package/lib/cjs/components-react/common/showhide/ShowHideItem.d.ts +2 -2
  17. package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
  18. package/lib/cjs/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
  19. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js +1 -1
  20. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  21. package/lib/cjs/components-react/editors/ThemedEnumEditor.d.ts +3 -3
  22. package/lib/cjs/components-react/editors/ThemedEnumEditor.js +2 -2
  23. package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
  24. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +22 -25
  25. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  26. package/lib/cjs/components-react/filter-builder/FilterBuilder.js +19 -81
  27. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  28. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
  29. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
  30. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js +83 -0
  31. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
  32. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
  33. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  34. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +16 -10
  35. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  36. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +4 -0
  37. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
  38. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  39. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js +22 -14
  40. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  41. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
  42. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  43. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +11 -5
  44. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  45. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
  46. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  47. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +11 -5
  48. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  49. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
  50. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  51. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +11 -5
  52. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  53. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +50 -7
  54. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  55. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js +60 -8
  56. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  57. package/lib/cjs/components-react/filter-builder/Operators.d.ts +23 -5
  58. package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
  59. package/lib/cjs/components-react/filter-builder/Operators.js +25 -7
  60. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  61. package/lib/cjs/components-react/filter-builder/Types.d.ts +24 -4
  62. package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
  63. package/lib/cjs/components-react/filter-builder/Types.js +11 -1
  64. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  65. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  66. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +2 -2
  67. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  68. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts +1 -1
  69. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  70. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +2 -2
  71. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  72. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  73. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +2 -2
  74. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  75. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts +1 -1
  76. package/lib/cjs/components-react/table/SimpleTableDataProvider.js +1 -1
  77. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
  78. package/lib/cjs/components-react/table/TableDataProvider.d.ts +8 -8
  79. package/lib/cjs/components-react/table/TableDataProvider.js +2 -2
  80. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  81. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
  82. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
  83. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  84. package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  85. package/lib/cjs/components-react/table/component/ColumnDragLayer.js +1 -1
  86. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
  87. package/lib/cjs/components-react/table/component/Table.d.ts +9 -9
  88. package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
  89. package/lib/cjs/components-react/table/component/Table.js +2 -2
  90. package/lib/cjs/components-react/table/component/Table.js.map +1 -1
  91. package/lib/cjs/components-react/table/component/TableCell.d.ts +6 -6
  92. package/lib/cjs/components-react/table/component/TableCell.js +3 -3
  93. package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
  94. package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
  95. package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
  96. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
  97. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
  98. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  99. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
  100. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js +2 -2
  101. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  102. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
  103. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js +1 -1
  104. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  105. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
  106. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js +1 -1
  107. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  108. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  109. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  110. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  111. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +2 -2
  112. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  113. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  114. package/lib/cjs/components-react.d.ts +4 -6
  115. package/lib/cjs/components-react.d.ts.map +1 -1
  116. package/lib/cjs/components-react.js +4 -6
  117. package/lib/cjs/components-react.js.map +1 -1
  118. package/lib/esm/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
  119. package/lib/esm/components-react/breadcrumb/Breadcrumb.js +3 -3
  120. package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  121. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
  122. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
  123. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  124. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
  125. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js +2 -2
  126. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  127. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
  128. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
  129. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  130. package/lib/esm/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
  131. package/lib/esm/components-react/common/showhide/ShowHideDialog.js +1 -1
  132. package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  133. package/lib/esm/components-react/common/showhide/ShowHideItem.d.ts +2 -2
  134. package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
  135. package/lib/esm/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
  136. package/lib/esm/components-react/common/showhide/ShowHideMenu.js +1 -1
  137. package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  138. package/lib/esm/components-react/editors/ThemedEnumEditor.d.ts +3 -3
  139. package/lib/esm/components-react/editors/ThemedEnumEditor.js +2 -2
  140. package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
  141. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +22 -25
  142. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  143. package/lib/esm/components-react/filter-builder/FilterBuilder.js +12 -73
  144. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  145. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
  146. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
  147. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js +60 -0
  148. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
  149. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
  150. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  151. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +11 -5
  152. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  153. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +4 -0
  154. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
  155. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  156. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js +15 -7
  157. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  158. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
  159. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  160. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +7 -1
  161. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  162. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
  163. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  164. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +7 -1
  165. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  166. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
  167. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  168. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +7 -1
  169. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  170. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +50 -7
  171. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  172. package/lib/esm/components-react/filter-builder/FilterBuilderState.js +54 -3
  173. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  174. package/lib/esm/components-react/filter-builder/Operators.d.ts +23 -5
  175. package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
  176. package/lib/esm/components-react/filter-builder/Operators.js +23 -5
  177. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  178. package/lib/esm/components-react/filter-builder/Types.d.ts +24 -4
  179. package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
  180. package/lib/esm/components-react/filter-builder/Types.js +11 -1
  181. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  182. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  183. package/lib/esm/components-react/iconpicker/IconPickerButton.js +2 -2
  184. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  185. package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts +1 -1
  186. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  187. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +2 -2
  188. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  189. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  190. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +2 -2
  191. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  192. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts +1 -1
  193. package/lib/esm/components-react/table/SimpleTableDataProvider.js +1 -1
  194. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
  195. package/lib/esm/components-react/table/TableDataProvider.d.ts +8 -8
  196. package/lib/esm/components-react/table/TableDataProvider.js +2 -2
  197. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  198. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
  199. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
  200. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  201. package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  202. package/lib/esm/components-react/table/component/ColumnDragLayer.js +1 -1
  203. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
  204. package/lib/esm/components-react/table/component/Table.d.ts +9 -9
  205. package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
  206. package/lib/esm/components-react/table/component/Table.js +2 -2
  207. package/lib/esm/components-react/table/component/Table.js.map +1 -1
  208. package/lib/esm/components-react/table/component/TableCell.d.ts +6 -6
  209. package/lib/esm/components-react/table/component/TableCell.js +3 -3
  210. package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
  211. package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
  212. package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
  213. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
  214. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
  215. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  216. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
  217. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js +2 -2
  218. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  219. package/lib/esm/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
  220. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js +1 -1
  221. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  222. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
  223. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js +1 -1
  224. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  225. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  226. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  227. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  228. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +2 -2
  229. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  230. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  231. package/lib/esm/components-react.d.ts +4 -6
  232. package/lib/esm/components-react.d.ts.map +1 -1
  233. package/lib/esm/components-react.js +4 -6
  234. package/lib/esm/components-react.js.map +1 -1
  235. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\n\r\nimport \"./Breadcrumb.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { using } from \"@itwin/core-bentley\";\r\nimport { MessageSeverity, PropertyRecord, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, ContextMenu, ContextMenuItem, DialogButtonType, MessageBox, SplitButton, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport { PropertyValueRendererManager } from \"../properties/ValueRendererManager\";\r\nimport {\r\n DelayLoadedTreeNodeItem, ImmediatelyLoadedTreeNodeItem, isTreeDataProviderInterface, TreeDataProvider, TreeNodeItem,\r\n} from \"../tree/TreeDataProvider\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport {\r\n BeInspireTree, BeInspireTreeEvent, BeInspireTreeNode, BeInspireTreeNodeConfig, BeInspireTreeNodes, MapPayloadToInspireNodeCallback, toNodes,\r\n} from \"./BeInspireTree\";\r\nimport { BreadcrumbPath, BreadcrumbUpdateEventArgs } from \"./BreadcrumbPath\";\r\nimport { getPropertyRecordAsString } from \"./BreadcrumbTreeUtils\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n// cspell:ignore itree autocompleting\r\n\r\n/** @internal */\r\nexport type BreadcrumbNodeRenderer = (props: BreadcrumbNodeProps, node?: TreeNodeItem, parent?: TreeNodeItem) => React.ReactNode;\r\n\r\n/** Properties for [[Breadcrumb]] component\r\n * @beta\r\n * @deprecated\r\n */\r\nexport interface BreadcrumbProps extends CommonProps {\r\n /** Manager to coordinate state between Breadcrumb element and BreadcrumbDetails element. */\r\n path?: BreadcrumbPath;\r\n /** Data provider for tree content */\r\n dataProvider: TreeDataProvider;\r\n /** Initial current node */\r\n initialCurrent?: TreeNodeItem;\r\n /** Character used to separate discrete tree nodes in Breadcrumb text mode. Default: \"\\\\\" */\r\n delimiter?: string;\r\n /** Width in pixels, if number, and in specified css units, if string. Default: \"15em\" */\r\n width?: number | string;\r\n /** Whether to show up-dir directory pop button on the left. Default: true */\r\n showUpDir?: boolean;\r\n /** Which BreadcrumbMode to initially start with. Default: BreadcrumbMode.Dropdown */\r\n initialBreadcrumbMode?: BreadcrumbMode;\r\n /** Whether to show white background and border. Default: true */\r\n background?: boolean;\r\n /** Static breadcrumb element. Default: false */\r\n staticOnly?: boolean;\r\n /** Disable plain-text input for the breadcrumb navigation. Default: false */\r\n dropdownOnly?: boolean;\r\n /** Whether to disallow navigation to leaf nodes (nodes with no children). Default: true */\r\n parentsOnly?: boolean;\r\n /** Callback triggered when child node is loaded with an asynchronous dataProvider. */\r\n onChildrenLoaded?: (parent: TreeNodeItem, children: TreeNodeItem[]) => void;\r\n /** Callback triggered when root nodes are loaded with an asynchronous dataProvider. */\r\n onRootNodesLoaded?: (nodes: TreeNodeItem[]) => void;\r\n\r\n /** @internal */\r\n renderNode?: BreadcrumbNodeRenderer;\r\n /** @internal */\r\n onRender?: () => void;\r\n /** @internal */\r\n expandedNodes?: boolean;\r\n}\r\n\r\n/** Enum for Breadcrumb Mode\r\n * @beta\r\n * @deprecated\r\n */\r\nexport enum BreadcrumbMode {\r\n Dropdown = \"dropdown\",\r\n Input = \"input\",\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbState {\r\n prev: {\r\n dataProvider: TreeDataProvider;\r\n modelReady: boolean;\r\n };\r\n model: BeInspireTree<TreeNodeItem>;\r\n modelReady: boolean;\r\n width: number | string;\r\n current?: TreeNodeItem;\r\n currentMode: BreadcrumbMode;\r\n pathString: string;\r\n}\r\n\r\n/**\r\n * Breadcrumb navigation component, with two discrete modes: text mode and dropdown mode.\r\n * Text mode includes autocomplete suggestions.\r\n * Both dropdown and text mode support arrow and tab navigation.\r\n * @beta\r\n * @deprecated Use Breadcrumbs from itwinui-react instead\r\n */\r\nexport class Breadcrumb extends React.Component<BreadcrumbProps, BreadcrumbState> {\r\n private _mounted: boolean = false;\r\n\r\n /** @internal */\r\n public static defaultProps: Partial<BreadcrumbProps> = {\r\n delimiter: \"\\\\\",\r\n background: true,\r\n initialBreadcrumbMode: BreadcrumbMode.Dropdown,\r\n showUpDir: true,\r\n parentsOnly: true,\r\n width: \"\",\r\n };\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BreadcrumbState>;\r\n\r\n /** @internal */\r\n constructor(props: BreadcrumbProps) {\r\n super(props);\r\n\r\n this.state = {\r\n prev: {\r\n dataProvider: props.dataProvider,\r\n modelReady: false,\r\n },\r\n model: Breadcrumb.createModel(props),\r\n modelReady: false,\r\n width: props.width!,\r\n currentMode: props.initialBreadcrumbMode!,\r\n current: props.initialCurrent,\r\n pathString: \"\",\r\n };\r\n }\r\n\r\n private static createModel(props: BreadcrumbProps) {\r\n return new BeInspireTree<TreeNodeItem>({\r\n dataProvider: props.dataProvider,\r\n mapPayloadToInspireNodeConfig: Breadcrumb.inspireNodeFromTreeNodeItem,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public static getDerivedStateFromProps(props: BreadcrumbProps, state: BreadcrumbState): BreadcrumbState | null {\r\n const providerChanged = (props.dataProvider !== state.prev.dataProvider);\r\n\r\n // create derived state that just updates `prev` values\r\n const derivedState: BreadcrumbState = {\r\n ...state,\r\n prev: {\r\n ...state.prev,\r\n dataProvider: props.dataProvider,\r\n modelReady: state.modelReady,\r\n },\r\n };\r\n\r\n // in case provider changed, have to re-create `model` and reset `modelReady`\r\n if (providerChanged) {\r\n derivedState.model = Breadcrumb.createModel(props);\r\n derivedState.modelReady = false;\r\n }\r\n\r\n return derivedState;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n this.assignModelListeners(this.state.model);\r\n this.assignDataProviderListeners(this.props.dataProvider);\r\n\r\n if (this.props.path) {\r\n this.props.path.setDataProvider(this.props.dataProvider);\r\n this.props.path.BreadcrumbUpdateEvent.addListener(this._handleUpdate);\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n if (this.props.path)\r\n this.props.path.BreadcrumbUpdateEvent.removeListener(this._handleUpdate);\r\n this.dropModelListeners(this.state.model);\r\n this.dropDataProviderListeners(this.props.dataProvider);\r\n this._mounted = false;\r\n }\r\n\r\n /** @internal */\r\n public override shouldComponentUpdate(nextProps: BreadcrumbProps, nextState: BreadcrumbState): boolean {\r\n if (this.state.modelReady !== nextState.modelReady || this.state.model !== nextState.model) {\r\n // always render when modelReady or model changes\r\n return true;\r\n }\r\n\r\n if (!nextState.modelReady) {\r\n // if we got here and model is not ready - don't render\r\n return false;\r\n }\r\n\r\n // otherwise, render when any of the following props / state change\r\n return this.props.renderNode !== nextProps.renderNode\r\n || this.props.dataProvider !== nextProps.dataProvider\r\n || this.props.background !== nextProps.background\r\n || this.props.dropdownOnly !== nextProps.dropdownOnly\r\n || this.props.parentsOnly !== nextProps.parentsOnly\r\n || this.props.showUpDir !== nextProps.showUpDir\r\n || this.state.current !== nextState.current\r\n || this.state.pathString !== nextState.pathString\r\n || this.state.currentMode !== nextState.currentMode\r\n || this.state.model.visible().some((n) => n.isDirty());\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: BreadcrumbProps, prevState: BreadcrumbState) {\r\n if (this.state.model !== prevState.model) {\r\n this.dropModelListeners(prevState.model);\r\n this.assignModelListeners(this.state.model);\r\n }\r\n\r\n if (this.props.dataProvider !== prevProps.dataProvider) {\r\n this.dropDataProviderListeners(prevProps.dataProvider);\r\n this.assignDataProviderListeners(this.props.dataProvider);\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n\r\n private assignModelListeners(model: BeInspireTree<TreeNodeItem>) {\r\n model.on(BeInspireTreeEvent.ChangesApplied, this._onModelChanged);\r\n model.on(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n model.on(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n model.ready.then(() => {\r\n // istanbul ignore else\r\n if (model === this.state.model)\r\n this._onModelReady();\r\n });\r\n }\r\n\r\n private dropModelListeners(model: BeInspireTree<TreeNodeItem>) {\r\n model.removeAllListeners();\r\n }\r\n\r\n private assignDataProviderListeners(provider: TreeDataProvider) {\r\n if (isTreeDataProviderInterface(provider) && provider.onTreeNodeChanged) {\r\n provider.onTreeNodeChanged.addListener(this._onTreeNodeChanged);\r\n }\r\n }\r\n\r\n private dropDataProviderListeners(provider: TreeDataProvider) {\r\n if (isTreeDataProviderInterface(provider) && provider.onTreeNodeChanged) {\r\n provider.onTreeNodeChanged.removeListener(this._onTreeNodeChanged);\r\n }\r\n }\r\n\r\n private _handleUpdate = (args: BreadcrumbUpdateEventArgs) => {\r\n if (args.currentNode && this._mounted) {\r\n const current = this.state.model.node(args.currentNode.id);\r\n if (current) {\r\n const p = current.getTextualHierarchy().join(this.props.delimiter);\r\n this.setState({ current: args.currentNode, pathString: p });\r\n }\r\n } else {\r\n this.setState({ current: undefined, pathString: \"\" });\r\n }\r\n };\r\n\r\n private _onModelLoaded = (rootNodes: BeInspireTreeNodes<TreeNodeItem>) => {\r\n if (this.props.onRootNodesLoaded)\r\n this.props.onRootNodesLoaded(rootNodes.map((n) => n.payload!));\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n const p = current ? current.getTextualHierarchy().join(this.props.delimiter) : \"\";\r\n if (p !== this.state.pathString)\r\n this.setState({ pathString: p });\r\n };\r\n\r\n private _onChildrenLoaded = (parentNode: BeInspireTreeNode<TreeNodeItem>) => {\r\n const children = parentNode.getChildren();\r\n if (this.props.onChildrenLoaded)\r\n this.props.onChildrenLoaded(parentNode.payload!, toNodes<TreeNodeItem>(children).map((c) => c.payload!));\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n const p = current ? current.getTextualHierarchy().join(this.props.delimiter) : \"\";\r\n if (p !== this.state.pathString)\r\n this.setState({ pathString: p });\r\n };\r\n\r\n private _onModelChanged = () => {\r\n // just re-set the model to initiate update\r\n this.setState((prev) => ({ model: prev.model }));\r\n };\r\n\r\n private _onModelReady = () => {\r\n // istanbul ignore else\r\n if (this._mounted) {\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n this.setState((_prevState, props) => ({ modelReady: true, pathString: current ? current.getTextualHierarchy().join(props.delimiter) : \"\" }));\r\n }\r\n };\r\n\r\n private _onTreeNodeChanged = (_items: Array<TreeNodeItem | undefined>) => {\r\n using(this.state.model.pauseRendering(), async (_r) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n await this.state.model.reload();\r\n });\r\n };\r\n\r\n private static inspireNodeFromTreeNodeItem(item: TreeNodeItem, remapper: MapPayloadToInspireNodeCallback<TreeNodeItem>): BeInspireTreeNodeConfig {\r\n const node: BeInspireTreeNodeConfig = {\r\n id: item.id,\r\n text: getPropertyRecordAsString(item.label),\r\n itree: {\r\n state: { collapsed: false },\r\n },\r\n };\r\n if (item.icon)\r\n node.itree!.icon = item.icon;\r\n if ((item as DelayLoadedTreeNodeItem).hasChildren)\r\n node.children = true;\r\n else if ((item as ImmediatelyLoadedTreeNodeItem).children)\r\n node.children = (item as ImmediatelyLoadedTreeNodeItem).children!.map((p) => remapper(p, remapper));\r\n return node;\r\n }\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const classNames = classnames(\"components-breadcrumb\", this.props.background && \"background\", this.props.className);\r\n\r\n if (!this.state.modelReady) {\r\n return (\r\n <div className={classNames} style={this.props.style} />\r\n );\r\n }\r\n const node = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n return (\r\n <div\r\n className={classNames} style={this.props.style}>\r\n <div className=\"components-breadcrumb-head\"\r\n data-testid=\"components-breadcrumb-dropdown-input-parent\">\r\n {this.props.dropdownOnly || this.props.staticOnly ?\r\n <BreadcrumbDropdown\r\n tree={this.state.model}\r\n node={node}\r\n onNodeChange={this._handleNodeChange}\r\n onInputStart={this._setInput}\r\n renderNode={this.props.renderNode}\r\n staticOnly={this.props.staticOnly}\r\n showUpDir={this.props.showUpDir}\r\n parentsOnly={this.props.parentsOnly}\r\n width={this.props.width!}\r\n expandedNode={this.props.expandedNodes} /> :\r\n <InputSwitch\r\n tree={this.state.model}\r\n node={node}\r\n pathString={this.state.pathString}\r\n currentMode={this.state.currentMode}\r\n onInputStart={this._setInput}\r\n onInputCancel={this._setDropdown}\r\n onNodeChange={this._handleNodeChange}\r\n width={this.props.width!}\r\n showUpDir={this.props.showUpDir}\r\n parentsOnly={this.props.parentsOnly}\r\n delimiter={this.props.delimiter!}\r\n onOutsideClick={this._setDropdown}\r\n renderNode={this.props.renderNode}\r\n expandedNode={this.props.expandedNodes} />\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _setDropdown = () => this.setState({ currentMode: BreadcrumbMode.Dropdown });\r\n private _setInput = () => this.setState({ currentMode: BreadcrumbMode.Input });\r\n\r\n private _handleNodeChange = (node: TreeNodeItem | undefined) => {\r\n if (this.props.path)\r\n this.props.path.setCurrentNode(node);\r\n else {\r\n if (!node) {\r\n this.setState({ current: undefined, pathString: \"\" });\r\n } else {\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n const p = current ? current.getTextualHierarchy().join(this.props.delimiter) : \"\";\r\n this.setState({ current: node, pathString: p });\r\n }\r\n }\r\n if (this.state.currentMode !== BreadcrumbMode.Dropdown)\r\n this._setDropdown();\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface InputSwitchProps {\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n pathString: string;\r\n currentMode: BreadcrumbMode;\r\n onInputStart?: () => void;\r\n onInputCancel: () => void;\r\n onNodeChange: (node?: TreeNodeItem) => void;\r\n showUpDir?: boolean;\r\n parentsOnly?: boolean;\r\n renderNode?: BreadcrumbNodeRenderer;\r\n width: number | string;\r\n delimiter: string;\r\n expandedNode?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class InputSwitchComponent extends React.PureComponent<InputSwitchProps> {\r\n public override render(): React.ReactNode {\r\n const { currentMode, tree, node, onInputStart, onInputCancel, onNodeChange, renderNode, width, showUpDir, delimiter, expandedNode } = this.props;\r\n switch (currentMode) {\r\n case BreadcrumbMode.Dropdown:\r\n return <BreadcrumbDropdown tree={tree} node={node} onNodeChange={onNodeChange} renderNode={renderNode} onInputStart={onInputStart}\r\n parentsOnly={this.props.parentsOnly} showUpDir={showUpDir} width={width} expandedNode={expandedNode} />;\r\n case BreadcrumbMode.Input:\r\n return <BreadcrumbInput tree={tree} node={node} onNodeChange={onNodeChange} onCancel={onInputCancel}\r\n parentsOnly={this.props.parentsOnly} delimiter={delimiter} width={width} pathString={this.props.pathString} />;\r\n default:\r\n return <div data-testid=\"components-breadcrumb-error-unknown-mode\">{UiComponents.translate(\"breadcrumb.errorUnknownMode\")}</div>;\r\n }\r\n }\r\n}\r\n/** @internal */\r\nconst InputSwitch = withOnOutsideClick(InputSwitchComponent); // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n/** @internal */\r\nexport interface BreadcrumbInputProps {\r\n width: number | string;\r\n delimiter?: string;\r\n\r\n onCancel: () => void;\r\n onNodeChange: (node: TreeNodeItem | undefined) => void;\r\n parentsOnly?: boolean;\r\n\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n\r\n pathString: string;\r\n}\r\n\r\n/** @internal */\r\nexport interface BreadcrumbInputState {\r\n autocompleting: boolean;\r\n autocompleteList: string[];\r\n messageBoxOpened: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class BreadcrumbInput extends React.Component<BreadcrumbInputProps, BreadcrumbInputState> {\r\n private _inputElement: HTMLInputElement | null = null;\r\n private _autocomplete: ContextMenu | null = null;\r\n private _mounted: boolean = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BreadcrumbInputState> = {\r\n autocompleting: false,\r\n autocompleteList: [],\r\n messageBoxOpened: false,\r\n };\r\n\r\n public override render(): JSX.Element {\r\n return (\r\n <div className=\"components-breadcrumb-input-root\" data-testid=\"components-breadcrumb-input-root\">\r\n <input\r\n className=\"components-breadcrumb-input\"\r\n data-testid=\"components-breadcrumb-input\"\r\n type=\"text\"\r\n ref={(e) => { this._inputElement = e; }}\r\n style={{ width: this.props.width }}\r\n onKeyDown={this._handleKeyDown} onKeyUp={this._handleKeyUp}\r\n onChange={this._handleChange} onPaste={this._handleChange} onCut={this._handleChange} onFocus={this._handleChange} onClick={this._handleChange}\r\n spellCheck={false}></input>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\r\n <div className=\"components-breadcrumb-close icon icon-close\" data-testid=\"components-breadcrumb-input-close\" onClick={this._handleClose}\r\n role=\"button\" tabIndex={-1} />\r\n <ContextMenu\r\n ref={(el) => { this._autocomplete = el; }}\r\n style={{ width: \"100%\" }}\r\n opened={this.state.autocompleting}\r\n edgeLimit={false}\r\n selectedIndex={0} floating={false} autoflip={false}\r\n onEsc={() => {\r\n // istanbul ignore else\r\n if (this._inputElement)\r\n this._inputElement.focus();\r\n }}\r\n >\r\n {this.state.autocompleteList.map((listItem, index) => {\r\n let l = 0;\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n l = this._inputElement.value.length;\r\n }\r\n return (\r\n <ContextMenuItem\r\n key={index}\r\n onSelect={(event) => {\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n this._inputElement.value = listItem;\r\n this._inputElement.focus();\r\n this._inputElement.setSelectionRange(listItem.length, listItem.length);\r\n\r\n const autocompleteStr = this._inputElement.value.substring(0, this._inputElement.selectionEnd!);\r\n this._getAutocompleteList(autocompleteStr).then((list) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({\r\n autocompleting: false,\r\n autocompleteList: list,\r\n });\r\n });\r\n event.stopPropagation();\r\n }\r\n }}>\r\n <span className=\"components-breadcrumb-selected\">{listItem.substr(0, l)}</span>{listItem.substr(l)}\r\n </ContextMenuItem>\r\n );\r\n })}\r\n </ContextMenu>\r\n <MessageBox opened={this.state.messageBoxOpened} modal={false} onClose={this._handleMessageBoxClose} severity={MessageSeverity.Warning} buttonCluster={[{ type: DialogButtonType.OK, onClick: this._handleMessageBoxClose }]}>\r\n {UiComponents.translate(\"breadcrumb.invalidBreadcrumbPath\")}\r\n </MessageBox>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleMessageBoxClose = () => {\r\n this.setState({ messageBoxOpened: false });\r\n };\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const activeWindow = this._inputElement.ownerDocument.defaultView;\r\n activeWindow && activeWindow.addEventListener(\"click\", this._handleClick);\r\n this._inputElement.value = this.props.pathString;\r\n this._inputElement.focus();\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const activeWindow = this._inputElement.ownerDocument.defaultView;\r\n activeWindow && activeWindow.removeEventListener(\"click\", this._handleClick);\r\n }\r\n this._mounted = false;\r\n }\r\n\r\n private _handleClose = () => {\r\n this.props.onCancel();\r\n this.setState({ autocompleting: false });\r\n };\r\n\r\n private _getAutocompleteList = async (path: string) => {\r\n const node = await this._findChildParentPartial(path);\r\n if (node) {\r\n const baseString = node.getTextualHierarchy().join(this.props.delimiter);\r\n const children = node.getChildren();\r\n const parentChildren = this.props.parentsOnly ? children.filter((child) => child.hasOrWillHaveChildren()) : children;\r\n const strList = parentChildren.map((n) => baseString + this.props.delimiter! + n.toString());\r\n return strList.filter((e) => e.substr(0, path.length) === path);\r\n } else {\r\n const nodes = this.props.tree.nodes();\r\n const parentRoots = this.props.parentsOnly ? nodes.filter((child) => child.hasOrWillHaveChildren()) : nodes;\r\n const strList = parentRoots.map((n) => n.toString() + this.props.delimiter!);\r\n return strList.filter((e) => e.substr(0, path.length) === path);\r\n }\r\n };\r\n\r\n private _findChildUserInput = async (p: string): Promise<BeInspireTreeNode<TreeNodeItem> | undefined> => {\r\n const delimiter = this.props.delimiter!;\r\n if (p.endsWith(delimiter)) // strip last delimiter if at end\r\n p = p.substr(0, p.length - delimiter.length);\r\n const root = this.props.tree.nodes();\r\n for (const node of root) {\r\n const found = await this._find(node, p);\r\n if (found)\r\n return found;\r\n }\r\n return undefined;\r\n };\r\n private _findChildParentPartial = async (p: string): Promise<BeInspireTreeNode<TreeNodeItem> | undefined> => {\r\n const delimiter = this.props.delimiter!;\r\n const lastDel = p.lastIndexOf(delimiter);\r\n if (lastDel !== -1) // strip last delimiter and everything after\r\n p = p.substring(0, lastDel);\r\n else\r\n return undefined;\r\n const root = this.props.tree.nodes();\r\n for (const node of root) {\r\n const found = await this._find(node, p);\r\n if (found)\r\n return found;\r\n }\r\n return undefined;\r\n };\r\n private _find = async (node: BeInspireTreeNode<TreeNodeItem>, p: string): Promise<BeInspireTreeNode<TreeNodeItem> | undefined> => {\r\n const delimiter = this.props.delimiter!;\r\n // remove leading delimiter\r\n if (p.indexOf(delimiter) === 0)\r\n p = p.substr(delimiter.length);\r\n const { text } = node;\r\n if (text === p) {\r\n return node;\r\n }\r\n if (p.indexOf(text) === 0 && node.hasOrWillHaveChildren()) {\r\n const children = node.getChildren();\r\n for (const child of children) {\r\n const n = await this._find(child as BeInspireTreeNode<TreeNodeItem>, p.substr(text.length));\r\n if (n)\r\n return n;\r\n }\r\n }\r\n return undefined;\r\n };\r\n\r\n private _handleClick = (event: MouseEvent): void => {\r\n // istanbul ignore else\r\n if (this._autocomplete) {\r\n // istanbul ignore else\r\n if (this._inputElement && event.target === this._inputElement) {\r\n this.setState({ autocompleting: false });\r\n this._inputElement.focus();\r\n }\r\n }\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (event.key) {\r\n case SpecialKey.ArrowUp:\r\n case SpecialKey.ArrowDown:\r\n event.preventDefault();\r\n }\r\n };\r\n private _handleKeyUp = async (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ autocompleting: false });\r\n break;\r\n case SpecialKey.ArrowUp:\r\n case SpecialKey.ArrowDown:\r\n event.preventDefault();\r\n // istanbul ignore else\r\n if (this._autocomplete && this.state.autocompleteList.length > 0) {\r\n this._autocomplete.focus();\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ autocompleting: true });\r\n }\r\n break;\r\n case SpecialKey.Enter:\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const path = this._inputElement.value;\r\n if (path === \"\" || path === this.props.delimiter!) {\r\n this.props.onNodeChange(undefined);\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ autocompleting: false });\r\n } else {\r\n const node = await this._findChildUserInput(path);\r\n if (node === undefined)\r\n this.setState({ messageBoxOpened: true });\r\n else\r\n this.props.onNodeChange(node.payload);\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n private _handleChange = (): void => {\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const autocompleteStr = this._inputElement.value.substring(0, this._inputElement.selectionEnd!);\r\n this._getAutocompleteList(autocompleteStr).then((list) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (this._mounted)\r\n this.setState({\r\n autocompleting: list.length > 0,\r\n autocompleteList: list,\r\n });\r\n });\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbDropdownProps {\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n onInputStart?: () => void;\r\n onNodeChange: (node: TreeNodeItem | undefined) => void;\r\n staticOnly?: boolean;\r\n parentsOnly?: boolean;\r\n delimiter?: string;\r\n width: number | string;\r\n showUpDir?: boolean;\r\n renderNode?: BreadcrumbNodeRenderer;\r\n expandedNode?: boolean;\r\n}\r\n\r\n/** @internal */\r\nclass BreadcrumbDropdown extends React.Component<BreadcrumbDropdownProps> {\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this.props.tree.on(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n this.props.tree.on(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this.props.tree.removeListener(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n this.props.tree.removeListener(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n }\r\n\r\n private _onModelLoaded = (_rootNodes: BeInspireTreeNodes<TreeNodeItem>) => {\r\n this.forceUpdate();\r\n };\r\n\r\n private _onChildrenLoaded = (_parentNode: BeInspireTreeNode<TreeNodeItem>) => {\r\n this.forceUpdate();\r\n };\r\n\r\n /** @internal */\r\n public override shouldComponentUpdate(nextProps: BreadcrumbDropdownProps) {\r\n return this.props.tree !== nextProps.tree ||\r\n this.props.node !== nextProps.node ||\r\n (nextProps.node && /* istanbul ignore next */ nextProps.node.isDirty()) ||\r\n this.props.onInputStart !== nextProps.onInputStart ||\r\n this.props.delimiter !== nextProps.delimiter ||\r\n this.props.width !== nextProps.width ||\r\n this.props.renderNode !== nextProps.renderNode;\r\n }\r\n\r\n public override render(): JSX.Element | null {\r\n const node = this.props.node;\r\n let nodes: BeInspireTreeNodes<TreeNodeItem> | undefined;\r\n if (node) {\r\n nodes = toNodes<TreeNodeItem>(node.getParents());\r\n nodes.reverse();\r\n nodes.push(node);\r\n }\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <div\r\n className=\"components-breadcrumb-dropdown\"\r\n data-testid=\"components-breadcrumb-dropdown-background\"\r\n style={{ width: this.props.width }}\r\n onClick={this._focusInput}\r\n role=\"button\" tabIndex={-1}\r\n >\r\n {!this.props.staticOnly && this.props.showUpDir ?\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <div data-testid=\"components-breadcrumb-up-dir\"\r\n className={classnames(\r\n \"components-breadcrumb-up-dir\",\r\n \"icon\", \"icon-sort-up\",\r\n { root: this.props.node === undefined })\r\n } onClick={this._handleUpClick} role=\"button\" tabIndex={-1} />\r\n : undefined\r\n }\r\n <div className=\"components-breadcrumb-crumb-list\"\r\n data-testid=\"components-breadcrumb-crumb-list\">\r\n <BreadcrumbDropdownNode\r\n key={-1}\r\n tree={this.props.tree}\r\n node={undefined}\r\n onNodeSelected={this.props.onNodeChange}\r\n staticOnly={this.props.staticOnly}\r\n parentsOnly={this.props.parentsOnly}\r\n last={!nodes || nodes.length === 0}\r\n renderNode={this.props.renderNode}\r\n expandedNode={this.props.expandedNode} />\r\n {nodes && nodes.map((n, i) => {\r\n return (\r\n <BreadcrumbDropdownNode\r\n key={i}\r\n tree={this.props.tree}\r\n node={n}\r\n onNodeSelected={this.props.onNodeChange}\r\n staticOnly={this.props.staticOnly}\r\n parentsOnly={this.props.parentsOnly}\r\n last={i === nodes!.length - 1}\r\n renderNode={this.props.renderNode}\r\n expandedNode={this.props.expandedNode} />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleUpClick = () => {\r\n let parent: TreeNodeItem | undefined;\r\n if (this.props.node) {\r\n const p = (this.props.node.getParent()) as BeInspireTreeNode<TreeNodeItem>;\r\n if (p)\r\n parent = p.payload;\r\n }\r\n this.props.onNodeChange(parent);\r\n };\r\n\r\n private _focusInput = (event: React.MouseEvent) => {\r\n if (event.target === event.currentTarget && this.props.onInputStart) // check if click is direct, or bubbled\r\n this.props.onInputStart();\r\n };\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbDropdownNodeProps {\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n onNodeSelected: (node: TreeNodeItem | undefined) => void;\r\n staticOnly?: boolean;\r\n parentsOnly?: boolean;\r\n last?: boolean;\r\n renderNode?: BreadcrumbNodeRenderer;\r\n expandedNode?: boolean;\r\n}\r\n\r\n/** @internal */\r\nclass BreadcrumbDropdownNode extends React.Component<BreadcrumbDropdownNodeProps> {\r\n constructor(props: BreadcrumbDropdownNodeProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const { node } = this.props;\r\n let nodeChildren: Array<BeInspireTreeNode<TreeNodeItem>> = this.props.tree.nodes();\r\n if (node)\r\n nodeChildren = toNodes<TreeNodeItem>(node.getChildren());\r\n const n = node && node.payload;\r\n let parent: TreeNodeItem | undefined;\r\n if (node) {\r\n const p = node.getParent() as BeInspireTreeNode<TreeNodeItem>;\r\n if (p)\r\n parent = p.payload;\r\n }\r\n const label = n && n.label ? n.label : PropertyRecord.fromString(\"\");\r\n const icon = n && n.icon ? n.icon : \"icon-browse\";\r\n const renderNode = this.props.renderNode ? this.props.renderNode : this.renderNode;\r\n if (this.props.parentsOnly)\r\n nodeChildren = nodeChildren.filter((child) => child.hasOrWillHaveChildren());\r\n if (nodeChildren.length > 0) {\r\n if (this.props.staticOnly) {\r\n return <span data-testid=\"components-breadcrumb-static-button\" className=\"components-breadcrumb-split-button static\">\r\n {renderNode({ label, icon }, n, parent)}\r\n {!this.props.last ? <span className=\"static-arrow-icon icon icon-chevron-right\" /> : undefined}\r\n </span>;\r\n }\r\n return (\r\n <SplitButton\r\n className=\"components-breadcrumb-split-button\"\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n this.props.onNodeSelected(n);\r\n }}\r\n label={renderNode({ label, icon }, n, parent)}\r\n initialExpanded={this.props.expandedNode}\r\n >\r\n {nodeChildren.map((child, d) => {\r\n return (\r\n <ContextMenuItem\r\n key={d}\r\n icon={child.payload!.icon}\r\n onSelect={(_event) => {\r\n this.props.onNodeSelected(child.payload);\r\n }}>\r\n {PropertyValueRendererManager.defaultManager.render(child.payload!.label)}\r\n </ContextMenuItem>\r\n );\r\n })}\r\n </SplitButton>\r\n );\r\n } else {\r\n return (\r\n <span className={classnames(\"components-breadcrumb-end-node\", { static: this.props.staticOnly })}>\r\n {renderNode({ label, icon }, n, parent)}\r\n </span>\r\n );\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private renderNode = (props: BreadcrumbNodeProps, _node?: TreeNodeItem, _parent?: TreeNodeItem) => {\r\n return <BreadcrumbNode label={props.label} icon={props.icon} />;\r\n };\r\n}\r\n\r\n/** Properties for [[BreadcrumbNode]] component\r\n * @beta\r\n * @deprecated\r\n */\r\nexport interface BreadcrumbNodeProps {\r\n /** Icon class string */\r\n icon: string;\r\n /** Node label */\r\n label: PropertyRecord;\r\n /** @internal */\r\n onRender?: () => void;\r\n}\r\n\r\n/** Default BreadcrumbNode component\r\n * @beta\r\n * @deprecated\r\n */\r\nexport class BreadcrumbNode extends React.Component<BreadcrumbNodeProps> {\r\n constructor(props: BreadcrumbNodeProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const { icon, label } = this.props;\r\n return <span data-testid=\"components-breadcrumb-node\"><span className={classnames(\"icon\", icon)} />{PropertyValueRendererManager.defaultManager.render(label)}</span>;\r\n }\r\n\r\n public override componentDidMount() {\r\n // istanbul ignore next\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n\r\n public override componentDidUpdate() {\r\n // istanbul ignore next\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Breadcrumb.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\n\r\nimport \"./Breadcrumb.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { using } from \"@itwin/core-bentley\";\r\nimport { MessageSeverity, PropertyRecord, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, ContextMenu, ContextMenuItem, DialogButtonType, MessageBox, SplitButton, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport { PropertyValueRendererManager } from \"../properties/ValueRendererManager\";\r\nimport {\r\n DelayLoadedTreeNodeItem, ImmediatelyLoadedTreeNodeItem, isTreeDataProviderInterface, TreeDataProvider, TreeNodeItem,\r\n} from \"../tree/TreeDataProvider\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport {\r\n BeInspireTree, BeInspireTreeEvent, BeInspireTreeNode, BeInspireTreeNodeConfig, BeInspireTreeNodes, MapPayloadToInspireNodeCallback, toNodes,\r\n} from \"./BeInspireTree\";\r\nimport { BreadcrumbPath, BreadcrumbUpdateEventArgs } from \"./BreadcrumbPath\";\r\nimport { getPropertyRecordAsString } from \"./BreadcrumbTreeUtils\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n// cspell:ignore itree autocompleting\r\n\r\n/** @internal */\r\nexport type BreadcrumbNodeRenderer = (props: BreadcrumbNodeProps, node?: TreeNodeItem, parent?: TreeNodeItem) => React.ReactNode;\r\n\r\n/** Properties for [[Breadcrumb]] component\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport interface BreadcrumbProps extends CommonProps {\r\n /** Manager to coordinate state between Breadcrumb element and BreadcrumbDetails element. */\r\n path?: BreadcrumbPath;\r\n /** Data provider for tree content */\r\n dataProvider: TreeDataProvider;\r\n /** Initial current node */\r\n initialCurrent?: TreeNodeItem;\r\n /** Character used to separate discrete tree nodes in Breadcrumb text mode. Default: \"\\\\\" */\r\n delimiter?: string;\r\n /** Width in pixels, if number, and in specified css units, if string. Default: \"15em\" */\r\n width?: number | string;\r\n /** Whether to show up-dir directory pop button on the left. Default: true */\r\n showUpDir?: boolean;\r\n /** Which BreadcrumbMode to initially start with. Default: BreadcrumbMode.Dropdown */\r\n initialBreadcrumbMode?: BreadcrumbMode;\r\n /** Whether to show white background and border. Default: true */\r\n background?: boolean;\r\n /** Static breadcrumb element. Default: false */\r\n staticOnly?: boolean;\r\n /** Disable plain-text input for the breadcrumb navigation. Default: false */\r\n dropdownOnly?: boolean;\r\n /** Whether to disallow navigation to leaf nodes (nodes with no children). Default: true */\r\n parentsOnly?: boolean;\r\n /** Callback triggered when child node is loaded with an asynchronous dataProvider. */\r\n onChildrenLoaded?: (parent: TreeNodeItem, children: TreeNodeItem[]) => void;\r\n /** Callback triggered when root nodes are loaded with an asynchronous dataProvider. */\r\n onRootNodesLoaded?: (nodes: TreeNodeItem[]) => void;\r\n\r\n /** @internal */\r\n renderNode?: BreadcrumbNodeRenderer;\r\n /** @internal */\r\n onRender?: () => void;\r\n /** @internal */\r\n expandedNodes?: boolean;\r\n}\r\n\r\n/** Enum for Breadcrumb Mode\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport enum BreadcrumbMode {\r\n Dropdown = \"dropdown\",\r\n Input = \"input\",\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbState {\r\n prev: {\r\n dataProvider: TreeDataProvider;\r\n modelReady: boolean;\r\n };\r\n model: BeInspireTree<TreeNodeItem>;\r\n modelReady: boolean;\r\n width: number | string;\r\n current?: TreeNodeItem;\r\n currentMode: BreadcrumbMode;\r\n pathString: string;\r\n}\r\n\r\n/**\r\n * Breadcrumb navigation component, with two discrete modes: text mode and dropdown mode.\r\n * Text mode includes autocomplete suggestions.\r\n * Both dropdown and text mode support arrow and tab navigation.\r\n * @beta\r\n * @deprecated in 3.0. Use Breadcrumbs from itwinui-react instead\r\n */\r\nexport class Breadcrumb extends React.Component<BreadcrumbProps, BreadcrumbState> {\r\n private _mounted: boolean = false;\r\n\r\n /** @internal */\r\n public static defaultProps: Partial<BreadcrumbProps> = {\r\n delimiter: \"\\\\\",\r\n background: true,\r\n initialBreadcrumbMode: BreadcrumbMode.Dropdown,\r\n showUpDir: true,\r\n parentsOnly: true,\r\n width: \"\",\r\n };\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BreadcrumbState>;\r\n\r\n /** @internal */\r\n constructor(props: BreadcrumbProps) {\r\n super(props);\r\n\r\n this.state = {\r\n prev: {\r\n dataProvider: props.dataProvider,\r\n modelReady: false,\r\n },\r\n model: Breadcrumb.createModel(props),\r\n modelReady: false,\r\n width: props.width!,\r\n currentMode: props.initialBreadcrumbMode!,\r\n current: props.initialCurrent,\r\n pathString: \"\",\r\n };\r\n }\r\n\r\n private static createModel(props: BreadcrumbProps) {\r\n return new BeInspireTree<TreeNodeItem>({\r\n dataProvider: props.dataProvider,\r\n mapPayloadToInspireNodeConfig: Breadcrumb.inspireNodeFromTreeNodeItem,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public static getDerivedStateFromProps(props: BreadcrumbProps, state: BreadcrumbState): BreadcrumbState | null {\r\n const providerChanged = (props.dataProvider !== state.prev.dataProvider);\r\n\r\n // create derived state that just updates `prev` values\r\n const derivedState: BreadcrumbState = {\r\n ...state,\r\n prev: {\r\n ...state.prev,\r\n dataProvider: props.dataProvider,\r\n modelReady: state.modelReady,\r\n },\r\n };\r\n\r\n // in case provider changed, have to re-create `model` and reset `modelReady`\r\n if (providerChanged) {\r\n derivedState.model = Breadcrumb.createModel(props);\r\n derivedState.modelReady = false;\r\n }\r\n\r\n return derivedState;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n this.assignModelListeners(this.state.model);\r\n this.assignDataProviderListeners(this.props.dataProvider);\r\n\r\n if (this.props.path) {\r\n this.props.path.setDataProvider(this.props.dataProvider);\r\n this.props.path.BreadcrumbUpdateEvent.addListener(this._handleUpdate);\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n if (this.props.path)\r\n this.props.path.BreadcrumbUpdateEvent.removeListener(this._handleUpdate);\r\n this.dropModelListeners(this.state.model);\r\n this.dropDataProviderListeners(this.props.dataProvider);\r\n this._mounted = false;\r\n }\r\n\r\n /** @internal */\r\n public override shouldComponentUpdate(nextProps: BreadcrumbProps, nextState: BreadcrumbState): boolean {\r\n if (this.state.modelReady !== nextState.modelReady || this.state.model !== nextState.model) {\r\n // always render when modelReady or model changes\r\n return true;\r\n }\r\n\r\n if (!nextState.modelReady) {\r\n // if we got here and model is not ready - don't render\r\n return false;\r\n }\r\n\r\n // otherwise, render when any of the following props / state change\r\n return this.props.renderNode !== nextProps.renderNode\r\n || this.props.dataProvider !== nextProps.dataProvider\r\n || this.props.background !== nextProps.background\r\n || this.props.dropdownOnly !== nextProps.dropdownOnly\r\n || this.props.parentsOnly !== nextProps.parentsOnly\r\n || this.props.showUpDir !== nextProps.showUpDir\r\n || this.state.current !== nextState.current\r\n || this.state.pathString !== nextState.pathString\r\n || this.state.currentMode !== nextState.currentMode\r\n || this.state.model.visible().some((n) => n.isDirty());\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: BreadcrumbProps, prevState: BreadcrumbState) {\r\n if (this.state.model !== prevState.model) {\r\n this.dropModelListeners(prevState.model);\r\n this.assignModelListeners(this.state.model);\r\n }\r\n\r\n if (this.props.dataProvider !== prevProps.dataProvider) {\r\n this.dropDataProviderListeners(prevProps.dataProvider);\r\n this.assignDataProviderListeners(this.props.dataProvider);\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n\r\n private assignModelListeners(model: BeInspireTree<TreeNodeItem>) {\r\n model.on(BeInspireTreeEvent.ChangesApplied, this._onModelChanged);\r\n model.on(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n model.on(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n model.ready.then(() => {\r\n // istanbul ignore else\r\n if (model === this.state.model)\r\n this._onModelReady();\r\n });\r\n }\r\n\r\n private dropModelListeners(model: BeInspireTree<TreeNodeItem>) {\r\n model.removeAllListeners();\r\n }\r\n\r\n private assignDataProviderListeners(provider: TreeDataProvider) {\r\n if (isTreeDataProviderInterface(provider) && provider.onTreeNodeChanged) {\r\n provider.onTreeNodeChanged.addListener(this._onTreeNodeChanged);\r\n }\r\n }\r\n\r\n private dropDataProviderListeners(provider: TreeDataProvider) {\r\n if (isTreeDataProviderInterface(provider) && provider.onTreeNodeChanged) {\r\n provider.onTreeNodeChanged.removeListener(this._onTreeNodeChanged);\r\n }\r\n }\r\n\r\n private _handleUpdate = (args: BreadcrumbUpdateEventArgs) => {\r\n if (args.currentNode && this._mounted) {\r\n const current = this.state.model.node(args.currentNode.id);\r\n if (current) {\r\n const p = current.getTextualHierarchy().join(this.props.delimiter);\r\n this.setState({ current: args.currentNode, pathString: p });\r\n }\r\n } else {\r\n this.setState({ current: undefined, pathString: \"\" });\r\n }\r\n };\r\n\r\n private _onModelLoaded = (rootNodes: BeInspireTreeNodes<TreeNodeItem>) => {\r\n if (this.props.onRootNodesLoaded)\r\n this.props.onRootNodesLoaded(rootNodes.map((n) => n.payload!));\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n const p = current ? current.getTextualHierarchy().join(this.props.delimiter) : \"\";\r\n if (p !== this.state.pathString)\r\n this.setState({ pathString: p });\r\n };\r\n\r\n private _onChildrenLoaded = (parentNode: BeInspireTreeNode<TreeNodeItem>) => {\r\n const children = parentNode.getChildren();\r\n if (this.props.onChildrenLoaded)\r\n this.props.onChildrenLoaded(parentNode.payload!, toNodes<TreeNodeItem>(children).map((c) => c.payload!));\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n const p = current ? current.getTextualHierarchy().join(this.props.delimiter) : \"\";\r\n if (p !== this.state.pathString)\r\n this.setState({ pathString: p });\r\n };\r\n\r\n private _onModelChanged = () => {\r\n // just re-set the model to initiate update\r\n this.setState((prev) => ({ model: prev.model }));\r\n };\r\n\r\n private _onModelReady = () => {\r\n // istanbul ignore else\r\n if (this._mounted) {\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n this.setState((_prevState, props) => ({ modelReady: true, pathString: current ? current.getTextualHierarchy().join(props.delimiter) : \"\" }));\r\n }\r\n };\r\n\r\n private _onTreeNodeChanged = (_items: Array<TreeNodeItem | undefined>) => {\r\n using(this.state.model.pauseRendering(), async (_r) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n await this.state.model.reload();\r\n });\r\n };\r\n\r\n private static inspireNodeFromTreeNodeItem(item: TreeNodeItem, remapper: MapPayloadToInspireNodeCallback<TreeNodeItem>): BeInspireTreeNodeConfig {\r\n const node: BeInspireTreeNodeConfig = {\r\n id: item.id,\r\n text: getPropertyRecordAsString(item.label),\r\n itree: {\r\n state: { collapsed: false },\r\n },\r\n };\r\n if (item.icon)\r\n node.itree!.icon = item.icon;\r\n if ((item as DelayLoadedTreeNodeItem).hasChildren)\r\n node.children = true;\r\n else if ((item as ImmediatelyLoadedTreeNodeItem).children)\r\n node.children = (item as ImmediatelyLoadedTreeNodeItem).children!.map((p) => remapper(p, remapper));\r\n return node;\r\n }\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const classNames = classnames(\"components-breadcrumb\", this.props.background && \"background\", this.props.className);\r\n\r\n if (!this.state.modelReady) {\r\n return (\r\n <div className={classNames} style={this.props.style} />\r\n );\r\n }\r\n const node = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n return (\r\n <div\r\n className={classNames} style={this.props.style}>\r\n <div className=\"components-breadcrumb-head\"\r\n data-testid=\"components-breadcrumb-dropdown-input-parent\">\r\n {this.props.dropdownOnly || this.props.staticOnly ?\r\n <BreadcrumbDropdown\r\n tree={this.state.model}\r\n node={node}\r\n onNodeChange={this._handleNodeChange}\r\n onInputStart={this._setInput}\r\n renderNode={this.props.renderNode}\r\n staticOnly={this.props.staticOnly}\r\n showUpDir={this.props.showUpDir}\r\n parentsOnly={this.props.parentsOnly}\r\n width={this.props.width!}\r\n expandedNode={this.props.expandedNodes} /> :\r\n <InputSwitch\r\n tree={this.state.model}\r\n node={node}\r\n pathString={this.state.pathString}\r\n currentMode={this.state.currentMode}\r\n onInputStart={this._setInput}\r\n onInputCancel={this._setDropdown}\r\n onNodeChange={this._handleNodeChange}\r\n width={this.props.width!}\r\n showUpDir={this.props.showUpDir}\r\n parentsOnly={this.props.parentsOnly}\r\n delimiter={this.props.delimiter!}\r\n onOutsideClick={this._setDropdown}\r\n renderNode={this.props.renderNode}\r\n expandedNode={this.props.expandedNodes} />\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _setDropdown = () => this.setState({ currentMode: BreadcrumbMode.Dropdown });\r\n private _setInput = () => this.setState({ currentMode: BreadcrumbMode.Input });\r\n\r\n private _handleNodeChange = (node: TreeNodeItem | undefined) => {\r\n if (this.props.path)\r\n this.props.path.setCurrentNode(node);\r\n else {\r\n if (!node) {\r\n this.setState({ current: undefined, pathString: \"\" });\r\n } else {\r\n const current = this.state.current ? this.state.model.node(this.state.current.id) : undefined;\r\n const p = current ? current.getTextualHierarchy().join(this.props.delimiter) : \"\";\r\n this.setState({ current: node, pathString: p });\r\n }\r\n }\r\n if (this.state.currentMode !== BreadcrumbMode.Dropdown)\r\n this._setDropdown();\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface InputSwitchProps {\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n pathString: string;\r\n currentMode: BreadcrumbMode;\r\n onInputStart?: () => void;\r\n onInputCancel: () => void;\r\n onNodeChange: (node?: TreeNodeItem) => void;\r\n showUpDir?: boolean;\r\n parentsOnly?: boolean;\r\n renderNode?: BreadcrumbNodeRenderer;\r\n width: number | string;\r\n delimiter: string;\r\n expandedNode?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class InputSwitchComponent extends React.PureComponent<InputSwitchProps> {\r\n public override render(): React.ReactNode {\r\n const { currentMode, tree, node, onInputStart, onInputCancel, onNodeChange, renderNode, width, showUpDir, delimiter, expandedNode } = this.props;\r\n switch (currentMode) {\r\n case BreadcrumbMode.Dropdown:\r\n return <BreadcrumbDropdown tree={tree} node={node} onNodeChange={onNodeChange} renderNode={renderNode} onInputStart={onInputStart}\r\n parentsOnly={this.props.parentsOnly} showUpDir={showUpDir} width={width} expandedNode={expandedNode} />;\r\n case BreadcrumbMode.Input:\r\n return <BreadcrumbInput tree={tree} node={node} onNodeChange={onNodeChange} onCancel={onInputCancel}\r\n parentsOnly={this.props.parentsOnly} delimiter={delimiter} width={width} pathString={this.props.pathString} />;\r\n default:\r\n return <div data-testid=\"components-breadcrumb-error-unknown-mode\">{UiComponents.translate(\"breadcrumb.errorUnknownMode\")}</div>;\r\n }\r\n }\r\n}\r\n/** @internal */\r\nconst InputSwitch = withOnOutsideClick(InputSwitchComponent); // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n/** @internal */\r\nexport interface BreadcrumbInputProps {\r\n width: number | string;\r\n delimiter?: string;\r\n\r\n onCancel: () => void;\r\n onNodeChange: (node: TreeNodeItem | undefined) => void;\r\n parentsOnly?: boolean;\r\n\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n\r\n pathString: string;\r\n}\r\n\r\n/** @internal */\r\nexport interface BreadcrumbInputState {\r\n autocompleting: boolean;\r\n autocompleteList: string[];\r\n messageBoxOpened: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class BreadcrumbInput extends React.Component<BreadcrumbInputProps, BreadcrumbInputState> {\r\n private _inputElement: HTMLInputElement | null = null;\r\n private _autocomplete: ContextMenu | null = null;\r\n private _mounted: boolean = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BreadcrumbInputState> = {\r\n autocompleting: false,\r\n autocompleteList: [],\r\n messageBoxOpened: false,\r\n };\r\n\r\n public override render(): JSX.Element {\r\n return (\r\n <div className=\"components-breadcrumb-input-root\" data-testid=\"components-breadcrumb-input-root\">\r\n <input\r\n className=\"components-breadcrumb-input\"\r\n data-testid=\"components-breadcrumb-input\"\r\n type=\"text\"\r\n ref={(e) => { this._inputElement = e; }}\r\n style={{ width: this.props.width }}\r\n onKeyDown={this._handleKeyDown} onKeyUp={this._handleKeyUp}\r\n onChange={this._handleChange} onPaste={this._handleChange} onCut={this._handleChange} onFocus={this._handleChange} onClick={this._handleChange}\r\n spellCheck={false}></input>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\r\n <div className=\"components-breadcrumb-close icon icon-close\" data-testid=\"components-breadcrumb-input-close\" onClick={this._handleClose}\r\n role=\"button\" tabIndex={-1} />\r\n <ContextMenu\r\n ref={(el) => { this._autocomplete = el; }}\r\n style={{ width: \"100%\" }}\r\n opened={this.state.autocompleting}\r\n edgeLimit={false}\r\n selectedIndex={0} floating={false} autoflip={false}\r\n onEsc={() => {\r\n // istanbul ignore else\r\n if (this._inputElement)\r\n this._inputElement.focus();\r\n }}\r\n >\r\n {this.state.autocompleteList.map((listItem, index) => {\r\n let l = 0;\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n l = this._inputElement.value.length;\r\n }\r\n return (\r\n <ContextMenuItem\r\n key={index}\r\n onSelect={(event) => {\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n this._inputElement.value = listItem;\r\n this._inputElement.focus();\r\n this._inputElement.setSelectionRange(listItem.length, listItem.length);\r\n\r\n const autocompleteStr = this._inputElement.value.substring(0, this._inputElement.selectionEnd!);\r\n this._getAutocompleteList(autocompleteStr).then((list) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({\r\n autocompleting: false,\r\n autocompleteList: list,\r\n });\r\n });\r\n event.stopPropagation();\r\n }\r\n }}>\r\n <span className=\"components-breadcrumb-selected\">{listItem.substr(0, l)}</span>{listItem.substr(l)}\r\n </ContextMenuItem>\r\n );\r\n })}\r\n </ContextMenu>\r\n <MessageBox opened={this.state.messageBoxOpened} modal={false} onClose={this._handleMessageBoxClose} severity={MessageSeverity.Warning} buttonCluster={[{ type: DialogButtonType.OK, onClick: this._handleMessageBoxClose }]}>\r\n {UiComponents.translate(\"breadcrumb.invalidBreadcrumbPath\")}\r\n </MessageBox>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleMessageBoxClose = () => {\r\n this.setState({ messageBoxOpened: false });\r\n };\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const activeWindow = this._inputElement.ownerDocument.defaultView;\r\n activeWindow && activeWindow.addEventListener(\"click\", this._handleClick);\r\n this._inputElement.value = this.props.pathString;\r\n this._inputElement.focus();\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const activeWindow = this._inputElement.ownerDocument.defaultView;\r\n activeWindow && activeWindow.removeEventListener(\"click\", this._handleClick);\r\n }\r\n this._mounted = false;\r\n }\r\n\r\n private _handleClose = () => {\r\n this.props.onCancel();\r\n this.setState({ autocompleting: false });\r\n };\r\n\r\n private _getAutocompleteList = async (path: string) => {\r\n const node = await this._findChildParentPartial(path);\r\n if (node) {\r\n const baseString = node.getTextualHierarchy().join(this.props.delimiter);\r\n const children = node.getChildren();\r\n const parentChildren = this.props.parentsOnly ? children.filter((child) => child.hasOrWillHaveChildren()) : children;\r\n const strList = parentChildren.map((n) => baseString + this.props.delimiter! + n.toString());\r\n return strList.filter((e) => e.substr(0, path.length) === path);\r\n } else {\r\n const nodes = this.props.tree.nodes();\r\n const parentRoots = this.props.parentsOnly ? nodes.filter((child) => child.hasOrWillHaveChildren()) : nodes;\r\n const strList = parentRoots.map((n) => n.toString() + this.props.delimiter!);\r\n return strList.filter((e) => e.substr(0, path.length) === path);\r\n }\r\n };\r\n\r\n private _findChildUserInput = async (p: string): Promise<BeInspireTreeNode<TreeNodeItem> | undefined> => {\r\n const delimiter = this.props.delimiter!;\r\n if (p.endsWith(delimiter)) // strip last delimiter if at end\r\n p = p.substr(0, p.length - delimiter.length);\r\n const root = this.props.tree.nodes();\r\n for (const node of root) {\r\n const found = await this._find(node, p);\r\n if (found)\r\n return found;\r\n }\r\n return undefined;\r\n };\r\n private _findChildParentPartial = async (p: string): Promise<BeInspireTreeNode<TreeNodeItem> | undefined> => {\r\n const delimiter = this.props.delimiter!;\r\n const lastDel = p.lastIndexOf(delimiter);\r\n if (lastDel !== -1) // strip last delimiter and everything after\r\n p = p.substring(0, lastDel);\r\n else\r\n return undefined;\r\n const root = this.props.tree.nodes();\r\n for (const node of root) {\r\n const found = await this._find(node, p);\r\n if (found)\r\n return found;\r\n }\r\n return undefined;\r\n };\r\n private _find = async (node: BeInspireTreeNode<TreeNodeItem>, p: string): Promise<BeInspireTreeNode<TreeNodeItem> | undefined> => {\r\n const delimiter = this.props.delimiter!;\r\n // remove leading delimiter\r\n if (p.indexOf(delimiter) === 0)\r\n p = p.substr(delimiter.length);\r\n const { text } = node;\r\n if (text === p) {\r\n return node;\r\n }\r\n if (p.indexOf(text) === 0 && node.hasOrWillHaveChildren()) {\r\n const children = node.getChildren();\r\n for (const child of children) {\r\n const n = await this._find(child as BeInspireTreeNode<TreeNodeItem>, p.substr(text.length));\r\n if (n)\r\n return n;\r\n }\r\n }\r\n return undefined;\r\n };\r\n\r\n private _handleClick = (event: MouseEvent): void => {\r\n // istanbul ignore else\r\n if (this._autocomplete) {\r\n // istanbul ignore else\r\n if (this._inputElement && event.target === this._inputElement) {\r\n this.setState({ autocompleting: false });\r\n this._inputElement.focus();\r\n }\r\n }\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (event.key) {\r\n case SpecialKey.ArrowUp:\r\n case SpecialKey.ArrowDown:\r\n event.preventDefault();\r\n }\r\n };\r\n private _handleKeyUp = async (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ autocompleting: false });\r\n break;\r\n case SpecialKey.ArrowUp:\r\n case SpecialKey.ArrowDown:\r\n event.preventDefault();\r\n // istanbul ignore else\r\n if (this._autocomplete && this.state.autocompleteList.length > 0) {\r\n this._autocomplete.focus();\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ autocompleting: true });\r\n }\r\n break;\r\n case SpecialKey.Enter:\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const path = this._inputElement.value;\r\n if (path === \"\" || path === this.props.delimiter!) {\r\n this.props.onNodeChange(undefined);\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ autocompleting: false });\r\n } else {\r\n const node = await this._findChildUserInput(path);\r\n if (node === undefined)\r\n this.setState({ messageBoxOpened: true });\r\n else\r\n this.props.onNodeChange(node.payload);\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n private _handleChange = (): void => {\r\n // istanbul ignore else\r\n if (this._inputElement) {\r\n const autocompleteStr = this._inputElement.value.substring(0, this._inputElement.selectionEnd!);\r\n this._getAutocompleteList(autocompleteStr).then((list) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (this._mounted)\r\n this.setState({\r\n autocompleting: list.length > 0,\r\n autocompleteList: list,\r\n });\r\n });\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbDropdownProps {\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n onInputStart?: () => void;\r\n onNodeChange: (node: TreeNodeItem | undefined) => void;\r\n staticOnly?: boolean;\r\n parentsOnly?: boolean;\r\n delimiter?: string;\r\n width: number | string;\r\n showUpDir?: boolean;\r\n renderNode?: BreadcrumbNodeRenderer;\r\n expandedNode?: boolean;\r\n}\r\n\r\n/** @internal */\r\nclass BreadcrumbDropdown extends React.Component<BreadcrumbDropdownProps> {\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this.props.tree.on(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n this.props.tree.on(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this.props.tree.removeListener(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n this.props.tree.removeListener(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n }\r\n\r\n private _onModelLoaded = (_rootNodes: BeInspireTreeNodes<TreeNodeItem>) => {\r\n this.forceUpdate();\r\n };\r\n\r\n private _onChildrenLoaded = (_parentNode: BeInspireTreeNode<TreeNodeItem>) => {\r\n this.forceUpdate();\r\n };\r\n\r\n /** @internal */\r\n public override shouldComponentUpdate(nextProps: BreadcrumbDropdownProps) {\r\n return this.props.tree !== nextProps.tree ||\r\n this.props.node !== nextProps.node ||\r\n (nextProps.node && /* istanbul ignore next */ nextProps.node.isDirty()) ||\r\n this.props.onInputStart !== nextProps.onInputStart ||\r\n this.props.delimiter !== nextProps.delimiter ||\r\n this.props.width !== nextProps.width ||\r\n this.props.renderNode !== nextProps.renderNode;\r\n }\r\n\r\n public override render(): JSX.Element | null {\r\n const node = this.props.node;\r\n let nodes: BeInspireTreeNodes<TreeNodeItem> | undefined;\r\n if (node) {\r\n nodes = toNodes<TreeNodeItem>(node.getParents());\r\n nodes.reverse();\r\n nodes.push(node);\r\n }\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <div\r\n className=\"components-breadcrumb-dropdown\"\r\n data-testid=\"components-breadcrumb-dropdown-background\"\r\n style={{ width: this.props.width }}\r\n onClick={this._focusInput}\r\n role=\"button\" tabIndex={-1}\r\n >\r\n {!this.props.staticOnly && this.props.showUpDir ?\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <div data-testid=\"components-breadcrumb-up-dir\"\r\n className={classnames(\r\n \"components-breadcrumb-up-dir\",\r\n \"icon\", \"icon-sort-up\",\r\n { root: this.props.node === undefined })\r\n } onClick={this._handleUpClick} role=\"button\" tabIndex={-1} />\r\n : undefined\r\n }\r\n <div className=\"components-breadcrumb-crumb-list\"\r\n data-testid=\"components-breadcrumb-crumb-list\">\r\n <BreadcrumbDropdownNode\r\n key={-1}\r\n tree={this.props.tree}\r\n node={undefined}\r\n onNodeSelected={this.props.onNodeChange}\r\n staticOnly={this.props.staticOnly}\r\n parentsOnly={this.props.parentsOnly}\r\n last={!nodes || nodes.length === 0}\r\n renderNode={this.props.renderNode}\r\n expandedNode={this.props.expandedNode} />\r\n {nodes && nodes.map((n, i) => {\r\n return (\r\n <BreadcrumbDropdownNode\r\n key={i}\r\n tree={this.props.tree}\r\n node={n}\r\n onNodeSelected={this.props.onNodeChange}\r\n staticOnly={this.props.staticOnly}\r\n parentsOnly={this.props.parentsOnly}\r\n last={i === nodes!.length - 1}\r\n renderNode={this.props.renderNode}\r\n expandedNode={this.props.expandedNode} />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleUpClick = () => {\r\n let parent: TreeNodeItem | undefined;\r\n if (this.props.node) {\r\n const p = (this.props.node.getParent()) as BeInspireTreeNode<TreeNodeItem>;\r\n if (p)\r\n parent = p.payload;\r\n }\r\n this.props.onNodeChange(parent);\r\n };\r\n\r\n private _focusInput = (event: React.MouseEvent) => {\r\n if (event.target === event.currentTarget && this.props.onInputStart) // check if click is direct, or bubbled\r\n this.props.onInputStart();\r\n };\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbDropdownNodeProps {\r\n tree: BeInspireTree<TreeNodeItem>;\r\n node?: BeInspireTreeNode<TreeNodeItem>;\r\n onNodeSelected: (node: TreeNodeItem | undefined) => void;\r\n staticOnly?: boolean;\r\n parentsOnly?: boolean;\r\n last?: boolean;\r\n renderNode?: BreadcrumbNodeRenderer;\r\n expandedNode?: boolean;\r\n}\r\n\r\n/** @internal */\r\nclass BreadcrumbDropdownNode extends React.Component<BreadcrumbDropdownNodeProps> {\r\n constructor(props: BreadcrumbDropdownNodeProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const { node } = this.props;\r\n let nodeChildren: Array<BeInspireTreeNode<TreeNodeItem>> = this.props.tree.nodes();\r\n if (node)\r\n nodeChildren = toNodes<TreeNodeItem>(node.getChildren());\r\n const n = node && node.payload;\r\n let parent: TreeNodeItem | undefined;\r\n if (node) {\r\n const p = node.getParent() as BeInspireTreeNode<TreeNodeItem>;\r\n if (p)\r\n parent = p.payload;\r\n }\r\n const label = n && n.label ? n.label : PropertyRecord.fromString(\"\");\r\n const icon = n && n.icon ? n.icon : \"icon-browse\";\r\n const renderNode = this.props.renderNode ? this.props.renderNode : this.renderNode;\r\n if (this.props.parentsOnly)\r\n nodeChildren = nodeChildren.filter((child) => child.hasOrWillHaveChildren());\r\n if (nodeChildren.length > 0) {\r\n if (this.props.staticOnly) {\r\n return <span data-testid=\"components-breadcrumb-static-button\" className=\"components-breadcrumb-split-button static\">\r\n {renderNode({ label, icon }, n, parent)}\r\n {!this.props.last ? <span className=\"static-arrow-icon icon icon-chevron-right\" /> : undefined}\r\n </span>;\r\n }\r\n return (\r\n <SplitButton\r\n className=\"components-breadcrumb-split-button\"\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n this.props.onNodeSelected(n);\r\n }}\r\n label={renderNode({ label, icon }, n, parent)}\r\n initialExpanded={this.props.expandedNode}\r\n >\r\n {nodeChildren.map((child, d) => {\r\n return (\r\n <ContextMenuItem\r\n key={d}\r\n icon={child.payload!.icon}\r\n onSelect={(_event) => {\r\n this.props.onNodeSelected(child.payload);\r\n }}>\r\n {PropertyValueRendererManager.defaultManager.render(child.payload!.label)}\r\n </ContextMenuItem>\r\n );\r\n })}\r\n </SplitButton>\r\n );\r\n } else {\r\n return (\r\n <span className={classnames(\"components-breadcrumb-end-node\", { static: this.props.staticOnly })}>\r\n {renderNode({ label, icon }, n, parent)}\r\n </span>\r\n );\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private renderNode = (props: BreadcrumbNodeProps, _node?: TreeNodeItem, _parent?: TreeNodeItem) => {\r\n return <BreadcrumbNode label={props.label} icon={props.icon} />;\r\n };\r\n}\r\n\r\n/** Properties for [[BreadcrumbNode]] component\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport interface BreadcrumbNodeProps {\r\n /** Icon class string */\r\n icon: string;\r\n /** Node label */\r\n label: PropertyRecord;\r\n /** @internal */\r\n onRender?: () => void;\r\n}\r\n\r\n/** Default BreadcrumbNode component\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport class BreadcrumbNode extends React.Component<BreadcrumbNodeProps> {\r\n constructor(props: BreadcrumbNodeProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const { icon, label } = this.props;\r\n return <span data-testid=\"components-breadcrumb-node\"><span className={classnames(\"icon\", icon)} />{PropertyValueRendererManager.defaultManager.render(label)}</span>;\r\n }\r\n\r\n public override componentDidMount() {\r\n // istanbul ignore next\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n\r\n public override componentDidUpdate() {\r\n // istanbul ignore next\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n }\r\n}\r\n"]}
@@ -9,7 +9,7 @@ import { TreeNodeItem } from "../tree/TreeDataProvider";
9
9
  import { BreadcrumbPath } from "./BreadcrumbPath";
10
10
  /** Properties for the [[BreadcrumbDetails]] component
11
11
  * @beta
12
- * @deprecated
12
+ * @deprecated in 3.0.
13
13
  */
14
14
  export interface BreadcrumbDetailsProps extends CommonProps {
15
15
  /** Path data object shared by Breadcrumb component */
@@ -33,7 +33,7 @@ interface BreadcrumbDetailsState {
33
33
  * A Table containing all children of tree node specified in path.
34
34
  * Used in conjunction with [[Breadcrumb]] to see children of current path.
35
35
  * @beta
36
- * @deprecated
36
+ * @deprecated in 3.0.
37
37
  */
38
38
  export declare class BreadcrumbDetails extends React.Component<BreadcrumbDetailsProps, BreadcrumbDetailsState> {
39
39
  private _tree;
@@ -17,7 +17,7 @@ import { BreadcrumbTreeUtils, getPropertyRecordAsString } from "./BreadcrumbTree
17
17
  * A Table containing all children of tree node specified in path.
18
18
  * Used in conjunction with [[Breadcrumb]] to see children of current path.
19
19
  * @beta
20
- * @deprecated
20
+ * @deprecated in 3.0.
21
21
  */
22
22
  export class BreadcrumbDetails extends React.Component {
23
23
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbDetails.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/BreadcrumbDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { using } from \"@itwin/core-bentley\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { Table, TableProps } from \"../table/component/Table\";\r\nimport { ColumnDescription, RowItem, TableDataProvider } from \"../table/TableDataProvider\";\r\nimport { DelayLoadedTreeNodeItem, ImmediatelyLoadedTreeNodeItem, isTreeDataProviderInterface, TreeNodeItem } from \"../tree/TreeDataProvider\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport {\r\n BeInspireTree, BeInspireTreeEvent, BeInspireTreeNode, BeInspireTreeNodeConfig, BeInspireTreeNodes, MapPayloadToInspireNodeCallback, toNodes,\r\n} from \"./BeInspireTree\";\r\nimport { BreadcrumbPath, BreadcrumbUpdateEventArgs } from \"./BreadcrumbPath\";\r\nimport { BreadcrumbTreeUtils, DataRowItem, getPropertyRecordAsString } from \"./BreadcrumbTreeUtils\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/** Properties for the [[BreadcrumbDetails]] component\r\n * @beta\r\n * @deprecated\r\n */\r\nexport interface BreadcrumbDetailsProps extends CommonProps {\r\n /** Path data object shared by Breadcrumb component */\r\n path: BreadcrumbPath;\r\n columns?: ColumnDescription[];\r\n renderTable?: (props: TableProps, node: TreeNodeItem | undefined, children: TreeNodeItem[]) => React.ReactNode;\r\n /** Callback triggered when child node is loaded with an asynchronous dataProvider. */\r\n onChildrenLoaded?: (parent: TreeNodeItem, children: TreeNodeItem[]) => void;\r\n /** Callback triggered when root nodes are loaded with an asynchronous dataProvider. */\r\n onRootNodesLoaded?: (nodes: TreeNodeItem[]) => void;\r\n /** @internal */\r\n onRender?: () => void;\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbDetailsState {\r\n table?: TableDataProvider;\r\n childNodes?: TreeNodeItem[];\r\n modelReady: boolean;\r\n}\r\n\r\n/**\r\n * A Table containing all children of tree node specified in path.\r\n * Used in conjunction with [[Breadcrumb]] to see children of current path.\r\n * @beta\r\n * @deprecated\r\n */\r\nexport class BreadcrumbDetails extends React.Component<BreadcrumbDetailsProps, BreadcrumbDetailsState> {\r\n private _tree!: BeInspireTree<TreeNodeItem>;\r\n private _mounted: boolean = false;\r\n\r\n public override readonly state: BreadcrumbDetailsState;\r\n\r\n /** @internal */\r\n constructor(props: BreadcrumbDetailsProps) {\r\n super(props);\r\n this.state = {\r\n modelReady: isTreeDataProviderInterface(props.path.getDataProvider()) ? false : true,\r\n };\r\n this._recreateTree();\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n const dataProvider = this.props.path.getDataProvider();\r\n const node = this.props.path.getCurrentNode();\r\n this._updateTree(node ? this._tree.node(node.id) : undefined);\r\n if (isTreeDataProviderInterface(dataProvider) && dataProvider.onTreeNodeChanged)\r\n dataProvider.onTreeNodeChanged.addListener(this._treeChange);\r\n this.props.path.BreadcrumbUpdateEvent.addListener(this._pathChange);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._mounted = false;\r\n this._tree.removeAllListeners();\r\n const dataProvider = this.props.path.getDataProvider();\r\n if (isTreeDataProviderInterface(dataProvider) && dataProvider.onTreeNodeChanged)\r\n dataProvider.onTreeNodeChanged.removeListener(this._treeChange);\r\n this.props.path.BreadcrumbUpdateEvent.removeListener(this._pathChange);\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: BreadcrumbDetailsProps) {\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n if (!this.props.path.BreadcrumbUpdateEvent.has(this._pathChange)) {\r\n this.props.path.BreadcrumbUpdateEvent.addListener(this._pathChange);\r\n prevProps.path.BreadcrumbUpdateEvent.removeListener(this._pathChange);\r\n }\r\n }\r\n\r\n private _recreateTree() {\r\n this._tree = new BeInspireTree<TreeNodeItem>({\r\n dataProvider: this.props.path.getDataProvider(),\r\n mapPayloadToInspireNodeConfig: BreadcrumbDetails.inspireNodeFromTreeNodeItem,\r\n });\r\n this._tree.on(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n this._tree.on(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n this._tree.ready.then(this._onModelReady); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n /** @internal */\r\n public override shouldComponentUpdate(nextProps: BreadcrumbDetailsProps, nextState: BreadcrumbDetailsState): boolean {\r\n if (this.state.modelReady !== nextState.modelReady) {\r\n // always render when state.modelReady changes\r\n return true;\r\n }\r\n\r\n // istanbul ignore if\r\n if (!nextState.modelReady) {\r\n // if we got here and model is not ready - don't render\r\n return false;\r\n }\r\n\r\n const cNode = nextProps.path.getCurrentNode();\r\n const current = cNode ? this._tree.node(cNode.id) : undefined;\r\n // otherwise, render when any of the following props / state change\r\n return this.props.renderTable !== nextProps.renderTable\r\n || this.props.path !== nextProps.path\r\n || this.state.table !== nextState.table\r\n || (current !== undefined && /* istanbul ignore next */ current.isDirty());\r\n }\r\n\r\n private _onModelLoaded = (rootNodes: BeInspireTreeNodes<TreeNodeItem>) => {\r\n const node = this.props.path.getCurrentNode();\r\n if (node === undefined)\r\n this._updateTree(undefined);\r\n if (this.props.onRootNodesLoaded)\r\n this.props.onRootNodesLoaded(rootNodes.map((n) => n.payload!));\r\n };\r\n\r\n private _onChildrenLoaded = (parentNode: BeInspireTreeNode<TreeNodeItem>) => {\r\n const node = this.props.path.getCurrentNode();\r\n if (node !== undefined) {\r\n const iNode = this._tree.node(node.id);\r\n this._updateTree(iNode);\r\n }\r\n const children = parentNode.getChildren();\r\n if (this.props.onChildrenLoaded)\r\n this.props.onChildrenLoaded(parentNode.payload!, toNodes<TreeNodeItem>(children).map((c) => c.payload!));\r\n };\r\n\r\n private _onModelReady = () => {\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ modelReady: true });\r\n };\r\n\r\n private _onTreeNodeChanged = (_items: Array<TreeNodeItem | undefined>) => {\r\n using((this._tree as any).pauseRendering(), async () => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n await this._tree.reload();\r\n });\r\n };\r\n\r\n private static inspireNodeFromTreeNodeItem(item: TreeNodeItem, remapper: MapPayloadToInspireNodeCallback<TreeNodeItem>): BeInspireTreeNodeConfig {\r\n const node: BeInspireTreeNodeConfig = {\r\n id: item.id,\r\n text: getPropertyRecordAsString(item.label),\r\n itree: {\r\n state: { collapsed: false },\r\n },\r\n };\r\n if (item.icon)\r\n node.itree!.icon = item.icon;\r\n if ((item as DelayLoadedTreeNodeItem).hasChildren)\r\n node.children = true;\r\n else if ((item as ImmediatelyLoadedTreeNodeItem).children)\r\n node.children = (item as ImmediatelyLoadedTreeNodeItem).children!.map((p) => remapper(p, remapper));\r\n return node;\r\n }\r\n\r\n private _treeChange = () => {\r\n const currentNode = this.props.path.getCurrentNode();\r\n this._updateTree(currentNode ? this._tree.node(currentNode.id) : undefined);\r\n };\r\n private _pathChange = (args: BreadcrumbUpdateEventArgs) => {\r\n this._updateTree(args.currentNode ? this._tree.node(args.currentNode.id) : undefined);\r\n if (isTreeDataProviderInterface(args.oldDataProvider) && args.oldDataProvider.onTreeNodeChanged) {\r\n // unsubscribe from previous data provider `onTreeNodeChanged` events\r\n args.oldDataProvider.onTreeNodeChanged.removeListener(this._onTreeNodeChanged);\r\n }\r\n if (isTreeDataProviderInterface(args.dataProvider) && args.dataProvider.onTreeNodeChanged) {\r\n // subscribe for new data provider `onTreeNodeChanged` events\r\n args.dataProvider.onTreeNodeChanged.addListener(this._onTreeNodeChanged);\r\n }\r\n if (args.dataProvider !== args.oldDataProvider) {\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ modelReady: false }, () => {\r\n this._recreateTree();\r\n });\r\n }\r\n };\r\n private _updateTree = (node: BeInspireTreeNode<TreeNodeItem> | undefined) => {\r\n const childNodes = (node ? toNodes<TreeNodeItem>(node.getChildren()) : this._tree.nodes()).map((child) => child.payload!);\r\n if (childNodes.length === 0) {\r\n const parents = node ? toNodes<TreeNodeItem>(node.getParents()).map((child) => child.payload!) : [];\r\n parents.reverse();\r\n if (parents.length > 1)\r\n this.props.path.setCurrentNode(parents[parents.length - 2]);\r\n else if (parents.length === 1)\r\n this.props.path.setCurrentNode(undefined);\r\n }\r\n const table = BreadcrumbTreeUtils.aliasNodeListToTableDataProvider(childNodes, this.props.columns || [\r\n { key: \"icon\", label: UiComponents.translate(\"breadcrumb.icon\"), icon: true },\r\n { key: \"label\", label: UiComponents.translate(\"breadcrumb.name\") },\r\n { key: \"description\", label: UiComponents.translate(\"breadcrumb.description\") },\r\n ], this.props.path.getDataProvider());\r\n // istanbul ignore else hard to control whether mounted or not\r\n if (this._mounted)\r\n this.setState({ table, childNodes });\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const node = this.props.path.getCurrentNode();\r\n if (node) {\r\n const iNode = this._tree.node(node.id);\r\n if (iNode) {\r\n iNode.setDirty(false);\r\n }\r\n }\r\n const { childNodes } = this.state;\r\n const renderTable = this.props.renderTable ? this.props.renderTable : this.renderTable;\r\n return (\r\n <div className={classnames(\"components-breadcrumb-details\", this.props.className)} style={this.props.style}>\r\n {\r\n this.state.table && childNodes &&\r\n renderTable({\r\n dataProvider: this.state.table,\r\n onRowsSelected: async (rowIterator: AsyncIterableIterator<RowItem>, replace: boolean) => {\r\n const iteratorResult = await rowIterator.next();\r\n // istanbul ignore else should always be false\r\n if (!iteratorResult.done) {\r\n const row = iteratorResult.value as DataRowItem;\r\n this.props.path.setCurrentNode(row._node);\r\n }\r\n return replace;\r\n },\r\n }, node, childNodes)\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private renderTable = (props: TableProps, _node: TreeNodeItem | undefined, _children: TreeNodeItem[]) => {\r\n return <Table {...props} onRender={this.props.onRender} />;\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"BreadcrumbDetails.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/BreadcrumbDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { using } from \"@itwin/core-bentley\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { Table, TableProps } from \"../table/component/Table\";\r\nimport { ColumnDescription, RowItem, TableDataProvider } from \"../table/TableDataProvider\";\r\nimport { DelayLoadedTreeNodeItem, ImmediatelyLoadedTreeNodeItem, isTreeDataProviderInterface, TreeNodeItem } from \"../tree/TreeDataProvider\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport {\r\n BeInspireTree, BeInspireTreeEvent, BeInspireTreeNode, BeInspireTreeNodeConfig, BeInspireTreeNodes, MapPayloadToInspireNodeCallback, toNodes,\r\n} from \"./BeInspireTree\";\r\nimport { BreadcrumbPath, BreadcrumbUpdateEventArgs } from \"./BreadcrumbPath\";\r\nimport { BreadcrumbTreeUtils, DataRowItem, getPropertyRecordAsString } from \"./BreadcrumbTreeUtils\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/** Properties for the [[BreadcrumbDetails]] component\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport interface BreadcrumbDetailsProps extends CommonProps {\r\n /** Path data object shared by Breadcrumb component */\r\n path: BreadcrumbPath;\r\n columns?: ColumnDescription[];\r\n renderTable?: (props: TableProps, node: TreeNodeItem | undefined, children: TreeNodeItem[]) => React.ReactNode;\r\n /** Callback triggered when child node is loaded with an asynchronous dataProvider. */\r\n onChildrenLoaded?: (parent: TreeNodeItem, children: TreeNodeItem[]) => void;\r\n /** Callback triggered when root nodes are loaded with an asynchronous dataProvider. */\r\n onRootNodesLoaded?: (nodes: TreeNodeItem[]) => void;\r\n /** @internal */\r\n onRender?: () => void;\r\n}\r\n\r\n/** @internal */\r\ninterface BreadcrumbDetailsState {\r\n table?: TableDataProvider;\r\n childNodes?: TreeNodeItem[];\r\n modelReady: boolean;\r\n}\r\n\r\n/**\r\n * A Table containing all children of tree node specified in path.\r\n * Used in conjunction with [[Breadcrumb]] to see children of current path.\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport class BreadcrumbDetails extends React.Component<BreadcrumbDetailsProps, BreadcrumbDetailsState> {\r\n private _tree!: BeInspireTree<TreeNodeItem>;\r\n private _mounted: boolean = false;\r\n\r\n public override readonly state: BreadcrumbDetailsState;\r\n\r\n /** @internal */\r\n constructor(props: BreadcrumbDetailsProps) {\r\n super(props);\r\n this.state = {\r\n modelReady: isTreeDataProviderInterface(props.path.getDataProvider()) ? false : true,\r\n };\r\n this._recreateTree();\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n const dataProvider = this.props.path.getDataProvider();\r\n const node = this.props.path.getCurrentNode();\r\n this._updateTree(node ? this._tree.node(node.id) : undefined);\r\n if (isTreeDataProviderInterface(dataProvider) && dataProvider.onTreeNodeChanged)\r\n dataProvider.onTreeNodeChanged.addListener(this._treeChange);\r\n this.props.path.BreadcrumbUpdateEvent.addListener(this._pathChange);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._mounted = false;\r\n this._tree.removeAllListeners();\r\n const dataProvider = this.props.path.getDataProvider();\r\n if (isTreeDataProviderInterface(dataProvider) && dataProvider.onTreeNodeChanged)\r\n dataProvider.onTreeNodeChanged.removeListener(this._treeChange);\r\n this.props.path.BreadcrumbUpdateEvent.removeListener(this._pathChange);\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: BreadcrumbDetailsProps) {\r\n /* istanbul ignore next */\r\n if (this.props.onRender)\r\n this.props.onRender();\r\n if (!this.props.path.BreadcrumbUpdateEvent.has(this._pathChange)) {\r\n this.props.path.BreadcrumbUpdateEvent.addListener(this._pathChange);\r\n prevProps.path.BreadcrumbUpdateEvent.removeListener(this._pathChange);\r\n }\r\n }\r\n\r\n private _recreateTree() {\r\n this._tree = new BeInspireTree<TreeNodeItem>({\r\n dataProvider: this.props.path.getDataProvider(),\r\n mapPayloadToInspireNodeConfig: BreadcrumbDetails.inspireNodeFromTreeNodeItem,\r\n });\r\n this._tree.on(BeInspireTreeEvent.ModelLoaded, this._onModelLoaded);\r\n this._tree.on(BeInspireTreeEvent.ChildrenLoaded, this._onChildrenLoaded);\r\n this._tree.ready.then(this._onModelReady); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n /** @internal */\r\n public override shouldComponentUpdate(nextProps: BreadcrumbDetailsProps, nextState: BreadcrumbDetailsState): boolean {\r\n if (this.state.modelReady !== nextState.modelReady) {\r\n // always render when state.modelReady changes\r\n return true;\r\n }\r\n\r\n // istanbul ignore if\r\n if (!nextState.modelReady) {\r\n // if we got here and model is not ready - don't render\r\n return false;\r\n }\r\n\r\n const cNode = nextProps.path.getCurrentNode();\r\n const current = cNode ? this._tree.node(cNode.id) : undefined;\r\n // otherwise, render when any of the following props / state change\r\n return this.props.renderTable !== nextProps.renderTable\r\n || this.props.path !== nextProps.path\r\n || this.state.table !== nextState.table\r\n || (current !== undefined && /* istanbul ignore next */ current.isDirty());\r\n }\r\n\r\n private _onModelLoaded = (rootNodes: BeInspireTreeNodes<TreeNodeItem>) => {\r\n const node = this.props.path.getCurrentNode();\r\n if (node === undefined)\r\n this._updateTree(undefined);\r\n if (this.props.onRootNodesLoaded)\r\n this.props.onRootNodesLoaded(rootNodes.map((n) => n.payload!));\r\n };\r\n\r\n private _onChildrenLoaded = (parentNode: BeInspireTreeNode<TreeNodeItem>) => {\r\n const node = this.props.path.getCurrentNode();\r\n if (node !== undefined) {\r\n const iNode = this._tree.node(node.id);\r\n this._updateTree(iNode);\r\n }\r\n const children = parentNode.getChildren();\r\n if (this.props.onChildrenLoaded)\r\n this.props.onChildrenLoaded(parentNode.payload!, toNodes<TreeNodeItem>(children).map((c) => c.payload!));\r\n };\r\n\r\n private _onModelReady = () => {\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ modelReady: true });\r\n };\r\n\r\n private _onTreeNodeChanged = (_items: Array<TreeNodeItem | undefined>) => {\r\n using((this._tree as any).pauseRendering(), async () => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n await this._tree.reload();\r\n });\r\n };\r\n\r\n private static inspireNodeFromTreeNodeItem(item: TreeNodeItem, remapper: MapPayloadToInspireNodeCallback<TreeNodeItem>): BeInspireTreeNodeConfig {\r\n const node: BeInspireTreeNodeConfig = {\r\n id: item.id,\r\n text: getPropertyRecordAsString(item.label),\r\n itree: {\r\n state: { collapsed: false },\r\n },\r\n };\r\n if (item.icon)\r\n node.itree!.icon = item.icon;\r\n if ((item as DelayLoadedTreeNodeItem).hasChildren)\r\n node.children = true;\r\n else if ((item as ImmediatelyLoadedTreeNodeItem).children)\r\n node.children = (item as ImmediatelyLoadedTreeNodeItem).children!.map((p) => remapper(p, remapper));\r\n return node;\r\n }\r\n\r\n private _treeChange = () => {\r\n const currentNode = this.props.path.getCurrentNode();\r\n this._updateTree(currentNode ? this._tree.node(currentNode.id) : undefined);\r\n };\r\n private _pathChange = (args: BreadcrumbUpdateEventArgs) => {\r\n this._updateTree(args.currentNode ? this._tree.node(args.currentNode.id) : undefined);\r\n if (isTreeDataProviderInterface(args.oldDataProvider) && args.oldDataProvider.onTreeNodeChanged) {\r\n // unsubscribe from previous data provider `onTreeNodeChanged` events\r\n args.oldDataProvider.onTreeNodeChanged.removeListener(this._onTreeNodeChanged);\r\n }\r\n if (isTreeDataProviderInterface(args.dataProvider) && args.dataProvider.onTreeNodeChanged) {\r\n // subscribe for new data provider `onTreeNodeChanged` events\r\n args.dataProvider.onTreeNodeChanged.addListener(this._onTreeNodeChanged);\r\n }\r\n if (args.dataProvider !== args.oldDataProvider) {\r\n // istanbul ignore else\r\n if (this._mounted)\r\n this.setState({ modelReady: false }, () => {\r\n this._recreateTree();\r\n });\r\n }\r\n };\r\n private _updateTree = (node: BeInspireTreeNode<TreeNodeItem> | undefined) => {\r\n const childNodes = (node ? toNodes<TreeNodeItem>(node.getChildren()) : this._tree.nodes()).map((child) => child.payload!);\r\n if (childNodes.length === 0) {\r\n const parents = node ? toNodes<TreeNodeItem>(node.getParents()).map((child) => child.payload!) : [];\r\n parents.reverse();\r\n if (parents.length > 1)\r\n this.props.path.setCurrentNode(parents[parents.length - 2]);\r\n else if (parents.length === 1)\r\n this.props.path.setCurrentNode(undefined);\r\n }\r\n const table = BreadcrumbTreeUtils.aliasNodeListToTableDataProvider(childNodes, this.props.columns || [\r\n { key: \"icon\", label: UiComponents.translate(\"breadcrumb.icon\"), icon: true },\r\n { key: \"label\", label: UiComponents.translate(\"breadcrumb.name\") },\r\n { key: \"description\", label: UiComponents.translate(\"breadcrumb.description\") },\r\n ], this.props.path.getDataProvider());\r\n // istanbul ignore else hard to control whether mounted or not\r\n if (this._mounted)\r\n this.setState({ table, childNodes });\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const node = this.props.path.getCurrentNode();\r\n if (node) {\r\n const iNode = this._tree.node(node.id);\r\n if (iNode) {\r\n iNode.setDirty(false);\r\n }\r\n }\r\n const { childNodes } = this.state;\r\n const renderTable = this.props.renderTable ? this.props.renderTable : this.renderTable;\r\n return (\r\n <div className={classnames(\"components-breadcrumb-details\", this.props.className)} style={this.props.style}>\r\n {\r\n this.state.table && childNodes &&\r\n renderTable({\r\n dataProvider: this.state.table,\r\n onRowsSelected: async (rowIterator: AsyncIterableIterator<RowItem>, replace: boolean) => {\r\n const iteratorResult = await rowIterator.next();\r\n // istanbul ignore else should always be false\r\n if (!iteratorResult.done) {\r\n const row = iteratorResult.value as DataRowItem;\r\n this.props.path.setCurrentNode(row._node);\r\n }\r\n return replace;\r\n },\r\n }, node, childNodes)\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private renderTable = (props: TableProps, _node: TreeNodeItem | undefined, _children: TreeNodeItem[]) => {\r\n return <Table {...props} onRender={this.props.onRender} />;\r\n };\r\n}\r\n"]}
@@ -5,7 +5,7 @@ import { UiEvent } from "@itwin/core-react";
5
5
  import { TreeDataProvider, TreeNodeItem } from "../tree/TreeDataProvider";
6
6
  /** BreadcrumbChangeEvent Event Args class.
7
7
  * @beta
8
- * @deprecated
8
+ * @deprecated in 3.0.
9
9
  */
10
10
  export interface BreadcrumbUpdateEventArgs {
11
11
  dataProvider: TreeDataProvider;
@@ -14,13 +14,13 @@ export interface BreadcrumbUpdateEventArgs {
14
14
  }
15
15
  /** BreadcrumbChangeEvent Event class.
16
16
  * @beta
17
- * @deprecated
17
+ * @deprecated in 3.0.
18
18
  */
19
19
  export declare class BreadcrumbUpdateEvent extends UiEvent<BreadcrumbUpdateEventArgs> {
20
20
  }
21
21
  /** Breadcrumb Path class.
22
22
  * @beta
23
- * @deprecated
23
+ * @deprecated in 3.0.
24
24
  */
25
25
  export declare class BreadcrumbPath {
26
26
  private _dataProvider;
@@ -9,13 +9,13 @@
9
9
  import { UiEvent } from "@itwin/core-react";
10
10
  /** BreadcrumbChangeEvent Event class.
11
11
  * @beta
12
- * @deprecated
12
+ * @deprecated in 3.0.
13
13
  */
14
14
  export class BreadcrumbUpdateEvent extends UiEvent {
15
15
  }
16
16
  /** Breadcrumb Path class.
17
17
  * @beta
18
- * @deprecated
18
+ * @deprecated in 3.0.
19
19
  */
20
20
  export class BreadcrumbPath {
21
21
  constructor(dataProvider) {
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbPath.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/BreadcrumbPath.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,4CAA4C;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAa5C;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,OAAkC;CAAI;AAEjF;;;GAGG;AACH,MAAM,OAAO,cAAc;IAOzB,YAAY,YAA8B;QALlC,iBAAY,GAA6B,SAAS,CAAC;QACnD,2BAAsB,GAA0B,IAAI,qBAAqB,EAAE,CAAC;QAKlF,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAJD,IAAW,qBAAqB,KAA4B,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAM1F,eAAe;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACM,eAAe,CAAC,YAA8B;QACnD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,WAAqC;QACzD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;QACxH,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { UiEvent } from \"@itwin/core-react\";\r\nimport { TreeDataProvider, TreeNodeItem } from \"../tree/TreeDataProvider\";\r\n\r\n/** BreadcrumbChangeEvent Event Args class.\r\n * @beta\r\n * @deprecated\r\n */\r\nexport interface BreadcrumbUpdateEventArgs {\r\n dataProvider: TreeDataProvider;\r\n oldDataProvider: TreeDataProvider;\r\n currentNode: TreeNodeItem | undefined;\r\n}\r\n\r\n/** BreadcrumbChangeEvent Event class.\r\n * @beta\r\n * @deprecated\r\n */\r\nexport class BreadcrumbUpdateEvent extends UiEvent<BreadcrumbUpdateEventArgs> { }\r\n\r\n/** Breadcrumb Path class.\r\n * @beta\r\n * @deprecated\r\n */\r\nexport class BreadcrumbPath {\r\n private _dataProvider: TreeDataProvider;\r\n private _currentNode: TreeNodeItem | undefined = undefined;\r\n private _breadcrumbUpdateEvent: BreadcrumbUpdateEvent = new BreadcrumbUpdateEvent();\r\n\r\n public get BreadcrumbUpdateEvent(): BreadcrumbUpdateEvent { return this._breadcrumbUpdateEvent; }\r\n\r\n constructor(dataProvider: TreeDataProvider) {\r\n this._dataProvider = dataProvider;\r\n }\r\n\r\n public getDataProvider() {\r\n return this._dataProvider;\r\n }\r\n public setDataProvider(dataProvider: TreeDataProvider) {\r\n this.BreadcrumbUpdateEvent.emit({ dataProvider, oldDataProvider: this._dataProvider, currentNode: this._currentNode });\r\n this._dataProvider = dataProvider;\r\n }\r\n\r\n public getCurrentNode() {\r\n return this._currentNode;\r\n }\r\n\r\n public setCurrentNode(currentNode: TreeNodeItem | undefined) {\r\n this.BreadcrumbUpdateEvent.emit({ dataProvider: this._dataProvider, oldDataProvider: this._dataProvider, currentNode });\r\n this._currentNode = currentNode;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"BreadcrumbPath.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/BreadcrumbPath.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,4CAA4C;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAa5C;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,OAAkC;CAAI;AAEjF;;;GAGG;AACH,MAAM,OAAO,cAAc;IAOzB,YAAY,YAA8B;QALlC,iBAAY,GAA6B,SAAS,CAAC;QACnD,2BAAsB,GAA0B,IAAI,qBAAqB,EAAE,CAAC;QAKlF,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAJD,IAAW,qBAAqB,KAA4B,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAM1F,eAAe;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACM,eAAe,CAAC,YAA8B;QACnD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,WAAqC;QACzD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;QACxH,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { UiEvent } from \"@itwin/core-react\";\r\nimport { TreeDataProvider, TreeNodeItem } from \"../tree/TreeDataProvider\";\r\n\r\n/** BreadcrumbChangeEvent Event Args class.\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport interface BreadcrumbUpdateEventArgs {\r\n dataProvider: TreeDataProvider;\r\n oldDataProvider: TreeDataProvider;\r\n currentNode: TreeNodeItem | undefined;\r\n}\r\n\r\n/** BreadcrumbChangeEvent Event class.\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport class BreadcrumbUpdateEvent extends UiEvent<BreadcrumbUpdateEventArgs> { }\r\n\r\n/** Breadcrumb Path class.\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport class BreadcrumbPath {\r\n private _dataProvider: TreeDataProvider;\r\n private _currentNode: TreeNodeItem | undefined = undefined;\r\n private _breadcrumbUpdateEvent: BreadcrumbUpdateEvent = new BreadcrumbUpdateEvent();\r\n\r\n public get BreadcrumbUpdateEvent(): BreadcrumbUpdateEvent { return this._breadcrumbUpdateEvent; }\r\n\r\n constructor(dataProvider: TreeDataProvider) {\r\n this._dataProvider = dataProvider;\r\n }\r\n\r\n public getDataProvider() {\r\n return this._dataProvider;\r\n }\r\n public setDataProvider(dataProvider: TreeDataProvider) {\r\n this.BreadcrumbUpdateEvent.emit({ dataProvider, oldDataProvider: this._dataProvider, currentNode: this._currentNode });\r\n this._dataProvider = dataProvider;\r\n }\r\n\r\n public getCurrentNode() {\r\n return this._currentNode;\r\n }\r\n\r\n public setCurrentNode(currentNode: TreeNodeItem | undefined) {\r\n this.BreadcrumbUpdateEvent.emit({ dataProvider: this._dataProvider, oldDataProvider: this._dataProvider, currentNode });\r\n this._currentNode = currentNode;\r\n }\r\n}\r\n"]}
@@ -7,7 +7,7 @@ import { TreeDataProvider, TreeNodeItem } from "../tree/TreeDataProvider";
7
7
  /**
8
8
  * Utility class for tree searching and manipulation in the Breadcrumb component.
9
9
  * @beta
10
- * @deprecated
10
+ * @deprecated in 3.0.
11
11
  */
12
12
  export declare class BreadcrumbTreeUtils {
13
13
  private static createIcon;
@@ -13,7 +13,7 @@ import { UiComponents } from "../UiComponents";
13
13
  /**
14
14
  * Utility class for tree searching and manipulation in the Breadcrumb component.
15
15
  * @beta
16
- * @deprecated
16
+ * @deprecated in 3.0.
17
17
  */
18
18
  export class BreadcrumbTreeUtils {
19
19
  static createIcon(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbTreeUtils.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/BreadcrumbTreeUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { CellItem, ColumnDescription, RowItem, TableDataChangeEvent, TableDataProvider } from \"../table/TableDataProvider\";\r\nimport { DelayLoadedTreeNodeItem, hasChildren, ImmediatelyLoadedTreeNodeItem, TreeDataProvider, TreeNodeItem } from \"../tree/TreeDataProvider\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/**\r\n * Utility class for tree searching and manipulation in the Breadcrumb component.\r\n * @beta\r\n * @deprecated\r\n */\r\nexport class BreadcrumbTreeUtils {\r\n\r\n private static createIcon(node: TreeNodeItem): CellItem {\r\n return {\r\n key: \"icon\", record:\r\n new PropertyRecord(\r\n {\r\n value: hasChildren(node) ? \"icon-folder\" : node.icon,\r\n valueFormat: PropertyValueFormat.Primitive,\r\n displayValue: hasChildren(node) ? \"icon-folder\" : node.icon!,\r\n },\r\n {\r\n name: \"icon\",\r\n displayLabel: UiComponents.translate(\"breadcrumb.icon\"),\r\n typename: \"icon\",\r\n }),\r\n };\r\n }\r\n\r\n private static createLabel(node: TreeNodeItem): CellItem {\r\n return {\r\n key: \"label\",\r\n record: node.label,\r\n };\r\n }\r\n\r\n private static createDescription(node: TreeNodeItem): CellItem {\r\n return {\r\n key: \"description\",\r\n record: new PropertyRecord(\r\n {\r\n value: node.description || \"\",\r\n valueFormat: PropertyValueFormat.Primitive,\r\n displayValue: node.description || \"\",\r\n },\r\n {\r\n name: \"description\",\r\n displayLabel: UiComponents.translate(\"breadcrumb.description\"),\r\n typename: \"text\",\r\n }),\r\n };\r\n }\r\n\r\n /**\r\n * Transforms a list of children from a tree node into a [[TableDataProvider]], given a list of column descriptions.\r\n * @param nodes Node list to use as a basis for the [[TableDataProvider]].\r\n * @param columns An array of column descriptions to specify which columns to provide to the resulting [[TableDataProvider]].\r\n * @returns A [[TableDataProvider]] object that can be used to populate a Table component.\r\n */\r\n public static aliasNodeListToTableDataProvider(nodes: TreeNodeItem[], columns: ColumnDescription[], treeDataProvider?: TreeDataProvider): TableDataProvider {\r\n return {\r\n onColumnsChanged: new TableDataChangeEvent(),\r\n onRowsChanged: new TableDataChangeEvent(),\r\n getColumns: async () => columns,\r\n getRowsCount: async () => nodes.length,\r\n getRow: async (rowIndex: number, _unfiltered?: boolean): Promise<DataRowItem> => {\r\n if (rowIndex < 0 || rowIndex > nodes.length)\r\n return { _node: {} as TreeNodeItem, key: \"\", cells: [] };\r\n\r\n const node = nodes[rowIndex];\r\n\r\n const cells: CellItem[] = [\r\n BreadcrumbTreeUtils.createIcon(node),\r\n BreadcrumbTreeUtils.createLabel(node),\r\n BreadcrumbTreeUtils.createDescription(node),\r\n ];\r\n\r\n for (const key in node.extendedData) {\r\n // only add string values to table cell list\r\n if (node.extendedData.hasOwnProperty(key) && node.extendedData[key] instanceof PropertyRecord) {\r\n cells.push({\r\n key,\r\n record: node.extendedData[key],\r\n style: node.style,\r\n });\r\n } else if (node.extendedData.hasOwnProperty(key) && (typeof node.extendedData[key] === \"string\" || typeof node.extendedData[key] === \"boolean\" || typeof node.extendedData[key] === \"number\")) {\r\n cells.push({\r\n key,\r\n record: new PropertyRecord(\r\n {\r\n value: node.extendedData[key].toString(),\r\n valueFormat: PropertyValueFormat.Primitive,\r\n displayValue: node.extendedData[key].toString(),\r\n },\r\n {\r\n name: key,\r\n displayLabel: key,\r\n typename: \"text\",\r\n }),\r\n style: node.style,\r\n });\r\n }\r\n }\r\n node.extendedData = node.extendedData || {};\r\n node.extendedData.id = node.id;\r\n node.extendedData.label = getPropertyRecordAsString(node.label);\r\n node.extendedData.description = node.description;\r\n if ((node as DelayLoadedTreeNodeItem).hasChildren !== undefined)\r\n node.extendedData.hasChildren = (node as DelayLoadedTreeNodeItem).hasChildren;\r\n if ((node as ImmediatelyLoadedTreeNodeItem).children !== undefined)\r\n node.extendedData.children = (node as ImmediatelyLoadedTreeNodeItem).children;\r\n node.extendedData.dataProvider = treeDataProvider;\r\n node.extendedData.icon = node.icon;\r\n const row: DataRowItem = {\r\n _node: node,\r\n key: node.id,\r\n extendedData: node.extendedData,\r\n isDisabled: false,\r\n colorOverrides: node.style ? node.style.colorOverrides : undefined,\r\n cells,\r\n };\r\n return row;\r\n },\r\n // TODO: implement sorting function\r\n sort: /* istanbul ignore next */ async () => { },\r\n };\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface DataRowItem extends RowItem {\r\n _node?: TreeNodeItem;\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function getPropertyRecordAsString(label: PropertyRecord) {\r\n if (label.value.valueFormat === PropertyValueFormat.Primitive)\r\n return label.value.displayValue ?? \"\";\r\n return \"\";\r\n}\r\n"]}
1
+ {"version":3,"file":"BreadcrumbTreeUtils.js","sourceRoot":"","sources":["../../../../src/components-react/breadcrumb/BreadcrumbTreeUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Breadcrumb\r\n */\r\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { CellItem, ColumnDescription, RowItem, TableDataChangeEvent, TableDataProvider } from \"../table/TableDataProvider\";\r\nimport { DelayLoadedTreeNodeItem, hasChildren, ImmediatelyLoadedTreeNodeItem, TreeDataProvider, TreeNodeItem } from \"../tree/TreeDataProvider\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/**\r\n * Utility class for tree searching and manipulation in the Breadcrumb component.\r\n * @beta\r\n * @deprecated in 3.0.\r\n */\r\nexport class BreadcrumbTreeUtils {\r\n\r\n private static createIcon(node: TreeNodeItem): CellItem {\r\n return {\r\n key: \"icon\", record:\r\n new PropertyRecord(\r\n {\r\n value: hasChildren(node) ? \"icon-folder\" : node.icon,\r\n valueFormat: PropertyValueFormat.Primitive,\r\n displayValue: hasChildren(node) ? \"icon-folder\" : node.icon!,\r\n },\r\n {\r\n name: \"icon\",\r\n displayLabel: UiComponents.translate(\"breadcrumb.icon\"),\r\n typename: \"icon\",\r\n }),\r\n };\r\n }\r\n\r\n private static createLabel(node: TreeNodeItem): CellItem {\r\n return {\r\n key: \"label\",\r\n record: node.label,\r\n };\r\n }\r\n\r\n private static createDescription(node: TreeNodeItem): CellItem {\r\n return {\r\n key: \"description\",\r\n record: new PropertyRecord(\r\n {\r\n value: node.description || \"\",\r\n valueFormat: PropertyValueFormat.Primitive,\r\n displayValue: node.description || \"\",\r\n },\r\n {\r\n name: \"description\",\r\n displayLabel: UiComponents.translate(\"breadcrumb.description\"),\r\n typename: \"text\",\r\n }),\r\n };\r\n }\r\n\r\n /**\r\n * Transforms a list of children from a tree node into a [[TableDataProvider]], given a list of column descriptions.\r\n * @param nodes Node list to use as a basis for the [[TableDataProvider]].\r\n * @param columns An array of column descriptions to specify which columns to provide to the resulting [[TableDataProvider]].\r\n * @returns A [[TableDataProvider]] object that can be used to populate a Table component.\r\n */\r\n public static aliasNodeListToTableDataProvider(nodes: TreeNodeItem[], columns: ColumnDescription[], treeDataProvider?: TreeDataProvider): TableDataProvider {\r\n return {\r\n onColumnsChanged: new TableDataChangeEvent(),\r\n onRowsChanged: new TableDataChangeEvent(),\r\n getColumns: async () => columns,\r\n getRowsCount: async () => nodes.length,\r\n getRow: async (rowIndex: number, _unfiltered?: boolean): Promise<DataRowItem> => {\r\n if (rowIndex < 0 || rowIndex > nodes.length)\r\n return { _node: {} as TreeNodeItem, key: \"\", cells: [] };\r\n\r\n const node = nodes[rowIndex];\r\n\r\n const cells: CellItem[] = [\r\n BreadcrumbTreeUtils.createIcon(node),\r\n BreadcrumbTreeUtils.createLabel(node),\r\n BreadcrumbTreeUtils.createDescription(node),\r\n ];\r\n\r\n for (const key in node.extendedData) {\r\n // only add string values to table cell list\r\n if (node.extendedData.hasOwnProperty(key) && node.extendedData[key] instanceof PropertyRecord) {\r\n cells.push({\r\n key,\r\n record: node.extendedData[key],\r\n style: node.style,\r\n });\r\n } else if (node.extendedData.hasOwnProperty(key) && (typeof node.extendedData[key] === \"string\" || typeof node.extendedData[key] === \"boolean\" || typeof node.extendedData[key] === \"number\")) {\r\n cells.push({\r\n key,\r\n record: new PropertyRecord(\r\n {\r\n value: node.extendedData[key].toString(),\r\n valueFormat: PropertyValueFormat.Primitive,\r\n displayValue: node.extendedData[key].toString(),\r\n },\r\n {\r\n name: key,\r\n displayLabel: key,\r\n typename: \"text\",\r\n }),\r\n style: node.style,\r\n });\r\n }\r\n }\r\n node.extendedData = node.extendedData || {};\r\n node.extendedData.id = node.id;\r\n node.extendedData.label = getPropertyRecordAsString(node.label);\r\n node.extendedData.description = node.description;\r\n if ((node as DelayLoadedTreeNodeItem).hasChildren !== undefined)\r\n node.extendedData.hasChildren = (node as DelayLoadedTreeNodeItem).hasChildren;\r\n if ((node as ImmediatelyLoadedTreeNodeItem).children !== undefined)\r\n node.extendedData.children = (node as ImmediatelyLoadedTreeNodeItem).children;\r\n node.extendedData.dataProvider = treeDataProvider;\r\n node.extendedData.icon = node.icon;\r\n const row: DataRowItem = {\r\n _node: node,\r\n key: node.id,\r\n extendedData: node.extendedData,\r\n isDisabled: false,\r\n colorOverrides: node.style ? node.style.colorOverrides : undefined,\r\n cells,\r\n };\r\n return row;\r\n },\r\n // TODO: implement sorting function\r\n sort: /* istanbul ignore next */ async () => { },\r\n };\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface DataRowItem extends RowItem {\r\n _node?: TreeNodeItem;\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function getPropertyRecordAsString(label: PropertyRecord) {\r\n if (label.value.valueFormat === PropertyValueFormat.Primitive)\r\n return label.value.displayValue ?? \"\";\r\n return \"\";\r\n}\r\n"]}
@@ -5,7 +5,7 @@ import * as React from "react";
5
5
  import { GlobalDialogProps } from "@itwin/core-react";
6
6
  import { ShowHideID, ShowHideItem } from "./ShowHideItem";
7
7
  /** Properties for the [[ShowHideDialog]] component used in the [[Table]] to show/hide columns.
8
- * @public @deprecated will be removed when deprecated [[Table]] component is removed.
8
+ * @public @deprecated in 3.2. Will be removed when deprecated [[Table]] component is removed.
9
9
  */
10
10
  export interface ShowHideDialogProps<T extends ShowHideID> extends GlobalDialogProps {
11
11
  /** key-label pair list for id's to be shown/hidden, and an accompanying label. */
@@ -21,7 +21,7 @@ interface ShowHideDialogState<T extends ShowHideID> {
21
21
  }
22
22
  /**
23
23
  * [Dialog]($core-react) Component used to toggle show/hide table columns, given through items prop, through a list of checkboxes.
24
- * @public @deprecated will be removed when deprecated [[Table]] component is removed.
24
+ * @public @deprecated in 3.2. Will be removed when deprecated [[Table]] component is removed.
25
25
  */
26
26
  export declare class ShowHideDialog<T extends ShowHideID> extends React.PureComponent<ShowHideDialogProps<T>, ShowHideDialogState<T>> {
27
27
  /** @internal */