@itwin/components-react 4.0.0-dev.19 → 4.0.0-dev.20

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 (440) hide show
  1. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  2. package/lib/cjs/components-react/_target.scss +9 -9
  3. package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
  4. package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
  5. package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
  6. package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
  7. package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
  8. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  9. package/lib/cjs/components-react/common/Links.js.map +1 -1
  10. package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
  11. package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
  12. package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
  13. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  14. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  15. package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
  16. package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
  17. package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
  18. package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
  19. package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
  20. package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
  21. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  22. package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
  23. package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  24. package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  25. package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
  26. package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
  27. package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
  28. package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
  29. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  30. package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  31. package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
  32. package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
  33. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  34. package/lib/cjs/components-react/datepicker/DatePicker.scss +176 -176
  35. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  36. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  37. package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
  38. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  39. package/lib/cjs/components-react/datepicker/TimeField.scss +76 -76
  40. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  41. package/lib/cjs/components-react/editors/BooleanEditor.scss +22 -22
  42. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  43. package/lib/cjs/components-react/editors/CustomNumberEditor.scss +20 -20
  44. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  45. package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
  46. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  47. package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
  48. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  49. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +141 -141
  50. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  51. package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
  52. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  53. package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
  54. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  55. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +24 -24
  56. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  57. package/lib/cjs/components-react/editors/NumericInputEditor.scss +16 -16
  58. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  59. package/lib/cjs/components-react/editors/PopupButton.scss +116 -116
  60. package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
  61. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  62. package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
  63. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  64. package/lib/cjs/components-react/editors/TextEditor.scss +20 -20
  65. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  66. package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
  67. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/ToggleEditor.scss +23 -23
  69. package/lib/cjs/components-react/editors/variables.scss +7 -7
  70. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  71. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  72. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  73. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  74. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  75. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +38 -38
  76. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  77. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
  78. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  79. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  80. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  81. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  82. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  83. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  84. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  85. package/lib/cjs/components-react/filtering/FilteringInput.scss +58 -58
  86. package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
  87. package/lib/cjs/components-react/filtering/ResultSelector.scss +68 -68
  88. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  89. package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +75 -75
  90. package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
  91. package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
  92. package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
  93. package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
  94. package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
  95. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  96. package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
  97. package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  98. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  99. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  100. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
  101. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  102. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  103. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  105. package/lib/cjs/components-react/properties/renderers/PropertyView.scss +106 -106
  106. package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  107. package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  108. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  109. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
  110. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  111. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  112. package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  113. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  114. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  115. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  116. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  117. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  118. package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  119. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  120. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  121. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  122. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  123. package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  124. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  125. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  126. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  127. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  128. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +73 -73
  129. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  130. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  131. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  132. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  133. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
  134. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  135. package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  136. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  137. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  138. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  139. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  140. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  141. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  142. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  143. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  144. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  145. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  146. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  147. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  148. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  149. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  150. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  151. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  152. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  153. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  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.map +1 -1
  156. package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
  157. package/lib/cjs/components-react/selectable-content/SelectableContent.scss +20 -20
  158. package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
  159. package/lib/cjs/components-react/toolbar/Item.scss +91 -91
  160. package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
  161. package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
  162. package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
  163. package/lib/cjs/components-react/toolbar/Items.scss +96 -96
  164. package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
  165. package/lib/cjs/components-react/toolbar/Overflow.scss +57 -57
  166. package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
  167. package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
  168. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  169. package/lib/cjs/components-react/toolbar/PopupItem.scss +88 -88
  170. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  171. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  172. package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
  173. package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
  174. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  175. package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
  176. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  177. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  178. package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
  179. package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
  180. package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  181. package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
  182. package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  183. package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +15 -15
  184. package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
  185. package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +33 -33
  186. package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
  187. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  188. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  189. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  190. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
  191. package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  192. package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
  193. package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
  194. package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
  195. package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
  196. package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
  197. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  198. package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
  199. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  200. package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
  201. package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
  202. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  203. package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  204. package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
  205. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  206. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  207. package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  208. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  209. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  210. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  211. package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  212. package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +27 -27
  213. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  214. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  215. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  216. package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  217. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  218. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  219. package/lib/cjs/components-react.js.map +1 -1
  220. package/lib/esm/components-react/UiComponents.js.map +1 -1
  221. package/lib/esm/components-react/_target.scss +9 -9
  222. package/lib/esm/components-react/common/DateUtils.js.map +1 -1
  223. package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
  224. package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
  225. package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
  226. package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
  227. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  228. package/lib/esm/components-react/common/Links.js.map +1 -1
  229. package/lib/esm/components-react/common/PageOptions.js.map +1 -1
  230. package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
  231. package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
  232. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  233. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  234. package/lib/esm/components-react/common/UseRerender.js.map +1 -1
  235. package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
  236. package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
  237. package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
  238. package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
  239. package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
  240. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  241. package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
  242. package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  243. package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  244. package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
  245. package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
  246. package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
  247. package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
  248. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  249. package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  250. package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
  251. package/lib/esm/components-react/datepicker/DateField.scss +22 -22
  252. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  253. package/lib/esm/components-react/datepicker/DatePicker.scss +176 -176
  254. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  255. package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  256. package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
  257. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  258. package/lib/esm/components-react/datepicker/TimeField.scss +76 -76
  259. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  260. package/lib/esm/components-react/editors/BooleanEditor.scss +22 -22
  261. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  262. package/lib/esm/components-react/editors/CustomNumberEditor.scss +20 -20
  263. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  264. package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
  265. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  266. package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
  267. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  268. package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +141 -141
  269. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  270. package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
  271. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  272. package/lib/esm/components-react/editors/IconEditor.scss +16 -16
  273. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  274. package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +24 -24
  275. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  276. package/lib/esm/components-react/editors/NumericInputEditor.scss +16 -16
  277. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  278. package/lib/esm/components-react/editors/PopupButton.scss +116 -116
  279. package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
  280. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  281. package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
  282. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  283. package/lib/esm/components-react/editors/TextEditor.scss +20 -20
  284. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  285. package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
  286. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  287. package/lib/esm/components-react/editors/ToggleEditor.scss +23 -23
  288. package/lib/esm/components-react/editors/variables.scss +7 -7
  289. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  290. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  291. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  292. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  293. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  294. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +38 -38
  295. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  296. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
  297. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  298. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  299. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  300. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  301. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  302. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  303. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  304. package/lib/esm/components-react/filtering/FilteringInput.scss +58 -58
  305. package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
  306. package/lib/esm/components-react/filtering/ResultSelector.scss +68 -68
  307. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  308. package/lib/esm/components-react/iconpicker/IconPickerButton.scss +75 -75
  309. package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
  310. package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
  311. package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
  312. package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
  313. package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
  314. package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  315. package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
  316. package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  317. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  318. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  319. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
  320. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  321. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  322. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  323. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  324. package/lib/esm/components-react/properties/renderers/PropertyView.scss +106 -106
  325. package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  326. package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  327. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  328. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
  329. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  330. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  331. package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  332. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  333. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  334. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  335. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  336. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  337. package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  338. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  339. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  340. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  341. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  342. package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  343. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  344. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  345. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  346. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  347. package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +73 -73
  348. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  349. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  350. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  351. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  352. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
  353. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  354. package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  355. package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  356. package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  357. package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  358. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  359. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  360. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  361. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  362. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  363. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  364. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  365. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  366. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  367. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  368. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  369. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  370. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  371. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  372. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  373. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  374. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  375. package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
  376. package/lib/esm/components-react/selectable-content/SelectableContent.scss +20 -20
  377. package/lib/esm/components-react/toolbar/Item.js.map +1 -1
  378. package/lib/esm/components-react/toolbar/Item.scss +91 -91
  379. package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
  380. package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
  381. package/lib/esm/components-react/toolbar/Items.js.map +1 -1
  382. package/lib/esm/components-react/toolbar/Items.scss +96 -96
  383. package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
  384. package/lib/esm/components-react/toolbar/Overflow.scss +57 -57
  385. package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
  386. package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
  387. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  388. package/lib/esm/components-react/toolbar/PopupItem.scss +88 -88
  389. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  390. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  391. package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
  392. package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
  393. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  394. package/lib/esm/components-react/toolbar/_variables.scss +34 -34
  395. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  396. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  397. package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
  398. package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
  399. package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  400. package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
  401. package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  402. package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +15 -15
  403. package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
  404. package/lib/esm/components-react/toolbar/groupPanel/Title.scss +33 -33
  405. package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
  406. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  407. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  408. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  409. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
  410. package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  411. package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
  412. package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
  413. package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
  414. package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
  415. package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
  416. package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  417. package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
  418. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  419. package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
  420. package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
  421. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  422. package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  423. package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
  424. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  425. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  426. package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  427. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  428. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  429. package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  430. package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  431. package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +27 -27
  432. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  433. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  434. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  435. package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  436. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  437. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  438. package/lib/esm/components-react.js.map +1 -1
  439. package/lib/public/locales/en/UiComponents.json +139 -139
  440. package/package.json +3 -3
@@ -1,24 +1,24 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
- @import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
7
-
8
- .components-parsed-input {
9
- width: auto;
10
-
11
- &.components-parsed-input-has-error {
12
- color: var(--iui-color-text-negative);
13
- font-weight: bold;
14
- }
15
-
16
- &.components-parsed-input[disabled] {
17
- color: var(--iui-color-text);
18
- opacity: 0.65;
19
- }
20
-
21
- &.iui-input {
22
- padding: $uicore-iui-input-padding;
23
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
+ @import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
7
+
8
+ .components-parsed-input {
9
+ width: auto;
10
+
11
+ &.components-parsed-input-has-error {
12
+ color: var(--iui-color-text-negative);
13
+ font-weight: bold;
14
+ }
15
+
16
+ &.components-parsed-input[disabled] {
17
+ color: var(--iui-color-text);
18
+ opacity: 0.65;
19
+ }
20
+
21
+ &.iui-input {
22
+ padding: $uicore-iui-input-padding;
23
+ }
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ItemStyle.js","sourceRoot":"","sources":["../../../../src/components-react/properties/ItemStyle.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AA4B3F,SAAS,kBAAkB,CAAC,UAAmB,EAAE,cAAmC;IAClF,IAAI,CAAC,cAAc;QACjB,OAAO,SAAS,CAAC;IAEnB,IAAI,UAAU;QACZ,OAAO,cAAc,CAAC,uBAAuB,KAAK,SAAS;YACzD,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,uBAAuB,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,cAAc,CAAC,eAAe;QAChC,OAAO,iBAAiB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAmB,EAAE,cAAmC;IAClF,IAAI,CAAC,cAAc;QACjB,OAAO,SAAS,CAAC;IAEnB,IAAI,UAAU;QACZ,OAAO,cAAc,CAAC,aAAa,KAAK,SAAS;YAC/C,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,cAAc,CAAC,KAAK;QACtB,OAAO,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;;OAEG;IACH,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAa,EAAE,UAAoB,EAAiB,EAAE,CAAC,CAAC;QACtG,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC;QACvD,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC;QACjE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;;OAEG;IACH,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAsB,EAAiB,EAAE,CAAC,CAAC;QAC/E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;KAClF,CAAC;CACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport { CSSProperties } from \"react\";\r\n\r\n/** Converts a color value from a number to an HTML/CSS hex string */\r\nconst colorDecimalToHex = (decimal: number) => `#${decimal.toString(16).padStart(6, \"0\")}`;\r\n\r\n/** Style properties for styled item like [[TreeNodeItem]]\r\n * @public\r\n */\r\nexport interface ItemStyle {\r\n /** Is text bolded */\r\n isBold?: boolean;\r\n /** Is text italic */\r\n isItalic?: boolean;\r\n /** Color overrides for styled item */\r\n colorOverrides?: ItemColorOverrides;\r\n}\r\n\r\n/** Color overrides for styled item\r\n * @public\r\n */\r\nexport interface ItemColorOverrides {\r\n /** Text/foreground color */\r\n color?: number;\r\n /** Background color */\r\n backgroundColor?: number;\r\n /** Selected item text/foreground color */\r\n colorSelected?: number;\r\n /** Selected item background color */\r\n backgroundColorSelected?: number;\r\n}\r\n\r\nfunction getBackgroundColor(isSelected: boolean, colorOverrides?: ItemColorOverrides) {\r\n if (!colorOverrides)\r\n return undefined;\r\n\r\n if (isSelected)\r\n return colorOverrides.backgroundColorSelected !== undefined\r\n ? colorDecimalToHex(colorOverrides.backgroundColorSelected)\r\n : undefined;\r\n\r\n if (colorOverrides.backgroundColor)\r\n return colorDecimalToHex(colorOverrides.backgroundColor);\r\n\r\n return undefined;\r\n}\r\n\r\nfunction getForegroundColor(isSelected: boolean, colorOverrides?: ItemColorOverrides) {\r\n if (!colorOverrides)\r\n return undefined;\r\n\r\n if (isSelected)\r\n return colorOverrides.colorSelected !== undefined\r\n ? colorDecimalToHex(colorOverrides.colorSelected)\r\n : undefined;\r\n\r\n if (colorOverrides.color)\r\n return colorDecimalToHex(colorOverrides.color);\r\n\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Style provider for stylable items like [[TreeNodeItem]]\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const ItemStyleProvider = {\r\n /**\r\n * Create CSS style from [[ItemStyle]]\r\n */\r\n createStyle: ({ colorOverrides, isBold, isItalic }: ItemStyle, isSelected?: boolean): CSSProperties => ({\r\n color: getForegroundColor(!!isSelected, colorOverrides),\r\n backgroundColor: getBackgroundColor(!!isSelected, colorOverrides),\r\n fontWeight: isBold ? \"bold\" : undefined,\r\n fontStyle: isItalic ? \"italic\" : undefined,\r\n }),\r\n};\r\n\r\n/**\r\n * Style provider for table rows\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const TableRowStyleProvider = {\r\n /**\r\n * Create CSS style from [[ItemStyle]]\r\n */\r\n createStyle: ({ color, backgroundColor }: ItemColorOverrides): CSSProperties => ({\r\n color: color ? colorDecimalToHex(color) : undefined,\r\n backgroundColor: backgroundColor ? colorDecimalToHex(backgroundColor) : undefined,\r\n }),\r\n};\r\n"]}
1
+ {"version":3,"file":"ItemStyle.js","sourceRoot":"","sources":["../../../../src/components-react/properties/ItemStyle.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AA4B3F,SAAS,kBAAkB,CAAC,UAAmB,EAAE,cAAmC;IAClF,IAAI,CAAC,cAAc;QACjB,OAAO,SAAS,CAAC;IAEnB,IAAI,UAAU;QACZ,OAAO,cAAc,CAAC,uBAAuB,KAAK,SAAS;YACzD,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,uBAAuB,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,cAAc,CAAC,eAAe;QAChC,OAAO,iBAAiB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAmB,EAAE,cAAmC;IAClF,IAAI,CAAC,cAAc;QACjB,OAAO,SAAS,CAAC;IAEnB,IAAI,UAAU;QACZ,OAAO,cAAc,CAAC,aAAa,KAAK,SAAS;YAC/C,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,cAAc,CAAC,KAAK;QACtB,OAAO,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;;OAEG;IACH,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAa,EAAE,UAAoB,EAAiB,EAAE,CAAC,CAAC;QACtG,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC;QACvD,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC;QACjE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;;OAEG;IACH,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAsB,EAAiB,EAAE,CAAC,CAAC;QAC/E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;KAClF,CAAC;CACH,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 Properties\n */\n\nimport { CSSProperties } from \"react\";\n\n/** Converts a color value from a number to an HTML/CSS hex string */\nconst colorDecimalToHex = (decimal: number) => `#${decimal.toString(16).padStart(6, \"0\")}`;\n\n/** Style properties for styled item like [[TreeNodeItem]]\n * @public\n */\nexport interface ItemStyle {\n /** Is text bolded */\n isBold?: boolean;\n /** Is text italic */\n isItalic?: boolean;\n /** Color overrides for styled item */\n colorOverrides?: ItemColorOverrides;\n}\n\n/** Color overrides for styled item\n * @public\n */\nexport interface ItemColorOverrides {\n /** Text/foreground color */\n color?: number;\n /** Background color */\n backgroundColor?: number;\n /** Selected item text/foreground color */\n colorSelected?: number;\n /** Selected item background color */\n backgroundColorSelected?: number;\n}\n\nfunction getBackgroundColor(isSelected: boolean, colorOverrides?: ItemColorOverrides) {\n if (!colorOverrides)\n return undefined;\n\n if (isSelected)\n return colorOverrides.backgroundColorSelected !== undefined\n ? colorDecimalToHex(colorOverrides.backgroundColorSelected)\n : undefined;\n\n if (colorOverrides.backgroundColor)\n return colorDecimalToHex(colorOverrides.backgroundColor);\n\n return undefined;\n}\n\nfunction getForegroundColor(isSelected: boolean, colorOverrides?: ItemColorOverrides) {\n if (!colorOverrides)\n return undefined;\n\n if (isSelected)\n return colorOverrides.colorSelected !== undefined\n ? colorDecimalToHex(colorOverrides.colorSelected)\n : undefined;\n\n if (colorOverrides.color)\n return colorDecimalToHex(colorOverrides.color);\n\n return undefined;\n}\n\n/**\n * Style provider for stylable items like [[TreeNodeItem]]\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ItemStyleProvider = {\n /**\n * Create CSS style from [[ItemStyle]]\n */\n createStyle: ({ colorOverrides, isBold, isItalic }: ItemStyle, isSelected?: boolean): CSSProperties => ({\n color: getForegroundColor(!!isSelected, colorOverrides),\n backgroundColor: getBackgroundColor(!!isSelected, colorOverrides),\n fontWeight: isBold ? \"bold\" : undefined,\n fontStyle: isItalic ? \"italic\" : undefined,\n }),\n};\n\n/**\n * Style provider for table rows\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const TableRowStyleProvider = {\n /**\n * Create CSS style from [[ItemStyle]]\n */\n createStyle: ({ color, backgroundColor }: ItemColorOverrides): CSSProperties => ({\n color: color ? colorDecimalToHex(color) : undefined,\n backgroundColor: backgroundColor ? colorDecimalToHex(backgroundColor) : undefined,\n }),\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkHandler.js","sourceRoot":"","sources":["../../../../src/components-react/properties/LinkHandler.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { BentleyError, BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { LinkElementsInfo } from \"@itwin/appui-abstract\";\r\nimport { UnderlinedButton } from \"@itwin/core-react\";\r\n\r\n/** Render a single anchor tag */\r\nfunction renderTag(text: string, links: LinkElementsInfo, highlight?: (text: string) => React.ReactNode) {\r\n return (\r\n <UnderlinedButton\r\n onClick={(e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n links.onClick(text);\r\n }}\r\n >\r\n {highlight ? highlight(text) : text}\r\n </UnderlinedButton>\r\n );\r\n}\r\n\r\ninterface Match { start: number, end: number }\r\n\r\nfunction matchComparison(matchA: Match, matchB: Match) {\r\n if (matchA.start > matchB.start)\r\n return 1;\r\n if (matchB.start > matchA.start)\r\n return -1;\r\n return 0;\r\n}\r\n\r\nfunction renderTextPart(text: string, highlight?: (text: string) => React.ReactNode): React.ReactNode {\r\n return highlight ? highlight(text) : text;\r\n}\r\n\r\nfunction renderText(text: string, links: LinkElementsInfo, highlight?: (text: string) => React.ReactNode): React.ReactNode {\r\n const { matcher } = links;\r\n\r\n if (!matcher)\r\n return renderTag(text, links, highlight);\r\n\r\n const matches = matcher(text);\r\n\r\n // Sort just to be sure\r\n matches.sort(matchComparison);\r\n\r\n const parts: React.ReactNode[] = [];\r\n let lastIndex = 0;\r\n for (const match of matches) {\r\n // If matches overlap there must be something wrong with the matcher\r\n if (lastIndex > match.start)\r\n throw new BentleyError(BentleyStatus.ERROR, \"renderText: matcher returned overlapping matches\");\r\n\r\n if (lastIndex < match.start)\r\n parts.push(renderTextPart(text.substring(lastIndex, match.start), highlight));\r\n\r\n const anchorText = text.substring(match.start, match.end);\r\n parts.push(renderTag(anchorText, links, highlight));\r\n\r\n lastIndex = match.end;\r\n }\r\n if (text.length > lastIndex)\r\n parts.push(renderTextPart(text.substring(lastIndex), highlight));\r\n\r\n // Need to map, because React complains about the lack of keys\r\n return parts.map((part, index) => <React.Fragment key={index}>{part}</React.Fragment>);\r\n}\r\n\r\nfunction renderHighlighted(text: string, highlight: (text: string) => React.ReactNode) {\r\n return highlight(text);\r\n}\r\n\r\n/** Renders anchor tag by wrapping or splitting provided text\r\n * @public\r\n */\r\nexport const renderLinks = (text: string, links: LinkElementsInfo, highlight?: (text: string) => React.ReactNode): React.ReactNode => {\r\n return renderText(text, links, highlight);\r\n};\r\n\r\n/** If record has links, wraps stringValue in them, otherwise returns unchanged stringValue\r\n * Optionally it can highlight text\r\n * @public\r\n */\r\nexport const withLinks = (stringValue: string, links?: LinkElementsInfo, highlight?: (text: string) => React.ReactNode): React.ReactNode => {\r\n if (links)\r\n return renderLinks(stringValue, links, highlight);\r\n if (highlight)\r\n return renderHighlighted(stringValue, highlight);\r\n return stringValue;\r\n};\r\n\r\n/**\r\n * Properties for [[LinksRenderer]] component.\r\n * @public\r\n */\r\nexport interface LinksRendererProps {\r\n value: string;\r\n links?: LinkElementsInfo;\r\n highlighter?: (text: string) => React.ReactNode;\r\n}\r\n\r\n/**\r\n * React component for rendering string with links.\r\n * @public\r\n */\r\nexport function LinksRenderer(props: LinksRendererProps) {\r\n return <>{withLinks(props.value, props.links, props.highlighter)}</>;\r\n}\r\n"]}
1
+ {"version":3,"file":"LinkHandler.js","sourceRoot":"","sources":["../../../../src/components-react/properties/LinkHandler.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 Properties\n */\n\nimport * as React from \"react\";\nimport { BentleyError, BentleyStatus } from \"@itwin/core-bentley\";\nimport { LinkElementsInfo } from \"@itwin/appui-abstract\";\nimport { UnderlinedButton } from \"@itwin/core-react\";\n\n/** Render a single anchor tag */\nfunction renderTag(text: string, links: LinkElementsInfo, highlight?: (text: string) => React.ReactNode) {\n return (\n <UnderlinedButton\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n links.onClick(text);\n }}\n >\n {highlight ? highlight(text) : text}\n </UnderlinedButton>\n );\n}\n\ninterface Match { start: number, end: number }\n\nfunction matchComparison(matchA: Match, matchB: Match) {\n if (matchA.start > matchB.start)\n return 1;\n if (matchB.start > matchA.start)\n return -1;\n return 0;\n}\n\nfunction renderTextPart(text: string, highlight?: (text: string) => React.ReactNode): React.ReactNode {\n return highlight ? highlight(text) : text;\n}\n\nfunction renderText(text: string, links: LinkElementsInfo, highlight?: (text: string) => React.ReactNode): React.ReactNode {\n const { matcher } = links;\n\n if (!matcher)\n return renderTag(text, links, highlight);\n\n const matches = matcher(text);\n\n // Sort just to be sure\n matches.sort(matchComparison);\n\n const parts: React.ReactNode[] = [];\n let lastIndex = 0;\n for (const match of matches) {\n // If matches overlap there must be something wrong with the matcher\n if (lastIndex > match.start)\n throw new BentleyError(BentleyStatus.ERROR, \"renderText: matcher returned overlapping matches\");\n\n if (lastIndex < match.start)\n parts.push(renderTextPart(text.substring(lastIndex, match.start), highlight));\n\n const anchorText = text.substring(match.start, match.end);\n parts.push(renderTag(anchorText, links, highlight));\n\n lastIndex = match.end;\n }\n if (text.length > lastIndex)\n parts.push(renderTextPart(text.substring(lastIndex), highlight));\n\n // Need to map, because React complains about the lack of keys\n return parts.map((part, index) => <React.Fragment key={index}>{part}</React.Fragment>);\n}\n\nfunction renderHighlighted(text: string, highlight: (text: string) => React.ReactNode) {\n return highlight(text);\n}\n\n/** Renders anchor tag by wrapping or splitting provided text\n * @public\n */\nexport const renderLinks = (text: string, links: LinkElementsInfo, highlight?: (text: string) => React.ReactNode): React.ReactNode => {\n return renderText(text, links, highlight);\n};\n\n/** If record has links, wraps stringValue in them, otherwise returns unchanged stringValue\n * Optionally it can highlight text\n * @public\n */\nexport const withLinks = (stringValue: string, links?: LinkElementsInfo, highlight?: (text: string) => React.ReactNode): React.ReactNode => {\n if (links)\n return renderLinks(stringValue, links, highlight);\n if (highlight)\n return renderHighlighted(stringValue, highlight);\n return stringValue;\n};\n\n/**\n * Properties for [[LinksRenderer]] component.\n * @public\n */\nexport interface LinksRendererProps {\n value: string;\n links?: LinkElementsInfo;\n highlighter?: (text: string) => React.ReactNode;\n}\n\n/**\n * React component for rendering string with links.\n * @public\n */\nexport function LinksRenderer(props: LinksRendererProps) {\n return <>{withLinks(props.value, props.links, props.highlighter)}</>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ValueRendererManager.js","sourceRoot":"","sources":["../../../../src/components-react/properties/ValueRendererManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { Orientation } from \"@itwin/core-react\";\r\nimport { ArrayPropertyValueRenderer } from \"./renderers/value/ArrayPropertyValueRenderer\";\r\nimport { DoublePropertyValueRenderer } from \"./renderers/value/DoublePropertyValueRenderer\";\r\nimport { MergedPropertyValueRenderer } from \"./renderers/value/MergedPropertyValueRenderer\";\r\nimport { MultilineTextPropertyValueRenderer } from \"./renderers/value/MultilineTextPropertyValueRenderer\";\r\nimport { NavigationPropertyValueRenderer } from \"./renderers/value/NavigationPropertyValueRenderer\";\r\nimport { PrimitivePropertyValueRenderer } from \"./renderers/value/PrimitivePropertyValueRenderer\";\r\nimport { StructPropertyValueRenderer } from \"./renderers/value/StructPropertyValueRenderer\";\r\nimport { UrlPropertyValueRenderer } from \"./renderers/value/UrlPropertyValueRenderer\";\r\n\r\n/** Types of property containers\r\n * @public\r\n */\r\nexport enum PropertyContainerType {\r\n PropertyPane = \"pane\",\r\n Table = \"table\",\r\n Tree = \"tree\",\r\n}\r\n\r\n/** State of the Dialog component in a container which renders properties\r\n * @public\r\n */\r\nexport interface PropertyDialogState {\r\n title: string;\r\n content: React.ReactNode;\r\n}\r\n\r\n/** State of the Popup component in a container which renders properties\r\n * @public\r\n */\r\nexport interface PropertyPopupState {\r\n fixedPosition: { top: number, left: number };\r\n content: React.ReactNode;\r\n}\r\n\r\n/** Additional parameters to the renderer\r\n * @public\r\n */\r\nexport interface PropertyValueRendererContext {\r\n /** Type of container that holds the property */\r\n containerType?: string;\r\n /** Style that should be applied to the rendered element */\r\n style?: React.CSSProperties;\r\n /** Orientation of property/container */\r\n orientation?: Orientation;\r\n /** Callback to request for a Popup to be shown. */\r\n onPopupShow?: (popupState: PropertyPopupState) => void;\r\n /** Callback to request for a Popup to be hidden. */\r\n onPopupHide?: () => void;\r\n /** Callback to request for Dialog to be opened. */\r\n onDialogOpen?: (dialogState: PropertyDialogState) => void;\r\n /** Callback to highlight text */\r\n textHighlighter?: (text: string) => React.ReactNode;\r\n /** Default value to show if value rendering is asynchronous */\r\n defaultValue?: React.ReactNode;\r\n /** Whether property value is expanded. */\r\n isExpanded?: boolean;\r\n /** Called when property value expansion or collapse is requested. */\r\n onExpansionToggled?: () => void;\r\n /** Called when property value element height changes. */\r\n onHeightChanged?: (newHeight: number) => void;\r\n}\r\n\r\n/** Custom property value renderer interface\r\n * @public\r\n */\r\nexport interface IPropertyValueRenderer {\r\n /** Checks if the renderer can handle given property */\r\n canRender: (record: PropertyRecord, context?: PropertyValueRendererContext) => boolean;\r\n /** Method that returns a JSX representation of PropertyRecord */\r\n render: (record: PropertyRecord, context?: PropertyValueRendererContext) => React.ReactNode;\r\n}\r\n\r\n/** Default implementation of property value renderer manager\r\n * @public\r\n */\r\nexport class PropertyValueRendererManager {\r\n private static _defaultRendererManager: PropertyValueRendererManager;\r\n\r\n protected _propertyRenderers: Map<string, IPropertyValueRenderer> = new Map<string, IPropertyValueRenderer>();\r\n protected _defaultPrimitiveValueRenderer: IPropertyValueRenderer = new PrimitivePropertyValueRenderer();\r\n protected _defaultArrayValueRenderer: IPropertyValueRenderer = new ArrayPropertyValueRenderer();\r\n protected _defaultStructValueRenderer: IPropertyValueRenderer = new StructPropertyValueRenderer();\r\n protected _defaultMergedValueRenderer: IPropertyValueRenderer = new MergedPropertyValueRenderer();\r\n\r\n private selectRenderer(record: PropertyRecord) {\r\n if (record.property.renderer && this._propertyRenderers.has(record.property.renderer.name))\r\n return this._propertyRenderers.get(record.property.renderer.name);\r\n\r\n if (this._defaultMergedValueRenderer.canRender(record))\r\n return this._defaultMergedValueRenderer;\r\n\r\n if (this._propertyRenderers.has(record.property.typename))\r\n return this._propertyRenderers.get(record.property.typename)!;\r\n\r\n // Use one of default renderers\r\n switch (record.value.valueFormat) {\r\n case PropertyValueFormat.Primitive:\r\n return this._defaultPrimitiveValueRenderer;\r\n case PropertyValueFormat.Array:\r\n return this._defaultArrayValueRenderer;\r\n case PropertyValueFormat.Struct:\r\n return this._defaultStructValueRenderer;\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Render property into JSX element */\r\n public render(record: PropertyRecord, context?: PropertyValueRendererContext): React.ReactNode {\r\n const selectedRenderer = this.selectRenderer(record);\r\n\r\n if (!selectedRenderer || !selectedRenderer.canRender(record, context))\r\n return undefined;\r\n\r\n return selectedRenderer.render(record, context);\r\n }\r\n\r\n /** Register a specified property type renderer */\r\n public registerRenderer(rendererType: string, propertyRenderer: IPropertyValueRenderer, overwrite = false) {\r\n if (!overwrite && this._propertyRenderers.has(rendererType)) {\r\n throw Error(`PropertyValueRendererManager.registerRenderer error: type '${rendererType}' already registered to '${propertyRenderer.constructor.name}'`);\r\n }\r\n\r\n this._propertyRenderers.set(rendererType, propertyRenderer);\r\n }\r\n\r\n /** Unregister a specified property type renderer */\r\n public unregisterRenderer(rendererType: string) {\r\n this._propertyRenderers.delete(rendererType);\r\n }\r\n\r\n /** Get the specified property type renderer instance */\r\n public getRegisteredRenderer(rendererType: string) {\r\n return this._propertyRenderers.get(rendererType);\r\n }\r\n\r\n /** Returns default PropertyValueRendererManager instance */\r\n public static get defaultManager() {\r\n if (!this._defaultRendererManager)\r\n this._defaultRendererManager = new PropertyValueRendererManager();\r\n\r\n return this._defaultRendererManager;\r\n }\r\n}\r\n\r\nPropertyValueRendererManager.defaultManager.registerRenderer(\"navigation\", new NavigationPropertyValueRenderer());\r\nPropertyValueRendererManager.defaultManager.registerRenderer(\"url\", new UrlPropertyValueRenderer());\r\nPropertyValueRendererManager.defaultManager.registerRenderer(\"double\", new DoublePropertyValueRenderer());\r\nPropertyValueRendererManager.defaultManager.registerRenderer(\"multiline\", new MultilineTextPropertyValueRenderer());\r\n"]}
1
+ {"version":3,"file":"ValueRendererManager.js","sourceRoot":"","sources":["../../../../src/components-react/properties/ValueRendererManager.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 Properties\n */\n\nimport * as React from \"react\";\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { ArrayPropertyValueRenderer } from \"./renderers/value/ArrayPropertyValueRenderer\";\nimport { DoublePropertyValueRenderer } from \"./renderers/value/DoublePropertyValueRenderer\";\nimport { MergedPropertyValueRenderer } from \"./renderers/value/MergedPropertyValueRenderer\";\nimport { MultilineTextPropertyValueRenderer } from \"./renderers/value/MultilineTextPropertyValueRenderer\";\nimport { NavigationPropertyValueRenderer } from \"./renderers/value/NavigationPropertyValueRenderer\";\nimport { PrimitivePropertyValueRenderer } from \"./renderers/value/PrimitivePropertyValueRenderer\";\nimport { StructPropertyValueRenderer } from \"./renderers/value/StructPropertyValueRenderer\";\nimport { UrlPropertyValueRenderer } from \"./renderers/value/UrlPropertyValueRenderer\";\n\n/** Types of property containers\n * @public\n */\nexport enum PropertyContainerType {\n PropertyPane = \"pane\",\n Table = \"table\",\n Tree = \"tree\",\n}\n\n/** State of the Dialog component in a container which renders properties\n * @public\n */\nexport interface PropertyDialogState {\n title: string;\n content: React.ReactNode;\n}\n\n/** State of the Popup component in a container which renders properties\n * @public\n */\nexport interface PropertyPopupState {\n fixedPosition: { top: number, left: number };\n content: React.ReactNode;\n}\n\n/** Additional parameters to the renderer\n * @public\n */\nexport interface PropertyValueRendererContext {\n /** Type of container that holds the property */\n containerType?: string;\n /** Style that should be applied to the rendered element */\n style?: React.CSSProperties;\n /** Orientation of property/container */\n orientation?: Orientation;\n /** Callback to request for a Popup to be shown. */\n onPopupShow?: (popupState: PropertyPopupState) => void;\n /** Callback to request for a Popup to be hidden. */\n onPopupHide?: () => void;\n /** Callback to request for Dialog to be opened. */\n onDialogOpen?: (dialogState: PropertyDialogState) => void;\n /** Callback to highlight text */\n textHighlighter?: (text: string) => React.ReactNode;\n /** Default value to show if value rendering is asynchronous */\n defaultValue?: React.ReactNode;\n /** Whether property value is expanded. */\n isExpanded?: boolean;\n /** Called when property value expansion or collapse is requested. */\n onExpansionToggled?: () => void;\n /** Called when property value element height changes. */\n onHeightChanged?: (newHeight: number) => void;\n}\n\n/** Custom property value renderer interface\n * @public\n */\nexport interface IPropertyValueRenderer {\n /** Checks if the renderer can handle given property */\n canRender: (record: PropertyRecord, context?: PropertyValueRendererContext) => boolean;\n /** Method that returns a JSX representation of PropertyRecord */\n render: (record: PropertyRecord, context?: PropertyValueRendererContext) => React.ReactNode;\n}\n\n/** Default implementation of property value renderer manager\n * @public\n */\nexport class PropertyValueRendererManager {\n private static _defaultRendererManager: PropertyValueRendererManager;\n\n protected _propertyRenderers: Map<string, IPropertyValueRenderer> = new Map<string, IPropertyValueRenderer>();\n protected _defaultPrimitiveValueRenderer: IPropertyValueRenderer = new PrimitivePropertyValueRenderer();\n protected _defaultArrayValueRenderer: IPropertyValueRenderer = new ArrayPropertyValueRenderer();\n protected _defaultStructValueRenderer: IPropertyValueRenderer = new StructPropertyValueRenderer();\n protected _defaultMergedValueRenderer: IPropertyValueRenderer = new MergedPropertyValueRenderer();\n\n private selectRenderer(record: PropertyRecord) {\n if (record.property.renderer && this._propertyRenderers.has(record.property.renderer.name))\n return this._propertyRenderers.get(record.property.renderer.name);\n\n if (this._defaultMergedValueRenderer.canRender(record))\n return this._defaultMergedValueRenderer;\n\n if (this._propertyRenderers.has(record.property.typename))\n return this._propertyRenderers.get(record.property.typename)!;\n\n // Use one of default renderers\n switch (record.value.valueFormat) {\n case PropertyValueFormat.Primitive:\n return this._defaultPrimitiveValueRenderer;\n case PropertyValueFormat.Array:\n return this._defaultArrayValueRenderer;\n case PropertyValueFormat.Struct:\n return this._defaultStructValueRenderer;\n default:\n return undefined;\n }\n }\n\n /** Render property into JSX element */\n public render(record: PropertyRecord, context?: PropertyValueRendererContext): React.ReactNode {\n const selectedRenderer = this.selectRenderer(record);\n\n if (!selectedRenderer || !selectedRenderer.canRender(record, context))\n return undefined;\n\n return selectedRenderer.render(record, context);\n }\n\n /** Register a specified property type renderer */\n public registerRenderer(rendererType: string, propertyRenderer: IPropertyValueRenderer, overwrite = false) {\n if (!overwrite && this._propertyRenderers.has(rendererType)) {\n throw Error(`PropertyValueRendererManager.registerRenderer error: type '${rendererType}' already registered to '${propertyRenderer.constructor.name}'`);\n }\n\n this._propertyRenderers.set(rendererType, propertyRenderer);\n }\n\n /** Unregister a specified property type renderer */\n public unregisterRenderer(rendererType: string) {\n this._propertyRenderers.delete(rendererType);\n }\n\n /** Get the specified property type renderer instance */\n public getRegisteredRenderer(rendererType: string) {\n return this._propertyRenderers.get(rendererType);\n }\n\n /** Returns default PropertyValueRendererManager instance */\n public static get defaultManager() {\n if (!this._defaultRendererManager)\n this._defaultRendererManager = new PropertyValueRendererManager();\n\n return this._defaultRendererManager;\n }\n}\n\nPropertyValueRendererManager.defaultManager.registerRenderer(\"navigation\", new NavigationPropertyValueRenderer());\nPropertyValueRendererManager.defaultManager.registerRenderer(\"url\", new UrlPropertyValueRenderer());\nPropertyValueRendererManager.defaultManager.registerRenderer(\"double\", new DoublePropertyValueRenderer());\nPropertyValueRendererManager.defaultManager.registerRenderer(\"multiline\", new MultilineTextPropertyValueRenderer());\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonList.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/ActionButtonList.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK,CAAC,aAAoC;IACtE,YAAY,CAAC,WAAwB;QAC3C,OAAO,WAAW,KAAK,WAAW,CAAC,UAAU;YAC3C,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,kDAAkD,CAAC;IACzD,CAAC;IAED,gBAAgB;IACA,MAAM;QACpB,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IACtD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CACxD,oBAAC,qBAAqB,IACpB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE;gBACb,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;aAChD,GACD,CACH,CACG,CACP,CAAC;IACJ,CAAC;CACF;AAOD,SAAS,qBAAqB,CAAC,KAAiC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,YAAY;QACf,OAAO,IAAI,CAAC;IAEd,OAAO,CACL,6BAAK,SAAS,EAAC,oCAAoC,IAChD,YAAY,CACT,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport \"./ActionButtonList.scss\";\r\nimport * as React from \"react\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { Orientation } from \"@itwin/core-react\";\r\nimport { ActionButtonRenderer, ActionButtonRendererProps } from \"./ActionButtonRenderer\";\r\n\r\n/** Properties of [[ActionButtonList]] React component\r\n * @public\r\n */\r\nexport interface ActionButtonListProps {\r\n /** Orientation to use for displaying the action buttons */\r\n orientation: Orientation;\r\n /** Property that action buttons belong to */\r\n property: PropertyRecord;\r\n /** Array of action button renderers */\r\n actionButtonRenderers: ActionButtonRenderer[];\r\n /** Indicated whether a property is hovered */\r\n isPropertyHovered?: boolean;\r\n}\r\n\r\n/** ActionButtonList React component.\r\n * @public\r\n */\r\nexport class ActionButtonList extends React.PureComponent<ActionButtonListProps> {\r\n private getClassName(orientation: Orientation) {\r\n return orientation === Orientation.Horizontal\r\n ? \"components-property-action-button-list--horizontal\"\r\n : \"components-property-action-button-list--vertical\";\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n return (\r\n <div className={this.getClassName(this.props.orientation)}>\r\n {this.props.actionButtonRenderers.map((renderer, index) =>\r\n <ActionButtonContainer\r\n key={index}\r\n renderer={renderer}\r\n rendererProps={{\r\n property: this.props.property,\r\n isPropertyHovered: this.props.isPropertyHovered,\r\n }}\r\n />,\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface ActionButtonContainerProps {\r\n renderer: ActionButtonRenderer;\r\n rendererProps: ActionButtonRendererProps;\r\n}\r\n\r\nfunction ActionButtonContainer(props: ActionButtonContainerProps) {\r\n const actionButton = props.renderer(props.rendererProps);\r\n if (!actionButton)\r\n return null;\r\n\r\n return (\r\n <div className=\"components-action-button-container\">\r\n {actionButton}\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"ActionButtonList.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/ActionButtonList.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK,CAAC,aAAoC;IACtE,YAAY,CAAC,WAAwB;QAC3C,OAAO,WAAW,KAAK,WAAW,CAAC,UAAU;YAC3C,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,kDAAkD,CAAC;IACzD,CAAC;IAED,gBAAgB;IACA,MAAM;QACpB,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IACtD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CACxD,oBAAC,qBAAqB,IACpB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE;gBACb,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;aAChD,GACD,CACH,CACG,CACP,CAAC;IACJ,CAAC;CACF;AAOD,SAAS,qBAAqB,CAAC,KAAiC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,YAAY;QACf,OAAO,IAAI,CAAC;IAEd,OAAO,CACL,6BAAK,SAAS,EAAC,oCAAoC,IAChD,YAAY,CACT,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 Properties\n */\n\nimport \"./ActionButtonList.scss\";\nimport * as React from \"react\";\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { ActionButtonRenderer, ActionButtonRendererProps } from \"./ActionButtonRenderer\";\n\n/** Properties of [[ActionButtonList]] React component\n * @public\n */\nexport interface ActionButtonListProps {\n /** Orientation to use for displaying the action buttons */\n orientation: Orientation;\n /** Property that action buttons belong to */\n property: PropertyRecord;\n /** Array of action button renderers */\n actionButtonRenderers: ActionButtonRenderer[];\n /** Indicated whether a property is hovered */\n isPropertyHovered?: boolean;\n}\n\n/** ActionButtonList React component.\n * @public\n */\nexport class ActionButtonList extends React.PureComponent<ActionButtonListProps> {\n private getClassName(orientation: Orientation) {\n return orientation === Orientation.Horizontal\n ? \"components-property-action-button-list--horizontal\"\n : \"components-property-action-button-list--vertical\";\n }\n\n /** @internal */\n public override render() {\n return (\n <div className={this.getClassName(this.props.orientation)}>\n {this.props.actionButtonRenderers.map((renderer, index) =>\n <ActionButtonContainer\n key={index}\n renderer={renderer}\n rendererProps={{\n property: this.props.property,\n isPropertyHovered: this.props.isPropertyHovered,\n }}\n />,\n )}\n </div>\n );\n }\n}\n\ninterface ActionButtonContainerProps {\n renderer: ActionButtonRenderer;\n rendererProps: ActionButtonRendererProps;\n}\n\nfunction ActionButtonContainer(props: ActionButtonContainerProps) {\n const actionButton = props.renderer(props.rendererProps);\n if (!actionButton)\n return null;\n\n return (\n <div className=\"components-action-button-container\">\n {actionButton}\n </div>\n );\n}\n"]}
@@ -1,25 +1,25 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- @mixin property-action-button-list {
6
- display: flex;
7
- justify-content: flex-end;
8
- align-items: center;
9
- }
10
-
11
- .components-property-action-button-list--horizontal {
12
- @include property-action-button-list;
13
- grid-column: 4;
14
- }
15
-
16
- .components-property-action-button-list--vertical {
17
- @include property-action-button-list;
18
- grid-column: 2;
19
- grid-row-start: 1;
20
- grid-row-end: 3;
21
- }
22
-
23
- .components-action-button-container {
24
- margin: 0 5px 0 5px;
25
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @mixin property-action-button-list {
6
+ display: flex;
7
+ justify-content: flex-end;
8
+ align-items: center;
9
+ }
10
+
11
+ .components-property-action-button-list--horizontal {
12
+ @include property-action-button-list;
13
+ grid-column: 4;
14
+ }
15
+
16
+ .components-property-action-button-list--vertical {
17
+ @include property-action-button-list;
18
+ grid-column: 2;
19
+ grid-row-start: 1;
20
+ grid-row-end: 3;
21
+ }
22
+
23
+ .components-action-button-container {
24
+ margin: 0 5px 0 5px;
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/ActionButtonRenderer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\n\r\n/** Properties of [[ActionButtonRenderer]]\r\n * @public\r\n */\r\nexport interface ActionButtonRendererProps {\r\n /** Property that the action button belongs to */\r\n property: PropertyRecord;\r\n /** Indicated whether a property is hovered */\r\n isPropertyHovered?: boolean;\r\n}\r\n\r\n/**\r\n * Renders a React component (usually a button) for a PropertyRecord\r\n * @public\r\n */\r\nexport type ActionButtonRenderer = (props: ActionButtonRendererProps) => React.ReactNode;\r\n"]}
1
+ {"version":3,"file":"ActionButtonRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/ActionButtonRenderer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport * as React from \"react\";\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\n\n/** Properties of [[ActionButtonRenderer]]\n * @public\n */\nexport interface ActionButtonRendererProps {\n /** Property that the action button belongs to */\n property: PropertyRecord;\n /** Indicated whether a property is hovered */\n isPropertyHovered?: boolean;\n}\n\n/**\n * Renders a React component (usually a button) for a PropertyRecord\n * @public\n */\nexport type ActionButtonRenderer = (props: ActionButtonRendererProps) => React.ReactNode;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CommonPropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/CommonPropertyRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { Orientation } from \"@itwin/core-react\";\r\nimport { countMatchesInString } from \"../../common/countMatchesInString\";\r\nimport { HighlightedText } from \"../../common/HighlightedText\";\r\nimport { HighlightingComponentProps } from \"../../common/HighlightingComponentProps\";\r\nimport { PropertyContainerType, PropertyValueRendererContext, PropertyValueRendererManager } from \"../ValueRendererManager\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class CommonPropertyRenderer {\r\n public static getLabelOffset(indentation?: number, orientation?: Orientation, width?: number, columnRatio?: number, minColumnLabelWidth?: number): number {\r\n if (!indentation)\r\n return 0;\r\n\r\n const maxIndent = 17;\r\n const minIndent = 6;\r\n if (orientation !== Orientation.Horizontal || !width || !columnRatio || !minColumnLabelWidth)\r\n return indentation * maxIndent;\r\n\r\n const currentSize = Math.ceil(width * columnRatio);\r\n const shrinkThreshold = minColumnLabelWidth + (maxIndent * indentation);\r\n if (currentSize >= shrinkThreshold)\r\n return indentation * maxIndent;\r\n\r\n const minShrink = minColumnLabelWidth + minIndent + (maxIndent * (indentation - 1));\r\n if (currentSize <= minShrink)\r\n return minIndent + this.getLabelOffset(indentation - 1, orientation, width, columnRatio, minColumnLabelWidth);\r\n\r\n return currentSize - minColumnLabelWidth;\r\n }\r\n\r\n public static createNewDisplayValue(\r\n orientation: Orientation,\r\n propertyRecord: PropertyRecord,\r\n indentation?: number,\r\n propertyValueRendererManager?: PropertyValueRendererManager,\r\n isExpanded?: boolean,\r\n onExpansionToggled?: () => void,\r\n onHeightChanged?: (newHeight: number) => void,\r\n highlight?: HighlightingComponentProps & { applyOnLabel: boolean, applyOnValue: boolean }\r\n ) {\r\n const highlightCallback = highlight?.applyOnValue ? (CommonPropertyRenderer.createHighlightCallback(highlight, propertyRecord)) : undefined;\r\n const rendererContext: PropertyValueRendererContext = {\r\n orientation,\r\n containerType: PropertyContainerType.PropertyPane,\r\n isExpanded,\r\n onExpansionToggled,\r\n onHeightChanged,\r\n textHighlighter: highlightCallback,\r\n };\r\n\r\n let displayValue: React.ReactNode | undefined;\r\n if (propertyValueRendererManager)\r\n displayValue = propertyValueRendererManager.render(propertyRecord, rendererContext);\r\n else\r\n displayValue = PropertyValueRendererManager.defaultManager.render(propertyRecord, rendererContext);\r\n\r\n // Align value with label if orientation is vertical\r\n if (orientation === Orientation.Vertical)\r\n displayValue = <span style={{ paddingLeft: CommonPropertyRenderer.getLabelOffset(indentation, orientation) }}>{displayValue}</span>;\r\n\r\n return displayValue;\r\n }\r\n\r\n private static createHighlightCallback(highlight: HighlightingComponentProps & { applyOnLabel: boolean }, propertyRecord: PropertyRecord) {\r\n const activeMatch = highlight.activeHighlight;\r\n const propertyName = activeMatch?.highlightedItemIdentifier;\r\n const matchIndex = activeMatch?.highlightIndex ?? 0;\r\n let labelMatches: number;\r\n\r\n if (highlight.applyOnLabel) {\r\n labelMatches = countMatchesInString(propertyRecord.property.displayLabel.toLowerCase(), highlight.highlightedText);\r\n } else {\r\n labelMatches = 0;\r\n }\r\n\r\n const activeMatchIndex = (propertyRecord.property.name === propertyName) && ((matchIndex - labelMatches) >= 0) ? (matchIndex - labelMatches) : undefined;\r\n const highlightCallback = (text: string) => (<HighlightedText text={text} activeMatchIndex={activeMatchIndex} searchText={highlight.highlightedText} />);\r\n\r\n return highlightCallback;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CommonPropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/CommonPropertyRenderer.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 Properties\n */\n\nimport * as React from \"react\";\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { countMatchesInString } from \"../../common/countMatchesInString\";\nimport { HighlightedText } from \"../../common/HighlightedText\";\nimport { HighlightingComponentProps } from \"../../common/HighlightingComponentProps\";\nimport { PropertyContainerType, PropertyValueRendererContext, PropertyValueRendererManager } from \"../ValueRendererManager\";\n\n/**\n * @internal\n */\nexport class CommonPropertyRenderer {\n public static getLabelOffset(indentation?: number, orientation?: Orientation, width?: number, columnRatio?: number, minColumnLabelWidth?: number): number {\n if (!indentation)\n return 0;\n\n const maxIndent = 17;\n const minIndent = 6;\n if (orientation !== Orientation.Horizontal || !width || !columnRatio || !minColumnLabelWidth)\n return indentation * maxIndent;\n\n const currentSize = Math.ceil(width * columnRatio);\n const shrinkThreshold = minColumnLabelWidth + (maxIndent * indentation);\n if (currentSize >= shrinkThreshold)\n return indentation * maxIndent;\n\n const minShrink = minColumnLabelWidth + minIndent + (maxIndent * (indentation - 1));\n if (currentSize <= minShrink)\n return minIndent + this.getLabelOffset(indentation - 1, orientation, width, columnRatio, minColumnLabelWidth);\n\n return currentSize - minColumnLabelWidth;\n }\n\n public static createNewDisplayValue(\n orientation: Orientation,\n propertyRecord: PropertyRecord,\n indentation?: number,\n propertyValueRendererManager?: PropertyValueRendererManager,\n isExpanded?: boolean,\n onExpansionToggled?: () => void,\n onHeightChanged?: (newHeight: number) => void,\n highlight?: HighlightingComponentProps & { applyOnLabel: boolean, applyOnValue: boolean }\n ) {\n const highlightCallback = highlight?.applyOnValue ? (CommonPropertyRenderer.createHighlightCallback(highlight, propertyRecord)) : undefined;\n const rendererContext: PropertyValueRendererContext = {\n orientation,\n containerType: PropertyContainerType.PropertyPane,\n isExpanded,\n onExpansionToggled,\n onHeightChanged,\n textHighlighter: highlightCallback,\n };\n\n let displayValue: React.ReactNode | undefined;\n if (propertyValueRendererManager)\n displayValue = propertyValueRendererManager.render(propertyRecord, rendererContext);\n else\n displayValue = PropertyValueRendererManager.defaultManager.render(propertyRecord, rendererContext);\n\n // Align value with label if orientation is vertical\n if (orientation === Orientation.Vertical)\n displayValue = <span style={{ paddingLeft: CommonPropertyRenderer.getLabelOffset(indentation, orientation) }}>{displayValue}</span>;\n\n return displayValue;\n }\n\n private static createHighlightCallback(highlight: HighlightingComponentProps & { applyOnLabel: boolean }, propertyRecord: PropertyRecord) {\n const activeMatch = highlight.activeHighlight;\n const propertyName = activeMatch?.highlightedItemIdentifier;\n const matchIndex = activeMatch?.highlightIndex ?? 0;\n let labelMatches: number;\n\n if (highlight.applyOnLabel) {\n labelMatches = countMatchesInString(propertyRecord.property.displayLabel.toLowerCase(), highlight.highlightedText);\n } else {\n labelMatches = 0;\n }\n\n const activeMatchIndex = (propertyRecord.property.name === propertyName) && ((matchIndex - labelMatches) >= 0) ? (matchIndex - labelMatches) : undefined;\n const highlightCallback = (text: string) => (<HighlightedText text={text} activeMatchIndex={activeMatchIndex} searchText={highlight.highlightedText} />);\n\n return highlightCallback;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NonPrimitivePropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/NonPrimitivePropertyRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport \"./NonPrimitivePropertyRenderer.scss\";\r\nimport * as React from \"react\";\r\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { CommonPropertyRenderer } from \"./CommonPropertyRenderer\";\r\nimport { NonPrimitivePropertyLabelRenderer } from \"./label/NonPrimitivePropertyLabelRenderer\";\r\nimport { PrimitiveRendererProps } from \"./PrimitivePropertyRenderer\";\r\nimport { PropertyRenderer } from \"./PropertyRenderer\";\r\nimport { PropertyView } from \"./PropertyView\";\r\n\r\n/** Properties of [[NonPrimitivePropertyRenderer]] React component\r\n * @public\r\n */\r\nexport interface NonPrimitivePropertyRendererProps extends PrimitiveRendererProps {\r\n /** Can struct/array property be collapsed */\r\n isCollapsible?: boolean;\r\n}\r\n\r\n/** State of [[NonPrimitivePropertyRenderer]] React component\r\n * @internal\r\n */\r\ninterface NonPrimitivePropertyRendererState {\r\n /** Is struct/array property expanded */\r\n isExpanded?: boolean;\r\n}\r\n\r\n/** React Component that renders struct and array properties\r\n * @public\r\n */\r\nexport class NonPrimitivePropertyRenderer extends React.Component<NonPrimitivePropertyRendererProps, NonPrimitivePropertyRendererState> {\r\n /** @internal */\r\n public override readonly state: NonPrimitivePropertyRendererState = {\r\n /** If it's not collapsible, that means it's expanded by default and can't be collapsed */\r\n isExpanded: !this.props.isCollapsible || this.props.propertyRecord.autoExpand,\r\n };\r\n\r\n constructor(props: NonPrimitivePropertyRendererProps) {\r\n super(props);\r\n }\r\n\r\n private _onExpanded = () => {\r\n this.setState({ isExpanded: true });\r\n };\r\n\r\n private _onCollapsed = () => {\r\n this.setState({ isExpanded: false });\r\n };\r\n\r\n private getLabel(props: NonPrimitivePropertyRendererProps, state: NonPrimitivePropertyRendererState): React.ReactNode {\r\n const { orientation, indentation, width, columnRatio, columnInfo } = props;\r\n // istanbul ignore next\r\n const minLabelWidth = columnInfo?.minLabelWidth;\r\n const offset = CommonPropertyRenderer.getLabelOffset(indentation, orientation, width, columnRatio, minLabelWidth);\r\n\r\n let displayLabel = props.propertyRecord.property.displayLabel;\r\n if (this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Array)\r\n displayLabel = `${displayLabel} (${this.props.propertyRecord.value.items.length})`;\r\n\r\n return (\r\n <NonPrimitivePropertyLabelRenderer\r\n isExpanded={!!state.isExpanded}\r\n onExpand={this._onExpanded}\r\n onCollapse={this._onCollapsed}\r\n offset={offset}\r\n renderColon={false}\r\n >\r\n {displayLabel}\r\n </NonPrimitivePropertyLabelRenderer>\r\n );\r\n }\r\n\r\n private overrideArrayChildrenNames(items: PropertyRecord[]) {\r\n const modifiedProperties: PropertyRecord[] = items.map((item, index): PropertyRecord => {\r\n const newProperty = { ...item.property };\r\n newProperty.displayLabel = `[${index + 1}]`;\r\n newProperty.name = `${newProperty.name}_${index}`;\r\n return new PropertyRecord(item.value, newProperty);\r\n });\r\n\r\n return modifiedProperties;\r\n }\r\n\r\n private _renderPropertyForItem = (item: PropertyRecord) => {\r\n const prefix = this.props.uniqueKey ? this.props.uniqueKey : this.props.propertyRecord.property.name;\r\n const uniqueKey = `${prefix}_${item.property.name}`;\r\n return (\r\n <PropertyRenderer\r\n key={uniqueKey}\r\n uniqueKey={uniqueKey}\r\n propertyRecord={item}\r\n indentation={this.props.indentation ? this.props.indentation + 1 : 1}\r\n orientation={this.props.orientation}\r\n columnRatio={this.props.columnRatio}\r\n actionButtonRenderers={this.props.actionButtonRenderers}\r\n onColumnRatioChanged={this.props.onColumnRatioChanged}\r\n width={this.props.width}\r\n isResizeHandleHovered={this.props.isResizeHandleHovered}\r\n onResizeHandleHoverChanged={this.props.onResizeHandleHoverChanged}\r\n isResizeHandleBeingDragged={this.props.isResizeHandleBeingDragged}\r\n onResizeHandleDragChanged={this.props.onResizeHandleDragChanged}\r\n columnInfo={this.props.columnInfo}\r\n />\r\n );\r\n };\r\n\r\n /** @internal */\r\n public override render() {\r\n let items: PropertyRecord[] = this.props.propertyRecord.getChildrenRecords();\r\n if (this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Array)\r\n items = this.overrideArrayChildrenNames(items);\r\n\r\n const { indentation, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n return (\r\n <>\r\n {this.props.isCollapsible\r\n ?\r\n <PropertyView\r\n labelElement={this.getLabel(this.props, this.state)}\r\n {...props}\r\n />\r\n : undefined}\r\n\r\n {this.state.isExpanded ? items.map(this._renderPropertyForItem) : undefined}\r\n </>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"NonPrimitivePropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/NonPrimitivePropertyRenderer.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 Properties\n */\n\nimport \"./NonPrimitivePropertyRenderer.scss\";\nimport * as React from \"react\";\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { CommonPropertyRenderer } from \"./CommonPropertyRenderer\";\nimport { NonPrimitivePropertyLabelRenderer } from \"./label/NonPrimitivePropertyLabelRenderer\";\nimport { PrimitiveRendererProps } from \"./PrimitivePropertyRenderer\";\nimport { PropertyRenderer } from \"./PropertyRenderer\";\nimport { PropertyView } from \"./PropertyView\";\n\n/** Properties of [[NonPrimitivePropertyRenderer]] React component\n * @public\n */\nexport interface NonPrimitivePropertyRendererProps extends PrimitiveRendererProps {\n /** Can struct/array property be collapsed */\n isCollapsible?: boolean;\n}\n\n/** State of [[NonPrimitivePropertyRenderer]] React component\n * @internal\n */\ninterface NonPrimitivePropertyRendererState {\n /** Is struct/array property expanded */\n isExpanded?: boolean;\n}\n\n/** React Component that renders struct and array properties\n * @public\n */\nexport class NonPrimitivePropertyRenderer extends React.Component<NonPrimitivePropertyRendererProps, NonPrimitivePropertyRendererState> {\n /** @internal */\n public override readonly state: NonPrimitivePropertyRendererState = {\n /** If it's not collapsible, that means it's expanded by default and can't be collapsed */\n isExpanded: !this.props.isCollapsible || this.props.propertyRecord.autoExpand,\n };\n\n constructor(props: NonPrimitivePropertyRendererProps) {\n super(props);\n }\n\n private _onExpanded = () => {\n this.setState({ isExpanded: true });\n };\n\n private _onCollapsed = () => {\n this.setState({ isExpanded: false });\n };\n\n private getLabel(props: NonPrimitivePropertyRendererProps, state: NonPrimitivePropertyRendererState): React.ReactNode {\n const { orientation, indentation, width, columnRatio, columnInfo } = props;\n // istanbul ignore next\n const minLabelWidth = columnInfo?.minLabelWidth;\n const offset = CommonPropertyRenderer.getLabelOffset(indentation, orientation, width, columnRatio, minLabelWidth);\n\n let displayLabel = props.propertyRecord.property.displayLabel;\n if (this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Array)\n displayLabel = `${displayLabel} (${this.props.propertyRecord.value.items.length})`;\n\n return (\n <NonPrimitivePropertyLabelRenderer\n isExpanded={!!state.isExpanded}\n onExpand={this._onExpanded}\n onCollapse={this._onCollapsed}\n offset={offset}\n renderColon={false}\n >\n {displayLabel}\n </NonPrimitivePropertyLabelRenderer>\n );\n }\n\n private overrideArrayChildrenNames(items: PropertyRecord[]) {\n const modifiedProperties: PropertyRecord[] = items.map((item, index): PropertyRecord => {\n const newProperty = { ...item.property };\n newProperty.displayLabel = `[${index + 1}]`;\n newProperty.name = `${newProperty.name}_${index}`;\n return new PropertyRecord(item.value, newProperty);\n });\n\n return modifiedProperties;\n }\n\n private _renderPropertyForItem = (item: PropertyRecord) => {\n const prefix = this.props.uniqueKey ? this.props.uniqueKey : this.props.propertyRecord.property.name;\n const uniqueKey = `${prefix}_${item.property.name}`;\n return (\n <PropertyRenderer\n key={uniqueKey}\n uniqueKey={uniqueKey}\n propertyRecord={item}\n indentation={this.props.indentation ? this.props.indentation + 1 : 1}\n orientation={this.props.orientation}\n columnRatio={this.props.columnRatio}\n actionButtonRenderers={this.props.actionButtonRenderers}\n onColumnRatioChanged={this.props.onColumnRatioChanged}\n width={this.props.width}\n isResizeHandleHovered={this.props.isResizeHandleHovered}\n onResizeHandleHoverChanged={this.props.onResizeHandleHoverChanged}\n isResizeHandleBeingDragged={this.props.isResizeHandleBeingDragged}\n onResizeHandleDragChanged={this.props.onResizeHandleDragChanged}\n columnInfo={this.props.columnInfo}\n />\n );\n };\n\n /** @internal */\n public override render() {\n let items: PropertyRecord[] = this.props.propertyRecord.getChildrenRecords();\n if (this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Array)\n items = this.overrideArrayChildrenNames(items);\n\n const { indentation, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n return (\n <>\n {this.props.isCollapsible\n ?\n <PropertyView\n labelElement={this.getLabel(this.props, this.state)}\n {...props}\n />\n : undefined}\n\n {this.state.isExpanded ? items.map(this._renderPropertyForItem) : undefined}\n </>\n );\n }\n}\n"]}
@@ -1,17 +1,17 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
-
6
- @import "~@itwin/core-react/lib/cjs/core-react/style/colors";
7
-
8
- .components-nonprimitive-property {
9
- padding: 10px;
10
- display: grid;
11
- grid-row-gap: 10px;
12
-
13
- border-radius: var(--iui-border-radius-1);
14
- border: solid 1px $uicore-gray-9;
15
-
16
- background-color: #ffffff;
17
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ @import "~@itwin/core-react/lib/cjs/core-react/style/colors";
7
+
8
+ .components-nonprimitive-property {
9
+ padding: 10px;
10
+ display: grid;
11
+ grid-row-gap: 10px;
12
+
13
+ border-radius: var(--iui-border-radius-1);
14
+ border: solid 1px $uicore-gray-9;
15
+
16
+ background-color: #ffffff;
17
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"PrimitivePropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PrimitivePropertyRenderer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiB9C;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK,CAAC,SAAiC;IACpF,YAAY,KAA6B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,gBAAgB;IACA,MAAM;QACpB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QACjH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrE,MAAM,MAAM,GAAG,sBAAsB,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEtJ,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAClL,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC;YACvB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;YACpG,YAAY,CAAC;QAEf,OAAO,CACL,oBAAC,YAAY,OACP,KAAK,EACT,YAAY,EACV,oBAAC,8BAA8B,IAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,IAClI,KAAK,CACyB,GACnC,CACH,CAAC;IACJ,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Orientation } from \"@itwin/core-react\";\r\nimport { HighlightedText } from \"../../common/HighlightedText\";\r\nimport { HighlightingComponentProps } from \"../../common/HighlightingComponentProps\";\r\nimport { CommonPropertyRenderer } from \"./CommonPropertyRenderer\";\r\nimport { PrimitivePropertyLabelRenderer } from \"./label/PrimitivePropertyLabelRenderer\";\r\nimport { SharedRendererProps } from \"./PropertyRenderer\";\r\nimport { PropertyView } from \"./PropertyView\";\r\n\r\n/** Properties of [[PrimitivePropertyRenderer]] React component\r\n * @public\r\n */\r\nexport interface PrimitiveRendererProps extends SharedRendererProps {\r\n /** Property value as a React element */\r\n valueElement?: React.ReactNode;\r\n /** Render callback for property value. If specified, `valueElement` is ignored. */\r\n valueElementRenderer?: () => React.ReactNode;\r\n /** Multiplier of how much the property is indented to the right */\r\n indentation?: number;\r\n /** Properties used for highlighting\r\n */\r\n highlight?: HighlightingComponentProps;\r\n}\r\n\r\n/** React Component that renders primitive properties\r\n * @public\r\n */\r\nexport class PrimitivePropertyRenderer extends React.Component<PrimitiveRendererProps> {\r\n constructor(props: PrimitiveRendererProps) {\r\n super(props);\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n const { indentation, highlight, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n const displayLabel = this.props.propertyRecord.property.displayLabel;\r\n const offset = CommonPropertyRenderer.getLabelOffset(indentation, props.orientation, props.width, props.columnRatio, props.columnInfo?.minLabelWidth);\r\n\r\n const activeMatchIndex = this.props.propertyRecord.property.name === highlight?.activeHighlight?.highlightedItemIdentifier ? highlight.activeHighlight.highlightIndex : undefined;\r\n const label = highlight ?\r\n (HighlightedText({ text: displayLabel, searchText: highlight.highlightedText, activeMatchIndex })) :\r\n displayLabel;\r\n\r\n return (\r\n <PropertyView\r\n {...props}\r\n labelElement={\r\n <PrimitivePropertyLabelRenderer offset={offset} renderColon={this.props.orientation === Orientation.Horizontal} tooltip={displayLabel}>\r\n {label}\r\n </PrimitivePropertyLabelRenderer>}\r\n />\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PrimitivePropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PrimitivePropertyRenderer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiB9C;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK,CAAC,SAAiC;IACpF,YAAY,KAA6B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,gBAAgB;IACA,MAAM;QACpB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QACjH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrE,MAAM,MAAM,GAAG,sBAAsB,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEtJ,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAClL,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC;YACvB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;YACpG,YAAY,CAAC;QAEf,OAAO,CACL,oBAAC,YAAY,OACP,KAAK,EACT,YAAY,EACV,oBAAC,8BAA8B,IAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,IAClI,KAAK,CACyB,GACnC,CACH,CAAC;IACJ,CAAC;CACF","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 Properties\n */\n\nimport * as React from \"react\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { HighlightedText } from \"../../common/HighlightedText\";\nimport { HighlightingComponentProps } from \"../../common/HighlightingComponentProps\";\nimport { CommonPropertyRenderer } from \"./CommonPropertyRenderer\";\nimport { PrimitivePropertyLabelRenderer } from \"./label/PrimitivePropertyLabelRenderer\";\nimport { SharedRendererProps } from \"./PropertyRenderer\";\nimport { PropertyView } from \"./PropertyView\";\n\n/** Properties of [[PrimitivePropertyRenderer]] React component\n * @public\n */\nexport interface PrimitiveRendererProps extends SharedRendererProps {\n /** Property value as a React element */\n valueElement?: React.ReactNode;\n /** Render callback for property value. If specified, `valueElement` is ignored. */\n valueElementRenderer?: () => React.ReactNode;\n /** Multiplier of how much the property is indented to the right */\n indentation?: number;\n /** Properties used for highlighting\n */\n highlight?: HighlightingComponentProps;\n}\n\n/** React Component that renders primitive properties\n * @public\n */\nexport class PrimitivePropertyRenderer extends React.Component<PrimitiveRendererProps> {\n constructor(props: PrimitiveRendererProps) {\n super(props);\n }\n\n /** @internal */\n public override render() {\n const { indentation, highlight, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n const displayLabel = this.props.propertyRecord.property.displayLabel;\n const offset = CommonPropertyRenderer.getLabelOffset(indentation, props.orientation, props.width, props.columnRatio, props.columnInfo?.minLabelWidth);\n\n const activeMatchIndex = this.props.propertyRecord.property.name === highlight?.activeHighlight?.highlightedItemIdentifier ? highlight.activeHighlight.highlightIndex : undefined;\n const label = highlight ?\n (HighlightedText({ text: displayLabel, searchText: highlight.highlightedText, activeMatchIndex })) :\n displayLabel;\n\n return (\n <PropertyView\n {...props}\n labelElement={\n <PrimitivePropertyLabelRenderer offset={offset} renderColon={this.props.orientation === Orientation.Horizontal} tooltip={displayLabel}>\n {label}\n </PrimitivePropertyLabelRenderer>}\n />\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyGridColumns.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PropertyGridColumns.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport { Orientation } from \"@itwin/core-react\";\r\n\r\n/** @internal */\r\nexport interface PropertyGridColumnInfo {\r\n minLabelWidth: number;\r\n minValueWidth: number;\r\n actionButtonWidth: number;\r\n isMinimumColumnSizeEnabled: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class PropertyGridColumnStyleProvider {\r\n private _minLabelWidth: number = 0;\r\n private _minValueWidth: number = 0;\r\n private _actionButtonWidth: number = 0;\r\n private _isMinimumColumnSizeEnabled: boolean;\r\n\r\n public constructor(columnInfo: PropertyGridColumnInfo | undefined) {\r\n if (!columnInfo) {\r\n this._isMinimumColumnSizeEnabled = false;\r\n return;\r\n }\r\n\r\n this._minLabelWidth = columnInfo.minLabelWidth;\r\n this._minValueWidth = columnInfo.minValueWidth;\r\n this._actionButtonWidth = columnInfo.actionButtonWidth;\r\n this._isMinimumColumnSizeEnabled = columnInfo.isMinimumColumnSizeEnabled;\r\n }\r\n\r\n public get minLabelWidth() {\r\n return this._minLabelWidth;\r\n }\r\n\r\n public get minValueWidth() {\r\n return this._minValueWidth;\r\n }\r\n\r\n public get actionButtonWidth() {\r\n return this._actionButtonWidth;\r\n }\r\n\r\n public get isMinimumColumnSizeEnabled() {\r\n return this._isMinimumColumnSizeEnabled;\r\n }\r\n\r\n public getStyle(orientation: Orientation, needActionButtons: boolean, ratio: number, needElementSeparator: boolean): React.CSSProperties {\r\n switch (orientation) {\r\n case Orientation.Horizontal:\r\n return this.getHorizontalStyle(needActionButtons, ratio, needElementSeparator);\r\n case Orientation.Vertical:\r\n return this.getVerticalStyle(needActionButtons);\r\n /* istanbul ignore next */\r\n default:\r\n const unhandledOrientationType: never = orientation; // Compile time check that all cases handled\r\n throw new Error(`Unhandled orientation type: ${unhandledOrientationType}. Was new orientation added ? `);\r\n }\r\n }\r\n\r\n /** Join columns together in sequence, filtering out undefined column definitions */\r\n private columnStyleBuilder(columns: Array<string | undefined>): React.CSSProperties {\r\n columns = columns.filter((el) => el !== undefined);\r\n return { gridTemplateColumns: columns.join(\" \") };\r\n }\r\n\r\n private getHorizontalStyle(needActionButtons: boolean, ratio: number, needElementSeparator: boolean): React.CSSProperties {\r\n const separatorColumn = needElementSeparator ? \"1px\" : undefined;\r\n if (!this.isMinimumColumnSizeEnabled)\r\n return this.columnStyleBuilder([`${ratio * 100}%`, separatorColumn, \"auto\", needActionButtons ? \"auto\" : undefined]);\r\n\r\n const labelColumn = `minmax(${this.minLabelWidth}px, ${ratio * 100}%)`;\r\n const valueColumn = `minmax(${this.minValueWidth}px, 1fr)`;\r\n const actionButtonColumn = needActionButtons ? `${this.actionButtonWidth}px` : undefined;\r\n\r\n return this.columnStyleBuilder([labelColumn, separatorColumn, valueColumn, actionButtonColumn]);\r\n }\r\n\r\n private getVerticalStyle(needActionButtons: boolean): React.CSSProperties {\r\n return this.columnStyleBuilder([\"auto\", needActionButtons ? \"auto\" : undefined]);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PropertyGridColumns.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PropertyGridColumns.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { Orientation } from \"@itwin/core-react\";\n\n/** @internal */\nexport interface PropertyGridColumnInfo {\n minLabelWidth: number;\n minValueWidth: number;\n actionButtonWidth: number;\n isMinimumColumnSizeEnabled: boolean;\n}\n\n/** @internal */\nexport class PropertyGridColumnStyleProvider {\n private _minLabelWidth: number = 0;\n private _minValueWidth: number = 0;\n private _actionButtonWidth: number = 0;\n private _isMinimumColumnSizeEnabled: boolean;\n\n public constructor(columnInfo: PropertyGridColumnInfo | undefined) {\n if (!columnInfo) {\n this._isMinimumColumnSizeEnabled = false;\n return;\n }\n\n this._minLabelWidth = columnInfo.minLabelWidth;\n this._minValueWidth = columnInfo.minValueWidth;\n this._actionButtonWidth = columnInfo.actionButtonWidth;\n this._isMinimumColumnSizeEnabled = columnInfo.isMinimumColumnSizeEnabled;\n }\n\n public get minLabelWidth() {\n return this._minLabelWidth;\n }\n\n public get minValueWidth() {\n return this._minValueWidth;\n }\n\n public get actionButtonWidth() {\n return this._actionButtonWidth;\n }\n\n public get isMinimumColumnSizeEnabled() {\n return this._isMinimumColumnSizeEnabled;\n }\n\n public getStyle(orientation: Orientation, needActionButtons: boolean, ratio: number, needElementSeparator: boolean): React.CSSProperties {\n switch (orientation) {\n case Orientation.Horizontal:\n return this.getHorizontalStyle(needActionButtons, ratio, needElementSeparator);\n case Orientation.Vertical:\n return this.getVerticalStyle(needActionButtons);\n /* istanbul ignore next */\n default:\n const unhandledOrientationType: never = orientation; // Compile time check that all cases handled\n throw new Error(`Unhandled orientation type: ${unhandledOrientationType}. Was new orientation added ? `);\n }\n }\n\n /** Join columns together in sequence, filtering out undefined column definitions */\n private columnStyleBuilder(columns: Array<string | undefined>): React.CSSProperties {\n columns = columns.filter((el) => el !== undefined);\n return { gridTemplateColumns: columns.join(\" \") };\n }\n\n private getHorizontalStyle(needActionButtons: boolean, ratio: number, needElementSeparator: boolean): React.CSSProperties {\n const separatorColumn = needElementSeparator ? \"1px\" : undefined;\n if (!this.isMinimumColumnSizeEnabled)\n return this.columnStyleBuilder([`${ratio * 100}%`, separatorColumn, \"auto\", needActionButtons ? \"auto\" : undefined]);\n\n const labelColumn = `minmax(${this.minLabelWidth}px, ${ratio * 100}%)`;\n const valueColumn = `minmax(${this.minValueWidth}px, 1fr)`;\n const actionButtonColumn = needActionButtons ? `${this.actionButtonWidth}px` : undefined;\n\n return this.columnStyleBuilder([labelColumn, separatorColumn, valueColumn, actionButtonColumn]);\n }\n\n private getVerticalStyle(needActionButtons: boolean): React.CSSProperties {\n return this.columnStyleBuilder([\"auto\", needActionButtons ? \"auto\" : undefined]);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PropertyRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { Orientation, RatioChangeResult } from \"@itwin/core-react\";\r\nimport { HighlightingComponentProps } from \"../../common/HighlightingComponentProps\";\r\nimport { EditorContainer, PropertyUpdatedArgs } from \"../../editors/EditorContainer\";\r\nimport { UiComponents } from \"../../UiComponents\";\r\nimport { PropertyValueRendererManager } from \"../ValueRendererManager\";\r\nimport { ActionButtonRenderer } from \"./ActionButtonRenderer\";\r\nimport { CommonPropertyRenderer } from \"./CommonPropertyRenderer\";\r\nimport { NonPrimitivePropertyRenderer } from \"./NonPrimitivePropertyRenderer\";\r\nimport { PrimitivePropertyRenderer, PrimitiveRendererProps } from \"./PrimitivePropertyRenderer\";\r\nimport { PropertyGridColumnInfo } from \"./PropertyGridColumns\";\r\n\r\n/** Properties shared by all renderers and PropertyView\r\n * @public\r\n */\r\nexport interface SharedRendererProps {\r\n /** PropertyRecord to render */\r\n propertyRecord: PropertyRecord;\r\n /** Unique string, that identifies this property component. Should be used if onClick or onRightClick are provided */\r\n uniqueKey?: string;\r\n /** Orientation to use for displaying the property */\r\n orientation: Orientation;\r\n /** Controls component selection */\r\n isSelected?: boolean;\r\n /** Called when property gets clicked. If undefined, clicking is disabled */\r\n onClick?: (property: PropertyRecord, key?: string) => void;\r\n /** Called when property gets right clicked. If undefined, right clicking is not working */\r\n onRightClick?: (property: PropertyRecord, key?: string) => void;\r\n /** Called to show a context menu for properties */\r\n onContextMenu?: (property: PropertyRecord, e: React.MouseEvent) => void;\r\n /** Ratio between label and value cells */\r\n columnRatio?: number;\r\n /** Callback to column ratio changed event */\r\n onColumnRatioChanged?: (ratio: number) => void | RatioChangeResult;\r\n /** Indicates that properties have *hover* effect */\r\n isHoverable?: boolean;\r\n /** Indicates that properties can be selected */\r\n isSelectable?: boolean;\r\n /** Width of the whole property element */\r\n width?: number;\r\n /** Array of action button renderers */\r\n actionButtonRenderers?: ActionButtonRenderer[];\r\n /** Is resize handle hovered */\r\n isResizeHandleHovered?: boolean;\r\n /** Callback to hover event change */\r\n onResizeHandleHoverChanged?: (isHovered: boolean) => void;\r\n /** Is resize handle being dragged */\r\n isResizeHandleBeingDragged?: boolean;\r\n /** Callback to drag event change */\r\n onResizeHandleDragChanged?: (isDragStarted: boolean) => void;\r\n /** Information for styling property grid columns */\r\n columnInfo?: PropertyGridColumnInfo;\r\n}\r\n\r\n/** Properties of [[PropertyRenderer]] React component\r\n * @public\r\n */\r\nexport interface PropertyRendererProps extends SharedRendererProps {\r\n /** Custom value renderer */\r\n propertyValueRendererManager?: PropertyValueRendererManager;\r\n /** Multiplier of how much the property is indented to the right */\r\n indentation?: number;\r\n /** Indicates property is being edited */\r\n isEditing?: boolean;\r\n /** Called when property edit is committed. */\r\n onEditCommit?: (args: PropertyUpdatedArgs) => void;\r\n /** Called when property edit is cancelled. */\r\n onEditCancel?: () => void;\r\n /** Props used for highlighting. */\r\n highlight?: HighlightingComponentProps;\r\n}\r\n\r\n/** State of [[PropertyRenderer]] React component\r\n * @internal\r\n */\r\ninterface PropertyRendererState {\r\n /** Currently loaded property value */\r\n displayValue?: React.ReactNode;\r\n}\r\n\r\n/** A React component that renders properties\r\n * @public\r\n */\r\nexport class PropertyRenderer extends React.Component<PropertyRendererProps, PropertyRendererState> {\r\n /** @internal */\r\n public override readonly state: Readonly<PropertyRendererState> = {\r\n displayValue: UiComponents.translate(\"general.loading\"),\r\n };\r\n\r\n constructor(props: PropertyRendererProps) {\r\n super(props);\r\n }\r\n\r\n public static getLabelOffset(indentation?: number, orientation?: Orientation, width?: number, columnRatio?: number, minColumnLabelWidth?: number): number {\r\n return CommonPropertyRenderer.getLabelOffset(indentation, orientation, width, columnRatio, minColumnLabelWidth);\r\n }\r\n\r\n private updateDisplayValue(props: PropertyRendererProps) {\r\n if (props.isEditing) {\r\n this.updateDisplayValueAsEditor(props);\r\n return;\r\n }\r\n\r\n const displayValue = CommonPropertyRenderer.createNewDisplayValue(props.orientation, props.propertyRecord, props.indentation, props.propertyValueRendererManager);\r\n this.setState({ displayValue });\r\n }\r\n\r\n private _onEditCommit = (args: PropertyUpdatedArgs) => {\r\n // istanbul ignore else\r\n if (this.props.onEditCommit)\r\n this.props.onEditCommit(args);\r\n };\r\n\r\n private _onEditCancel = () => {\r\n // istanbul ignore else\r\n if (this.props.onEditCancel)\r\n this.props.onEditCancel();\r\n };\r\n\r\n /** Display property record value in an editor */\r\n public updateDisplayValueAsEditor(props: PropertyRendererProps) {\r\n this.setState({\r\n displayValue:\r\n <EditorContainer\r\n propertyRecord={props.propertyRecord}\r\n onCommit={this._onEditCommit}\r\n onCancel={this._onEditCancel}\r\n setFocus={true}\r\n />,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this.updateDisplayValue(this.props);\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: PropertyRendererProps) {\r\n if (prevProps.propertyRecord !== this.props.propertyRecord ||\r\n prevProps.isEditing !== this.props.isEditing ||\r\n prevProps.orientation !== this.props.orientation)\r\n this.updateDisplayValue(this.props);\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n const { propertyValueRendererManager, isEditing, onEditCommit, onEditCancel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n const primitiveRendererProps: PrimitiveRendererProps = {\r\n ...props,\r\n valueElement: this.state.displayValue,\r\n indentation: this.props.indentation,\r\n };\r\n\r\n switch (this.props.propertyRecord.value.valueFormat) {\r\n case PropertyValueFormat.Primitive:\r\n return (\r\n <PrimitivePropertyRenderer {...primitiveRendererProps} />\r\n );\r\n case PropertyValueFormat.Array:\r\n // If array is empty, render it as a primitive property\r\n if (this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Array\r\n && this.props.propertyRecord.value.items.length === 0)\r\n return (\r\n <PrimitivePropertyRenderer {...primitiveRendererProps} />\r\n );\r\n // eslint-disable-next-line no-fallthrough\r\n case PropertyValueFormat.Struct:\r\n return (\r\n <NonPrimitivePropertyRenderer\r\n isCollapsible={true}\r\n {...primitiveRendererProps}\r\n />\r\n );\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PropertyRenderer.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PropertyRenderer.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 Properties\n */\n\nimport * as React from \"react\";\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { Orientation, RatioChangeResult } from \"@itwin/core-react\";\nimport { HighlightingComponentProps } from \"../../common/HighlightingComponentProps\";\nimport { EditorContainer, PropertyUpdatedArgs } from \"../../editors/EditorContainer\";\nimport { UiComponents } from \"../../UiComponents\";\nimport { PropertyValueRendererManager } from \"../ValueRendererManager\";\nimport { ActionButtonRenderer } from \"./ActionButtonRenderer\";\nimport { CommonPropertyRenderer } from \"./CommonPropertyRenderer\";\nimport { NonPrimitivePropertyRenderer } from \"./NonPrimitivePropertyRenderer\";\nimport { PrimitivePropertyRenderer, PrimitiveRendererProps } from \"./PrimitivePropertyRenderer\";\nimport { PropertyGridColumnInfo } from \"./PropertyGridColumns\";\n\n/** Properties shared by all renderers and PropertyView\n * @public\n */\nexport interface SharedRendererProps {\n /** PropertyRecord to render */\n propertyRecord: PropertyRecord;\n /** Unique string, that identifies this property component. Should be used if onClick or onRightClick are provided */\n uniqueKey?: string;\n /** Orientation to use for displaying the property */\n orientation: Orientation;\n /** Controls component selection */\n isSelected?: boolean;\n /** Called when property gets clicked. If undefined, clicking is disabled */\n onClick?: (property: PropertyRecord, key?: string) => void;\n /** Called when property gets right clicked. If undefined, right clicking is not working */\n onRightClick?: (property: PropertyRecord, key?: string) => void;\n /** Called to show a context menu for properties */\n onContextMenu?: (property: PropertyRecord, e: React.MouseEvent) => void;\n /** Ratio between label and value cells */\n columnRatio?: number;\n /** Callback to column ratio changed event */\n onColumnRatioChanged?: (ratio: number) => void | RatioChangeResult;\n /** Indicates that properties have *hover* effect */\n isHoverable?: boolean;\n /** Indicates that properties can be selected */\n isSelectable?: boolean;\n /** Width of the whole property element */\n width?: number;\n /** Array of action button renderers */\n actionButtonRenderers?: ActionButtonRenderer[];\n /** Is resize handle hovered */\n isResizeHandleHovered?: boolean;\n /** Callback to hover event change */\n onResizeHandleHoverChanged?: (isHovered: boolean) => void;\n /** Is resize handle being dragged */\n isResizeHandleBeingDragged?: boolean;\n /** Callback to drag event change */\n onResizeHandleDragChanged?: (isDragStarted: boolean) => void;\n /** Information for styling property grid columns */\n columnInfo?: PropertyGridColumnInfo;\n}\n\n/** Properties of [[PropertyRenderer]] React component\n * @public\n */\nexport interface PropertyRendererProps extends SharedRendererProps {\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?: (args: PropertyUpdatedArgs) => void;\n /** Called when property edit is cancelled. */\n onEditCancel?: () => void;\n /** Props used for highlighting. */\n highlight?: HighlightingComponentProps;\n}\n\n/** State of [[PropertyRenderer]] React component\n * @internal\n */\ninterface PropertyRendererState {\n /** Currently loaded property value */\n displayValue?: React.ReactNode;\n}\n\n/** A React component that renders properties\n * @public\n */\nexport class PropertyRenderer extends React.Component<PropertyRendererProps, PropertyRendererState> {\n /** @internal */\n public override readonly state: Readonly<PropertyRendererState> = {\n displayValue: UiComponents.translate(\"general.loading\"),\n };\n\n constructor(props: PropertyRendererProps) {\n super(props);\n }\n\n public static getLabelOffset(indentation?: number, orientation?: Orientation, width?: number, columnRatio?: number, minColumnLabelWidth?: number): number {\n return CommonPropertyRenderer.getLabelOffset(indentation, orientation, width, columnRatio, minColumnLabelWidth);\n }\n\n private updateDisplayValue(props: PropertyRendererProps) {\n if (props.isEditing) {\n this.updateDisplayValueAsEditor(props);\n return;\n }\n\n const displayValue = CommonPropertyRenderer.createNewDisplayValue(props.orientation, props.propertyRecord, props.indentation, props.propertyValueRendererManager);\n this.setState({ displayValue });\n }\n\n private _onEditCommit = (args: PropertyUpdatedArgs) => {\n // istanbul ignore else\n if (this.props.onEditCommit)\n this.props.onEditCommit(args);\n };\n\n private _onEditCancel = () => {\n // istanbul ignore else\n if (this.props.onEditCancel)\n this.props.onEditCancel();\n };\n\n /** Display property record value in an editor */\n public updateDisplayValueAsEditor(props: PropertyRendererProps) {\n this.setState({\n displayValue:\n <EditorContainer\n propertyRecord={props.propertyRecord}\n onCommit={this._onEditCommit}\n onCancel={this._onEditCancel}\n setFocus={true}\n />,\n });\n }\n\n /** @internal */\n public override componentDidMount() {\n this.updateDisplayValue(this.props);\n }\n\n /** @internal */\n public override componentDidUpdate(prevProps: PropertyRendererProps) {\n if (prevProps.propertyRecord !== this.props.propertyRecord ||\n prevProps.isEditing !== this.props.isEditing ||\n prevProps.orientation !== this.props.orientation)\n this.updateDisplayValue(this.props);\n }\n\n /** @internal */\n public override render() {\n const { propertyValueRendererManager, isEditing, onEditCommit, onEditCancel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n const primitiveRendererProps: PrimitiveRendererProps = {\n ...props,\n valueElement: this.state.displayValue,\n indentation: this.props.indentation,\n };\n\n switch (this.props.propertyRecord.value.valueFormat) {\n case PropertyValueFormat.Primitive:\n return (\n <PrimitivePropertyRenderer {...primitiveRendererProps} />\n );\n case PropertyValueFormat.Array:\n // If array is empty, render it as a primitive property\n if (this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Array\n && this.props.propertyRecord.value.items.length === 0)\n return (\n <PrimitivePropertyRenderer {...primitiveRendererProps} />\n );\n // eslint-disable-next-line no-fallthrough\n case PropertyValueFormat.Struct:\n return (\n <NonPrimitivePropertyRenderer\n isCollapsible={true}\n {...primitiveRendererProps}\n />\n );\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyView.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PropertyView.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport \"./PropertyView.scss\";\r\nimport * as React from \"react\";\r\nimport { PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { ElementSeparator, Orientation } from \"@itwin/core-react\";\r\nimport { ActionButtonList } from \"./ActionButtonList\";\r\nimport { PropertyGridColumnStyleProvider } from \"./PropertyGridColumns\";\r\nimport { SharedRendererProps } from \"./PropertyRenderer\";\r\n\r\n/** Properties of [[PropertyView]] React component\r\n * @public\r\n */\r\nexport interface PropertyViewProps extends SharedRendererProps {\r\n /** Property label as a React element */\r\n labelElement: React.ReactNode;\r\n /** Property value as a React element */\r\n valueElement?: React.ReactNode;\r\n /** Render callback for property value. If specified, `valueElement` is ignored. */\r\n valueElementRenderer?: () => React.ReactNode;\r\n}\r\n\r\n/** @internal */\r\ninterface PropertyViewState {\r\n isHovered: boolean;\r\n}\r\n\r\n/**\r\n * A React component that renders property as label/value pair\r\n * @public\r\n */\r\nexport class PropertyView extends React.Component<PropertyViewProps, PropertyViewState> {\r\n constructor(props: PropertyViewProps) {\r\n super(props);\r\n this.state = {\r\n isHovered: false,\r\n };\r\n }\r\n\r\n private _onClick = () => {\r\n if (this.props.onClick)\r\n this.props.onClick(this.props.propertyRecord, this.props.uniqueKey);\r\n };\r\n\r\n private _onMouseEnter = () => {\r\n if (this.props.isHoverable)\r\n this.setState({ isHovered: true });\r\n };\r\n\r\n private _onMouseLeave = () => {\r\n if (this.props.isHoverable)\r\n this.setState({ isHovered: false });\r\n };\r\n\r\n private _onContextMenu = (e: React.MouseEvent) => {\r\n if (this.props.onContextMenu)\r\n this.props.onContextMenu(this.props.propertyRecord, e);\r\n if (this.props.onRightClick)\r\n this.props.onRightClick(this.props.propertyRecord, this.props.uniqueKey);\r\n e.preventDefault();\r\n return false;\r\n };\r\n\r\n private getClassName(props: PropertyViewProps) {\r\n let propertyRecordClassName = props.orientation === Orientation.Horizontal\r\n ? \"components-property-record--horizontal\"\r\n : \"components-property-record--vertical\";\r\n if (props.isSelected)\r\n propertyRecordClassName += \" components--selected\";\r\n if (props.onClick)\r\n propertyRecordClassName += \" components--clickable\";\r\n if (props.isHoverable)\r\n propertyRecordClassName += \" components--hoverable\";\r\n return propertyRecordClassName;\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n const ratio = this.props.columnRatio ? this.props.columnRatio : 0.25;\r\n const needElementSeparator = this.props.orientation === Orientation.Horizontal && !!this.props.onColumnRatioChanged;\r\n const needActionButtons = !!this.props.actionButtonRenderers;\r\n const columnsStyleProvider = new PropertyGridColumnStyleProvider(this.props.columnInfo);\r\n\r\n return (\r\n <div\r\n style={columnsStyleProvider.getStyle(this.props.orientation, needActionButtons, ratio, needElementSeparator)}\r\n className={this.getClassName(this.props)}\r\n onClick={this._onClick}\r\n onContextMenu={this._onContextMenu}\r\n onMouseEnter={this._onMouseEnter}\r\n onMouseLeave={this._onMouseLeave}\r\n role=\"presentation\"\r\n >\r\n <div className=\"components-property-record-label\">{this.props.labelElement}</div>\r\n {needElementSeparator\r\n ? <ElementSeparator\r\n movableArea={this.props.width}\r\n onRatioChanged={this.props.onColumnRatioChanged}\r\n ratio={ratio}\r\n orientation={this.props.orientation}\r\n isResizeHandleHovered={this.props.isResizeHandleHovered}\r\n onResizeHandleHoverChanged={this.props.onResizeHandleHoverChanged}\r\n isResizeHandleBeingDragged={this.props.isResizeHandleBeingDragged}\r\n onResizeHandleDragChanged={this.props.onResizeHandleDragChanged}\r\n />\r\n : undefined}\r\n {this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Primitive\r\n ? <div className=\"components-property-record-value\">\r\n <span>{this.props.valueElementRenderer ? this.props.valueElementRenderer() : this.props.valueElement}</span>\r\n </div>\r\n : undefined\r\n }\r\n {this.props.actionButtonRenderers\r\n ?\r\n <ActionButtonList\r\n orientation={this.props.orientation}\r\n property={this.props.propertyRecord}\r\n isPropertyHovered={this.state.isHovered}\r\n actionButtonRenderers={this.props.actionButtonRenderers}\r\n />\r\n :\r\n undefined\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PropertyView.js","sourceRoot":"","sources":["../../../../../src/components-react/properties/renderers/PropertyView.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 Properties\n */\n\nimport \"./PropertyView.scss\";\nimport * as React from \"react\";\nimport { PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { ElementSeparator, Orientation } from \"@itwin/core-react\";\nimport { ActionButtonList } from \"./ActionButtonList\";\nimport { PropertyGridColumnStyleProvider } from \"./PropertyGridColumns\";\nimport { SharedRendererProps } from \"./PropertyRenderer\";\n\n/** Properties of [[PropertyView]] React component\n * @public\n */\nexport interface PropertyViewProps extends SharedRendererProps {\n /** Property label as a React element */\n labelElement: React.ReactNode;\n /** Property value as a React element */\n valueElement?: React.ReactNode;\n /** Render callback for property value. If specified, `valueElement` is ignored. */\n valueElementRenderer?: () => React.ReactNode;\n}\n\n/** @internal */\ninterface PropertyViewState {\n isHovered: boolean;\n}\n\n/**\n * A React component that renders property as label/value pair\n * @public\n */\nexport class PropertyView extends React.Component<PropertyViewProps, PropertyViewState> {\n constructor(props: PropertyViewProps) {\n super(props);\n this.state = {\n isHovered: false,\n };\n }\n\n private _onClick = () => {\n if (this.props.onClick)\n this.props.onClick(this.props.propertyRecord, this.props.uniqueKey);\n };\n\n private _onMouseEnter = () => {\n if (this.props.isHoverable)\n this.setState({ isHovered: true });\n };\n\n private _onMouseLeave = () => {\n if (this.props.isHoverable)\n this.setState({ isHovered: false });\n };\n\n private _onContextMenu = (e: React.MouseEvent) => {\n if (this.props.onContextMenu)\n this.props.onContextMenu(this.props.propertyRecord, e);\n if (this.props.onRightClick)\n this.props.onRightClick(this.props.propertyRecord, this.props.uniqueKey);\n e.preventDefault();\n return false;\n };\n\n private getClassName(props: PropertyViewProps) {\n let propertyRecordClassName = props.orientation === Orientation.Horizontal\n ? \"components-property-record--horizontal\"\n : \"components-property-record--vertical\";\n if (props.isSelected)\n propertyRecordClassName += \" components--selected\";\n if (props.onClick)\n propertyRecordClassName += \" components--clickable\";\n if (props.isHoverable)\n propertyRecordClassName += \" components--hoverable\";\n return propertyRecordClassName;\n }\n\n /** @internal */\n public override render() {\n const ratio = this.props.columnRatio ? this.props.columnRatio : 0.25;\n const needElementSeparator = this.props.orientation === Orientation.Horizontal && !!this.props.onColumnRatioChanged;\n const needActionButtons = !!this.props.actionButtonRenderers;\n const columnsStyleProvider = new PropertyGridColumnStyleProvider(this.props.columnInfo);\n\n return (\n <div\n style={columnsStyleProvider.getStyle(this.props.orientation, needActionButtons, ratio, needElementSeparator)}\n className={this.getClassName(this.props)}\n onClick={this._onClick}\n onContextMenu={this._onContextMenu}\n onMouseEnter={this._onMouseEnter}\n onMouseLeave={this._onMouseLeave}\n role=\"presentation\"\n >\n <div className=\"components-property-record-label\">{this.props.labelElement}</div>\n {needElementSeparator\n ? <ElementSeparator\n movableArea={this.props.width}\n onRatioChanged={this.props.onColumnRatioChanged}\n ratio={ratio}\n orientation={this.props.orientation}\n isResizeHandleHovered={this.props.isResizeHandleHovered}\n onResizeHandleHoverChanged={this.props.onResizeHandleHoverChanged}\n isResizeHandleBeingDragged={this.props.isResizeHandleBeingDragged}\n onResizeHandleDragChanged={this.props.onResizeHandleDragChanged}\n />\n : undefined}\n {this.props.propertyRecord.value.valueFormat === PropertyValueFormat.Primitive\n ? <div className=\"components-property-record-value\">\n <span>{this.props.valueElementRenderer ? this.props.valueElementRenderer() : this.props.valueElement}</span>\n </div>\n : undefined\n }\n {this.props.actionButtonRenderers\n ?\n <ActionButtonList\n orientation={this.props.orientation}\n property={this.props.propertyRecord}\n isPropertyHovered={this.state.isHovered}\n actionButtonRenderers={this.props.actionButtonRenderers}\n />\n :\n undefined\n }\n </div>\n );\n }\n}\n"]}