@itwin/components-react 4.15.5 → 4.16.0

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 (528) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/lib/cjs/components-react/UiComponents.d.ts.map +1 -1
  3. package/lib/cjs/components-react/UiComponents.js +2 -0
  4. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  5. package/lib/cjs/components-react/common/CheckBoxState.d.ts +13 -0
  6. package/lib/cjs/components-react/common/CheckBoxState.d.ts.map +1 -0
  7. package/lib/cjs/components-react/common/CheckBoxState.js +17 -0
  8. package/lib/cjs/components-react/common/CheckBoxState.js.map +1 -0
  9. package/lib/cjs/components-react/common/HighlightedText.d.ts.map +1 -1
  10. package/lib/cjs/components-react/common/HighlightedText.js +78 -16
  11. package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
  12. package/lib/cjs/components-react/common/ImageRenderer.d.ts.map +1 -1
  13. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  14. package/lib/cjs/components-react/common/Orientation.d.ts +13 -0
  15. package/lib/cjs/components-react/common/Orientation.d.ts.map +1 -0
  16. package/lib/cjs/components-react/common/Orientation.js +17 -0
  17. package/lib/cjs/components-react/common/Orientation.js.map +1 -0
  18. package/lib/cjs/components-react/common/TimeFormat.d.ts +13 -0
  19. package/lib/cjs/components-react/common/TimeFormat.d.ts.map +1 -0
  20. package/lib/cjs/components-react/common/TimeFormat.js +17 -0
  21. package/lib/cjs/components-react/common/TimeFormat.js.map +1 -0
  22. package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts +1 -1
  23. package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
  24. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js +8 -8
  25. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  26. package/lib/cjs/components-react/datepicker/DatePicker.d.ts.map +1 -1
  27. package/lib/cjs/components-react/datepicker/DatePicker.js +1 -1
  28. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  29. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js +1 -1
  30. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  31. package/lib/cjs/components-react/datepicker/TimeField.js +1 -1
  32. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  33. package/lib/cjs/components-react/editors/BooleanEditor.d.ts +0 -5
  34. package/lib/cjs/components-react/editors/BooleanEditor.d.ts.map +1 -1
  35. package/lib/cjs/components-react/editors/BooleanEditor.js +0 -5
  36. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  37. package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts +0 -5
  38. package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
  39. package/lib/cjs/components-react/editors/CustomNumberEditor.js +1 -5
  40. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  41. package/lib/cjs/components-react/editors/DateTimeEditor.d.ts +0 -5
  42. package/lib/cjs/components-react/editors/DateTimeEditor.d.ts.map +1 -1
  43. package/lib/cjs/components-react/editors/DateTimeEditor.js +0 -5
  44. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  45. package/lib/cjs/components-react/editors/EditorContainer.d.ts.map +1 -1
  46. package/lib/cjs/components-react/editors/EditorContainer.js +73 -2
  47. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  48. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts +0 -4
  49. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
  50. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js +0 -4
  51. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  52. package/lib/cjs/components-react/editors/EnumEditor.d.ts +0 -5
  53. package/lib/cjs/components-react/editors/EnumEditor.d.ts.map +1 -1
  54. package/lib/cjs/components-react/editors/EnumEditor.js +0 -5
  55. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  56. package/lib/cjs/components-react/editors/IconEditor.d.ts +0 -4
  57. package/lib/cjs/components-react/editors/IconEditor.d.ts.map +1 -1
  58. package/lib/cjs/components-react/editors/IconEditor.js +0 -4
  59. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  60. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts +0 -4
  61. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  62. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js +0 -4
  63. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  64. package/lib/cjs/components-react/editors/NumericInputEditor.d.ts +0 -5
  65. package/lib/cjs/components-react/editors/NumericInputEditor.d.ts.map +1 -1
  66. package/lib/cjs/components-react/editors/NumericInputEditor.js +0 -5
  67. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/PopupButton.d.ts +0 -3
  69. package/lib/cjs/components-react/editors/PopupButton.d.ts.map +1 -1
  70. package/lib/cjs/components-react/editors/PopupButton.js +1 -4
  71. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  72. package/lib/cjs/components-react/editors/PopupButton.scss +3 -4
  73. package/lib/cjs/components-react/editors/SliderEditor.d.ts +0 -5
  74. package/lib/cjs/components-react/editors/SliderEditor.d.ts.map +1 -1
  75. package/lib/cjs/components-react/editors/SliderEditor.js +6 -7
  76. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  77. package/lib/cjs/components-react/editors/TextEditor.d.ts +0 -5
  78. package/lib/cjs/components-react/editors/TextEditor.d.ts.map +1 -1
  79. package/lib/cjs/components-react/editors/TextEditor.js +1 -5
  80. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  81. package/lib/cjs/components-react/editors/TextareaEditor.d.ts +0 -5
  82. package/lib/cjs/components-react/editors/TextareaEditor.d.ts.map +1 -1
  83. package/lib/cjs/components-react/editors/TextareaEditor.js +0 -5
  84. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  85. package/lib/cjs/components-react/editors/ToggleEditor.d.ts +0 -5
  86. package/lib/cjs/components-react/editors/ToggleEditor.d.ts.map +1 -1
  87. package/lib/cjs/components-react/editors/ToggleEditor.js +0 -5
  88. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  89. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts +1 -1
  90. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  91. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  92. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts +1 -1
  93. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  94. package/lib/cjs/components-react/favorite/FavoritePropertyList.js +2 -1
  95. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  96. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js +1 -1
  97. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -1
  98. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +1 -1
  99. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  100. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +1 -1
  101. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  102. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js +1 -1
  103. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -1
  104. package/lib/cjs/components-react/filtering/FilteringInput.d.ts +0 -1
  105. package/lib/cjs/components-react/filtering/FilteringInput.d.ts.map +1 -1
  106. package/lib/cjs/components-react/filtering/FilteringInput.js +3 -7
  107. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  108. package/lib/cjs/components-react/filtering/ResultSelector.d.ts +0 -4
  109. package/lib/cjs/components-react/filtering/ResultSelector.d.ts.map +1 -1
  110. package/lib/cjs/components-react/filtering/ResultSelector.js +0 -4
  111. package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
  112. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +0 -3
  113. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  114. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +1 -7
  115. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  116. package/lib/cjs/components-react/l10n/LocalizationProvider.d.ts +10 -0
  117. package/lib/cjs/components-react/l10n/LocalizationProvider.d.ts.map +1 -0
  118. package/lib/cjs/components-react/l10n/LocalizationProvider.js +46 -0
  119. package/lib/cjs/components-react/l10n/LocalizationProvider.js.map +1 -0
  120. package/lib/cjs/components-react/l10n/useTranslation.d.ts.map +1 -0
  121. package/lib/cjs/components-react/{useTranslation.js → l10n/useTranslation.js} +2 -2
  122. package/lib/cjs/components-react/l10n/useTranslation.js.map +1 -0
  123. package/lib/cjs/components-react/properties/ValueRendererManager.d.ts +1 -1
  124. package/lib/cjs/components-react/properties/ValueRendererManager.d.ts.map +1 -1
  125. package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
  126. package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts +1 -2
  127. package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts.map +1 -1
  128. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js +2 -3
  129. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  130. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.d.ts +1 -1
  131. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.d.ts.map +1 -1
  132. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js +3 -3
  133. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  134. package/lib/cjs/components-react/properties/renderers/CustomizablePropertyRenderer.d.ts.map +1 -1
  135. package/lib/cjs/components-react/properties/renderers/CustomizablePropertyRenderer.js +2 -2
  136. package/lib/cjs/components-react/properties/renderers/CustomizablePropertyRenderer.js.map +1 -1
  137. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -5
  138. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
  139. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +0 -2
  140. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  141. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +0 -1
  142. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts.map +1 -1
  143. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js +0 -1
  144. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  145. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.d.ts +1 -1
  146. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.d.ts.map +1 -1
  147. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js +3 -3
  148. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  149. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts +1 -5
  150. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
  151. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js +0 -4
  152. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  153. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts +0 -1
  154. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
  155. package/lib/cjs/components-react/properties/renderers/PropertyView.js +3 -3
  156. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  157. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +2 -1
  158. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts.map +1 -1
  159. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js +2 -2
  160. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  161. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +1 -1
  162. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  163. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts.map +1 -1
  164. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js +2 -2
  165. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  166. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +0 -1
  167. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts.map +1 -1
  168. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js +0 -1
  169. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  170. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -2
  171. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.map +1 -1
  172. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js +0 -1
  173. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  174. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +0 -1
  175. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts.map +1 -1
  176. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js +0 -1
  177. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  178. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts +1 -1
  179. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
  180. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +2 -1
  181. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  182. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +0 -1
  183. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
  184. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js +0 -1
  185. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  186. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +3 -4
  187. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts +1 -1
  188. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  189. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js +3 -3
  190. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  191. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +0 -2
  192. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
  193. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js +0 -2
  194. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  195. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts +1 -2
  196. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
  197. package/lib/cjs/components-react/propertygrid/component/PropertyList.js +2 -3
  198. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  199. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -4
  200. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
  201. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js +14 -8
  202. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  203. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +1 -1
  204. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts.map +1 -1
  205. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js +9 -1
  206. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  207. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +0 -1
  208. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
  209. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +0 -1
  210. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  211. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
  212. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +2 -2
  213. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  214. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts +15 -8
  215. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  216. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js +25 -17
  217. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  218. package/lib/cjs/components-react/toolbar/PopupItem.d.ts +12 -8
  219. package/lib/cjs/components-react/toolbar/PopupItem.d.ts.map +1 -1
  220. package/lib/cjs/components-react/toolbar/PopupItem.js +8 -9
  221. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  222. package/lib/cjs/components-react/toolbar/PopupItem.scss +0 -7
  223. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts +4 -2
  224. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  225. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js +4 -3
  226. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  227. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts +14 -2
  228. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  229. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js +3 -2
  230. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  231. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.d.ts.map +1 -1
  232. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.js +3 -0
  233. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.js.map +1 -1
  234. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +1 -1
  235. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  236. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  237. package/lib/cjs/components-react/tree/controlled/TreeActions.d.ts +1 -1
  238. package/lib/cjs/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
  239. package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
  240. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts +1 -1
  241. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  242. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  243. package/lib/cjs/components-react/tree/controlled/TreeEvents.d.ts +1 -1
  244. package/lib/cjs/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
  245. package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
  246. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts +1 -1
  247. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  248. package/lib/cjs/components-react/tree/controlled/TreeModel.js +2 -2
  249. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  250. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js +1 -1
  251. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  252. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +9 -2
  253. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  254. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  255. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
  256. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js +2 -1
  257. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  258. package/lib/cjs/components-react.d.ts +10 -6
  259. package/lib/cjs/components-react.d.ts.map +1 -1
  260. package/lib/cjs/components-react.js +10 -6
  261. package/lib/cjs/components-react.js.map +1 -1
  262. package/lib/esm/components-react/UiComponents.d.ts.map +1 -1
  263. package/lib/esm/components-react/UiComponents.js +2 -0
  264. package/lib/esm/components-react/UiComponents.js.map +1 -1
  265. package/lib/esm/components-react/common/CheckBoxState.d.ts +13 -0
  266. package/lib/esm/components-react/common/CheckBoxState.d.ts.map +1 -0
  267. package/lib/esm/components-react/common/CheckBoxState.js +14 -0
  268. package/lib/esm/components-react/common/CheckBoxState.js.map +1 -0
  269. package/lib/esm/components-react/common/HighlightedText.d.ts.map +1 -1
  270. package/lib/esm/components-react/common/HighlightedText.js +56 -14
  271. package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
  272. package/lib/esm/components-react/common/ImageRenderer.d.ts.map +1 -1
  273. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  274. package/lib/esm/components-react/common/Orientation.d.ts +13 -0
  275. package/lib/esm/components-react/common/Orientation.d.ts.map +1 -0
  276. package/lib/esm/components-react/common/Orientation.js +14 -0
  277. package/lib/esm/components-react/common/Orientation.js.map +1 -0
  278. package/lib/esm/components-react/common/TimeFormat.d.ts +13 -0
  279. package/lib/esm/components-react/common/TimeFormat.d.ts.map +1 -0
  280. package/lib/esm/components-react/common/TimeFormat.js +14 -0
  281. package/lib/esm/components-react/common/TimeFormat.js.map +1 -0
  282. package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts +1 -1
  283. package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
  284. package/lib/esm/components-react/converters/DateTimeTypeConverter.js +1 -1
  285. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  286. package/lib/esm/components-react/datepicker/DatePicker.d.ts.map +1 -1
  287. package/lib/esm/components-react/datepicker/DatePicker.js +1 -1
  288. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  289. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js +1 -1
  290. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  291. package/lib/esm/components-react/datepicker/TimeField.js +1 -1
  292. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  293. package/lib/esm/components-react/editors/BooleanEditor.d.ts +0 -5
  294. package/lib/esm/components-react/editors/BooleanEditor.d.ts.map +1 -1
  295. package/lib/esm/components-react/editors/BooleanEditor.js +0 -5
  296. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  297. package/lib/esm/components-react/editors/CustomNumberEditor.d.ts +0 -5
  298. package/lib/esm/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
  299. package/lib/esm/components-react/editors/CustomNumberEditor.js +1 -5
  300. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  301. package/lib/esm/components-react/editors/DateTimeEditor.d.ts +0 -5
  302. package/lib/esm/components-react/editors/DateTimeEditor.d.ts.map +1 -1
  303. package/lib/esm/components-react/editors/DateTimeEditor.js +0 -5
  304. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  305. package/lib/esm/components-react/editors/EditorContainer.d.ts.map +1 -1
  306. package/lib/esm/components-react/editors/EditorContainer.js +74 -3
  307. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  308. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts +0 -4
  309. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
  310. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js +0 -4
  311. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  312. package/lib/esm/components-react/editors/EnumEditor.d.ts +0 -5
  313. package/lib/esm/components-react/editors/EnumEditor.d.ts.map +1 -1
  314. package/lib/esm/components-react/editors/EnumEditor.js +0 -5
  315. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  316. package/lib/esm/components-react/editors/IconEditor.d.ts +0 -4
  317. package/lib/esm/components-react/editors/IconEditor.d.ts.map +1 -1
  318. package/lib/esm/components-react/editors/IconEditor.js +0 -4
  319. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  320. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts +0 -4
  321. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  322. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js +0 -4
  323. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  324. package/lib/esm/components-react/editors/NumericInputEditor.d.ts +0 -5
  325. package/lib/esm/components-react/editors/NumericInputEditor.d.ts.map +1 -1
  326. package/lib/esm/components-react/editors/NumericInputEditor.js +0 -5
  327. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  328. package/lib/esm/components-react/editors/PopupButton.d.ts +0 -3
  329. package/lib/esm/components-react/editors/PopupButton.d.ts.map +1 -1
  330. package/lib/esm/components-react/editors/PopupButton.js +1 -4
  331. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  332. package/lib/esm/components-react/editors/PopupButton.scss +3 -4
  333. package/lib/esm/components-react/editors/SliderEditor.d.ts +0 -5
  334. package/lib/esm/components-react/editors/SliderEditor.d.ts.map +1 -1
  335. package/lib/esm/components-react/editors/SliderEditor.js +6 -7
  336. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  337. package/lib/esm/components-react/editors/TextEditor.d.ts +0 -5
  338. package/lib/esm/components-react/editors/TextEditor.d.ts.map +1 -1
  339. package/lib/esm/components-react/editors/TextEditor.js +1 -5
  340. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  341. package/lib/esm/components-react/editors/TextareaEditor.d.ts +0 -5
  342. package/lib/esm/components-react/editors/TextareaEditor.d.ts.map +1 -1
  343. package/lib/esm/components-react/editors/TextareaEditor.js +0 -5
  344. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  345. package/lib/esm/components-react/editors/ToggleEditor.d.ts +0 -5
  346. package/lib/esm/components-react/editors/ToggleEditor.d.ts.map +1 -1
  347. package/lib/esm/components-react/editors/ToggleEditor.js +0 -5
  348. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  349. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts +1 -1
  350. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  351. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  352. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts +1 -1
  353. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  354. package/lib/esm/components-react/favorite/FavoritePropertyList.js +2 -1
  355. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  356. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js +1 -1
  357. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -1
  358. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +1 -1
  359. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  360. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +1 -1
  361. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  362. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js +1 -1
  363. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -1
  364. package/lib/esm/components-react/filtering/FilteringInput.d.ts +0 -1
  365. package/lib/esm/components-react/filtering/FilteringInput.d.ts.map +1 -1
  366. package/lib/esm/components-react/filtering/FilteringInput.js +3 -7
  367. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  368. package/lib/esm/components-react/filtering/ResultSelector.d.ts +0 -4
  369. package/lib/esm/components-react/filtering/ResultSelector.d.ts.map +1 -1
  370. package/lib/esm/components-react/filtering/ResultSelector.js +0 -4
  371. package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
  372. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +0 -3
  373. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  374. package/lib/esm/components-react/iconpicker/IconPickerButton.js +1 -7
  375. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  376. package/lib/esm/components-react/l10n/LocalizationProvider.d.ts +10 -0
  377. package/lib/esm/components-react/l10n/LocalizationProvider.d.ts.map +1 -0
  378. package/lib/esm/components-react/l10n/LocalizationProvider.js +19 -0
  379. package/lib/esm/components-react/l10n/LocalizationProvider.js.map +1 -0
  380. package/lib/esm/components-react/l10n/useTranslation.d.ts.map +1 -0
  381. package/lib/esm/components-react/{useTranslation.js → l10n/useTranslation.js} +2 -2
  382. package/lib/esm/components-react/l10n/useTranslation.js.map +1 -0
  383. package/lib/esm/components-react/properties/ValueRendererManager.d.ts +1 -1
  384. package/lib/esm/components-react/properties/ValueRendererManager.d.ts.map +1 -1
  385. package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
  386. package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts +1 -2
  387. package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts.map +1 -1
  388. package/lib/esm/components-react/properties/renderers/ActionButtonList.js +1 -2
  389. package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  390. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.d.ts +1 -1
  391. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.d.ts.map +1 -1
  392. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js +1 -1
  393. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  394. package/lib/esm/components-react/properties/renderers/CustomizablePropertyRenderer.d.ts.map +1 -1
  395. package/lib/esm/components-react/properties/renderers/CustomizablePropertyRenderer.js +1 -1
  396. package/lib/esm/components-react/properties/renderers/CustomizablePropertyRenderer.js.map +1 -1
  397. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -5
  398. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
  399. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +0 -2
  400. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  401. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +0 -1
  402. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts.map +1 -1
  403. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js +0 -1
  404. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  405. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.d.ts +1 -1
  406. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.d.ts.map +1 -1
  407. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js +1 -1
  408. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  409. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts +1 -5
  410. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
  411. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js +0 -4
  412. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  413. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts +0 -1
  414. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
  415. package/lib/esm/components-react/properties/renderers/PropertyView.js +2 -2
  416. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  417. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +2 -1
  418. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts.map +1 -1
  419. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js +1 -1
  420. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  421. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +1 -1
  422. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  423. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts.map +1 -1
  424. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js +1 -1
  425. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  426. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +0 -1
  427. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts.map +1 -1
  428. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js +0 -1
  429. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  430. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -2
  431. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.map +1 -1
  432. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js +0 -1
  433. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  434. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +0 -1
  435. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts.map +1 -1
  436. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js +0 -1
  437. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  438. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts +1 -1
  439. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
  440. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +2 -1
  441. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  442. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +0 -1
  443. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
  444. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js +0 -1
  445. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  446. package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +3 -4
  447. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts +1 -1
  448. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  449. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js +1 -1
  450. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  451. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +0 -2
  452. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
  453. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js +0 -2
  454. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  455. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts +1 -2
  456. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
  457. package/lib/esm/components-react/propertygrid/component/PropertyList.js +1 -2
  458. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  459. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -4
  460. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
  461. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js +12 -6
  462. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  463. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +1 -1
  464. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts.map +1 -1
  465. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js +9 -1
  466. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  467. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +0 -1
  468. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
  469. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +0 -1
  470. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  471. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
  472. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +1 -1
  473. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  474. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts +15 -8
  475. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  476. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js +25 -17
  477. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  478. package/lib/esm/components-react/toolbar/PopupItem.d.ts +12 -8
  479. package/lib/esm/components-react/toolbar/PopupItem.d.ts.map +1 -1
  480. package/lib/esm/components-react/toolbar/PopupItem.js +9 -10
  481. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  482. package/lib/esm/components-react/toolbar/PopupItem.scss +0 -7
  483. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts +4 -2
  484. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  485. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js +4 -3
  486. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  487. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts +14 -2
  488. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  489. package/lib/esm/components-react/toolbar/PopupItemsPanel.js +3 -2
  490. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  491. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.d.ts.map +1 -1
  492. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.js +3 -0
  493. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.js.map +1 -1
  494. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +1 -1
  495. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  496. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  497. package/lib/esm/components-react/tree/controlled/TreeActions.d.ts +1 -1
  498. package/lib/esm/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
  499. package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
  500. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts +1 -1
  501. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  502. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  503. package/lib/esm/components-react/tree/controlled/TreeEvents.d.ts +1 -1
  504. package/lib/esm/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
  505. package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
  506. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts +1 -1
  507. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  508. package/lib/esm/components-react/tree/controlled/TreeModel.js +1 -1
  509. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  510. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js +1 -1
  511. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  512. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +9 -2
  513. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  514. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  515. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
  516. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js +2 -1
  517. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  518. package/lib/esm/components-react.d.ts +10 -6
  519. package/lib/esm/components-react.d.ts.map +1 -1
  520. package/lib/esm/components-react.js +10 -6
  521. package/lib/esm/components-react.js.map +1 -1
  522. package/package.json +3 -5
  523. package/lib/cjs/components-react/useTranslation.d.ts.map +0 -1
  524. package/lib/cjs/components-react/useTranslation.js.map +0 -1
  525. package/lib/esm/components-react/useTranslation.d.ts.map +0 -1
  526. package/lib/esm/components-react/useTranslation.js.map +0 -1
  527. /package/lib/cjs/components-react/{useTranslation.d.ts → l10n/useTranslation.d.ts} +0 -0
  528. /package/lib/esm/components-react/{useTranslation.d.ts → l10n/useTranslation.d.ts} +0 -0
@@ -5,23 +5,27 @@ import "./PopupItem.scss";
5
5
  import * as React from "react";
6
6
  import type { ActionButton, RelativePosition } from "@itwin/appui-abstract";
7
7
  import type { ToolbarButtonItemProps } from "./Item";
8
- /** @public */
8
+ /**
9
+ * @public
10
+ * @deprecated in 4.16.0. Props of deprecated {@link ToolbarPopupContext} context.
11
+ */
9
12
  export interface ToolbarPopupContextProps {
10
13
  readonly closePanel: () => void;
11
14
  readonly setSelectedItem?: (buttonItem: ActionButton) => void;
12
15
  }
13
- /**
14
- * Context used by Toolbar items in popups to close the popup panel.
16
+ /** Context used by Toolbar items in popups to close the popup panel.
15
17
  * @public
18
+ * @deprecated in 4.16.0. Used in deprecated {@link PopupItem} and {@link PopupItemWithDrag} components.
16
19
  */
17
20
  export declare const ToolbarPopupContext: React.Context<ToolbarPopupContextProps>;
18
- /**
19
- * React hook used to retrieve the ToolbarPopupContext.
20
- * @public
21
+ /** React hook used to retrieve the ToolbarPopupContext.
22
+ * @public
23
+ * @deprecated in 4.16.0. Uses deprecated {@link ToolbarPopupContext} context.
21
24
  */
22
25
  export declare function useToolbarPopupContext(): ToolbarPopupContextProps;
23
26
  /** Properties of [[PopupItem]] component.
24
27
  * @public
28
+ * @deprecated in 4.16.0. Props of deprecated {@link PopupItem} component.
25
29
  */
26
30
  export interface PopupItemProps extends ToolbarButtonItemProps {
27
31
  /** Describes if expandable item triangle indicator should be hidden. */
@@ -32,11 +36,11 @@ export interface PopupItemProps extends ToolbarButtonItemProps {
32
36
  * content node is unmounted each time the popup is closed. */
33
37
  keepContentsMounted?: boolean;
34
38
  }
35
- /** Popup toolbar item that displays a panel
39
+ /** Popup toolbar item that displays a panel.
36
40
  * @public
41
+ * @deprecated in 4.16.0. Used internally to construct toolbars.
37
42
  */
38
43
  export declare function PopupItem(props: PopupItemProps): React.JSX.Element;
39
- /** @internal */
40
44
  interface PopupItemPopupProps {
41
45
  children?: React.ReactNode;
42
46
  isOpen?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PopupItem.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAQrD,cAAc;AACd,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,yCAM5B,CAAC;AAEL;;;GAGG;AACH,wBAAgB,sBAAsB,6BAErC;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;kEAC8D;IAC9D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBA4E9C;AAED,gBAAgB;AAChB,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAWxD"}
1
+ {"version":3,"file":"PopupItem.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAarD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,yCAM5B,CAAC;AAEL;;;GAGG;AACH,wBAAgB,sBAAsB,6BAErC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;kEAC8D;IAC9D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBA4E9C;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAUxD"}
@@ -10,10 +10,10 @@ import classnames from "classnames";
10
10
  import * as React from "react";
11
11
  import { Popup, useRefState } from "@itwin/core-react";
12
12
  import { useToolbarPopupAutoHideContext, useToolbarWithOverflowDirectionContext, useToolItemEntryContext, } from "./InternalToolbarComponent";
13
- import { toToolbarPopupRelativePosition } from "./PopupItemWithDrag";
14
- /**
15
- * Context used by Toolbar items in popups to close the popup panel.
13
+ import { toToolbarPopupRelativePosition, } from "./PopupItemWithDrag";
14
+ /** Context used by Toolbar items in popups to close the popup panel.
16
15
  * @public
16
+ * @deprecated in 4.16.0. Used in deprecated {@link PopupItem} and {@link PopupItemWithDrag} components.
17
17
  */
18
18
  export const ToolbarPopupContext = React.createContext({
19
19
  /** function used to close popup panel */
@@ -21,15 +21,16 @@ export const ToolbarPopupContext = React.createContext({
21
21
  /** if popup panel is a GroupButton then this is call to set the selected action item within the panel */
22
22
  setSelectedItem: (_buttonItem) => { },
23
23
  });
24
- /**
25
- * React hook used to retrieve the ToolbarPopupContext.
26
- * @public
24
+ /** React hook used to retrieve the ToolbarPopupContext.
25
+ * @public
26
+ * @deprecated in 4.16.0. Uses deprecated {@link ToolbarPopupContext} context.
27
27
  */
28
28
  export function useToolbarPopupContext() {
29
29
  return React.useContext(ToolbarPopupContext);
30
30
  }
31
- /** Popup toolbar item that displays a panel
31
+ /** Popup toolbar item that displays a panel.
32
32
  * @public
33
+ * @deprecated in 4.16.0. Used internally to construct toolbars.
33
34
  */
34
35
  export function PopupItem(props) {
35
36
  const [isPanelShown, setPanelShown] = React.useState(false);
@@ -68,8 +69,6 @@ export function PopupItem(props) {
68
69
  export function PopupItemPopup(props) {
69
70
  const isHidden = useToolbarPopupAutoHideContext();
70
71
  const className = classnames("components-toolbar-popupItem_popupItemPopup", isHidden && "nz-hidden");
71
- return (
72
- // eslint-disable-next-line deprecation/deprecation
73
- React.createElement(Popup, { className: className, offset: 0, showShadow: false, ...props }));
72
+ return (React.createElement(Popup, { className: className, offset: 0, showShadow: false, ...props }));
74
73
  }
75
74
  //# sourceMappingURL=PopupItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopupItem.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport \"./PopupItem.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ActionButton, RelativePosition } from \"@itwin/appui-abstract\";\nimport { Popup, useRefState } from \"@itwin/core-react\";\nimport type { ToolbarButtonItemProps } from \"./Item\";\nimport {\n useToolbarPopupAutoHideContext,\n useToolbarWithOverflowDirectionContext,\n useToolItemEntryContext,\n} from \"./InternalToolbarComponent\";\nimport { toToolbarPopupRelativePosition } from \"./PopupItemWithDrag\";\n\n/** @public */\nexport interface ToolbarPopupContextProps {\n readonly closePanel: () => void;\n readonly setSelectedItem?: (buttonItem: ActionButton) => void;\n}\n\n/**\n * Context used by Toolbar items in popups to close the popup panel.\n * @public\n */\nexport const ToolbarPopupContext =\n React.createContext<ToolbarPopupContextProps>({\n /** function used to close popup panel */\n closePanel: () => {},\n /** if popup panel is a GroupButton then this is call to set the selected action item within the panel */\n setSelectedItem: (_buttonItem: ActionButton) => {},\n });\n\n/**\n * React hook used to retrieve the ToolbarPopupContext.\n * @public\n */\nexport function useToolbarPopupContext() {\n return React.useContext(ToolbarPopupContext);\n}\n\n/** Properties of [[PopupItem]] component.\n * @public\n */\nexport interface PopupItemProps extends ToolbarButtonItemProps {\n /** Describes if expandable item triangle indicator should be hidden. */\n hideIndicator?: boolean;\n /** Panel of the toolbar. */\n panel?: React.ReactNode;\n /** If true the popup panel is mounted once and unmounted when button is unmounted. If false the\n * content node is unmounted each time the popup is closed. */\n keepContentsMounted?: boolean;\n}\n\n/** Popup toolbar item that displays a panel\n * @public\n */\nexport function PopupItem(props: PopupItemProps) {\n const [isPanelShown, setPanelShown] = React.useState(false);\n const {\n expandsTo,\n overflowExpandsTo,\n panelAlignment,\n onPopupPanelOpenClose,\n } = useToolbarWithOverflowDirectionContext();\n const processPanelOpenClose = React.useCallback(\n (isOpening: boolean) => {\n setPanelShown((prev) => {\n if (prev !== isOpening) onPopupPanelOpenClose(isOpening);\n return isOpening;\n });\n },\n [setPanelShown, onPopupPanelOpenClose]\n );\n\n // handle open and closing overflow panel\n const onButtonClick = React.useCallback(() => {\n processPanelOpenClose(!isPanelShown);\n if (props.onClick) props.onClick();\n }, [props, isPanelShown, processPanelOpenClose]);\n const className = classnames(\n \"components-toolbar-button-item\",\n \"components-toolbar-expandable-button\",\n props.isDisabled && \"components-disabled\",\n props.className\n );\n\n const [targetRef, target] = useRefState<HTMLButtonElement>();\n const handleClose = React.useCallback(() => {\n processPanelOpenClose(false);\n }, [processPanelOpenClose]);\n const { hasOverflow } = useToolItemEntryContext();\n const expandsToDirection = hasOverflow ? overflowExpandsTo : expandsTo;\n\n const { hideIndicator, panel } = props;\n return (\n <ToolbarPopupContext.Provider\n value={{\n closePanel: () => processPanelOpenClose(false),\n }}\n >\n <button\n data-item-id={props.itemId}\n data-item-type=\"tool-button-popup\"\n data-item-group-priority={props.groupPriority}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n ref={targetRef}\n disabled={props.isDisabled} // this is needed to prevent focusing/keyboard access to disabled buttons\n onClick={onButtonClick}\n onKeyDown={props.onKeyDown}\n className={className}\n style={props.style}\n title={props.title}\n >\n <div className=\"components-icon\">{props.icon}</div>\n {props.badge && <div className=\"components-badge\">{props.badge}</div>}\n {hideIndicator ? undefined : <div className=\"components-triangle\" />}\n </button>\n <PopupItemPopup\n isOpen={isPanelShown}\n onClose={handleClose}\n position={toToolbarPopupRelativePosition(\n expandsToDirection,\n panelAlignment\n )}\n target={target}\n keepContentsMounted={props.keepContentsMounted}\n >\n {panel}\n </PopupItemPopup>\n </ToolbarPopupContext.Provider>\n );\n}\n\n/** @internal */\ninterface PopupItemPopupProps {\n children?: React.ReactNode;\n isOpen?: boolean;\n onClose(): void;\n position: RelativePosition;\n target?: HTMLElement;\n keepContentsMounted?: boolean;\n}\n\n/** @internal */\nexport function PopupItemPopup(props: PopupItemPopupProps) {\n const isHidden = useToolbarPopupAutoHideContext();\n const className = classnames(\n \"components-toolbar-popupItem_popupItemPopup\",\n isHidden && \"nz-hidden\"\n );\n\n return (\n // eslint-disable-next-line deprecation/deprecation\n <Popup className={className} offset={0} showShadow={false} {...props} />\n );\n}\n"]}
1
+ {"version":3,"file":"PopupItem.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport \"./PopupItem.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ActionButton, RelativePosition } from \"@itwin/appui-abstract\";\nimport { Popup, useRefState } from \"@itwin/core-react\";\nimport type { ToolbarButtonItemProps } from \"./Item\";\nimport {\n useToolbarPopupAutoHideContext,\n useToolbarWithOverflowDirectionContext,\n useToolItemEntryContext,\n} from \"./InternalToolbarComponent\";\nimport {\n PopupItemWithDrag,\n toToolbarPopupRelativePosition,\n} from \"./PopupItemWithDrag\";\n\n/* eslint-disable deprecation/deprecation */\n\n/**\n * @public\n * @deprecated in 4.16.0. Props of deprecated {@link ToolbarPopupContext} context.\n */\nexport interface ToolbarPopupContextProps {\n readonly closePanel: () => void;\n readonly setSelectedItem?: (buttonItem: ActionButton) => void;\n}\n\n/** Context used by Toolbar items in popups to close the popup panel.\n * @public\n * @deprecated in 4.16.0. Used in deprecated {@link PopupItem} and {@link PopupItemWithDrag} components.\n */\nexport const ToolbarPopupContext =\n React.createContext<ToolbarPopupContextProps>({\n /** function used to close popup panel */\n closePanel: () => {},\n /** if popup panel is a GroupButton then this is call to set the selected action item within the panel */\n setSelectedItem: (_buttonItem: ActionButton) => {},\n });\n\n/** React hook used to retrieve the ToolbarPopupContext.\n * @public\n * @deprecated in 4.16.0. Uses deprecated {@link ToolbarPopupContext} context.\n */\nexport function useToolbarPopupContext() {\n return React.useContext(ToolbarPopupContext);\n}\n\n/** Properties of [[PopupItem]] component.\n * @public\n * @deprecated in 4.16.0. Props of deprecated {@link PopupItem} component.\n */\nexport interface PopupItemProps extends ToolbarButtonItemProps {\n /** Describes if expandable item triangle indicator should be hidden. */\n hideIndicator?: boolean;\n /** Panel of the toolbar. */\n panel?: React.ReactNode;\n /** If true the popup panel is mounted once and unmounted when button is unmounted. If false the\n * content node is unmounted each time the popup is closed. */\n keepContentsMounted?: boolean;\n}\n\n/** Popup toolbar item that displays a panel.\n * @public\n * @deprecated in 4.16.0. Used internally to construct toolbars.\n */\nexport function PopupItem(props: PopupItemProps) {\n const [isPanelShown, setPanelShown] = React.useState(false);\n const {\n expandsTo,\n overflowExpandsTo,\n panelAlignment,\n onPopupPanelOpenClose,\n } = useToolbarWithOverflowDirectionContext();\n const processPanelOpenClose = React.useCallback(\n (isOpening: boolean) => {\n setPanelShown((prev) => {\n if (prev !== isOpening) onPopupPanelOpenClose(isOpening);\n return isOpening;\n });\n },\n [setPanelShown, onPopupPanelOpenClose]\n );\n\n // handle open and closing overflow panel\n const onButtonClick = React.useCallback(() => {\n processPanelOpenClose(!isPanelShown);\n if (props.onClick) props.onClick();\n }, [props, isPanelShown, processPanelOpenClose]);\n const className = classnames(\n \"components-toolbar-button-item\",\n \"components-toolbar-expandable-button\",\n props.isDisabled && \"components-disabled\",\n props.className\n );\n\n const [targetRef, target] = useRefState<HTMLButtonElement>();\n const handleClose = React.useCallback(() => {\n processPanelOpenClose(false);\n }, [processPanelOpenClose]);\n const { hasOverflow } = useToolItemEntryContext();\n const expandsToDirection = hasOverflow ? overflowExpandsTo : expandsTo;\n\n const { hideIndicator, panel } = props;\n return (\n <ToolbarPopupContext.Provider\n value={{\n closePanel: () => processPanelOpenClose(false),\n }}\n >\n <button\n data-item-id={props.itemId}\n data-item-type=\"tool-button-popup\"\n data-item-group-priority={props.groupPriority}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n ref={targetRef}\n disabled={props.isDisabled} // this is needed to prevent focusing/keyboard access to disabled buttons\n onClick={onButtonClick}\n onKeyDown={props.onKeyDown}\n className={className}\n style={props.style}\n title={props.title}\n >\n <div className=\"components-icon\">{props.icon}</div>\n {props.badge && <div className=\"components-badge\">{props.badge}</div>}\n {hideIndicator ? undefined : <div className=\"components-triangle\" />}\n </button>\n <PopupItemPopup\n isOpen={isPanelShown}\n onClose={handleClose}\n position={toToolbarPopupRelativePosition(\n expandsToDirection,\n panelAlignment\n )}\n target={target}\n keepContentsMounted={props.keepContentsMounted}\n >\n {panel}\n </PopupItemPopup>\n </ToolbarPopupContext.Provider>\n );\n}\n\ninterface PopupItemPopupProps {\n children?: React.ReactNode;\n isOpen?: boolean;\n onClose(): void;\n position: RelativePosition;\n target?: HTMLElement;\n keepContentsMounted?: boolean;\n}\n\n/** @internal */\nexport function PopupItemPopup(props: PopupItemPopupProps) {\n const isHidden = useToolbarPopupAutoHideContext();\n const className = classnames(\n \"components-toolbar-popupItem_popupItemPopup\",\n isHidden && \"nz-hidden\"\n );\n\n return (\n <Popup className={className} offset={0} showShadow={false} {...props} />\n );\n}\n"]}
@@ -14,13 +14,6 @@
14
14
  $arrow-shadow: $icon-shadow;
15
15
  position: relative;
16
16
 
17
- > * {
18
- &:not(.components-triangle) {
19
- height: 100%;
20
- width: 100%;
21
- }
22
- }
23
-
24
17
  > .components-triangle {
25
18
  border-radius: 0;
26
19
  position: absolute;
@@ -8,15 +8,17 @@ import { RelativePosition } from "@itwin/appui-abstract";
8
8
  import type { ToolbarButtonItemProps } from "./Item";
9
9
  import { ToolbarPanelAlignment } from "./InternalToolbarComponent";
10
10
  import { Direction } from "./utilities/Direction";
11
- /** Properties of [[PopupItem]] component.
11
+ /** Properties of [[PopupItemWithDrag]] component.
12
12
  * @public
13
+ * @deprecated in 4.16.0. Props of deprecated {@link PopupItemWithDrag} component.
13
14
  */
14
15
  export interface PopupItemWithDragProps extends ToolbarButtonItemProps {
15
16
  /** Panel of the toolbar. */
16
17
  groupItem: GroupButton;
17
18
  }
18
- /** Expandable Group button Item
19
+ /** Expandable group button item with drag.
19
20
  * @public
21
+ * @deprecated in 4.16.0. Used internally to construct toolbars.
20
22
  */
21
23
  export declare function PopupItemWithDrag(props: PopupItemWithDragProps): React.JSX.Element;
22
24
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"PopupItemWithDrag.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemWithDrag.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAGL,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EACL,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,4BAA4B;IAC5B,SAAS,EAAE,WAAW,CAAC;CACxB;AA6CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAiI9D;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,qBAAqB,GAC/B,gBAAgB,CAclB"}
1
+ {"version":3,"file":"PopupItemWithDrag.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemWithDrag.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAGL,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAIrD,OAAO,EACL,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,4BAA4B;IAC5B,SAAS,EAAE,WAAW,CAAC;CACxB;AA6CD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAiI9D;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,qBAAqB,GAC/B,gBAAgB,CAclB"}
@@ -57,8 +57,9 @@ function getActiveAction(item) {
57
57
  // if not found look inside groups
58
58
  return getFirstAvailableChildActionItem(item);
59
59
  }
60
- /** Expandable Group button Item
60
+ /** Expandable group button item with drag.
61
61
  * @public
62
+ * @deprecated in 4.16.0. Used internally to construct toolbars.
62
63
  */
63
64
  export function PopupItemWithDrag(props) {
64
65
  const [isPanelShown, setPanelShown] = React.useState(false);
@@ -96,7 +97,7 @@ export function PopupItemWithDrag(props) {
96
97
  activeAction.execute();
97
98
  }, [activeAction]);
98
99
  const icon = activeAction
99
- ? IconHelper.getIconReactNode(activeAction.icon, activeAction.internalData) // eslint-disable-line deprecation/deprecation
100
+ ? IconHelper.getIconReactNode(activeAction.icon, activeAction.internalData)
100
101
  : props.icon;
101
102
  const title = activeAction
102
103
  ? ConditionalStringValue.getValue(activeAction.label)
@@ -117,7 +118,7 @@ export function PopupItemWithDrag(props) {
117
118
  } },
118
119
  React.createElement("button", { "data-item-id": props.itemId, "data-item-type": "action-tool-button", "data-item-group-priority": props.groupPriority, "data-item-priority": props.itemPriority, "data-item-provider-id": props.providerId, ref: targetRef, onPointerDown: handlePointerDown, onClick: handleButtonClick, onKeyDown: props.onKeyDown, className: className, style: props.style, title: title },
119
120
  React.createElement("div", { className: "components-icon" }, icon),
120
- props.badge && (React.createElement("div", { className: "components-badge" }, activeAction ? (React.createElement(Badge, { type: activeAction.badgeType })) : (props.badge))),
121
+ props.badge && (React.createElement("div", { className: "components-badge" }, activeAction ? (React.createElement(Badge, { type: activeAction.badgeKind || activeAction.badgeType })) : (props.badge))),
121
122
  React.createElement("div", { className: "components-triangle" })),
122
123
  React.createElement(PopupItemPopup, { isOpen: isPanelShown, onClose: handleClose, position: toToolbarPopupRelativePosition(expandsToDirection, panelAlignment), target: target },
123
124
  React.createElement(PopupItemsPanel, { groupItem: props.groupItem, activateOnPointerUp: true }))));
@@ -1 +1 @@
1
- {"version":3,"file":"PopupItemWithDrag.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemWithDrag.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport \"./PopupItem.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ActionButton, GroupButton } from \"@itwin/appui-abstract\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n RelativePosition,\n ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport { Badge, IconHelper, useRefState } from \"@itwin/core-react\";\nimport type { ToolbarButtonItemProps } from \"./Item\";\nimport { PopupItemPopup, ToolbarPopupContext } from \"./PopupItem\";\nimport { PopupItemsPanel } from \"./PopupItemsPanel\";\nimport {\n ToolbarPanelAlignment,\n useToolbarWithOverflowDirectionContext,\n useToolItemEntryContext,\n} from \"./InternalToolbarComponent\";\nimport { useDragInteraction } from \"./useDragInteraction\";\nimport { Direction } from \"./utilities/Direction\";\n\n/** Properties of [[PopupItem]] component.\n * @public\n */\nexport interface PopupItemWithDragProps extends ToolbarButtonItemProps {\n /** Panel of the toolbar. */\n groupItem: GroupButton;\n}\n\nfunction tryFindActiveAction(item: GroupButton): ActionButton | undefined {\n for (const childItem of item.items) {\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n if (childItem.isActive) return childItem;\n } else if (ToolbarItemUtilities.isGroupButton(childItem)) {\n const nestedChild = tryFindActiveAction(childItem);\n if (nestedChild) return nestedChild;\n }\n }\n return undefined;\n}\n\nfunction getFirstAvailableChildActionItem(\n item: GroupButton\n): ActionButton | undefined {\n for (const childItem of item.items) {\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n return childItem;\n } else {\n if (ToolbarItemUtilities.isGroupButton(childItem)) {\n const nestedChild = getFirstAvailableChildActionItem(childItem);\n if (nestedChild) return nestedChild;\n }\n }\n }\n return undefined;\n}\n\nfunction getActiveAction(item: GroupButton): ActionButton | undefined {\n const activeItem = tryFindActiveAction(item);\n if (activeItem) return activeItem;\n\n // initially look only in root items\n for (const childItem of item.items) {\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n return childItem;\n }\n }\n\n // if not found look inside groups\n return getFirstAvailableChildActionItem(item);\n}\n\n/** Expandable Group button Item\n * @public\n */\nexport function PopupItemWithDrag(props: PopupItemWithDragProps) {\n const [isPanelShown, setPanelShown] = React.useState(false);\n const [activeAction, setActiveAction] = React.useState(\n getActiveAction(props.groupItem)\n );\n const {\n expandsTo,\n overflowExpandsTo,\n panelAlignment,\n onPopupPanelOpenClose,\n } = useToolbarWithOverflowDirectionContext();\n\n React.useEffect(() => {\n const newActiveAction = getActiveAction(props.groupItem);\n if (newActiveAction) {\n if (newActiveAction.isActive) {\n setActiveAction(newActiveAction);\n } else {\n if (activeAction && activeAction.isActive) {\n setActiveAction({ ...activeAction, isActive: false });\n }\n }\n }\n }, [props.groupItem, activeAction]);\n\n const processPanelOpenClose = React.useCallback(\n (isOpening: boolean) => {\n setPanelShown((prev) => {\n if (prev !== isOpening) onPopupPanelOpenClose(isOpening);\n return isOpening;\n });\n },\n [setPanelShown, onPopupPanelOpenClose]\n );\n\n // handle open and closing popup panel\n const onOpenPanel = React.useCallback(() => {\n processPanelOpenClose(!isPanelShown);\n }, [isPanelShown, processPanelOpenClose]);\n\n // handle open and closing popup panel\n const onGroupButtonClick = React.useCallback(() => {\n // only execute action if not disabled\n activeAction &&\n !ConditionalBooleanValue.getValue(activeAction.isDisabled) &&\n activeAction.execute();\n }, [activeAction]);\n\n const icon = activeAction\n ? IconHelper.getIconReactNode(activeAction.icon, activeAction.internalData) // eslint-disable-line deprecation/deprecation\n : props.icon;\n const title = activeAction\n ? ConditionalStringValue.getValue(activeAction.label)\n : props.title;\n const isActive = activeAction ? activeAction.isActive : props.isActive;\n const isDisabled = ConditionalBooleanValue.getValue(\n activeAction ? activeAction.isDisabled : props.isDisabled\n );\n\n const { handlePointerDown, handleButtonClick } = useDragInteraction(\n onGroupButtonClick,\n onOpenPanel\n );\n\n const className = classnames(\n \"components-toolbar-button-item\",\n \"components-toolbar-expandable-button\",\n isActive && \"components-active\",\n isDisabled && \"components-disabled-drag\",\n props.className\n );\n\n const [targetRef, target] = useRefState<HTMLButtonElement>();\n const handleClose = React.useCallback(() => {\n processPanelOpenClose(false);\n }, [processPanelOpenClose]);\n const { hasOverflow } = useToolItemEntryContext();\n const expandsToDirection = hasOverflow ? overflowExpandsTo : expandsTo;\n\n return (\n <ToolbarPopupContext.Provider\n value={{\n closePanel: () => processPanelOpenClose(false),\n setSelectedItem: (buttonItem: ActionButton) =>\n setActiveAction(buttonItem),\n }}\n >\n <button\n data-item-id={props.itemId}\n data-item-type=\"action-tool-button\"\n data-item-group-priority={props.groupPriority}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n ref={targetRef}\n onPointerDown={handlePointerDown}\n onClick={handleButtonClick}\n onKeyDown={props.onKeyDown}\n className={className}\n style={props.style}\n title={title}\n >\n <div className=\"components-icon\">{icon}</div>\n {props.badge && (\n <div className=\"components-badge\">\n {activeAction ? (\n <Badge type={activeAction.badgeType} />\n ) : (\n props.badge\n )}\n </div>\n )}\n <div className=\"components-triangle\" />\n </button>\n <PopupItemPopup\n isOpen={isPanelShown}\n onClose={handleClose}\n position={toToolbarPopupRelativePosition(\n expandsToDirection,\n panelAlignment\n )}\n target={target}\n >\n <PopupItemsPanel\n groupItem={props.groupItem}\n activateOnPointerUp={true}\n />\n </PopupItemPopup>\n </ToolbarPopupContext.Provider>\n );\n}\n\n/** @internal */\nexport function toToolbarPopupRelativePosition(\n expandsTo: Direction,\n alignment: ToolbarPanelAlignment\n): RelativePosition {\n switch (expandsTo) {\n case Direction.Bottom: {\n if (alignment === ToolbarPanelAlignment.End)\n return RelativePosition.BottomRight;\n return RelativePosition.BottomLeft;\n }\n case Direction.Left:\n return RelativePosition.LeftTop;\n case Direction.Right:\n return RelativePosition.RightTop;\n case Direction.Top:\n return RelativePosition.Top;\n }\n}\n"]}
1
+ {"version":3,"file":"PopupItemWithDrag.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemWithDrag.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport \"./PopupItem.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ActionButton, GroupButton } from \"@itwin/appui-abstract\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n RelativePosition,\n ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport { Badge, IconHelper, useRefState } from \"@itwin/core-react\";\nimport type { ToolbarButtonItemProps } from \"./Item\";\nimport { PopupItemPopup, ToolbarPopupContext } from \"./PopupItem\";\nimport type { ActionButtonWithBadgeKind } from \"./PopupItemsPanel\";\nimport { PopupItemsPanel } from \"./PopupItemsPanel\";\nimport {\n ToolbarPanelAlignment,\n useToolbarWithOverflowDirectionContext,\n useToolItemEntryContext,\n} from \"./InternalToolbarComponent\";\nimport { useDragInteraction } from \"./useDragInteraction\";\nimport { Direction } from \"./utilities/Direction\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Properties of [[PopupItemWithDrag]] component.\n * @public\n * @deprecated in 4.16.0. Props of deprecated {@link PopupItemWithDrag} component.\n */\nexport interface PopupItemWithDragProps extends ToolbarButtonItemProps {\n /** Panel of the toolbar. */\n groupItem: GroupButton;\n}\n\nfunction tryFindActiveAction(item: GroupButton): ActionButton | undefined {\n for (const childItem of item.items) {\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n if (childItem.isActive) return childItem;\n } else if (ToolbarItemUtilities.isGroupButton(childItem)) {\n const nestedChild = tryFindActiveAction(childItem);\n if (nestedChild) return nestedChild;\n }\n }\n return undefined;\n}\n\nfunction getFirstAvailableChildActionItem(\n item: GroupButton\n): ActionButton | undefined {\n for (const childItem of item.items) {\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n return childItem;\n } else {\n if (ToolbarItemUtilities.isGroupButton(childItem)) {\n const nestedChild = getFirstAvailableChildActionItem(childItem);\n if (nestedChild) return nestedChild;\n }\n }\n }\n return undefined;\n}\n\nfunction getActiveAction(item: GroupButton): ActionButton | undefined {\n const activeItem = tryFindActiveAction(item);\n if (activeItem) return activeItem;\n\n // initially look only in root items\n for (const childItem of item.items) {\n if (ToolbarItemUtilities.isActionButton(childItem)) {\n return childItem;\n }\n }\n\n // if not found look inside groups\n return getFirstAvailableChildActionItem(item);\n}\n\n/** Expandable group button item with drag.\n * @public\n * @deprecated in 4.16.0. Used internally to construct toolbars.\n */\nexport function PopupItemWithDrag(props: PopupItemWithDragProps) {\n const [isPanelShown, setPanelShown] = React.useState(false);\n const [activeAction, setActiveAction] = React.useState<\n ActionButtonWithBadgeKind | undefined\n >(getActiveAction(props.groupItem));\n const {\n expandsTo,\n overflowExpandsTo,\n panelAlignment,\n onPopupPanelOpenClose,\n } = useToolbarWithOverflowDirectionContext();\n\n React.useEffect(() => {\n const newActiveAction = getActiveAction(props.groupItem);\n if (newActiveAction) {\n if (newActiveAction.isActive) {\n setActiveAction(newActiveAction);\n } else {\n if (activeAction && activeAction.isActive) {\n setActiveAction({ ...activeAction, isActive: false });\n }\n }\n }\n }, [props.groupItem, activeAction]);\n\n const processPanelOpenClose = React.useCallback(\n (isOpening: boolean) => {\n setPanelShown((prev) => {\n if (prev !== isOpening) onPopupPanelOpenClose(isOpening);\n return isOpening;\n });\n },\n [setPanelShown, onPopupPanelOpenClose]\n );\n\n // handle open and closing popup panel\n const onOpenPanel = React.useCallback(() => {\n processPanelOpenClose(!isPanelShown);\n }, [isPanelShown, processPanelOpenClose]);\n\n // handle open and closing popup panel\n const onGroupButtonClick = React.useCallback(() => {\n // only execute action if not disabled\n activeAction &&\n !ConditionalBooleanValue.getValue(activeAction.isDisabled) &&\n activeAction.execute();\n }, [activeAction]);\n\n const icon = activeAction\n ? IconHelper.getIconReactNode(activeAction.icon, activeAction.internalData)\n : props.icon;\n const title = activeAction\n ? ConditionalStringValue.getValue(activeAction.label)\n : props.title;\n const isActive = activeAction ? activeAction.isActive : props.isActive;\n const isDisabled = ConditionalBooleanValue.getValue(\n activeAction ? activeAction.isDisabled : props.isDisabled\n );\n\n const { handlePointerDown, handleButtonClick } = useDragInteraction(\n onGroupButtonClick,\n onOpenPanel\n );\n\n const className = classnames(\n \"components-toolbar-button-item\",\n \"components-toolbar-expandable-button\",\n isActive && \"components-active\",\n isDisabled && \"components-disabled-drag\",\n props.className\n );\n\n const [targetRef, target] = useRefState<HTMLButtonElement>();\n const handleClose = React.useCallback(() => {\n processPanelOpenClose(false);\n }, [processPanelOpenClose]);\n const { hasOverflow } = useToolItemEntryContext();\n const expandsToDirection = hasOverflow ? overflowExpandsTo : expandsTo;\n\n return (\n <ToolbarPopupContext.Provider\n value={{\n closePanel: () => processPanelOpenClose(false),\n setSelectedItem: (buttonItem: ActionButton) =>\n setActiveAction(buttonItem),\n }}\n >\n <button\n data-item-id={props.itemId}\n data-item-type=\"action-tool-button\"\n data-item-group-priority={props.groupPriority}\n data-item-priority={props.itemPriority}\n data-item-provider-id={props.providerId}\n ref={targetRef}\n onPointerDown={handlePointerDown}\n onClick={handleButtonClick}\n onKeyDown={props.onKeyDown}\n className={className}\n style={props.style}\n title={title}\n >\n <div className=\"components-icon\">{icon}</div>\n {props.badge && (\n <div className=\"components-badge\">\n {activeAction ? (\n <Badge type={activeAction.badgeKind || activeAction.badgeType} />\n ) : (\n props.badge\n )}\n </div>\n )}\n <div className=\"components-triangle\" />\n </button>\n <PopupItemPopup\n isOpen={isPanelShown}\n onClose={handleClose}\n position={toToolbarPopupRelativePosition(\n expandsToDirection,\n panelAlignment\n )}\n target={target}\n >\n <PopupItemsPanel\n groupItem={props.groupItem}\n activateOnPointerUp={true}\n />\n </PopupItemPopup>\n </ToolbarPopupContext.Provider>\n );\n}\n\n/** @internal */\nexport function toToolbarPopupRelativePosition(\n expandsTo: Direction,\n alignment: ToolbarPanelAlignment\n): RelativePosition {\n switch (expandsTo) {\n case Direction.Bottom: {\n if (alignment === ToolbarPanelAlignment.End)\n return RelativePosition.BottomRight;\n return RelativePosition.BottomLeft;\n }\n case Direction.Left:\n return RelativePosition.LeftTop;\n case Direction.Right:\n return RelativePosition.RightTop;\n case Direction.Top:\n return RelativePosition.Top;\n }\n}\n"]}
@@ -2,9 +2,21 @@
2
2
  * @module Toolbar
3
3
  */
4
4
  import * as React from "react";
5
- import type { GroupButton } from "@itwin/appui-abstract";
5
+ import type { ActionButton, GroupButton } from "@itwin/appui-abstract";
6
+ import type { BadgeKind } from "@itwin/core-react";
7
+ /** Abstract group button type with new badge type. */
8
+ interface GroupButtonWithBadgeKind extends GroupButton {
9
+ badgeKind?: BadgeKind;
10
+ items: ReadonlyArray<ActionButtonWithBadgeKind | GroupButtonWithBadgeKind>;
11
+ }
12
+ /** Abstract action button type with new badge type.
13
+ * @internal
14
+ */
15
+ export interface ActionButtonWithBadgeKind extends ActionButton {
16
+ badgeKind?: BadgeKind;
17
+ }
6
18
  interface PopupItemsPanelProps {
7
- groupItem: GroupButton;
19
+ groupItem: GroupButtonWithBadgeKind;
8
20
  activateOnPointerUp?: boolean;
9
21
  }
10
22
  /** Component that displays a list of tools in a panel.
@@ -1 +1 @@
1
- {"version":3,"file":"PopupItemsPanel.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemsPanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAwBvE,UAAU,oBAAoB;IAC5B,SAAS,EAAE,WAAW,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBA+J1D"}
1
+ {"version":3,"file":"PopupItemsPanel.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemsPanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmBnD,sDAAsD;AACtD,UAAU,wBAAyB,SAAQ,WAAW;IACpD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC,yBAAyB,GAAG,wBAAwB,CAAC,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,wBAAwB,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAqK1D"}
@@ -60,6 +60,7 @@ export function PopupItemsPanel(props) {
60
60
  setGroupArray(groupArray.slice(1));
61
61
  }
62
62
  }, [groupArray]);
63
+ // eslint-disable-next-line deprecation/deprecation
63
64
  const { closePanel, setSelectedItem } = useToolbarPopupContext();
64
65
  const { onItemExecuted, onKeyDown } = useToolbarWithOverflowDirectionContext();
65
66
  const handleOnPointerUp = React.useCallback((panelItem) => {
@@ -89,9 +90,9 @@ export function PopupItemsPanel(props) {
89
90
  const icon = IconHelper.getIconReactNode(panelItem.icon, panelItem.internalData);
90
91
  const label = ConditionalStringValue.getValue(panelItem.label);
91
92
  if (ToolbarItemUtilities.isGroupButton(panelItem)) {
92
- return (React.createElement(GroupToolExpander, { isDisabled: ConditionalBooleanValue.getValue(panelItem.isDisabled), key: panelItem.id, label: label, icon: icon, badge: React.createElement(Badge, { type: panelItem.badgeType }), item: panelItem, onClick: handleGroupItemClick }));
93
+ return (React.createElement(GroupToolExpander, { isDisabled: ConditionalBooleanValue.getValue(panelItem.isDisabled), key: panelItem.id, label: label, icon: icon, badge: React.createElement(Badge, { type: panelItem.badgeKind || panelItem.badgeType }), item: panelItem, onClick: handleGroupItemClick }));
93
94
  }
94
- return (React.createElement(GroupTool, { isDisabled: ConditionalBooleanValue.getValue(panelItem.isDisabled), isActive: !!panelItem.isActive, key: panelItem.id, label: label, icon: icon, item: panelItem, onClick: handleActionItemClick, onPointerUp: handleOnPointerUp, badge: React.createElement(Badge, { type: panelItem.badgeType }) }));
95
+ return (React.createElement(GroupTool, { isDisabled: ConditionalBooleanValue.getValue(panelItem.isDisabled), isActive: !!panelItem.isActive, key: panelItem.id, label: label, icon: icon, item: panelItem, onClick: handleActionItemClick, onPointerUp: handleOnPointerUp, badge: React.createElement(Badge, { type: panelItem.badgeKind || panelItem.badgeType }) }));
95
96
  })))), [
96
97
  columnToItems,
97
98
  handleActionItemClick,
@@ -1 +1 @@
1
- {"version":3,"file":"PopupItemsPanel.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemsPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ActionButton, GroupButton } from \"@itwin/appui-abstract\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport { Badge, IconHelper } from \"@itwin/core-react\";\nimport { BackArrow } from \"./groupPanel/BackArrow\";\nimport { GroupColumn } from \"./groupPanel/Column\";\nimport { Columns } from \"./groupPanel/Columns\";\nimport { Panel } from \"./groupPanel/Panel\";\nimport { Title } from \"./groupPanel/Title\";\nimport { GroupToolExpander } from \"./groupPanel/tool/Expander\";\nimport { GroupTool } from \"./groupPanel/tool/Tool\";\nimport { useToolbarPopupContext } from \"./PopupItem\";\nimport { useToolbarWithOverflowDirectionContext } from \"./InternalToolbarComponent\";\n\nfunction getNumItemsInColumn(numTotalItems: number): number {\n if (numTotalItems <= 6) return numTotalItems;\n if (numTotalItems <= 24) return Math.ceil(numTotalItems / 2);\n if (numTotalItems <= 36) return Math.ceil(numTotalItems / 3);\n return Math.ceil(numTotalItems / 4);\n}\n\ninterface PopupItemsPanelProps {\n groupItem: GroupButton;\n activateOnPointerUp?: boolean;\n}\n\n/** Component that displays a list of tools in a panel.\n * @internal future\n */\nexport function PopupItemsPanel(props: PopupItemsPanelProps) {\n const [groupArray, setGroupArray] = React.useState([props.groupItem]);\n const activeGroup = React.useMemo(() => groupArray[0], [groupArray]);\n const items = React.useMemo(() => activeGroup.items, [activeGroup]);\n\n const preferredNumItemsInColumn = getNumItemsInColumn(items.length);\n\n // Divide items equally between columns.\n const numberOfColumns = Math.ceil(items.length / preferredNumItemsInColumn);\n const numItemsPerColumn = Math.ceil(items.length / numberOfColumns);\n\n const columnToItems = React.useMemo(\n () =>\n items.reduce<ReadonlyArray<ReadonlyArray<GroupButton | ActionButton>>>(\n (acc, item, index) => {\n const columnIndex = Math.floor(index / numItemsPerColumn);\n if (columnIndex >= acc.length) {\n return [...acc, [item]];\n }\n return [\n ...acc.slice(0, columnIndex),\n [...acc[columnIndex], item],\n ...acc.slice(columnIndex + 1),\n ];\n },\n []\n ),\n [items, numItemsPerColumn]\n );\n\n const handleGroupItemClick = React.useCallback(\n (item: GroupButton | ActionButton) => {\n if (ToolbarItemUtilities.isGroupButton(item)) {\n // push group to front of array\n setGroupArray([item, ...groupArray]);\n }\n },\n [groupArray]\n );\n\n const handleBackArrowClick = React.useCallback(() => {\n if (groupArray.length > 1) {\n setGroupArray(groupArray.slice(1));\n }\n }, [groupArray]);\n\n const { closePanel, setSelectedItem } = useToolbarPopupContext();\n const { onItemExecuted, onKeyDown } =\n useToolbarWithOverflowDirectionContext();\n\n const handleOnPointerUp = React.useCallback(\n (panelItem: GroupButton | ActionButton) => {\n if (ToolbarItemUtilities.isActionButton(panelItem)) {\n props.activateOnPointerUp &&\n setSelectedItem &&\n setSelectedItem(panelItem);\n props.activateOnPointerUp && panelItem.execute();\n onItemExecuted(panelItem);\n props.activateOnPointerUp && closePanel();\n }\n },\n [props.activateOnPointerUp, setSelectedItem, closePanel, onItemExecuted]\n );\n\n const handleActionItemClick = React.useCallback(\n (panelItem: GroupButton | ActionButton) => {\n if (ToolbarItemUtilities.isActionButton(panelItem)) {\n setSelectedItem && setSelectedItem(panelItem);\n panelItem.execute();\n onItemExecuted(panelItem);\n closePanel();\n }\n },\n [setSelectedItem, closePanel, onItemExecuted]\n );\n\n const handleOnKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n onKeyDown(e);\n },\n [onKeyDown]\n );\n\n // build n-number of columns\n const columns = React.useMemo(\n () =>\n columnToItems.map((columnItems, columnIndex) => (\n <GroupColumn key={columnIndex}>\n {columnItems.map((panelItem) => {\n // eslint-disable-next-line deprecation/deprecation\n const icon = IconHelper.getIconReactNode(\n panelItem.icon,\n panelItem.internalData\n );\n const label = ConditionalStringValue.getValue(panelItem.label);\n if (ToolbarItemUtilities.isGroupButton(panelItem)) {\n return (\n <GroupToolExpander\n isDisabled={ConditionalBooleanValue.getValue(\n panelItem.isDisabled\n )}\n key={panelItem.id}\n label={label}\n icon={icon}\n badge={<Badge type={panelItem.badgeType} />}\n item={panelItem}\n onClick={handleGroupItemClick}\n />\n );\n }\n\n return (\n <GroupTool\n isDisabled={ConditionalBooleanValue.getValue(\n panelItem.isDisabled\n )}\n isActive={!!panelItem.isActive}\n key={panelItem.id}\n label={label}\n icon={icon}\n item={panelItem}\n onClick={handleActionItemClick}\n onPointerUp={handleOnPointerUp}\n badge={<Badge type={panelItem.badgeType} />}\n />\n );\n })}\n </GroupColumn>\n )),\n [\n columnToItems,\n handleActionItemClick,\n handleGroupItemClick,\n handleOnPointerUp,\n ]\n );\n\n // ensure we have a panel title for nested groups\n const titleString = activeGroup.panelLabel\n ? activeGroup.panelLabel\n : activeGroup.label;\n const panelTitle = React.useMemo(\n () => ConditionalStringValue.getValue(titleString),\n [titleString]\n );\n const className = classnames(\n 1 === groupArray.length && \"components-toolbar-item-expandable-group-group\",\n groupArray.length > 1 && \"components-toolbar-item-expandable-group-nested\"\n );\n\n return (\n <Panel className={className} onKeyDown={handleOnKeyDown}>\n {groupArray.length > 1 && (\n <BackArrow className=\"components-back\" onClick={handleBackArrowClick} />\n )}\n {panelTitle && <Title>{panelTitle}</Title>}\n {columns && <Columns>{columns}</Columns>}\n </Panel>\n );\n}\n"]}
1
+ {"version":3,"file":"PopupItemsPanel.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/PopupItemsPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ActionButton, GroupButton } from \"@itwin/appui-abstract\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport type { BadgeKind } from \"@itwin/core-react\";\nimport { Badge, IconHelper } from \"@itwin/core-react\";\nimport { BackArrow } from \"./groupPanel/BackArrow\";\nimport { GroupColumn } from \"./groupPanel/Column\";\nimport { Columns } from \"./groupPanel/Columns\";\nimport { Panel } from \"./groupPanel/Panel\";\nimport { Title } from \"./groupPanel/Title\";\nimport { GroupToolExpander } from \"./groupPanel/tool/Expander\";\nimport { GroupTool } from \"./groupPanel/tool/Tool\";\nimport { useToolbarPopupContext } from \"./PopupItem\";\nimport { useToolbarWithOverflowDirectionContext } from \"./InternalToolbarComponent\";\n\nfunction getNumItemsInColumn(numTotalItems: number): number {\n if (numTotalItems <= 6) return numTotalItems;\n if (numTotalItems <= 24) return Math.ceil(numTotalItems / 2);\n if (numTotalItems <= 36) return Math.ceil(numTotalItems / 3);\n return Math.ceil(numTotalItems / 4);\n}\n\n/** Abstract group button type with new badge type. */\ninterface GroupButtonWithBadgeKind extends GroupButton {\n badgeKind?: BadgeKind;\n items: ReadonlyArray<ActionButtonWithBadgeKind | GroupButtonWithBadgeKind>;\n}\n\n/** Abstract action button type with new badge type.\n * @internal\n */\nexport interface ActionButtonWithBadgeKind extends ActionButton {\n badgeKind?: BadgeKind;\n}\n\ninterface PopupItemsPanelProps {\n groupItem: GroupButtonWithBadgeKind;\n activateOnPointerUp?: boolean;\n}\n\n/** Component that displays a list of tools in a panel.\n * @internal future\n */\nexport function PopupItemsPanel(props: PopupItemsPanelProps) {\n const [groupArray, setGroupArray] = React.useState([props.groupItem]);\n const activeGroup = React.useMemo(() => groupArray[0], [groupArray]);\n const items = React.useMemo(() => activeGroup.items, [activeGroup]);\n\n const preferredNumItemsInColumn = getNumItemsInColumn(items.length);\n\n // Divide items equally between columns.\n const numberOfColumns = Math.ceil(items.length / preferredNumItemsInColumn);\n const numItemsPerColumn = Math.ceil(items.length / numberOfColumns);\n\n const columnToItems = React.useMemo(\n () =>\n items.reduce<\n ReadonlyArray<\n ReadonlyArray<GroupButtonWithBadgeKind | ActionButtonWithBadgeKind>\n >\n >((acc, item, index) => {\n const columnIndex = Math.floor(index / numItemsPerColumn);\n if (columnIndex >= acc.length) {\n return [...acc, [item]];\n }\n return [\n ...acc.slice(0, columnIndex),\n [...acc[columnIndex], item],\n ...acc.slice(columnIndex + 1),\n ];\n }, []),\n [items, numItemsPerColumn]\n );\n\n const handleGroupItemClick = React.useCallback(\n (item: GroupButton | ActionButton) => {\n if (ToolbarItemUtilities.isGroupButton(item)) {\n // push group to front of array\n setGroupArray([item, ...groupArray]);\n }\n },\n [groupArray]\n );\n\n const handleBackArrowClick = React.useCallback(() => {\n if (groupArray.length > 1) {\n setGroupArray(groupArray.slice(1));\n }\n }, [groupArray]);\n\n // eslint-disable-next-line deprecation/deprecation\n const { closePanel, setSelectedItem } = useToolbarPopupContext();\n const { onItemExecuted, onKeyDown } =\n useToolbarWithOverflowDirectionContext();\n\n const handleOnPointerUp = React.useCallback(\n (panelItem: GroupButton | ActionButton) => {\n if (ToolbarItemUtilities.isActionButton(panelItem)) {\n props.activateOnPointerUp &&\n setSelectedItem &&\n setSelectedItem(panelItem);\n props.activateOnPointerUp && panelItem.execute();\n onItemExecuted(panelItem);\n props.activateOnPointerUp && closePanel();\n }\n },\n [props.activateOnPointerUp, setSelectedItem, closePanel, onItemExecuted]\n );\n\n const handleActionItemClick = React.useCallback(\n (panelItem: GroupButton | ActionButton) => {\n if (ToolbarItemUtilities.isActionButton(panelItem)) {\n setSelectedItem && setSelectedItem(panelItem);\n panelItem.execute();\n onItemExecuted(panelItem);\n closePanel();\n }\n },\n [setSelectedItem, closePanel, onItemExecuted]\n );\n\n const handleOnKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n onKeyDown(e);\n },\n [onKeyDown]\n );\n\n // build n-number of columns\n const columns = React.useMemo(\n () =>\n columnToItems.map((columnItems, columnIndex) => (\n <GroupColumn key={columnIndex}>\n {columnItems.map((panelItem) => {\n // eslint-disable-next-line deprecation/deprecation\n const icon = IconHelper.getIconReactNode(\n panelItem.icon,\n panelItem.internalData\n );\n const label = ConditionalStringValue.getValue(panelItem.label);\n if (ToolbarItemUtilities.isGroupButton(panelItem)) {\n return (\n <GroupToolExpander\n isDisabled={ConditionalBooleanValue.getValue(\n panelItem.isDisabled\n )}\n key={panelItem.id}\n label={label}\n icon={icon}\n badge={\n <Badge type={panelItem.badgeKind || panelItem.badgeType} />\n }\n item={panelItem}\n onClick={handleGroupItemClick}\n />\n );\n }\n\n return (\n <GroupTool\n isDisabled={ConditionalBooleanValue.getValue(\n panelItem.isDisabled\n )}\n isActive={!!panelItem.isActive}\n key={panelItem.id}\n label={label}\n icon={icon}\n item={panelItem}\n onClick={handleActionItemClick}\n onPointerUp={handleOnPointerUp}\n badge={\n <Badge type={panelItem.badgeKind || panelItem.badgeType} />\n }\n />\n );\n })}\n </GroupColumn>\n )),\n [\n columnToItems,\n handleActionItemClick,\n handleGroupItemClick,\n handleOnPointerUp,\n ]\n );\n\n // ensure we have a panel title for nested groups\n const titleString = activeGroup.panelLabel\n ? activeGroup.panelLabel\n : activeGroup.label;\n const panelTitle = React.useMemo(\n () => ConditionalStringValue.getValue(titleString),\n [titleString]\n );\n const className = classnames(\n 1 === groupArray.length && \"components-toolbar-item-expandable-group-group\",\n groupArray.length > 1 && \"components-toolbar-item-expandable-group-nested\"\n );\n\n return (\n <Panel className={className} onKeyDown={handleOnKeyDown}>\n {groupArray.length > 1 && (\n <BackArrow className=\"components-back\" onClick={handleBackArrowClick} />\n )}\n {panelTitle && <Title>{panelTitle}</Title>}\n {columns && <Columns>{columns}</Columns>}\n </Panel>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useConditionalSynchedItems.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useConditionalSynchedItems.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA8EnD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,EACtE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,KAAK,IAAI,CAAC,gBAyB5E"}
1
+ {"version":3,"file":"useConditionalSynchedItems.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useConditionalSynchedItems.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAiFnD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,EACtE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,KAAK,IAAI,CAAC,gBAyB5E"}
@@ -19,6 +19,7 @@ function gatherSyncIds(eventIds, items) {
19
19
  }
20
20
  else if (entry instanceof ConditionalStringValue) {
21
21
  entry.syncEventIds.forEach((eventId) => eventIds.add(eventId.toLowerCase()));
22
+ // eslint-disable-next-line deprecation/deprecation
22
23
  }
23
24
  else if (entry instanceof ConditionalIconItem) {
24
25
  entry.syncEventIds.forEach((eventId) => eventIds.add(eventId.toLowerCase()));
@@ -55,7 +56,9 @@ function refreshItems(items, eventIds) {
55
56
  ConditionalBooleanValue.refreshValue(entry, eventIds)) ||
56
57
  (entry instanceof ConditionalStringValue &&
57
58
  ConditionalStringValue.refreshValue(entry, eventIds)) ||
59
+ // eslint-disable-next-line deprecation/deprecation
58
60
  (entry instanceof ConditionalIconItem &&
61
+ // eslint-disable-next-line deprecation/deprecation
59
62
  ConditionalIconItem.refreshValue(entry, eventIds))) {
60
63
  itemsUpdated = true;
61
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useConditionalSynchedItems.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useConditionalSynchedItems.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,SAAS,aAAa,CACpB,QAAqB,EACrB,KAAmB;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;gBAC7C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACpC,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;gBACnD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACpC,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBAChD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACpC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,KAAmB,EACnB,QAAqB;IAErB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,YAAY,GAAQ,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7D,WAAW,GAAG;gBACZ,GAAG,WAAW;gBACd,KAAK,EAAE,UAAU,IAAI,WAAW,CAAC,KAAK;aACvC,CAAC;YACF,YAAY,KAAK,CAAC,CAAC,UAAU,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACpD,IACE,CAAC,KAAK,YAAY,uBAAuB;gBACvC,uBAAuB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACxD,CAAC,KAAK,YAAY,sBAAsB;oBACtC,sBAAsB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACvD,CAAC,KAAK,YAAY,mBAAmB;oBACnC,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EACpD,CAAC;gBACD,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAmB,EACnB,WAA2E;IAE3E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAE9D,EAAE,CAAC,CAAC;IACN,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,oBAAoB,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,iBAAiB,CAAC,MAAM;gBAAE,OAAO;YAE3C,IACE,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACvC,EACD,CAAC;gBACD,oBAAoB,CAClB,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACzB,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { ConditionalIconItem } from \"@itwin/core-react\";\nimport * as React from \"react\";\n\n/**\n * From a list of ToolbarItem, recursively return the list of syncIds\n * that are relevant to every Conditional members used in the items.\n * @param eventIds Set to fill with syncIds\n * @param items ToolbarItems list to search through\n */\nfunction gatherSyncIds<T extends {} | { items: T[] }>(\n eventIds: Set<string>,\n items: readonly T[]\n) {\n for (const item of items) {\n for (const [, entry] of Object.entries(item)) {\n if (entry instanceof ConditionalBooleanValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } else if (entry instanceof ConditionalStringValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } else if (entry instanceof ConditionalIconItem) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n }\n }\n if (\"items\" in item) {\n gatherSyncIds(eventIds, item.items);\n }\n }\n}\n\n/**\n * Refresh all conditional values interested by the provided eventIds.\n * @param items List of ToolbarItems that may content Conditional properties.\n * @param eventIds Set of triggered eventIds.\n * @returns null if no updates occurred, or the provided items with updated values if ANY were updated.\n */\nfunction refreshItems<T extends {} | { items: T[] }>(\n items: readonly T[],\n eventIds: Set<string>\n): T[] | null {\n if (0 === eventIds.size) return null;\n let itemsUpdated = false;\n const updatedItems: T[] = [];\n\n for (const item of items) {\n let updatedItem = { ...item };\n if (\"items\" in updatedItem) {\n const childItems = refreshItems(updatedItem.items, eventIds);\n updatedItem = {\n ...updatedItem,\n items: childItems ?? updatedItem.items,\n };\n itemsUpdated ||= !!childItems;\n }\n\n for (const [, entry] of Object.entries(updatedItem)) {\n if (\n (entry instanceof ConditionalBooleanValue &&\n ConditionalBooleanValue.refreshValue(entry, eventIds)) ||\n (entry instanceof ConditionalStringValue &&\n ConditionalStringValue.refreshValue(entry, eventIds)) ||\n (entry instanceof ConditionalIconItem &&\n ConditionalIconItem.refreshValue(entry, eventIds))\n ) {\n itemsUpdated = true;\n }\n }\n updatedItems.push(updatedItem);\n }\n return itemsUpdated ? updatedItems : null;\n}\n\n/**\n * Register a listener on the syncUiEVent and updates all conditionals within the provided items.\n * @param items Items to keep up to date\n * @param syncUiEvent Event to attach to (because we don't depend on appui-react);\n * @returns Synched items\n * @internal\n */\nexport function useConditionalSynchedItems<T extends {} | { items: T[] }>(\n items: readonly T[],\n syncUiEvent: undefined | BeEvent<(args: { eventIds: Set<string> }) => void>\n) {\n const [eventSynchedItems, setEventSynchedItems] = React.useState<\n readonly T[]\n >([]);\n React.useEffect(() => {\n const ids = new Set<string>();\n gatherSyncIds(ids, items);\n setEventSynchedItems(refreshItems(items, ids) ?? items);\n const syncIdsOfInterest = [...ids.values()];\n return syncUiEvent?.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n setEventSynchedItems(\n (current) => refreshItems(current, args.eventIds) ?? current\n );\n }\n });\n }, [syncUiEvent, items]);\n return eventSynchedItems;\n}\n"]}
1
+ {"version":3,"file":"useConditionalSynchedItems.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useConditionalSynchedItems.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { ConditionalIconItem } from \"@itwin/core-react\";\nimport * as React from \"react\";\n\n/**\n * From a list of ToolbarItem, recursively return the list of syncIds\n * that are relevant to every Conditional members used in the items.\n * @param eventIds Set to fill with syncIds\n * @param items ToolbarItems list to search through\n */\nfunction gatherSyncIds<T extends {} | { items: T[] }>(\n eventIds: Set<string>,\n items: readonly T[]\n) {\n for (const item of items) {\n for (const [, entry] of Object.entries(item)) {\n if (entry instanceof ConditionalBooleanValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } else if (entry instanceof ConditionalStringValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n // eslint-disable-next-line deprecation/deprecation\n } else if (entry instanceof ConditionalIconItem) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n }\n }\n if (\"items\" in item) {\n gatherSyncIds(eventIds, item.items);\n }\n }\n}\n\n/**\n * Refresh all conditional values interested by the provided eventIds.\n * @param items List of ToolbarItems that may content Conditional properties.\n * @param eventIds Set of triggered eventIds.\n * @returns null if no updates occurred, or the provided items with updated values if ANY were updated.\n */\nfunction refreshItems<T extends {} | { items: T[] }>(\n items: readonly T[],\n eventIds: Set<string>\n): T[] | null {\n if (0 === eventIds.size) return null;\n let itemsUpdated = false;\n const updatedItems: T[] = [];\n\n for (const item of items) {\n let updatedItem = { ...item };\n if (\"items\" in updatedItem) {\n const childItems = refreshItems(updatedItem.items, eventIds);\n updatedItem = {\n ...updatedItem,\n items: childItems ?? updatedItem.items,\n };\n itemsUpdated ||= !!childItems;\n }\n\n for (const [, entry] of Object.entries(updatedItem)) {\n if (\n (entry instanceof ConditionalBooleanValue &&\n ConditionalBooleanValue.refreshValue(entry, eventIds)) ||\n (entry instanceof ConditionalStringValue &&\n ConditionalStringValue.refreshValue(entry, eventIds)) ||\n // eslint-disable-next-line deprecation/deprecation\n (entry instanceof ConditionalIconItem &&\n // eslint-disable-next-line deprecation/deprecation\n ConditionalIconItem.refreshValue(entry, eventIds))\n ) {\n itemsUpdated = true;\n }\n }\n updatedItems.push(updatedItem);\n }\n return itemsUpdated ? updatedItems : null;\n}\n\n/**\n * Register a listener on the syncUiEVent and updates all conditionals within the provided items.\n * @param items Items to keep up to date\n * @param syncUiEvent Event to attach to (because we don't depend on appui-react);\n * @returns Synched items\n * @internal\n */\nexport function useConditionalSynchedItems<T extends {} | { items: T[] }>(\n items: readonly T[],\n syncUiEvent: undefined | BeEvent<(args: { eventIds: Set<string> }) => void>\n) {\n const [eventSynchedItems, setEventSynchedItems] = React.useState<\n readonly T[]\n >([]);\n React.useEffect(() => {\n const ids = new Set<string>();\n gatherSyncIds(ids, items);\n setEventSynchedItems(refreshItems(items, ids) ?? items);\n const syncIdsOfInterest = [...ids.values()];\n return syncUiEvent?.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n setEventSynchedItems(\n (current) => refreshItems(current, args.eventIds) ?? current\n );\n }\n });\n }, [syncUiEvent, items]);\n return eventSynchedItems;\n}\n"]}
@@ -2,9 +2,9 @@
2
2
  * @module Tree
3
3
  */
4
4
  import type { PropertyRecord } from "@itwin/appui-abstract";
5
- import type { CheckBoxState } from "@itwin/core-react";
6
5
  import type { PageOptions } from "../common/PageOptions";
7
6
  import type { ItemStyle } from "../properties/ItemStyle";
7
+ import type { CheckBoxState } from "../common/CheckBoxState";
8
8
  /**
9
9
  * A node item which can be displayed in a tree.
10
10
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"TreeDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;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,MAAM,MAAM,mBAAmB,GAAG,6BAA6B,EAAE,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,CAAC,EAAE,YAAY,KAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CACN,MAAM,CAAC,EAAE,YAAY,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,qBAAqB,aACtB,gBAAgB,oCAG3B,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAC1B,gBAAgB,wCAG3B,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,wBAAwB,aACzB,gBAAgB,uCAG3B,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,2BAA2B,aAC5B,gBAAgB,kCAM3B,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SAAU,YAAY,YAW7C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D"}
1
+ {"version":3,"file":"TreeDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;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,MAAM,MAAM,mBAAmB,GAAG,6BAA6B,EAAE,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,CAAC,EAAE,YAAY,KAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CACN,MAAM,CAAC,EAAE,YAAY,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,qBAAqB,aACtB,gBAAgB,oCAG3B,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAC1B,gBAAgB,wCAG3B,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,wBAAwB,aACzB,gBAAgB,uCAG3B,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,2BAA2B,aAC5B,gBAAgB,kCAM3B,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SAAU,YAAY,YAW7C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAkFH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAA0B,EACO,EAAE;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAA0B,EACW,EAAE;IACvC,OAAO,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,QAA0B,EACU,EAAE;IACtC,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,QAA0B,EACK,EAAE;IACjC,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,CACL,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAC1E,CAAC;AACJ,CAAC,CAAC;AACF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IACE,UAAU,IAAI,eAAe;QAC7B,eAAe,CAAC,QAAQ;QACxB,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { PropertyRecord } from \"@itwin/appui-abstract\";\nimport type { CheckBoxState } from \"@itwin/core-react\";\nimport type { PageOptions } from \"../common/PageOptions\";\nimport type { ItemStyle } from \"../properties/ItemStyle\";\n\n/**\n * A node item which can be displayed in a tree.\n * @public\n */\nexport interface TreeNodeItem {\n id: string;\n parentId?: string;\n label: PropertyRecord;\n description?: string;\n autoExpand?: boolean;\n icon?: string;\n isSelectionDisabled?: boolean;\n isCheckboxVisible?: boolean;\n isCheckboxDisabled?: boolean;\n checkBoxState?: CheckBoxState;\n isEditable?: boolean;\n style?: ItemStyle;\n /**\n * A key-value pairs data structure that can be used by data provider\n * to store some custom data for this node item.\n */\n extendedData?: { [key: string]: any };\n}\n\n/** A [[TreeNodeItem]] for immediately loaded trees\n * @public\n */\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\n children?: TreeNodeItem[];\n}\n\n/** A [[TreeNodeItem]] for delay-loaded trees\n * @public\n */\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\n hasChildren?: boolean;\n}\n\n/** Array of tree node data elements\n * @public\n */\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\n\n/** A Promise for TreeDataProviderRaw\n * @public\n */\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\n\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\n * @public\n */\nexport type TreeDataProviderMethod = (\n node?: TreeNodeItem\n) => Promise<DelayLoadedTreeNodeItem[]>;\n\n/** Interface for a tree data provider class\n * @public\n */\nexport interface ITreeDataProvider {\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\n getNodes(\n parent?: TreeNodeItem,\n page?: PageOptions\n ): Promise<DelayLoadedTreeNodeItem[]>;\n}\n\n/** Type definition for all Tree data providers\n * @public\n */\nexport type TreeDataProvider =\n | TreeDataProviderRaw\n | TreeDataProviderPromise\n | TreeDataProviderMethod\n | ITreeDataProvider;\n\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\n * @public\n */\nexport const isTreeDataProviderRaw = (\n provider: TreeDataProvider\n): provider is TreeDataProviderRaw => {\n return Array.isArray(provider);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\n * @public\n */\nexport const isTreeDataProviderPromise = (\n provider: TreeDataProvider\n): provider is TreeDataProviderPromise => {\n return undefined !== (provider as TreeDataProviderPromise).then;\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\n * @public\n */\nexport const isTreeDataProviderMethod = (\n provider: TreeDataProvider\n): provider is TreeDataProviderMethod => {\n return typeof provider === \"function\";\n};\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\n * @public\n */\nexport const isTreeDataProviderInterface = (\n provider: TreeDataProvider\n): provider is ITreeDataProvider => {\n const candidate = provider as ITreeDataProvider;\n return (\n undefined !== candidate.getNodes && undefined !== candidate.getNodesCount\n );\n};\n/**\n * Determines whether node has children\n * @param node node to check\n * @returns whether node has children\n * @public\n */\nexport const hasChildren = (node: TreeNodeItem) => {\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\n if (\n \"children\" in nodeAsImmediate &&\n nodeAsImmediate.children &&\n nodeAsImmediate.children.length > 0\n )\n return true;\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren) return true;\n return false;\n};\n\n/**\n * EditableTreeDataProvider provides cell editing processing for the Tree.\n * @public\n */\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\n}\n"]}
1
+ {"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAkFH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAA0B,EACO,EAAE;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAA0B,EACW,EAAE;IACvC,OAAO,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,QAA0B,EACU,EAAE;IACtC,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,QAA0B,EACK,EAAE;IACjC,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,CACL,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAC1E,CAAC;AACJ,CAAC,CAAC;AACF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IACE,UAAU,IAAI,eAAe;QAC7B,eAAe,CAAC,QAAQ;QACxB,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { PropertyRecord } from \"@itwin/appui-abstract\";\nimport type { PageOptions } from \"../common/PageOptions\";\nimport type { ItemStyle } from \"../properties/ItemStyle\";\nimport type { CheckBoxState } from \"../common/CheckBoxState\";\n\n/**\n * A node item which can be displayed in a tree.\n * @public\n */\nexport interface TreeNodeItem {\n id: string;\n parentId?: string;\n label: PropertyRecord;\n description?: string;\n autoExpand?: boolean;\n icon?: string;\n isSelectionDisabled?: boolean;\n isCheckboxVisible?: boolean;\n isCheckboxDisabled?: boolean;\n checkBoxState?: CheckBoxState;\n isEditable?: boolean;\n style?: ItemStyle;\n /**\n * A key-value pairs data structure that can be used by data provider\n * to store some custom data for this node item.\n */\n extendedData?: { [key: string]: any };\n}\n\n/** A [[TreeNodeItem]] for immediately loaded trees\n * @public\n */\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\n children?: TreeNodeItem[];\n}\n\n/** A [[TreeNodeItem]] for delay-loaded trees\n * @public\n */\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\n hasChildren?: boolean;\n}\n\n/** Array of tree node data elements\n * @public\n */\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\n\n/** A Promise for TreeDataProviderRaw\n * @public\n */\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\n\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\n * @public\n */\nexport type TreeDataProviderMethod = (\n node?: TreeNodeItem\n) => Promise<DelayLoadedTreeNodeItem[]>;\n\n/** Interface for a tree data provider class\n * @public\n */\nexport interface ITreeDataProvider {\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\n getNodes(\n parent?: TreeNodeItem,\n page?: PageOptions\n ): Promise<DelayLoadedTreeNodeItem[]>;\n}\n\n/** Type definition for all Tree data providers\n * @public\n */\nexport type TreeDataProvider =\n | TreeDataProviderRaw\n | TreeDataProviderPromise\n | TreeDataProviderMethod\n | ITreeDataProvider;\n\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\n * @public\n */\nexport const isTreeDataProviderRaw = (\n provider: TreeDataProvider\n): provider is TreeDataProviderRaw => {\n return Array.isArray(provider);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\n * @public\n */\nexport const isTreeDataProviderPromise = (\n provider: TreeDataProvider\n): provider is TreeDataProviderPromise => {\n return undefined !== (provider as TreeDataProviderPromise).then;\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\n * @public\n */\nexport const isTreeDataProviderMethod = (\n provider: TreeDataProvider\n): provider is TreeDataProviderMethod => {\n return typeof provider === \"function\";\n};\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\n * @public\n */\nexport const isTreeDataProviderInterface = (\n provider: TreeDataProvider\n): provider is ITreeDataProvider => {\n const candidate = provider as ITreeDataProvider;\n return (\n undefined !== candidate.getNodes && undefined !== candidate.getNodesCount\n );\n};\n/**\n * Determines whether node has children\n * @param node node to check\n * @returns whether node has children\n * @public\n */\nexport const hasChildren = (node: TreeNodeItem) => {\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\n if (\n \"children\" in nodeAsImmediate &&\n nodeAsImmediate.children &&\n nodeAsImmediate.children.length > 0\n )\n return true;\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren) return true;\n return false;\n};\n\n/**\n * EditableTreeDataProvider provides cell editing processing for the Tree.\n * @public\n */\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Tree
3
3
  */
4
- import type { CheckBoxState } from "@itwin/core-react";
4
+ import type { CheckBoxState } from "../../common/CheckBoxState";
5
5
  /**
6
6
  * Tree actions that can be performed on tree.
7
7
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"TreeActions.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACzE,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CACnD"}
1
+ {"version":3,"file":"TreeActions.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACzE,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { CheckBoxState } from \"@itwin/core-react\";\n\n/**\n * Tree actions that can be performed on tree.\n * @public\n */\nexport interface TreeActions {\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\n onNodeExpanded: (nodeId: string) => void;\n onNodeCollapsed: (nodeId: string) => void;\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\n onNodeMouseDown: (nodeId: string) => void;\n onNodeMouseMove: (nodeId: string) => void;\n onNodeEditorActivated: (nodeId: string) => void;\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\n}\n"]}
1
+ {"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { CheckBoxState } from \"../../common/CheckBoxState\";\n\n/**\n * Tree actions that can be performed on tree.\n * @public\n */\nexport interface TreeActions {\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\n onNodeExpanded: (nodeId: string) => void;\n onNodeCollapsed: (nodeId: string) => void;\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\n onNodeMouseDown: (nodeId: string) => void;\n onNodeMouseMove: (nodeId: string) => void;\n onNodeEditorActivated: (nodeId: string) => void;\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  /** @packageDocumentation
2
2
  * @module Tree
3
3
  */
4
- import type { CheckBoxState } from "@itwin/core-react";
5
4
  import type { SelectionMode } from "../../common/selection/SelectionModes";
6
5
  import type { TreeActions } from "./TreeActions";
7
6
  import type { TreeEvents } from "./TreeEvents";
8
7
  import type { VisibleTreeNodes } from "./TreeModel";
9
8
  import type { ITreeNodeLoader } from "./TreeNodeLoader";
9
+ import type { CheckBoxState } from "../../common/CheckBoxState";
10
10
  /**
11
11
  * Default event dispatcher that emits tree events according performed actions.
12
12
  * It converts low level tree events into TreeEvents.
@@ -1 +1 @@
1
- {"version":3,"file":"TreeEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAU3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,iBAAiB,CAKrB;gBAGF,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,eAAe,EAC3B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,MAAM,gBAAgB;IAgFlC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAqC7D,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,eAAe,CAAC,MAAM,EAAE,MAAM;IAK9B,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;IAuBvC,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,qBAAqB,CAAC,MAAM,EAAE,MAAM;IAapC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAI/C,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAIpD,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAE,mBAAmB;IA4B5B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAexC"}
1
+ {"version":3,"file":"TreeEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAU3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,iBAAiB,CAKrB;gBAGF,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,eAAe,EAC3B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,MAAM,gBAAgB;IAgFlC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAqC7D,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,eAAe,CAAC,MAAM,EAAE,MAAM;IAK9B,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;IAuBvC,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,qBAAqB,CAAC,MAAM,EAAE,MAAM;IAapC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAI/C,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAIpD,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAE,mBAAmB;IA4B5B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAexC"}