@itwin/components-react 4.0.0-dev.1 → 4.0.0-dev.10

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 (556) hide show
  1. package/CHANGELOG.md +1 -99
  2. package/lib/cjs/components-react/UiComponents.d.ts +1 -1
  3. package/lib/cjs/components-react/UiComponents.js +1 -1
  4. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  5. package/lib/cjs/components-react/common/ImageRenderer.d.ts.map +1 -1
  6. package/lib/cjs/components-react/common/ImageRenderer.js +1 -0
  7. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  8. package/lib/cjs/components-react/common/selection/SelectionModes.d.ts +2 -2
  9. package/lib/cjs/components-react/common/selection/SelectionModes.js +2 -2
  10. package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
  11. package/lib/cjs/components-react/converters/TypeConverterManager.d.ts.map +1 -1
  12. package/lib/cjs/components-react/converters/TypeConverterManager.js +4 -3
  13. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  14. package/lib/cjs/components-react/datepicker/DatePicker.d.ts.map +1 -1
  15. package/lib/cjs/components-react/datepicker/DatePicker.js +7 -0
  16. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  17. package/lib/cjs/components-react/datepicker/DatePicker.scss +27 -21
  18. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +2 -3
  19. package/lib/cjs/components-react/datepicker/TimeField.scss +8 -6
  20. package/lib/cjs/components-react/editors/BooleanEditor.d.ts +1 -0
  21. package/lib/cjs/components-react/editors/BooleanEditor.d.ts.map +1 -1
  22. package/lib/cjs/components-react/editors/BooleanEditor.js +9 -14
  23. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  24. package/lib/cjs/components-react/editors/BooleanEditor.scss +5 -7
  25. package/lib/cjs/components-react/editors/EditorContainer.d.ts +1 -1
  26. package/lib/cjs/components-react/editors/EditorContainer.js +1 -1
  27. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  28. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +17 -18
  29. package/lib/cjs/components-react/editors/IconEditor.scss +3 -4
  30. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  31. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  32. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +6 -5
  33. package/lib/cjs/components-react/editors/PopupButton.scss +14 -18
  34. package/lib/cjs/components-react/editors/TextareaEditor.js +1 -1
  35. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  36. package/lib/cjs/components-react/editors/ToggleEditor.d.ts.map +1 -1
  37. package/lib/cjs/components-react/editors/ToggleEditor.js +1 -9
  38. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  39. package/lib/cjs/components-react/editors/ToggleEditor.scss +4 -6
  40. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts +25 -1
  41. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  42. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js +24 -2
  43. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  44. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +3 -4
  45. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  46. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +9 -6
  47. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  48. package/lib/cjs/components-react/filtering/ResultSelector.scss +1 -1
  49. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  50. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  51. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +4 -4
  52. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  53. package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +5 -5
  54. package/lib/cjs/components-react/properties/ItemStyle.d.ts +2 -2
  55. package/lib/cjs/components-react/properties/ItemStyle.js +1 -1
  56. package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
  57. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +1 -1
  58. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  59. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +2 -2
  60. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js +1 -1
  61. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  62. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js +1 -1
  63. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  64. package/lib/cjs/components-react/properties/renderers/PropertyView.scss +4 -5
  65. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +6 -6
  66. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.d.ts +2 -0
  67. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.d.ts.map +1 -1
  68. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  69. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +0 -1
  70. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.map +1 -1
  71. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js +0 -1
  72. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  73. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +2 -0
  74. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
  75. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  76. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts +0 -9
  77. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts.map +1 -1
  78. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  79. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +2 -2
  80. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +0 -4
  81. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  82. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  83. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.d.ts +0 -2
  84. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.d.ts.map +1 -1
  85. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js +0 -6
  86. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  87. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +0 -8
  88. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts.map +1 -1
  89. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  90. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts +0 -6
  91. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts.map +1 -1
  92. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +2 -14
  93. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  94. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +1 -1
  95. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  96. package/lib/cjs/components-react/selectable-content/SelectableContent.scss +0 -1
  97. package/lib/cjs/components-react/table/TableDataProvider.d.ts +2 -158
  98. package/lib/cjs/components-react/table/TableDataProvider.d.ts.map +1 -1
  99. package/lib/cjs/components-react/table/TableDataProvider.js +2 -17
  100. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  101. package/lib/cjs/components-react/toolbar/Items.scss +12 -10
  102. package/lib/cjs/components-react/toolbar/Overflow.scss +5 -5
  103. package/lib/cjs/components-react/toolbar/OverflowPanel.scss +5 -5
  104. package/lib/cjs/components-react/toolbar/PopupItem.scss +14 -12
  105. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +0 -17
  106. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  107. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js +3 -13
  108. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  109. package/lib/cjs/components-react/toolbar/_variables.scss +2 -3
  110. package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +1 -1
  111. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +10 -11
  112. package/lib/cjs/components-react/tree/ImageLoader.d.ts +1 -1
  113. package/lib/cjs/components-react/tree/ImageLoader.d.ts.map +1 -1
  114. package/lib/cjs/components-react/tree/ImageLoader.js +1 -1
  115. package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
  116. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.d.ts +1 -3
  117. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.d.ts.map +1 -1
  118. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js +0 -2
  119. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  120. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +1 -22
  121. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  122. package/lib/cjs/components-react/tree/TreeDataProvider.js +1 -0
  123. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  124. package/lib/cjs/components-react/tree/controlled/Observable.d.ts +12 -2
  125. package/lib/cjs/components-react/tree/controlled/Observable.d.ts.map +1 -1
  126. package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
  127. package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
  128. package/lib/cjs/components-react/tree/controlled/TreeHooks.js +2 -4
  129. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  130. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts +1 -1
  131. package/lib/cjs/components-react/tree/controlled/TreeModel.js +1 -1
  132. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  133. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.d.ts +4 -12
  134. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
  135. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js +0 -14
  136. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  137. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  138. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js +1 -2
  139. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  140. package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
  141. package/lib/cjs/components-react/tree/controlled/component/NodeContent.js +5 -4
  142. package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  143. package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +3 -4
  144. package/lib/cjs/components-react.d.ts +5 -16
  145. package/lib/cjs/components-react.d.ts.map +1 -1
  146. package/lib/cjs/components-react.js +6 -16
  147. package/lib/cjs/components-react.js.map +1 -1
  148. package/lib/esm/components-react/UiComponents.d.ts +1 -1
  149. package/lib/esm/components-react/UiComponents.js +1 -1
  150. package/lib/esm/components-react/UiComponents.js.map +1 -1
  151. package/lib/esm/components-react/common/ImageRenderer.d.ts.map +1 -1
  152. package/lib/esm/components-react/common/ImageRenderer.js +1 -0
  153. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  154. package/lib/esm/components-react/common/selection/SelectionModes.d.ts +2 -2
  155. package/lib/esm/components-react/common/selection/SelectionModes.js +2 -2
  156. package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
  157. package/lib/esm/components-react/converters/TypeConverterManager.d.ts.map +1 -1
  158. package/lib/esm/components-react/converters/TypeConverterManager.js +4 -3
  159. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  160. package/lib/esm/components-react/datepicker/DatePicker.d.ts.map +1 -1
  161. package/lib/esm/components-react/datepicker/DatePicker.js +7 -0
  162. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  163. package/lib/esm/components-react/datepicker/DatePicker.scss +27 -21
  164. package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +2 -3
  165. package/lib/esm/components-react/datepicker/TimeField.scss +8 -6
  166. package/lib/esm/components-react/editors/BooleanEditor.d.ts +1 -0
  167. package/lib/esm/components-react/editors/BooleanEditor.d.ts.map +1 -1
  168. package/lib/esm/components-react/editors/BooleanEditor.js +9 -14
  169. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  170. package/lib/esm/components-react/editors/BooleanEditor.scss +5 -7
  171. package/lib/esm/components-react/editors/EditorContainer.d.ts +1 -1
  172. package/lib/esm/components-react/editors/EditorContainer.js +1 -1
  173. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  174. package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +17 -18
  175. package/lib/esm/components-react/editors/IconEditor.scss +3 -4
  176. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  177. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  178. package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +6 -5
  179. package/lib/esm/components-react/editors/PopupButton.scss +14 -18
  180. package/lib/esm/components-react/editors/TextareaEditor.js +1 -1
  181. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  182. package/lib/esm/components-react/editors/ToggleEditor.d.ts.map +1 -1
  183. package/lib/esm/components-react/editors/ToggleEditor.js +1 -9
  184. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  185. package/lib/esm/components-react/editors/ToggleEditor.scss +4 -6
  186. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts +25 -1
  187. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  188. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js +24 -2
  189. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  190. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +3 -4
  191. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  192. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +9 -6
  193. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  194. package/lib/esm/components-react/filtering/ResultSelector.scss +1 -1
  195. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  196. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  197. package/lib/esm/components-react/iconpicker/IconPickerButton.js +5 -5
  198. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  199. package/lib/esm/components-react/iconpicker/IconPickerButton.scss +5 -5
  200. package/lib/esm/components-react/properties/ItemStyle.d.ts +2 -2
  201. package/lib/esm/components-react/properties/ItemStyle.js +1 -1
  202. package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
  203. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +1 -1
  204. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  205. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +2 -2
  206. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js +1 -1
  207. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  208. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js +1 -1
  209. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  210. package/lib/esm/components-react/properties/renderers/PropertyView.scss +4 -5
  211. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +6 -6
  212. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.d.ts +2 -0
  213. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.d.ts.map +1 -1
  214. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  215. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +0 -1
  216. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.map +1 -1
  217. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js +0 -1
  218. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  219. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +2 -0
  220. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
  221. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  222. package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts +0 -9
  223. package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts.map +1 -1
  224. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  225. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +2 -2
  226. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +0 -4
  227. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  228. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  229. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.d.ts +0 -2
  230. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.d.ts.map +1 -1
  231. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js +0 -6
  232. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  233. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +0 -8
  234. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts.map +1 -1
  235. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  236. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts +0 -6
  237. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts.map +1 -1
  238. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +2 -14
  239. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  240. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +1 -1
  241. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  242. package/lib/esm/components-react/selectable-content/SelectableContent.scss +0 -1
  243. package/lib/esm/components-react/table/TableDataProvider.d.ts +2 -158
  244. package/lib/esm/components-react/table/TableDataProvider.d.ts.map +1 -1
  245. package/lib/esm/components-react/table/TableDataProvider.js +1 -16
  246. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  247. package/lib/esm/components-react/toolbar/Items.scss +12 -10
  248. package/lib/esm/components-react/toolbar/Overflow.scss +5 -5
  249. package/lib/esm/components-react/toolbar/OverflowPanel.scss +5 -5
  250. package/lib/esm/components-react/toolbar/PopupItem.scss +14 -12
  251. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +0 -17
  252. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  253. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js +5 -12
  254. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  255. package/lib/esm/components-react/toolbar/_variables.scss +2 -3
  256. package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +1 -1
  257. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +10 -11
  258. package/lib/esm/components-react/tree/ImageLoader.d.ts +1 -1
  259. package/lib/esm/components-react/tree/ImageLoader.d.ts.map +1 -1
  260. package/lib/esm/components-react/tree/ImageLoader.js +1 -1
  261. package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
  262. package/lib/esm/components-react/tree/SimpleTreeDataProvider.d.ts +1 -3
  263. package/lib/esm/components-react/tree/SimpleTreeDataProvider.d.ts.map +1 -1
  264. package/lib/esm/components-react/tree/SimpleTreeDataProvider.js +0 -2
  265. package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  266. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +1 -22
  267. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  268. package/lib/esm/components-react/tree/TreeDataProvider.js +1 -0
  269. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  270. package/lib/esm/components-react/tree/controlled/Observable.d.ts +12 -2
  271. package/lib/esm/components-react/tree/controlled/Observable.d.ts.map +1 -1
  272. package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
  273. package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
  274. package/lib/esm/components-react/tree/controlled/TreeHooks.js +2 -4
  275. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  276. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts +1 -1
  277. package/lib/esm/components-react/tree/controlled/TreeModel.js +1 -1
  278. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  279. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.d.ts +4 -12
  280. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
  281. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js +0 -14
  282. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  283. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  284. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js +1 -2
  285. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  286. package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
  287. package/lib/esm/components-react/tree/controlled/component/NodeContent.js +5 -4
  288. package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  289. package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +3 -4
  290. package/lib/esm/components-react.d.ts +5 -16
  291. package/lib/esm/components-react.d.ts.map +1 -1
  292. package/lib/esm/components-react.js +6 -16
  293. package/lib/esm/components-react.js.map +1 -1
  294. package/package.json +21 -36
  295. package/lib/cjs/components-react/breadcrumb/BeInspireTree.d.ts +0 -263
  296. package/lib/cjs/components-react/breadcrumb/BeInspireTree.d.ts.map +0 -1
  297. package/lib/cjs/components-react/breadcrumb/BeInspireTree.js +0 -902
  298. package/lib/cjs/components-react/breadcrumb/BeInspireTree.js.map +0 -1
  299. package/lib/cjs/components-react/breadcrumb/Breadcrumb.d.ts +0 -198
  300. package/lib/cjs/components-react/breadcrumb/Breadcrumb.d.ts.map +0 -1
  301. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js +0 -652
  302. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +0 -1
  303. package/lib/cjs/components-react/breadcrumb/Breadcrumb.scss +0 -197
  304. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.d.ts +0 -66
  305. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.d.ts.map +0 -1
  306. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js +0 -232
  307. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +0 -1
  308. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.d.ts +0 -36
  309. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.d.ts.map +0 -1
  310. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js +0 -47
  311. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +0 -1
  312. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +0 -30
  313. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts.map +0 -1
  314. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js +0 -136
  315. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +0 -1
  316. package/lib/cjs/components-react/common/showhide/ShowHideDialog.d.ts +0 -39
  317. package/lib/cjs/components-react/common/showhide/ShowHideDialog.d.ts.map +0 -1
  318. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js +0 -91
  319. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +0 -1
  320. package/lib/cjs/components-react/common/showhide/ShowHideItem.d.ts +0 -15
  321. package/lib/cjs/components-react/common/showhide/ShowHideItem.d.ts.map +0 -1
  322. package/lib/cjs/components-react/common/showhide/ShowHideItem.js +0 -10
  323. package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +0 -1
  324. package/lib/cjs/components-react/common/showhide/ShowHideMenu.d.ts +0 -54
  325. package/lib/cjs/components-react/common/showhide/ShowHideMenu.d.ts.map +0 -1
  326. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js +0 -124
  327. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +0 -1
  328. package/lib/cjs/components-react/editors/ThemedEnumEditor.d.ts +0 -63
  329. package/lib/cjs/components-react/editors/ThemedEnumEditor.d.ts.map +0 -1
  330. package/lib/cjs/components-react/editors/ThemedEnumEditor.js +0 -207
  331. package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +0 -1
  332. package/lib/cjs/components-react/editors/ThemedEnumEditor.scss +0 -83
  333. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +0 -11
  334. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts +0 -58
  335. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts.map +0 -1
  336. package/lib/cjs/components-react/table/SimpleTableDataProvider.js +0 -255
  337. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +0 -1
  338. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts +0 -242
  339. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts.map +0 -1
  340. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js +0 -115
  341. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +0 -1
  342. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.scss +0 -79
  343. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.d.ts +0 -14
  344. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.d.ts.map +0 -1
  345. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js +0 -37
  346. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +0 -1
  347. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.d.ts +0 -88
  348. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +0 -1
  349. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js +0 -193
  350. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js.map +0 -1
  351. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.d.ts +0 -58
  352. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.d.ts.map +0 -1
  353. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js +0 -104
  354. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js.map +0 -1
  355. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.d.ts +0 -57
  356. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.d.ts.map +0 -1
  357. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js +0 -364
  358. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +0 -1
  359. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.d.ts +0 -86
  360. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.d.ts.map +0 -1
  361. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js +0 -404
  362. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js.map +0 -1
  363. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.d.ts +0 -29
  364. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.d.ts.map +0 -1
  365. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js +0 -88
  366. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +0 -1
  367. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.d.ts +0 -29
  368. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.d.ts.map +0 -1
  369. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js +0 -75
  370. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +0 -1
  371. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.d.ts +0 -5
  372. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.d.ts.map +0 -1
  373. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js +0 -23
  374. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +0 -1
  375. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts +0 -22
  376. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +0 -1
  377. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +0 -88
  378. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +0 -1
  379. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.d.ts +0 -5
  380. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.d.ts.map +0 -1
  381. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js +0 -23
  382. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +0 -1
  383. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts +0 -19
  384. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +0 -1
  385. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +0 -184
  386. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +0 -1
  387. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +0 -36
  388. package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts +0 -15
  389. package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts.map +0 -1
  390. package/lib/cjs/components-react/table/component/ColumnDragLayer.js +0 -66
  391. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +0 -1
  392. package/lib/cjs/components-react/table/component/DragDropHeaderCell.d.ts +0 -27
  393. package/lib/cjs/components-react/table/component/DragDropHeaderCell.d.ts.map +0 -1
  394. package/lib/cjs/components-react/table/component/DragDropHeaderCell.js +0 -102
  395. package/lib/cjs/components-react/table/component/DragDropHeaderCell.js.map +0 -1
  396. package/lib/cjs/components-react/table/component/Table.d.ts +0 -308
  397. package/lib/cjs/components-react/table/component/Table.d.ts.map +0 -1
  398. package/lib/cjs/components-react/table/component/Table.js +0 -1335
  399. package/lib/cjs/components-react/table/component/Table.js.map +0 -1
  400. package/lib/cjs/components-react/table/component/Table.scss +0 -201
  401. package/lib/cjs/components-react/table/component/TableCell.d.ts +0 -101
  402. package/lib/cjs/components-react/table/component/TableCell.d.ts.map +0 -1
  403. package/lib/cjs/components-react/table/component/TableCell.js +0 -137
  404. package/lib/cjs/components-react/table/component/TableCell.js.map +0 -1
  405. package/lib/cjs/components-react/table/component/TableCell.scss +0 -49
  406. package/lib/cjs/components-react/table/component/TableColumn.d.ts +0 -31
  407. package/lib/cjs/components-react/table/component/TableColumn.d.ts.map +0 -1
  408. package/lib/cjs/components-react/table/component/TableColumn.js +0 -33
  409. package/lib/cjs/components-react/table/component/TableColumn.js.map +0 -1
  410. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.d.ts +0 -13
  411. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.d.ts.map +0 -1
  412. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js +0 -42
  413. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +0 -1
  414. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.d.ts +0 -155
  415. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.d.ts.map +0 -1
  416. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js +0 -33
  417. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +0 -1
  418. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.d.ts +0 -42
  419. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.d.ts.map +0 -1
  420. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js +0 -189
  421. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +0 -1
  422. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.d.ts +0 -36
  423. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.d.ts.map +0 -1
  424. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js +0 -150
  425. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +0 -1
  426. package/lib/esm/components-react/breadcrumb/BeInspireTree.d.ts +0 -263
  427. package/lib/esm/components-react/breadcrumb/BeInspireTree.d.ts.map +0 -1
  428. package/lib/esm/components-react/breadcrumb/BeInspireTree.js +0 -892
  429. package/lib/esm/components-react/breadcrumb/BeInspireTree.js.map +0 -1
  430. package/lib/esm/components-react/breadcrumb/Breadcrumb.d.ts +0 -198
  431. package/lib/esm/components-react/breadcrumb/Breadcrumb.d.ts.map +0 -1
  432. package/lib/esm/components-react/breadcrumb/Breadcrumb.js +0 -623
  433. package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +0 -1
  434. package/lib/esm/components-react/breadcrumb/Breadcrumb.scss +0 -197
  435. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.d.ts +0 -66
  436. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.d.ts.map +0 -1
  437. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js +0 -206
  438. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +0 -1
  439. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.d.ts +0 -36
  440. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.d.ts.map +0 -1
  441. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js +0 -42
  442. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +0 -1
  443. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +0 -30
  444. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts.map +0 -1
  445. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js +0 -131
  446. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +0 -1
  447. package/lib/esm/components-react/common/showhide/ShowHideDialog.d.ts +0 -39
  448. package/lib/esm/components-react/common/showhide/ShowHideDialog.d.ts.map +0 -1
  449. package/lib/esm/components-react/common/showhide/ShowHideDialog.js +0 -68
  450. package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +0 -1
  451. package/lib/esm/components-react/common/showhide/ShowHideItem.d.ts +0 -15
  452. package/lib/esm/components-react/common/showhide/ShowHideItem.d.ts.map +0 -1
  453. package/lib/esm/components-react/common/showhide/ShowHideItem.js +0 -9
  454. package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +0 -1
  455. package/lib/esm/components-react/common/showhide/ShowHideMenu.d.ts +0 -54
  456. package/lib/esm/components-react/common/showhide/ShowHideMenu.d.ts.map +0 -1
  457. package/lib/esm/components-react/common/showhide/ShowHideMenu.js +0 -101
  458. package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +0 -1
  459. package/lib/esm/components-react/editors/ThemedEnumEditor.d.ts +0 -63
  460. package/lib/esm/components-react/editors/ThemedEnumEditor.d.ts.map +0 -1
  461. package/lib/esm/components-react/editors/ThemedEnumEditor.js +0 -180
  462. package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +0 -1
  463. package/lib/esm/components-react/editors/ThemedEnumEditor.scss +0 -83
  464. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +0 -11
  465. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts +0 -58
  466. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts.map +0 -1
  467. package/lib/esm/components-react/table/SimpleTableDataProvider.js +0 -251
  468. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +0 -1
  469. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts +0 -242
  470. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts.map +0 -1
  471. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js +0 -108
  472. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +0 -1
  473. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.scss +0 -79
  474. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.d.ts +0 -14
  475. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.d.ts.map +0 -1
  476. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js +0 -33
  477. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +0 -1
  478. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.d.ts +0 -88
  479. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +0 -1
  480. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js +0 -189
  481. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js.map +0 -1
  482. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.d.ts +0 -58
  483. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.d.ts.map +0 -1
  484. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js +0 -100
  485. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js.map +0 -1
  486. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.d.ts +0 -57
  487. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.d.ts.map +0 -1
  488. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js +0 -360
  489. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +0 -1
  490. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.d.ts +0 -86
  491. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.d.ts.map +0 -1
  492. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js +0 -400
  493. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js.map +0 -1
  494. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.d.ts +0 -29
  495. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.d.ts.map +0 -1
  496. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js +0 -84
  497. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +0 -1
  498. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.d.ts +0 -29
  499. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.d.ts.map +0 -1
  500. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js +0 -49
  501. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +0 -1
  502. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.d.ts +0 -5
  503. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.d.ts.map +0 -1
  504. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js +0 -16
  505. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +0 -1
  506. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts +0 -22
  507. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +0 -1
  508. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +0 -81
  509. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +0 -1
  510. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.d.ts +0 -5
  511. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.d.ts.map +0 -1
  512. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js +0 -16
  513. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +0 -1
  514. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts +0 -19
  515. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +0 -1
  516. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +0 -177
  517. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +0 -1
  518. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +0 -36
  519. package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts +0 -15
  520. package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts.map +0 -1
  521. package/lib/esm/components-react/table/component/ColumnDragLayer.js +0 -40
  522. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +0 -1
  523. package/lib/esm/components-react/table/component/DragDropHeaderCell.d.ts +0 -27
  524. package/lib/esm/components-react/table/component/DragDropHeaderCell.d.ts.map +0 -1
  525. package/lib/esm/components-react/table/component/DragDropHeaderCell.js +0 -76
  526. package/lib/esm/components-react/table/component/DragDropHeaderCell.js.map +0 -1
  527. package/lib/esm/components-react/table/component/Table.d.ts +0 -308
  528. package/lib/esm/components-react/table/component/Table.d.ts.map +0 -1
  529. package/lib/esm/components-react/table/component/Table.js +0 -1308
  530. package/lib/esm/components-react/table/component/Table.js.map +0 -1
  531. package/lib/esm/components-react/table/component/Table.scss +0 -201
  532. package/lib/esm/components-react/table/component/TableCell.d.ts +0 -101
  533. package/lib/esm/components-react/table/component/TableCell.d.ts.map +0 -1
  534. package/lib/esm/components-react/table/component/TableCell.js +0 -109
  535. package/lib/esm/components-react/table/component/TableCell.js.map +0 -1
  536. package/lib/esm/components-react/table/component/TableCell.scss +0 -49
  537. package/lib/esm/components-react/table/component/TableColumn.d.ts +0 -31
  538. package/lib/esm/components-react/table/component/TableColumn.d.ts.map +0 -1
  539. package/lib/esm/components-react/table/component/TableColumn.js +0 -29
  540. package/lib/esm/components-react/table/component/TableColumn.js.map +0 -1
  541. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.d.ts +0 -13
  542. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.d.ts.map +0 -1
  543. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js +0 -19
  544. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +0 -1
  545. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.d.ts +0 -155
  546. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.d.ts.map +0 -1
  547. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js +0 -30
  548. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +0 -1
  549. package/lib/esm/components-react/table/component/dragdrop/withDragSource.d.ts +0 -42
  550. package/lib/esm/components-react/table/component/dragdrop/withDragSource.d.ts.map +0 -1
  551. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js +0 -166
  552. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +0 -1
  553. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.d.ts +0 -36
  554. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.d.ts.map +0 -1
  555. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js +0 -127
  556. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +0 -1
@@ -24,7 +24,7 @@
24
24
  height: $item-height;
25
25
  color: $label-color;
26
26
  cursor: pointer;
27
- border-radius: 3px;
27
+ border-radius: var(--iui-border-radius-1);
28
28
  display: flex;
29
29
  align-items: center;
30
30
 
@@ -35,14 +35,14 @@
35
35
  background: $buic-row-selection;
36
36
  color: $pressed-label-color;
37
37
 
38
- >.components-icon,
38
+ > .components-icon,
39
39
  .components-label {
40
40
  filter: $no-shadow;
41
41
  }
42
42
  }
43
43
  }
44
44
 
45
- >.components-icon {
45
+ > .components-icon {
46
46
  width: $icon-size;
47
47
  height: $icon-size;
48
48
  display: inline-block;
@@ -51,7 +51,7 @@
51
51
  filter: $shadow;
52
52
  position: relative;
53
53
 
54
- >.components-badge {
54
+ > .components-badge {
55
55
  position: absolute;
56
56
  top: -8px;
57
57
  left: -8px;
@@ -59,7 +59,7 @@
59
59
  }
60
60
  }
61
61
 
62
- >.components-label {
62
+ > .components-label {
63
63
  display: inline-block;
64
64
  margin-right: $space-after-label;
65
65
  line-height: $item-height;
@@ -82,7 +82,7 @@
82
82
 
83
83
  @include body1;
84
84
 
85
- >.components-icon,
85
+ > .components-icon,
86
86
  .components-label {
87
87
  filter: $shadow;
88
88
  }
@@ -111,7 +111,7 @@
111
111
 
112
112
  @include body1;
113
113
 
114
- >.components-icon,
114
+ > .components-icon,
115
115
  .components-label {
116
116
  filter: $shadow;
117
117
  }
@@ -123,7 +123,7 @@
123
123
  @include body1;
124
124
 
125
125
  &::before {
126
- content: '';
126
+ content: "";
127
127
  background-color: $active-label-color;
128
128
  display: block;
129
129
  position: relative;
@@ -134,7 +134,7 @@
134
134
  border-radius: 2px;
135
135
  }
136
136
 
137
- >.components-icon,
137
+ > .components-icon,
138
138
  .components-label {
139
139
  filter: $no-shadow;
140
140
  }
@@ -143,5 +143,4 @@
143
143
  &.components-disabled {
144
144
  color: $disabled-label-color;
145
145
  }
146
-
147
- }
146
+ }
@@ -13,7 +13,7 @@ export interface ITreeImageLoader extends IImageLoader {
13
13
  * @public
14
14
  */
15
15
  export declare class TreeImageLoader implements ITreeImageLoader {
16
- /** Loads image data from either [[TreeNodeItem]] or [[BeInspireTreeNodeITree]] */
16
+ /** Loads image data from either [[TreeNodeItem]] */
17
17
  load(item: TreeNodeItem): LoadedImage | undefined;
18
18
  }
19
19
  //# sourceMappingURL=ImageLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageLoader.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,WAAW,GAAG,SAAS,CAAC;CACvD;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,kFAAkF;IAC3E,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS;CASzD"}
1
+ {"version":3,"file":"ImageLoader.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,WAAW,GAAG,SAAS,CAAC;CACvD;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,oDAAoD;IAC7C,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS;CASzD"}
@@ -9,7 +9,7 @@
9
9
  * @public
10
10
  */
11
11
  export class TreeImageLoader {
12
- /** Loads image data from either [[TreeNodeItem]] or [[BeInspireTreeNodeITree]] */
12
+ /** Loads image data from either [[TreeNodeItem]] */
13
13
  load(item) {
14
14
  if (!item.icon)
15
15
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAYH;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,kFAAkF;IAC3E,IAAI,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC;IACJ,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 Tree\r\n */\r\n\r\nimport { IImageLoader, LoadedImage } from \"../common/IImageLoader\";\r\nimport { TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/** Interface for a tree image loader\r\n * @public\r\n */\r\nexport interface ITreeImageLoader extends IImageLoader {\r\n load: (item: TreeNodeItem) => LoadedImage | undefined;\r\n}\r\n\r\n/** Default image loader for the tree\r\n * @public\r\n */\r\nexport class TreeImageLoader implements ITreeImageLoader {\r\n /** Loads image data from either [[TreeNodeItem]] or [[BeInspireTreeNodeITree]] */\r\n public load(item: TreeNodeItem): LoadedImage | undefined {\r\n if (!item.icon)\r\n return undefined;\r\n\r\n return {\r\n sourceType: \"webfont-icon\",\r\n value: item.icon,\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAYH;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,oDAAoD;IAC7C,IAAI,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC;IACJ,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 Tree\r\n */\r\n\r\nimport { IImageLoader, LoadedImage } from \"../common/IImageLoader\";\r\nimport { TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/** Interface for a tree image loader\r\n * @public\r\n */\r\nexport interface ITreeImageLoader extends IImageLoader {\r\n load: (item: TreeNodeItem) => LoadedImage | undefined;\r\n}\r\n\r\n/** Default image loader for the tree\r\n * @public\r\n */\r\nexport class TreeImageLoader implements ITreeImageLoader {\r\n /** Loads image data from either [[TreeNodeItem]] */\r\n public load(item: TreeNodeItem): LoadedImage | undefined {\r\n if (!item.icon)\r\n return undefined;\r\n\r\n return {\r\n sourceType: \"webfont-icon\",\r\n value: item.icon,\r\n };\r\n }\r\n}\r\n"]}
@@ -1,9 +1,8 @@
1
1
  /** @packageDocumentation
2
2
  * @module Tree
3
3
  */
4
- import { BeEvent } from "@itwin/core-bentley";
5
4
  import { PageOptions } from "../common/PageOptions";
6
- import { ITreeDataProvider, TreeDataChangesListener, TreeNodeItem } from "./TreeDataProvider";
5
+ import { ITreeDataProvider, TreeNodeItem } from "./TreeDataProvider";
7
6
  /**
8
7
  * Used by [[SimpleTreeDataProvider]].
9
8
  * key - Parent id.
@@ -18,7 +17,6 @@ export declare type SimpleTreeDataProviderHierarchy = Map<string | undefined, Tr
18
17
  export declare class SimpleTreeDataProvider implements ITreeDataProvider {
19
18
  private _hierarchy;
20
19
  constructor(hierarchy: SimpleTreeDataProviderHierarchy);
21
- onTreeNodeChanged: BeEvent<TreeDataChangesListener>;
22
20
  private getNodesByParentId;
23
21
  getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]>;
24
22
  getNodesCount(parent?: TreeNodeItem): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTreeDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9F;;;;;GAKG;AACH,oBAAY,+BAA+B,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AAEtF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,UAAU,CAAkC;gBAEjC,SAAS,EAAE,+BAA+B;IAItD,iBAAiB,mCAA0C;IAElE,OAAO,CAAC,kBAAkB;IAiBb,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAInF,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;CAGnE"}
1
+ {"version":3,"file":"SimpleTreeDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;GAKG;AACH,oBAAY,+BAA+B,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AAEtF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,UAAU,CAAkC;gBAEjC,SAAS,EAAE,+BAA+B;IAI7D,OAAO,CAAC,kBAAkB;IAiBb,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAInF,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;CAGnE"}
@@ -5,14 +5,12 @@
5
5
  /** @packageDocumentation
6
6
  * @module Tree
7
7
  */
8
- import { BeEvent } from "@itwin/core-bentley";
9
8
  /**
10
9
  * A tree data provider using [[SimpleTreeDataProviderHierarchy]].
11
10
  * @public
12
11
  */
13
12
  export class SimpleTreeDataProvider {
14
13
  constructor(hierarchy) {
15
- this.onTreeNodeChanged = new BeEvent();
16
14
  this._hierarchy = hierarchy;
17
15
  }
18
16
  getNodesByParentId(parentId, pageOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAY9C;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAGjC,YAAmB,SAA0C;QAItD,sBAAiB,GAAG,IAAI,OAAO,EAA2B,CAAC;QAHhE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAIO,kBAAkB,CAAC,QAAiB,EAAE,WAAyB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YACR,OAAO,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,WAAyB;QACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,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 Tree\r\n */\r\n\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ITreeDataProvider, TreeDataChangesListener, TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/**\r\n * Used by [[SimpleTreeDataProvider]].\r\n * key - Parent id.\r\n * value - Child tree node items.\r\n * @public\r\n */\r\nexport type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;\r\n\r\n/**\r\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\r\n * @public\r\n */\r\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\r\n private _hierarchy: SimpleTreeDataProviderHierarchy;\r\n\r\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\r\n this._hierarchy = hierarchy;\r\n }\r\n\r\n public onTreeNodeChanged = new BeEvent<TreeDataChangesListener>();\r\n\r\n private getNodesByParentId(parentId?: string, pageOptions?: PageOptions): TreeNodeItem[] {\r\n const nodes = this._hierarchy.get(parentId);\r\n\r\n if (!nodes)\r\n return [];\r\n\r\n if (!pageOptions)\r\n return [...nodes];\r\n\r\n let pageEndIndex: number | undefined;\r\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\r\n pageEndIndex = pageOptions.size;\r\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\r\n }\r\n return nodes.slice(pageOptions.start, pageEndIndex);\r\n }\r\n\r\n public async getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\r\n }\r\n\r\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAaH;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAGjC,YAAmB,SAA0C;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CAAC,QAAiB,EAAE,WAAyB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YACR,OAAO,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,WAAyB;QACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,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 Tree\r\n */\r\n\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ITreeDataProvider, TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/**\r\n * Used by [[SimpleTreeDataProvider]].\r\n * key - Parent id.\r\n * value - Child tree node items.\r\n * @public\r\n */\r\nexport type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;\r\n\r\n/**\r\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\r\n * @public\r\n */\r\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\r\n private _hierarchy: SimpleTreeDataProviderHierarchy;\r\n\r\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\r\n this._hierarchy = hierarchy;\r\n }\r\n\r\n private getNodesByParentId(parentId?: string, pageOptions?: PageOptions): TreeNodeItem[] {\r\n const nodes = this._hierarchy.get(parentId);\r\n\r\n if (!nodes)\r\n return [];\r\n\r\n if (!pageOptions)\r\n return [...nodes];\r\n\r\n let pageEndIndex: number | undefined;\r\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\r\n pageEndIndex = pageOptions.size;\r\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\r\n }\r\n return nodes.slice(pageOptions.start, pageEndIndex);\r\n }\r\n\r\n public async getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\r\n }\r\n\r\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,6 @@
1
1
  /** @packageDocumentation
2
2
  * @module Tree
3
3
  */
4
- import { BeEvent } from "@itwin/core-bentley";
5
4
  import { PropertyRecord } from "@itwin/appui-abstract";
6
5
  import { CheckBoxState } from "@itwin/core-react";
7
6
  import { PageOptions } from "../common/PageOptions";
@@ -59,12 +58,10 @@ export declare type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<De
59
58
  * @public
60
59
  */
61
60
  export interface ITreeDataProvider {
62
- /** @deprecated in 2.x. */
63
- onTreeNodeChanged?: BeEvent<TreeDataChangesListener>;
64
61
  getNodesCount(parent?: TreeNodeItem): Promise<number>;
65
62
  getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;
66
63
  }
67
- /** Type definition for all BeInspireTree data providers
64
+ /** Type definition for all Tree data providers
68
65
  * @public
69
66
  */
70
67
  export declare type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;
@@ -91,12 +88,6 @@ export declare const isTreeDataProviderInterface: (provider: TreeDataProvider) =
91
88
  * @public
92
89
  */
93
90
  export declare const hasChildren: (node: TreeNodeItem) => boolean;
94
- /**
95
- * An interface tree data change listeners.
96
- * Contains a list of nodes that changed or undefined if root level changed.
97
- * @public
98
- */
99
- export declare type TreeDataChangesListener = (nodes: Array<TreeNodeItem | undefined>) => void;
100
91
  /**
101
92
  * EditableTreeDataProvider provides cell editing processing for the Tree.
102
93
  * @public
@@ -104,16 +95,4 @@ export declare type TreeDataChangesListener = (nodes: Array<TreeNodeItem | undef
104
95
  export interface EditableTreeDataProvider extends ITreeDataProvider {
105
96
  updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;
106
97
  }
107
- /**
108
- * MutableTreeDataProvider provides manipulation processing for the Tree.
109
- * Useful for Drag & Drop processing.
110
- * @beta @deprecated in 3.0.
111
- */
112
- export interface MutableTreeDataProvider extends ITreeDataProvider {
113
- insertNode(parent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;
114
- removeNode(parent: TreeNodeItem | undefined, child: TreeNodeItem): void;
115
- moveNode(parent: TreeNodeItem | undefined, newParent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;
116
- isDescendent(parent: TreeNodeItem | undefined, nodeItem: TreeNodeItem): boolean;
117
- getNodeIndex(parent: TreeNodeItem | undefined, child: TreeNodeItem): number;
118
- }
119
98
  //# sourceMappingURL=TreeDataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,oBAAY,mBAAmB,GAAG,6BAA6B,EAAE,CAAC;AAElE;;GAEG;AACH,oBAAY,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEnE;;GAEG;AACH,oBAAY,sBAAsB,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACzF;AAED;;GAEG;AACH,oBAAY,gBAAgB,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,iBAAiB,CAAC;AAE1H;;GAEG;AACH,eAAO,MAAM,qBAAqB,aAAc,gBAAgB,oCAE/D,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAAc,gBAAgB,wCAEnE,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,wBAAwB,aAAc,gBAAgB,uCAElE,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,2BAA2B,aAAc,gBAAgB,kCAGrE,CAAC;AACF;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,SAAU,YAAY,YAQ7C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D"}
@@ -36,6 +36,7 @@ export const isTreeDataProviderInterface = (provider) => {
36
36
  * @returns whether node has children
37
37
  * @public
38
38
  */
39
+ // istanbul ignore next
39
40
  export const hasChildren = (node) => {
40
41
  const nodeAsImmediate = node;
41
42
  if ("children" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AA4EH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACnG,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAA0B,EAAuC,EAAE;IAC3G,OAAO,CAAC,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAA0B,EAAsC,EAAE;IACzG,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAAiC,EAAE;IACvG,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAAC;AACnF,CAAC,CAAC;AACF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IAAI,UAAU,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAC7D,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","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 Tree\r\n */\r\n\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ItemStyle } from \"../properties/ItemStyle\";\r\n\r\n/**\r\n * A node item which can be displayed in a tree.\r\n * @public\r\n */\r\nexport interface TreeNodeItem {\r\n id: string;\r\n parentId?: string;\r\n label: PropertyRecord;\r\n description?: string;\r\n autoExpand?: boolean;\r\n icon?: string;\r\n isSelectionDisabled?: boolean;\r\n isCheckboxVisible?: boolean;\r\n isCheckboxDisabled?: boolean;\r\n checkBoxState?: CheckBoxState;\r\n isEditable?: boolean;\r\n style?: ItemStyle;\r\n /**\r\n * A key-value pairs data structure that can be used by data provider\r\n * to store some custom data for this node item.\r\n */\r\n extendedData?: { [key: string]: any };\r\n}\r\n\r\n/** A [[TreeNodeItem]] for immediately loaded trees\r\n * @public\r\n */\r\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\r\n children?: TreeNodeItem[];\r\n}\r\n\r\n/** A [[TreeNodeItem]] for delay-loaded trees\r\n * @public\r\n */\r\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\r\n hasChildren?: boolean;\r\n}\r\n\r\n/** Array of tree node data elements\r\n * @public\r\n */\r\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\r\n\r\n/** A Promise for TreeDataProviderRaw\r\n * @public\r\n */\r\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\r\n\r\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\r\n * @public\r\n */\r\nexport type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;\r\n\r\n/** Interface for a tree data provider class\r\n * @public\r\n */\r\nexport interface ITreeDataProvider {\r\n /** @deprecated in 2.x. */\r\n onTreeNodeChanged?: BeEvent<TreeDataChangesListener>;\r\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\r\n getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;\r\n}\r\n\r\n/** Type definition for all BeInspireTree data providers\r\n * @public\r\n */\r\nexport type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;\r\n\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderRaw = (provider: TreeDataProvider): provider is TreeDataProviderRaw => {\r\n return Array.isArray(provider);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderPromise = (provider: TreeDataProvider): provider is TreeDataProviderPromise => {\r\n return (undefined !== (provider as TreeDataProviderPromise).then);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderMethod = (provider: TreeDataProvider): provider is TreeDataProviderMethod => {\r\n return (typeof provider === \"function\");\r\n};\r\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderInterface = (provider: TreeDataProvider): provider is ITreeDataProvider => {\r\n const candidate = provider as ITreeDataProvider;\r\n return undefined !== candidate.getNodes && undefined !== candidate.getNodesCount;\r\n};\r\n/**\r\n * Determines whether node has children\r\n * @param node node to check\r\n * @returns whether node has children\r\n * @public\r\n */\r\nexport const hasChildren = (node: TreeNodeItem) => {\r\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\r\n if (\"children\" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)\r\n return true;\r\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\r\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren)\r\n return true;\r\n return false;\r\n};\r\n\r\n/**\r\n * An interface tree data change listeners.\r\n * Contains a list of nodes that changed or undefined if root level changed.\r\n * @public\r\n */\r\nexport type TreeDataChangesListener = (nodes: Array<TreeNodeItem | undefined>) => void;\r\n\r\n/**\r\n * EditableTreeDataProvider provides cell editing processing for the Tree.\r\n * @public\r\n */\r\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\r\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\r\n}\r\n\r\n/**\r\n * MutableTreeDataProvider provides manipulation processing for the Tree.\r\n * Useful for Drag & Drop processing.\r\n * @beta @deprecated in 3.0.\r\n */\r\nexport interface MutableTreeDataProvider extends ITreeDataProvider {\r\n insertNode(parent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;\r\n removeNode(parent: TreeNodeItem | undefined, child: TreeNodeItem): void;\r\n moveNode(parent: TreeNodeItem | undefined, newParent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;\r\n\r\n isDescendent(parent: TreeNodeItem | undefined, nodeItem: TreeNodeItem): boolean;\r\n getNodeIndex(parent: TreeNodeItem | undefined, child: TreeNodeItem): number;\r\n}\r\n"]}
1
+ {"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAyEH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACnG,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAA0B,EAAuC,EAAE;IAC3G,OAAO,CAAC,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAA0B,EAAsC,EAAE;IACzG,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAAiC,EAAE;IACvG,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAAC;AACnF,CAAC,CAAC;AACF;;;;;GAKG;AACH,uBAAuB;AACvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IAAI,UAAU,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAC7D,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","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 Tree\r\n */\r\n\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ItemStyle } from \"../properties/ItemStyle\";\r\n\r\n/**\r\n * A node item which can be displayed in a tree.\r\n * @public\r\n */\r\nexport interface TreeNodeItem {\r\n id: string;\r\n parentId?: string;\r\n label: PropertyRecord;\r\n description?: string;\r\n autoExpand?: boolean;\r\n icon?: string;\r\n isSelectionDisabled?: boolean;\r\n isCheckboxVisible?: boolean;\r\n isCheckboxDisabled?: boolean;\r\n checkBoxState?: CheckBoxState;\r\n isEditable?: boolean;\r\n style?: ItemStyle;\r\n /**\r\n * A key-value pairs data structure that can be used by data provider\r\n * to store some custom data for this node item.\r\n */\r\n extendedData?: { [key: string]: any };\r\n}\r\n\r\n/** A [[TreeNodeItem]] for immediately loaded trees\r\n * @public\r\n */\r\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\r\n children?: TreeNodeItem[];\r\n}\r\n\r\n/** A [[TreeNodeItem]] for delay-loaded trees\r\n * @public\r\n */\r\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\r\n hasChildren?: boolean;\r\n}\r\n\r\n/** Array of tree node data elements\r\n * @public\r\n */\r\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\r\n\r\n/** A Promise for TreeDataProviderRaw\r\n * @public\r\n */\r\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\r\n\r\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\r\n * @public\r\n */\r\nexport type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;\r\n\r\n/** Interface for a tree data provider class\r\n * @public\r\n */\r\nexport interface ITreeDataProvider {\r\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\r\n getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;\r\n}\r\n\r\n/** Type definition for all Tree data providers\r\n * @public\r\n */\r\nexport type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;\r\n\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderRaw = (provider: TreeDataProvider): provider is TreeDataProviderRaw => {\r\n return Array.isArray(provider);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderPromise = (provider: TreeDataProvider): provider is TreeDataProviderPromise => {\r\n return (undefined !== (provider as TreeDataProviderPromise).then);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderMethod = (provider: TreeDataProvider): provider is TreeDataProviderMethod => {\r\n return (typeof provider === \"function\");\r\n};\r\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderInterface = (provider: TreeDataProvider): provider is ITreeDataProvider => {\r\n const candidate = provider as ITreeDataProvider;\r\n return undefined !== candidate.getNodes && undefined !== candidate.getNodesCount;\r\n};\r\n/**\r\n * Determines whether node has children\r\n * @param node node to check\r\n * @returns whether node has children\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport const hasChildren = (node: TreeNodeItem) => {\r\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\r\n if (\"children\" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)\r\n return true;\r\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\r\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren)\r\n return true;\r\n return false;\r\n};\r\n\r\n/**\r\n * EditableTreeDataProvider provides cell editing processing for the Tree.\r\n * @public\r\n */\r\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\r\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\r\n}\r\n"]}
@@ -7,11 +7,19 @@ import { Observable as RxjsObservable } from "rxjs/internal/Observable";
7
7
  * @public
8
8
  */
9
9
  export declare function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T>;
10
- /** @internal */
11
- export declare function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T>;
12
10
  /**
13
11
  * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
14
12
  * This interface ensures that consumers are not required to have rxjs as dependency.
13
+ *
14
+ * To use it with [rxjs](https://github.com/ReactiveX/rxjs) operators wrap it inside
15
+ * `Observable` from [rxjs](https://github.com/ReactiveX/rxjs). Example:
16
+ *
17
+ * ```
18
+ * import { Observable as RxjsObservable } from "rxjs";
19
+ *
20
+ * new RxjsObservable((subscriber) => thisObservable.subscribe(subscriber));
21
+ * ```
22
+ *
15
23
  * @public
16
24
  */
17
25
  export interface Observable<T> extends Subscribable<T> {
@@ -85,4 +93,6 @@ export interface CompletionObserver<T> {
85
93
  error?: (err: any) => void;
86
94
  complete: () => void;
87
95
  }
96
+ /** @internal */
97
+ export declare function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T>;
88
98
  //# sourceMappingURL=Observable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAI,QAAsC;IAC5D,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,IAAI,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC","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 Tree\r\n */\r\n\r\nimport { from as rxjsFrom } from \"rxjs/internal/observable/from\";\r\nimport { Observable as RxjsObservable } from \"rxjs/internal/Observable\";\r\n\r\n/**\r\n * Helper method that creates an Observable from Iterable or Promise.\r\n * @public\r\n */\r\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\r\n return rxjsFrom(iterable);\r\n}\r\n\r\n/** @internal */\r\nexport function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T> {\r\n return new RxjsObservable((subscriber) => { observable.subscribe(subscriber); });\r\n}\r\n\r\n/**\r\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Observable<T> extends Subscribable<T> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscribable<T> {\r\n subscribe(observer?: Observer<T>): Subscription;\r\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\r\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\r\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; // eslint-disable-line @typescript-eslint/unified-signatures\r\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\r\n}\r\n\r\n/**\r\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\r\n\r\n/**\r\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Unsubscribable {\r\n unsubscribe(): void;\r\n}\r\n\r\n/**\r\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscription extends Unsubscribable {\r\n readonly closed: boolean;\r\n unsubscribe(): void;\r\n add(tearDown: Unsubscribable | (() => void) | void): void;\r\n}\r\n\r\n/**\r\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface NextObserver<T> {\r\n closed?: boolean;\r\n next: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface ErrorObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface CompletionObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete: () => void;\r\n}\r\n"]}
1
+ {"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAI,QAAsC;IAC5D,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AA+FD,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,IAAI,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC","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 Tree\r\n */\r\n\r\nimport { from as rxjsFrom } from \"rxjs/internal/observable/from\";\r\nimport { Observable as RxjsObservable } from \"rxjs/internal/Observable\";\r\n\r\n/**\r\n * Helper method that creates an Observable from Iterable or Promise.\r\n * @public\r\n */\r\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\r\n return rxjsFrom(iterable);\r\n}\r\n\r\n/**\r\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n *\r\n * To use it with [rxjs](https://github.com/ReactiveX/rxjs) operators wrap it inside\r\n * `Observable` from [rxjs](https://github.com/ReactiveX/rxjs). Example:\r\n *\r\n * ```\r\n * import { Observable as RxjsObservable } from \"rxjs\";\r\n *\r\n * new RxjsObservable((subscriber) => thisObservable.subscribe(subscriber));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport interface Observable<T> extends Subscribable<T> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscribable<T> {\r\n subscribe(observer?: Observer<T>): Subscription;\r\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\r\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\r\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; // eslint-disable-line @typescript-eslint/unified-signatures\r\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\r\n}\r\n\r\n/**\r\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\r\n\r\n/**\r\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Unsubscribable {\r\n unsubscribe(): void;\r\n}\r\n\r\n/**\r\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscription extends Unsubscribable {\r\n readonly closed: boolean;\r\n unsubscribe(): void;\r\n add(tearDown: Unsubscribable | (() => void) | void): void;\r\n}\r\n\r\n/**\r\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface NextObserver<T> {\r\n closed?: boolean;\r\n next: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface ErrorObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface CompletionObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete: () => void;\r\n}\r\n\r\n/** @internal */\r\nexport function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T> {\r\n return new RxjsObservable((subscriber) => { observable.subscribe(subscriber); });\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeHooks.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeHooks.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,SAAS,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,iCAGlI;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,SAAS,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,sCAGzJ;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,mBAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,SAAS,gBAAgB,EAAE,eAAe,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,sBAAsB,oBAO7I"}
1
+ {"version":3,"file":"TreeHooks.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeHooks.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,SAAS,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,iCAElI;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,SAAS,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,sCAEzJ;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,mBAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,SAAS,gBAAgB,EAAE,eAAe,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,sBAAsB,oBAO7I"}
@@ -31,8 +31,7 @@ export function useTreeModel(modelSource) {
31
31
  * @public
32
32
  */
33
33
  export function useTreeNodeLoader(dataProvider, modelSource) {
34
- const createLoader = useCallback(() => new TreeNodeLoader(dataProvider, modelSource), [dataProvider, modelSource]);
35
- return useDisposable(createLoader);
34
+ return useMemo(() => new TreeNodeLoader(dataProvider, modelSource), [dataProvider, modelSource]);
36
35
  }
37
36
  /**
38
37
  * Custom hook which creates a paging nodes' loader using the supplied data provider and model source. The loader pulls
@@ -40,8 +39,7 @@ export function useTreeNodeLoader(dataProvider, modelSource) {
40
39
  * @public
41
40
  */
42
41
  export function usePagedTreeNodeLoader(dataProvider, pageSize, modelSource) {
43
- const createLoader = useCallback(() => new PagedTreeNodeLoader(dataProvider, modelSource, pageSize), [dataProvider, modelSource, pageSize]);
44
- return useDisposable(createLoader);
42
+ return useMemo(() => new PagedTreeNodeLoader(dataProvider, modelSource, pageSize), [dataProvider, modelSource, pageSize]);
45
43
  }
46
44
  /**
47
45
  * Custom hook which creates a `TreeModelSource`.
@@ -1 +1 @@
1
- {"version":3,"file":"TreeHooks.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeHooks.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,WAA4B;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5B,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAyC,YAA2B,EAAE,WAA4B;IACjI,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACnH,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAyC,YAA2B,EAAE,QAAgB,EAAE,WAA4B;IACxJ,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5I,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAA8B;IAC/D,0HAA0H;IAC1H,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kDAAkD;AACjH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAA0C,eAAgE;IAC5I,MAAM,OAAO,GAAG,WAAW,CAAC,GAAqB,EAAE;QACjD,IAAI,OAAO,eAAe,KAAK,UAAU;YACvC,OAAO,eAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC","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 Tree\r\n */\r\n\r\nimport { useCallback, useEffect, useMemo } from \"react\";\r\nimport { useDisposable } from \"@itwin/core-react\";\r\nimport { useRerender } from \"../../common/UseRerender\";\r\nimport { TreeDataProvider } from \"../TreeDataProvider\";\r\nimport { TreeEventHandler, TreeEventHandlerParams } from \"./TreeEventHandler\";\r\nimport { TreeModel } from \"./TreeModel\";\r\nimport { TreeModelSource } from \"./TreeModelSource\";\r\nimport { PagedTreeNodeLoader, TreeNodeLoader } from \"./TreeNodeLoader\";\r\n\r\n/**\r\n * React hook that returns an immutable `TreeModel` whenever it changes in the given\r\n * `TreeModelSource`.\r\n *\r\n * @public\r\n */\r\nexport function useTreeModel(modelSource: TreeModelSource): TreeModel {\r\n const { rerender } = useRerender();\r\n useEffect(() => {\r\n return modelSource.onModelChanged.addListener(rerender);\r\n }, [modelSource, rerender]);\r\n return modelSource.getModel();\r\n}\r\n\r\n/**\r\n * Custom hook which creates a nodes' loader using the supplied data provider and model source. The\r\n * loader pulls nodes from the data provider and puts them into the model source.\r\n *\r\n * @public\r\n */\r\nexport function useTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, modelSource: TreeModelSource) {\r\n const createLoader = useCallback(() => new TreeNodeLoader(dataProvider, modelSource), [dataProvider, modelSource]);\r\n return useDisposable(createLoader);\r\n}\r\n\r\n/**\r\n * Custom hook which creates a paging nodes' loader using the supplied data provider and model source. The loader pulls\r\n * nodes from the data provider and puts them into the model source.\r\n * @public\r\n */\r\nexport function usePagedTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, pageSize: number, modelSource: TreeModelSource) {\r\n const createLoader = useCallback(() => new PagedTreeNodeLoader(dataProvider, modelSource, pageSize), [dataProvider, modelSource, pageSize]);\r\n return useDisposable(createLoader);\r\n}\r\n\r\n/**\r\n * Custom hook which creates a `TreeModelSource`.\r\n *\r\n * @note The model source has no direct dependency on the data provider, but we want a fresh model\r\n * source whenever the data provider changes - that's the reason the hook takes a data provider.\r\n *\r\n * @public\r\n */\r\nexport function useTreeModelSource(dataProvider: TreeDataProvider) {\r\n // need to create new model source every time data provider changes although it does not need data provider to be created.\r\n return useMemo(() => new TreeModelSource(), [dataProvider]); // eslint-disable-line react-hooks/exhaustive-deps\r\n}\r\n\r\n/**\r\n * Custom hook which creates and takes care of disposing a TreeEventsHandler. The input is either a factory method\r\n * for a custom `TreeEventHandler` implementation or parameters for the default implementation.\r\n *\r\n * @note Caller must ensure `factoryOrParams` changes only when a new handler needs to be created. `useCallback` or `useMemo` can\r\n * be used for that purpose based on whether the input is a factory function or params object.\r\n *\r\n * @public\r\n */\r\nexport function useTreeEventsHandler<TEventsHandler extends TreeEventHandler>(factoryOrParams: (() => TEventsHandler) | TreeEventHandlerParams) {\r\n const factory = useCallback((): TreeEventHandler => {\r\n if (typeof factoryOrParams === \"function\")\r\n return factoryOrParams();\r\n return new TreeEventHandler(factoryOrParams);\r\n }, [factoryOrParams]);\r\n return useDisposable(factory);\r\n}\r\n"]}
1
+ {"version":3,"file":"TreeHooks.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeHooks.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,WAA4B;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5B,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAyC,YAA2B,EAAE,WAA4B;IACjI,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAyC,YAA2B,EAAE,QAAgB,EAAE,WAA4B;IACxJ,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5H,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAA8B;IAC/D,0HAA0H;IAC1H,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kDAAkD;AACjH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAA0C,eAAgE;IAC5I,MAAM,OAAO,GAAG,WAAW,CAAC,GAAqB,EAAE;QACjD,IAAI,OAAO,eAAe,KAAK,UAAU;YACvC,OAAO,eAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC","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 Tree\r\n */\r\n\r\nimport { useCallback, useEffect, useMemo } from \"react\";\r\nimport { useDisposable } from \"@itwin/core-react\";\r\nimport { useRerender } from \"../../common/UseRerender\";\r\nimport { TreeDataProvider } from \"../TreeDataProvider\";\r\nimport { TreeEventHandler, TreeEventHandlerParams } from \"./TreeEventHandler\";\r\nimport { TreeModel } from \"./TreeModel\";\r\nimport { TreeModelSource } from \"./TreeModelSource\";\r\nimport { PagedTreeNodeLoader, TreeNodeLoader } from \"./TreeNodeLoader\";\r\n\r\n/**\r\n * React hook that returns an immutable `TreeModel` whenever it changes in the given\r\n * `TreeModelSource`.\r\n *\r\n * @public\r\n */\r\nexport function useTreeModel(modelSource: TreeModelSource): TreeModel {\r\n const { rerender } = useRerender();\r\n useEffect(() => {\r\n return modelSource.onModelChanged.addListener(rerender);\r\n }, [modelSource, rerender]);\r\n return modelSource.getModel();\r\n}\r\n\r\n/**\r\n * Custom hook which creates a nodes' loader using the supplied data provider and model source. The\r\n * loader pulls nodes from the data provider and puts them into the model source.\r\n *\r\n * @public\r\n */\r\nexport function useTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, modelSource: TreeModelSource) {\r\n return useMemo(() => new TreeNodeLoader(dataProvider, modelSource), [dataProvider, modelSource]);\r\n}\r\n\r\n/**\r\n * Custom hook which creates a paging nodes' loader using the supplied data provider and model source. The loader pulls\r\n * nodes from the data provider and puts them into the model source.\r\n * @public\r\n */\r\nexport function usePagedTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, pageSize: number, modelSource: TreeModelSource) {\r\n return useMemo(() => new PagedTreeNodeLoader(dataProvider, modelSource, pageSize), [dataProvider, modelSource, pageSize]);\r\n}\r\n\r\n/**\r\n * Custom hook which creates a `TreeModelSource`.\r\n *\r\n * @note The model source has no direct dependency on the data provider, but we want a fresh model\r\n * source whenever the data provider changes - that's the reason the hook takes a data provider.\r\n *\r\n * @public\r\n */\r\nexport function useTreeModelSource(dataProvider: TreeDataProvider) {\r\n // need to create new model source every time data provider changes although it does not need data provider to be created.\r\n return useMemo(() => new TreeModelSource(), [dataProvider]); // eslint-disable-line react-hooks/exhaustive-deps\r\n}\r\n\r\n/**\r\n * Custom hook which creates and takes care of disposing a TreeEventsHandler. The input is either a factory method\r\n * for a custom `TreeEventHandler` implementation or parameters for the default implementation.\r\n *\r\n * @note Caller must ensure `factoryOrParams` changes only when a new handler needs to be created. `useCallback` or `useMemo` can\r\n * be used for that purpose based on whether the input is a factory function or params object.\r\n *\r\n * @public\r\n */\r\nexport function useTreeEventsHandler<TEventsHandler extends TreeEventHandler>(factoryOrParams: (() => TEventsHandler) | TreeEventHandlerParams) {\r\n const factory = useCallback((): TreeEventHandler => {\r\n if (typeof factoryOrParams === \"function\")\r\n return factoryOrParams();\r\n return new TreeEventHandler(factoryOrParams);\r\n }, [factoryOrParams]);\r\n return useDisposable(factory);\r\n}\r\n"]}
@@ -224,7 +224,7 @@ export declare class MutableTreeModel implements TreeModel {
224
224
  export declare function computeVisibleNodes(model: TreeModel): VisibleTreeNodes;
225
225
  /**
226
226
  * Traverses the tree and collects visible descendants.
227
- * @internal
227
+ * @public
228
228
  */
229
229
  export declare function getVisibleDescendants(model: TreeModel, parentNode: TreeModelNode | TreeModelRootNode, result?: Array<TreeModelNode | TreeModelNodePlaceholder>): Array<TreeModelNode | TreeModelNodePlaceholder>;
230
230
  //# sourceMappingURL=TreeModel.d.ts.map
@@ -284,7 +284,7 @@ export function computeVisibleNodes(model) {
284
284
  }
285
285
  /**
286
286
  * Traverses the tree and collects visible descendants.
287
- * @internal
287
+ * @public
288
288
  */
289
289
  export function getVisibleDescendants(model, parentNode, result = []) {
290
290
  const children = model.getChildren(parentNode.id);
@@ -1 +1 @@
1
- {"version":3,"file":"TreeModel.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeModel.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 Tree\r\n */\r\n\r\nimport { immerable } from \"immer\";\r\nimport _ from \"lodash\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { DelayLoadedTreeNodeItem, ImmediatelyLoadedTreeNodeItem, TreeNodeItem } from \"../TreeDataProvider\";\r\nimport { SparseArray, SparseTree } from \"./internal/SparseTree\";\r\n\r\n/**\r\n * Immutable data structure that describes tree node.\r\n * @public\r\n */\r\nexport interface TreeModelNode {\r\n readonly id: string;\r\n readonly parentId: string | undefined;\r\n readonly depth: number;\r\n\r\n readonly isLoading?: boolean;\r\n readonly numChildren: number | undefined;\r\n\r\n readonly description: string | undefined;\r\n readonly isExpanded: boolean;\r\n readonly label: PropertyRecord;\r\n readonly isSelected: boolean;\r\n readonly isSelectionDisabled?: boolean;\r\n\r\n /** Specifies that node is in editing mode. It holds callbacks that are used by node editor. */\r\n readonly editingInfo?: TreeModelNodeEditingInfo;\r\n\r\n readonly checkbox: CheckBoxInfo;\r\n\r\n readonly item: TreeNodeItem;\r\n}\r\n\r\n/**\r\n * Immutable data structure that describes checkbox info.\r\n * @public\r\n */\r\nexport interface CheckBoxInfo {\r\n readonly state: CheckBoxState;\r\n readonly tooltip?: string;\r\n readonly isDisabled: boolean;\r\n readonly isVisible: boolean;\r\n}\r\n\r\n/**\r\n * Mutable data structure that describes tree node.\r\n * @public\r\n */\r\nexport interface MutableTreeModelNode extends TreeModelNode {\r\n isLoading: boolean;\r\n\r\n description: string;\r\n isExpanded: boolean;\r\n label: PropertyRecord;\r\n isSelected: boolean;\r\n isSelectionDisabled?: boolean;\r\n\r\n /** Specifies that node is in editing mode. It holds callbacks that are used by node editor. */\r\n editingInfo?: TreeModelNodeEditingInfo;\r\n\r\n checkbox: MutableCheckBoxInfo;\r\n\r\n item: TreeNodeItem;\r\n}\r\n\r\n/**\r\n * Data structure that holds callbacks used for tree node editing.\r\n * @public\r\n */\r\nexport interface TreeModelNodeEditingInfo {\r\n onCommit: (node: TreeModelNode, newValue: string) => void;\r\n onCancel: () => void;\r\n}\r\n\r\n/**\r\n * Mutable data structure that describes checkbox info.\r\n * @public\r\n */\r\nexport interface MutableCheckBoxInfo extends CheckBoxInfo {\r\n state: CheckBoxState;\r\n tooltip?: string;\r\n isDisabled: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree node placeholder.\r\n * @public\r\n */\r\nexport interface TreeModelNodePlaceholder {\r\n readonly childIndex: number;\r\n readonly depth: number;\r\n readonly parentId?: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree root node.\r\n * @public\r\n */\r\nexport interface TreeModelRootNode {\r\n readonly depth: -1;\r\n readonly id: undefined;\r\n readonly numChildren: number | undefined;\r\n}\r\n\r\n/**\r\n * Data structure that describes input used to create tree node.\r\n * @public\r\n */\r\nexport interface TreeModelNodeInput {\r\n readonly description?: string;\r\n readonly isExpanded: boolean;\r\n readonly id: string;\r\n readonly item: TreeNodeItem;\r\n readonly label: PropertyRecord;\r\n readonly isLoading: boolean;\r\n readonly numChildren?: number;\r\n readonly isSelected: boolean;\r\n}\r\n\r\n/**\r\n * Type definition of all tree model nodes.\r\n * @public\r\n */\r\nexport type TreeModelNodeType = TreeModelNode | TreeModelNodePlaceholder | TreeModelRootNode;\r\n\r\n/**\r\n * Checks if object is [[TreeModelNode]]\r\n * @public\r\n */\r\nexport function isTreeModelNode(obj: TreeModelNodeType | undefined): obj is TreeModelNode {\r\n return obj !== undefined && !isTreeModelNodePlaceholder(obj) && !isTreeModelRootNode(obj);\r\n}\r\n\r\n/**\r\n * Checks if object is [[TreeModelNodePlaceholder]]\r\n * @public\r\n */\r\nexport function isTreeModelNodePlaceholder(obj: TreeModelNodeType | undefined): obj is TreeModelNodePlaceholder {\r\n return obj !== undefined && \"childIndex\" in obj;\r\n}\r\n\r\n/**\r\n * Checks if object is [[TreeModelRootNode]]\r\n * @public\r\n */\r\nexport function isTreeModelRootNode(obj: TreeModelNodeType | undefined): obj is TreeModelRootNode {\r\n return obj !== undefined && (obj as TreeModelRootNode).id === undefined && !(\"childIndex\" in obj);\r\n}\r\n\r\n/**\r\n * Type definition of tree node item data.\r\n * @public\r\n */\r\nexport type TreeNodeItemData = ImmediatelyLoadedTreeNodeItem & DelayLoadedTreeNodeItem;\r\n\r\n/**\r\n * Data structure that describes set of visible tree nodes as a flat list.\r\n * @public\r\n */\r\nexport interface VisibleTreeNodes extends Iterable<TreeModelNode | TreeModelNodePlaceholder> {\r\n getNumNodes(): number;\r\n getAtIndex(index: number): TreeModelNode | TreeModelNodePlaceholder | undefined;\r\n getModel(): TreeModel;\r\n getNumRootNodes(): number | undefined;\r\n getIndexOfNode(nodeId: string): number;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree model.\r\n * @public\r\n */\r\nexport interface TreeModel {\r\n getRootNode(): TreeModelRootNode;\r\n\r\n getNode(id: string): TreeModelNode | undefined;\r\n getNode(parentId: string | undefined, childIndex: number): TreeModelNode | TreeModelNodePlaceholder | undefined;\r\n getNode(nodeId: string | undefined, childIndex?: number): TreeModelNode | TreeModelNodePlaceholder | TreeModelRootNode | undefined;\r\n\r\n getChildren(parentId: string | undefined): SparseArray<string> | undefined;\r\n getChildOffset(parentId: string | undefined, childId: string): number | undefined;\r\n\r\n iterateTreeModelNodes(parentId?: string): IterableIterator<TreeModelNode>;\r\n}\r\n\r\n/**\r\n * Mutable tree model which holds nodes and allows adding or removing them.\r\n * @public\r\n */\r\nexport class MutableTreeModel implements TreeModel {\r\n public [immerable] = true;\r\n\r\n private _tree = new SparseTree<MutableTreeModelNode>();\r\n private _rootNode: TreeModelRootNode = { depth: -1, id: undefined, numChildren: undefined };\r\n\r\n public constructor(seed?: TreeModel) {\r\n if (!seed) {\r\n return;\r\n }\r\n\r\n cloneSubree(seed, this, undefined);\r\n }\r\n\r\n /** Returns root node of a tree. This node is not visible and is there to allow having multiple visible root nodes. */\r\n public getRootNode(): TreeModelRootNode {\r\n return this._rootNode;\r\n }\r\n\r\n /** Returns tree node or placeholder for node that is not loaded yet.\r\n * @returns node, node placeholder or undefined if node is not found in model.\r\n */\r\n public getNode(id: string): MutableTreeModelNode | undefined;\r\n public getNode(parentId: string | undefined, childIndex: number): MutableTreeModelNode | TreeModelNodePlaceholder | undefined;\r\n public getNode(nodeId: string | undefined, childIndex?: number): MutableTreeModelNode | TreeModelNodePlaceholder | undefined {\r\n if (childIndex === undefined) {\r\n return this._tree.getNode(nodeId!);\r\n }\r\n\r\n const children = this._tree.getChildren(nodeId);\r\n const childId = children !== undefined ? children.get(childIndex) : undefined;\r\n if (childId !== undefined) {\r\n return this._tree.getNode(childId);\r\n }\r\n\r\n const parentNode = nodeId === undefined ? this._rootNode : this._tree.getNode(nodeId);\r\n if (parentNode !== undefined) {\r\n return {\r\n childIndex,\r\n depth: parentNode.depth + 1,\r\n parentId: nodeId,\r\n };\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Returns children for specific parent.\r\n * @param parentId id of parent node.\r\n * @returns children of parent node or root nodes if undefined is passed as parent id.\r\n */\r\n public getChildren(parentId: string | undefined): SparseArray<string> | undefined {\r\n return this._tree.getChildren(parentId);\r\n }\r\n\r\n /** Returns children offset in children array for specific parent. */\r\n public getChildOffset(parentId: string | undefined, childId: string): number | undefined {\r\n return this._tree.getChildOffset(parentId, childId);\r\n }\r\n\r\n /**\r\n * Sets children for parent node starting from the specific offset.\r\n * If offset overlaps with already added nodes, the overlapping nodes are overwritten.\r\n */\r\n public setChildren(parentId: string | undefined, nodeInputs: TreeModelNodeInput[], offset: number): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode === undefined)\r\n return;\r\n\r\n const children: MutableTreeModelNode[] = [];\r\n for (const input of nodeInputs) {\r\n const child = MutableTreeModel.createTreeModelNode(parentNode, input);\r\n children.push(child);\r\n }\r\n\r\n this._tree.setChildren(parentNode.id, children, offset);\r\n MutableTreeModel.setNumChildrenForNode(parentNode, this._tree.getChildren(parentNode.id));\r\n }\r\n\r\n /**\r\n * Inserts child in the specified position.\r\n * If offset is higher then current length of children array, the length is increased.\r\n */\r\n public insertChild(parentId: string | undefined, childNodeInput: TreeModelNodeInput, offset: number): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode === undefined)\r\n return;\r\n\r\n const child = MutableTreeModel.createTreeModelNode(parentNode, childNodeInput);\r\n\r\n this._tree.insertChild(parentNode.id, child, offset);\r\n MutableTreeModel.setNumChildrenForNode(parentNode, this._tree.getChildren(parentNode.id));\r\n }\r\n\r\n /**\r\n * Changes the id of target node.\r\n * @returns `true` on success, `false` otherwise.\r\n */\r\n public changeNodeId(currentId: string, newId: string): boolean {\r\n const node = this.getNode(currentId);\r\n if (node === undefined) {\r\n return false;\r\n }\r\n\r\n if (currentId === newId) {\r\n return true;\r\n }\r\n\r\n const index = this.getChildOffset(node.parentId, currentId);\r\n assert(index !== undefined);\r\n\r\n if (!this._tree.setNodeId(node.parentId, index, newId)) {\r\n return false;\r\n }\r\n\r\n (node.id as string) = newId; // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion\r\n for (const [childId] of this.getChildren(newId)?.iterateValues() ?? []) {\r\n const child = this.getNode(childId);\r\n assert(child !== undefined);\r\n (child.parentId as string) = newId;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Transfers node along with its children to a new location. Fails if destination has undefined child count.\r\n * @param sourceNodeId Node that is being moved.\r\n * @param targetParentId Node that will receive a new child.\r\n * @param targetIndex Insertion location among target's *current* children.\r\n * @returns `true` on success, `false` otherwise.\r\n */\r\n public moveNode(sourceNodeId: string, targetParentId: string | undefined, targetIndex: number): boolean {\r\n const sourceNode = this.getNode(sourceNodeId);\r\n if (sourceNode === undefined) {\r\n return false;\r\n }\r\n\r\n const targetParent = targetParentId === undefined ? this._rootNode : this.getNode(targetParentId);\r\n if (targetParent === undefined || targetParent.numChildren === undefined) {\r\n return false;\r\n }\r\n\r\n if (targetParentId !== undefined && this.areNodesRelated(sourceNodeId, targetParentId)) {\r\n return false;\r\n }\r\n\r\n this._tree.moveNode(sourceNode.parentId, sourceNodeId, targetParentId, targetIndex);\r\n\r\n const sourceParent = sourceNode.parentId === undefined ? this._rootNode : this.getNode(sourceNode.parentId);\r\n assert(sourceParent !== undefined);\r\n MutableTreeModel.setNumChildrenForNode(sourceParent, this._tree.getChildren(sourceNode.parentId));\r\n MutableTreeModel.setNumChildrenForNode(targetParent, this._tree.getChildren(targetParentId));\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (sourceNode.parentId as string | undefined) = targetParentId;\r\n\r\n const updateDepths = (parentId: string, depth: number) => {\r\n const node = this.getNode(parentId);\r\n assert(node !== undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (node.depth as number) = depth;\r\n for (const [nodeId] of this.getChildren(parentId)?.iterateValues() ?? []) {\r\n updateDepths(nodeId, depth + 1);\r\n }\r\n };\r\n\r\n updateDepths(sourceNodeId, targetParent.depth + 1);\r\n return true;\r\n }\r\n\r\n private areNodesRelated(ancestorNodeId: string, descendantNodeId: string): boolean {\r\n const node = this.getNode(descendantNodeId);\r\n if (node === undefined || node.parentId === undefined) {\r\n return false;\r\n }\r\n\r\n return node.parentId === ancestorNodeId ? true : this.areNodesRelated(ancestorNodeId, node.parentId);\r\n }\r\n\r\n /**\r\n * Sets the number of child nodes a parent is expected to contain. All child nodes of this parent will be subsequently\r\n * removed.\r\n */\r\n public setNumChildren(parentId: string | undefined, numChildren: number | undefined): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode === undefined) {\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (parentNode.numChildren as number | undefined) = numChildren;\r\n this._tree.setNumChildren(parentId, numChildren ?? 0);\r\n }\r\n\r\n /** Removes children specified by id.\r\n * @param parentId id of the parent node.\r\n * @param child child node id or index that should be removed.\r\n */\r\n public removeChild(parentId: string | undefined, child: string | number): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n this._tree.removeChild(parentId, child);\r\n\r\n // istanbul ignore else\r\n if (parentNode)\r\n MutableTreeModel.setNumChildrenForNode(parentNode, this._tree.getChildren(parentNode.id));\r\n }\r\n\r\n /** Removes all children for parent specified by id.\r\n * @param parentId id of parent node or undefined to remove root nodes.\r\n */\r\n public clearChildren(parentId: string | undefined) {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode !== undefined) {\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (parentNode.numChildren as number | undefined) = undefined;\r\n }\r\n this._tree.deleteSubtree(parentId, false);\r\n }\r\n\r\n /** Iterates over all nodes present in the tree model. */\r\n public * iterateTreeModelNodes(parentId?: string): IterableIterator<MutableTreeModelNode> {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const _this = this;\r\n function* iterateDescendants(subParentId: string | undefined): IterableIterator<MutableTreeModelNode> {\r\n const children = _this.getChildren(subParentId);\r\n if (children === undefined) {\r\n return;\r\n }\r\n\r\n for (const [nodeId] of children.iterateValues()) {\r\n const node = _this.getNode(nodeId);\r\n if (node !== undefined) {\r\n yield node;\r\n yield* iterateDescendants(nodeId);\r\n }\r\n }\r\n }\r\n\r\n yield* iterateDescendants(parentId);\r\n }\r\n\r\n private static setNumChildrenForNode(node: TreeModelRootNode | MutableTreeModelNode, children: SparseArray<string> | undefined) {\r\n const numChildren = children ? children.getLength() : undefined;\r\n if (node.numChildren === numChildren)\r\n return;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (node.numChildren as number | undefined) = numChildren;\r\n }\r\n\r\n private static createTreeModelNode(parentNode: TreeModelNode | TreeModelRootNode, input: TreeModelNodeInput): MutableTreeModelNode {\r\n return {\r\n id: input.id,\r\n parentId: parentNode.id,\r\n depth: parentNode.depth + 1,\r\n\r\n isLoading: input.isLoading,\r\n numChildren: input.numChildren,\r\n\r\n description: input.description || \"\",\r\n isExpanded: input.isExpanded,\r\n label: input.label,\r\n isSelected: input.isSelected,\r\n isSelectionDisabled: input.item.isSelectionDisabled,\r\n\r\n checkbox: {\r\n state: input.item.checkBoxState || CheckBoxState.Off,\r\n isDisabled: !!input.item.isCheckboxDisabled,\r\n isVisible: !!input.item.isCheckboxVisible,\r\n },\r\n\r\n item: _.cloneDeep(input.item),\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Generates flat list of visible nodes in the tree model.\r\n * @public\r\n */\r\nexport function computeVisibleNodes(model: TreeModel): VisibleTreeNodes {\r\n const result = getVisibleDescendants(model, model.getRootNode());\r\n return {\r\n getNumNodes: () => result.length,\r\n getAtIndex: (index: number): TreeModelNode | TreeModelNodePlaceholder | undefined => {\r\n return result[index];\r\n },\r\n getModel: () => model,\r\n getNumRootNodes: () => model.getRootNode().numChildren,\r\n [Symbol.iterator]: () => result[Symbol.iterator](),\r\n getIndexOfNode: (nodeId: string): number => {\r\n return result.findIndex((visibleNode) => (visibleNode as TreeModelNode).id === nodeId);\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Traverses the tree and collects visible descendants.\r\n * @internal\r\n */\r\nexport function getVisibleDescendants(\r\n model: TreeModel,\r\n parentNode: TreeModelNode | TreeModelRootNode,\r\n result: Array<TreeModelNode | TreeModelNodePlaceholder> = [],\r\n): Array<TreeModelNode | TreeModelNodePlaceholder> {\r\n const children = model.getChildren(parentNode.id);\r\n if (!children) {\r\n return result;\r\n }\r\n\r\n let index = 0;\r\n for (const childId of children) {\r\n if (childId === undefined) {\r\n result.push({ parentId: parentNode.id, depth: parentNode.depth + 1, childIndex: index });\r\n } else {\r\n const childNode = model.getNode(childId);\r\n if (childNode === undefined) {\r\n // node was disposed\r\n result.push({ parentId: parentNode.id, depth: parentNode.depth + 1, childIndex: index });\r\n } else {\r\n result.push(childNode);\r\n if (childNode.isExpanded && childNode.numChildren !== undefined) {\r\n getVisibleDescendants(model, childNode, result);\r\n }\r\n }\r\n }\r\n ++index;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction cloneSubree(source: TreeModel, target: MutableTreeModel, parentId: string | undefined): void {\r\n target.setNumChildren(\r\n parentId,\r\n (parentId === undefined ? source.getRootNode() : source.getNode(parentId)!).numChildren,\r\n );\r\n for (const [childId, index] of source.getChildren(parentId)?.iterateValues() ?? []) {\r\n const node = source.getNode(childId)!;\r\n target.setChildren(parentId, [{ ...node, isLoading: !!node.isLoading }], index);\r\n cloneSubree(source, target, childId);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TreeModel.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeModel.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 Tree\r\n */\r\n\r\nimport { immerable } from \"immer\";\r\nimport _ from \"lodash\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { DelayLoadedTreeNodeItem, ImmediatelyLoadedTreeNodeItem, TreeNodeItem } from \"../TreeDataProvider\";\r\nimport { SparseArray, SparseTree } from \"./internal/SparseTree\";\r\n\r\n/**\r\n * Immutable data structure that describes tree node.\r\n * @public\r\n */\r\nexport interface TreeModelNode {\r\n readonly id: string;\r\n readonly parentId: string | undefined;\r\n readonly depth: number;\r\n\r\n readonly isLoading?: boolean;\r\n readonly numChildren: number | undefined;\r\n\r\n readonly description: string | undefined;\r\n readonly isExpanded: boolean;\r\n readonly label: PropertyRecord;\r\n readonly isSelected: boolean;\r\n readonly isSelectionDisabled?: boolean;\r\n\r\n /** Specifies that node is in editing mode. It holds callbacks that are used by node editor. */\r\n readonly editingInfo?: TreeModelNodeEditingInfo;\r\n\r\n readonly checkbox: CheckBoxInfo;\r\n\r\n readonly item: TreeNodeItem;\r\n}\r\n\r\n/**\r\n * Immutable data structure that describes checkbox info.\r\n * @public\r\n */\r\nexport interface CheckBoxInfo {\r\n readonly state: CheckBoxState;\r\n readonly tooltip?: string;\r\n readonly isDisabled: boolean;\r\n readonly isVisible: boolean;\r\n}\r\n\r\n/**\r\n * Mutable data structure that describes tree node.\r\n * @public\r\n */\r\nexport interface MutableTreeModelNode extends TreeModelNode {\r\n isLoading: boolean;\r\n\r\n description: string;\r\n isExpanded: boolean;\r\n label: PropertyRecord;\r\n isSelected: boolean;\r\n isSelectionDisabled?: boolean;\r\n\r\n /** Specifies that node is in editing mode. It holds callbacks that are used by node editor. */\r\n editingInfo?: TreeModelNodeEditingInfo;\r\n\r\n checkbox: MutableCheckBoxInfo;\r\n\r\n item: TreeNodeItem;\r\n}\r\n\r\n/**\r\n * Data structure that holds callbacks used for tree node editing.\r\n * @public\r\n */\r\nexport interface TreeModelNodeEditingInfo {\r\n onCommit: (node: TreeModelNode, newValue: string) => void;\r\n onCancel: () => void;\r\n}\r\n\r\n/**\r\n * Mutable data structure that describes checkbox info.\r\n * @public\r\n */\r\nexport interface MutableCheckBoxInfo extends CheckBoxInfo {\r\n state: CheckBoxState;\r\n tooltip?: string;\r\n isDisabled: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree node placeholder.\r\n * @public\r\n */\r\nexport interface TreeModelNodePlaceholder {\r\n readonly childIndex: number;\r\n readonly depth: number;\r\n readonly parentId?: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree root node.\r\n * @public\r\n */\r\nexport interface TreeModelRootNode {\r\n readonly depth: -1;\r\n readonly id: undefined;\r\n readonly numChildren: number | undefined;\r\n}\r\n\r\n/**\r\n * Data structure that describes input used to create tree node.\r\n * @public\r\n */\r\nexport interface TreeModelNodeInput {\r\n readonly description?: string;\r\n readonly isExpanded: boolean;\r\n readonly id: string;\r\n readonly item: TreeNodeItem;\r\n readonly label: PropertyRecord;\r\n readonly isLoading: boolean;\r\n readonly numChildren?: number;\r\n readonly isSelected: boolean;\r\n}\r\n\r\n/**\r\n * Type definition of all tree model nodes.\r\n * @public\r\n */\r\nexport type TreeModelNodeType = TreeModelNode | TreeModelNodePlaceholder | TreeModelRootNode;\r\n\r\n/**\r\n * Checks if object is [[TreeModelNode]]\r\n * @public\r\n */\r\nexport function isTreeModelNode(obj: TreeModelNodeType | undefined): obj is TreeModelNode {\r\n return obj !== undefined && !isTreeModelNodePlaceholder(obj) && !isTreeModelRootNode(obj);\r\n}\r\n\r\n/**\r\n * Checks if object is [[TreeModelNodePlaceholder]]\r\n * @public\r\n */\r\nexport function isTreeModelNodePlaceholder(obj: TreeModelNodeType | undefined): obj is TreeModelNodePlaceholder {\r\n return obj !== undefined && \"childIndex\" in obj;\r\n}\r\n\r\n/**\r\n * Checks if object is [[TreeModelRootNode]]\r\n * @public\r\n */\r\nexport function isTreeModelRootNode(obj: TreeModelNodeType | undefined): obj is TreeModelRootNode {\r\n return obj !== undefined && (obj as TreeModelRootNode).id === undefined && !(\"childIndex\" in obj);\r\n}\r\n\r\n/**\r\n * Type definition of tree node item data.\r\n * @public\r\n */\r\nexport type TreeNodeItemData = ImmediatelyLoadedTreeNodeItem & DelayLoadedTreeNodeItem;\r\n\r\n/**\r\n * Data structure that describes set of visible tree nodes as a flat list.\r\n * @public\r\n */\r\nexport interface VisibleTreeNodes extends Iterable<TreeModelNode | TreeModelNodePlaceholder> {\r\n getNumNodes(): number;\r\n getAtIndex(index: number): TreeModelNode | TreeModelNodePlaceholder | undefined;\r\n getModel(): TreeModel;\r\n getNumRootNodes(): number | undefined;\r\n getIndexOfNode(nodeId: string): number;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree model.\r\n * @public\r\n */\r\nexport interface TreeModel {\r\n getRootNode(): TreeModelRootNode;\r\n\r\n getNode(id: string): TreeModelNode | undefined;\r\n getNode(parentId: string | undefined, childIndex: number): TreeModelNode | TreeModelNodePlaceholder | undefined;\r\n getNode(nodeId: string | undefined, childIndex?: number): TreeModelNode | TreeModelNodePlaceholder | TreeModelRootNode | undefined;\r\n\r\n getChildren(parentId: string | undefined): SparseArray<string> | undefined;\r\n getChildOffset(parentId: string | undefined, childId: string): number | undefined;\r\n\r\n iterateTreeModelNodes(parentId?: string): IterableIterator<TreeModelNode>;\r\n}\r\n\r\n/**\r\n * Mutable tree model which holds nodes and allows adding or removing them.\r\n * @public\r\n */\r\nexport class MutableTreeModel implements TreeModel {\r\n public [immerable] = true;\r\n\r\n private _tree = new SparseTree<MutableTreeModelNode>();\r\n private _rootNode: TreeModelRootNode = { depth: -1, id: undefined, numChildren: undefined };\r\n\r\n public constructor(seed?: TreeModel) {\r\n if (!seed) {\r\n return;\r\n }\r\n\r\n cloneSubree(seed, this, undefined);\r\n }\r\n\r\n /** Returns root node of a tree. This node is not visible and is there to allow having multiple visible root nodes. */\r\n public getRootNode(): TreeModelRootNode {\r\n return this._rootNode;\r\n }\r\n\r\n /** Returns tree node or placeholder for node that is not loaded yet.\r\n * @returns node, node placeholder or undefined if node is not found in model.\r\n */\r\n public getNode(id: string): MutableTreeModelNode | undefined;\r\n public getNode(parentId: string | undefined, childIndex: number): MutableTreeModelNode | TreeModelNodePlaceholder | undefined;\r\n public getNode(nodeId: string | undefined, childIndex?: number): MutableTreeModelNode | TreeModelNodePlaceholder | undefined {\r\n if (childIndex === undefined) {\r\n return this._tree.getNode(nodeId!);\r\n }\r\n\r\n const children = this._tree.getChildren(nodeId);\r\n const childId = children !== undefined ? children.get(childIndex) : undefined;\r\n if (childId !== undefined) {\r\n return this._tree.getNode(childId);\r\n }\r\n\r\n const parentNode = nodeId === undefined ? this._rootNode : this._tree.getNode(nodeId);\r\n if (parentNode !== undefined) {\r\n return {\r\n childIndex,\r\n depth: parentNode.depth + 1,\r\n parentId: nodeId,\r\n };\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Returns children for specific parent.\r\n * @param parentId id of parent node.\r\n * @returns children of parent node or root nodes if undefined is passed as parent id.\r\n */\r\n public getChildren(parentId: string | undefined): SparseArray<string> | undefined {\r\n return this._tree.getChildren(parentId);\r\n }\r\n\r\n /** Returns children offset in children array for specific parent. */\r\n public getChildOffset(parentId: string | undefined, childId: string): number | undefined {\r\n return this._tree.getChildOffset(parentId, childId);\r\n }\r\n\r\n /**\r\n * Sets children for parent node starting from the specific offset.\r\n * If offset overlaps with already added nodes, the overlapping nodes are overwritten.\r\n */\r\n public setChildren(parentId: string | undefined, nodeInputs: TreeModelNodeInput[], offset: number): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode === undefined)\r\n return;\r\n\r\n const children: MutableTreeModelNode[] = [];\r\n for (const input of nodeInputs) {\r\n const child = MutableTreeModel.createTreeModelNode(parentNode, input);\r\n children.push(child);\r\n }\r\n\r\n this._tree.setChildren(parentNode.id, children, offset);\r\n MutableTreeModel.setNumChildrenForNode(parentNode, this._tree.getChildren(parentNode.id));\r\n }\r\n\r\n /**\r\n * Inserts child in the specified position.\r\n * If offset is higher then current length of children array, the length is increased.\r\n */\r\n public insertChild(parentId: string | undefined, childNodeInput: TreeModelNodeInput, offset: number): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode === undefined)\r\n return;\r\n\r\n const child = MutableTreeModel.createTreeModelNode(parentNode, childNodeInput);\r\n\r\n this._tree.insertChild(parentNode.id, child, offset);\r\n MutableTreeModel.setNumChildrenForNode(parentNode, this._tree.getChildren(parentNode.id));\r\n }\r\n\r\n /**\r\n * Changes the id of target node.\r\n * @returns `true` on success, `false` otherwise.\r\n */\r\n public changeNodeId(currentId: string, newId: string): boolean {\r\n const node = this.getNode(currentId);\r\n if (node === undefined) {\r\n return false;\r\n }\r\n\r\n if (currentId === newId) {\r\n return true;\r\n }\r\n\r\n const index = this.getChildOffset(node.parentId, currentId);\r\n assert(index !== undefined);\r\n\r\n if (!this._tree.setNodeId(node.parentId, index, newId)) {\r\n return false;\r\n }\r\n\r\n (node.id as string) = newId; // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion\r\n for (const [childId] of this.getChildren(newId)?.iterateValues() ?? []) {\r\n const child = this.getNode(childId);\r\n assert(child !== undefined);\r\n (child.parentId as string) = newId;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Transfers node along with its children to a new location. Fails if destination has undefined child count.\r\n * @param sourceNodeId Node that is being moved.\r\n * @param targetParentId Node that will receive a new child.\r\n * @param targetIndex Insertion location among target's *current* children.\r\n * @returns `true` on success, `false` otherwise.\r\n */\r\n public moveNode(sourceNodeId: string, targetParentId: string | undefined, targetIndex: number): boolean {\r\n const sourceNode = this.getNode(sourceNodeId);\r\n if (sourceNode === undefined) {\r\n return false;\r\n }\r\n\r\n const targetParent = targetParentId === undefined ? this._rootNode : this.getNode(targetParentId);\r\n if (targetParent === undefined || targetParent.numChildren === undefined) {\r\n return false;\r\n }\r\n\r\n if (targetParentId !== undefined && this.areNodesRelated(sourceNodeId, targetParentId)) {\r\n return false;\r\n }\r\n\r\n this._tree.moveNode(sourceNode.parentId, sourceNodeId, targetParentId, targetIndex);\r\n\r\n const sourceParent = sourceNode.parentId === undefined ? this._rootNode : this.getNode(sourceNode.parentId);\r\n assert(sourceParent !== undefined);\r\n MutableTreeModel.setNumChildrenForNode(sourceParent, this._tree.getChildren(sourceNode.parentId));\r\n MutableTreeModel.setNumChildrenForNode(targetParent, this._tree.getChildren(targetParentId));\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (sourceNode.parentId as string | undefined) = targetParentId;\r\n\r\n const updateDepths = (parentId: string, depth: number) => {\r\n const node = this.getNode(parentId);\r\n assert(node !== undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (node.depth as number) = depth;\r\n for (const [nodeId] of this.getChildren(parentId)?.iterateValues() ?? []) {\r\n updateDepths(nodeId, depth + 1);\r\n }\r\n };\r\n\r\n updateDepths(sourceNodeId, targetParent.depth + 1);\r\n return true;\r\n }\r\n\r\n private areNodesRelated(ancestorNodeId: string, descendantNodeId: string): boolean {\r\n const node = this.getNode(descendantNodeId);\r\n if (node === undefined || node.parentId === undefined) {\r\n return false;\r\n }\r\n\r\n return node.parentId === ancestorNodeId ? true : this.areNodesRelated(ancestorNodeId, node.parentId);\r\n }\r\n\r\n /**\r\n * Sets the number of child nodes a parent is expected to contain. All child nodes of this parent will be subsequently\r\n * removed.\r\n */\r\n public setNumChildren(parentId: string | undefined, numChildren: number | undefined): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode === undefined) {\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (parentNode.numChildren as number | undefined) = numChildren;\r\n this._tree.setNumChildren(parentId, numChildren ?? 0);\r\n }\r\n\r\n /** Removes children specified by id.\r\n * @param parentId id of the parent node.\r\n * @param child child node id or index that should be removed.\r\n */\r\n public removeChild(parentId: string | undefined, child: string | number): void {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n this._tree.removeChild(parentId, child);\r\n\r\n // istanbul ignore else\r\n if (parentNode)\r\n MutableTreeModel.setNumChildrenForNode(parentNode, this._tree.getChildren(parentNode.id));\r\n }\r\n\r\n /** Removes all children for parent specified by id.\r\n * @param parentId id of parent node or undefined to remove root nodes.\r\n */\r\n public clearChildren(parentId: string | undefined) {\r\n const parentNode = parentId === undefined ? this._rootNode : this._tree.getNode(parentId);\r\n if (parentNode !== undefined) {\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (parentNode.numChildren as number | undefined) = undefined;\r\n }\r\n this._tree.deleteSubtree(parentId, false);\r\n }\r\n\r\n /** Iterates over all nodes present in the tree model. */\r\n public * iterateTreeModelNodes(parentId?: string): IterableIterator<MutableTreeModelNode> {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const _this = this;\r\n function* iterateDescendants(subParentId: string | undefined): IterableIterator<MutableTreeModelNode> {\r\n const children = _this.getChildren(subParentId);\r\n if (children === undefined) {\r\n return;\r\n }\r\n\r\n for (const [nodeId] of children.iterateValues()) {\r\n const node = _this.getNode(nodeId);\r\n if (node !== undefined) {\r\n yield node;\r\n yield* iterateDescendants(nodeId);\r\n }\r\n }\r\n }\r\n\r\n yield* iterateDescendants(parentId);\r\n }\r\n\r\n private static setNumChildrenForNode(node: TreeModelRootNode | MutableTreeModelNode, children: SparseArray<string> | undefined) {\r\n const numChildren = children ? children.getLength() : undefined;\r\n if (node.numChildren === numChildren)\r\n return;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n (node.numChildren as number | undefined) = numChildren;\r\n }\r\n\r\n private static createTreeModelNode(parentNode: TreeModelNode | TreeModelRootNode, input: TreeModelNodeInput): MutableTreeModelNode {\r\n return {\r\n id: input.id,\r\n parentId: parentNode.id,\r\n depth: parentNode.depth + 1,\r\n\r\n isLoading: input.isLoading,\r\n numChildren: input.numChildren,\r\n\r\n description: input.description || \"\",\r\n isExpanded: input.isExpanded,\r\n label: input.label,\r\n isSelected: input.isSelected,\r\n isSelectionDisabled: input.item.isSelectionDisabled,\r\n\r\n checkbox: {\r\n state: input.item.checkBoxState || CheckBoxState.Off,\r\n isDisabled: !!input.item.isCheckboxDisabled,\r\n isVisible: !!input.item.isCheckboxVisible,\r\n },\r\n\r\n item: _.cloneDeep(input.item),\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Generates flat list of visible nodes in the tree model.\r\n * @public\r\n */\r\nexport function computeVisibleNodes(model: TreeModel): VisibleTreeNodes {\r\n const result = getVisibleDescendants(model, model.getRootNode());\r\n return {\r\n getNumNodes: () => result.length,\r\n getAtIndex: (index: number): TreeModelNode | TreeModelNodePlaceholder | undefined => {\r\n return result[index];\r\n },\r\n getModel: () => model,\r\n getNumRootNodes: () => model.getRootNode().numChildren,\r\n [Symbol.iterator]: () => result[Symbol.iterator](),\r\n getIndexOfNode: (nodeId: string): number => {\r\n return result.findIndex((visibleNode) => (visibleNode as TreeModelNode).id === nodeId);\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Traverses the tree and collects visible descendants.\r\n * @public\r\n */\r\nexport function getVisibleDescendants(\r\n model: TreeModel,\r\n parentNode: TreeModelNode | TreeModelRootNode,\r\n result: Array<TreeModelNode | TreeModelNodePlaceholder> = [],\r\n): Array<TreeModelNode | TreeModelNodePlaceholder> {\r\n const children = model.getChildren(parentNode.id);\r\n if (!children) {\r\n return result;\r\n }\r\n\r\n let index = 0;\r\n for (const childId of children) {\r\n if (childId === undefined) {\r\n result.push({ parentId: parentNode.id, depth: parentNode.depth + 1, childIndex: index });\r\n } else {\r\n const childNode = model.getNode(childId);\r\n if (childNode === undefined) {\r\n // node was disposed\r\n result.push({ parentId: parentNode.id, depth: parentNode.depth + 1, childIndex: index });\r\n } else {\r\n result.push(childNode);\r\n if (childNode.isExpanded && childNode.numChildren !== undefined) {\r\n getVisibleDescendants(model, childNode, result);\r\n }\r\n }\r\n }\r\n ++index;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction cloneSubree(source: TreeModel, target: MutableTreeModel, parentId: string | undefined): void {\r\n target.setNumChildren(\r\n parentId,\r\n (parentId === undefined ? source.getRootNode() : source.getNode(parentId)!).numChildren,\r\n );\r\n for (const [childId, index] of source.getChildren(parentId)?.iterateValues() ?? []) {\r\n const node = source.getNode(childId)!;\r\n target.setChildren(parentId, [{ ...node, isLoading: !!node.isLoading }], index);\r\n cloneSubree(source, target, childId);\r\n }\r\n}\r\n"]}