@itwin/components-react 4.13.3 → 4.14.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 (402) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/lib/cjs/components-react/common/ImageRenderer.d.ts.map +1 -1
  3. package/lib/cjs/components-react/common/ImageRenderer.js +0 -4
  4. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  5. package/lib/cjs/components-react/common/Links.d.ts.map +1 -1
  6. package/lib/cjs/components-react/common/Links.js +0 -7
  7. package/lib/cjs/components-react/common/Links.js.map +1 -1
  8. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.d.ts.map +1 -1
  9. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js +0 -1
  10. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  11. package/lib/cjs/components-react/common/UseElementsScrollStorage.d.ts.map +1 -1
  12. package/lib/cjs/components-react/common/UseElementsScrollStorage.js +0 -1
  13. package/lib/cjs/components-react/common/UseElementsScrollStorage.js.map +1 -1
  14. package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
  15. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js +0 -13
  16. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  17. package/lib/cjs/components-react/converters/TypeConverterManager.d.ts.map +1 -1
  18. package/lib/cjs/components-react/converters/TypeConverterManager.js +0 -1
  19. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  20. package/lib/cjs/components-react/datepicker/DateField.d.ts.map +1 -1
  21. package/lib/cjs/components-react/datepicker/DateField.js +1 -8
  22. package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
  23. package/lib/cjs/components-react/datepicker/DatePicker.d.ts.map +1 -1
  24. package/lib/cjs/components-react/datepicker/DatePicker.js +0 -2
  25. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  26. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
  27. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js +0 -1
  28. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  29. package/lib/cjs/components-react/datepicker/TimeField.d.ts.map +1 -1
  30. package/lib/cjs/components-react/datepicker/TimeField.js +0 -9
  31. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  32. package/lib/cjs/components-react/editors/BooleanEditor.d.ts.map +1 -1
  33. package/lib/cjs/components-react/editors/BooleanEditor.js +0 -8
  34. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  35. package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
  36. package/lib/cjs/components-react/editors/CustomNumberEditor.js +7 -25
  37. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  38. package/lib/cjs/components-react/editors/DateTimeEditor.d.ts.map +1 -1
  39. package/lib/cjs/components-react/editors/DateTimeEditor.js +0 -21
  40. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  41. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
  42. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js +1 -14
  43. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  44. package/lib/cjs/components-react/editors/EnumEditor.d.ts.map +1 -1
  45. package/lib/cjs/components-react/editors/EnumEditor.js +1 -13
  46. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  47. package/lib/cjs/components-react/editors/IconEditor.d.ts.map +1 -1
  48. package/lib/cjs/components-react/editors/IconEditor.js +0 -9
  49. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  50. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  51. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js +0 -6
  52. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  53. package/lib/cjs/components-react/editors/NumericInputEditor.d.ts.map +1 -1
  54. package/lib/cjs/components-react/editors/NumericInputEditor.js +1 -10
  55. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  56. package/lib/cjs/components-react/editors/PopupButton.d.ts.map +1 -1
  57. package/lib/cjs/components-react/editors/PopupButton.js +0 -2
  58. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  59. package/lib/cjs/components-react/editors/PropertyEditorManager.d.ts.map +1 -1
  60. package/lib/cjs/components-react/editors/PropertyEditorManager.js +0 -1
  61. package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
  62. package/lib/cjs/components-react/editors/SliderEditor.d.ts.map +1 -1
  63. package/lib/cjs/components-react/editors/SliderEditor.js +0 -10
  64. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  65. package/lib/cjs/components-react/editors/TextEditor.d.ts.map +1 -1
  66. package/lib/cjs/components-react/editors/TextEditor.js +0 -7
  67. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/TextareaEditor.d.ts.map +1 -1
  69. package/lib/cjs/components-react/editors/TextareaEditor.js +0 -15
  70. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  71. package/lib/cjs/components-react/editors/ToggleEditor.d.ts.map +1 -1
  72. package/lib/cjs/components-react/editors/ToggleEditor.js +0 -9
  73. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  74. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  75. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js +1 -0
  76. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  77. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  78. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +0 -1
  79. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  80. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +3 -4
  81. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  82. package/lib/cjs/components-react/filtering/FilteringInput.d.ts.map +1 -1
  83. package/lib/cjs/components-react/filtering/FilteringInput.js +0 -1
  84. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  85. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  86. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +0 -3
  87. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  88. package/lib/cjs/components-react/inputs/ParsedInput.d.ts +1 -1
  89. package/lib/cjs/components-react/inputs/ParsedInput.d.ts.map +1 -1
  90. package/lib/cjs/components-react/inputs/ParsedInput.js +0 -5
  91. package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
  92. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
  93. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +0 -1
  94. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  95. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js +1 -2
  96. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  97. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
  98. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js +0 -2
  99. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  100. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
  101. package/lib/cjs/components-react/properties/renderers/PropertyView.js +7 -4
  102. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  103. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.d.ts.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js +6 -3
  105. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  106. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +5 -5
  107. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts +1 -1
  108. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +1 -0
  109. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
  110. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js +1 -0
  111. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  112. package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.d.ts +1 -1
  113. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +1 -0
  114. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
  115. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js +1 -0
  116. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  117. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts +1 -1
  118. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js +5 -9
  119. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  120. package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.d.ts +1 -1
  121. package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.d.ts.map +1 -1
  122. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.d.ts.map +1 -1
  123. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js +0 -2
  124. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  125. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
  126. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +0 -1
  127. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  128. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  129. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js +3 -4
  130. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  131. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
  132. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js +3 -4
  133. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  134. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
  135. package/lib/cjs/components-react/propertygrid/component/PropertyList.js +0 -1
  136. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  137. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
  138. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js +0 -2
  139. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  140. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +0 -4
  141. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.d.ts.map +1 -1
  142. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js +0 -1
  143. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  144. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.d.ts.map +1 -1
  145. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js +0 -1
  146. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  147. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts.map +1 -1
  148. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +2 -6
  149. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  150. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +0 -1
  151. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  152. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
  153. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +0 -2
  154. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  155. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +1 -2
  156. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  157. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  158. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js +7 -24
  159. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  160. package/lib/cjs/components-react/toolbar/Items.d.ts.map +1 -1
  161. package/lib/cjs/components-react/toolbar/Items.js +0 -2
  162. package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
  163. package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
  164. package/lib/cjs/components-react/toolbar/OverflowPanel.js +0 -1
  165. package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
  166. package/lib/cjs/components-react/toolbar/PopupItem.d.ts.map +1 -1
  167. package/lib/cjs/components-react/toolbar/PopupItem.js +3 -6
  168. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  169. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  170. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js +3 -13
  171. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  172. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  173. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js +1 -7
  174. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  175. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
  176. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js +0 -3
  177. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  178. package/lib/cjs/components-react/toolbar/useDragInteraction.d.ts.map +1 -1
  179. package/lib/cjs/components-react/toolbar/useDragInteraction.js +0 -2
  180. package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
  181. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  182. package/lib/cjs/components-react/tree/TreeDataProvider.js +0 -1
  183. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  184. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  185. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js +1 -8
  186. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  187. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  188. package/lib/cjs/components-react/tree/controlled/TreeModel.js +0 -1
  189. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  190. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
  191. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js +0 -4
  192. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  193. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
  194. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js +0 -5
  195. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  196. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.d.ts.map +1 -1
  197. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js +0 -1
  198. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  199. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
  200. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js +1 -10
  201. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  202. package/lib/esm/components-react/common/ImageRenderer.d.ts.map +1 -1
  203. package/lib/esm/components-react/common/ImageRenderer.js +0 -4
  204. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  205. package/lib/esm/components-react/common/Links.d.ts.map +1 -1
  206. package/lib/esm/components-react/common/Links.js +0 -7
  207. package/lib/esm/components-react/common/Links.js.map +1 -1
  208. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.d.ts.map +1 -1
  209. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js +0 -1
  210. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  211. package/lib/esm/components-react/common/UseElementsScrollStorage.d.ts.map +1 -1
  212. package/lib/esm/components-react/common/UseElementsScrollStorage.js +0 -1
  213. package/lib/esm/components-react/common/UseElementsScrollStorage.js.map +1 -1
  214. package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
  215. package/lib/esm/components-react/converters/DateTimeTypeConverter.js +0 -13
  216. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  217. package/lib/esm/components-react/converters/TypeConverterManager.d.ts.map +1 -1
  218. package/lib/esm/components-react/converters/TypeConverterManager.js +0 -1
  219. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  220. package/lib/esm/components-react/datepicker/DateField.d.ts.map +1 -1
  221. package/lib/esm/components-react/datepicker/DateField.js +1 -8
  222. package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
  223. package/lib/esm/components-react/datepicker/DatePicker.d.ts.map +1 -1
  224. package/lib/esm/components-react/datepicker/DatePicker.js +0 -2
  225. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  226. package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
  227. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js +0 -1
  228. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  229. package/lib/esm/components-react/datepicker/TimeField.d.ts.map +1 -1
  230. package/lib/esm/components-react/datepicker/TimeField.js +0 -9
  231. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  232. package/lib/esm/components-react/editors/BooleanEditor.d.ts.map +1 -1
  233. package/lib/esm/components-react/editors/BooleanEditor.js +0 -8
  234. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  235. package/lib/esm/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
  236. package/lib/esm/components-react/editors/CustomNumberEditor.js +7 -25
  237. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  238. package/lib/esm/components-react/editors/DateTimeEditor.d.ts.map +1 -1
  239. package/lib/esm/components-react/editors/DateTimeEditor.js +0 -21
  240. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  241. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
  242. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js +1 -14
  243. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  244. package/lib/esm/components-react/editors/EnumEditor.d.ts.map +1 -1
  245. package/lib/esm/components-react/editors/EnumEditor.js +1 -13
  246. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  247. package/lib/esm/components-react/editors/IconEditor.d.ts.map +1 -1
  248. package/lib/esm/components-react/editors/IconEditor.js +0 -9
  249. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  250. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  251. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js +0 -6
  252. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  253. package/lib/esm/components-react/editors/NumericInputEditor.d.ts.map +1 -1
  254. package/lib/esm/components-react/editors/NumericInputEditor.js +1 -10
  255. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  256. package/lib/esm/components-react/editors/PopupButton.d.ts.map +1 -1
  257. package/lib/esm/components-react/editors/PopupButton.js +0 -2
  258. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  259. package/lib/esm/components-react/editors/PropertyEditorManager.d.ts.map +1 -1
  260. package/lib/esm/components-react/editors/PropertyEditorManager.js +0 -1
  261. package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
  262. package/lib/esm/components-react/editors/SliderEditor.d.ts.map +1 -1
  263. package/lib/esm/components-react/editors/SliderEditor.js +0 -10
  264. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  265. package/lib/esm/components-react/editors/TextEditor.d.ts.map +1 -1
  266. package/lib/esm/components-react/editors/TextEditor.js +0 -7
  267. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  268. package/lib/esm/components-react/editors/TextareaEditor.d.ts.map +1 -1
  269. package/lib/esm/components-react/editors/TextareaEditor.js +0 -15
  270. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  271. package/lib/esm/components-react/editors/ToggleEditor.d.ts.map +1 -1
  272. package/lib/esm/components-react/editors/ToggleEditor.js +0 -9
  273. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  274. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  275. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js +1 -0
  276. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  277. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  278. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +0 -1
  279. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  280. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +3 -4
  281. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  282. package/lib/esm/components-react/filtering/FilteringInput.d.ts.map +1 -1
  283. package/lib/esm/components-react/filtering/FilteringInput.js +0 -1
  284. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  285. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  286. package/lib/esm/components-react/iconpicker/IconPickerButton.js +0 -3
  287. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  288. package/lib/esm/components-react/inputs/ParsedInput.d.ts +1 -1
  289. package/lib/esm/components-react/inputs/ParsedInput.d.ts.map +1 -1
  290. package/lib/esm/components-react/inputs/ParsedInput.js +0 -5
  291. package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
  292. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
  293. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +0 -1
  294. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  295. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js +1 -2
  296. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  297. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
  298. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js +0 -2
  299. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  300. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
  301. package/lib/esm/components-react/properties/renderers/PropertyView.js +7 -4
  302. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  303. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.d.ts.map +1 -1
  304. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js +3 -3
  305. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  306. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +5 -5
  307. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts +1 -1
  308. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +1 -0
  309. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
  310. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js +1 -0
  311. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  312. package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.d.ts +1 -1
  313. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +1 -0
  314. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
  315. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js +1 -0
  316. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  317. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts +1 -1
  318. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js +5 -9
  319. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  320. package/lib/esm/components-react/properties/renderers/value/WithContextStyle.d.ts +1 -1
  321. package/lib/esm/components-react/properties/renderers/value/WithContextStyle.d.ts.map +1 -1
  322. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.d.ts.map +1 -1
  323. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js +0 -2
  324. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  325. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
  326. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +0 -1
  327. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  328. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  329. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js +3 -4
  330. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  331. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
  332. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js +3 -4
  333. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  334. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
  335. package/lib/esm/components-react/propertygrid/component/PropertyList.js +0 -1
  336. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  337. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
  338. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js +0 -2
  339. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  340. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +0 -4
  341. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.d.ts.map +1 -1
  342. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js +0 -1
  343. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  344. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.d.ts.map +1 -1
  345. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js +0 -1
  346. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  347. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts.map +1 -1
  348. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +2 -3
  349. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  350. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +0 -1
  351. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  352. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
  353. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +0 -2
  354. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  355. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +1 -2
  356. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  357. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  358. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js +7 -24
  359. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  360. package/lib/esm/components-react/toolbar/Items.d.ts.map +1 -1
  361. package/lib/esm/components-react/toolbar/Items.js +0 -2
  362. package/lib/esm/components-react/toolbar/Items.js.map +1 -1
  363. package/lib/esm/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
  364. package/lib/esm/components-react/toolbar/OverflowPanel.js +0 -1
  365. package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
  366. package/lib/esm/components-react/toolbar/PopupItem.d.ts.map +1 -1
  367. package/lib/esm/components-react/toolbar/PopupItem.js +3 -6
  368. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  369. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  370. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js +3 -13
  371. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  372. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  373. package/lib/esm/components-react/toolbar/PopupItemsPanel.js +1 -7
  374. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  375. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
  376. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js +0 -3
  377. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  378. package/lib/esm/components-react/toolbar/useDragInteraction.d.ts.map +1 -1
  379. package/lib/esm/components-react/toolbar/useDragInteraction.js +0 -2
  380. package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
  381. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  382. package/lib/esm/components-react/tree/TreeDataProvider.js +0 -1
  383. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  384. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  385. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js +1 -8
  386. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  387. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  388. package/lib/esm/components-react/tree/controlled/TreeModel.js +0 -1
  389. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  390. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
  391. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js +0 -4
  392. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  393. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
  394. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js +0 -5
  395. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  396. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.d.ts.map +1 -1
  397. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js +0 -1
  398. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  399. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
  400. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js +1 -10
  401. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  402. package/package.json +11 -15
@@ -1 +1 @@
1
- {"version":3,"file":"FlatPropertyRenderer.js","sourceRoot":"","sources":["../../../../../../src/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.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 PropertyGrid\n */\n\nimport * as React from \"react\";\nimport type { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { Orientation } from \"@itwin/core-react\";\nimport type { HighlightingComponentProps } from \"../../../common/HighlightingComponentProps\";\nimport type { PropertyUpdatedArgs } from \"../../../editors/EditorContainer\";\nimport { EditorContainer } from \"../../../editors/EditorContainer\";\nimport { CommonPropertyRenderer } from \"../../../properties/renderers/CommonPropertyRenderer\";\nimport type { PrimitiveRendererProps } from \"../../../properties/renderers/PrimitivePropertyRenderer\";\nimport type { SharedRendererProps } from \"../../../properties/renderers/PropertyRenderer\";\nimport { PropertyValueRendererManager } from \"../../../properties/ValueRendererManager\";\nimport type { PropertyCategory } from \"../../PropertyDataProvider\";\nimport { FlatNonPrimitivePropertyRenderer } from \"./FlatNonPrimitivePropertyRenderer\";\nimport { CustomizablePropertyRenderer } from \"../../../properties/renderers/CustomizablePropertyRenderer\";\n\n/** Properties of [[FlatPropertyRenderer]] React component\n * @internal\n */\nexport interface FlatPropertyRendererProps extends SharedRendererProps {\n category?: PropertyCategory;\n /** Custom value renderer */\n propertyValueRendererManager?: PropertyValueRendererManager;\n /** Multiplier of how much the property is indented to the right */\n indentation?: number;\n /** Indicates property is being edited */\n isEditing?: boolean;\n /** Called when property edit is committed. */\n onEditCommit?: (\n args: PropertyUpdatedArgs,\n category: PropertyCategory\n ) => void;\n /** Called when property edit is cancelled. */\n onEditCancel?: () => void;\n /** Whether property value is displayed in expanded state. */\n isExpanded: boolean;\n /** Called when toggling between expanded and collapsed property value display state. */\n onExpansionToggled: () => void;\n /** Reports property height changes. */\n onHeightChanged?: (newHeight: number) => void;\n\n highlight?: HighlightingComponentProps & {\n applyOnLabel: boolean;\n applyOnValue: boolean;\n };\n\n children?: never;\n}\n\n/** A React component that renders flat properties\n * @internal\n */\nexport const FlatPropertyRenderer: React.FC<FlatPropertyRendererProps> = (\n props\n) => {\n const {\n category,\n propertyValueRendererManager,\n isEditing,\n onEditCommit,\n onEditCancel,\n onHeightChanged,\n highlight,\n ...passthroughProps\n } = props;\n\n const valueElementRenderer = () => (\n <DisplayValue\n propertyRecord={passthroughProps.propertyRecord}\n orientation={passthroughProps.orientation}\n columnRatio={passthroughProps.columnRatio}\n width={passthroughProps.width}\n category={category}\n propertyValueRendererManager={propertyValueRendererManager}\n isEditing={isEditing}\n onEditCommit={onEditCommit}\n onEditCancel={onEditCancel}\n isExpanded={passthroughProps.isExpanded}\n onExpansionToggled={passthroughProps.onExpansionToggled}\n onHeightChanged={onHeightChanged}\n highlight={highlight}\n indentation={props.indentation}\n />\n );\n\n const primitiveRendererProps: PrimitiveRendererProps = {\n ...passthroughProps,\n valueElementRenderer,\n indentation: props.indentation,\n };\n\n const rendererManager =\n propertyValueRendererManager ?? PropertyValueRendererManager.defaultManager;\n const hasCustomRenderer = rendererManager.hasCustomRenderer(\n passthroughProps.propertyRecord\n );\n\n switch (props.propertyRecord.value.valueFormat) {\n case PropertyValueFormat.Primitive:\n return (\n <CustomizablePropertyRenderer\n highlight={highlight?.applyOnLabel ? highlight : undefined}\n {...primitiveRendererProps}\n />\n );\n\n case PropertyValueFormat.Array:\n // If array is empty or has a custom renderer registered, render it as a customizable property\n if (props.propertyRecord.value.items.length === 0 || hasCustomRenderer)\n return (\n <CustomizablePropertyRenderer\n highlight={highlight?.applyOnLabel ? highlight : undefined}\n {...primitiveRendererProps}\n />\n );\n\n // eslint-disable-next-line no-fallthrough\n case PropertyValueFormat.Struct:\n // If a custom renderer is registered for the struct property, render it as a customizable property\n if (hasCustomRenderer) {\n return (\n <CustomizablePropertyRenderer\n highlight={highlight?.applyOnLabel ? highlight : undefined}\n {...primitiveRendererProps}\n />\n );\n }\n\n return (\n <FlatNonPrimitivePropertyRenderer\n {...primitiveRendererProps}\n isExpanded={props.isExpanded}\n onExpandToggled={props.onExpansionToggled}\n valueElement={undefined}\n valueElementRenderer={undefined}\n />\n );\n }\n};\n\ninterface DisplayValueProps {\n isEditing?: boolean;\n propertyRecord: PropertyRecord;\n\n orientation: Orientation;\n columnRatio?: number;\n /** Pass width to rerender component as property grid width changes */\n width?: number;\n indentation?: number;\n propertyValueRendererManager?: PropertyValueRendererManager;\n isExpanded?: boolean;\n onExpansionToggled?: () => void;\n onHeightChanged?: (newHeight: number) => void;\n\n category?: PropertyCategory;\n onEditCancel?: () => void;\n onEditCommit?: (\n args: PropertyUpdatedArgs,\n category: PropertyCategory\n ) => void;\n\n highlight?: HighlightingComponentProps & {\n applyOnLabel: boolean;\n applyOnValue: boolean;\n };\n}\n\nconst DisplayValue: React.FC<DisplayValueProps> = (props) => {\n useResetHeightOnEdit(\n props.orientation,\n props.isEditing,\n props.onHeightChanged\n );\n\n if (props.isEditing) {\n const _onEditCommit = (args: PropertyUpdatedArgs) => {\n /* istanbul ignore else */\n if (props.category) props.onEditCommit?.(args, props.category);\n };\n\n return (\n <EditorContainer\n propertyRecord={props.propertyRecord}\n onCommit={_onEditCommit}\n onCancel={props.onEditCancel ?? /* istanbul ignore next */ (() => {})}\n setFocus={true}\n />\n );\n }\n\n return (\n <>\n {CommonPropertyRenderer.createNewDisplayValue(\n props.orientation,\n props.propertyRecord,\n props.indentation,\n props.propertyValueRendererManager,\n props.isExpanded,\n props.onExpansionToggled,\n props.onHeightChanged,\n props.highlight\n )}\n </>\n );\n};\n\nfunction useResetHeightOnEdit(\n orientation: Orientation,\n isEditing?: boolean,\n onHeightChanged?: (newHeight: number) => void\n) {\n const previousEditingStatusRef = React.useRef(isEditing);\n React.useEffect(() => {\n if (!previousEditingStatusRef.current && isEditing) {\n onHeightChanged?.(orientation === Orientation.Vertical ? 48 : 28);\n }\n\n previousEditingStatusRef.current = isEditing;\n });\n}\n"]}
1
+ {"version":3,"file":"FlatPropertyRenderer.js","sourceRoot":"","sources":["../../../../../../src/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAG9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAExF,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,4DAA4D,CAAC;AAmC1G;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CACvE,KAAK,EACL,EAAE;IACF,MAAM,EACJ,QAAQ,EACR,4BAA4B,EAC5B,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,GAAG,gBAAgB,EACpB,GAAG,KAAK,CAAC;IAEV,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CACjC,oBAAC,YAAY,IACX,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAC/C,WAAW,EAAE,gBAAgB,CAAC,WAAW,EACzC,WAAW,EAAE,gBAAgB,CAAC,WAAW,EACzC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAC7B,QAAQ,EAAE,QAAQ,EAClB,4BAA4B,EAAE,4BAA4B,EAC1D,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,gBAAgB,CAAC,UAAU,EACvC,kBAAkB,EAAE,gBAAgB,CAAC,kBAAkB,EACvD,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,KAAK,CAAC,WAAW,GAC9B,CACH,CAAC;IAEF,MAAM,sBAAsB,GAA2B;QACrD,GAAG,gBAAgB;QACnB,oBAAoB;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;IAEF,MAAM,eAAe,GACnB,4BAA4B,IAAI,4BAA4B,CAAC,cAAc,CAAC;IAC9E,MAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CACzD,gBAAgB,CAAC,cAAc,CAChC,CAAC;IAEF,QAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/C,KAAK,mBAAmB,CAAC,SAAS;YAChC,OAAO,CACL,oBAAC,4BAA4B,IAC3B,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACtD,sBAAsB,GAC1B,CACH,CAAC;QAEJ,KAAK,mBAAmB,CAAC,KAAK;YAC5B,8FAA8F;YAC9F,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB;gBACpE,OAAO,CACL,oBAAC,4BAA4B,IAC3B,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACtD,sBAAsB,GAC1B,CACH,CAAC;QAEN,0CAA0C;QAC1C,KAAK,mBAAmB,CAAC,MAAM;YAC7B,mGAAmG;YACnG,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO,CACL,oBAAC,4BAA4B,IAC3B,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACtD,sBAAsB,GAC1B,CACH,CAAC;YACJ,CAAC;YAED,OAAO,CACL,oBAAC,gCAAgC,OAC3B,sBAAsB,EAC1B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,eAAe,EAAE,KAAK,CAAC,kBAAkB,EACzC,YAAY,EAAE,SAAS,EACvB,oBAAoB,EAAE,SAAS,GAC/B,CACH,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AA6BF,MAAM,YAAY,GAAgC,CAAC,KAAK,EAAE,EAAE;IAC1D,oBAAoB,CAClB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,eAAe,CACtB,CAAC;IAEF,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,aAAa,GAAG,CAAC,IAAyB,EAAE,EAAE;YAClD,IAAI,KAAK,CAAC,QAAQ;gBAAE,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,OAAO,CACL,oBAAC,eAAe,IACd,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAC1C,QAAQ,EAAE,IAAI,GACd,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,0CACG,sBAAsB,CAAC,qBAAqB,CAC3C,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,4BAA4B,EAClC,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,SAAS,CAChB,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,oBAAoB,CAC3B,WAAwB,EACxB,SAAmB,EACnB,eAA6C;IAE7C,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,wBAAwB,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YACnD,eAAe,EAAE,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,wBAAwB,CAAC,OAAO,GAAG,SAAS,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,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 PropertyGrid\n */\n\nimport * as React from \"react\";\nimport type { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { Orientation } from \"@itwin/core-react\";\nimport type { HighlightingComponentProps } from \"../../../common/HighlightingComponentProps\";\nimport type { PropertyUpdatedArgs } from \"../../../editors/EditorContainer\";\nimport { EditorContainer } from \"../../../editors/EditorContainer\";\nimport { CommonPropertyRenderer } from \"../../../properties/renderers/CommonPropertyRenderer\";\nimport type { PrimitiveRendererProps } from \"../../../properties/renderers/PrimitivePropertyRenderer\";\nimport type { SharedRendererProps } from \"../../../properties/renderers/PropertyRenderer\";\nimport { PropertyValueRendererManager } from \"../../../properties/ValueRendererManager\";\nimport type { PropertyCategory } from \"../../PropertyDataProvider\";\nimport { FlatNonPrimitivePropertyRenderer } from \"./FlatNonPrimitivePropertyRenderer\";\nimport { CustomizablePropertyRenderer } from \"../../../properties/renderers/CustomizablePropertyRenderer\";\n\n/** Properties of [[FlatPropertyRenderer]] React component\n * @internal\n */\nexport interface FlatPropertyRendererProps extends SharedRendererProps {\n category?: PropertyCategory;\n /** Custom value renderer */\n propertyValueRendererManager?: PropertyValueRendererManager;\n /** Multiplier of how much the property is indented to the right */\n indentation?: number;\n /** Indicates property is being edited */\n isEditing?: boolean;\n /** Called when property edit is committed. */\n onEditCommit?: (\n args: PropertyUpdatedArgs,\n category: PropertyCategory\n ) => void;\n /** Called when property edit is cancelled. */\n onEditCancel?: () => void;\n /** Whether property value is displayed in expanded state. */\n isExpanded: boolean;\n /** Called when toggling between expanded and collapsed property value display state. */\n onExpansionToggled: () => void;\n /** Reports property height changes. */\n onHeightChanged?: (newHeight: number) => void;\n\n highlight?: HighlightingComponentProps & {\n applyOnLabel: boolean;\n applyOnValue: boolean;\n };\n\n children?: never;\n}\n\n/** A React component that renders flat properties\n * @internal\n */\nexport const FlatPropertyRenderer: React.FC<FlatPropertyRendererProps> = (\n props\n) => {\n const {\n category,\n propertyValueRendererManager,\n isEditing,\n onEditCommit,\n onEditCancel,\n onHeightChanged,\n highlight,\n ...passthroughProps\n } = props;\n\n const valueElementRenderer = () => (\n <DisplayValue\n propertyRecord={passthroughProps.propertyRecord}\n orientation={passthroughProps.orientation}\n columnRatio={passthroughProps.columnRatio}\n width={passthroughProps.width}\n category={category}\n propertyValueRendererManager={propertyValueRendererManager}\n isEditing={isEditing}\n onEditCommit={onEditCommit}\n onEditCancel={onEditCancel}\n isExpanded={passthroughProps.isExpanded}\n onExpansionToggled={passthroughProps.onExpansionToggled}\n onHeightChanged={onHeightChanged}\n highlight={highlight}\n indentation={props.indentation}\n />\n );\n\n const primitiveRendererProps: PrimitiveRendererProps = {\n ...passthroughProps,\n valueElementRenderer,\n indentation: props.indentation,\n };\n\n const rendererManager =\n propertyValueRendererManager ?? PropertyValueRendererManager.defaultManager;\n const hasCustomRenderer = rendererManager.hasCustomRenderer(\n passthroughProps.propertyRecord\n );\n\n switch (props.propertyRecord.value.valueFormat) {\n case PropertyValueFormat.Primitive:\n return (\n <CustomizablePropertyRenderer\n highlight={highlight?.applyOnLabel ? highlight : undefined}\n {...primitiveRendererProps}\n />\n );\n\n case PropertyValueFormat.Array:\n // If array is empty or has a custom renderer registered, render it as a customizable property\n if (props.propertyRecord.value.items.length === 0 || hasCustomRenderer)\n return (\n <CustomizablePropertyRenderer\n highlight={highlight?.applyOnLabel ? highlight : undefined}\n {...primitiveRendererProps}\n />\n );\n\n // eslint-disable-next-line no-fallthrough\n case PropertyValueFormat.Struct:\n // If a custom renderer is registered for the struct property, render it as a customizable property\n if (hasCustomRenderer) {\n return (\n <CustomizablePropertyRenderer\n highlight={highlight?.applyOnLabel ? highlight : undefined}\n {...primitiveRendererProps}\n />\n );\n }\n\n return (\n <FlatNonPrimitivePropertyRenderer\n {...primitiveRendererProps}\n isExpanded={props.isExpanded}\n onExpandToggled={props.onExpansionToggled}\n valueElement={undefined}\n valueElementRenderer={undefined}\n />\n );\n }\n};\n\ninterface DisplayValueProps {\n isEditing?: boolean;\n propertyRecord: PropertyRecord;\n\n orientation: Orientation;\n columnRatio?: number;\n /** Pass width to rerender component as property grid width changes */\n width?: number;\n indentation?: number;\n propertyValueRendererManager?: PropertyValueRendererManager;\n isExpanded?: boolean;\n onExpansionToggled?: () => void;\n onHeightChanged?: (newHeight: number) => void;\n\n category?: PropertyCategory;\n onEditCancel?: () => void;\n onEditCommit?: (\n args: PropertyUpdatedArgs,\n category: PropertyCategory\n ) => void;\n\n highlight?: HighlightingComponentProps & {\n applyOnLabel: boolean;\n applyOnValue: boolean;\n };\n}\n\nconst DisplayValue: React.FC<DisplayValueProps> = (props) => {\n useResetHeightOnEdit(\n props.orientation,\n props.isEditing,\n props.onHeightChanged\n );\n\n if (props.isEditing) {\n const _onEditCommit = (args: PropertyUpdatedArgs) => {\n if (props.category) props.onEditCommit?.(args, props.category);\n };\n\n return (\n <EditorContainer\n propertyRecord={props.propertyRecord}\n onCommit={_onEditCommit}\n onCancel={props.onEditCancel ?? (() => {})}\n setFocus={true}\n />\n );\n }\n\n return (\n <>\n {CommonPropertyRenderer.createNewDisplayValue(\n props.orientation,\n props.propertyRecord,\n props.indentation,\n props.propertyValueRendererManager,\n props.isExpanded,\n props.onExpansionToggled,\n props.onHeightChanged,\n props.highlight\n )}\n </>\n );\n};\n\nfunction useResetHeightOnEdit(\n orientation: Orientation,\n isEditing?: boolean,\n onHeightChanged?: (newHeight: number) => void\n) {\n const previousEditingStatusRef = React.useRef(isEditing);\n React.useEffect(() => {\n if (!previousEditingStatusRef.current && isEditing) {\n onHeightChanged?.(orientation === Orientation.Vertical ? 48 : 28);\n }\n\n previousEditingStatusRef.current = isEditing;\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalToolbarComponent.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/InternalToolbarComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InternalToolbarComponent.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/InternalToolbarComponent.tsx"],"names":[],"mappings":"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"}
@@ -100,22 +100,18 @@ export const ToolbarWithOverflowDirectionContext = React.createContext({
100
100
  useDragInteraction: false,
101
101
  toolbarOpacitySetting: ToolbarOpacitySetting.Proximity,
102
102
  openPopupCount: 0,
103
- onPopupPanelOpenClose: /* istanbul ignore next */ (_isOpening) => { },
103
+ onPopupPanelOpenClose: (_isOpening) => { },
104
104
  overflowDisplayActive: false,
105
- onItemExecuted: /* istanbul ignore next */ (_item) => void {},
106
- onKeyDown: /* istanbul ignore next */ (_e) => void {},
105
+ onItemExecuted: (_item) => void {},
106
+ onKeyDown: (_e) => void {},
107
107
  });
108
108
  /** @internal */
109
109
  function CustomItem({ item, addGroupSeparator, }) {
110
110
  const { useDragInteraction } = useToolbarWithOverflowDirectionContext();
111
111
  const icon = React.useMemo(() => (item.icon &&
112
- IconHelper.getIconReactNode(item.icon, item.internalData)) || (
113
- // istanbul ignore next
114
- React.createElement(Icon, { className: "icon", iconSpec: React.createElement(SvgPlaceholder, null) })), [item.icon, item.internalData]);
112
+ IconHelper.getIconReactNode(item.icon, item.internalData)) || (React.createElement(Icon, { className: "icon", iconSpec: React.createElement(SvgPlaceholder, null) })), [item.icon, item.internalData]);
115
113
  const isDisabled = React.useMemo(() => ConditionalBooleanValue.getValue(item.isDisabled), [item.isDisabled]);
116
- const title = React.useMemo(() =>
117
- /* istanbul ignore next */ ConditionalStringValue.getValue(item.label) ??
118
- item.id, [item.id, item.label]);
114
+ const title = React.useMemo(() => ConditionalStringValue.getValue(item.label) ?? item.id, [item.id, item.label]);
119
115
  return (React.createElement(PopupItem, { key: item.id, itemId: item.id, icon: icon, isDisabled: isDisabled, title: title, panel: item.panelContentNode, hideIndicator: useDragInteraction, badge: React.createElement(Badge, { type: item.badgeType }), addGroupSeparator: addGroupSeparator, keepContentsMounted: item.keepContentsLoaded }));
120
116
  }
121
117
  /** @internal */
@@ -123,7 +119,6 @@ function GroupPopupItem({ item, addGroupSeparator, }) {
123
119
  const { useDragInteraction } = useToolbarWithOverflowDirectionContext();
124
120
  const title = ConditionalStringValue.getValue(item.label);
125
121
  const panel = React.useMemo(() => React.createElement(PopupItemsPanel, { groupItem: item, activateOnPointerUp: false }), [item]);
126
- // istanbul ignore next
127
122
  const providerId = "providerId" in item ? item.providerId : undefined;
128
123
  if (useDragInteraction) {
129
124
  return (React.createElement(PopupItemWithDrag, { key: item.id, itemId: item.id, providerId: providerId, itemPriority: item.itemPriority, groupPriority: item.groupPriority, icon: IconHelper.getIconReactNode(item.icon, item.internalData), isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), title: title, groupItem: item, badge: React.createElement(Badge, { type: item.badgeType }), addGroupSeparator: addGroupSeparator }));
@@ -138,7 +133,6 @@ function ActionItem({ item, addGroupSeparator, }) {
138
133
  item.execute();
139
134
  onItemExecuted(item);
140
135
  }, [item, onItemExecuted]);
141
- // istanbul ignore next
142
136
  const providerId = "providerId" in item ? item.providerId : undefined;
143
137
  return (React.createElement(ToolbarButtonItem, { itemId: item.id, providerId: providerId, itemPriority: item.itemPriority, groupPriority: item.groupPriority, key: item.id, isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), title: title, icon: IconHelper.getIconReactNode(item.icon, item.internalData), isActive: item.isActive, onClick: onExecute, badge: React.createElement(Badge, { type: item.badgeType }), addGroupSeparator: addGroupSeparator }));
144
138
  }
@@ -151,12 +145,10 @@ export function ToolbarItemComponent({ item, addGroupSeparator, }) {
151
145
  return React.createElement(CustomItem, { item: item, addGroupSeparator: addGroupSeparator });
152
146
  }
153
147
  else {
154
- // istanbul ignore else
155
148
  if (ToolbarItemUtilities.isActionButton(item)) {
156
149
  return React.createElement(ActionItem, { item: item, addGroupSeparator: addGroupSeparator });
157
150
  }
158
151
  }
159
- // istanbul ignore next
160
152
  return null;
161
153
  }
162
154
  /** @internal */
@@ -167,7 +159,6 @@ function OverflowItemsContainer(p) {
167
159
  return React.createElement(React.Fragment, null, p.children);
168
160
  }
169
161
  function getItemWrapperClass(child) {
170
- // istanbul ignore else
171
162
  if (React.isValidElement(child)) {
172
163
  if (child.props && child.props.addGroupSeparator)
173
164
  return "components-toolbar-button-add-gap-before";
@@ -213,13 +204,11 @@ export function InternalToolbarComponent(props) {
213
204
  const handlePopupPanelOpenClose = React.useCallback((isOpening) => {
214
205
  // use setTimeout to avoid warning about setting state in ToolbarWithOverflow from render method of PopupItem/PopupItemWithDrag
215
206
  setTimeout(() => {
216
- // istanbul ignore next
217
207
  if (!isMounted.current)
218
208
  return;
219
209
  setPopupPanelCount((prev) => {
220
- /* istanbul ignore next */
221
210
  const nextCount = isOpening ? prev + 1 : prev - 1;
222
- return nextCount < 0 ? /* istanbul ignore next */ 0 : nextCount;
211
+ return nextCount < 0 ? 0 : nextCount;
223
212
  });
224
213
  });
225
214
  }, []);
@@ -249,7 +238,6 @@ export function InternalToolbarComponent(props) {
249
238
  const handleClick = React.useCallback(() => {
250
239
  setIsOverflowPanelOpen((prev) => !prev);
251
240
  }, []);
252
- // istanbul ignore next - NEEDSWORK add complete tests
253
241
  const handleClose = React.useCallback(() => {
254
242
  setIsOverflowPanelOpen(false);
255
243
  }, []);
@@ -325,7 +313,7 @@ export function InternalToolbarComponent(props) {
325
313
  onItemExecuted: props.onItemExecuted ? props.onItemExecuted : () => { },
326
314
  onKeyDown: props.onKeyDown
327
315
  ? props.onKeyDown
328
- : /* istanbul ignore next */ (_e) => { },
316
+ : (_e) => { },
329
317
  } }, availableItems.length > 0 && (React.createElement("div", { className: className, ref: ref, style: props.style, onKeyDown: props.onKeyDown, role: "presentation" },
330
318
  React.createElement(ToolbarItems, { className: "components-items", direction: direction },
331
319
  props.enableOverflow &&
@@ -350,11 +338,9 @@ export function InternalToolbarComponent(props) {
350
338
  * @internal
351
339
  */
352
340
  function getChildKey(child, index) {
353
- // istanbul ignore else
354
341
  if (React.isValidElement(child) && child.key !== null) {
355
342
  return child.key.toString();
356
343
  }
357
- // istanbul ignore next
358
344
  return index.toString();
359
345
  }
360
346
  /** Returns a subset of toolbar item entry keys that exceed given width and should be overflowItemKeys.
@@ -483,7 +469,6 @@ export function useToolItemEntryContext() {
483
469
  }
484
470
  function verifiedMapEntries(map) {
485
471
  for (const [, val] of map) {
486
- // istanbul ignore next during unit testing
487
472
  if (val === undefined)
488
473
  return undefined;
489
474
  }
@@ -492,13 +477,11 @@ function verifiedMapEntries(map) {
492
477
  function eql(prev, value) {
493
478
  if (!prev)
494
479
  return false;
495
- // istanbul ignore next
496
480
  if (prev.length !== value.length)
497
481
  return false;
498
482
  for (let i = 0; i < prev.length; i++) {
499
483
  const p = prev[i];
500
484
  const v = value[i];
501
- // istanbul ignore next
502
485
  if (p !== v)
503
486
  return false;
504
487
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalToolbarComponent.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/InternalToolbarComponent.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 \"./Toolbar.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n ActionButton,\n CommonToolbarItem,\n CustomButtonDefinition,\n GroupButton,\n OnItemExecutedFunc,\n} from \"@itwin/appui-abstract\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport { Badge, Icon, IconHelper } from \"@itwin/core-react\";\nimport { ToolbarButtonItem } from \"./Item\";\nimport { ToolbarItems } from \"./Items\";\nimport { ItemWrapper, useResizeObserverSingleDimension } from \"./ItemWrapper\";\nimport { ToolbarOverflowButton } from \"./Overflow\";\nimport { ToolbarOverflowPanel } from \"./OverflowPanel\";\nimport { PopupItem } from \"./PopupItem\";\nimport { PopupItemsPanel } from \"./PopupItemsPanel\";\nimport { PopupItemWithDrag } from \"./PopupItemWithDrag\";\nimport {\n Direction,\n DirectionHelpers,\n OrthogonalDirection,\n OrthogonalDirectionHelpers,\n} from \"./utilities/Direction\";\nimport { SvgPlaceholder } from \"@itwin/itwinui-icons-react\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { useConditionalSynchedItems } from \"./useConditionalSynchedItems\";\nimport { useTranslation } from \"../useTranslation\";\n\n/** Describes the data needed to insert a custom `React` button into an ToolbarWithOverflow.\n * @public\n * @deprecated in 4.0. Use [ToolbarCustomItem]($appui-react) instead.\n */\nexport interface CustomToolbarItem extends CustomButtonDefinition {\n /** defines the content to display in popup panel */\n panelContentNode?: 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 keepContentsLoaded?: boolean;\n}\n\n/**\n * Context used by Toolbar items to know if popup panel should be hidden - via AutoHide.\n * @public\n */\nexport const ToolbarPopupAutoHideContext = React.createContext<boolean>(false);\n\n/**\n * React hook used to retrieve the ToolbarPopupAutoHideContext.\n * @public\n */\nexport function useToolbarPopupAutoHideContext() {\n return React.useContext(ToolbarPopupAutoHideContext);\n}\n\n/** Describes toolbar item.\n * @public\n * @deprecated in 4.0. Use [ToolbarItem]($appui-react) instead.\n */\nexport type ToolbarItem = ActionButton | GroupButton | CustomToolbarItem; // eslint-disable-line deprecation/deprecation\n\n/** CustomToolbarItem type guard.\n * @internal\n */\nexport function isCustomToolbarItem(\n // eslint-disable-next-line deprecation/deprecation\n item: ToolbarItem\n // eslint-disable-next-line deprecation/deprecation\n): item is CustomToolbarItem {\n return !!(item as CustomToolbarItem).isCustom && \"panelContentNode\" in item; // eslint-disable-line deprecation/deprecation\n}\n\n/** @internal */\nexport const getToolbarDirection = (\n expandsTo: Direction\n): OrthogonalDirection => {\n const orthogonalDirection =\n DirectionHelpers.getOrthogonalDirection(expandsTo);\n return OrthogonalDirectionHelpers.inverse(orthogonalDirection);\n};\n\n/** Available alignment modes of [[Toolbar]] panels.\n * @public\n */\nexport enum ToolbarPanelAlignment {\n Start,\n End,\n}\n\n/** Enumeration of Toolbar Opacity setting.\n * @public\n */\nexport enum ToolbarOpacitySetting {\n /** Use the default background, box-shadow opacity and backdrop-filter blur */\n Defaults,\n /** Alter the opacity from transparent to the defaults based on mouse proximity */\n Proximity,\n /** Use a transparent background, box-shadow opacity and backdrop-filter blur */\n Transparent,\n}\n\n/** Helpers for [[ToolbarPanelAlignment]].\n * @internal\n */\nexport class ToolbarPanelAlignmentHelpers {\n /** Class name of [[ToolbarPanelAlignment.Start]] */\n public static readonly START_CLASS_NAME = \"components-panel-alignment-start\";\n /** Class name of [[ToolbarPanelAlignment.End]] */\n public static readonly END_CLASS_NAME = \"components-panel-alignment-end\";\n\n /** @returns Class name of specified [[ToolbarPanelAlignment]] */\n public static getCssClassName(panelAlignment: ToolbarPanelAlignment): string {\n switch (panelAlignment) {\n case ToolbarPanelAlignment.Start:\n return ToolbarPanelAlignmentHelpers.START_CLASS_NAME;\n case ToolbarPanelAlignment.End:\n return ToolbarPanelAlignmentHelpers.END_CLASS_NAME;\n }\n }\n}\n\n/** @internal */\nexport interface ToolbarOverflowContextProps {\n readonly expandsTo: Direction;\n readonly direction: OrthogonalDirection;\n readonly overflowExpandsTo: Direction;\n readonly overflowDirection: OrthogonalDirection;\n readonly panelAlignment: ToolbarPanelAlignment;\n readonly useDragInteraction: boolean;\n readonly toolbarOpacitySetting: ToolbarOpacitySetting;\n readonly openPopupCount: number;\n readonly onPopupPanelOpenClose: (isOpening: boolean) => void;\n readonly overflowDisplayActive: boolean;\n readonly onItemExecuted: OnItemExecutedFunc;\n readonly onKeyDown: (e: React.KeyboardEvent) => void;\n}\n\n/**\n * Context used by Toolbar component to provide Direction to child components.\n * @internal\n */\nexport const ToolbarWithOverflowDirectionContext =\n React.createContext<ToolbarOverflowContextProps>({\n expandsTo: Direction.Bottom,\n direction: OrthogonalDirection.Horizontal,\n overflowExpandsTo: Direction.Right,\n overflowDirection: OrthogonalDirection.Vertical,\n panelAlignment: ToolbarPanelAlignment.Start,\n useDragInteraction: false,\n toolbarOpacitySetting: ToolbarOpacitySetting.Proximity,\n openPopupCount: 0,\n onPopupPanelOpenClose: /* istanbul ignore next */ (\n _isOpening: boolean\n ) => {},\n overflowDisplayActive: false,\n onItemExecuted: /* istanbul ignore next */ (_item: any) => void {},\n onKeyDown: /* istanbul ignore next */ (_e: React.KeyboardEvent) => void {},\n });\n\n/** @internal */\nfunction CustomItem({\n item,\n addGroupSeparator,\n}: {\n // eslint-disable-next-line deprecation/deprecation\n item: CustomToolbarItem;\n addGroupSeparator: boolean;\n}) {\n const { useDragInteraction } = useToolbarWithOverflowDirectionContext();\n const icon = React.useMemo(\n () =>\n (item.icon &&\n IconHelper.getIconReactNode(item.icon, item.internalData)) || (\n // istanbul ignore next\n <Icon className=\"icon\" iconSpec={<SvgPlaceholder />} />\n ),\n [item.icon, item.internalData]\n );\n const isDisabled = React.useMemo(\n () => ConditionalBooleanValue.getValue(item.isDisabled),\n [item.isDisabled]\n );\n const title = React.useMemo(\n () =>\n /* istanbul ignore next */ ConditionalStringValue.getValue(item.label) ??\n item.id,\n [item.id, item.label]\n );\n\n return (\n <PopupItem\n key={item.id}\n itemId={item.id}\n icon={icon}\n isDisabled={isDisabled}\n title={title}\n panel={item.panelContentNode}\n hideIndicator={useDragInteraction}\n badge={<Badge type={item.badgeType} />}\n addGroupSeparator={addGroupSeparator}\n keepContentsMounted={item.keepContentsLoaded}\n />\n );\n}\n\n/** @internal */\nfunction GroupPopupItem({\n item,\n addGroupSeparator,\n}: {\n item: GroupButton;\n addGroupSeparator: boolean;\n}) {\n const { useDragInteraction } = useToolbarWithOverflowDirectionContext();\n const title = ConditionalStringValue.getValue(item.label)!;\n const panel = React.useMemo(\n () => <PopupItemsPanel groupItem={item} activateOnPointerUp={false} />,\n [item]\n );\n // istanbul ignore next\n const providerId =\n \"providerId\" in item ? (item.providerId as string) : undefined;\n if (useDragInteraction) {\n return (\n <PopupItemWithDrag\n key={item.id}\n itemId={item.id}\n providerId={providerId}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={IconHelper.getIconReactNode(item.icon, item.internalData)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={title}\n groupItem={item}\n badge={<Badge type={item.badgeType} />}\n addGroupSeparator={addGroupSeparator}\n />\n );\n }\n return (\n <PopupItem\n key={item.id}\n itemId={item.id}\n providerId={providerId}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={IconHelper.getIconReactNode(item.icon, item.internalData)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={title}\n panel={panel}\n badge={<Badge type={item.badgeType} />}\n hideIndicator={useDragInteraction}\n addGroupSeparator={addGroupSeparator}\n />\n );\n}\n\n/** @internal */\nfunction ActionItem({\n item,\n addGroupSeparator,\n}: {\n item: ActionButton;\n addGroupSeparator: boolean;\n}) {\n const title = ConditionalStringValue.getValue(item.label)!;\n const { onItemExecuted } = useToolbarWithOverflowDirectionContext();\n const onExecute = React.useCallback(() => {\n item.execute();\n onItemExecuted(item);\n }, [item, onItemExecuted]);\n\n // istanbul ignore next\n const providerId =\n \"providerId\" in item ? (item.providerId as string) : undefined;\n return (\n <ToolbarButtonItem\n itemId={item.id}\n providerId={providerId}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n key={item.id}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={title}\n icon={IconHelper.getIconReactNode(item.icon, item.internalData)}\n isActive={item.isActive}\n onClick={onExecute}\n badge={<Badge type={item.badgeType} />}\n addGroupSeparator={addGroupSeparator}\n />\n );\n}\n\n/** @internal */\nexport function ToolbarItemComponent({\n item,\n addGroupSeparator,\n}: {\n // eslint-disable-next-line deprecation/deprecation\n item: ToolbarItem;\n addGroupSeparator: boolean;\n}) {\n if (ToolbarItemUtilities.isGroupButton(item)) {\n return <GroupPopupItem item={item} addGroupSeparator={addGroupSeparator} />;\n } else if (isCustomToolbarItem(item)) {\n return <CustomItem item={item} addGroupSeparator={addGroupSeparator} />;\n } else {\n // istanbul ignore else\n if (ToolbarItemUtilities.isActionButton(item)) {\n return <ActionItem item={item} addGroupSeparator={addGroupSeparator} />;\n }\n }\n // istanbul ignore next\n return null;\n}\n\n/** @internal */\nexport function useToolbarWithOverflowDirectionContext() {\n return React.useContext(ToolbarWithOverflowDirectionContext);\n}\n\nfunction OverflowItemsContainer(p: { children: React.ReactNode }) {\n return <>{p.children}</>;\n}\n\nfunction getItemWrapperClass(child: React.ReactNode) {\n // istanbul ignore else\n if (React.isValidElement(child)) {\n if (child.props && child.props.addGroupSeparator)\n return \"components-toolbar-button-add-gap-before\";\n }\n return undefined;\n}\n\n/**\n * Recursively looks through all items and groups and removes the hidden items\n * from the working object.\n * @param items List of object to analyse\n * @returns Copy of the provided items, minus the hidden ones.\n */\nfunction filterHiddenItems<T extends CommonToolbarItem>(\n items: ReadonlyArray<T>\n): T[] {\n return items\n .filter((item) => !ConditionalBooleanValue.getValue(item.isHidden))\n .map((i) => {\n if (\"items\" in i) {\n return { ...i, items: filterHiddenItems(i.items) };\n }\n return i;\n });\n}\n\n/** Properties of [[ToolbarComponent]] component.\n * @internal\n */\nexport interface InternalToolbarComponentProps\n extends CommonProps,\n NoChildrenProps {\n /** Describes to which direction the popup panels are expanded. Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes if items that do not fit available space should move to an expandable panel. Defaults to: false */\n enableOverflow?:\n | boolean\n | {\n /** Describes to which direction the overflow popup panels are expanded if overflow is enabled. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n };\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: CommonToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n /** SyncEvents on which the conditional should listen to */\n syncUiEvent?: BeEvent<(args: { eventIds: Set<string> }) => void>;\n}\n\n/** Component that displays toolbar items.\n * @internal\n */\nexport function InternalToolbarComponent(props: InternalToolbarComponentProps) {\n const expandsTo = props.expandsTo ? props.expandsTo : Direction.Bottom;\n const useDragInteraction = !!props.useDragInteraction;\n const panelAlignment = props.panelAlignment\n ? props.panelAlignment\n : ToolbarPanelAlignment.Start;\n const useHeight =\n expandsTo === Direction.Right || expandsTo === Direction.Left;\n const { translate } = useTranslation();\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\n const [popupPanelCount, setPopupPanelCount] = React.useState(0);\n const isMounted = React.useRef(false);\n React.useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n });\n const handlePopupPanelOpenClose = React.useCallback((isOpening: boolean) => {\n // use setTimeout to avoid warning about setting state in ToolbarWithOverflow from render method of PopupItem/PopupItemWithDrag\n setTimeout(() => {\n // istanbul ignore next\n if (!isMounted.current) return;\n setPopupPanelCount((prev) => {\n /* istanbul ignore next */\n const nextCount = isOpening ? prev + 1 : prev - 1;\n return nextCount < 0 ? /* istanbul ignore next */ 0 : nextCount;\n });\n });\n }, []);\n\n const width = React.useRef<number | undefined>(undefined);\n\n const eventSynchedItems = useConditionalSynchedItems(\n props.items,\n props.syncUiEvent\n );\n\n const availableNodes = React.useMemo<React.ReactNode>(() => {\n const filteredItems = filterHiddenItems(eventSynchedItems);\n return filteredItems.map((item, index) => {\n let addGroupSeparator = false;\n if (index > 0)\n addGroupSeparator =\n item.groupPriority !== filteredItems[index - 1].groupPriority;\n return (\n <ToolbarItemComponent\n key={item.id}\n item={item}\n addGroupSeparator={!!addGroupSeparator}\n />\n );\n });\n }, [eventSynchedItems]);\n /* overflowItemKeys - keys of items to show in overflow panel\n * handleContainerResize - handler called when container <div> is resized.\n * handleOverflowResize - handler called when determining size of overflow indicator/button.\n * handleEntryResize - handler called when determining size of each item/button. */\n const [\n overflowItemKeys,\n handleContainerResize,\n handleOverflowResize,\n handleEntryResize,\n ] = useOverflow(availableNodes, panelAlignment === ToolbarPanelAlignment.End);\n // handler called by ResizeObserver\n const handleResize = React.useCallback(\n (w: number) => {\n width.current = w;\n width.current !== undefined && handleContainerResize(width.current);\n },\n [handleContainerResize]\n );\n const resizeObserverRef = useResizeObserverSingleDimension(\n handleResize,\n useHeight\n );\n const handleClick = React.useCallback(() => {\n setIsOverflowPanelOpen((prev) => !prev);\n }, []);\n // istanbul ignore next - NEEDSWORK add complete tests\n const handleClose = React.useCallback(() => {\n setIsOverflowPanelOpen(false);\n }, []);\n\n // Not setting the ref will disable overflow management, but will keep proper refresh of items.\n const ref = props.enableOverflow ? resizeObserverRef : undefined;\n const availableItems = React.Children.toArray(availableNodes);\n const displayedItems = availableItems.reduce<\n Array<[string, React.ReactNode]>\n >((acc, child, index) => {\n const key = getChildKey(child, index);\n if (!overflowItemKeys || overflowItemKeys.indexOf(key) < 0) {\n acc.push([key, child]);\n }\n return acc;\n }, []);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const overflowPanelItems = overflowItemKeys\n ? availableItems.reduce<Array<[string, React.ReactNode]>>(\n (acc, child, index) => {\n const key = getChildKey(child, index);\n if (overflowItemKeys.indexOf(key) >= 0) {\n acc.push([key, child]);\n }\n return acc;\n },\n []\n )\n : [];\n\n const direction = getToolbarDirection(expandsTo);\n const overflowExpandsTo =\n (typeof props.enableOverflow !== \"boolean\" &&\n props.enableOverflow?.overflowExpandsTo) ||\n Direction.Right;\n const addOverflowButton = React.useCallback(\n (atStart: boolean) => {\n const overflowItems = !!atStart\n ? overflowPanelItems.reverse()\n : overflowPanelItems;\n return (\n <ToolbarItemContext.Provider\n value={{\n hasOverflow: false,\n useHeight,\n onResize: handleOverflowResize,\n }}\n >\n <ToolbarOverflowButton\n expandsTo={expandsTo}\n onClick={handleClick}\n onClose={handleClose}\n open={overflowItems.length > 0 && isOverflowPanelOpen}\n panelNode={\n <ToolbarOverflowPanel>\n <OverflowItemsContainer>\n {overflowItems.map(([key, child]) => {\n return (\n <ToolbarItemContext.Provider\n key={key}\n value={{\n hasOverflow: true,\n useHeight,\n onResize: () => {},\n }}\n >\n {\n <ItemWrapper className={getItemWrapperClass(child)}>\n {child}\n </ItemWrapper>\n }\n </ToolbarItemContext.Provider>\n );\n })}\n </OverflowItemsContainer>\n </ToolbarOverflowPanel>\n }\n title={translate(\"toolbar.overflow\")}\n />\n </ToolbarItemContext.Provider>\n );\n },\n [\n overflowPanelItems,\n useHeight,\n handleOverflowResize,\n expandsTo,\n handleClick,\n handleClose,\n isOverflowPanelOpen,\n translate,\n ]\n );\n\n const className = classnames(\n \"components-toolbar-overflow-sizer\",\n OrthogonalDirectionHelpers.getCssClassName(direction),\n props.className\n );\n\n const showOverflowAtStart =\n direction === OrthogonalDirection.Horizontal &&\n panelAlignment === ToolbarPanelAlignment.End;\n /* The ItemWrapper is used to wrap the <Item> <ExpandableItem> with a <div> that specifies a ref that the sizing logic uses to determine the\n size of the item. */\n return (\n <ToolbarWithOverflowDirectionContext.Provider\n value={{\n expandsTo,\n direction,\n overflowExpandsTo,\n panelAlignment,\n useDragInteraction,\n toolbarOpacitySetting:\n props.toolbarOpacitySetting ?? ToolbarOpacitySetting.Proximity,\n overflowDirection:\n direction === OrthogonalDirection.Horizontal\n ? OrthogonalDirection.Vertical\n : OrthogonalDirection.Horizontal,\n openPopupCount: popupPanelCount,\n onPopupPanelOpenClose: handlePopupPanelOpenClose,\n overflowDisplayActive:\n overflowPanelItems.length > 0 && isOverflowPanelOpen,\n onItemExecuted: props.onItemExecuted ? props.onItemExecuted : () => {},\n onKeyDown: props.onKeyDown\n ? props.onKeyDown\n : /* istanbul ignore next */ (_e: React.KeyboardEvent) => {},\n }}\n >\n {availableItems.length > 0 && (\n <div\n className={className}\n ref={ref}\n style={props.style}\n onKeyDown={props.onKeyDown}\n role=\"presentation\"\n >\n <ToolbarItems className=\"components-items\" direction={direction}>\n {props.enableOverflow &&\n (!overflowItemKeys || overflowItemKeys.length > 0) &&\n showOverflowAtStart &&\n addOverflowButton(true)}\n {displayedItems.map(([key, child]) => {\n const onEntryResize = handleEntryResize(key);\n return (\n <ToolbarItemContext.Provider\n key={key}\n value={{\n hasOverflow: false,\n useHeight,\n onResize: onEntryResize,\n }}\n >\n <ItemWrapper className={getItemWrapperClass(child)}>\n {child}\n </ItemWrapper>\n </ToolbarItemContext.Provider>\n );\n })}\n {props.enableOverflow &&\n (!overflowItemKeys || overflowItemKeys.length > 0) &&\n !showOverflowAtStart &&\n addOverflowButton(false)}\n </ToolbarItems>\n </div>\n )}\n </ToolbarWithOverflowDirectionContext.Provider>\n );\n}\n\n/** Returns key of a child. Must be used along with React.Children.toArray to preserve the semantics of availableItems.\n * @internal\n */\nfunction getChildKey(child: React.ReactNode, index: number) {\n // istanbul ignore else\n if (React.isValidElement(child) && child.key !== null) {\n return child.key.toString();\n }\n // istanbul ignore next\n return index.toString();\n}\n\n/** Returns a subset of toolbar item entry keys that exceed given width and should be overflowItemKeys.\n * @internal\n */\nfunction determineOverflowItems(\n size: number,\n entries: ReadonlyArray<readonly [string, number]>,\n overflowButtonSize: number,\n overflowButtonAtStart: boolean\n): string[] {\n let toolbarSize = 0;\n const buttonPadding = 2;\n if (overflowButtonAtStart && entries.length > 0) {\n let i = entries.length - 1;\n for (; i >= 0; i--) {\n const w = entries[i][1] + buttonPadding;\n const newSettingsWidth = toolbarSize + w;\n if (newSettingsWidth > size) {\n toolbarSize += overflowButtonSize + buttonPadding;\n break;\n }\n toolbarSize = newSettingsWidth;\n }\n if (i >= 0) {\n let j = i + 1;\n for (; j < entries.length; j++) {\n if (toolbarSize <= size) break;\n const w = entries[j][1] + buttonPadding;\n toolbarSize -= w;\n }\n\n return entries.slice(0, j).map((e) => e[0]);\n } else {\n return [];\n }\n } else {\n let i = 0;\n for (; i < entries.length; i++) {\n const w = entries[i][1] + buttonPadding;\n const newSettingsWidth = toolbarSize + w;\n if (newSettingsWidth > size) {\n toolbarSize += overflowButtonSize + buttonPadding;\n break;\n }\n toolbarSize = newSettingsWidth;\n }\n let j = i;\n for (; j > 0; j--) {\n if (toolbarSize <= size) break;\n const w = entries[j][1] + buttonPadding;\n toolbarSize -= w;\n }\n\n return entries.slice(j).map((e) => e[0]);\n }\n}\n\n/** Hook that returns a list of overflowItemKeys availableItems.\n * @internal\n */\nfunction useOverflow(\n availableItems: React.ReactNode,\n overflowButtonAtStart: boolean\n): [\n ReadonlyArray<string> | undefined,\n (size: number) => void,\n (size: number) => void,\n (key: string) => (size: number) => void\n] {\n const [overflowItemKeys, setOverflown] =\n React.useState<ReadonlyArray<string>>();\n const itemSizes = React.useRef(new Map<string, number | undefined>());\n const size = React.useRef<number | undefined>(undefined);\n const overflowButtonSize = React.useRef<number | undefined>(undefined);\n\n const calculateOverflow = React.useCallback(() => {\n const sizes = verifiedMapEntries(itemSizes.current);\n if (\n size.current === undefined ||\n sizes === undefined ||\n overflowButtonSize.current === undefined\n ) {\n setOverflown(undefined);\n return;\n }\n\n // Calculate overflow.\n const newOverflown = determineOverflowItems(\n size.current,\n [...sizes.entries()],\n overflowButtonSize.current,\n overflowButtonAtStart\n );\n setOverflown((prevOverflown) => {\n return eql(prevOverflown, newOverflown) ? prevOverflown : newOverflown;\n });\n }, [overflowButtonAtStart]);\n\n React.useLayoutEffect(() => {\n const newEntryWidths = new Map<string, number | undefined>();\n const array = React.Children.toArray(availableItems);\n for (let i = 0; i < array.length; i++) {\n const child = array[i];\n const key = getChildKey(child, i);\n const lastW = itemSizes.current.get(key);\n newEntryWidths.set(key, lastW);\n }\n itemSizes.current = newEntryWidths;\n calculateOverflow();\n }, [availableItems, calculateOverflow]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n const calculate = size.current !== w;\n size.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowButtonSize.current !== w;\n overflowButtonSize.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = itemSizes.current.get(key);\n if (oldW !== w) {\n itemSizes.current.set(key, w);\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n return [\n overflowItemKeys,\n handleContainerResize,\n handleOverflowResize,\n handleEntryResize,\n ];\n}\n\n/** Interface toolbars use to define context for its items.\n * @internal\n */\nexport interface ToolbarItemContextArgs {\n readonly hasOverflow: boolean;\n readonly useHeight: boolean;\n readonly onResize: (w: number) => void;\n}\n\n/** Interface toolbars use to define context for its items.\n * @internal\n */\nexport const ToolbarItemContext = React.createContext<ToolbarItemContextArgs>({\n hasOverflow: false,\n useHeight: false,\n onResize: () => {\n // intentionally do nothing by default.\n },\n});\n\n/** @internal */\nexport function useToolItemEntryContext() {\n return React.useContext(ToolbarItemContext);\n}\n\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n // istanbul ignore next during unit testing\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\nfunction eql(prev: readonly string[] | undefined, value: readonly string[]) {\n if (!prev) return false;\n // istanbul ignore next\n if (prev.length !== value.length) return false;\n for (let i = 0; i < prev.length; i++) {\n const p = prev[i];\n const v = value[i];\n // istanbul ignore next\n if (p !== v) return false;\n }\n return true;\n}\n"]}
1
+ {"version":3,"file":"InternalToolbarComponent.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/InternalToolbarComponent.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 \"./Toolbar.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n ActionButton,\n CommonToolbarItem,\n CustomButtonDefinition,\n GroupButton,\n OnItemExecutedFunc,\n} from \"@itwin/appui-abstract\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n ToolbarItemUtilities,\n} from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport { Badge, Icon, IconHelper } from \"@itwin/core-react\";\nimport { ToolbarButtonItem } from \"./Item\";\nimport { ToolbarItems } from \"./Items\";\nimport { ItemWrapper, useResizeObserverSingleDimension } from \"./ItemWrapper\";\nimport { ToolbarOverflowButton } from \"./Overflow\";\nimport { ToolbarOverflowPanel } from \"./OverflowPanel\";\nimport { PopupItem } from \"./PopupItem\";\nimport { PopupItemsPanel } from \"./PopupItemsPanel\";\nimport { PopupItemWithDrag } from \"./PopupItemWithDrag\";\nimport {\n Direction,\n DirectionHelpers,\n OrthogonalDirection,\n OrthogonalDirectionHelpers,\n} from \"./utilities/Direction\";\nimport { SvgPlaceholder } from \"@itwin/itwinui-icons-react\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { useConditionalSynchedItems } from \"./useConditionalSynchedItems\";\nimport { useTranslation } from \"../useTranslation\";\n\n/** Describes the data needed to insert a custom `React` button into an ToolbarWithOverflow.\n * @public\n * @deprecated in 4.0. Use [ToolbarCustomItem]($appui-react) instead.\n */\nexport interface CustomToolbarItem extends CustomButtonDefinition {\n /** defines the content to display in popup panel */\n panelContentNode?: 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 keepContentsLoaded?: boolean;\n}\n\n/**\n * Context used by Toolbar items to know if popup panel should be hidden - via AutoHide.\n * @public\n */\nexport const ToolbarPopupAutoHideContext = React.createContext<boolean>(false);\n\n/**\n * React hook used to retrieve the ToolbarPopupAutoHideContext.\n * @public\n */\nexport function useToolbarPopupAutoHideContext() {\n return React.useContext(ToolbarPopupAutoHideContext);\n}\n\n/** Describes toolbar item.\n * @public\n * @deprecated in 4.0. Use [ToolbarItem]($appui-react) instead.\n */\nexport type ToolbarItem = ActionButton | GroupButton | CustomToolbarItem; // eslint-disable-line deprecation/deprecation\n\n/** CustomToolbarItem type guard.\n * @internal\n */\nexport function isCustomToolbarItem(\n // eslint-disable-next-line deprecation/deprecation\n item: ToolbarItem\n // eslint-disable-next-line deprecation/deprecation\n): item is CustomToolbarItem {\n return !!(item as CustomToolbarItem).isCustom && \"panelContentNode\" in item; // eslint-disable-line deprecation/deprecation\n}\n\n/** @internal */\nexport const getToolbarDirection = (\n expandsTo: Direction\n): OrthogonalDirection => {\n const orthogonalDirection =\n DirectionHelpers.getOrthogonalDirection(expandsTo);\n return OrthogonalDirectionHelpers.inverse(orthogonalDirection);\n};\n\n/** Available alignment modes of [[Toolbar]] panels.\n * @public\n */\nexport enum ToolbarPanelAlignment {\n Start,\n End,\n}\n\n/** Enumeration of Toolbar Opacity setting.\n * @public\n */\nexport enum ToolbarOpacitySetting {\n /** Use the default background, box-shadow opacity and backdrop-filter blur */\n Defaults,\n /** Alter the opacity from transparent to the defaults based on mouse proximity */\n Proximity,\n /** Use a transparent background, box-shadow opacity and backdrop-filter blur */\n Transparent,\n}\n\n/** Helpers for [[ToolbarPanelAlignment]].\n * @internal\n */\nexport class ToolbarPanelAlignmentHelpers {\n /** Class name of [[ToolbarPanelAlignment.Start]] */\n public static readonly START_CLASS_NAME = \"components-panel-alignment-start\";\n /** Class name of [[ToolbarPanelAlignment.End]] */\n public static readonly END_CLASS_NAME = \"components-panel-alignment-end\";\n\n /** @returns Class name of specified [[ToolbarPanelAlignment]] */\n public static getCssClassName(panelAlignment: ToolbarPanelAlignment): string {\n switch (panelAlignment) {\n case ToolbarPanelAlignment.Start:\n return ToolbarPanelAlignmentHelpers.START_CLASS_NAME;\n case ToolbarPanelAlignment.End:\n return ToolbarPanelAlignmentHelpers.END_CLASS_NAME;\n }\n }\n}\n\n/** @internal */\nexport interface ToolbarOverflowContextProps {\n readonly expandsTo: Direction;\n readonly direction: OrthogonalDirection;\n readonly overflowExpandsTo: Direction;\n readonly overflowDirection: OrthogonalDirection;\n readonly panelAlignment: ToolbarPanelAlignment;\n readonly useDragInteraction: boolean;\n readonly toolbarOpacitySetting: ToolbarOpacitySetting;\n readonly openPopupCount: number;\n readonly onPopupPanelOpenClose: (isOpening: boolean) => void;\n readonly overflowDisplayActive: boolean;\n readonly onItemExecuted: OnItemExecutedFunc;\n readonly onKeyDown: (e: React.KeyboardEvent) => void;\n}\n\n/**\n * Context used by Toolbar component to provide Direction to child components.\n * @internal\n */\nexport const ToolbarWithOverflowDirectionContext =\n React.createContext<ToolbarOverflowContextProps>({\n expandsTo: Direction.Bottom,\n direction: OrthogonalDirection.Horizontal,\n overflowExpandsTo: Direction.Right,\n overflowDirection: OrthogonalDirection.Vertical,\n panelAlignment: ToolbarPanelAlignment.Start,\n useDragInteraction: false,\n toolbarOpacitySetting: ToolbarOpacitySetting.Proximity,\n openPopupCount: 0,\n onPopupPanelOpenClose: (_isOpening: boolean) => {},\n overflowDisplayActive: false,\n onItemExecuted: (_item: any) => void {},\n onKeyDown: (_e: React.KeyboardEvent) => void {},\n });\n\n/** @internal */\nfunction CustomItem({\n item,\n addGroupSeparator,\n}: {\n // eslint-disable-next-line deprecation/deprecation\n item: CustomToolbarItem;\n addGroupSeparator: boolean;\n}) {\n const { useDragInteraction } = useToolbarWithOverflowDirectionContext();\n const icon = React.useMemo(\n () =>\n (item.icon &&\n IconHelper.getIconReactNode(item.icon, item.internalData)) || (\n <Icon className=\"icon\" iconSpec={<SvgPlaceholder />} />\n ),\n [item.icon, item.internalData]\n );\n const isDisabled = React.useMemo(\n () => ConditionalBooleanValue.getValue(item.isDisabled),\n [item.isDisabled]\n );\n const title = React.useMemo(\n () => ConditionalStringValue.getValue(item.label) ?? item.id,\n [item.id, item.label]\n );\n\n return (\n <PopupItem\n key={item.id}\n itemId={item.id}\n icon={icon}\n isDisabled={isDisabled}\n title={title}\n panel={item.panelContentNode}\n hideIndicator={useDragInteraction}\n badge={<Badge type={item.badgeType} />}\n addGroupSeparator={addGroupSeparator}\n keepContentsMounted={item.keepContentsLoaded}\n />\n );\n}\n\n/** @internal */\nfunction GroupPopupItem({\n item,\n addGroupSeparator,\n}: {\n item: GroupButton;\n addGroupSeparator: boolean;\n}) {\n const { useDragInteraction } = useToolbarWithOverflowDirectionContext();\n const title = ConditionalStringValue.getValue(item.label)!;\n const panel = React.useMemo(\n () => <PopupItemsPanel groupItem={item} activateOnPointerUp={false} />,\n [item]\n );\n const providerId =\n \"providerId\" in item ? (item.providerId as string) : undefined;\n if (useDragInteraction) {\n return (\n <PopupItemWithDrag\n key={item.id}\n itemId={item.id}\n providerId={providerId}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={IconHelper.getIconReactNode(item.icon, item.internalData)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={title}\n groupItem={item}\n badge={<Badge type={item.badgeType} />}\n addGroupSeparator={addGroupSeparator}\n />\n );\n }\n return (\n <PopupItem\n key={item.id}\n itemId={item.id}\n providerId={providerId}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={IconHelper.getIconReactNode(item.icon, item.internalData)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={title}\n panel={panel}\n badge={<Badge type={item.badgeType} />}\n hideIndicator={useDragInteraction}\n addGroupSeparator={addGroupSeparator}\n />\n );\n}\n\n/** @internal */\nfunction ActionItem({\n item,\n addGroupSeparator,\n}: {\n item: ActionButton;\n addGroupSeparator: boolean;\n}) {\n const title = ConditionalStringValue.getValue(item.label)!;\n const { onItemExecuted } = useToolbarWithOverflowDirectionContext();\n const onExecute = React.useCallback(() => {\n item.execute();\n onItemExecuted(item);\n }, [item, onItemExecuted]);\n\n const providerId =\n \"providerId\" in item ? (item.providerId as string) : undefined;\n return (\n <ToolbarButtonItem\n itemId={item.id}\n providerId={providerId}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n key={item.id}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n title={title}\n icon={IconHelper.getIconReactNode(item.icon, item.internalData)}\n isActive={item.isActive}\n onClick={onExecute}\n badge={<Badge type={item.badgeType} />}\n addGroupSeparator={addGroupSeparator}\n />\n );\n}\n\n/** @internal */\nexport function ToolbarItemComponent({\n item,\n addGroupSeparator,\n}: {\n // eslint-disable-next-line deprecation/deprecation\n item: ToolbarItem;\n addGroupSeparator: boolean;\n}) {\n if (ToolbarItemUtilities.isGroupButton(item)) {\n return <GroupPopupItem item={item} addGroupSeparator={addGroupSeparator} />;\n } else if (isCustomToolbarItem(item)) {\n return <CustomItem item={item} addGroupSeparator={addGroupSeparator} />;\n } else {\n if (ToolbarItemUtilities.isActionButton(item)) {\n return <ActionItem item={item} addGroupSeparator={addGroupSeparator} />;\n }\n }\n return null;\n}\n\n/** @internal */\nexport function useToolbarWithOverflowDirectionContext() {\n return React.useContext(ToolbarWithOverflowDirectionContext);\n}\n\nfunction OverflowItemsContainer(p: { children: React.ReactNode }) {\n return <>{p.children}</>;\n}\n\nfunction getItemWrapperClass(child: React.ReactNode) {\n if (React.isValidElement(child)) {\n if (child.props && child.props.addGroupSeparator)\n return \"components-toolbar-button-add-gap-before\";\n }\n return undefined;\n}\n\n/**\n * Recursively looks through all items and groups and removes the hidden items\n * from the working object.\n * @param items List of object to analyse\n * @returns Copy of the provided items, minus the hidden ones.\n */\nfunction filterHiddenItems<T extends CommonToolbarItem>(\n items: ReadonlyArray<T>\n): T[] {\n return items\n .filter((item) => !ConditionalBooleanValue.getValue(item.isHidden))\n .map((i) => {\n if (\"items\" in i) {\n return { ...i, items: filterHiddenItems(i.items) };\n }\n return i;\n });\n}\n\n/** Properties of [[ToolbarComponent]] component.\n * @internal\n */\nexport interface InternalToolbarComponentProps\n extends CommonProps,\n NoChildrenProps {\n /** Describes to which direction the popup panels are expanded. Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes if items that do not fit available space should move to an expandable panel. Defaults to: false */\n enableOverflow?:\n | boolean\n | {\n /** Describes to which direction the overflow popup panels are expanded if overflow is enabled. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n };\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: CommonToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n /** SyncEvents on which the conditional should listen to */\n syncUiEvent?: BeEvent<(args: { eventIds: Set<string> }) => void>;\n}\n\n/** Component that displays toolbar items.\n * @internal\n */\nexport function InternalToolbarComponent(props: InternalToolbarComponentProps) {\n const expandsTo = props.expandsTo ? props.expandsTo : Direction.Bottom;\n const useDragInteraction = !!props.useDragInteraction;\n const panelAlignment = props.panelAlignment\n ? props.panelAlignment\n : ToolbarPanelAlignment.Start;\n const useHeight =\n expandsTo === Direction.Right || expandsTo === Direction.Left;\n const { translate } = useTranslation();\n const [isOverflowPanelOpen, setIsOverflowPanelOpen] = React.useState(false);\n const [popupPanelCount, setPopupPanelCount] = React.useState(0);\n const isMounted = React.useRef(false);\n React.useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n });\n const handlePopupPanelOpenClose = React.useCallback((isOpening: boolean) => {\n // use setTimeout to avoid warning about setting state in ToolbarWithOverflow from render method of PopupItem/PopupItemWithDrag\n setTimeout(() => {\n if (!isMounted.current) return;\n setPopupPanelCount((prev) => {\n const nextCount = isOpening ? prev + 1 : prev - 1;\n return nextCount < 0 ? 0 : nextCount;\n });\n });\n }, []);\n\n const width = React.useRef<number | undefined>(undefined);\n\n const eventSynchedItems = useConditionalSynchedItems(\n props.items,\n props.syncUiEvent\n );\n\n const availableNodes = React.useMemo<React.ReactNode>(() => {\n const filteredItems = filterHiddenItems(eventSynchedItems);\n return filteredItems.map((item, index) => {\n let addGroupSeparator = false;\n if (index > 0)\n addGroupSeparator =\n item.groupPriority !== filteredItems[index - 1].groupPriority;\n return (\n <ToolbarItemComponent\n key={item.id}\n item={item}\n addGroupSeparator={!!addGroupSeparator}\n />\n );\n });\n }, [eventSynchedItems]);\n /* overflowItemKeys - keys of items to show in overflow panel\n * handleContainerResize - handler called when container <div> is resized.\n * handleOverflowResize - handler called when determining size of overflow indicator/button.\n * handleEntryResize - handler called when determining size of each item/button. */\n const [\n overflowItemKeys,\n handleContainerResize,\n handleOverflowResize,\n handleEntryResize,\n ] = useOverflow(availableNodes, panelAlignment === ToolbarPanelAlignment.End);\n // handler called by ResizeObserver\n const handleResize = React.useCallback(\n (w: number) => {\n width.current = w;\n width.current !== undefined && handleContainerResize(width.current);\n },\n [handleContainerResize]\n );\n const resizeObserverRef = useResizeObserverSingleDimension(\n handleResize,\n useHeight\n );\n const handleClick = React.useCallback(() => {\n setIsOverflowPanelOpen((prev) => !prev);\n }, []);\n const handleClose = React.useCallback(() => {\n setIsOverflowPanelOpen(false);\n }, []);\n\n // Not setting the ref will disable overflow management, but will keep proper refresh of items.\n const ref = props.enableOverflow ? resizeObserverRef : undefined;\n const availableItems = React.Children.toArray(availableNodes);\n const displayedItems = availableItems.reduce<\n Array<[string, React.ReactNode]>\n >((acc, child, index) => {\n const key = getChildKey(child, index);\n if (!overflowItemKeys || overflowItemKeys.indexOf(key) < 0) {\n acc.push([key, child]);\n }\n return acc;\n }, []);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const overflowPanelItems = overflowItemKeys\n ? availableItems.reduce<Array<[string, React.ReactNode]>>(\n (acc, child, index) => {\n const key = getChildKey(child, index);\n if (overflowItemKeys.indexOf(key) >= 0) {\n acc.push([key, child]);\n }\n return acc;\n },\n []\n )\n : [];\n\n const direction = getToolbarDirection(expandsTo);\n const overflowExpandsTo =\n (typeof props.enableOverflow !== \"boolean\" &&\n props.enableOverflow?.overflowExpandsTo) ||\n Direction.Right;\n const addOverflowButton = React.useCallback(\n (atStart: boolean) => {\n const overflowItems = !!atStart\n ? overflowPanelItems.reverse()\n : overflowPanelItems;\n return (\n <ToolbarItemContext.Provider\n value={{\n hasOverflow: false,\n useHeight,\n onResize: handleOverflowResize,\n }}\n >\n <ToolbarOverflowButton\n expandsTo={expandsTo}\n onClick={handleClick}\n onClose={handleClose}\n open={overflowItems.length > 0 && isOverflowPanelOpen}\n panelNode={\n <ToolbarOverflowPanel>\n <OverflowItemsContainer>\n {overflowItems.map(([key, child]) => {\n return (\n <ToolbarItemContext.Provider\n key={key}\n value={{\n hasOverflow: true,\n useHeight,\n onResize: () => {},\n }}\n >\n {\n <ItemWrapper className={getItemWrapperClass(child)}>\n {child}\n </ItemWrapper>\n }\n </ToolbarItemContext.Provider>\n );\n })}\n </OverflowItemsContainer>\n </ToolbarOverflowPanel>\n }\n title={translate(\"toolbar.overflow\")}\n />\n </ToolbarItemContext.Provider>\n );\n },\n [\n overflowPanelItems,\n useHeight,\n handleOverflowResize,\n expandsTo,\n handleClick,\n handleClose,\n isOverflowPanelOpen,\n translate,\n ]\n );\n\n const className = classnames(\n \"components-toolbar-overflow-sizer\",\n OrthogonalDirectionHelpers.getCssClassName(direction),\n props.className\n );\n\n const showOverflowAtStart =\n direction === OrthogonalDirection.Horizontal &&\n panelAlignment === ToolbarPanelAlignment.End;\n /* The ItemWrapper is used to wrap the <Item> <ExpandableItem> with a <div> that specifies a ref that the sizing logic uses to determine the\n size of the item. */\n return (\n <ToolbarWithOverflowDirectionContext.Provider\n value={{\n expandsTo,\n direction,\n overflowExpandsTo,\n panelAlignment,\n useDragInteraction,\n toolbarOpacitySetting:\n props.toolbarOpacitySetting ?? ToolbarOpacitySetting.Proximity,\n overflowDirection:\n direction === OrthogonalDirection.Horizontal\n ? OrthogonalDirection.Vertical\n : OrthogonalDirection.Horizontal,\n openPopupCount: popupPanelCount,\n onPopupPanelOpenClose: handlePopupPanelOpenClose,\n overflowDisplayActive:\n overflowPanelItems.length > 0 && isOverflowPanelOpen,\n onItemExecuted: props.onItemExecuted ? props.onItemExecuted : () => {},\n onKeyDown: props.onKeyDown\n ? props.onKeyDown\n : (_e: React.KeyboardEvent) => {},\n }}\n >\n {availableItems.length > 0 && (\n <div\n className={className}\n ref={ref}\n style={props.style}\n onKeyDown={props.onKeyDown}\n role=\"presentation\"\n >\n <ToolbarItems className=\"components-items\" direction={direction}>\n {props.enableOverflow &&\n (!overflowItemKeys || overflowItemKeys.length > 0) &&\n showOverflowAtStart &&\n addOverflowButton(true)}\n {displayedItems.map(([key, child]) => {\n const onEntryResize = handleEntryResize(key);\n return (\n <ToolbarItemContext.Provider\n key={key}\n value={{\n hasOverflow: false,\n useHeight,\n onResize: onEntryResize,\n }}\n >\n <ItemWrapper className={getItemWrapperClass(child)}>\n {child}\n </ItemWrapper>\n </ToolbarItemContext.Provider>\n );\n })}\n {props.enableOverflow &&\n (!overflowItemKeys || overflowItemKeys.length > 0) &&\n !showOverflowAtStart &&\n addOverflowButton(false)}\n </ToolbarItems>\n </div>\n )}\n </ToolbarWithOverflowDirectionContext.Provider>\n );\n}\n\n/** Returns key of a child. Must be used along with React.Children.toArray to preserve the semantics of availableItems.\n * @internal\n */\nfunction getChildKey(child: React.ReactNode, index: number) {\n if (React.isValidElement(child) && child.key !== null) {\n return child.key.toString();\n }\n return index.toString();\n}\n\n/** Returns a subset of toolbar item entry keys that exceed given width and should be overflowItemKeys.\n * @internal\n */\nfunction determineOverflowItems(\n size: number,\n entries: ReadonlyArray<readonly [string, number]>,\n overflowButtonSize: number,\n overflowButtonAtStart: boolean\n): string[] {\n let toolbarSize = 0;\n const buttonPadding = 2;\n if (overflowButtonAtStart && entries.length > 0) {\n let i = entries.length - 1;\n for (; i >= 0; i--) {\n const w = entries[i][1] + buttonPadding;\n const newSettingsWidth = toolbarSize + w;\n if (newSettingsWidth > size) {\n toolbarSize += overflowButtonSize + buttonPadding;\n break;\n }\n toolbarSize = newSettingsWidth;\n }\n if (i >= 0) {\n let j = i + 1;\n for (; j < entries.length; j++) {\n if (toolbarSize <= size) break;\n const w = entries[j][1] + buttonPadding;\n toolbarSize -= w;\n }\n\n return entries.slice(0, j).map((e) => e[0]);\n } else {\n return [];\n }\n } else {\n let i = 0;\n for (; i < entries.length; i++) {\n const w = entries[i][1] + buttonPadding;\n const newSettingsWidth = toolbarSize + w;\n if (newSettingsWidth > size) {\n toolbarSize += overflowButtonSize + buttonPadding;\n break;\n }\n toolbarSize = newSettingsWidth;\n }\n let j = i;\n for (; j > 0; j--) {\n if (toolbarSize <= size) break;\n const w = entries[j][1] + buttonPadding;\n toolbarSize -= w;\n }\n\n return entries.slice(j).map((e) => e[0]);\n }\n}\n\n/** Hook that returns a list of overflowItemKeys availableItems.\n * @internal\n */\nfunction useOverflow(\n availableItems: React.ReactNode,\n overflowButtonAtStart: boolean\n): [\n ReadonlyArray<string> | undefined,\n (size: number) => void,\n (size: number) => void,\n (key: string) => (size: number) => void\n] {\n const [overflowItemKeys, setOverflown] =\n React.useState<ReadonlyArray<string>>();\n const itemSizes = React.useRef(new Map<string, number | undefined>());\n const size = React.useRef<number | undefined>(undefined);\n const overflowButtonSize = React.useRef<number | undefined>(undefined);\n\n const calculateOverflow = React.useCallback(() => {\n const sizes = verifiedMapEntries(itemSizes.current);\n if (\n size.current === undefined ||\n sizes === undefined ||\n overflowButtonSize.current === undefined\n ) {\n setOverflown(undefined);\n return;\n }\n\n // Calculate overflow.\n const newOverflown = determineOverflowItems(\n size.current,\n [...sizes.entries()],\n overflowButtonSize.current,\n overflowButtonAtStart\n );\n setOverflown((prevOverflown) => {\n return eql(prevOverflown, newOverflown) ? prevOverflown : newOverflown;\n });\n }, [overflowButtonAtStart]);\n\n React.useLayoutEffect(() => {\n const newEntryWidths = new Map<string, number | undefined>();\n const array = React.Children.toArray(availableItems);\n for (let i = 0; i < array.length; i++) {\n const child = array[i];\n const key = getChildKey(child, i);\n const lastW = itemSizes.current.get(key);\n newEntryWidths.set(key, lastW);\n }\n itemSizes.current = newEntryWidths;\n calculateOverflow();\n }, [availableItems, calculateOverflow]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n const calculate = size.current !== w;\n size.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowButtonSize.current !== w;\n overflowButtonSize.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = itemSizes.current.get(key);\n if (oldW !== w) {\n itemSizes.current.set(key, w);\n calculateOverflow();\n }\n },\n [calculateOverflow]\n );\n\n return [\n overflowItemKeys,\n handleContainerResize,\n handleOverflowResize,\n handleEntryResize,\n ];\n}\n\n/** Interface toolbars use to define context for its items.\n * @internal\n */\nexport interface ToolbarItemContextArgs {\n readonly hasOverflow: boolean;\n readonly useHeight: boolean;\n readonly onResize: (w: number) => void;\n}\n\n/** Interface toolbars use to define context for its items.\n * @internal\n */\nexport const ToolbarItemContext = React.createContext<ToolbarItemContextArgs>({\n hasOverflow: false,\n useHeight: false,\n onResize: () => {\n // intentionally do nothing by default.\n },\n});\n\n/** @internal */\nexport function useToolItemEntryContext() {\n return React.useContext(ToolbarItemContext);\n}\n\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\nfunction eql(prev: readonly string[] | undefined, value: readonly string[]) {\n if (!prev) return false;\n if (prev.length !== value.length) return false;\n for (let i = 0; i < prev.length; i++) {\n const p = prev[i];\n const v = value[i];\n if (p !== v) return false;\n }\n return true;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Items.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/Items.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+BAA+B;IAC/B,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAiEpD"}
1
+ {"version":3,"file":"Items.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/Items.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+BAA+B;IAC/B,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBA+DpD"}
@@ -31,7 +31,6 @@ export function ToolbarItems(props) {
31
31
  const isInitialMount = React.useRef(true);
32
32
  const { onElementRef, proximityScale } = useWidgetOpacityContext();
33
33
  React.useEffect(() => {
34
- // istanbul ignore else
35
34
  if (isInitialMount.current) {
36
35
  isInitialMount.current = false;
37
36
  onElementRef(ref);
@@ -43,7 +42,6 @@ export function ToolbarItems(props) {
43
42
  toolbarOpacity = calculateToolbarOpacity(proximityScale);
44
43
  boxShadowOpacity = calculateBoxShadowOpacity(proximityScale);
45
44
  filterBlur = calculateBackdropFilterBlur(proximityScale);
46
- // istanbul ignore next
47
45
  if (proximityScale < 0.25)
48
46
  showSeparators = false;
49
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Items.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/Items.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,cAAc,CAAC;AACtB,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oCAAoC,EACpC,kCAAkC,EAClC,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,sCAAsC,GACvC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAYnE;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,GACpE,sCAAsC,EAAE,CAAC;IAC3C,MAAM,wBAAwB,GAC5B,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC;IAE9D,IAAI,cAAc,GAAG,wBAAwB;QAC3C,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CACJ,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAC7C,wBAAwB,CACzB,CACF,CAAC;IACN,IAAI,gBAAgB,GAAG,wBAAwB;QAC7C,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,kCAAkC,CAAC;IACvC,IAAI,UAAU,GAAG,wBAAwB;QACvC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,oCAAoC,CAAC;IACzC,IAAI,cAAc,GAChB,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAEnE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;YAC/B,YAAY,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,IACE,qBAAqB,KAAK,qBAAqB,CAAC,SAAS;QACzD,cAAc,GAAG,CAAC;QAClB,CAAC,qBAAqB,EACtB,CAAC;QACD,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACzD,gBAAgB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAC7D,UAAU,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;QACzD,uBAAuB;QACvB,IAAI,cAAc,GAAG,IAAI;YAAE,cAAc,GAAG,KAAK,CAAC;IACpD,CAAC;IAED,MAAM,QAAQ,GAAwB;QACpC,eAAe,EAAE,yBAAyB,CAAC,cAAc,CAAC;QAC1D,SAAS,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;QAChD,cAAc,EAAE,wBAAwB,CAAC,UAAU,CAAC;QACpD,GAAG,KAAK,CAAC,KAAK;KACf,CAAC;IAEF,MAAM,SAAS,GAAG,UAAU,CAC1B,oCAAoC,EACpC,0BAA0B,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAC3D,cAAc,IAAI,oCAAoC,EACtD,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IACjD,KAAK,CAAC,QAAQ,CACX,CACP,CAAC;AACJ,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 Toolbar\n */\n\nimport \"./Items.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n calculateBackdropFilterBlur,\n calculateBoxShadowOpacity,\n calculateToolbarOpacity,\n getToolbarBackdropFilter,\n getToolbarBackgroundColor,\n getToolbarBoxShadow,\n TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT,\n TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT,\n useWidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport {\n ToolbarOpacitySetting,\n useToolbarWithOverflowDirectionContext,\n} from \"./InternalToolbarComponent\";\nimport type { OrthogonalDirection } from \"./utilities/Direction\";\nimport { OrthogonalDirectionHelpers } from \"./utilities/Direction\";\n\n/** Properties of [[ToolbarItems]] component.\n * @internal\n */\nexport interface ToolbarItemsProps extends CommonProps {\n /** Toolbar items. */\n children?: React.ReactNode;\n /** Toolbar items direction. */\n direction: OrthogonalDirection;\n}\n\n/** Toolbar items container. Used in [[ToolbarWithOverflow]] component.\n * @internal\n */\nexport function ToolbarItems(props: ToolbarItemsProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const { toolbarOpacitySetting, openPopupCount, overflowDisplayActive } =\n useToolbarWithOverflowDirectionContext();\n const useTransparentBackground =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent;\n\n let toolbarOpacity = useTransparentBackground\n ? 0\n : Number(\n document.documentElement.style.getPropertyValue(\n \"--buic-toolbar-opacity\"\n )\n );\n let boxShadowOpacity = useTransparentBackground\n ? 0\n : TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT;\n let filterBlur = useTransparentBackground\n ? 0\n : TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT;\n let showSeparators =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent ? false : true;\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n // istanbul ignore else\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n if (\n toolbarOpacitySetting === ToolbarOpacitySetting.Proximity &&\n openPopupCount < 1 &&\n !overflowDisplayActive\n ) {\n toolbarOpacity = calculateToolbarOpacity(proximityScale);\n boxShadowOpacity = calculateBoxShadowOpacity(proximityScale);\n filterBlur = calculateBackdropFilterBlur(proximityScale);\n // istanbul ignore next\n if (proximityScale < 0.25) showSeparators = false;\n }\n\n const divStyle: React.CSSProperties = {\n backgroundColor: getToolbarBackgroundColor(toolbarOpacity),\n boxShadow: getToolbarBoxShadow(boxShadowOpacity),\n backdropFilter: getToolbarBackdropFilter(filterBlur),\n ...props.style,\n };\n\n const className = classnames(\n \"components-toolbar-items-container\",\n OrthogonalDirectionHelpers.getCssClassName(props.direction),\n showSeparators && \"components-toolbar-show-decorators\",\n props.className\n );\n\n return (\n <div className={className} style={divStyle} ref={ref}>\n {props.children}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Items.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/Items.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 \"./Items.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n calculateBackdropFilterBlur,\n calculateBoxShadowOpacity,\n calculateToolbarOpacity,\n getToolbarBackdropFilter,\n getToolbarBackgroundColor,\n getToolbarBoxShadow,\n TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT,\n TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT,\n useWidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport {\n ToolbarOpacitySetting,\n useToolbarWithOverflowDirectionContext,\n} from \"./InternalToolbarComponent\";\nimport type { OrthogonalDirection } from \"./utilities/Direction\";\nimport { OrthogonalDirectionHelpers } from \"./utilities/Direction\";\n\n/** Properties of [[ToolbarItems]] component.\n * @internal\n */\nexport interface ToolbarItemsProps extends CommonProps {\n /** Toolbar items. */\n children?: React.ReactNode;\n /** Toolbar items direction. */\n direction: OrthogonalDirection;\n}\n\n/** Toolbar items container. Used in [[ToolbarWithOverflow]] component.\n * @internal\n */\nexport function ToolbarItems(props: ToolbarItemsProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const { toolbarOpacitySetting, openPopupCount, overflowDisplayActive } =\n useToolbarWithOverflowDirectionContext();\n const useTransparentBackground =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent;\n\n let toolbarOpacity = useTransparentBackground\n ? 0\n : Number(\n document.documentElement.style.getPropertyValue(\n \"--buic-toolbar-opacity\"\n )\n );\n let boxShadowOpacity = useTransparentBackground\n ? 0\n : TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT;\n let filterBlur = useTransparentBackground\n ? 0\n : TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT;\n let showSeparators =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent ? false : true;\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n if (\n toolbarOpacitySetting === ToolbarOpacitySetting.Proximity &&\n openPopupCount < 1 &&\n !overflowDisplayActive\n ) {\n toolbarOpacity = calculateToolbarOpacity(proximityScale);\n boxShadowOpacity = calculateBoxShadowOpacity(proximityScale);\n filterBlur = calculateBackdropFilterBlur(proximityScale);\n if (proximityScale < 0.25) showSeparators = false;\n }\n\n const divStyle: React.CSSProperties = {\n backgroundColor: getToolbarBackgroundColor(toolbarOpacity),\n boxShadow: getToolbarBoxShadow(boxShadowOpacity),\n backdropFilter: getToolbarBackdropFilter(filterBlur),\n ...props.style,\n };\n\n const className = classnames(\n \"components-toolbar-items-container\",\n OrthogonalDirectionHelpers.getCssClassName(props.direction),\n showSeparators && \"components-toolbar-show-decorators\",\n props.className\n );\n\n return (\n <div className={className} style={divStyle} ref={ref}>\n {props.children}\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowPanel.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/OverflowPanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuBrD;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,qBA2DpE"}
1
+ {"version":3,"file":"OverflowPanel.d.ts","sourceRoot":"","sources":["../../../../src/components-react/toolbar/OverflowPanel.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuBrD;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,qBA0DpE"}
@@ -26,7 +26,6 @@ export function ToolbarOverflowPanel(props) {
26
26
  ? 0
27
27
  : TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT;
28
28
  let showSeparators = toolbarOpacitySetting === ToolbarOpacitySetting.Transparent ? false : true;
29
- // istanbul ignore next
30
29
  if (toolbarOpacitySetting === ToolbarOpacitySetting.Proximity &&
31
30
  openPopupCount < 1 &&
32
31
  !overflowDisplayActive) {
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowPanel.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/OverflowPanel.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAC9B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oCAAoC,EACpC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,sCAAsC,GACvC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAU/B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,EACJ,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,GAClB,GAAG,sCAAsC,EAAE,CAAC;IAC7C,MAAM,EAAE,cAAc,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAErD,MAAM,wBAAwB,GAC5B,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC;IAC9D,IAAI,cAAc,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAC5E,IAAI,gBAAgB,GAAG,wBAAwB;QAC7C,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,kCAAkC,CAAC;IACvC,IAAI,UAAU,GAAG,wBAAwB;QACvC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,oCAAoC,CAAC;IACzC,IAAI,cAAc,GAChB,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,uBAAuB;IACvB,IACE,qBAAqB,KAAK,qBAAqB,CAAC,SAAS;QACzD,cAAc,GAAG,CAAC;QAClB,CAAC,qBAAqB,EACtB,CAAC;QACD,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACzD,gBAAgB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAC7D,UAAU,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,cAAc,GAAG,IAAI;YAAE,cAAc,GAAG,KAAK,CAAC;IACpD,CAAC;IAED,MAAM,QAAQ,GAAwB;QACpC,eAAe,EAAE,yBAAyB,CAAC,cAAc,CAAC;QAC1D,SAAS,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;QAChD,cAAc,EAAE,wBAAwB,CAAC,UAAU,CAAC;QACpD,GAAG,KAAK,CAAC,KAAK;KACf,CAAC;IAEF,MAAM,SAAS,GAAG,UAAU,CAC1B,mCAAmC,EACnC,oCAAoC,EACpC,0BAA0B,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAC7D,GAAG,0BAA0B,CAAC,eAAe,CAC3C,iBAAiB,CAClB,IAAI,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAClD,cAAc,IAAI,oCAAoC,EACtD,gBAAgB,CAAC,eAAe,CAAC,iBAAiB,CAAC,EACnD,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,IACvC,KAAK,CAAC,QAAQ,CACX,CACP,CAAC;AACJ,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 ToolSettings\n */\n\nimport \"./OverflowPanel.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n calculateBackdropFilterBlur,\n calculateBoxShadowOpacity,\n calculateToolbarOpacity,\n getToolbarBackdropFilter,\n getToolbarBackgroundColor,\n getToolbarBoxShadow,\n TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT,\n TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT,\n TOOLBAR_OPACITY_DEFAULT,\n useWidgetOpacityContext,\n} from \"@itwin/core-react\";\n\nimport {\n ToolbarOpacitySetting,\n useToolbarWithOverflowDirectionContext,\n} from \"./InternalToolbarComponent\";\nimport {\n DirectionHelpers,\n OrthogonalDirectionHelpers,\n} from \"./utilities/Direction\";\n\n/** Properties of [[ToolbarOverflowPanel]] component.\n * @internal\n */\nexport interface ToolbarOverflowPanelProps extends CommonProps {\n /** Panel content. */\n children?: React.ReactNode;\n}\n\n/** Displays overflown tool settings.\n * @internal\n */\nexport function ToolbarOverflowPanel(props: ToolbarOverflowPanelProps) {\n const {\n toolbarOpacitySetting,\n openPopupCount,\n overflowDisplayActive,\n expandsTo,\n overflowExpandsTo,\n overflowDirection,\n } = useToolbarWithOverflowDirectionContext();\n const { proximityScale } = useWidgetOpacityContext();\n\n const useTransparentBackground =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent;\n let toolbarOpacity = useTransparentBackground ? 0 : TOOLBAR_OPACITY_DEFAULT;\n let boxShadowOpacity = useTransparentBackground\n ? 0\n : TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT;\n let filterBlur = useTransparentBackground\n ? 0\n : TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT;\n let showSeparators =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent ? false : true;\n\n // istanbul ignore next\n if (\n toolbarOpacitySetting === ToolbarOpacitySetting.Proximity &&\n openPopupCount < 1 &&\n !overflowDisplayActive\n ) {\n toolbarOpacity = calculateToolbarOpacity(proximityScale);\n boxShadowOpacity = calculateBoxShadowOpacity(proximityScale);\n filterBlur = calculateBackdropFilterBlur(proximityScale);\n if (proximityScale < 0.25) showSeparators = false;\n }\n\n const divStyle: React.CSSProperties = {\n backgroundColor: getToolbarBackgroundColor(toolbarOpacity),\n boxShadow: getToolbarBoxShadow(boxShadowOpacity),\n backdropFilter: getToolbarBackdropFilter(filterBlur),\n ...props.style,\n };\n\n const className = classnames(\n \"components-toolbar-overflow-panel\",\n \"components-toolbar-items-container\",\n OrthogonalDirectionHelpers.getCssClassName(overflowDirection),\n `${OrthogonalDirectionHelpers.getCssClassName(\n overflowDirection\n )}-${DirectionHelpers.getCssClassName(expandsTo)}`,\n showSeparators && \"components-toolbar-show-decorators\",\n DirectionHelpers.getCssClassName(overflowExpandsTo),\n props.className\n );\n\n return (\n <div className={className} style={divStyle}>\n {props.children}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"OverflowPanel.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/OverflowPanel.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,sBAAsB,CAAC;AAC9B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oCAAoC,EACpC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,sCAAsC,GACvC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAU/B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,EACJ,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,GAClB,GAAG,sCAAsC,EAAE,CAAC;IAC7C,MAAM,EAAE,cAAc,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAErD,MAAM,wBAAwB,GAC5B,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC;IAC9D,IAAI,cAAc,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAC5E,IAAI,gBAAgB,GAAG,wBAAwB;QAC7C,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,kCAAkC,CAAC;IACvC,IAAI,UAAU,GAAG,wBAAwB;QACvC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,oCAAoC,CAAC;IACzC,IAAI,cAAc,GAChB,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,IACE,qBAAqB,KAAK,qBAAqB,CAAC,SAAS;QACzD,cAAc,GAAG,CAAC;QAClB,CAAC,qBAAqB,EACtB,CAAC;QACD,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACzD,gBAAgB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAC7D,UAAU,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,cAAc,GAAG,IAAI;YAAE,cAAc,GAAG,KAAK,CAAC;IACpD,CAAC;IAED,MAAM,QAAQ,GAAwB;QACpC,eAAe,EAAE,yBAAyB,CAAC,cAAc,CAAC;QAC1D,SAAS,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;QAChD,cAAc,EAAE,wBAAwB,CAAC,UAAU,CAAC;QACpD,GAAG,KAAK,CAAC,KAAK;KACf,CAAC;IAEF,MAAM,SAAS,GAAG,UAAU,CAC1B,mCAAmC,EACnC,oCAAoC,EACpC,0BAA0B,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAC7D,GAAG,0BAA0B,CAAC,eAAe,CAC3C,iBAAiB,CAClB,IAAI,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAClD,cAAc,IAAI,oCAAoC,EACtD,gBAAgB,CAAC,eAAe,CAAC,iBAAiB,CAAC,EACnD,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,IACvC,KAAK,CAAC,QAAQ,CACX,CACP,CAAC;AACJ,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 ToolSettings\n */\n\nimport \"./OverflowPanel.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n calculateBackdropFilterBlur,\n calculateBoxShadowOpacity,\n calculateToolbarOpacity,\n getToolbarBackdropFilter,\n getToolbarBackgroundColor,\n getToolbarBoxShadow,\n TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT,\n TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT,\n TOOLBAR_OPACITY_DEFAULT,\n useWidgetOpacityContext,\n} from \"@itwin/core-react\";\n\nimport {\n ToolbarOpacitySetting,\n useToolbarWithOverflowDirectionContext,\n} from \"./InternalToolbarComponent\";\nimport {\n DirectionHelpers,\n OrthogonalDirectionHelpers,\n} from \"./utilities/Direction\";\n\n/** Properties of [[ToolbarOverflowPanel]] component.\n * @internal\n */\nexport interface ToolbarOverflowPanelProps extends CommonProps {\n /** Panel content. */\n children?: React.ReactNode;\n}\n\n/** Displays overflown tool settings.\n * @internal\n */\nexport function ToolbarOverflowPanel(props: ToolbarOverflowPanelProps) {\n const {\n toolbarOpacitySetting,\n openPopupCount,\n overflowDisplayActive,\n expandsTo,\n overflowExpandsTo,\n overflowDirection,\n } = useToolbarWithOverflowDirectionContext();\n const { proximityScale } = useWidgetOpacityContext();\n\n const useTransparentBackground =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent;\n let toolbarOpacity = useTransparentBackground ? 0 : TOOLBAR_OPACITY_DEFAULT;\n let boxShadowOpacity = useTransparentBackground\n ? 0\n : TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT;\n let filterBlur = useTransparentBackground\n ? 0\n : TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT;\n let showSeparators =\n toolbarOpacitySetting === ToolbarOpacitySetting.Transparent ? false : true;\n\n if (\n toolbarOpacitySetting === ToolbarOpacitySetting.Proximity &&\n openPopupCount < 1 &&\n !overflowDisplayActive\n ) {\n toolbarOpacity = calculateToolbarOpacity(proximityScale);\n boxShadowOpacity = calculateBoxShadowOpacity(proximityScale);\n filterBlur = calculateBackdropFilterBlur(proximityScale);\n if (proximityScale < 0.25) showSeparators = false;\n }\n\n const divStyle: React.CSSProperties = {\n backgroundColor: getToolbarBackgroundColor(toolbarOpacity),\n boxShadow: getToolbarBoxShadow(boxShadowOpacity),\n backdropFilter: getToolbarBackdropFilter(filterBlur),\n ...props.style,\n };\n\n const className = classnames(\n \"components-toolbar-overflow-panel\",\n \"components-toolbar-items-container\",\n OrthogonalDirectionHelpers.getCssClassName(overflowDirection),\n `${OrthogonalDirectionHelpers.getCssClassName(\n overflowDirection\n )}-${DirectionHelpers.getCssClassName(expandsTo)}`,\n showSeparators && \"components-toolbar-show-decorators\",\n DirectionHelpers.getCssClassName(overflowExpandsTo),\n props.className\n );\n\n return (\n <div className={className} style={divStyle}>\n {props.children}\n </div>\n );\n}\n"]}
@@ -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,yCAQ5B,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,qBAiF9C;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,qBAUxD"}
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,qBAUxD"}
@@ -17,9 +17,9 @@ import { toToolbarPopupRelativePosition } from "./PopupItemWithDrag";
17
17
  */
18
18
  export const ToolbarPopupContext = React.createContext({
19
19
  /** function used to close popup panel */
20
- closePanel: /* istanbul ignore next */ () => { },
20
+ closePanel: () => { },
21
21
  /** if popup panel is a GroupButton then this is call to set the selected action item within the panel */
22
- setSelectedItem: /* istanbul ignore next */ (_buttonItem) => { },
22
+ setSelectedItem: (_buttonItem) => { },
23
23
  });
24
24
  /**
25
25
  * React hook used to retrieve the ToolbarPopupContext.
@@ -36,7 +36,6 @@ export function PopupItem(props) {
36
36
  const { expandsTo, overflowExpandsTo, panelAlignment, onPopupPanelOpenClose, } = useToolbarWithOverflowDirectionContext();
37
37
  const processPanelOpenClose = React.useCallback((isOpening) => {
38
38
  setPanelShown((prev) => {
39
- // istanbul ignore else
40
39
  if (prev !== isOpening)
41
40
  onPopupPanelOpenClose(isOpening);
42
41
  return isOpening;
@@ -45,13 +44,11 @@ export function PopupItem(props) {
45
44
  // handle open and closing overflow panel
46
45
  const onButtonClick = React.useCallback(() => {
47
46
  processPanelOpenClose(!isPanelShown);
48
- // istanbul ignore next
49
47
  if (props.onClick)
50
48
  props.onClick();
51
49
  }, [props, isPanelShown, processPanelOpenClose]);
52
50
  const className = classnames("components-toolbar-button-item", "components-toolbar-expandable-button", props.isDisabled && "components-disabled", props.className);
53
51
  const [targetRef, target] = useRefState();
54
- // istanbul ignore next
55
52
  const handleClose = React.useCallback(() => {
56
53
  processPanelOpenClose(false);
57
54
  }, [processPanelOpenClose]);
@@ -64,7 +61,7 @@ export function PopupItem(props) {
64
61
  React.createElement("button", { "data-item-id": props.itemId, "data-item-type": "tool-button-popup", "data-item-group-priority": props.groupPriority, "data-item-priority": props.itemPriority, "data-item-provider-id": props.providerId, ref: targetRef, disabled: props.isDisabled, onClick: onButtonClick, onKeyDown: props.onKeyDown, className: className, style: props.style, title: props.title },
65
62
  React.createElement("div", { className: "components-icon" }, props.icon),
66
63
  props.badge && React.createElement("div", { className: "components-badge" }, props.badge),
67
- hideIndicator ? /* istanbul ignore next */ undefined : (React.createElement("div", { className: "components-triangle" }))),
64
+ hideIndicator ? undefined : React.createElement("div", { className: "components-triangle" })),
68
65
  React.createElement(PopupItemPopup, { isOpen: isPanelShown, onClose: handleClose, position: toToolbarPopupRelativePosition(expandsToDirection, panelAlignment), target: target, keepContentsMounted: props.keepContentsMounted }, panel)));
69
66
  }
70
67
  /** @internal */