@itwin/components-react 4.15.5 → 4.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/lib/cjs/components-react/UiComponents.d.ts.map +1 -1
  3. package/lib/cjs/components-react/UiComponents.js +2 -0
  4. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  5. package/lib/cjs/components-react/common/CheckBoxState.d.ts +13 -0
  6. package/lib/cjs/components-react/common/CheckBoxState.d.ts.map +1 -0
  7. package/lib/cjs/components-react/common/CheckBoxState.js +17 -0
  8. package/lib/cjs/components-react/common/CheckBoxState.js.map +1 -0
  9. package/lib/cjs/components-react/common/HighlightedText.d.ts.map +1 -1
  10. package/lib/cjs/components-react/common/HighlightedText.js +78 -16
  11. package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
  12. package/lib/cjs/components-react/common/ImageRenderer.d.ts.map +1 -1
  13. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  14. package/lib/cjs/components-react/common/Orientation.d.ts +13 -0
  15. package/lib/cjs/components-react/common/Orientation.d.ts.map +1 -0
  16. package/lib/cjs/components-react/common/Orientation.js +17 -0
  17. package/lib/cjs/components-react/common/Orientation.js.map +1 -0
  18. package/lib/cjs/components-react/common/TimeFormat.d.ts +13 -0
  19. package/lib/cjs/components-react/common/TimeFormat.d.ts.map +1 -0
  20. package/lib/cjs/components-react/common/TimeFormat.js +17 -0
  21. package/lib/cjs/components-react/common/TimeFormat.js.map +1 -0
  22. package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts +1 -1
  23. package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
  24. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js +8 -8
  25. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  26. package/lib/cjs/components-react/datepicker/DatePicker.d.ts.map +1 -1
  27. package/lib/cjs/components-react/datepicker/DatePicker.js +1 -1
  28. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  29. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js +1 -1
  30. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  31. package/lib/cjs/components-react/datepicker/TimeField.js +1 -1
  32. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  33. package/lib/cjs/components-react/editors/BooleanEditor.d.ts +0 -5
  34. package/lib/cjs/components-react/editors/BooleanEditor.d.ts.map +1 -1
  35. package/lib/cjs/components-react/editors/BooleanEditor.js +0 -5
  36. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  37. package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts +0 -5
  38. package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
  39. package/lib/cjs/components-react/editors/CustomNumberEditor.js +1 -5
  40. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  41. package/lib/cjs/components-react/editors/DateTimeEditor.d.ts +0 -5
  42. package/lib/cjs/components-react/editors/DateTimeEditor.d.ts.map +1 -1
  43. package/lib/cjs/components-react/editors/DateTimeEditor.js +0 -5
  44. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  45. package/lib/cjs/components-react/editors/EditorContainer.d.ts.map +1 -1
  46. package/lib/cjs/components-react/editors/EditorContainer.js +73 -2
  47. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  48. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts +0 -4
  49. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
  50. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js +0 -4
  51. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  52. package/lib/cjs/components-react/editors/EnumEditor.d.ts +0 -5
  53. package/lib/cjs/components-react/editors/EnumEditor.d.ts.map +1 -1
  54. package/lib/cjs/components-react/editors/EnumEditor.js +0 -5
  55. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  56. package/lib/cjs/components-react/editors/IconEditor.d.ts +0 -4
  57. package/lib/cjs/components-react/editors/IconEditor.d.ts.map +1 -1
  58. package/lib/cjs/components-react/editors/IconEditor.js +0 -4
  59. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  60. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts +0 -4
  61. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  62. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js +0 -4
  63. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  64. package/lib/cjs/components-react/editors/NumericInputEditor.d.ts +0 -5
  65. package/lib/cjs/components-react/editors/NumericInputEditor.d.ts.map +1 -1
  66. package/lib/cjs/components-react/editors/NumericInputEditor.js +0 -5
  67. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/PopupButton.d.ts +0 -3
  69. package/lib/cjs/components-react/editors/PopupButton.d.ts.map +1 -1
  70. package/lib/cjs/components-react/editors/PopupButton.js +1 -4
  71. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  72. package/lib/cjs/components-react/editors/PopupButton.scss +3 -4
  73. package/lib/cjs/components-react/editors/SliderEditor.d.ts +0 -5
  74. package/lib/cjs/components-react/editors/SliderEditor.d.ts.map +1 -1
  75. package/lib/cjs/components-react/editors/SliderEditor.js +6 -7
  76. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  77. package/lib/cjs/components-react/editors/TextEditor.d.ts +0 -5
  78. package/lib/cjs/components-react/editors/TextEditor.d.ts.map +1 -1
  79. package/lib/cjs/components-react/editors/TextEditor.js +1 -5
  80. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  81. package/lib/cjs/components-react/editors/TextareaEditor.d.ts +0 -5
  82. package/lib/cjs/components-react/editors/TextareaEditor.d.ts.map +1 -1
  83. package/lib/cjs/components-react/editors/TextareaEditor.js +0 -5
  84. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  85. package/lib/cjs/components-react/editors/ToggleEditor.d.ts +0 -5
  86. package/lib/cjs/components-react/editors/ToggleEditor.d.ts.map +1 -1
  87. package/lib/cjs/components-react/editors/ToggleEditor.js +0 -5
  88. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  89. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts +1 -1
  90. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  91. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  92. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts +1 -1
  93. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  94. package/lib/cjs/components-react/favorite/FavoritePropertyList.js +2 -1
  95. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  96. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js +1 -1
  97. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -1
  98. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +1 -1
  99. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  100. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +1 -1
  101. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  102. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js +1 -1
  103. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -1
  104. package/lib/cjs/components-react/filtering/FilteringInput.d.ts +0 -1
  105. package/lib/cjs/components-react/filtering/FilteringInput.d.ts.map +1 -1
  106. package/lib/cjs/components-react/filtering/FilteringInput.js +3 -7
  107. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  108. package/lib/cjs/components-react/filtering/ResultSelector.d.ts +0 -4
  109. package/lib/cjs/components-react/filtering/ResultSelector.d.ts.map +1 -1
  110. package/lib/cjs/components-react/filtering/ResultSelector.js +0 -4
  111. package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
  112. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +0 -3
  113. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  114. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +1 -7
  115. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  116. package/lib/cjs/components-react/l10n/LocalizationProvider.d.ts +10 -0
  117. package/lib/cjs/components-react/l10n/LocalizationProvider.d.ts.map +1 -0
  118. package/lib/cjs/components-react/l10n/LocalizationProvider.js +46 -0
  119. package/lib/cjs/components-react/l10n/LocalizationProvider.js.map +1 -0
  120. package/lib/cjs/components-react/l10n/useTranslation.d.ts.map +1 -0
  121. package/lib/cjs/components-react/{useTranslation.js → l10n/useTranslation.js} +2 -2
  122. package/lib/cjs/components-react/l10n/useTranslation.js.map +1 -0
  123. package/lib/cjs/components-react/properties/ValueRendererManager.d.ts +1 -1
  124. package/lib/cjs/components-react/properties/ValueRendererManager.d.ts.map +1 -1
  125. package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
  126. package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts +1 -2
  127. package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts.map +1 -1
  128. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js +2 -3
  129. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  130. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.d.ts +1 -1
  131. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.d.ts.map +1 -1
  132. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js +3 -3
  133. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  134. package/lib/cjs/components-react/properties/renderers/CustomizablePropertyRenderer.d.ts.map +1 -1
  135. package/lib/cjs/components-react/properties/renderers/CustomizablePropertyRenderer.js +2 -2
  136. package/lib/cjs/components-react/properties/renderers/CustomizablePropertyRenderer.js.map +1 -1
  137. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -5
  138. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
  139. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +0 -2
  140. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  141. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +0 -1
  142. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts.map +1 -1
  143. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js +0 -1
  144. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  145. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.d.ts +1 -1
  146. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.d.ts.map +1 -1
  147. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js +3 -3
  148. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  149. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts +1 -5
  150. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
  151. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js +0 -4
  152. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  153. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts +0 -1
  154. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
  155. package/lib/cjs/components-react/properties/renderers/PropertyView.js +3 -3
  156. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  157. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +2 -1
  158. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts.map +1 -1
  159. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js +2 -2
  160. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  161. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +1 -1
  162. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  163. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts.map +1 -1
  164. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js +2 -2
  165. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  166. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +0 -1
  167. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts.map +1 -1
  168. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js +0 -1
  169. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  170. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -2
  171. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.map +1 -1
  172. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js +0 -1
  173. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  174. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +0 -1
  175. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts.map +1 -1
  176. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js +0 -1
  177. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  178. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts +1 -1
  179. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
  180. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +2 -1
  181. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  182. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +0 -1
  183. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
  184. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js +0 -1
  185. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  186. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +3 -4
  187. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts +1 -1
  188. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  189. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js +3 -3
  190. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  191. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +0 -2
  192. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
  193. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js +0 -2
  194. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  195. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts +1 -2
  196. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
  197. package/lib/cjs/components-react/propertygrid/component/PropertyList.js +2 -3
  198. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  199. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -4
  200. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
  201. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js +14 -8
  202. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  203. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +1 -1
  204. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts.map +1 -1
  205. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js +9 -1
  206. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  207. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +0 -1
  208. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
  209. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +0 -1
  210. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  211. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
  212. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +2 -2
  213. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  214. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts +15 -8
  215. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  216. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js +25 -17
  217. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  218. package/lib/cjs/components-react/toolbar/PopupItem.d.ts +12 -8
  219. package/lib/cjs/components-react/toolbar/PopupItem.d.ts.map +1 -1
  220. package/lib/cjs/components-react/toolbar/PopupItem.js +8 -9
  221. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  222. package/lib/cjs/components-react/toolbar/PopupItem.scss +0 -7
  223. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts +4 -2
  224. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  225. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js +4 -3
  226. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  227. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts +14 -2
  228. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  229. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js +3 -2
  230. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  231. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.d.ts.map +1 -1
  232. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.js +3 -0
  233. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.js.map +1 -1
  234. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +1 -1
  235. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  236. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  237. package/lib/cjs/components-react/tree/controlled/TreeActions.d.ts +1 -1
  238. package/lib/cjs/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
  239. package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
  240. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts +1 -1
  241. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  242. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  243. package/lib/cjs/components-react/tree/controlled/TreeEvents.d.ts +1 -1
  244. package/lib/cjs/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
  245. package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
  246. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts +1 -1
  247. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  248. package/lib/cjs/components-react/tree/controlled/TreeModel.js +2 -2
  249. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  250. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js +1 -1
  251. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  252. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +9 -2
  253. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  254. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  255. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
  256. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js +2 -1
  257. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  258. package/lib/cjs/components-react.d.ts +10 -6
  259. package/lib/cjs/components-react.d.ts.map +1 -1
  260. package/lib/cjs/components-react.js +10 -6
  261. package/lib/cjs/components-react.js.map +1 -1
  262. package/lib/esm/components-react/UiComponents.d.ts.map +1 -1
  263. package/lib/esm/components-react/UiComponents.js +2 -0
  264. package/lib/esm/components-react/UiComponents.js.map +1 -1
  265. package/lib/esm/components-react/common/CheckBoxState.d.ts +13 -0
  266. package/lib/esm/components-react/common/CheckBoxState.d.ts.map +1 -0
  267. package/lib/esm/components-react/common/CheckBoxState.js +14 -0
  268. package/lib/esm/components-react/common/CheckBoxState.js.map +1 -0
  269. package/lib/esm/components-react/common/HighlightedText.d.ts.map +1 -1
  270. package/lib/esm/components-react/common/HighlightedText.js +56 -14
  271. package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
  272. package/lib/esm/components-react/common/ImageRenderer.d.ts.map +1 -1
  273. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  274. package/lib/esm/components-react/common/Orientation.d.ts +13 -0
  275. package/lib/esm/components-react/common/Orientation.d.ts.map +1 -0
  276. package/lib/esm/components-react/common/Orientation.js +14 -0
  277. package/lib/esm/components-react/common/Orientation.js.map +1 -0
  278. package/lib/esm/components-react/common/TimeFormat.d.ts +13 -0
  279. package/lib/esm/components-react/common/TimeFormat.d.ts.map +1 -0
  280. package/lib/esm/components-react/common/TimeFormat.js +14 -0
  281. package/lib/esm/components-react/common/TimeFormat.js.map +1 -0
  282. package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts +1 -1
  283. package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
  284. package/lib/esm/components-react/converters/DateTimeTypeConverter.js +1 -1
  285. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  286. package/lib/esm/components-react/datepicker/DatePicker.d.ts.map +1 -1
  287. package/lib/esm/components-react/datepicker/DatePicker.js +1 -1
  288. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  289. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js +1 -1
  290. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  291. package/lib/esm/components-react/datepicker/TimeField.js +1 -1
  292. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  293. package/lib/esm/components-react/editors/BooleanEditor.d.ts +0 -5
  294. package/lib/esm/components-react/editors/BooleanEditor.d.ts.map +1 -1
  295. package/lib/esm/components-react/editors/BooleanEditor.js +0 -5
  296. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  297. package/lib/esm/components-react/editors/CustomNumberEditor.d.ts +0 -5
  298. package/lib/esm/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
  299. package/lib/esm/components-react/editors/CustomNumberEditor.js +1 -5
  300. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  301. package/lib/esm/components-react/editors/DateTimeEditor.d.ts +0 -5
  302. package/lib/esm/components-react/editors/DateTimeEditor.d.ts.map +1 -1
  303. package/lib/esm/components-react/editors/DateTimeEditor.js +0 -5
  304. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  305. package/lib/esm/components-react/editors/EditorContainer.d.ts.map +1 -1
  306. package/lib/esm/components-react/editors/EditorContainer.js +74 -3
  307. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  308. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts +0 -4
  309. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
  310. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js +0 -4
  311. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  312. package/lib/esm/components-react/editors/EnumEditor.d.ts +0 -5
  313. package/lib/esm/components-react/editors/EnumEditor.d.ts.map +1 -1
  314. package/lib/esm/components-react/editors/EnumEditor.js +0 -5
  315. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  316. package/lib/esm/components-react/editors/IconEditor.d.ts +0 -4
  317. package/lib/esm/components-react/editors/IconEditor.d.ts.map +1 -1
  318. package/lib/esm/components-react/editors/IconEditor.js +0 -4
  319. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  320. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts +0 -4
  321. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
  322. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js +0 -4
  323. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  324. package/lib/esm/components-react/editors/NumericInputEditor.d.ts +0 -5
  325. package/lib/esm/components-react/editors/NumericInputEditor.d.ts.map +1 -1
  326. package/lib/esm/components-react/editors/NumericInputEditor.js +0 -5
  327. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  328. package/lib/esm/components-react/editors/PopupButton.d.ts +0 -3
  329. package/lib/esm/components-react/editors/PopupButton.d.ts.map +1 -1
  330. package/lib/esm/components-react/editors/PopupButton.js +1 -4
  331. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  332. package/lib/esm/components-react/editors/PopupButton.scss +3 -4
  333. package/lib/esm/components-react/editors/SliderEditor.d.ts +0 -5
  334. package/lib/esm/components-react/editors/SliderEditor.d.ts.map +1 -1
  335. package/lib/esm/components-react/editors/SliderEditor.js +6 -7
  336. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  337. package/lib/esm/components-react/editors/TextEditor.d.ts +0 -5
  338. package/lib/esm/components-react/editors/TextEditor.d.ts.map +1 -1
  339. package/lib/esm/components-react/editors/TextEditor.js +1 -5
  340. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  341. package/lib/esm/components-react/editors/TextareaEditor.d.ts +0 -5
  342. package/lib/esm/components-react/editors/TextareaEditor.d.ts.map +1 -1
  343. package/lib/esm/components-react/editors/TextareaEditor.js +0 -5
  344. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  345. package/lib/esm/components-react/editors/ToggleEditor.d.ts +0 -5
  346. package/lib/esm/components-react/editors/ToggleEditor.d.ts.map +1 -1
  347. package/lib/esm/components-react/editors/ToggleEditor.js +0 -5
  348. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  349. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts +1 -1
  350. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
  351. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  352. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts +1 -1
  353. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  354. package/lib/esm/components-react/favorite/FavoritePropertyList.js +2 -1
  355. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  356. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js +1 -1
  357. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -1
  358. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +1 -1
  359. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  360. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +1 -1
  361. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  362. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js +1 -1
  363. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -1
  364. package/lib/esm/components-react/filtering/FilteringInput.d.ts +0 -1
  365. package/lib/esm/components-react/filtering/FilteringInput.d.ts.map +1 -1
  366. package/lib/esm/components-react/filtering/FilteringInput.js +3 -7
  367. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  368. package/lib/esm/components-react/filtering/ResultSelector.d.ts +0 -4
  369. package/lib/esm/components-react/filtering/ResultSelector.d.ts.map +1 -1
  370. package/lib/esm/components-react/filtering/ResultSelector.js +0 -4
  371. package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
  372. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +0 -3
  373. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
  374. package/lib/esm/components-react/iconpicker/IconPickerButton.js +1 -7
  375. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  376. package/lib/esm/components-react/l10n/LocalizationProvider.d.ts +10 -0
  377. package/lib/esm/components-react/l10n/LocalizationProvider.d.ts.map +1 -0
  378. package/lib/esm/components-react/l10n/LocalizationProvider.js +19 -0
  379. package/lib/esm/components-react/l10n/LocalizationProvider.js.map +1 -0
  380. package/lib/esm/components-react/l10n/useTranslation.d.ts.map +1 -0
  381. package/lib/esm/components-react/{useTranslation.js → l10n/useTranslation.js} +2 -2
  382. package/lib/esm/components-react/l10n/useTranslation.js.map +1 -0
  383. package/lib/esm/components-react/properties/ValueRendererManager.d.ts +1 -1
  384. package/lib/esm/components-react/properties/ValueRendererManager.d.ts.map +1 -1
  385. package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
  386. package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts +1 -2
  387. package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts.map +1 -1
  388. package/lib/esm/components-react/properties/renderers/ActionButtonList.js +1 -2
  389. package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  390. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.d.ts +1 -1
  391. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.d.ts.map +1 -1
  392. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js +1 -1
  393. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  394. package/lib/esm/components-react/properties/renderers/CustomizablePropertyRenderer.d.ts.map +1 -1
  395. package/lib/esm/components-react/properties/renderers/CustomizablePropertyRenderer.js +1 -1
  396. package/lib/esm/components-react/properties/renderers/CustomizablePropertyRenderer.js.map +1 -1
  397. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -5
  398. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
  399. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +0 -2
  400. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  401. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +0 -1
  402. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts.map +1 -1
  403. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js +0 -1
  404. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  405. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.d.ts +1 -1
  406. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.d.ts.map +1 -1
  407. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js +1 -1
  408. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  409. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts +1 -5
  410. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
  411. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js +0 -4
  412. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  413. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts +0 -1
  414. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
  415. package/lib/esm/components-react/properties/renderers/PropertyView.js +2 -2
  416. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  417. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +2 -1
  418. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts.map +1 -1
  419. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js +1 -1
  420. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  421. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +1 -1
  422. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  423. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts.map +1 -1
  424. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js +1 -1
  425. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  426. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +0 -1
  427. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts.map +1 -1
  428. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js +0 -1
  429. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  430. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -2
  431. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.map +1 -1
  432. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js +0 -1
  433. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  434. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +0 -1
  435. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts.map +1 -1
  436. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js +0 -1
  437. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  438. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts +1 -1
  439. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
  440. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +2 -1
  441. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  442. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +0 -1
  443. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
  444. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js +0 -1
  445. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  446. package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +3 -4
  447. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts +1 -1
  448. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  449. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js +1 -1
  450. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  451. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +0 -2
  452. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
  453. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js +0 -2
  454. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  455. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts +1 -2
  456. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
  457. package/lib/esm/components-react/propertygrid/component/PropertyList.js +1 -2
  458. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  459. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -4
  460. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
  461. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js +12 -6
  462. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  463. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +1 -1
  464. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts.map +1 -1
  465. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js +9 -1
  466. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  467. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +0 -1
  468. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
  469. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +0 -1
  470. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  471. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
  472. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +1 -1
  473. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  474. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts +15 -8
  475. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  476. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js +25 -17
  477. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  478. package/lib/esm/components-react/toolbar/PopupItem.d.ts +12 -8
  479. package/lib/esm/components-react/toolbar/PopupItem.d.ts.map +1 -1
  480. package/lib/esm/components-react/toolbar/PopupItem.js +9 -10
  481. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  482. package/lib/esm/components-react/toolbar/PopupItem.scss +0 -7
  483. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts +4 -2
  484. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  485. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js +4 -3
  486. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  487. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts +14 -2
  488. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  489. package/lib/esm/components-react/toolbar/PopupItemsPanel.js +3 -2
  490. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  491. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.d.ts.map +1 -1
  492. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.js +3 -0
  493. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.js.map +1 -1
  494. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +1 -1
  495. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  496. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  497. package/lib/esm/components-react/tree/controlled/TreeActions.d.ts +1 -1
  498. package/lib/esm/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
  499. package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
  500. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts +1 -1
  501. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  502. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  503. package/lib/esm/components-react/tree/controlled/TreeEvents.d.ts +1 -1
  504. package/lib/esm/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
  505. package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
  506. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts +1 -1
  507. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  508. package/lib/esm/components-react/tree/controlled/TreeModel.js +1 -1
  509. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  510. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js +1 -1
  511. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  512. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +9 -2
  513. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  514. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  515. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
  516. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js +2 -1
  517. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  518. package/lib/esm/components-react.d.ts +10 -6
  519. package/lib/esm/components-react.d.ts.map +1 -1
  520. package/lib/esm/components-react.js +10 -6
  521. package/lib/esm/components-react.js.map +1 -1
  522. package/package.json +3 -5
  523. package/lib/cjs/components-react/useTranslation.d.ts.map +0 -1
  524. package/lib/cjs/components-react/useTranslation.js.map +0 -1
  525. package/lib/esm/components-react/useTranslation.d.ts.map +0 -1
  526. package/lib/esm/components-react/useTranslation.js.map +0 -1
  527. /package/lib/cjs/components-react/{useTranslation.d.ts → l10n/useTranslation.d.ts} +0 -0
  528. /package/lib/esm/components-react/{useTranslation.d.ts → l10n/useTranslation.d.ts} +0 -0
@@ -28,7 +28,6 @@ export declare class DateTimeEditor extends React.PureComponent<DateTimeEditorPr
28
28
  private _isMounted;
29
29
  private _enterKey;
30
30
  private _divElement;
31
- /** @internal */
32
31
  readonly state: Readonly<DateTimeEditorState>;
33
32
  getPropertyValue(): Promise<PropertyValue | undefined>;
34
33
  get htmlElement(): HTMLElement | null;
@@ -36,11 +35,8 @@ export declare class DateTimeEditor extends React.PureComponent<DateTimeEditorPr
36
35
  processDateChange(typeConverter: TypeConverter, newValue: Date): Promise<void>;
37
36
  private _handleChange;
38
37
  private _handleTimeChange;
39
- /** @internal */
40
38
  componentDidMount(): void;
41
- /** @internal */
42
39
  componentWillUnmount(): void;
43
- /** @internal */
44
40
  componentDidUpdate(prevProps: PropertyEditorProps): void;
45
41
  private setStateFromProps;
46
42
  private _handleEnter;
@@ -48,7 +44,6 @@ export declare class DateTimeEditor extends React.PureComponent<DateTimeEditorPr
48
44
  private _handleOk;
49
45
  private _handleCancel;
50
46
  private _handleCommit;
51
- /** @internal */
52
47
  render(): React.ReactNode;
53
48
  }
54
49
  /** DateTime Property Editor registered for the "number" type name and "DateTime" editor name.
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeEditor.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/DateTimeEditor.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAIL,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AASjE,gBAAgB;AAChB,UAAU,mBAAmB;IAC3B,KAAK,EAAE,IAAI,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,gBAAgB;AAChB,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,cACX,SAAQ,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CACpE,YAAW,UAAU;IAErB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAqC;IAExD,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAG3D;IAEW,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAenE,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAK7B;IAEY,iBAAiB,CAC5B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,IAAI,CAAC;IAahB,OAAO,CAAC,aAAa,CAWnB;IAEF,OAAO,CAAC,iBAAiB,CAWvB;IAEF,gBAAgB;IACA,iBAAiB;IAKjC,gBAAgB;IACA,oBAAoB;IAIpC,gBAAgB;IACA,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;YAMnD,iBAAiB;IAiG/B,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAMlB;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,aAAa,CAInB;IAEF,OAAO,CAAC,aAAa,CAUnB;IAEF,gBAAgB;IACA,MAAM,IAAI,KAAK,CAAC,SAAS;CA0D1C;AAED;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;IACD,IAAoB,mBAAmB,IAAI,OAAO,CAEjD;CACF;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;IACD,IAAoB,mBAAmB,IAAI,OAAO,CAEjD;CACF"}
1
+ {"version":3,"file":"DateTimeEditor.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/DateTimeEditor.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAIL,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AASjE,gBAAgB;AAChB,UAAU,mBAAmB;IAC3B,KAAK,EAAE,IAAI,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,gBAAgB;AAChB,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,cACX,SAAQ,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CACpE,YAAW,UAAU;IAErB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAqC;IAExD,SAAyB,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAG3D;IAEW,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAenE,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAK7B;IAEY,iBAAiB,CAC5B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,IAAI,CAAC;IAahB,OAAO,CAAC,aAAa,CAWnB;IAEF,OAAO,CAAC,iBAAiB,CAWvB;IAEc,iBAAiB;IAKjB,oBAAoB;IAIpB,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;YAMnD,iBAAiB;IAiG/B,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAMlB;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,aAAa,CAInB;IAEF,OAAO,CAAC,aAAa,CAUnB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CA0D1C;AAED;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;IACD,IAAoB,mBAAmB,IAAI,OAAO,CAEjD;CACF;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;IACD,IAAoB,mBAAmB,IAAI,OAAO,CAEjD;CACF"}
@@ -26,7 +26,6 @@ export class DateTimeEditor extends React.PureComponent {
26
26
  this._isMounted = false;
27
27
  this._enterKey = false;
28
28
  this._divElement = React.createRef();
29
- /** @internal */
30
29
  this.state = {
31
30
  value: new Date(),
32
31
  editInUtc: false,
@@ -115,16 +114,13 @@ export class DateTimeEditor extends React.PureComponent {
115
114
  });
116
115
  }
117
116
  }
118
- /** @internal */
119
117
  componentDidMount() {
120
118
  this._isMounted = true;
121
119
  void this.setStateFromProps();
122
120
  }
123
- /** @internal */
124
121
  componentWillUnmount() {
125
122
  this._isMounted = false;
126
123
  }
127
- /** @internal */
128
124
  componentDidUpdate(prevProps) {
129
125
  if (this.props.propertyRecord !== prevProps.propertyRecord) {
130
126
  void this.setStateFromProps();
@@ -206,7 +202,6 @@ export class DateTimeEditor extends React.PureComponent {
206
202
  editInUtc,
207
203
  });
208
204
  }
209
- /** @internal */
210
205
  render() {
211
206
  const date = this.state.editInUtc
212
207
  ? adjustDateToTimezone(this.state.value, 0)
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/DateTimeEditor.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 \"./DateTimeEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { PropertyValue } from \"@itwin/appui-abstract\";\nimport {\n AlternateDateFormats,\n PropertyValueFormat,\n StandardTypeNames,\n TimeDisplay,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"./PropertyEditorManager\";\nimport { PopupButton, PopupContent, PopupOkCancelButtons } from \"./PopupButton\";\nimport type { TimeSpec } from \"../datepicker/TimeField\";\nimport { TimeField } from \"../datepicker/TimeField\";\nimport type { TypeConverter } from \"../converters/TypeConverter\";\nimport { DatePicker } from \"../datepicker/DatePicker\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport { DateTimeTypeConverterBase } from \"../converters/DateTimeTypeConverter\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { adjustDateToTimezone } from \"../common/DateUtils\";\n\n// cSpell:ignore datepicker\n\n/** @internal */\ninterface DateTimeEditorState {\n value: Date;\n displayValue?: string;\n timeDisplay?: TimeDisplay;\n isDisabled?: boolean;\n typeConverter?: TypeConverter;\n editInUtc: boolean;\n}\n\n/** @internal */\ninterface DateTimeEditorProps extends PropertyEditorProps {\n showTime?: boolean;\n}\n\n/** DateTimeEditor React component that is a property editor for selection of date and time.\n * @internal\n */\nexport class DateTimeEditor\n extends React.PureComponent<DateTimeEditorProps, DateTimeEditorState>\n implements TypeEditor\n{\n private _isMounted = false;\n private _enterKey = false;\n private _divElement = React.createRef<HTMLDivElement>();\n\n /** @internal */\n public override readonly state: Readonly<DateTimeEditorState> = {\n value: new Date(),\n editInUtc: false,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.value,\n displayValue: this.state.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 if (this.htmlElement)\n containsFocus = this.htmlElement.contains(document.activeElement);\n return containsFocus;\n }\n\n public async processDateChange(\n typeConverter: TypeConverter,\n newValue: Date\n ): Promise<void> {\n if (this.props.propertyRecord) {\n const displayValue = await typeConverter.convertPropertyToString(\n this.props.propertyRecord.property,\n newValue\n );\n this.setState({\n value: newValue,\n displayValue,\n });\n }\n }\n\n private _handleChange = (newValue: Date): void => {\n if (this._isMounted && this.state.typeConverter) {\n if (this.state.editInUtc) {\n newValue = adjustDateToTimezone(\n newValue,\n newValue.getTimezoneOffset() * -1\n );\n }\n\n void this.processDateChange(this.state.typeConverter, newValue);\n }\n };\n\n private _handleTimeChange = (time: TimeSpec): void => {\n // Combine new time into selected Date\n if (this.state.editInUtc) {\n const newWorkingDate = adjustDateToTimezone(this.state.value, 0);\n newWorkingDate.setUTCHours(time.hours, time.minutes, time.seconds);\n this._handleChange(newWorkingDate);\n } else {\n const newWorkingDate = new Date(this.state.value.getTime());\n newWorkingDate.setHours(time.hours, time.minutes, time.seconds);\n this._handleChange(newWorkingDate);\n }\n };\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n void this.setStateFromProps();\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 void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue: Date | undefined;\n let typeConverter: TypeConverter | undefined;\n let timeDisplay: TimeDisplay | undefined;\n let alternateDateFormat = AlternateDateFormats.None;\n let editInUtc = false;\n\n if (this.props.showTime) timeDisplay = TimeDisplay.H12MC;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n if (record.value.value instanceof Date)\n initialValue = new Date(record.value.value);\n else if (typeof record.value.value === \"string\")\n initialValue = new Date(record.value.value);\n else if (record.value.value === undefined) initialValue = new Date();\n\n typeConverter = TypeConverterManager.getConverter(\n record.property.typename,\n record.property.converter?.name\n );\n\n const options = record.property.converter?.options;\n if (options) {\n if (\"alternateDateFormat\" in options) {\n if (\n DateTimeTypeConverterBase.isAlternateDateFormats(\n options.alternateDateFormat\n )\n ) {\n timeDisplay = TimeDisplay.H24MS;\n alternateDateFormat = options.alternateDateFormat;\n }\n }\n\n if (\"timeDisplay\" in options && this.props.showTime) {\n timeDisplay = options.timeDisplay;\n // use 24 hr time display if alternateDateFormat is defined\n if (\n alternateDateFormat &&\n timeDisplay !== TimeDisplay.H24MS &&\n timeDisplay !== TimeDisplay.H24M\n )\n timeDisplay = TimeDisplay.H24MS;\n }\n\n if (alternateDateFormat) {\n editInUtc = true;\n\n if (this.props.showTime) {\n if (alternateDateFormat === AlternateDateFormats.IsoShort) {\n alternateDateFormat = AlternateDateFormats.IsoDateTime;\n }\n if (alternateDateFormat === AlternateDateFormats.UtcShort) {\n alternateDateFormat = AlternateDateFormats.UtcDateTime;\n }\n if (alternateDateFormat === AlternateDateFormats.UtcShortWithDay) {\n alternateDateFormat = AlternateDateFormats.UtcDateTimeWithDay;\n }\n } else {\n timeDisplay = undefined;\n if (alternateDateFormat === AlternateDateFormats.IsoDateTime)\n alternateDateFormat = AlternateDateFormats.IsoShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTime)\n alternateDateFormat = AlternateDateFormats.UtcShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTimeWithDay)\n alternateDateFormat = AlternateDateFormats.UtcShortWithDay;\n }\n }\n }\n }\n\n if (!initialValue) {\n throw new Error(\"Bad Value\");\n }\n\n if (!typeConverter) {\n throw new Error(\"Unable to determine TypeConverter\");\n }\n\n const isDisabled = record && !!record.isDisabled;\n const displayValue = await typeConverter.convertPropertyToString(\n record!.property,\n initialValue\n );\n\n if (this._isMounted)\n this.setState({\n value: initialValue,\n isDisabled,\n timeDisplay,\n typeConverter,\n displayValue,\n editInUtc,\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 if (this.props.onCancel) 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 if (this.props.onCancel) {\n this.props.onCancel();\n }\n };\n\n private _handleCommit = async (): Promise<void> => {\n if (this.props.propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue !== undefined) {\n this.props.onCommit({\n propertyRecord: this.props.propertyRecord,\n newValue: propertyValue,\n });\n }\n }\n };\n\n /** @internal */\n public override render(): React.ReactNode {\n const date = this.state.editInUtc\n ? adjustDateToTimezone(this.state.value, 0)\n : this.state.value;\n const timeSpec: TimeSpec = {\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n };\n\n const className = classnames(\n \"components-cell-editor\",\n \"components-datetime-editor\",\n this.props.className\n );\n\n return (\n <div className={className} ref={this._divElement}>\n <PopupButton\n label={this.state.displayValue}\n onClose={this._handleClose}\n onEnter={this._handleEnter}\n setFocus={this.props.setFocus}\n >\n <PopupContent>\n <>\n <div\n className=\"components-date-picker-calendar-popup-panel\"\n data-testid=\"components-date-picker-calendar-popup-panel\"\n >\n <DatePicker // eslint-disable-line deprecation/deprecation\n selected={date}\n onDateChange={this._handleChange}\n showFocusOutline={false}\n />\n {this.state.timeDisplay && (\n <div className=\"time-container\">\n <Text variant=\"body\" className=\"time-label\">\n {\"Time\"}\n </Text>\n <TimeField\n time={timeSpec}\n timeDisplay={this.state.timeDisplay}\n onTimeChange={this._handleTimeChange}\n />\n </div>\n )}\n </div>\n </>\n <PopupOkCancelButtons\n onOk={this._handleOk}\n onCancel={this._handleCancel}\n />\n </PopupContent>\n </PopupButton>\n </div>\n );\n }\n}\n\n/** DateTime Property Editor registered for the \"number\" type name and \"DateTime\" editor name.\n * It uses the [[DateTimeEditor]] React component.\n * @internal\n */\nexport class ShortDateTimePropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <DateTimeEditor showTime={false} />;\n }\n public override get containerHandlesTab(): boolean {\n return false;\n }\n}\n\n/** DateTime Property Editor registered for the \"number\" type name and \"DateTime\" editor name.\n * It uses the [[DateTimeEditor]] React component.\n * @internal\n */\nexport class DateTimePropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <DateTimeEditor showTime={true} />;\n }\n public override get containerHandlesTab(): boolean {\n return false;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.ShortDate,\n ShortDateTimePropertyEditor\n);\nPropertyEditorManager.registerEditor(\n StandardTypeNames.DateTime,\n DateTimePropertyEditor\n);\n"]}
1
+ {"version":3,"file":"DateTimeEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/DateTimeEditor.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 \"./DateTimeEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { PropertyValue } from \"@itwin/appui-abstract\";\nimport {\n AlternateDateFormats,\n PropertyValueFormat,\n StandardTypeNames,\n TimeDisplay,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"./PropertyEditorManager\";\nimport { PopupButton, PopupContent, PopupOkCancelButtons } from \"./PopupButton\";\nimport type { TimeSpec } from \"../datepicker/TimeField\";\nimport { TimeField } from \"../datepicker/TimeField\";\nimport type { TypeConverter } from \"../converters/TypeConverter\";\nimport { DatePicker } from \"../datepicker/DatePicker\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport { DateTimeTypeConverterBase } from \"../converters/DateTimeTypeConverter\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { adjustDateToTimezone } from \"../common/DateUtils\";\n\n// cSpell:ignore datepicker\n\n/** @internal */\ninterface DateTimeEditorState {\n value: Date;\n displayValue?: string;\n timeDisplay?: TimeDisplay;\n isDisabled?: boolean;\n typeConverter?: TypeConverter;\n editInUtc: boolean;\n}\n\n/** @internal */\ninterface DateTimeEditorProps extends PropertyEditorProps {\n showTime?: boolean;\n}\n\n/** DateTimeEditor React component that is a property editor for selection of date and time.\n * @internal\n */\nexport class DateTimeEditor\n extends React.PureComponent<DateTimeEditorProps, DateTimeEditorState>\n implements TypeEditor\n{\n private _isMounted = false;\n private _enterKey = false;\n private _divElement = React.createRef<HTMLDivElement>();\n\n public override readonly state: Readonly<DateTimeEditorState> = {\n value: new Date(),\n editInUtc: false,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.value,\n displayValue: this.state.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 if (this.htmlElement)\n containsFocus = this.htmlElement.contains(document.activeElement);\n return containsFocus;\n }\n\n public async processDateChange(\n typeConverter: TypeConverter,\n newValue: Date\n ): Promise<void> {\n if (this.props.propertyRecord) {\n const displayValue = await typeConverter.convertPropertyToString(\n this.props.propertyRecord.property,\n newValue\n );\n this.setState({\n value: newValue,\n displayValue,\n });\n }\n }\n\n private _handleChange = (newValue: Date): void => {\n if (this._isMounted && this.state.typeConverter) {\n if (this.state.editInUtc) {\n newValue = adjustDateToTimezone(\n newValue,\n newValue.getTimezoneOffset() * -1\n );\n }\n\n void this.processDateChange(this.state.typeConverter, newValue);\n }\n };\n\n private _handleTimeChange = (time: TimeSpec): void => {\n // Combine new time into selected Date\n if (this.state.editInUtc) {\n const newWorkingDate = adjustDateToTimezone(this.state.value, 0);\n newWorkingDate.setUTCHours(time.hours, time.minutes, time.seconds);\n this._handleChange(newWorkingDate);\n } else {\n const newWorkingDate = new Date(this.state.value.getTime());\n newWorkingDate.setHours(time.hours, time.minutes, time.seconds);\n this._handleChange(newWorkingDate);\n }\n };\n\n public override componentDidMount() {\n this._isMounted = true;\n void this.setStateFromProps();\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue: Date | undefined;\n let typeConverter: TypeConverter | undefined;\n let timeDisplay: TimeDisplay | undefined;\n let alternateDateFormat = AlternateDateFormats.None;\n let editInUtc = false;\n\n if (this.props.showTime) timeDisplay = TimeDisplay.H12MC;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n if (record.value.value instanceof Date)\n initialValue = new Date(record.value.value);\n else if (typeof record.value.value === \"string\")\n initialValue = new Date(record.value.value);\n else if (record.value.value === undefined) initialValue = new Date();\n\n typeConverter = TypeConverterManager.getConverter(\n record.property.typename,\n record.property.converter?.name\n );\n\n const options = record.property.converter?.options;\n if (options) {\n if (\"alternateDateFormat\" in options) {\n if (\n DateTimeTypeConverterBase.isAlternateDateFormats(\n options.alternateDateFormat\n )\n ) {\n timeDisplay = TimeDisplay.H24MS;\n alternateDateFormat = options.alternateDateFormat;\n }\n }\n\n if (\"timeDisplay\" in options && this.props.showTime) {\n timeDisplay = options.timeDisplay;\n // use 24 hr time display if alternateDateFormat is defined\n if (\n alternateDateFormat &&\n timeDisplay !== TimeDisplay.H24MS &&\n timeDisplay !== TimeDisplay.H24M\n )\n timeDisplay = TimeDisplay.H24MS;\n }\n\n if (alternateDateFormat) {\n editInUtc = true;\n\n if (this.props.showTime) {\n if (alternateDateFormat === AlternateDateFormats.IsoShort) {\n alternateDateFormat = AlternateDateFormats.IsoDateTime;\n }\n if (alternateDateFormat === AlternateDateFormats.UtcShort) {\n alternateDateFormat = AlternateDateFormats.UtcDateTime;\n }\n if (alternateDateFormat === AlternateDateFormats.UtcShortWithDay) {\n alternateDateFormat = AlternateDateFormats.UtcDateTimeWithDay;\n }\n } else {\n timeDisplay = undefined;\n if (alternateDateFormat === AlternateDateFormats.IsoDateTime)\n alternateDateFormat = AlternateDateFormats.IsoShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTime)\n alternateDateFormat = AlternateDateFormats.UtcShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTimeWithDay)\n alternateDateFormat = AlternateDateFormats.UtcShortWithDay;\n }\n }\n }\n }\n\n if (!initialValue) {\n throw new Error(\"Bad Value\");\n }\n\n if (!typeConverter) {\n throw new Error(\"Unable to determine TypeConverter\");\n }\n\n const isDisabled = record && !!record.isDisabled;\n const displayValue = await typeConverter.convertPropertyToString(\n record!.property,\n initialValue\n );\n\n if (this._isMounted)\n this.setState({\n value: initialValue,\n isDisabled,\n timeDisplay,\n typeConverter,\n displayValue,\n editInUtc,\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 if (this.props.onCancel) 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 if (this.props.onCancel) {\n this.props.onCancel();\n }\n };\n\n private _handleCommit = async (): Promise<void> => {\n if (this.props.propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue !== undefined) {\n this.props.onCommit({\n propertyRecord: this.props.propertyRecord,\n newValue: propertyValue,\n });\n }\n }\n };\n\n public override render(): React.ReactNode {\n const date = this.state.editInUtc\n ? adjustDateToTimezone(this.state.value, 0)\n : this.state.value;\n const timeSpec: TimeSpec = {\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n };\n\n const className = classnames(\n \"components-cell-editor\",\n \"components-datetime-editor\",\n this.props.className\n );\n\n return (\n <div className={className} ref={this._divElement}>\n <PopupButton\n label={this.state.displayValue}\n onClose={this._handleClose}\n onEnter={this._handleEnter}\n setFocus={this.props.setFocus}\n >\n <PopupContent>\n <>\n <div\n className=\"components-date-picker-calendar-popup-panel\"\n data-testid=\"components-date-picker-calendar-popup-panel\"\n >\n <DatePicker // eslint-disable-line deprecation/deprecation\n selected={date}\n onDateChange={this._handleChange}\n showFocusOutline={false}\n />\n {this.state.timeDisplay && (\n <div className=\"time-container\">\n <Text variant=\"body\" className=\"time-label\">\n {\"Time\"}\n </Text>\n <TimeField\n time={timeSpec}\n timeDisplay={this.state.timeDisplay}\n onTimeChange={this._handleTimeChange}\n />\n </div>\n )}\n </div>\n </>\n <PopupOkCancelButtons\n onOk={this._handleOk}\n onCancel={this._handleCancel}\n />\n </PopupContent>\n </PopupButton>\n </div>\n );\n }\n}\n\n/** DateTime Property Editor registered for the \"number\" type name and \"DateTime\" editor name.\n * It uses the [[DateTimeEditor]] React component.\n * @internal\n */\nexport class ShortDateTimePropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <DateTimeEditor showTime={false} />;\n }\n public override get containerHandlesTab(): boolean {\n return false;\n }\n}\n\n/** DateTime Property Editor registered for the \"number\" type name and \"DateTime\" editor name.\n * It uses the [[DateTimeEditor]] React component.\n * @internal\n */\nexport class DateTimePropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <DateTimeEditor showTime={true} />;\n }\n public override get containerHandlesTab(): boolean {\n return false;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.ShortDate,\n ShortDateTimePropertyEditor\n);\nPropertyEditorManager.registerEditor(\n StandardTypeNames.DateTime,\n DateTimePropertyEditor\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContainer.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/EditorContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AAEH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uBAAuB;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AAEH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,kCAAkC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,yBAAyB;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gBAAgB;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC3D,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBA2K1D"}
1
+ {"version":3,"file":"EditorContainer.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/EditorContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAGV,cAAc,EACd,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AAEH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uBAAuB;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AAEH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,kCAAkC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,yBAAyB;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gBAAgB;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC3D,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAmL1D"}
@@ -8,7 +8,7 @@
8
8
  import "./EditorContainer.scss";
9
9
  import * as React from "react";
10
10
  import { Key } from "ts-key-enum";
11
- import { UiAdmin } from "@itwin/appui-abstract";
11
+ import { PropertyValueFormat, UiAdmin } from "@itwin/appui-abstract";
12
12
  import { PropertyEditorManager } from "./PropertyEditorManager";
13
13
  /** EditorContainer React component used by the Tree and PropertyGrid for cell editing.
14
14
  * @public
@@ -29,9 +29,10 @@ export function EditorContainer(props) {
29
29
  newValue,
30
30
  });
31
31
  };
32
- const onPressEscape = () => {
32
+ const onPressEscape = (e) => {
33
33
  if (!propertyEditorRef.current?.containerHandlesEscape)
34
34
  return;
35
+ e.stopPropagation();
35
36
  onCancel();
36
37
  };
37
38
  const onPressEnter = (e) => {
@@ -45,12 +46,13 @@ export function EditorContainer(props) {
45
46
  if (!propertyEditorRef.current?.containerHandlesTab)
46
47
  return;
47
48
  e.stopPropagation();
49
+ e.preventDefault();
48
50
  void handleContainerCommit();
49
51
  };
50
52
  const handleKeyDown = (e) => {
51
53
  switch (e.key) {
52
54
  case Key.Escape.valueOf():
53
- onPressEscape();
55
+ onPressEscape(e);
54
56
  break;
55
57
  case Key.Enter.valueOf():
56
58
  onPressEnter(e);
@@ -94,7 +96,11 @@ export function EditorContainer(props) {
94
96
  UiAdmin.messagePresenter.displayMessage(errorMessage.severity, errorMessage.briefMessage, errorMessage.detailedMessage, errorMessage.messageType);
95
97
  };
96
98
  const commit = async (args) => {
99
+ const oldValue = args.propertyRecord.value;
97
100
  const newValue = args.newValue;
101
+ if (!shouldCommit(oldValue, newValue)) {
102
+ return;
103
+ }
98
104
  const isValid = await isNewValueValid(newValue);
99
105
  if (!isValid)
100
106
  return;
@@ -129,4 +135,69 @@ export function EditorContainer(props) {
129
135
  : undefined;
130
136
  return (React.createElement("span", { className: "components-editor-container", onBlur: handleContainerBlur, onKeyDown: handleKeyDown, onClick: handleClick, onContextMenu: handleClick, title: title, "data-testid": "editor-container", role: "presentation" }, clonedNode));
131
137
  }
138
+ function arePrimitiveValuesEqual(oldValue, newValue) {
139
+ if (typeof oldValue !== typeof newValue) {
140
+ return false;
141
+ }
142
+ // directly compare simple types
143
+ if (typeof newValue !== "object" || newValue instanceof Date) {
144
+ return newValue === oldValue;
145
+ }
146
+ // compare all members of arrays
147
+ if (newValue instanceof Array) {
148
+ if (!(oldValue instanceof Array)) {
149
+ return false;
150
+ }
151
+ if (newValue.length !== oldValue.length) {
152
+ return false;
153
+ }
154
+ for (let i = 0; i < newValue.length; i++) {
155
+ if (oldValue[i] !== newValue[i]) {
156
+ return false;
157
+ }
158
+ }
159
+ return true;
160
+ }
161
+ // compare `Point2d` and `Point3d` types
162
+ if ("x" in newValue) {
163
+ if (typeof oldValue !== "object" || !("x" in oldValue)) {
164
+ return false;
165
+ }
166
+ if ("z" in newValue) {
167
+ if (!("z" in oldValue)) {
168
+ return false;
169
+ }
170
+ return (newValue.x === oldValue.x &&
171
+ newValue.y === oldValue.y &&
172
+ newValue.z === oldValue.z);
173
+ }
174
+ else if ("z" in oldValue) {
175
+ return false;
176
+ }
177
+ return newValue.x === oldValue.x && newValue.y === oldValue.y;
178
+ }
179
+ // compare instance keys
180
+ if ("className" in newValue) {
181
+ if (typeof oldValue !== "object" || !("className" in oldValue)) {
182
+ return false;
183
+ }
184
+ return (oldValue.className === newValue.className && oldValue.id === newValue.id);
185
+ }
186
+ return false;
187
+ }
188
+ function shouldCommit(oldValue, newValue) {
189
+ if (oldValue.valueFormat !== newValue.valueFormat ||
190
+ newValue.valueFormat !== PropertyValueFormat.Primitive) {
191
+ return true;
192
+ }
193
+ const oldPrimitiveValue = oldValue;
194
+ if (!oldPrimitiveValue.value && !newValue.value) {
195
+ return false;
196
+ }
197
+ if ((!oldPrimitiveValue.value && newValue.value) ||
198
+ (oldPrimitiveValue.value && !newValue.value)) {
199
+ return true;
200
+ }
201
+ return !arePrimitiveValuesEqual(oldPrimitiveValue.value, newValue.value);
202
+ }
132
203
  //# sourceMappingURL=EditorContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContainer.js","sourceRoot":"","sources":["../../../../src/components-react/editors/EditorContainer.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 \"./EditorContainer.scss\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { PropertyRecord, PropertyValue } from \"@itwin/appui-abstract\";\nimport { UiAdmin } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type {\n AsyncErrorMessage,\n PropertyEditorBase,\n} from \"./PropertyEditorManager\";\nimport { PropertyEditorManager } from \"./PropertyEditorManager\";\n\n/** Arguments for the Property Updated event callback\n * @public\n */\nexport interface PropertyUpdatedArgs {\n /** The property being updated. */\n propertyRecord: PropertyRecord;\n /** The new value for the property. */\n newValue: PropertyValue;\n}\n\n/** Properties for a property editor component\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface PropertyEditorProps extends CommonProps {\n /** The property being updated. */\n propertyRecord?: PropertyRecord;\n /** Handler for commit */\n onCommit?: (args: PropertyUpdatedArgs) => void;\n /** Handler for cancel */\n onCancel?: () => void;\n /** Handler for blur */\n onBlur?: (event: React.FocusEvent) => void;\n /** Indicates whether the Property Editor should set focus */\n setFocus?: boolean;\n /**\n * Indicates whether value change should call onCommit().\n * @internal\n */\n shouldCommitOnChange?: boolean;\n}\n\n/** [[EditorContainer]] React component properties\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface EditorContainerProps extends CommonProps {\n /** The property being updated. */\n propertyRecord: PropertyRecord;\n /** Tooltip text */\n title?: string;\n /** Handler for commit */\n onCommit: (args: PropertyUpdatedArgs) => void;\n /** Handler for cancel */\n onCancel: () => void;\n /** Indicates whether the Property Editor should set focus */\n setFocus?: boolean;\n\n /** @internal */\n ignoreEditorBlur?: boolean;\n /**\n * Indicates whether value change should call onCommit().\n * @internal\n */\n shouldCommitOnChange?: boolean;\n}\n\ninterface CloneProps extends PropertyEditorProps {\n ref: (ref: TypeEditor | null) => void;\n}\n\n/** Interface implemented by React based type editors\n * @public\n */\nexport interface TypeEditor {\n getPropertyValue: () => Promise<PropertyValue | undefined>;\n htmlElement: HTMLElement | null;\n hasFocus: boolean;\n}\n\n/** EditorContainer React component used by the Tree and PropertyGrid for cell editing.\n * @public\n */\nexport function EditorContainer(props: EditorContainerProps) {\n const {\n ignoreEditorBlur,\n title,\n shouldCommitOnChange,\n propertyRecord,\n setFocus,\n onCommit,\n onCancel,\n ...rest\n } = props;\n\n const editorRef = React.useRef<TypeEditor | undefined>();\n const propertyEditorRef = React.useRef<PropertyEditorBase | undefined>();\n\n const handleClick = (e: React.MouseEvent) => e.stopPropagation();\n const handleContainerBlur = (e: React.FocusEvent) => e.stopPropagation();\n const handleEditorCommit = (args: PropertyUpdatedArgs) => void commit(args);\n\n const handleContainerCommit = async () => {\n const newValue = editorRef && (await editorRef.current?.getPropertyValue());\n if (newValue === undefined) return;\n void commit({\n propertyRecord,\n newValue,\n });\n };\n\n const onPressEscape = () => {\n if (!propertyEditorRef.current?.containerHandlesEscape) return;\n onCancel();\n };\n\n const onPressEnter = (e: React.KeyboardEvent) => {\n if (!propertyEditorRef.current?.containerHandlesEnter) return;\n if (editorRef?.current?.hasFocus) e.stopPropagation();\n void handleContainerCommit();\n };\n\n const onPressTab = (e: React.KeyboardEvent) => {\n if (!propertyEditorRef.current?.containerHandlesTab) return;\n e.stopPropagation();\n void handleContainerCommit();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case Key.Escape.valueOf():\n onPressEscape();\n break;\n case Key.Enter.valueOf():\n onPressEnter(e);\n break;\n case Key.Tab.valueOf():\n onPressTab(e);\n break;\n default:\n if (propertyEditorRef.current?.containerStopsKeydownPropagation)\n e.stopPropagation();\n }\n };\n\n const handleEditorBlur = () => {\n if (ignoreEditorBlur) return;\n if (!propertyEditorRef.current?.containerHandlesBlur) return;\n void handleContainerCommit();\n };\n\n const isNewValueValid = async (value: PropertyValue) => {\n if (!propertyEditorRef.current) return false;\n if (!propertyRecord) return false;\n\n const validateResult = await propertyEditorRef.current.validateValue(\n value,\n propertyRecord\n );\n\n if (validateResult.encounteredError) {\n displayOutputMessage(validateResult.errorMessage);\n return false;\n }\n\n return true;\n };\n\n const displayOutputMessage = (\n errorMessage: AsyncErrorMessage | undefined\n ) => {\n if (!errorMessage) return;\n if (!editorRef) return;\n\n const htmlElement = editorRef.current?.htmlElement;\n if (htmlElement)\n UiAdmin.messagePresenter.displayInputFieldMessage(\n htmlElement,\n errorMessage.severity,\n errorMessage.briefMessage,\n errorMessage.detailedMessage\n );\n else\n UiAdmin.messagePresenter.displayMessage(\n errorMessage.severity,\n errorMessage.briefMessage,\n errorMessage.detailedMessage,\n errorMessage.messageType\n );\n };\n\n const commit = async (args: PropertyUpdatedArgs) => {\n const newValue = args.newValue;\n const isValid = await isNewValueValid(newValue);\n if (!isValid) return;\n\n if (propertyEditorRef.current && args.propertyRecord) {\n const commitResult = await propertyEditorRef.current.commitValue(\n newValue,\n args.propertyRecord\n );\n if (commitResult.encounteredError) {\n displayOutputMessage(commitResult.errorMessage);\n return;\n }\n }\n\n onCommit(args);\n };\n\n const editorProps: CloneProps = {\n ref: (ref) => {\n editorRef.current = ref ?? undefined;\n },\n onCommit: handleEditorCommit,\n onCancel,\n onBlur: handleEditorBlur,\n setFocus: setFocus !== undefined ? setFocus : true,\n propertyRecord,\n shouldCommitOnChange,\n ...rest,\n };\n\n const propDescription = propertyRecord.property;\n\n const editorName =\n propDescription.editor !== undefined\n ? propDescription.editor.name\n : undefined;\n\n propertyEditorRef.current = PropertyEditorManager.createEditor(\n propDescription.typename,\n editorName,\n propDescription.dataController\n );\n\n const clonedNode = React.isValidElement(propertyEditorRef.current.reactNode)\n ? React.cloneElement(propertyEditorRef.current.reactNode, editorProps)\n : undefined;\n\n return (\n <span\n className=\"components-editor-container\"\n onBlur={handleContainerBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n onContextMenu={handleClick}\n title={title}\n data-testid=\"editor-container\"\n role=\"presentation\"\n >\n {clonedNode}\n </span>\n );\n}\n"]}
1
+ {"version":3,"file":"EditorContainer.js","sourceRoot":"","sources":["../../../../src/components-react/editors/EditorContainer.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 \"./EditorContainer.scss\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type {\n Primitives,\n PrimitiveValue,\n PropertyRecord,\n PropertyValue,\n} from \"@itwin/appui-abstract\";\nimport { PropertyValueFormat, UiAdmin } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type {\n AsyncErrorMessage,\n PropertyEditorBase,\n} from \"./PropertyEditorManager\";\nimport { PropertyEditorManager } from \"./PropertyEditorManager\";\n\n/** Arguments for the Property Updated event callback\n * @public\n */\nexport interface PropertyUpdatedArgs {\n /** The property being updated. */\n propertyRecord: PropertyRecord;\n /** The new value for the property. */\n newValue: PropertyValue;\n}\n\n/** Properties for a property editor component\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface PropertyEditorProps extends CommonProps {\n /** The property being updated. */\n propertyRecord?: PropertyRecord;\n /** Handler for commit */\n onCommit?: (args: PropertyUpdatedArgs) => void;\n /** Handler for cancel */\n onCancel?: () => void;\n /** Handler for blur */\n onBlur?: (event: React.FocusEvent) => void;\n /** Indicates whether the Property Editor should set focus */\n setFocus?: boolean;\n /**\n * Indicates whether value change should call onCommit().\n * @internal\n */\n shouldCommitOnChange?: boolean;\n}\n\n/** [[EditorContainer]] React component properties\n * @public\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface EditorContainerProps extends CommonProps {\n /** The property being updated. */\n propertyRecord: PropertyRecord;\n /** Tooltip text */\n title?: string;\n /** Handler for commit */\n onCommit: (args: PropertyUpdatedArgs) => void;\n /** Handler for cancel */\n onCancel: () => void;\n /** Indicates whether the Property Editor should set focus */\n setFocus?: boolean;\n\n /** @internal */\n ignoreEditorBlur?: boolean;\n /**\n * Indicates whether value change should call onCommit().\n * @internal\n */\n shouldCommitOnChange?: boolean;\n}\n\ninterface CloneProps extends PropertyEditorProps {\n ref: (ref: TypeEditor | null) => void;\n}\n\n/** Interface implemented by React based type editors\n * @public\n */\nexport interface TypeEditor {\n getPropertyValue: () => Promise<PropertyValue | undefined>;\n htmlElement: HTMLElement | null;\n hasFocus: boolean;\n}\n\n/** EditorContainer React component used by the Tree and PropertyGrid for cell editing.\n * @public\n */\nexport function EditorContainer(props: EditorContainerProps) {\n const {\n ignoreEditorBlur,\n title,\n shouldCommitOnChange,\n propertyRecord,\n setFocus,\n onCommit,\n onCancel,\n ...rest\n } = props;\n\n const editorRef = React.useRef<TypeEditor | undefined>();\n const propertyEditorRef = React.useRef<PropertyEditorBase | undefined>();\n\n const handleClick = (e: React.MouseEvent) => e.stopPropagation();\n const handleContainerBlur = (e: React.FocusEvent) => e.stopPropagation();\n const handleEditorCommit = (args: PropertyUpdatedArgs) => void commit(args);\n\n const handleContainerCommit = async () => {\n const newValue = editorRef && (await editorRef.current?.getPropertyValue());\n if (newValue === undefined) return;\n void commit({\n propertyRecord,\n newValue,\n });\n };\n\n const onPressEscape = (e: React.KeyboardEvent) => {\n if (!propertyEditorRef.current?.containerHandlesEscape) return;\n e.stopPropagation();\n onCancel();\n };\n\n const onPressEnter = (e: React.KeyboardEvent) => {\n if (!propertyEditorRef.current?.containerHandlesEnter) return;\n if (editorRef?.current?.hasFocus) e.stopPropagation();\n void handleContainerCommit();\n };\n\n const onPressTab = (e: React.KeyboardEvent) => {\n if (!propertyEditorRef.current?.containerHandlesTab) return;\n e.stopPropagation();\n e.preventDefault();\n void handleContainerCommit();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case Key.Escape.valueOf():\n onPressEscape(e);\n break;\n case Key.Enter.valueOf():\n onPressEnter(e);\n break;\n case Key.Tab.valueOf():\n onPressTab(e);\n break;\n default:\n if (propertyEditorRef.current?.containerStopsKeydownPropagation)\n e.stopPropagation();\n }\n };\n\n const handleEditorBlur = () => {\n if (ignoreEditorBlur) return;\n if (!propertyEditorRef.current?.containerHandlesBlur) return;\n void handleContainerCommit();\n };\n\n const isNewValueValid = async (value: PropertyValue) => {\n if (!propertyEditorRef.current) return false;\n if (!propertyRecord) return false;\n\n const validateResult = await propertyEditorRef.current.validateValue(\n value,\n propertyRecord\n );\n\n if (validateResult.encounteredError) {\n displayOutputMessage(validateResult.errorMessage);\n return false;\n }\n\n return true;\n };\n\n const displayOutputMessage = (\n errorMessage: AsyncErrorMessage | undefined\n ) => {\n if (!errorMessage) return;\n if (!editorRef) return;\n\n const htmlElement = editorRef.current?.htmlElement;\n if (htmlElement)\n UiAdmin.messagePresenter.displayInputFieldMessage(\n htmlElement,\n errorMessage.severity,\n errorMessage.briefMessage,\n errorMessage.detailedMessage\n );\n else\n UiAdmin.messagePresenter.displayMessage(\n errorMessage.severity,\n errorMessage.briefMessage,\n errorMessage.detailedMessage,\n errorMessage.messageType\n );\n };\n\n const commit = async (args: PropertyUpdatedArgs) => {\n const oldValue = args.propertyRecord.value;\n const newValue = args.newValue;\n\n if (!shouldCommit(oldValue, newValue)) {\n return;\n }\n\n const isValid = await isNewValueValid(newValue);\n if (!isValid) return;\n\n if (propertyEditorRef.current && args.propertyRecord) {\n const commitResult = await propertyEditorRef.current.commitValue(\n newValue,\n args.propertyRecord\n );\n if (commitResult.encounteredError) {\n displayOutputMessage(commitResult.errorMessage);\n return;\n }\n }\n\n onCommit(args);\n };\n\n const editorProps: CloneProps = {\n ref: (ref) => {\n editorRef.current = ref ?? undefined;\n },\n onCommit: handleEditorCommit,\n onCancel,\n onBlur: handleEditorBlur,\n setFocus: setFocus !== undefined ? setFocus : true,\n propertyRecord,\n shouldCommitOnChange,\n ...rest,\n };\n\n const propDescription = propertyRecord.property;\n\n const editorName =\n propDescription.editor !== undefined\n ? propDescription.editor.name\n : undefined;\n\n propertyEditorRef.current = PropertyEditorManager.createEditor(\n propDescription.typename,\n editorName,\n propDescription.dataController\n );\n\n const clonedNode = React.isValidElement(propertyEditorRef.current.reactNode)\n ? React.cloneElement(propertyEditorRef.current.reactNode, editorProps)\n : undefined;\n\n return (\n <span\n className=\"components-editor-container\"\n onBlur={handleContainerBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n onContextMenu={handleClick}\n title={title}\n data-testid=\"editor-container\"\n role=\"presentation\"\n >\n {clonedNode}\n </span>\n );\n}\n\nfunction arePrimitiveValuesEqual(\n oldValue: Primitives.Value,\n newValue: Primitives.Value\n): boolean {\n if (typeof oldValue !== typeof newValue) {\n return false;\n }\n // directly compare simple types\n if (typeof newValue !== \"object\" || newValue instanceof Date) {\n return newValue === oldValue;\n }\n // compare all members of arrays\n if (newValue instanceof Array) {\n if (!(oldValue instanceof Array)) {\n return false;\n }\n if (newValue.length !== oldValue.length) {\n return false;\n }\n for (let i = 0; i < newValue.length; i++) {\n if (oldValue[i] !== newValue[i]) {\n return false;\n }\n }\n return true;\n }\n // compare `Point2d` and `Point3d` types\n if (\"x\" in newValue) {\n if (typeof oldValue !== \"object\" || !(\"x\" in oldValue)) {\n return false;\n }\n if (\"z\" in newValue) {\n if (!(\"z\" in oldValue)) {\n return false;\n }\n return (\n newValue.x === oldValue.x &&\n newValue.y === oldValue.y &&\n newValue.z === oldValue.z\n );\n } else if (\"z\" in oldValue) {\n return false;\n }\n return newValue.x === oldValue.x && newValue.y === oldValue.y;\n }\n // compare instance keys\n if (\"className\" in newValue) {\n if (typeof oldValue !== \"object\" || !(\"className\" in oldValue)) {\n return false;\n }\n return (\n oldValue.className === newValue.className && oldValue.id === newValue.id\n );\n }\n return false;\n}\n\nfunction shouldCommit(oldValue: PropertyValue, newValue: PropertyValue) {\n if (\n oldValue.valueFormat !== newValue.valueFormat ||\n newValue.valueFormat !== PropertyValueFormat.Primitive\n ) {\n return true;\n }\n const oldPrimitiveValue = oldValue as PrimitiveValue;\n if (!oldPrimitiveValue.value && !newValue.value) {\n return false;\n }\n if (\n (!oldPrimitiveValue.value && newValue.value) ||\n (oldPrimitiveValue.value && !newValue.value)\n ) {\n return true;\n }\n return !arePrimitiveValuesEqual(oldPrimitiveValue.value!, newValue.value!);\n}\n"]}
@@ -18,19 +18,15 @@ interface EnumButtonGroupEditorState {
18
18
  export declare class EnumButtonGroupEditor extends React.Component<PropertyEditorProps, EnumButtonGroupEditorState> implements TypeEditor {
19
19
  private _btnRefs;
20
20
  private _divElement;
21
- /** @internal */
22
21
  readonly state: Readonly<EnumButtonGroupEditorState>;
23
22
  getPropertyValue(): Promise<PropertyValue | undefined>;
24
23
  get htmlElement(): HTMLElement | null;
25
24
  get hasFocus(): boolean;
26
- /** @internal */
27
25
  componentDidMount(): void;
28
- /** @internal */
29
26
  componentDidUpdate(prevProps: PropertyEditorProps): void;
30
27
  private setStateFromProps;
31
28
  private _handleButtonClick;
32
29
  private getButton;
33
- /** @internal */
34
30
  render(): React.JSX.Element;
35
31
  }
36
32
  /** Enum Property Button Group Editor registered for the "enum" type name and the "enum-buttongroup" editor name.
@@ -1 +1 @@
1
- {"version":3,"file":"EnumButtonGroupEditor.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumButtonGroupEditor.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EAGd,aAAa,EACd,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAKjC,gBAAgB;AAChB,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,qBACX,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,0BAA0B,CACvE,YAAW,UAAU;IAErB,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAAqC;IAExD,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAIlE;IAEW,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAenE,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAK7B;IAED,gBAAgB;IACA,iBAAiB;IAIjC,gBAAgB;IACA,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;YAMnD,iBAAiB;IA0D/B,OAAO,CAAC,kBAAkB,CAoBxB;IAEF,OAAO,CAAC,SAAS;IAiCjB,gBAAgB;IACA,MAAM;CAkBvB;AAED;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB;IACnE,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;CACF"}
1
+ {"version":3,"file":"EnumButtonGroupEditor.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumButtonGroupEditor.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EAGd,aAAa,EACd,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAKjC,gBAAgB;AAChB,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,qBACX,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,0BAA0B,CACvE,YAAW,UAAU;IAErB,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAAqC;IAExD,SAAyB,KAAK,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAIlE;IAEW,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAenE,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAK7B;IAEe,iBAAiB;IAIjB,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;YAMnD,iBAAiB;IA0D/B,OAAO,CAAC,kBAAkB,CAoBxB;IAEF,OAAO,CAAC,SAAS;IAkCD,MAAM;CAkBvB;AAED;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB;IACnE,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;CACF"}
@@ -20,7 +20,6 @@ export class EnumButtonGroupEditor extends React.Component {
20
20
  super(...arguments);
21
21
  this._btnRefs = new Map();
22
22
  this._divElement = React.createRef();
23
- /** @internal */
24
23
  this.state = {
25
24
  selectValue: "",
26
25
  enumIcons: [],
@@ -64,11 +63,9 @@ export class EnumButtonGroupEditor extends React.Component {
64
63
  containsFocus = this._divElement.current.contains(document.activeElement);
65
64
  return containsFocus;
66
65
  }
67
- /** @internal */
68
66
  componentDidMount() {
69
67
  void this.setStateFromProps();
70
68
  }
71
- /** @internal */
72
69
  componentDidUpdate(prevProps) {
73
70
  if (this.props.propertyRecord !== prevProps.propertyRecord) {
74
71
  void this.setStateFromProps();
@@ -130,7 +127,6 @@ export class EnumButtonGroupEditor extends React.Component {
130
127
  return (React.createElement("button", { ref: (ref) => ref && this._btnRefs.set(choiceValue, ref), "data-testid": choice.label, className: className, title: choice.label, key: choice.label, onClick: () => this._handleButtonClick(index) },
131
128
  React.createElement(Icon, { iconSpec: this.state.enumIcons[index].iconSpec })));
132
129
  }
133
- /** @internal */
134
130
  render() {
135
131
  return (React.createElement("div", { className: classnames("components-enumbuttongroup-editor", this.props.className), style: this.props.style, ref: this._divElement }, this.state.choices &&
136
132
  this.state.enumIcons.length &&
@@ -1 +1 @@
1
- {"version":3,"file":"EnumButtonGroupEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumButtonGroupEditor.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 \"./EnumButtonGroupEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n ButtonGroupEditorParams,\n EnumerationChoice,\n IconDefinition,\n PropertyEditorParams,\n PropertyRecord,\n PropertyValue,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyEditorParamTypes,\n PropertyValueFormat,\n StandardEditorNames,\n StandardTypeNames,\n} from \"@itwin/appui-abstract\";\nimport { Icon } from \"@itwin/core-react\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"./PropertyEditorManager\";\nimport svgPlaceholder from \"@bentley/icons-generic/icons/placeholder.svg\";\n\n// cspell:ignore buttongroup enumbuttongroup\n\n/** @internal */\ninterface EnumButtonGroupEditorState {\n selectValue: string | number;\n enumIcons: IconDefinition[];\n choices: EnumerationChoice[];\n}\n\n/** EnumButtonGroupEditor React component that is a property editor with select input\n * @public\n */\nexport class EnumButtonGroupEditor\n extends React.Component<PropertyEditorProps, EnumButtonGroupEditorState>\n implements TypeEditor\n{\n private _btnRefs = new Map<string | number, HTMLButtonElement>();\n private _divElement = React.createRef<HTMLDivElement>();\n\n /** @internal */\n public override readonly state: Readonly<EnumButtonGroupEditorState> = {\n selectValue: \"\",\n enumIcons: [],\n choices: [],\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.selectValue,\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 if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n /** @internal */\n public override componentDidMount() {\n void this.setStateFromProps();\n }\n\n /** @internal */\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const { propertyRecord } = this.props;\n\n if (\n propertyRecord &&\n propertyRecord.property.enum &&\n propertyRecord.value.valueFormat === PropertyValueFormat.Primitive\n ) {\n const primitiveValue = propertyRecord.value.value;\n let selectValue: string | number;\n\n if (typeof primitiveValue === \"string\") {\n selectValue = primitiveValue;\n } else {\n selectValue = primitiveValue as number;\n }\n\n let choices: EnumerationChoice[] = [];\n if (propertyRecord && propertyRecord.property.enum) {\n if (propertyRecord.property.enum.choices instanceof Promise) {\n choices = await propertyRecord.property.enum.choices;\n } else {\n choices = propertyRecord.property.enum.choices;\n }\n }\n\n const numChoices = choices.length;\n const enumIcons = new Array<IconDefinition>(numChoices);\n enumIcons.fill({ iconSpec: svgPlaceholder });\n\n if (\n propertyRecord.property.editor &&\n propertyRecord.property.editor.params\n ) {\n if (\n propertyRecord.property.editor &&\n propertyRecord.property.editor.params\n ) {\n const bgParams = propertyRecord.property.editor.params.find(\n (param: PropertyEditorParams) =>\n param.type === PropertyEditorParamTypes.ButtonGroupData.valueOf()\n ) as ButtonGroupEditorParams;\n if (bgParams) {\n bgParams.buttons.forEach(\n (iconDef: IconDefinition, index: number) => {\n if (index < numChoices) {\n enumIcons[index] = iconDef;\n }\n }\n );\n }\n }\n }\n\n this.setState({ selectValue, enumIcons, choices });\n }\n }\n\n private _handleButtonClick = (index: number) => {\n const propertyRecord = this.props.propertyRecord as PropertyRecord;\n\n if (this.state.choices && this.state.choices.length > index) {\n const selectValue = this.state.choices[index].value;\n\n this.setState(\n {\n selectValue,\n },\n async () => {\n if (propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue !== undefined) {\n this.props.onCommit({ propertyRecord, newValue: propertyValue });\n }\n }\n }\n );\n }\n };\n\n private getButton(choice: EnumerationChoice, index: number) {\n const choiceValue = this.state.choices\n ? this.state.choices[index].value\n : 0;\n const isActive = choiceValue === this.state.selectValue ? true : false;\n let isDisabled = false;\n const isEnabledFunction = this.state.enumIcons[index].isEnabledFunction;\n if (isEnabledFunction) {\n isDisabled = !isEnabledFunction();\n }\n\n const className = classnames(\n \"components-enumbuttongroup-button\",\n isDisabled && \"nz-is-disabled\",\n isActive && \"nz-is-active\"\n );\n\n return (\n <button\n ref={(ref: HTMLButtonElement | null) =>\n ref && this._btnRefs.set(choiceValue, ref)\n }\n data-testid={choice.label}\n className={className}\n title={choice.label}\n key={choice.label}\n onClick={() => this._handleButtonClick(index)}\n >\n <Icon iconSpec={this.state.enumIcons[index].iconSpec} />\n </button>\n );\n }\n\n /** @internal */\n public override render() {\n return (\n <div\n className={classnames(\n \"components-enumbuttongroup-editor\",\n this.props.className\n )}\n style={this.props.style}\n ref={this._divElement}\n >\n {this.state.choices &&\n this.state.enumIcons.length &&\n this.state.choices.map((choice: EnumerationChoice, index: number) =>\n this.getButton(choice, index)\n )}\n </div>\n );\n }\n}\n\n/** Enum Property Button Group Editor registered for the \"enum\" type name and the \"enum-buttongroup\" editor name.\n * It uses the [[EnumButtonGroupEditor]] React component.\n * @public\n */\nexport class EnumPropertyButtonGroupEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <EnumButtonGroupEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.Enum,\n EnumPropertyButtonGroupEditor,\n StandardEditorNames.EnumButtonGroup\n);\n"]}
1
+ {"version":3,"file":"EnumButtonGroupEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumButtonGroupEditor.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 \"./EnumButtonGroupEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n ButtonGroupEditorParams,\n EnumerationChoice,\n IconDefinition,\n PropertyEditorParams,\n PropertyRecord,\n PropertyValue,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyEditorParamTypes,\n PropertyValueFormat,\n StandardEditorNames,\n StandardTypeNames,\n} from \"@itwin/appui-abstract\";\nimport { Icon } from \"@itwin/core-react\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"./PropertyEditorManager\";\nimport svgPlaceholder from \"@bentley/icons-generic/icons/placeholder.svg\";\n\n// cspell:ignore buttongroup enumbuttongroup\n\n/** @internal */\ninterface EnumButtonGroupEditorState {\n selectValue: string | number;\n enumIcons: IconDefinition[];\n choices: EnumerationChoice[];\n}\n\n/** EnumButtonGroupEditor React component that is a property editor with select input\n * @public\n */\nexport class EnumButtonGroupEditor\n extends React.Component<PropertyEditorProps, EnumButtonGroupEditorState>\n implements TypeEditor\n{\n private _btnRefs = new Map<string | number, HTMLButtonElement>();\n private _divElement = React.createRef<HTMLDivElement>();\n\n public override readonly state: Readonly<EnumButtonGroupEditorState> = {\n selectValue: \"\",\n enumIcons: [],\n choices: [],\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.selectValue,\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 if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n public override componentDidMount() {\n void this.setStateFromProps();\n }\n\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const { propertyRecord } = this.props;\n\n if (\n propertyRecord &&\n propertyRecord.property.enum &&\n propertyRecord.value.valueFormat === PropertyValueFormat.Primitive\n ) {\n const primitiveValue = propertyRecord.value.value;\n let selectValue: string | number;\n\n if (typeof primitiveValue === \"string\") {\n selectValue = primitiveValue;\n } else {\n selectValue = primitiveValue as number;\n }\n\n let choices: EnumerationChoice[] = [];\n if (propertyRecord && propertyRecord.property.enum) {\n if (propertyRecord.property.enum.choices instanceof Promise) {\n choices = await propertyRecord.property.enum.choices;\n } else {\n choices = propertyRecord.property.enum.choices;\n }\n }\n\n const numChoices = choices.length;\n const enumIcons = new Array<IconDefinition>(numChoices);\n enumIcons.fill({ iconSpec: svgPlaceholder });\n\n if (\n propertyRecord.property.editor &&\n propertyRecord.property.editor.params\n ) {\n if (\n propertyRecord.property.editor &&\n propertyRecord.property.editor.params\n ) {\n const bgParams = propertyRecord.property.editor.params.find(\n (param: PropertyEditorParams) =>\n param.type === PropertyEditorParamTypes.ButtonGroupData.valueOf()\n ) as ButtonGroupEditorParams;\n if (bgParams) {\n bgParams.buttons.forEach(\n (iconDef: IconDefinition, index: number) => {\n if (index < numChoices) {\n enumIcons[index] = iconDef;\n }\n }\n );\n }\n }\n }\n\n this.setState({ selectValue, enumIcons, choices });\n }\n }\n\n private _handleButtonClick = (index: number) => {\n const propertyRecord = this.props.propertyRecord as PropertyRecord;\n\n if (this.state.choices && this.state.choices.length > index) {\n const selectValue = this.state.choices[index].value;\n\n this.setState(\n {\n selectValue,\n },\n async () => {\n if (propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue !== undefined) {\n this.props.onCommit({ propertyRecord, newValue: propertyValue });\n }\n }\n }\n );\n }\n };\n\n private getButton(choice: EnumerationChoice, index: number) {\n const choiceValue = this.state.choices\n ? this.state.choices[index].value\n : 0;\n const isActive = choiceValue === this.state.selectValue ? true : false;\n let isDisabled = false;\n const isEnabledFunction = this.state.enumIcons[index].isEnabledFunction;\n if (isEnabledFunction) {\n isDisabled = !isEnabledFunction();\n }\n\n const className = classnames(\n \"components-enumbuttongroup-button\",\n isDisabled && \"nz-is-disabled\",\n isActive && \"nz-is-active\"\n );\n\n return (\n <button\n ref={(ref: HTMLButtonElement | null) =>\n ref && this._btnRefs.set(choiceValue, ref)\n }\n data-testid={choice.label}\n className={className}\n title={choice.label}\n key={choice.label}\n onClick={() => this._handleButtonClick(index)}\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={this.state.enumIcons[index].iconSpec} />\n </button>\n );\n }\n\n public override render() {\n return (\n <div\n className={classnames(\n \"components-enumbuttongroup-editor\",\n this.props.className\n )}\n style={this.props.style}\n ref={this._divElement}\n >\n {this.state.choices &&\n this.state.enumIcons.length &&\n this.state.choices.map((choice: EnumerationChoice, index: number) =>\n this.getButton(choice, index)\n )}\n </div>\n );\n }\n}\n\n/** Enum Property Button Group Editor registered for the \"enum\" type name and the \"enum-buttongroup\" editor name.\n * It uses the [[EnumButtonGroupEditor]] React component.\n * @public\n */\nexport class EnumPropertyButtonGroupEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <EnumButtonGroupEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.Enum,\n EnumPropertyButtonGroupEditor,\n StandardEditorNames.EnumButtonGroup\n);\n"]}
@@ -20,20 +20,15 @@ interface EnumEditorState {
20
20
  export declare class EnumEditor extends React.PureComponent<PropertyEditorProps, EnumEditorState> implements TypeEditor {
21
21
  private _isMounted;
22
22
  private _divElement;
23
- /** @internal */
24
23
  readonly state: Readonly<EnumEditorState>;
25
24
  getPropertyValue(): Promise<PropertyValue | undefined>;
26
25
  get htmlElement(): HTMLElement | null;
27
26
  get hasFocus(): boolean;
28
27
  private _updateSelectValue;
29
- /** @internal */
30
28
  componentDidMount(): void;
31
- /** @internal */
32
29
  componentWillUnmount(): void;
33
- /** @internal */
34
30
  componentDidUpdate(prevProps: PropertyEditorProps): void;
35
31
  private setStateFromProps;
36
- /** @internal */
37
32
  render(): React.JSX.Element;
38
33
  }
39
34
  /** Enum Property Button Group Editor registered for the "enum" type name.
@@ -1 +1 @@
1
- {"version":3,"file":"EnumEditor.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumEditor.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAGjC,gBAAgB;AAChB,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UACX,SAAQ,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE,eAAe,CAChE,YAAW,UAAU;IAErB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAqC;IAExD,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAKvD;IAEW,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAenE,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAK7B;IAED,OAAO,CAAC,kBAAkB,CAwBxB;IAEF,gBAAgB;IACA,iBAAiB;IAKjC,gBAAgB;IACA,oBAAoB;IAIpC,gBAAgB;IACA,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;YAMnD,iBAAiB;IA6C/B,gBAAgB;IACA,MAAM;CAwCvB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD,IAAoB,qBAAqB,IAAI,OAAO,CAEnD;IACD,IAAoB,gCAAgC,IAAI,OAAO,CAE9D;IAED,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;CACF"}
1
+ {"version":3,"file":"EnumEditor.d.ts","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumEditor.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAGjC,gBAAgB;AAChB,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UACX,SAAQ,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE,eAAe,CAChE,YAAW,UAAU;IAErB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAqC;IAExD,SAAyB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAKvD;IAEW,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAenE,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,IAAW,QAAQ,IAAI,OAAO,CAK7B;IAED,OAAO,CAAC,kBAAkB,CAwBxB;IAEc,iBAAiB;IAKjB,oBAAoB;IAIpB,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;YAMnD,iBAAiB;IA6Cf,MAAM;CAwCvB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD,IAAoB,qBAAqB,IAAI,OAAO,CAEnD;IACD,IAAoB,gCAAgC,IAAI,OAAO,CAE9D;IAED,IAAW,SAAS,IAAI,KAAK,CAAC,SAAS,CAEtC;CACF"}
@@ -20,7 +20,6 @@ export class EnumEditor extends React.PureComponent {
20
20
  super(...arguments);
21
21
  this._isMounted = false;
22
22
  this._divElement = React.createRef();
23
- /** @internal */
24
23
  this.state = {
25
24
  selectValue: "",
26
25
  valueIsNumber: false,
@@ -71,16 +70,13 @@ export class EnumEditor extends React.PureComponent {
71
70
  containsFocus = this._divElement.current.contains(document.activeElement);
72
71
  return containsFocus;
73
72
  }
74
- /** @internal */
75
73
  componentDidMount() {
76
74
  this._isMounted = true;
77
75
  void this.setStateFromProps();
78
76
  }
79
- /** @internal */
80
77
  componentWillUnmount() {
81
78
  this._isMounted = false;
82
79
  }
83
- /** @internal */
84
80
  componentDidUpdate(prevProps) {
85
81
  if (this.props.propertyRecord !== prevProps.propertyRecord) {
86
82
  void this.setStateFromProps();
@@ -125,7 +121,6 @@ export class EnumEditor extends React.PureComponent {
125
121
  parentDiv: this._divElement.current,
126
122
  });
127
123
  }
128
- /** @internal */
129
124
  render() {
130
125
  const className = classnames("components-cell-editor", "components-enum-editor", this.props.className);
131
126
  const selectValue = this.state.selectValue !== undefined
@@ -1 +1 @@
1
- {"version":3,"file":"EnumEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumEditor.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 \"./EnumEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { EnumerationChoice, PropertyValue } from \"@itwin/appui-abstract\";\nimport { PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select } from \"@itwin/itwinui-react\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"./PropertyEditorManager\";\nimport { UiComponents } from \"../UiComponents\";\n\n/** @internal */\ninterface EnumEditorState {\n selectValue: string | number;\n valueIsNumber: boolean;\n options: SelectOption<string>[];\n parentDiv: HTMLDivElement | null;\n}\n\n/** EnumEditor React component that is a property editor with select input\n * @public\n */\nexport class EnumEditor\n extends React.PureComponent<PropertyEditorProps, EnumEditorState>\n implements TypeEditor\n{\n private _isMounted = false;\n private _divElement = React.createRef<HTMLDivElement>();\n\n /** @internal */\n public override readonly state: Readonly<EnumEditorState> = {\n selectValue: \"\",\n valueIsNumber: false,\n options: [],\n parentDiv: null,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.selectValue,\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 if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n private _updateSelectValue = (newValue: string) => {\n if (this._isMounted) {\n let selectValue: string | number;\n\n if (this.state.valueIsNumber) selectValue = parseInt(newValue, 10);\n else selectValue = newValue;\n\n this.setState(\n {\n selectValue,\n },\n async () => {\n if (this.props.propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue) {\n this.props.onCommit({\n propertyRecord: this.props.propertyRecord,\n newValue: propertyValue,\n });\n }\n }\n }\n );\n }\n };\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n void this.setStateFromProps();\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 void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const { propertyRecord } = this.props;\n let initialValue: string | number = \"\";\n let valueIsNumber: boolean = false;\n\n if (\n propertyRecord &&\n propertyRecord.value.valueFormat === PropertyValueFormat.Primitive\n ) {\n const primitiveValue = propertyRecord.value.value;\n if (typeof primitiveValue === \"string\") {\n initialValue = primitiveValue;\n valueIsNumber = false;\n } else {\n initialValue = primitiveValue as number;\n valueIsNumber = true;\n }\n }\n\n let choices: EnumerationChoice[] | undefined;\n\n if (propertyRecord && propertyRecord.property.enum) {\n if (propertyRecord.property.enum.choices instanceof Promise) {\n choices = await propertyRecord.property.enum.choices;\n } else {\n choices = propertyRecord.property.enum.choices;\n }\n }\n\n const options: SelectOption<string>[] = [];\n if (choices) {\n choices.forEach((choice: EnumerationChoice) => {\n options.push({ value: choice.value.toString(), label: choice.label });\n });\n }\n\n if (this._isMounted)\n this.setState({\n selectValue: initialValue,\n valueIsNumber,\n options,\n parentDiv: this._divElement.current,\n });\n }\n\n /** @internal */\n public override render() {\n const className = classnames(\n \"components-cell-editor\",\n \"components-enum-editor\",\n this.props.className\n );\n const selectValue =\n this.state.selectValue !== undefined\n ? this.state.selectValue.toString()\n : undefined;\n\n // set min-width to show about 4 characters + down arrow\n const minWidthStyle: React.CSSProperties = {\n minWidth: `6em`,\n };\n\n // The iTwinUI-react Select onBlur still does not work properly, so it cannot be used yet. NEEDSWORK\n // onBlur={this.props.onBlur}\n return (\n <div ref={this._divElement}>\n <Select\n className={className}\n style={this.props.style ? this.props.style : minWidthStyle}\n value={selectValue}\n onChange={this._updateSelectValue}\n data-testid=\"components-select-editor\"\n options={this.state.options}\n triggerProps={{\n ref: (el) => {\n if (!this.props.setFocus) return;\n el?.focus();\n },\n className: \"components-button\",\n }}\n aria-label={UiComponents.translate(\"editor.enum\")}\n size=\"small\"\n />\n </div>\n );\n }\n}\n\n/** Enum Property Button Group Editor registered for the \"enum\" type name.\n * It uses the [[EnumEditor]] React component.\n * @public\n */\nexport class EnumPropertyEditor extends PropertyEditorBase {\n public override get containerHandlesEnter(): boolean {\n return false;\n }\n public override get containerStopsKeydownPropagation(): boolean {\n return false;\n }\n\n public get reactNode(): React.ReactNode {\n return <EnumEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.Enum,\n EnumPropertyEditor\n);\n"]}
1
+ {"version":3,"file":"EnumEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/EnumEditor.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 \"./EnumEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { EnumerationChoice, PropertyValue } from \"@itwin/appui-abstract\";\nimport { PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select } from \"@itwin/itwinui-react\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"./PropertyEditorManager\";\nimport { UiComponents } from \"../UiComponents\";\n\n/** @internal */\ninterface EnumEditorState {\n selectValue: string | number;\n valueIsNumber: boolean;\n options: SelectOption<string>[];\n parentDiv: HTMLDivElement | null;\n}\n\n/** EnumEditor React component that is a property editor with select input\n * @public\n */\nexport class EnumEditor\n extends React.PureComponent<PropertyEditorProps, EnumEditorState>\n implements TypeEditor\n{\n private _isMounted = false;\n private _divElement = React.createRef<HTMLDivElement>();\n\n public override readonly state: Readonly<EnumEditorState> = {\n selectValue: \"\",\n valueIsNumber: false,\n options: [],\n parentDiv: null,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.selectValue,\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 if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n private _updateSelectValue = (newValue: string) => {\n if (this._isMounted) {\n let selectValue: string | number;\n\n if (this.state.valueIsNumber) selectValue = parseInt(newValue, 10);\n else selectValue = newValue;\n\n this.setState(\n {\n selectValue,\n },\n async () => {\n if (this.props.propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue) {\n this.props.onCommit({\n propertyRecord: this.props.propertyRecord,\n newValue: propertyValue,\n });\n }\n }\n }\n );\n }\n };\n\n public override componentDidMount() {\n this._isMounted = true;\n void this.setStateFromProps();\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const { propertyRecord } = this.props;\n let initialValue: string | number = \"\";\n let valueIsNumber: boolean = false;\n\n if (\n propertyRecord &&\n propertyRecord.value.valueFormat === PropertyValueFormat.Primitive\n ) {\n const primitiveValue = propertyRecord.value.value;\n if (typeof primitiveValue === \"string\") {\n initialValue = primitiveValue;\n valueIsNumber = false;\n } else {\n initialValue = primitiveValue as number;\n valueIsNumber = true;\n }\n }\n\n let choices: EnumerationChoice[] | undefined;\n\n if (propertyRecord && propertyRecord.property.enum) {\n if (propertyRecord.property.enum.choices instanceof Promise) {\n choices = await propertyRecord.property.enum.choices;\n } else {\n choices = propertyRecord.property.enum.choices;\n }\n }\n\n const options: SelectOption<string>[] = [];\n if (choices) {\n choices.forEach((choice: EnumerationChoice) => {\n options.push({ value: choice.value.toString(), label: choice.label });\n });\n }\n\n if (this._isMounted)\n this.setState({\n selectValue: initialValue,\n valueIsNumber,\n options,\n parentDiv: this._divElement.current,\n });\n }\n\n public override render() {\n const className = classnames(\n \"components-cell-editor\",\n \"components-enum-editor\",\n this.props.className\n );\n const selectValue =\n this.state.selectValue !== undefined\n ? this.state.selectValue.toString()\n : undefined;\n\n // set min-width to show about 4 characters + down arrow\n const minWidthStyle: React.CSSProperties = {\n minWidth: `6em`,\n };\n\n // The iTwinUI-react Select onBlur still does not work properly, so it cannot be used yet. NEEDSWORK\n // onBlur={this.props.onBlur}\n return (\n <div ref={this._divElement}>\n <Select\n className={className}\n style={this.props.style ? this.props.style : minWidthStyle}\n value={selectValue}\n onChange={this._updateSelectValue}\n data-testid=\"components-select-editor\"\n options={this.state.options}\n triggerProps={{\n ref: (el) => {\n if (!this.props.setFocus) return;\n el?.focus();\n },\n className: \"components-button\",\n }}\n aria-label={UiComponents.translate(\"editor.enum\")}\n size=\"small\"\n />\n </div>\n );\n }\n}\n\n/** Enum Property Button Group Editor registered for the \"enum\" type name.\n * It uses the [[EnumEditor]] React component.\n * @public\n */\nexport class EnumPropertyEditor extends PropertyEditorBase {\n public override get containerHandlesEnter(): boolean {\n return false;\n }\n public override get containerStopsKeydownPropagation(): boolean {\n return false;\n }\n\n public get reactNode(): React.ReactNode {\n return <EnumEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.Enum,\n EnumPropertyEditor\n);\n"]}