@itwin/components-react 3.0.0-dev.82 → 3.0.0-dev.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/CHANGELOG.md +1362 -1362
  2. package/README.md +11 -11
  3. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  4. package/lib/cjs/components-react/_target.scss +9 -9
  5. package/lib/cjs/components-react/breadcrumb/BeInspireTree.js.map +1 -1
  6. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  7. package/lib/cjs/components-react/breadcrumb/Breadcrumb.scss +196 -196
  8. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  9. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  10. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  11. package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
  12. package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
  13. package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
  14. package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
  15. package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
  16. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  17. package/lib/cjs/components-react/common/Links.js.map +1 -1
  18. package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
  19. package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
  20. package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
  21. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  22. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  23. package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
  24. package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
  25. package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
  26. package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
  27. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  28. package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
  29. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  30. package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
  31. package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
  32. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  33. package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
  34. package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  35. package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  36. package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
  37. package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
  38. package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
  39. package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
  40. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  41. package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  42. package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
  43. package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
  44. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  45. package/lib/cjs/components-react/datepicker/DatePicker.scss +170 -170
  46. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  47. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  48. package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
  49. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  50. package/lib/cjs/components-react/datepicker/TimeField.scss +73 -73
  51. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  52. package/lib/cjs/components-react/editors/BooleanEditor.scss +24 -24
  53. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  54. package/lib/cjs/components-react/editors/CustomNumberEditor.scss +21 -21
  55. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  56. package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
  57. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  58. package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
  59. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  60. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +182 -182
  61. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  62. package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
  63. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  64. package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
  65. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  66. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +23 -23
  67. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/NumericInputEditor.scss +17 -17
  69. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  70. package/lib/cjs/components-react/editors/PopupButton.scss +119 -119
  71. package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
  72. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  73. package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
  74. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  75. package/lib/cjs/components-react/editors/TextEditor.scss +21 -21
  76. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  77. package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
  78. package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
  79. package/lib/cjs/components-react/editors/ThemedEnumEditor.scss +82 -82
  80. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  81. package/lib/cjs/components-react/editors/ToggleEditor.scss +25 -25
  82. package/lib/cjs/components-react/editors/variables.scss +6 -6
  83. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  84. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  85. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  86. package/lib/cjs/components-react/filtering/FilteringInput.scss +68 -68
  87. package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
  88. package/lib/cjs/components-react/filtering/ResultSelector.scss +72 -72
  89. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  90. package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +74 -74
  91. package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
  92. package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
  93. package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
  94. package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
  95. package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
  96. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  97. package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
  98. package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  99. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  100. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  101. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +16 -16
  102. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  103. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  105. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  106. package/lib/cjs/components-react/properties/renderers/PropertyView.scss +106 -106
  107. package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  108. package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  109. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  110. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +87 -87
  111. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  112. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  113. package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  114. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  115. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  116. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  117. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  118. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  119. package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  120. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  121. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  122. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +10 -10
  123. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  124. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  125. package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  126. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  127. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  128. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  129. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  130. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  131. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +75 -75
  132. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  133. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  134. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  135. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  136. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +94 -94
  137. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  138. package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  139. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  140. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  141. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  142. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  143. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  144. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  145. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  146. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  147. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  148. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  149. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  150. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  151. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  152. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  153. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  154. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  155. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  156. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  157. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  158. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  159. package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
  160. package/lib/cjs/components-react/selectable-content/SelectableContent.scss +19 -19
  161. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
  162. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  163. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  164. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.scss +78 -78
  165. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
  166. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +1 -1
  167. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js +1 -0
  168. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js.map +1 -1
  169. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
  170. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
  171. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
  172. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
  173. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +1 -1
  174. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +1 -1
  175. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +1 -1
  176. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +1 -0
  177. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +1 -1
  178. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +1 -1
  179. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +1 -1
  180. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +1 -0
  181. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +1 -1
  182. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +35 -35
  183. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
  184. package/lib/cjs/components-react/table/component/DragDropHeaderCell.js.map +1 -1
  185. package/lib/cjs/components-react/table/component/Table.d.ts +8 -8
  186. package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
  187. package/lib/cjs/components-react/table/component/Table.js +3 -2
  188. package/lib/cjs/components-react/table/component/Table.js.map +1 -1
  189. package/lib/cjs/components-react/table/component/Table.scss +200 -200
  190. package/lib/cjs/components-react/table/component/TableCell.d.ts +5 -5
  191. package/lib/cjs/components-react/table/component/TableCell.d.ts.map +1 -1
  192. package/lib/cjs/components-react/table/component/TableCell.js +3 -2
  193. package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
  194. package/lib/cjs/components-react/table/component/TableCell.scss +48 -48
  195. package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
  196. package/lib/cjs/components-react/table/component/TableColumn.d.ts.map +1 -1
  197. package/lib/cjs/components-react/table/component/TableColumn.js +1 -0
  198. package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
  199. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  200. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  201. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  202. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  203. package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
  204. package/lib/cjs/components-react/toolbar/Item.scss +122 -122
  205. package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
  206. package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
  207. package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
  208. package/lib/cjs/components-react/toolbar/Items.scss +94 -94
  209. package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
  210. package/lib/cjs/components-react/toolbar/Overflow.scss +48 -48
  211. package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
  212. package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
  213. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  214. package/lib/cjs/components-react/toolbar/PopupItem.scss +75 -75
  215. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  216. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  217. package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
  218. package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
  219. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  220. package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
  221. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  222. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  223. package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
  224. package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
  225. package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  226. package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
  227. package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  228. package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +17 -17
  229. package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
  230. package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +34 -34
  231. package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
  232. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  233. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  234. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  235. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +146 -146
  236. package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  237. package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
  238. package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
  239. package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
  240. package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
  241. package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
  242. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  243. package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
  244. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  245. package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
  246. package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
  247. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  248. package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  249. package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
  250. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  251. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  252. package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  253. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  254. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  255. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  256. package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  257. package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +28 -28
  258. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  259. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  260. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  261. package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  262. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  263. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  264. package/lib/cjs/components-react.js.map +1 -1
  265. package/lib/esm/components-react/UiComponents.js.map +1 -1
  266. package/lib/esm/components-react/_target.scss +9 -9
  267. package/lib/esm/components-react/breadcrumb/BeInspireTree.js.map +1 -1
  268. package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  269. package/lib/esm/components-react/breadcrumb/Breadcrumb.scss +196 -196
  270. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  271. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  272. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  273. package/lib/esm/components-react/common/DateUtils.js.map +1 -1
  274. package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
  275. package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
  276. package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
  277. package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
  278. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  279. package/lib/esm/components-react/common/Links.js.map +1 -1
  280. package/lib/esm/components-react/common/PageOptions.js.map +1 -1
  281. package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
  282. package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
  283. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  284. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  285. package/lib/esm/components-react/common/UseRerender.js.map +1 -1
  286. package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
  287. package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
  288. package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
  289. package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  290. package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
  291. package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  292. package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
  293. package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
  294. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  295. package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
  296. package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  297. package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  298. package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
  299. package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
  300. package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
  301. package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
  302. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  303. package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  304. package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
  305. package/lib/esm/components-react/datepicker/DateField.scss +22 -22
  306. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  307. package/lib/esm/components-react/datepicker/DatePicker.scss +170 -170
  308. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  309. package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  310. package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
  311. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  312. package/lib/esm/components-react/datepicker/TimeField.scss +73 -73
  313. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  314. package/lib/esm/components-react/editors/BooleanEditor.scss +24 -24
  315. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  316. package/lib/esm/components-react/editors/CustomNumberEditor.scss +21 -21
  317. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  318. package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
  319. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  320. package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
  321. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  322. package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +182 -182
  323. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  324. package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
  325. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  326. package/lib/esm/components-react/editors/IconEditor.scss +16 -16
  327. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  328. package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +23 -23
  329. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  330. package/lib/esm/components-react/editors/NumericInputEditor.scss +17 -17
  331. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  332. package/lib/esm/components-react/editors/PopupButton.scss +119 -119
  333. package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
  334. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  335. package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
  336. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  337. package/lib/esm/components-react/editors/TextEditor.scss +21 -21
  338. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  339. package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
  340. package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
  341. package/lib/esm/components-react/editors/ThemedEnumEditor.scss +82 -82
  342. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  343. package/lib/esm/components-react/editors/ToggleEditor.scss +25 -25
  344. package/lib/esm/components-react/editors/variables.scss +6 -6
  345. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  346. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  347. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  348. package/lib/esm/components-react/filtering/FilteringInput.scss +68 -68
  349. package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
  350. package/lib/esm/components-react/filtering/ResultSelector.scss +72 -72
  351. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  352. package/lib/esm/components-react/iconpicker/IconPickerButton.scss +74 -74
  353. package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
  354. package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
  355. package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
  356. package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
  357. package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
  358. package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  359. package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
  360. package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  361. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  362. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  363. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +16 -16
  364. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  365. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  366. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  367. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  368. package/lib/esm/components-react/properties/renderers/PropertyView.scss +106 -106
  369. package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  370. package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  371. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  372. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +87 -87
  373. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  374. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  375. package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  376. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  377. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  378. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  379. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  380. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  381. package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  382. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  383. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  384. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +10 -10
  385. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  386. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  387. package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  388. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  389. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  390. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  391. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  392. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  393. package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +75 -75
  394. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  395. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  396. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  397. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  398. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +94 -94
  399. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  400. package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  401. package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  402. package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  403. package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  404. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  405. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  406. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  407. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  408. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  409. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  410. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  411. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  412. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  413. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  414. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  415. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  416. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  417. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  418. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  419. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  420. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  421. package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
  422. package/lib/esm/components-react/selectable-content/SelectableContent.scss +19 -19
  423. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
  424. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  425. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  426. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.scss +78 -78
  427. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
  428. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +1 -1
  429. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js +1 -0
  430. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js.map +1 -1
  431. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
  432. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
  433. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
  434. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
  435. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +1 -1
  436. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +1 -1
  437. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +1 -1
  438. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +1 -0
  439. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +1 -1
  440. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +1 -1
  441. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +1 -1
  442. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +1 -0
  443. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +1 -1
  444. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +35 -35
  445. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
  446. package/lib/esm/components-react/table/component/DragDropHeaderCell.js.map +1 -1
  447. package/lib/esm/components-react/table/component/Table.d.ts +8 -8
  448. package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
  449. package/lib/esm/components-react/table/component/Table.js +3 -2
  450. package/lib/esm/components-react/table/component/Table.js.map +1 -1
  451. package/lib/esm/components-react/table/component/Table.scss +200 -200
  452. package/lib/esm/components-react/table/component/TableCell.d.ts +5 -5
  453. package/lib/esm/components-react/table/component/TableCell.d.ts.map +1 -1
  454. package/lib/esm/components-react/table/component/TableCell.js +3 -2
  455. package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
  456. package/lib/esm/components-react/table/component/TableCell.scss +48 -48
  457. package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
  458. package/lib/esm/components-react/table/component/TableColumn.d.ts.map +1 -1
  459. package/lib/esm/components-react/table/component/TableColumn.js +1 -0
  460. package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
  461. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  462. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  463. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  464. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  465. package/lib/esm/components-react/toolbar/Item.js.map +1 -1
  466. package/lib/esm/components-react/toolbar/Item.scss +122 -122
  467. package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
  468. package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
  469. package/lib/esm/components-react/toolbar/Items.js.map +1 -1
  470. package/lib/esm/components-react/toolbar/Items.scss +94 -94
  471. package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
  472. package/lib/esm/components-react/toolbar/Overflow.scss +48 -48
  473. package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
  474. package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
  475. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  476. package/lib/esm/components-react/toolbar/PopupItem.scss +75 -75
  477. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  478. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  479. package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
  480. package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
  481. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  482. package/lib/esm/components-react/toolbar/_variables.scss +34 -34
  483. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  484. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  485. package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
  486. package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
  487. package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  488. package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
  489. package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  490. package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +17 -17
  491. package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
  492. package/lib/esm/components-react/toolbar/groupPanel/Title.scss +34 -34
  493. package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
  494. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  495. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  496. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  497. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +146 -146
  498. package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  499. package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
  500. package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
  501. package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
  502. package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
  503. package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
  504. package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  505. package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
  506. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  507. package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
  508. package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
  509. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  510. package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  511. package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
  512. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  513. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  514. package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  515. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  516. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  517. package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  518. package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  519. package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +28 -28
  520. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  521. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  522. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  523. package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  524. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  525. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  526. package/lib/esm/components-react.js.map +1 -1
  527. package/lib/public/locales/en/UiComponents.json +123 -123
  528. package/package.json +12 -12
@@ -1,120 +1,120 @@
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/icons/variables";
6
- @import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
7
- @import "~@itwin/core-react/lib/cjs/core-react/style/baseline";
8
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
9
- @import "~@itwin/core-react/lib/cjs/core-react/style/variables";
10
- @import "~@itwin/itwinui-css/scss/style/variables";
11
-
12
- .components-popup-button {
13
- min-width: 100%;
14
- min-height: $uicore-component-height-normal;
15
- height: 100%;
16
- margin: 0;
17
- padding: 0;
18
- background-color: $buic-background-control;
19
- border: 1px solid $buic-inputs-border;
20
- border-radius: $iui-border-radius;
21
- box-shadow: $buic-inputs-boxshadow 0px 1px 1px inset;
22
- box-sizing: border-box;
23
- cursor: pointer;
24
-
25
- display: flex;
26
- flex-shrink: 1;
27
- align-items: center;
28
-
29
- font-weight: normal;
30
-
31
- >.components-popup-button-value {
32
- flex-grow: 1;
33
- max-width: calc(100% - #{$uicore-line-height});
34
- overflow-x: hidden;
35
- padding: 0 3px;
36
-
37
- &.components-popup-button-placeholder {
38
- color: $buic-foreground-disabled;
39
- }
40
- }
41
-
42
- >.components-popup-button-arrow {
43
- background-color: $buic-background-control;
44
- width: $uicore-line-height;
45
- height: $uicore-line-height;
46
-
47
- >.components-popup-button-arrow-icon {
48
- transition: transform .2s;
49
-
50
- &:hover {
51
- color: $buic-foreground-primary;
52
- }
53
-
54
- text-align: center;
55
- font-size: $uicore-icons-x-small;
56
- line-height: $uicore-line-height;
57
- }
58
- }
59
-
60
- &:focus,
61
- &.components-popup-expanded {
62
- border-color: $buic-foreground-focus;
63
- outline: 0px;
64
- box-shadow: $uicore-inputs-focus-boxshadow;
65
-
66
- >.components-popup-button-arrow {
67
- border: none;
68
- box-shadow: none;
69
- outline: 0px;
70
-
71
- >.components-popup-button-arrow-icon {
72
- color: $buic-foreground-primary;
73
- }
74
- }
75
- }
76
-
77
- }
78
-
79
- .components-smallEditor-host {
80
- .components-popup-button {
81
- min-height: $uicore-component-height-small !important;
82
- }
83
- }
84
-
85
- .components-popup-button-popup {
86
- background-color: $buic-background-dialog;
87
- }
88
-
89
- .components-editor-popup-content {
90
- padding: 4px 8px;
91
- }
92
-
93
- .components-popup-bottom-buttons {
94
- display: flex;
95
- justify-content: flex-end;
96
- margin-top: 4px;
97
-
98
- >.components-popup-large-button {
99
- width: 70px;
100
- font-size: 20px;
101
- margin-left: 6px;
102
- }
103
-
104
- >.components-popup-cancel-button {
105
-
106
- &,
107
- &:active,
108
- &:focus {
109
- border: none;
110
- background-color: $uicore-gray;
111
- color: $uicore-white;
112
- }
113
-
114
- &:hover {
115
- background-color: $uicore-gray-5;
116
- color: $uicore-white;
117
- }
118
-
119
- }
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/icons/variables";
6
+ @import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
7
+ @import "~@itwin/core-react/lib/cjs/core-react/style/baseline";
8
+ @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
9
+ @import "~@itwin/core-react/lib/cjs/core-react/style/variables";
10
+ @import "~@itwin/itwinui-css/scss/style/variables";
11
+
12
+ .components-popup-button {
13
+ min-width: 100%;
14
+ min-height: $uicore-component-height-normal;
15
+ height: 100%;
16
+ margin: 0;
17
+ padding: 0;
18
+ background-color: $buic-background-control;
19
+ border: 1px solid $buic-inputs-border;
20
+ border-radius: $iui-border-radius;
21
+ box-shadow: $buic-inputs-boxshadow 0px 1px 1px inset;
22
+ box-sizing: border-box;
23
+ cursor: pointer;
24
+
25
+ display: flex;
26
+ flex-shrink: 1;
27
+ align-items: center;
28
+
29
+ font-weight: normal;
30
+
31
+ >.components-popup-button-value {
32
+ flex-grow: 1;
33
+ max-width: calc(100% - #{$uicore-line-height});
34
+ overflow-x: hidden;
35
+ padding: 0 3px;
36
+
37
+ &.components-popup-button-placeholder {
38
+ color: $buic-foreground-disabled;
39
+ }
40
+ }
41
+
42
+ >.components-popup-button-arrow {
43
+ background-color: $buic-background-control;
44
+ width: $uicore-line-height;
45
+ height: $uicore-line-height;
46
+
47
+ >.components-popup-button-arrow-icon {
48
+ transition: transform .2s;
49
+
50
+ &:hover {
51
+ color: $buic-foreground-primary;
52
+ }
53
+
54
+ text-align: center;
55
+ font-size: $uicore-icons-x-small;
56
+ line-height: $uicore-line-height;
57
+ }
58
+ }
59
+
60
+ &:focus,
61
+ &.components-popup-expanded {
62
+ border-color: $buic-foreground-focus;
63
+ outline: 0px;
64
+ box-shadow: $uicore-inputs-focus-boxshadow;
65
+
66
+ >.components-popup-button-arrow {
67
+ border: none;
68
+ box-shadow: none;
69
+ outline: 0px;
70
+
71
+ >.components-popup-button-arrow-icon {
72
+ color: $buic-foreground-primary;
73
+ }
74
+ }
75
+ }
76
+
77
+ }
78
+
79
+ .components-smallEditor-host {
80
+ .components-popup-button {
81
+ min-height: $uicore-component-height-small !important;
82
+ }
83
+ }
84
+
85
+ .components-popup-button-popup {
86
+ background-color: $buic-background-dialog;
87
+ }
88
+
89
+ .components-editor-popup-content {
90
+ padding: 4px 8px;
91
+ }
92
+
93
+ .components-popup-bottom-buttons {
94
+ display: flex;
95
+ justify-content: flex-end;
96
+ margin-top: 4px;
97
+
98
+ >.components-popup-large-button {
99
+ width: 70px;
100
+ font-size: 20px;
101
+ margin-left: 6px;
102
+ }
103
+
104
+ >.components-popup-cancel-button {
105
+
106
+ &,
107
+ &:active,
108
+ &:focus {
109
+ border: none;
110
+ background-color: $uicore-gray;
111
+ color: $uicore-white;
112
+ }
113
+
114
+ &:hover {
115
+ background-color: $uicore-gray-5;
116
+ color: $uicore-white;
117
+ }
118
+
119
+ }
120
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyEditorManager.js","sourceRoot":"","sources":["../../../../src/components-react/editors/PropertyEditorManager.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 PropertyEditors\n */\n\nimport * as React from \"react\";\nimport { TextEditor } from \"./TextEditor\";\nimport { DisplayMessageType, MessageSeverity, PropertyDescription, PropertyRecord, PropertyValue, StandardTypeNames } from \"@itwin/appui-abstract\";\n\n/** Asynchronous Error Message returned as part of [[AsyncValueProcessingResult]]\n * @public\n */\nexport interface AsyncErrorMessage {\n severity: MessageSeverity;\n briefMessage: string;\n detailedMessage?: string;\n messageType?: DisplayMessageType;\n}\n\n/** Asynchronous Value Process Result\n * @public\n */\nexport interface AsyncValueProcessingResult {\n encounteredError: boolean;\n returnValue?: PropertyValue;\n errorMessage?: AsyncErrorMessage;\n}\n\n/** DataControllers can be implemented per typename to validate and commit values.\n * @public\n */\nexport interface DataController {\n validateValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult>;\n commitValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult>;\n}\n\n/** PropertyEditor is the base class for all property editors.\n * @public\n */\nexport abstract class PropertyEditorBase implements DataController {\n\n public get containerHandlesBlur(): boolean {\n return true;\n }\n public get containerHandlesEscape(): boolean {\n return true;\n }\n public get containerHandlesEnter(): boolean {\n return true;\n }\n public get containerHandlesTab(): boolean {\n return true;\n }\n public get containerStopsKeydownPropagation(): boolean {\n return true;\n }\n\n public customDataController: DataController | undefined = undefined;\n\n public abstract get reactNode(): React.ReactNode;\n\n public applyEditorParams(_property: PropertyDescription, _record: PropertyRecord): void { }\n\n public async commitValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult> {\n if (this.customDataController)\n return this.customDataController.commitValue(newValue, record);\n\n return { encounteredError: false };\n }\n\n public async validateValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult> {\n if (this.customDataController)\n return this.customDataController.validateValue(newValue, record);\n\n return { encounteredError: false };\n }\n\n}\n\n/** DataControllerBase is the base class for all Data Controllers.\n * @public\n */\nexport abstract class DataControllerBase implements DataController {\n public async commitValue(_newValue: PropertyValue, _record: PropertyRecord): Promise<AsyncValueProcessingResult> {\n return { encounteredError: false };\n }\n\n public async validateValue(_newValue: PropertyValue, _record: PropertyRecord): Promise<AsyncValueProcessingResult> {\n return { encounteredError: false };\n }\n}\n\n/** Manages Property Editors. Property Editors are registered with and created by the manager.\n * @public\n */\nexport class PropertyEditorManager {\n private static _editors: { [index: string]: (new () => PropertyEditorBase) } = {};\n private static _dataControllers: { [index: string]: (new () => DataControllerBase) } = {};\n\n public static registerEditor(editType: string, editor: new () => PropertyEditorBase, editorName?: string): void {\n const fullEditorName = PropertyEditorManager.getFullEditorName(editType, editorName);\n\n if (PropertyEditorManager._editors.hasOwnProperty(fullEditorName)) {\n const nameOfEditor = PropertyEditorManager._editors[fullEditorName].name;\n throw Error(`PropertyEditorManager.registerEditor error: type '${fullEditorName}' already registered to '${nameOfEditor}'`);\n }\n PropertyEditorManager._editors[fullEditorName] = editor;\n }\n\n private static getFullEditorName(editType: string, editorName?: string): string {\n let fullEditorName = editType;\n if (editorName)\n fullEditorName += `:${editorName}`;\n return fullEditorName;\n }\n\n public static registerDataController(controllerName: string, controller: new () => DataControllerBase): void {\n if (PropertyEditorManager._dataControllers.hasOwnProperty(controllerName)) {\n throw Error(`PropertyEditorManager.registerDataController error: type '${controllerName}' already registered to '${(typeof PropertyEditorManager._dataControllers[controllerName]).toString()}'`);\n }\n PropertyEditorManager._dataControllers[controllerName] = controller;\n }\n\n /** @internal */\n public static deregisterDataController(controllerName: string): void {\n // istanbul ignore else\n if (PropertyEditorManager._dataControllers.hasOwnProperty(controllerName)) {\n delete PropertyEditorManager._dataControllers[controllerName];\n }\n }\n\n public static createEditor(editType: string, editorName?: string, dataControllerName?: string): PropertyEditorBase {\n const fullEditorName = PropertyEditorManager.getFullEditorName(editType, editorName);\n\n let editor: PropertyEditorBase;\n if (PropertyEditorManager._editors.hasOwnProperty(fullEditorName))\n editor = new PropertyEditorManager._editors[fullEditorName]();\n else if (PropertyEditorManager._editors.hasOwnProperty(editType))\n editor = new PropertyEditorManager._editors[editType]();\n else\n editor = new BasicPropertyEditor();\n\n if (dataControllerName) {\n if (PropertyEditorManager._dataControllers.hasOwnProperty(dataControllerName))\n editor.customDataController = new PropertyEditorManager._dataControllers[dataControllerName]();\n else\n throw Error(`PropertyEditorManager.createEditor error: data controller '${dataControllerName}' is not registered`);\n }\n\n return editor;\n }\n\n public static hasCustomEditor(editType: string, editorName: string): boolean {\n const fullEditorName = PropertyEditorManager.getFullEditorName(editType, editorName);\n return PropertyEditorManager._editors.hasOwnProperty(fullEditorName);\n }\n}\n\n/** Basic Property Editor registered for the \"text\" and \"string\" type names.\n * It uses the [[TextEditor]] React component.\n * @public\n */\nexport class BasicPropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <TextEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(StandardTypeNames.Text, BasicPropertyEditor);\nPropertyEditorManager.registerEditor(StandardTypeNames.String, BasicPropertyEditor);\n"]}
1
+ {"version":3,"file":"PropertyEditorManager.js","sourceRoot":"","sources":["../../../../src/components-react/editors/PropertyEditorManager.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 PropertyEditors\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { TextEditor } from \"./TextEditor\";\r\nimport { DisplayMessageType, MessageSeverity, PropertyDescription, PropertyRecord, PropertyValue, StandardTypeNames } from \"@itwin/appui-abstract\";\r\n\r\n/** Asynchronous Error Message returned as part of [[AsyncValueProcessingResult]]\r\n * @public\r\n */\r\nexport interface AsyncErrorMessage {\r\n severity: MessageSeverity;\r\n briefMessage: string;\r\n detailedMessage?: string;\r\n messageType?: DisplayMessageType;\r\n}\r\n\r\n/** Asynchronous Value Process Result\r\n * @public\r\n */\r\nexport interface AsyncValueProcessingResult {\r\n encounteredError: boolean;\r\n returnValue?: PropertyValue;\r\n errorMessage?: AsyncErrorMessage;\r\n}\r\n\r\n/** DataControllers can be implemented per typename to validate and commit values.\r\n * @public\r\n */\r\nexport interface DataController {\r\n validateValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult>;\r\n commitValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult>;\r\n}\r\n\r\n/** PropertyEditor is the base class for all property editors.\r\n * @public\r\n */\r\nexport abstract class PropertyEditorBase implements DataController {\r\n\r\n public get containerHandlesBlur(): boolean {\r\n return true;\r\n }\r\n public get containerHandlesEscape(): boolean {\r\n return true;\r\n }\r\n public get containerHandlesEnter(): boolean {\r\n return true;\r\n }\r\n public get containerHandlesTab(): boolean {\r\n return true;\r\n }\r\n public get containerStopsKeydownPropagation(): boolean {\r\n return true;\r\n }\r\n\r\n public customDataController: DataController | undefined = undefined;\r\n\r\n public abstract get reactNode(): React.ReactNode;\r\n\r\n public applyEditorParams(_property: PropertyDescription, _record: PropertyRecord): void { }\r\n\r\n public async commitValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult> {\r\n if (this.customDataController)\r\n return this.customDataController.commitValue(newValue, record);\r\n\r\n return { encounteredError: false };\r\n }\r\n\r\n public async validateValue(newValue: PropertyValue, record: PropertyRecord): Promise<AsyncValueProcessingResult> {\r\n if (this.customDataController)\r\n return this.customDataController.validateValue(newValue, record);\r\n\r\n return { encounteredError: false };\r\n }\r\n\r\n}\r\n\r\n/** DataControllerBase is the base class for all Data Controllers.\r\n * @public\r\n */\r\nexport abstract class DataControllerBase implements DataController {\r\n public async commitValue(_newValue: PropertyValue, _record: PropertyRecord): Promise<AsyncValueProcessingResult> {\r\n return { encounteredError: false };\r\n }\r\n\r\n public async validateValue(_newValue: PropertyValue, _record: PropertyRecord): Promise<AsyncValueProcessingResult> {\r\n return { encounteredError: false };\r\n }\r\n}\r\n\r\n/** Manages Property Editors. Property Editors are registered with and created by the manager.\r\n * @public\r\n */\r\nexport class PropertyEditorManager {\r\n private static _editors: { [index: string]: (new () => PropertyEditorBase) } = {};\r\n private static _dataControllers: { [index: string]: (new () => DataControllerBase) } = {};\r\n\r\n public static registerEditor(editType: string, editor: new () => PropertyEditorBase, editorName?: string): void {\r\n const fullEditorName = PropertyEditorManager.getFullEditorName(editType, editorName);\r\n\r\n if (PropertyEditorManager._editors.hasOwnProperty(fullEditorName)) {\r\n const nameOfEditor = PropertyEditorManager._editors[fullEditorName].name;\r\n throw Error(`PropertyEditorManager.registerEditor error: type '${fullEditorName}' already registered to '${nameOfEditor}'`);\r\n }\r\n PropertyEditorManager._editors[fullEditorName] = editor;\r\n }\r\n\r\n private static getFullEditorName(editType: string, editorName?: string): string {\r\n let fullEditorName = editType;\r\n if (editorName)\r\n fullEditorName += `:${editorName}`;\r\n return fullEditorName;\r\n }\r\n\r\n public static registerDataController(controllerName: string, controller: new () => DataControllerBase): void {\r\n if (PropertyEditorManager._dataControllers.hasOwnProperty(controllerName)) {\r\n throw Error(`PropertyEditorManager.registerDataController error: type '${controllerName}' already registered to '${(typeof PropertyEditorManager._dataControllers[controllerName]).toString()}'`);\r\n }\r\n PropertyEditorManager._dataControllers[controllerName] = controller;\r\n }\r\n\r\n /** @internal */\r\n public static deregisterDataController(controllerName: string): void {\r\n // istanbul ignore else\r\n if (PropertyEditorManager._dataControllers.hasOwnProperty(controllerName)) {\r\n delete PropertyEditorManager._dataControllers[controllerName];\r\n }\r\n }\r\n\r\n public static createEditor(editType: string, editorName?: string, dataControllerName?: string): PropertyEditorBase {\r\n const fullEditorName = PropertyEditorManager.getFullEditorName(editType, editorName);\r\n\r\n let editor: PropertyEditorBase;\r\n if (PropertyEditorManager._editors.hasOwnProperty(fullEditorName))\r\n editor = new PropertyEditorManager._editors[fullEditorName]();\r\n else if (PropertyEditorManager._editors.hasOwnProperty(editType))\r\n editor = new PropertyEditorManager._editors[editType]();\r\n else\r\n editor = new BasicPropertyEditor();\r\n\r\n if (dataControllerName) {\r\n if (PropertyEditorManager._dataControllers.hasOwnProperty(dataControllerName))\r\n editor.customDataController = new PropertyEditorManager._dataControllers[dataControllerName]();\r\n else\r\n throw Error(`PropertyEditorManager.createEditor error: data controller '${dataControllerName}' is not registered`);\r\n }\r\n\r\n return editor;\r\n }\r\n\r\n public static hasCustomEditor(editType: string, editorName: string): boolean {\r\n const fullEditorName = PropertyEditorManager.getFullEditorName(editType, editorName);\r\n return PropertyEditorManager._editors.hasOwnProperty(fullEditorName);\r\n }\r\n}\r\n\r\n/** Basic Property Editor registered for the \"text\" and \"string\" type names.\r\n * It uses the [[TextEditor]] React component.\r\n * @public\r\n */\r\nexport class BasicPropertyEditor extends PropertyEditorBase {\r\n public get reactNode(): React.ReactNode {\r\n return <TextEditor />;\r\n }\r\n}\r\n\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Text, BasicPropertyEditor);\r\nPropertyEditorManager.registerEditor(StandardTypeNames.String, BasicPropertyEditor);\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/SliderEditor.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 PropertyEditors\n */\n\nimport \"./SliderEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport {\n PropertyEditorParams, PropertyEditorParamTypes, PropertyValue, PropertyValueFormat, SliderEditorParams, StandardEditorNames, StandardTypeNames,\n} from \"@itwin/appui-abstract\";\nimport { Icon } from \"@itwin/core-react\";\nimport { Slider, TooltipProps } from \"@itwin/itwinui-react\";\nimport { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport { PropertyEditorBase, PropertyEditorManager } from \"./PropertyEditorManager\";\nimport { PopupButton, PopupContent, PopupOkCancelButtons } from \"./PopupButton\";\n\n/** @internal */\ninterface SliderEditorState {\n value: number;\n isDisabled?: boolean;\n min: number;\n max: number;\n size?: number;\n step?: number;\n showTooltip?: boolean;\n tooltipBelow?: boolean;\n formatTooltip?: (value: number) => string;\n thumbMode?: \"allow-crossing\" | \"inhibit-crossing\";\n trackDisplayMode?: \"auto\" | \"none\" | \"odd-segments\" | \"even-segments\";\n minLabel?: React.ReactNode;\n maxLabel?: React.ReactNode;\n tickLabels?: React.ReactNode;\n}\n\n/** SliderEditor React component that is a property editor with numeric input & up/down buttons\n * @public\n */\nexport class SliderEditor extends React.PureComponent<PropertyEditorProps, SliderEditorState> implements TypeEditor {\n private _isMounted = false;\n private _enterKey = false;\n private _divElement = React.createRef<HTMLDivElement>();\n\n /** @internal */\n public override readonly state: Readonly<SliderEditorState> = {\n value: 0,\n min: 0,\n max: 100,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.value,\n displayValue: \"\",\n };\n }\n\n return propertyValue;\n }\n\n public get htmlElement(): HTMLElement | null {\n return this._divElement.current;\n }\n\n public get hasFocus(): boolean {\n let containsFocus = false;\n // istanbul ignore else\n if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n private _handleChange = (values: readonly number[]): void => {\n const newValue = values[0];\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({\n value: newValue,\n });\n };\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n /** @internal */\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n }\n\n private internalFormatTooltip = (value: number, step = 1) => {\n if (Number.isInteger(step))\n return value.toFixed(0);\n\n const stepString = step.toString();\n const decimalIndex = stepString.indexOf(\".\");\n const numDecimals = step.toString().length - (decimalIndex + 1);\n return value.toFixed(numDecimals);\n };\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue = 0;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n initialValue = record.value.value as number;\n }\n\n let size: number | undefined;\n let min = 0;\n let max = 100;\n let step: number | undefined;\n let showTooltip: boolean | undefined;\n let tooltipBelow: boolean | undefined;\n let formatTooltip: ((value: number) => string) | undefined;\n let tickLabels: string[] | undefined;\n let minLabel: React.ReactNode | undefined;\n let maxLabel: React.ReactNode | undefined;\n let trackDisplayMode: \"auto\" | \"none\" | \"odd-segments\" | \"even-segments\" | undefined;\n let thumbMode: \"allow-crossing\" | \"inhibit-crossing\" | undefined;\n\n const isDisabled = record ? record.isDisabled : undefined;\n\n if (record && record.property && record.property.editor && record.property.editor.params) {\n const sliderParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.Slider) as SliderEditorParams;\n // istanbul ignore else\n if (sliderParams) {\n min = sliderParams.minimum;\n max = sliderParams.maximum;\n size = sliderParams.size;\n step = sliderParams.step;\n thumbMode = 1 === sliderParams.mode ? \"allow-crossing\" : \"inhibit-crossing\";\n trackDisplayMode = !sliderParams.reversed ? \"auto\" : \"odd-segments\";\n showTooltip = sliderParams.showTooltip;\n tooltipBelow = sliderParams.tooltipBelow;\n formatTooltip = sliderParams.formatTooltip;\n\n minLabel = !sliderParams.showMinMax ? \"\" : sliderParams.minIconSpec ? <Icon iconSpec={sliderParams.minIconSpec} /> : undefined;\n maxLabel = !sliderParams.showMinMax ? \"\" : sliderParams.maxIconSpec ? <Icon iconSpec={sliderParams.maxIconSpec} /> : undefined;\n\n if (sliderParams.showTicks) {\n const count = sliderParams.getTickCount ? sliderParams.getTickCount() : 0;\n if (count) {\n tickLabels = [];\n const increment = (max - min) / count;\n for (let i = 0; i <= count; i++) {\n const value = (i * increment) + min;\n if (sliderParams.showTickLabels) {\n const label = sliderParams.formatTick ? sliderParams.formatTick(value) : this.internalFormatTooltip(value, step);\n tickLabels.push(label);\n } else {\n tickLabels.push(\"\");\n }\n }\n } else if (sliderParams.getTickValues) {\n tickLabels = sliderParams.getTickValues().map((val: number) => sliderParams.formatTick ? sliderParams.formatTick(val) : this.internalFormatTooltip(val, step));\n }\n }\n }\n }\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({\n value: initialValue, isDisabled,\n size,\n min, max, step, trackDisplayMode,\n showTooltip, tooltipBelow, formatTooltip,\n minLabel,\n maxLabel,\n tickLabels,\n thumbMode,\n });\n }\n\n private _handleEnter = async (): Promise<void> => {\n this._enterKey = true;\n await this._handleCommit();\n };\n\n private _handleClose = async (): Promise<void> => {\n if (this._enterKey) {\n this._enterKey = false;\n } else {\n // istanbul ignore else\n if (this.props.onCancel)\n this.props.onCancel();\n }\n };\n\n private _handleOk = async (_event: React.MouseEvent): Promise<void> => {\n await this._handleCommit();\n };\n\n private _handleCancel = (_event: React.MouseEvent): void => {\n // istanbul ignore else\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n };\n\n private _handleCommit = async (): Promise<void> => {\n // istanbul ignore else\n if (this.props.propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n // istanbul ignore else\n if (propertyValue !== undefined) {\n this.props.onCommit({ propertyRecord: this.props.propertyRecord, newValue: propertyValue });\n }\n }\n };\n\n private tooltipProps = (_index: number, val: number) => {\n const content = this.state.formatTooltip ? this.state.formatTooltip(val) : this.internalFormatTooltip(val, this.state.step);\n return { placement: this.state.tooltipBelow ? \"bottom\" : \"top\", content, visible: this.state.showTooltip } as Partial<Omit<TooltipProps, \"children\">>;\n };\n\n /** @internal */\n public override render(): React.ReactNode {\n const className = classnames(\"components-cell-editor\", \"components-slider-editor\", this.props.className);\n const minSize = this.state.size ? this.state.size : 100;\n const style: React.CSSProperties = {\n ...this.props.style,\n minWidth: `${minSize}px`,\n };\n\n const popupContent = (\n <Slider\n className=\"components-slider-editor-slider\"\n style={style}\n values={[this.state.value]}\n min={this.state.min}\n max={this.state.max}\n step={this.state.step}\n thumbMode={this.state.thumbMode}\n trackDisplayMode={this.state.trackDisplayMode}\n disabled={this.state.isDisabled}\n minLabel={this.state.minLabel}\n maxLabel={this.state.maxLabel}\n tooltipProps={this.tooltipProps}\n tickLabels={this.state.tickLabels}\n onChange={this._handleChange}\n />\n );\n\n return (\n <div className={className} ref={this._divElement}>\n <PopupButton label={this.state.value} onClose={this._handleClose} onEnter={this._handleEnter}\n setFocus={this.props.setFocus} focusTarget=\".core-slider-handle\">\n <PopupContent>\n {popupContent}\n <PopupOkCancelButtons onOk={this._handleOk} onCancel={this._handleCancel} />\n </PopupContent>\n </PopupButton>\n </div>\n );\n }\n}\n\n/** Slider Property Editor registered for the \"number\" type name and \"slider\" editor name.\n * It uses the [[SliderEditor]] React component.\n * @public\n */\nexport class SliderPropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <SliderEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(StandardTypeNames.Number, SliderPropertyEditor, StandardEditorNames.Slider);\nPropertyEditorManager.registerEditor(StandardTypeNames.Int, SliderPropertyEditor, StandardEditorNames.Slider);\nPropertyEditorManager.registerEditor(StandardTypeNames.Float, SliderPropertyEditor, StandardEditorNames.Slider);\nPropertyEditorManager.registerEditor(StandardTypeNames.Double, SliderPropertyEditor, StandardEditorNames.Slider);\n"]}
1
+ {"version":3,"file":"SliderEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/SliderEditor.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 PropertyEditors\r\n */\r\n\r\nimport \"./SliderEditor.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n PropertyEditorParams, PropertyEditorParamTypes, PropertyValue, PropertyValueFormat, SliderEditorParams, StandardEditorNames, StandardTypeNames,\r\n} from \"@itwin/appui-abstract\";\r\nimport { Icon } from \"@itwin/core-react\";\r\nimport { Slider, TooltipProps } from \"@itwin/itwinui-react\";\r\nimport { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\r\nimport { PropertyEditorBase, PropertyEditorManager } from \"./PropertyEditorManager\";\r\nimport { PopupButton, PopupContent, PopupOkCancelButtons } from \"./PopupButton\";\r\n\r\n/** @internal */\r\ninterface SliderEditorState {\r\n value: number;\r\n isDisabled?: boolean;\r\n min: number;\r\n max: number;\r\n size?: number;\r\n step?: number;\r\n showTooltip?: boolean;\r\n tooltipBelow?: boolean;\r\n formatTooltip?: (value: number) => string;\r\n thumbMode?: \"allow-crossing\" | \"inhibit-crossing\";\r\n trackDisplayMode?: \"auto\" | \"none\" | \"odd-segments\" | \"even-segments\";\r\n minLabel?: React.ReactNode;\r\n maxLabel?: React.ReactNode;\r\n tickLabels?: React.ReactNode;\r\n}\r\n\r\n/** SliderEditor React component that is a property editor with numeric input & up/down buttons\r\n * @public\r\n */\r\nexport class SliderEditor extends React.PureComponent<PropertyEditorProps, SliderEditorState> implements TypeEditor {\r\n private _isMounted = false;\r\n private _enterKey = false;\r\n private _divElement = React.createRef<HTMLDivElement>();\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<SliderEditorState> = {\r\n value: 0,\r\n min: 0,\r\n max: 100,\r\n };\r\n\r\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\r\n const record = this.props.propertyRecord;\r\n let propertyValue: PropertyValue | undefined;\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n propertyValue = {\r\n valueFormat: PropertyValueFormat.Primitive,\r\n value: this.state.value,\r\n displayValue: \"\",\r\n };\r\n }\r\n\r\n return propertyValue;\r\n }\r\n\r\n public get htmlElement(): HTMLElement | null {\r\n return this._divElement.current;\r\n }\r\n\r\n public get hasFocus(): boolean {\r\n let containsFocus = false;\r\n // istanbul ignore else\r\n if (this._divElement.current)\r\n containsFocus = this._divElement.current.contains(document.activeElement);\r\n return containsFocus;\r\n }\r\n\r\n private _handleChange = (values: readonly number[]): void => {\r\n const newValue = values[0];\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n value: newValue,\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\r\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n }\r\n\r\n private internalFormatTooltip = (value: number, step = 1) => {\r\n if (Number.isInteger(step))\r\n return value.toFixed(0);\r\n\r\n const stepString = step.toString();\r\n const decimalIndex = stepString.indexOf(\".\");\r\n const numDecimals = step.toString().length - (decimalIndex + 1);\r\n return value.toFixed(numDecimals);\r\n };\r\n\r\n private async setStateFromProps() {\r\n const record = this.props.propertyRecord;\r\n let initialValue = 0;\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n initialValue = record.value.value as number;\r\n }\r\n\r\n let size: number | undefined;\r\n let min = 0;\r\n let max = 100;\r\n let step: number | undefined;\r\n let showTooltip: boolean | undefined;\r\n let tooltipBelow: boolean | undefined;\r\n let formatTooltip: ((value: number) => string) | undefined;\r\n let tickLabels: string[] | undefined;\r\n let minLabel: React.ReactNode | undefined;\r\n let maxLabel: React.ReactNode | undefined;\r\n let trackDisplayMode: \"auto\" | \"none\" | \"odd-segments\" | \"even-segments\" | undefined;\r\n let thumbMode: \"allow-crossing\" | \"inhibit-crossing\" | undefined;\r\n\r\n const isDisabled = record ? record.isDisabled : undefined;\r\n\r\n if (record && record.property && record.property.editor && record.property.editor.params) {\r\n const sliderParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.Slider) as SliderEditorParams;\r\n // istanbul ignore else\r\n if (sliderParams) {\r\n min = sliderParams.minimum;\r\n max = sliderParams.maximum;\r\n size = sliderParams.size;\r\n step = sliderParams.step;\r\n thumbMode = 1 === sliderParams.mode ? \"allow-crossing\" : \"inhibit-crossing\";\r\n trackDisplayMode = !sliderParams.reversed ? \"auto\" : \"odd-segments\";\r\n showTooltip = sliderParams.showTooltip;\r\n tooltipBelow = sliderParams.tooltipBelow;\r\n formatTooltip = sliderParams.formatTooltip;\r\n\r\n minLabel = !sliderParams.showMinMax ? \"\" : sliderParams.minIconSpec ? <Icon iconSpec={sliderParams.minIconSpec} /> : undefined;\r\n maxLabel = !sliderParams.showMinMax ? \"\" : sliderParams.maxIconSpec ? <Icon iconSpec={sliderParams.maxIconSpec} /> : undefined;\r\n\r\n if (sliderParams.showTicks) {\r\n const count = sliderParams.getTickCount ? sliderParams.getTickCount() : 0;\r\n if (count) {\r\n tickLabels = [];\r\n const increment = (max - min) / count;\r\n for (let i = 0; i <= count; i++) {\r\n const value = (i * increment) + min;\r\n if (sliderParams.showTickLabels) {\r\n const label = sliderParams.formatTick ? sliderParams.formatTick(value) : this.internalFormatTooltip(value, step);\r\n tickLabels.push(label);\r\n } else {\r\n tickLabels.push(\"\");\r\n }\r\n }\r\n } else if (sliderParams.getTickValues) {\r\n tickLabels = sliderParams.getTickValues().map((val: number) => sliderParams.formatTick ? sliderParams.formatTick(val) : this.internalFormatTooltip(val, step));\r\n }\r\n }\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n value: initialValue, isDisabled,\r\n size,\r\n min, max, step, trackDisplayMode,\r\n showTooltip, tooltipBelow, formatTooltip,\r\n minLabel,\r\n maxLabel,\r\n tickLabels,\r\n thumbMode,\r\n });\r\n }\r\n\r\n private _handleEnter = async (): Promise<void> => {\r\n this._enterKey = true;\r\n await this._handleCommit();\r\n };\r\n\r\n private _handleClose = async (): Promise<void> => {\r\n if (this._enterKey) {\r\n this._enterKey = false;\r\n } else {\r\n // istanbul ignore else\r\n if (this.props.onCancel)\r\n this.props.onCancel();\r\n }\r\n };\r\n\r\n private _handleOk = async (_event: React.MouseEvent): Promise<void> => {\r\n await this._handleCommit();\r\n };\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n };\r\n\r\n private _handleCommit = async (): Promise<void> => {\r\n // istanbul ignore else\r\n if (this.props.propertyRecord && this.props.onCommit) {\r\n const propertyValue = await this.getPropertyValue();\r\n // istanbul ignore else\r\n if (propertyValue !== undefined) {\r\n this.props.onCommit({ propertyRecord: this.props.propertyRecord, newValue: propertyValue });\r\n }\r\n }\r\n };\r\n\r\n private tooltipProps = (_index: number, val: number) => {\r\n const content = this.state.formatTooltip ? this.state.formatTooltip(val) : this.internalFormatTooltip(val, this.state.step);\r\n return { placement: this.state.tooltipBelow ? \"bottom\" : \"top\", content, visible: this.state.showTooltip } as Partial<Omit<TooltipProps, \"children\">>;\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const className = classnames(\"components-cell-editor\", \"components-slider-editor\", this.props.className);\r\n const minSize = this.state.size ? this.state.size : 100;\r\n const style: React.CSSProperties = {\r\n ...this.props.style,\r\n minWidth: `${minSize}px`,\r\n };\r\n\r\n const popupContent = (\r\n <Slider\r\n className=\"components-slider-editor-slider\"\r\n style={style}\r\n values={[this.state.value]}\r\n min={this.state.min}\r\n max={this.state.max}\r\n step={this.state.step}\r\n thumbMode={this.state.thumbMode}\r\n trackDisplayMode={this.state.trackDisplayMode}\r\n disabled={this.state.isDisabled}\r\n minLabel={this.state.minLabel}\r\n maxLabel={this.state.maxLabel}\r\n tooltipProps={this.tooltipProps}\r\n tickLabels={this.state.tickLabels}\r\n onChange={this._handleChange}\r\n />\r\n );\r\n\r\n return (\r\n <div className={className} ref={this._divElement}>\r\n <PopupButton label={this.state.value} onClose={this._handleClose} onEnter={this._handleEnter}\r\n setFocus={this.props.setFocus} focusTarget=\".core-slider-handle\">\r\n <PopupContent>\r\n {popupContent}\r\n <PopupOkCancelButtons onOk={this._handleOk} onCancel={this._handleCancel} />\r\n </PopupContent>\r\n </PopupButton>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** Slider Property Editor registered for the \"number\" type name and \"slider\" editor name.\r\n * It uses the [[SliderEditor]] React component.\r\n * @public\r\n */\r\nexport class SliderPropertyEditor extends PropertyEditorBase {\r\n public get reactNode(): React.ReactNode {\r\n return <SliderEditor />;\r\n }\r\n}\r\n\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Number, SliderPropertyEditor, StandardEditorNames.Slider);\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Int, SliderPropertyEditor, StandardEditorNames.Slider);\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Float, SliderPropertyEditor, StandardEditorNames.Slider);\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Double, SliderPropertyEditor, StandardEditorNames.Slider);\r\n"]}
@@ -1,14 +1,14 @@
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/variables";
6
-
7
- .components-slider-editor {
8
- min-width: 100%;
9
- }
10
-
11
- .components-slider-editor-slider {
12
- min-width: 100px;
13
- min-height: $uicore-component-height-small;
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/variables";
6
+
7
+ .components-slider-editor {
8
+ min-width: 100%;
9
+ }
10
+
11
+ .components-slider-editor-slider {
12
+ min-width: 100px;
13
+ min-height: $uicore-component-height-small;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/TextEditor.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 PropertyEditors\n */\n\nimport \"./TextEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport {\n IconEditorParams, InputEditorSizeParams, PrimitiveValue, PropertyEditorParams, PropertyEditorParamTypes, PropertyValue, PropertyValueFormat,\n} from \"@itwin/appui-abstract\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Input, InputProps } from \"@itwin/itwinui-react\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport { UiComponents } from \"../UiComponents\";\n\n/** @internal */\ninterface TextEditorState {\n inputValue: string;\n readonly: boolean;\n isDisabled?: boolean;\n size?: number;\n maxLength?: number;\n iconSpec?: string;\n}\n\n/** TextEditor React component that is a property editor with text input\n * @public\n */\nexport class TextEditor extends React.PureComponent<PropertyEditorProps, TextEditorState> implements TypeEditor {\n private _isMounted = false;\n private _ariaLabel = UiComponents.translate(\"editor.text\");\n private _inputElement = React.createRef<HTMLInputElement>();\n\n /** @internal */\n public override readonly state: Readonly<TextEditorState> = {\n inputValue: \"\",\n readonly: false,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = await TypeConverterManager.getConverter(record.property.typename, record.property.converter?.name).convertFromStringToPropertyValue(this.state.inputValue, record);\n (propertyValue as PrimitiveValue).displayValue = this.state.inputValue;\n }\n\n return propertyValue;\n }\n\n public get htmlElement(): HTMLElement | null {\n return this._inputElement.current;\n }\n\n public get hasFocus(): boolean {\n return document.activeElement === this._inputElement.current;\n }\n\n private _updateInputValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n // istanbul ignore else\n if (this._isMounted)\n this.setState({\n inputValue: e.target.value,\n });\n };\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n /** @internal */\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n }\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue = \"\";\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n const value = record.value.value;\n initialValue = await TypeConverterManager.getConverter(record.property.typename, record.property.converter?.name).convertPropertyToString(record.property, value);\n }\n\n const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;\n let size: number | undefined;\n let maxLength: number | undefined;\n let iconSpec: string | undefined;\n\n const isDisabled = record ? record.isDisabled : undefined;\n\n if (record && record.property && record.property.editor && record.property.editor.params) {\n const editorSizeParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.InputEditorSize) as InputEditorSizeParams;\n if (editorSizeParams) {\n // istanbul ignore else\n if (editorSizeParams.size)\n size = editorSizeParams.size;\n // istanbul ignore else\n if (editorSizeParams.maxLength)\n maxLength = editorSizeParams.maxLength;\n }\n\n const iconParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.Icon) as IconEditorParams;\n if (iconParams) {\n iconSpec = iconParams.definition.iconSpec;\n }\n }\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({ inputValue: initialValue, readonly, size, maxLength, isDisabled, iconSpec });\n }\n\n /** @internal */\n public override render(): React.ReactNode {\n const className = classnames(\"components-cell-editor\", \"components-text-editor\", this.props.className);\n const minSize = this.state.size ? this.state.size : 8;\n const minWidthStyle: React.CSSProperties = {\n minWidth: `${minSize * 0.75}em`,\n };\n const inputProps: InputProps = {\n type: \"text\",\n className,\n style: this.props.style ? this.props.style : minWidthStyle,\n readOnly: this.state.readonly,\n disabled: this.state.isDisabled,\n maxLength: this.state.maxLength,\n value: this.state.inputValue,\n onBlur: this.props.onBlur,\n onChange: this._updateInputValue,\n setFocus: this.props.setFocus && !this.state.isDisabled,\n };\n\n inputProps[\"aria-label\"] = this._ariaLabel;\n\n let reactNode: React.ReactNode;\n if (this.state.iconSpec) {\n const icon = <Icon iconSpec={this.state.iconSpec} />;\n reactNode = (\n <IconInput\n {...inputProps}\n ref={this._inputElement}\n icon={icon}\n data-testid=\"components-text-editor\"\n />\n );\n } else {\n reactNode = (\n <Input\n {...inputProps}\n ref={this._inputElement}\n data-testid=\"components-text-editor\"\n />\n );\n }\n\n return reactNode;\n }\n}\n"]}
1
+ {"version":3,"file":"TextEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/TextEditor.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 PropertyEditors\r\n */\r\n\r\nimport \"./TextEditor.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n IconEditorParams, InputEditorSizeParams, PrimitiveValue, PropertyEditorParams, PropertyEditorParamTypes, PropertyValue, PropertyValueFormat,\r\n} from \"@itwin/appui-abstract\";\r\nimport { Icon, IconInput } from \"@itwin/core-react\";\r\nimport { Input, InputProps } from \"@itwin/itwinui-react\";\r\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\r\nimport { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/** @internal */\r\ninterface TextEditorState {\r\n inputValue: string;\r\n readonly: boolean;\r\n isDisabled?: boolean;\r\n size?: number;\r\n maxLength?: number;\r\n iconSpec?: string;\r\n}\r\n\r\n/** TextEditor React component that is a property editor with text input\r\n * @public\r\n */\r\nexport class TextEditor extends React.PureComponent<PropertyEditorProps, TextEditorState> implements TypeEditor {\r\n private _isMounted = false;\r\n private _ariaLabel = UiComponents.translate(\"editor.text\");\r\n private _inputElement = React.createRef<HTMLInputElement>();\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<TextEditorState> = {\r\n inputValue: \"\",\r\n readonly: false,\r\n };\r\n\r\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\r\n const record = this.props.propertyRecord;\r\n let propertyValue: PropertyValue | undefined;\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n propertyValue = await TypeConverterManager.getConverter(record.property.typename, record.property.converter?.name).convertFromStringToPropertyValue(this.state.inputValue, record);\r\n (propertyValue as PrimitiveValue).displayValue = this.state.inputValue;\r\n }\r\n\r\n return propertyValue;\r\n }\r\n\r\n public get htmlElement(): HTMLElement | null {\r\n return this._inputElement.current;\r\n }\r\n\r\n public get hasFocus(): boolean {\r\n return document.activeElement === this._inputElement.current;\r\n }\r\n\r\n private _updateInputValue = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n inputValue: e.target.value,\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\r\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n }\r\n\r\n private async setStateFromProps() {\r\n const record = this.props.propertyRecord;\r\n let initialValue = \"\";\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n const value = record.value.value;\r\n initialValue = await TypeConverterManager.getConverter(record.property.typename, record.property.converter?.name).convertPropertyToString(record.property, value);\r\n }\r\n\r\n const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;\r\n let size: number | undefined;\r\n let maxLength: number | undefined;\r\n let iconSpec: string | undefined;\r\n\r\n const isDisabled = record ? record.isDisabled : undefined;\r\n\r\n if (record && record.property && record.property.editor && record.property.editor.params) {\r\n const editorSizeParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.InputEditorSize) as InputEditorSizeParams;\r\n if (editorSizeParams) {\r\n // istanbul ignore else\r\n if (editorSizeParams.size)\r\n size = editorSizeParams.size;\r\n // istanbul ignore else\r\n if (editorSizeParams.maxLength)\r\n maxLength = editorSizeParams.maxLength;\r\n }\r\n\r\n const iconParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.Icon) as IconEditorParams;\r\n if (iconParams) {\r\n iconSpec = iconParams.definition.iconSpec;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ inputValue: initialValue, readonly, size, maxLength, isDisabled, iconSpec });\r\n }\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const className = classnames(\"components-cell-editor\", \"components-text-editor\", this.props.className);\r\n const minSize = this.state.size ? this.state.size : 8;\r\n const minWidthStyle: React.CSSProperties = {\r\n minWidth: `${minSize * 0.75}em`,\r\n };\r\n const inputProps: InputProps = {\r\n type: \"text\",\r\n className,\r\n style: this.props.style ? this.props.style : minWidthStyle,\r\n readOnly: this.state.readonly,\r\n disabled: this.state.isDisabled,\r\n maxLength: this.state.maxLength,\r\n value: this.state.inputValue,\r\n onBlur: this.props.onBlur,\r\n onChange: this._updateInputValue,\r\n setFocus: this.props.setFocus && !this.state.isDisabled,\r\n };\r\n\r\n inputProps[\"aria-label\"] = this._ariaLabel;\r\n\r\n let reactNode: React.ReactNode;\r\n if (this.state.iconSpec) {\r\n const icon = <Icon iconSpec={this.state.iconSpec} />;\r\n reactNode = (\r\n <IconInput\r\n {...inputProps}\r\n ref={this._inputElement}\r\n icon={icon}\r\n data-testid=\"components-text-editor\"\r\n />\r\n );\r\n } else {\r\n reactNode = (\r\n <Input\r\n {...inputProps}\r\n ref={this._inputElement}\r\n data-testid=\"components-text-editor\"\r\n />\r\n );\r\n }\r\n\r\n return reactNode;\r\n }\r\n}\r\n"]}
@@ -1,22 +1,22 @@
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/variables";
6
- @import "./variables";
7
-
8
- .components-text-editor {
9
- min-width: 100%;
10
- height: 100%;
11
- margin: 0;
12
- }
13
-
14
- .components-smallEditor-host {
15
- .components-text-editor {
16
- &.iui-input {
17
- min-height: $uicore-component-height-small !important;
18
- padding-top: 1px !important;
19
- padding-bottom: 1px !important;
20
- }
21
- }
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/variables";
6
+ @import "./variables";
7
+
8
+ .components-text-editor {
9
+ min-width: 100%;
10
+ height: 100%;
11
+ margin: 0;
12
+ }
13
+
14
+ .components-smallEditor-host {
15
+ .components-text-editor {
16
+ &.iui-input {
17
+ min-height: $uicore-component-height-small !important;
18
+ padding-top: 1px !important;
19
+ padding-bottom: 1px !important;
20
+ }
21
+ }
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextareaEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/TextareaEditor.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 PropertyEditors\n */\n\nimport \"./TextareaEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport {\n InputEditorSizeParams, MultilineTextEditorParams, PrimitiveValue, PropertyEditorParams,\n PropertyEditorParamTypes, PropertyValue, PropertyValueFormat,\n StandardEditorNames, StandardTypeNames,\n} from \"@itwin/appui-abstract\";\nimport { Textarea, TextareaProps } from \"@itwin/itwinui-react\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport { PropertyEditorBase, PropertyEditorManager } from \"./PropertyEditorManager\";\nimport { PopupButton, PopupContent, PopupOkCancelButtons } from \"./PopupButton\";\nimport { UiComponents } from \"../UiComponents\";\n\n/** @internal */\ninterface TextareaEditorState {\n inputValue: string;\n readonly: boolean;\n isDisabled?: boolean;\n size?: number;\n maxLength?: number;\n rows: number;\n}\n\nconst DEFAULT_ROWS = 3;\n\n/** TextareaEditor React component that is a property editor with text input\n * @public\n */\nexport class TextareaEditor extends React.PureComponent<PropertyEditorProps, TextareaEditorState> implements TypeEditor {\n private _isMounted = false;\n private _ariaLabel = UiComponents.translate(\"editor.textarea\");\n private _divElement = React.createRef<HTMLDivElement>();\n\n /** @internal */\n public override readonly state: Readonly<TextareaEditorState> = {\n inputValue: \"\",\n readonly: false,\n rows: DEFAULT_ROWS,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = await TypeConverterManager.getConverter(record.property.typename).convertFromStringToPropertyValue(this.state.inputValue, record);\n (propertyValue as PrimitiveValue).displayValue = this.state.inputValue;\n }\n\n return propertyValue;\n }\n\n // istanbul ignore next\n public get htmlElement(): HTMLElement | null {\n return this._divElement.current;\n }\n\n // istanbul ignore next\n public get hasFocus(): boolean {\n let containsFocus = false;\n // istanbul ignore else\n if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n private _updateTextareaValue = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n // istanbul ignore else\n if (this._isMounted)\n this.setState({\n inputValue: e.target.value,\n });\n };\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n /** @internal */\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n }\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue = \"\";\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n const value = record.value.value;\n initialValue = await TypeConverterManager.getConverter(record.property.typename).convertPropertyToString(record.property, value);\n }\n\n const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;\n let size: number | undefined;\n let maxLength: number | undefined;\n let rows: number = DEFAULT_ROWS;\n\n const isDisabled = record ? record.isDisabled : undefined;\n\n if (record && record.property && record.property.editor && record.property.editor.params) {\n const editorSizeParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.InputEditorSize) as InputEditorSizeParams;\n if (editorSizeParams) {\n // istanbul ignore else\n if (editorSizeParams.size)\n size = editorSizeParams.size;\n // istanbul ignore else\n if (editorSizeParams.maxLength)\n maxLength = editorSizeParams.maxLength;\n }\n\n const multilineParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.MultilineText) as MultilineTextEditorParams;\n if (multilineParams) {\n rows = multilineParams.rows;\n }\n }\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({ inputValue: initialValue, readonly, size, maxLength, isDisabled, rows });\n }\n\n private _handleOk = async (_event: React.MouseEvent): Promise<void> => {\n // istanbul ignore else\n if (this.props.propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n // istanbul ignore else\n if (propertyValue !== undefined) {\n this.props.onCommit({ propertyRecord: this.props.propertyRecord, newValue: propertyValue });\n }\n }\n };\n\n private _handleCancel = (_event: React.MouseEvent): void => {\n // istanbul ignore else\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n };\n\n /** @internal */\n public override render(): React.ReactNode {\n const className = classnames(\"components-cell-editor\", \"components-textarea-editor\", this.props.className);\n const minSize = this.state.size ? this.state.size : 8;\n const style: React.CSSProperties = {\n ...this.props.style,\n minWidth: `${minSize * 0.75}em`,\n };\n const textareaProps: TextareaProps = {\n className: \"components-textarea-editor-textarea\",\n style,\n rows: this.state.rows,\n readOnly: this.state.readonly,\n disabled: this.state.isDisabled,\n maxLength: this.state.maxLength,\n value: this.state.inputValue,\n onChange: this._updateTextareaValue,\n setFocus: this.props.setFocus && !this.state.isDisabled,\n };\n\n textareaProps[\"aria-label\"] = this._ariaLabel;\n\n return (\n <div className={className} ref={this._divElement}>\n <PopupButton label={this.state.inputValue}\n closeOnEnter={false}\n setFocus={this.props.setFocus} focusTarget=\".uicore-inputs-textarea\">\n <PopupContent>\n <Textarea\n {...textareaProps}\n data-testid=\"components-textarea-editor\"\n />\n <PopupOkCancelButtons onOk={this._handleOk} onCancel={this._handleCancel} />\n </PopupContent>\n </PopupButton>\n </div>\n );\n }\n}\n\n/** Textarea Property Editor registered for the \"text\" and \"string\" type names and \"multi-line\" editor name.\n * It uses the [[Textarea]] React component.\n * @public\n */\nexport class TextareaPropertyEditor extends PropertyEditorBase {\n // istanbul ignore next\n public override get containerHandlesBlur(): boolean {\n return false;\n }\n // istanbul ignore next\n public override get containerHandlesEnter(): boolean {\n return false;\n }\n // istanbul ignore next\n public override get containerHandlesTab(): boolean {\n return false;\n }\n\n public get reactNode(): React.ReactNode {\n return <TextareaEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(StandardTypeNames.Text, TextareaPropertyEditor, StandardEditorNames.MultiLine);\nPropertyEditorManager.registerEditor(StandardTypeNames.String, TextareaPropertyEditor, StandardEditorNames.MultiLine);\n"]}
1
+ {"version":3,"file":"TextareaEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/TextareaEditor.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 PropertyEditors\r\n */\r\n\r\nimport \"./TextareaEditor.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport {\r\n InputEditorSizeParams, MultilineTextEditorParams, PrimitiveValue, PropertyEditorParams,\r\n PropertyEditorParamTypes, PropertyValue, PropertyValueFormat,\r\n StandardEditorNames, StandardTypeNames,\r\n} from \"@itwin/appui-abstract\";\r\nimport { Textarea, TextareaProps } from \"@itwin/itwinui-react\";\r\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\r\nimport { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\r\nimport { PropertyEditorBase, PropertyEditorManager } from \"./PropertyEditorManager\";\r\nimport { PopupButton, PopupContent, PopupOkCancelButtons } from \"./PopupButton\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/** @internal */\r\ninterface TextareaEditorState {\r\n inputValue: string;\r\n readonly: boolean;\r\n isDisabled?: boolean;\r\n size?: number;\r\n maxLength?: number;\r\n rows: number;\r\n}\r\n\r\nconst DEFAULT_ROWS = 3;\r\n\r\n/** TextareaEditor React component that is a property editor with text input\r\n * @public\r\n */\r\nexport class TextareaEditor extends React.PureComponent<PropertyEditorProps, TextareaEditorState> implements TypeEditor {\r\n private _isMounted = false;\r\n private _ariaLabel = UiComponents.translate(\"editor.textarea\");\r\n private _divElement = React.createRef<HTMLDivElement>();\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<TextareaEditorState> = {\r\n inputValue: \"\",\r\n readonly: false,\r\n rows: DEFAULT_ROWS,\r\n };\r\n\r\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\r\n const record = this.props.propertyRecord;\r\n let propertyValue: PropertyValue | undefined;\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n propertyValue = await TypeConverterManager.getConverter(record.property.typename).convertFromStringToPropertyValue(this.state.inputValue, record);\r\n (propertyValue as PrimitiveValue).displayValue = this.state.inputValue;\r\n }\r\n\r\n return propertyValue;\r\n }\r\n\r\n // istanbul ignore next\r\n public get htmlElement(): HTMLElement | null {\r\n return this._divElement.current;\r\n }\r\n\r\n // istanbul ignore next\r\n public get hasFocus(): boolean {\r\n let containsFocus = false;\r\n // istanbul ignore else\r\n if (this._divElement.current)\r\n containsFocus = this._divElement.current.contains(document.activeElement);\r\n return containsFocus;\r\n }\r\n\r\n private _updateTextareaValue = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n inputValue: e.target.value,\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\r\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n }\r\n\r\n private async setStateFromProps() {\r\n const record = this.props.propertyRecord;\r\n let initialValue = \"\";\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n const value = record.value.value;\r\n initialValue = await TypeConverterManager.getConverter(record.property.typename).convertPropertyToString(record.property, value);\r\n }\r\n\r\n const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;\r\n let size: number | undefined;\r\n let maxLength: number | undefined;\r\n let rows: number = DEFAULT_ROWS;\r\n\r\n const isDisabled = record ? record.isDisabled : undefined;\r\n\r\n if (record && record.property && record.property.editor && record.property.editor.params) {\r\n const editorSizeParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.InputEditorSize) as InputEditorSizeParams;\r\n if (editorSizeParams) {\r\n // istanbul ignore else\r\n if (editorSizeParams.size)\r\n size = editorSizeParams.size;\r\n // istanbul ignore else\r\n if (editorSizeParams.maxLength)\r\n maxLength = editorSizeParams.maxLength;\r\n }\r\n\r\n const multilineParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.MultilineText) as MultilineTextEditorParams;\r\n if (multilineParams) {\r\n rows = multilineParams.rows;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ inputValue: initialValue, readonly, size, maxLength, isDisabled, rows });\r\n }\r\n\r\n private _handleOk = async (_event: React.MouseEvent): Promise<void> => {\r\n // istanbul ignore else\r\n if (this.props.propertyRecord && this.props.onCommit) {\r\n const propertyValue = await this.getPropertyValue();\r\n // istanbul ignore else\r\n if (propertyValue !== undefined) {\r\n this.props.onCommit({ propertyRecord: this.props.propertyRecord, newValue: propertyValue });\r\n }\r\n }\r\n };\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const className = classnames(\"components-cell-editor\", \"components-textarea-editor\", this.props.className);\r\n const minSize = this.state.size ? this.state.size : 8;\r\n const style: React.CSSProperties = {\r\n ...this.props.style,\r\n minWidth: `${minSize * 0.75}em`,\r\n };\r\n const textareaProps: TextareaProps = {\r\n className: \"components-textarea-editor-textarea\",\r\n style,\r\n rows: this.state.rows,\r\n readOnly: this.state.readonly,\r\n disabled: this.state.isDisabled,\r\n maxLength: this.state.maxLength,\r\n value: this.state.inputValue,\r\n onChange: this._updateTextareaValue,\r\n setFocus: this.props.setFocus && !this.state.isDisabled,\r\n };\r\n\r\n textareaProps[\"aria-label\"] = this._ariaLabel;\r\n\r\n return (\r\n <div className={className} ref={this._divElement}>\r\n <PopupButton label={this.state.inputValue}\r\n closeOnEnter={false}\r\n setFocus={this.props.setFocus} focusTarget=\".uicore-inputs-textarea\">\r\n <PopupContent>\r\n <Textarea\r\n {...textareaProps}\r\n data-testid=\"components-textarea-editor\"\r\n />\r\n <PopupOkCancelButtons onOk={this._handleOk} onCancel={this._handleCancel} />\r\n </PopupContent>\r\n </PopupButton>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** Textarea Property Editor registered for the \"text\" and \"string\" type names and \"multi-line\" editor name.\r\n * It uses the [[Textarea]] React component.\r\n * @public\r\n */\r\nexport class TextareaPropertyEditor extends PropertyEditorBase {\r\n // istanbul ignore next\r\n public override get containerHandlesBlur(): boolean {\r\n return false;\r\n }\r\n // istanbul ignore next\r\n public override get containerHandlesEnter(): boolean {\r\n return false;\r\n }\r\n // istanbul ignore next\r\n public override get containerHandlesTab(): boolean {\r\n return false;\r\n }\r\n\r\n public get reactNode(): React.ReactNode {\r\n return <TextareaEditor />;\r\n }\r\n}\r\n\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Text, TextareaPropertyEditor, StandardEditorNames.MultiLine);\r\nPropertyEditorManager.registerEditor(StandardTypeNames.String, TextareaPropertyEditor, StandardEditorNames.MultiLine);\r\n"]}
@@ -1,15 +1,15 @@
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/colors";
6
-
7
- .components-textarea-editor {
8
- min-width: 100%;
9
- margin: 0;
10
- }
11
-
12
- .components-textarea-editor-textarea {
13
- min-width: 150px;
14
- margin: 0;
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/colors";
6
+
7
+ .components-textarea-editor {
8
+ min-width: 100%;
9
+ margin: 0;
10
+ }
11
+
12
+ .components-textarea-editor-textarea {
13
+ min-width: 150px;
14
+ margin: 0;
15
15
  }